diff options
author | Alfredo Tupone <tupone@gentoo.org> | 2021-04-21 22:08:58 +0200 |
---|---|---|
committer | Alfredo Tupone <tupone@gentoo.org> | 2021-04-21 22:08:58 +0200 |
commit | 22394d577a18d2198b9c734b737d29911809c858 (patch) | |
tree | 33fb61ca4c030a10aa6ecfd74550eb97dcabfd51 /www-apps/liquid_feedback_frontend | |
parent | app-shells/esh: drop prefix inherit (diff) | |
download | gentoo-22394d577a18d2198b9c734b737d29911809c858.tar.gz gentoo-22394d577a18d2198b9c734b737d29911809c858.tar.bz2 gentoo-22394d577a18d2198b9c734b737d29911809c858.zip |
www-apps/liquid_feedback_frontend: version bump to 3.2.1
Package-Manager: Portage-3.0.17, Repoman-3.0.2
Signed-off-by: Alfredo Tupone <tupone@gentoo.org>
Diffstat (limited to 'www-apps/liquid_feedback_frontend')
4 files changed, 550 insertions, 0 deletions
diff --git a/www-apps/liquid_feedback_frontend/Manifest b/www-apps/liquid_feedback_frontend/Manifest index 4abfed6f10f4..862e9f0e6bc9 100644 --- a/www-apps/liquid_feedback_frontend/Manifest +++ b/www-apps/liquid_feedback_frontend/Manifest @@ -1,3 +1,4 @@ DIST liquid_feedback_frontend-italian-2.2.7.tar.gz 7670 BLAKE2B 8131613849efdea1eaa1eda4f5620d7418d6b32c0f57b0aebb07c7dbe17afda2eee814733eada0656a159a93dda97a5a21e17db71baf3ca84e708caf502a4247 SHA512 63cfcb4a565fa570777c2f3d2dcec2e98f16415ad9f8a6d62076f4e2cdf0ddae95610688b6b7751a865344acb7b65f78e7cb1ae4103b24dacf63e3e346405918 DIST liquid_feedback_frontend-v2.2.7.tar.gz 362509 BLAKE2B 980e261ac9bddfb0f87757457fe58e93481e6d56dc0199b9fc72308e094aec21730f6d901f2e5c1b18a7f5993d1704cc91f64870c16c6215cbbf806095aabe12 SHA512 aa8c99e53c329dbf4659dabe617938d63b2aa42bab99ff4e200d4e15be8ed8ef5f64a71293fa796adde47525d1a76ece3b04cff982474eb2307a3fcd4f269d78 DIST liquid_feedback_frontend-v3.0.6.tar.gz 497521 BLAKE2B a9e7e7944b418a707a459093b41798818644e2d8aed47a48808c2bf7800acdcde61a04e07483dbb387264df2236b1b02f2410cb34f62bdec6244405db0cf3474 SHA512 d283d277cf6836c53398480c566158481fc65400e128bc4817975fd39c41e6e56b17f7f789a74b1b2a89f84aaf315101e9aa86a474c1817362443d03610fe6e9 +DIST liquid_feedback_frontend-v3.2.1.tar.gz 499832 BLAKE2B 6d9ead85fa7e47c04c4169b85ffa119737a798d94b236dbd7d11ae4c5d38cc072a71a45b52e250effa62dac65c3ebcd723061e395b05d9f31d0bb01f8e82f9b9 SHA512 1b5e5fc390a2a705c99145ea36556f9b14de4c052c4673e2c7f12148efe485feaf1a91781c016015c41465559204e906e3cad78e37f41289abd5ca27c4257bb3 diff --git a/www-apps/liquid_feedback_frontend/files/liquid_feedback.initd b/www-apps/liquid_feedback_frontend/files/liquid_feedback.initd new file mode 100755 index 000000000000..0fe14172b52f --- /dev/null +++ b/www-apps/liquid_feedback_frontend/files/liquid_feedback.initd @@ -0,0 +1,16 @@ +#!/sbin/openrc-run +# Copyright 2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +name="liquid feedback daemon" +description="Liquid Feedback Frontend" +command=/usr/bin/moonbridge +command_args="-l /var/log/liquid_feedback/lqfb.log /usr/lib/webmcp/bin/mcp.lua /usr/lib/webmcp /var/lib/liquid_feedback_frontend main myconfig-3" +pidfile=/run/lqfb.pid +command_user="apache:apache" +command_background=true + +depend() { + need net + need postgresql +} diff --git a/www-apps/liquid_feedback_frontend/files/myconfig-3.lua b/www-apps/liquid_feedback_frontend/files/myconfig-3.lua new file mode 100644 index 000000000000..1a1c51f2ac39 --- /dev/null +++ b/www-apps/liquid_feedback_frontend/files/myconfig-3.lua @@ -0,0 +1,487 @@ +-- ======================================================================== +-- MANDATORY (MUST BE CAREFULLY CHECKED AND PROPERLY SET!) +-- ======================================================================== + +-- Name of this instance, defaults to name of config file +-- ------------------------------------------------------------------------ +config.instance_name = "Instance name" + + +-- Information about service provider (HTML) +-- ------------------------------------------------------------------------ +config.app_service_provider = "Snake Oil<br/>10000 Berlin<br/>Germany" + + +-- A HTML formatted text the user has to accept while registering +-- ------------------------------------------------------------------------ +config.use_terms = "<h1>Terms of Use</h1><p>Insert terms here</p>" + + +-- Checkbox(es) the user has to accept while registering +-- ------------------------------------------------------------------------ +--[[ +config.use_terms_checkboxes = { + { + name = "terms_of_use_v1", + html = "I accept the terms of use.", + not_accepted_error = "You have to accept the terms of use to be able to register." + }, + { + name = "extra_terms_of_use_v1", + html = "I accept the extra terms of use.", + not_accepted_error = "You have to accept the extra terms of use to be able to register." + } +} +--]] + +-- Absolute base url of application +-- ------------------------------------------------------------------------ +config.absolute_base_url = "http://example.com/" +config.localhost = false + + +-- Connection information for the LiquidFeedback database +-- ------------------------------------------------------------------------ +config.database = { engine='postgresql', dbname='liquid_feedback', user='liquid_feedback', password='xxx' } + + +-- Location of the rocketwiki binaries +-- ------------------------------------------------------------------------ +config.enforce_formatting_engine = "markdown2" +config.formatting_engines = { + { id = "markdown2", + name = "python-markdown2", + executable = "markdown2", + args = {'-s', 'escape', '-x', 'nofollow,wiki-tables'}, + remove_images = true + }, +-- { id = "markdown_py", +-- name = "Python Markdown", +-- executable = "markdown_py", +-- args = {'-s', 'escape', '-x', 'extra', '-x', 'nl2br', '-x', 'sane_lists'}, +-- remove_images = true +-- }, +-- { id = "rocketwiki", +-- name = "RocketWiki", +-- executable = "/opt/rocketwiki-lqfb/rocketwiki-lqfb" +-- }, +-- { id = "compat", +-- name = "Traditional WIKI syntax", +-- executable = "/opt/rocketwiki-lqfb/rocketwiki-lqfb-compat" +-- }, +} + + +-- Public access level +-- ------------------------------------------------------------------------ +-- Available options: +-- "none" +-- -> Closed user group, no public access at all +-- (except login/registration/password reset) +-- "anonymous" +-- -> Shows only initiative/suggestions texts and aggregated +-- supporter/voter counts +-- "authors_pseudonymous" +-- -> Like anonymous, but shows screen names of authors +-- "all_pseudonymous" +-- -> Show everything a member can see, except profile pages +-- "everything" +-- -> Show everything a member can see, including profile pages +-- ------------------------------------------------------------------------ +config.public_access = "none" + + + +-- ======================================================================== +-- OPTIONAL +-- Remove leading -- to use a option +-- ======================================================================== + +-- Disable registration +-- ------------------------------------------------------------------------ +-- Available options: +-- false: registration is enabled (default) +-- true: registration is disabled +-- ------------------------------------------------------------------------ +-- config.disable_registration = true + + +-- List of enabled languages, defaults to available languages +-- ------------------------------------------------------------------------ +-- config.enabled_languages = { 'en', 'de', 'eo', 'el', 'hu', 'it', 'ka', 'nl', 'zh-Hans', 'zh-TW' } + + +-- Default language, defaults to "en" +-- ------------------------------------------------------------------------ +-- config.default_lang = "en" + + +-- after how long is a user considered inactive and the trustee will see warning, +-- notation is according to postgresql intervals, default: no warning at all +-- ------------------------------------------------------------------------ +-- config.delegation_warning_time = '6 months' + + +-- after which time a user is advised (_soft) or forced (_hard) to check +-- unit and area delegations. default: no check at all +-- ------------------------------------------------------------------------ +-- config.check_delegations_interval_hard = "6 months" +-- config.check_delegations_interval_soft = "3 months" + + +-- default option when checking delegations +-- available options: "confirm", "revoke" and "none", default: "confirm" +-- ------------------------------------------------------------------------ +-- config.check_delegations_default = "confirm" + + +-- Prefix of all automatic mails, defaults to "[Liquid Feedback] " +-- ------------------------------------------------------------------------ +-- config.mail_subject_prefix = "[LiquidFeedback] " + + +-- Sender of all automatic mails, defaults to system defaults +-- ------------------------------------------------------------------------ +-- config.mail_envelope_from = "liquidfeedback@example.com" +-- config.mail_from = { name = "LiquidFeedback", address = "liquidfeedback@example.com" } +-- config.mail_reply_to = { name = "Support", address = "support@example.com" } + + +-- Template for digest emails +-- #{name} will be replaced by member screen name +-- #{digest} will be replaced with the digest content +-- ------------------------------------------------------------------------ +-- config.notification_digest_template = [[ +-- Hello #{name}, +-- +-- this is your personal digest. +-- +-- #{digest} +-- ]] + + +-- Configuration of password hashing algorithm (defaults to "crypt_sha512") +-- ------------------------------------------------------------------------ +-- config.password_hash_algorithm = "crypt_sha512" +-- config.password_hash_algorithm = "crypt_sha256" +-- config.password_hash_algorithm = "crypt_md5" + + +-- Number of rounds for crypt_sha* algorithms, minimum and maximum +-- (defaults to minimum 10000 and maximum 20000) +-- ------------------------------------------------------------------------ +-- config.password_hash_min_rounds = 10000 +-- config.password_hash_max_rounds = 20000 + + +-- Supply custom url for avatar/photo delivery +-- ------------------------------------------------------------------------ +-- config.fastpath_url_func = nil + + +-- Local directory for database dumps offered for download +-- ------------------------------------------------------------------------ +-- config.download_dir = nil + + +-- Special use terms for database dump download +-- ------------------------------------------------------------------------ +-- config.download_use_terms = "=== Download use terms ===\n" + + +-- Use custom image conversion, defaults to ImageMagick's convert +-- ------------------------------------------------------------------------ +--config.member_image_content_type = "image/jpeg" +--config.member_image_convert_func = { +-- avatar = function(data) return extos.pfilter(data, "convert", "jpeg:-", "-thumbnail", "48x48", "jpeg:-") end, +-- photo = function(data) return extos.pfilter(data, "convert", "jpeg:-", "-thumbnail", "240x240", "jpeg:-") end +--} + + +-- Display a html formatted public message of the day +-- ------------------------------------------------------------------------ +-- config.motd_public = "<h1>Message of the day (public)</h1><p>The MOTD is formatted with HTML</p>" + + +-- Display a html formatted internal message of the day +-- ------------------------------------------------------------------------ +-- config.motd_intern = "<h1>Message of the day (intern)</h1><p>The MOTD is formatted with HTML</p>" + + +-- Integration of Etherpad, disabled by default +-- ------------------------------------------------------------------------ +--config.etherpad = { +-- base_url = "http://example.com:9001/", +-- api_base = "http://localhost:9001/", +-- api_key = "mysecretapikey", +-- group_id = "mygroupname", +-- cookie_path = "/" +--} + + +-- Free timings +-- ------------------------------------------------------------------------ +-- This example expects a date string entered in the free timing field +-- by the user creating a poll, interpreting it as target date for then +-- poll and splits the remaining time at the ratio of 4:1:2 +-- Please note, polling policies never have an admission phase +-- The available_func is optional, if not set any target date is allowed + +--[[ +config.free_timing = { + calculate_func = function(policy, timing_string) + local function interval_by_seconds(secs) + local secs_per_day = 60 * 60 * 24 + local days + days = math.floor(secs / secs_per_day) + secs = secs - days * secs_per_day + return days .. " days " .. secs .. " seconds" + end + local target_date = parse.date(timing_string, atom.date) + if not target_date then + return false + end + local target_timestamp = target_date.midday + local now = atom.timestamp:get_current() + trace.debug(target_timestamp, now) + local duration = target_timestamp - now + if duration < 0 then + return false + end + return { + discussion = interval_by_seconds(duration / 7 * 4), + verification = interval_by_seconds(duration / 7 * 1), + voting = interval_by_seconds(duration / 7 * 2) + } + end, + available_func = function(policy) + return { + { name = "End of 2013", id = '2013-12-31' }, + { name = "End of 2014", id = '2014-12-31' }, + { name = "End of 2015", id = '2015-12-31' } + } + end +} +--]] + +-- Configuration of lf4rcs +-- ------------------------------------------------------------------------ +-- config.lf4rc = {} + +-- Example configuration for controlling a Git repository +--[[ +config.lf4rcs.git = { + + render_draft_reference = function(url, draft) + if not draft.external_reference then return end + ui.tag{ content = _"Changeset:" } + slot.put(" ") + ui.link{ + text = draft.external_reference, + external = url .. ";a=commit;h=" .. draft.external_reference + } + end, + + get_remote_user = function() + return os.getenv("REMOTE_USER") + end, + + get_branches = function(path, exec) + local branches = {} + for line in io.lines() do + local oldrev, newrev, branch = string.match(line, "([^ ]+) ([^ ]+) refs/heads/(.+)") + if not branch then + return nil, "unexpected format from git hook environment" + end + branches[branch] = { newrev } + end + return branches + end, + + commit = function(path, exec, branch, target_node_id, close_message, merge_message) + if merge_message then + exec("git", "-C", path, "checkout", "-f", "master") + exec("git", "-C", path, "merge", target_node_id, "-m", merge_message) + exec("git", "-C", path, "push", "origin", "master") + end + end + +} + +-- Example configuration for controlling a Mercurial repository +config.lf4rcs.hg = { + + working_branch_name = "work", + + render_draft_reference = function(url, draft) + if not draft.external_reference then return end + ui.tag{ content = _"Changeset graph:" } + slot.put(" ") + ui.link{ + text = draft.external_reference, + external = url .. "/graph/" .. draft.external_reference + } + end, + + get_remote_user = function() + return os.getenv("REMOTE_USER") + end, + + get_branches = function(path, exec) + local first_node_id = os.getenv("HG_NODE") + if not first_node_id then + return nil, "internal error, no first node ID available" + end + local hg_log = exec( + "hg", "log", "-R", path, "-r", first_node_id .. ":", "--template", "{branches}\n" + ) + local branches = {} + for branch in hg_log:gmatch("(.-)\n") do + if branch == "" then branch = "default" end + if not branches[branch] then + branches[branch] = {} + local head_lines = exec( + "hg", "heads", "-R", path, "--template", "{node}\n", branch + ) + for node_id in string.gmatch(head_lines, "[^\n]+") do + table.insert(branches[branch], node_id) + end + end + end + return branches + end, + + extra_checks = function(path, exec) + local result = exec("hg", "heads", "-t", "-c") + for branch in string.gmatch(result, "[^\n]+") do + if branch == lf4rcs.config.hg.working_branch_name then + return nil, "open head found for branch " .. lf4rcs.config.hg.working_branch_name + end + end + return true + end, + + commit = function(path, exec, branch, target_node_id, close_message, merge_message) + exec("hg", "up", "-R", path, "-C", "-r", target_node_id) + exec("hg", "commit", "-R", path, "--close-branch", "-m", close_message) + if merge_message then + exec("hg", "up", "-R", path, "-C", "-r", "default") + exec("hg", "merge", "-R", path, "-r", "tip") + exec("hg", "commit", "-R", path, "-m", merge_message) + end + end + +} + +-- Grace period after creating an initiative for pushing changes during verification phase +-- disabled by default (nil), use PostgreSQL interval notation +-- config.lf4rcs.push_grace_period = nil + +lf4rcs.init() +--]] + +-- External references +-- ------------------------------------------------------------------------ +-- Rendering of external references + +--[[ +config.render_external_reference = { + draft = function(draft, wrapper) + wrapper(function() + ui.tag{ content = draft.external_reference) + end) + end, + initiative = function(initiative, wrapper) + wrapper(function() + ui.tag{ content = initiative.external_reference) + end) + end +end +--]] + +-- Admin logger +-- ------------------------------------------------------------------------ +-- Logging administrative activities +-- disabled by default + +--[[ +config.admin_logger = function(params) + + local adminid = app.session.member_id + local adminname = app.session.member.name + local url = params._webmcp_path + + -- do something (e.g. calling 'logger' via extos.pfilter) + +end +--]] + + +-- Network interface to bind to +-- ------------------------------------------------------------------------ +-- Available options: +-- true: bind to localhost (default) +-- false: bind to all interface +-- ------------------------------------------------------------------------ +-- config.localhost = true + + +-- Network port to bind to +-- ------------------------------------------------------------------------ +-- config.port = 8080 + + +-- Serving content via IPV6 +-- ------------------------------------------------------------------------ +-- Available options: +-- nil or false: do not serve via IPv6 (default) +-- true: serve via IPv6 +-- ------------------------------------------------------------------------ +-- config.ipv6 = false + + +-- Application server fork configuration +-- ------------------------------------------------------------------------ +-- config.fork = { +-- pre = 2, -- desired number of spare (idle) processes +-- min = 4, -- minimum number of processes +-- max = 128, -- maximum number of processes (hard limit) +-- delay = 0.125, -- delay (seconds) between creation of spare processes +-- error_delay = 2, -- delay (seconds) before retry of failed process creation +-- exit_delay = 2, -- delay (seconds) between destruction of excessive spare processes +-- idle_timeout = 900, -- idle time (seconds) after a fork gets terminated (0 for no timeout) +-- memory_limit = 0, -- maximum memory consumption (bytes) before process gets terminated +-- min_requests = 50, -- minimum count of requests handled before fork is terminated +-- max_requests = 100 -- maximum count of requests handled before fork is terminated +-- } + + +-- HTTP server options +-- ------------------------------------------------------------------------ +-- http_options = { +-- static_headers = {} -- string or table of static headers to be returned with every request +-- request_header_size_limit = 1024*1024, -- maximum size of request body sent by client +-- request_body_size_limit = 64*1024*1024, -- maximum size of request body sent by client +-- idle_timeout = 65, -- maximum time until receiving the first byte of the request headera +-- stall_timeout = 60, -- maximum time a client connection may be stalled +-- request_header_timeout = 120, -- maximum time until receiving the remaining bytes of the request header +-- response_timeout = 3600, -- time in which request body and response must be sent +-- maximum_input_chunk_size = 16384 -- tweaks behavior of request-body parser +-- minimum_output_chunk_size = 1024 -- chunk size for chunked-transfer-encoding +-- } + + +-- WebMCP accelerator +-- ------------------------------------------------------------------------ +-- uncomment the following line to use C implementations of chosen +-- functions: +-- ------------------------------------------------------------------------ +-- require 'webmcp_accelerator' + + +-- Trace debug +-- ------------------------------------------------------------------------ +-- uncomment the following line to enable debug trace +-- ------------------------------------------------------------------------ +-- config.enable_debug_trace = true + diff --git a/www-apps/liquid_feedback_frontend/liquid_feedback_frontend-3.2.1.ebuild b/www-apps/liquid_feedback_frontend/liquid_feedback_frontend-3.2.1.ebuild new file mode 100644 index 000000000000..758cd8b2f74d --- /dev/null +++ b/www-apps/liquid_feedback_frontend/liquid_feedback_frontend-3.2.1.ebuild @@ -0,0 +1,46 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit eutils toolchain-funcs + +PN_F=${PN} +PV_F=v${PV} +MY_P=${PN}-v${PV} + +DESCRIPTION="Internet platforms for proposition development and decision making" +HOMEPAGE="https://www.public-software-group.org/liquid_feedback" +SRC_URI="https://www.public-software-group.org/pub/projects/liquid_feedback/frontend/v${PV}/${MY_P}.tar.gz" + +LICENSE="HPND CC-BY-2.5" +SLOT="0" +KEYWORDS="~amd64" +IUSE="" + +RDEPEND="~www-apps/liquid_feedback_core-3.2.2 + ~www-servers/moonbridge-1.0.1 + >=www-apps/webmcp-2.1.0 + acct-user/apache" +DEPEND="${RDEPEND}" + +S="${WORKDIR}"/${MY_P} + +DOCS=( "${FILESDIR}"/postinstall-en.txt INSTALL.html INSTALL.mkd ) + +src_install() { + default + + insinto /var/lib/${PN} + doins -r app db env fastpath lib locale model static tmp + fowners apache:apache /var/lib/${PN}/tmp + dodir /var/log/liquid_feedback + keepdir /var/log/liquid_feedback + fowners apache:apache /var/log/liquid_feedback + + insinto /etc/${PN} + doins "${FILESDIR}"/myconfig-3.lua config/* + dosym ../../../etc/${PN} /var/lib/${PN}/config + + newinitd "${FILESDIR}"/liquid_feedback.initd liquid_feedback +} |