From 88506e41aa27efbf1b05e26e4bff688a6d51f670 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 ++++ .../pleroma/patches/include_system_erts.patch | 14 ++++ .../patches/use_system_cacertfile.patch | 13 +++ srcpkgs/pleroma/template | 81 +++++++++++++++++++ 8 files changed, 136 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/include_system_erts.patch create mode 100644 srcpkgs/pleroma/patches/use_system_cacertfile.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/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/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/use_system_cacertfile.patch b/srcpkgs/pleroma/patches/use_system_cacertfile.patch new file mode 100644 index 000000000000..867d10808632 --- /dev/null +++ b/srcpkgs/pleroma/patches/use_system_cacertfile.patch @@ -0,0 +1,13 @@ +diff --git a/lib/pleroma/gun/conn.ex b/lib/pleroma/gun/conn.ex +index a566256..7865704 100644 +--- a/lib/pleroma/gun/conn.ex ++++ b/lib/pleroma/gun/conn.ex +@@ -25,7 +25,7 @@ defp maybe_add_tls_opts(opts, %URI{scheme: "http"}), do: opts + defp maybe_add_tls_opts(opts, %URI{scheme: "https"}) do + tls_opts = [ + verify: :verify_peer, +- cacertfile: CAStore.file_path(), ++ cacertfile: "/etc/ssl/certs.pem", + depth: 20, + reuse_sessions: false, + log_level: :warning, diff --git a/srcpkgs/pleroma/template b/srcpkgs/pleroma/template new file mode 100644 index 000000000000..b057c40bed99 --- /dev/null +++ b/srcpkgs/pleroma/template @@ -0,0 +1,81 @@ +# 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() { + echo "import Mix.Config" > config/prod.secret.exs + echo "config :tzdata, :data_dir, \"/var/lib/pleroma/elixir_tzdata_data\" +config :pleroma, :instance, static_dir: \"/etc/pleroma/static\" +config :pleroma, Pleroma.Uploaders.Local, uploads: \"/var/lib/pleroma/uploads\"" \ + >> config/config.exs + + 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 +}