From cee7c512a2f066b319df51f5ee9318ead264cff2 Mon Sep 17 00:00:00 2001 From: Joel Beckmeyer Date: Fri, 11 Feb 2022 14:05:04 -0500 Subject: [PATCH] New package: pleroma-2.4.2 --- srcpkgs/pleroma/INSTALL | 7 ++ srcpkgs/pleroma/files/pleroma/finish | 2 + srcpkgs/pleroma/files/pleroma/log/run | 1 + srcpkgs/pleroma/files/pleroma/run | 3 + srcpkgs/pleroma/patches/no_include_erts.patch | 14 ++++ srcpkgs/pleroma/template | 83 +++++++++++++++++++ 6 files changed, 110 insertions(+) create mode 100644 srcpkgs/pleroma/INSTALL create mode 100755 srcpkgs/pleroma/files/pleroma/finish create mode 120000 srcpkgs/pleroma/files/pleroma/log/run create mode 100755 srcpkgs/pleroma/files/pleroma/run create mode 100644 srcpkgs/pleroma/patches/no_include_erts.patch create mode 100644 srcpkgs/pleroma/template diff --git a/srcpkgs/pleroma/INSTALL b/srcpkgs/pleroma/INSTALL new file mode 100644 index 000000000000..0db26c12be00 --- /dev/null +++ b/srcpkgs/pleroma/INSTALL @@ -0,0 +1,7 @@ +if [ "${UPDATE}" = "no" ] && [ "${ACTION}" = "post" ]; then + if [ ! -e /etc/pleroma/COOKIE ]; then + dd if=/dev/urandom bs=40 count=1 | base64 > /etc/pleroma/COOKIE + fi + chmod 600 /etc/pleroma/COOKIE + chown _pleroma:_pleroma /etc/pleroma/COOKIE +fi diff --git a/srcpkgs/pleroma/files/pleroma/finish b/srcpkgs/pleroma/files/pleroma/finish new file mode 100755 index 000000000000..4a7de0a2c050 --- /dev/null +++ b/srcpkgs/pleroma/files/pleroma/finish @@ -0,0 +1,2 @@ +#!/bin/sh +exec chpst -u _pleroma:_pleroma pleroma stop diff --git a/srcpkgs/pleroma/files/pleroma/log/run b/srcpkgs/pleroma/files/pleroma/log/run new file mode 120000 index 000000000000..3a5b4a586051 --- /dev/null +++ b/srcpkgs/pleroma/files/pleroma/log/run @@ -0,0 +1 @@ +/usr/bin/vlogger \ No newline at end of file diff --git a/srcpkgs/pleroma/files/pleroma/run b/srcpkgs/pleroma/files/pleroma/run new file mode 100755 index 000000000000..7e3dae4e67a5 --- /dev/null +++ b/srcpkgs/pleroma/files/pleroma/run @@ -0,0 +1,3 @@ +#!/bin/sh +chpst -u _pleroma:_pleroma pleroma_ctl migrate +exec chpst -u _pleroma:_pleroma pleroma start diff --git a/srcpkgs/pleroma/patches/no_include_erts.patch b/srcpkgs/pleroma/patches/no_include_erts.patch new file mode 100644 index 000000000000..ab3e56cd19a5 --- /dev/null +++ b/srcpkgs/pleroma/patches/no_include_erts.patch @@ -0,0 +1,14 @@ +diff --git a/mix.exs b/mix.exs +index db2f1f0..115817c 100644 +--- a/mix.exs ++++ b/mix.exs +@@ -38,7 +38,8 @@ def project do + include_executables_for: [:unix], + applications: [ex_syslogger: :load, syslog: :load, eldap: :transient], + steps: [:assemble, &put_otp_version/1, ©_files/1, ©_nginx_config/1], +- config_providers: [{Pleroma.Config.ReleaseRuntimeProvider, []}] ++ config_providers: [{Pleroma.Config.ReleaseRuntimeProvider, []}], ++ include_erts: false + ] + ] + ] diff --git a/srcpkgs/pleroma/template b/srcpkgs/pleroma/template new file mode 100644 index 000000000000..076de658a855 --- /dev/null +++ b/srcpkgs/pleroma/template @@ -0,0 +1,83 @@ +# Template file for 'pleroma' +pkgname=pleroma +version=2.4.2 +revision=1 +wrksrc="pleroma-v${version}" +hostmakedepends="cmake elixir rebar3 git" +makedepends="file-devel erlang" +depends="erlang" +short_desc="Social networking software compatible with other Fediverse software" +maintainer="Joel Beckmeyer " +license="AGPL-3.0-only,CC-BY-4.0,CC-BY-SA-4.0,custom:Unsplash" +homepage="https://pleroma.social" +distfiles="https://git.pleroma.social/pleroma/pleroma/-/archive/v${version}/pleroma-v${version}.tar.gz" +checksum=90f3d4a0490c17c972a562d8d47067b2316cf0115df4d289c2cddd2309b03274 + +system_accounts="_pleroma" +_pleroma_homedir="/var/lib/pleroma" + +make_dirs="/var/lib/pleroma 0700 _pleroma _pleroma + /etc/pleroma 0755 _pleroma _pleroma + /etc/pleroma/static 0755 _pleroma _pleroma" + +export MIX_ENV=prod +export MIX_REBAR3=/usr/bin/rebar3 + +if [ "$CROSS_BUILD" ]; then + # fixes linking syslog dependency + LDFLAGS+=" -L${XBPS_CROSS_BASE}/usr/lib/erlang/usr/lib" +fi + +do_configure() { + echo "import Mix.Config" > config/prod.secret.exs + echo "config :tzdata, :data_dir, \"/var/lib/pleroma/elixir_tzdata_data\"" \ + >> config/config.exs + echo "config :pleroma, :instance, static_dir: \"/etc/pleroma/static\"" \ + >> config/config.exs + echo "config :pleroma, Pleroma.Uploaders.Local, uploads: \"/var/lib/pleroma/uploads\"" \ + >> config/config.exs + + mix local.hex --force + mix deps.get --only prod + + # fixes undefined symbol error + vsed -e 's,CFLAGS ?=,CFLAGS +=,' \ + -e 's,LDFLAGS ?=,LDFLAGS +=,' -i deps/crypt/c_src/Makefile + + if [ "$CROSS_BUILD" ]; then + # fixes building fast_html + _erts_path="$(cd ${XBPS_CROSS_BASE}/usr/lib/erlang/erts-* && pwd)" + vsed -i "s,ERLANG_PATH =.*,ERLANG_PATH = ${_erts_path}," deps/fast_html/Makefile + fi +} + +do_build() { + # without the DEBUG flag, mix gives unhelpful errors for diagnosing c library + # issues + DEBUG=1 mix release +} + +do_install() { + vlicense COPYING + vlicense AGPL-3 + + cd _build/prod/rel/pleroma + vmkdir usr/lib/pleroma + vcopy lib usr/lib/pleroma + # the Erlang Distribution cookie needs to be unique to each installation + rm releases/COOKIE + vcopy releases usr/lib/pleroma + ln -sf /etc/pleroma/COOKIE ${DESTDIR}/usr/lib/pleroma/releases + + # make entrypoint look in standard location instead of cwd + vsed -i 's,^RELEASE_ROOT=.*,RELEASE_ROOT="/usr/lib/pleroma",' bin/pleroma + vcopy bin usr/lib/pleroma + + vmkdir usr/bin + ln -sf /usr/lib/pleroma/bin/pleroma ${DESTDIR}/usr/bin/ + ln -sf /usr/lib/pleroma/bin/pleroma_ctl ${DESTDIR}/usr/bin/ + + vsconf installation/pleroma.nginx + + vsv pleroma +}