From f4fd98bbe51732ee23e817ca2049a278caf39ab0 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/append_flags.patch | 15 ++++ srcpkgs/pleroma/patches/config.patch | 20 +++++ .../pleroma/patches/include_system_erts.patch | 14 ++++ srcpkgs/pleroma/patches/latest_castore.patch | 13 ++++ srcpkgs/pleroma/template | 75 +++++++++++++++++++ srcpkgs/pleroma/update | 1 + 10 files changed, 151 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/append_flags.patch create mode 100644 srcpkgs/pleroma/patches/config.patch create mode 100644 srcpkgs/pleroma/patches/include_system_erts.patch create mode 100644 srcpkgs/pleroma/patches/latest_castore.patch create mode 100644 srcpkgs/pleroma/template create mode 100644 srcpkgs/pleroma/update 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/append_flags.patch b/srcpkgs/pleroma/patches/append_flags.patch new file mode 100644 index 000000000000..558aefec4924 --- /dev/null +++ b/srcpkgs/pleroma/patches/append_flags.patch @@ -0,0 +1,15 @@ +diff --git a/deps/crypt/c_src/Makefile b/deps/crypt/c_src/Makefile +index 9c7e70b..ab31c50 100644 +--- a/deps/crypt/c_src/Makefile ++++ b/deps/crypt/c_src/Makefile +@@ -25,8 +25,8 @@ else ifeq ($(UNAME_SYS), Linux) + CFLAGS ?= -O3 -std=c99 -finline-functions -Wall -Wmissing-prototypes + LDFLAGS ?= -lcrypt + else +- CFLAGS ?= -DHAVE_CRYPT_R -O3 -std=c99 -finline-functions -Wall -Wmissing-prototypes +- LDFLAGS ?= -lpthread -lcrypt ++ CFLAGS += -DHAVE_CRYPT_R -O3 -std=c99 -finline-functions -Wall -Wmissing-prototypes ++ LDFLAGS += -lpthread -lcrypt + endif + else ifneq (,$(wildcard /usr/lib/libcrypt.*)) + CC ?= cc diff --git a/srcpkgs/pleroma/patches/config.patch b/srcpkgs/pleroma/patches/config.patch new file mode 100644 index 000000000000..a51bc10fc19c --- /dev/null +++ b/srcpkgs/pleroma/patches/config.patch @@ -0,0 +1,20 @@ +diff --git a/config/config.exs b/config/config.exs +index b50c910..9cf622b 100644 +--- a/config/config.exs ++++ b/config/config.exs +@@ -852,6 +852,8 @@ + {Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy, [max_running: 5, max_waiting: 5]} + ] + ++config :tzdata, :data_dir, "/var/lib/pleroma/elixir_tzdata_data" ++ + # Import environment specific config. This must remain at the bottom + # of this file so it overrides the configuration defined above. + import_config "#{Mix.env()}.exs" +diff --git a/config/prod.secret.exs b/config/prod.secret.exs +new file mode 100644 +index 0000000..23fd9f1 +--- /dev/null ++++ b/config/prod.secret.exs +@@ -0,0 +1 @@ ++import Mix.Config diff --git a/srcpkgs/pleroma/patches/include_system_erts.patch b/srcpkgs/pleroma/patches/include_system_erts.patch new file mode 100644 index 000000000000..d91136e37adc --- /dev/null +++ b/srcpkgs/pleroma/patches/include_system_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: "/usr/lib/erlang/erts-12.2.1" + ] + ] + ] diff --git a/srcpkgs/pleroma/patches/latest_castore.patch b/srcpkgs/pleroma/patches/latest_castore.patch new file mode 100644 index 000000000000..0fe5b7057ccb --- /dev/null +++ b/srcpkgs/pleroma/patches/latest_castore.patch @@ -0,0 +1,13 @@ +diff --git a/mix.exs b/mix.exs +index 4387cb0aa..21489ebac 100644 +--- a/mix.exs ++++ b/mix.exs +@@ -134,7 +134,7 @@ defp deps do + {:cachex, "~> 3.2"}, + {:poison, "~> 3.0", override: true}, + {:tesla, "~> 1.4.0", override: true}, +- {:castore, "~> 0.1"}, ++ {:castore, "~> 0.1.15, override: true"}, + {:cowlib, "~> 2.9", override: true}, + {:gun, "~> 2.0.0-rc.1", override: true}, + {:finch, "~> 0.10.0"}, diff --git a/srcpkgs/pleroma/template b/srcpkgs/pleroma/template new file mode 100644 index 000000000000..c77beb7037e7 --- /dev/null +++ b/srcpkgs/pleroma/template @@ -0,0 +1,75 @@ +# 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" +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 + +post_extract() { + mix local.hex --force + mix deps.get --only prod +} + +do_configure() { + 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 + # additional adjustment to include target erts instead of host erts + vsed -i "s,include_erts: \"/usr,include_erts: \"${XBPS_CROSS_BASE}," mix.exs + 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 erts-* 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 -s /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 -s /usr/lib/pleroma/bin/pleroma ${DESTDIR}/usr/bin/ + ln -s /usr/lib/pleroma/bin/pleroma_ctl ${DESTDIR}/usr/bin/ + + vsconf installation/pleroma.nginx + + vsv pleroma +} diff --git a/srcpkgs/pleroma/update b/srcpkgs/pleroma/update new file mode 100644 index 000000000000..5186b45dd6b3 --- /dev/null +++ b/srcpkgs/pleroma/update @@ -0,0 +1 @@ +site="https://git.pleroma.social/pleroma/pleroma/-/tags"