From b2de7a9ebcfbd4620f0fb55fea003824835e52a7 Mon Sep 17 00:00:00 2001 From: Gerben Jan Dijkman Date: Fri, 28 Oct 2022 11:25:03 +0200 Subject: [PATCH] Added lurch --- x11-plugins/lurch/Manifest | 4 + ...0.6.8-axc-0.3.3-libsignal-protocol-c.patch | 91 ++++++++++++++++++ .../lurch-0.6.8-libsignal-protocol-c.patch | 92 +++++++++++++++++++ x11-plugins/lurch/lurch-0.6.8-r2.ebuild | 76 +++++++++++++++ x11-plugins/lurch/lurch-0.7.0.ebuild | 52 +++++++++++ x11-plugins/lurch/metadata.xml | 8 ++ 6 files changed, 323 insertions(+) create mode 100644 x11-plugins/lurch/Manifest create mode 100644 x11-plugins/lurch/files/lurch-0.6.8-axc-0.3.3-libsignal-protocol-c.patch create mode 100644 x11-plugins/lurch/files/lurch-0.6.8-libsignal-protocol-c.patch create mode 100644 x11-plugins/lurch/lurch-0.6.8-r2.ebuild create mode 100644 x11-plugins/lurch/lurch-0.7.0.ebuild create mode 100644 x11-plugins/lurch/metadata.xml diff --git a/x11-plugins/lurch/Manifest b/x11-plugins/lurch/Manifest new file mode 100644 index 0000000..ffee016 --- /dev/null +++ b/x11-plugins/lurch/Manifest @@ -0,0 +1,4 @@ +DIST axc-0.3.3.tar.gz 39497 BLAKE2B 7f13f2ee6bb98fecc3ff5ddb726e19d412d588613be50e6666e8bfdcf248e842b97c00cccbc19fef55c0df50053e0b80539f0573dfa7a54a8c88725735382bc6 SHA512 9fe494eb4a264a31c137a4f21e4a53358d55f6f6b3bd2fab0fbe43c0e85f2372127a2a85d00d2e308f3785b30cf8161de3f696aaf71c232f594ef3c54b8f6771 +DIST libomemo-0.7.0.tar.gz 23678 BLAKE2B 91b57f6c93d5f777996687ea0648d996950bc893314e4e3ee02973c70165a9e533ab6980a420bd270d7a4acaa45da7cf83b401b69e2b305b017a3fbb42d5b4d2 SHA512 f9843a35958e4a7930ed9e9f4bef1e765bd51721d6e79d2c092bad86d26f092d22d1cdd4df1c4017b9434bb84c33e226985136d35dfcbcf9b915eb3cae862fa5 +DIST lurch-0.6.8.tar.gz 398267 BLAKE2B 23211e82b80e26105f0d62510dc321abdd818eae21dd9f3e24f6ab01458748df64283acb99371a8ece34248f06e9e04edd35da30c771f45779474b3b43c3a53d SHA512 8b93523049d05a00f1d7286ec9d0d8d03c7ae46793ac72ea08c0d12cb5193324be4805fb6278d6c0f906d9c63db9d7ce6ca2a21442236df51e0ee0b48de6ef1d +DIST lurch-0.7.0.tar.gz 66885 BLAKE2B 1a3cc1dbfd8f999b677b23d02952a3c28c922d438cfe81a3bfd3a03cc49723fcc4d52a549bfc7ecb45616a0c939b0f78a39f73a4439bc5337d4da656e9d42b11 SHA512 082f85d25fbcb184b7b6d827e1e6bac073ad46064a144ca24245164558ca9e0cdfcdc4187ac3da5f8738e0476e759e67801d0fd24598b31e2d86053f8af576b6 diff --git a/x11-plugins/lurch/files/lurch-0.6.8-axc-0.3.3-libsignal-protocol-c.patch b/x11-plugins/lurch/files/lurch-0.6.8-axc-0.3.3-libsignal-protocol-c.patch new file mode 100644 index 0000000..261c3ac --- /dev/null +++ b/x11-plugins/lurch/files/lurch-0.6.8-axc-0.3.3-libsignal-protocol-c.patch @@ -0,0 +1,91 @@ +From d5c2d8902ec268a1e6f8a9f5bd6fabde1e8ddf6a Mon Sep 17 00:00:00 2001 +From: Sebastian Pipping +Date: Thu, 3 Dec 2020 23:59:00 +0100 +Subject: [PATCH] axc: Use system's libsignal-protocol-c shared library + +--- + Makefile | 26 ++++++++++---------------- + 1 file changed, 10 insertions(+), 16 deletions(-) + +diff --git a/lib/axc/Makefile b/lib/axc/Makefile +index 601e4fb..d08dd85 100644 +--- a/lib/axc/Makefile ++++ b/lib/axc/Makefile +@@ -14,6 +14,9 @@ GLIB_LDFLAGS ?= $(shell $(PKG_CONFIG) --libs glib-2.0) + SQLITE3_CFLAGS ?= $(shell $(PKG_CONFIG) --cflags sqlite3) + SQLITE3_LDFLAGS ?= $(shell $(PKG_CONFIG) --libs sqlite3) + ++LIBSIGNAL_PROTOCOL_C_CFLAGS ?= $(shell $(PKG_CONFIG) --cflags libsignal-protocol-c) ++LIBSIGNAL_PROTOCOL_C_LDFLAGS ?= $(shell $(PKG_CONFIG) --libs libsignal-protocol-c) ++ + LIBGCRYPT_CONFIG ?= libgcrypt-config + LIBGCRYPT_LDFLAGS ?= $(shell $(LIBGCRYPT_CONFIG) --libs) + +@@ -24,26 +27,24 @@ TDIR = test + TFN = test_all + CDIR = coverage + +-AX_DIR=./lib/libsignal-protocol-c +-AX_BDIR=$(AX_DIR)/build/src +-AX_PATH=$(AX_BDIR)/libsignal-protocol-c.a +- + PKGCFG_C=$(GLIB_CFLAGS) \ + $(SQLITE3_CFLAGS) \ ++ $(LIBSIGNAL_PROTOCOL_C_CFLAGS) \ + $(LIBGCRYPT_CFLAGS) + + PKGCFG_L=$(GLIB_LDFLAGS) \ + $(SQLITE3_LDFLAGS) \ ++ $(LIBSIGNAL_PROTOCOL_C_LDFLAGS) \ + $(LIBGCRYPT_LDFLAGS) + +-HEADERS=-I$(AX_DIR)/src ++HEADERS= + CFLAGS += $(HEADERS) $(PKGCFG_C) -std=c11 -g -Wall -Wextra -Wpedantic \ + -Wstrict-overflow -fno-strict-aliasing -funsigned-char \ + -fno-builtin-memset + CPPFLAGS += -D_XOPEN_SOURCE=700 -D_BSD_SOURCE -D_POSIX_SOURCE -D_GNU_SOURCE -D_DEFAULT_SOURCE + TESTFLAGS=$(HEADERS) $(PKGCFG_C) -g -O0 --coverage + PICFLAGS=-fPIC $(CFLAGS) +-LDFLAGS += -pthread -ldl $(PKGCFG_L) $(AX_PATH) -lm ++LDFLAGS += -pthread -ldl $(PKGCFG_L) -lm + LDFLAGS_T= -lcmocka $(LDFLAGS) + + all: $(BDIR)/libaxc.a +@@ -51,7 +52,7 @@ all: $(BDIR)/libaxc.a + $(BDIR): + $(MKDIR_P) $@ + +-client: $(SDIR)/message_client.c $(BDIR)/axc_store.o $(BDIR)/axc_crypto.o $(BDIR)/axc.o $(AX_PATH) ++client: $(SDIR)/message_client.c $(BDIR)/axc_store.o $(BDIR)/axc_crypto.o $(BDIR)/axc.o + $(MKDIR_P) $@ + $(CC) $(CPPFLAGS) $(CFLAGS) $^ -o $@/$@.o $(LDFLAGS) + +@@ -73,15 +74,8 @@ $(BDIR)/libaxc.a: $(BDIR)/axc.o $(BDIR)/axc_crypto.o $(BDIR)/axc_store.o + $(BDIR)/libaxc-nt.a: $(BDIR)/axc-nt.o $(BDIR)/axc_crypto.o $(BDIR)/axc_store.o + $(AR) rcs $@ $^ + +-$(AX_PATH): +- cd $(AX_DIR) && \ +- $(MKDIR_P) build && \ +- cd build && \ +- $(CMAKE) $(CMAKE_FLAGS) .. && \ +- $(MAKE) +- + .PHONY: test +-test: $(AX_PATH) test_store test_client ++test: test_store test_client + + .PHONY: test_store + test_store: $(SDIR)/axc_store.c $(SDIR)/axc_crypto.c $(TDIR)/test_store.c +@@ -109,6 +103,6 @@ clean: + + .PHONY: clean-all + clean-all: clean +- rm -rf client $(BDIR) $(CDIR) $(AX_DIR)/build ++ rm -rf client $(BDIR) $(CDIR) + + +-- +2.27.0 + diff --git a/x11-plugins/lurch/files/lurch-0.6.8-libsignal-protocol-c.patch b/x11-plugins/lurch/files/lurch-0.6.8-libsignal-protocol-c.patch new file mode 100644 index 0000000..4b3de98 --- /dev/null +++ b/x11-plugins/lurch/files/lurch-0.6.8-libsignal-protocol-c.patch @@ -0,0 +1,92 @@ +From 72f286f389236fe99cb10fdeda3ee9b474de645d Mon Sep 17 00:00:00 2001 +From: Sebastian Pipping +Date: Fri, 4 Dec 2020 00:10:17 +0100 +Subject: [PATCH] lurch: Use system's libsignal-protocol-c shared library + +--- + Makefile | 37 ++++++++++++++++++++++++------------- + 1 file changed, 24 insertions(+), 13 deletions(-) + +diff --git a/Makefile b/Makefile +index 32bc9c9..937401d 100644 +--- a/Makefile ++++ b/Makefile +@@ -28,16 +28,21 @@ LIBPURPLE_LDFLAGS=$(shell $(PKG_CONFIG) --cflags purple) \ + XML2_CFLAGS ?= $(shell $(XML2_CONFIG) --cflags) + XML2_LDFLAGS ?= $(shell $(XML2_CONFIG) --libs) + ++LIBSIGNAL_PROTOCOL_C_CFLAGS ?= $(shell $(PKG_CONFIG) --cflags libsignal-protocol-c) ++LIBSIGNAL_PROTOCOL_C_LDFLAGS ?= $(shell $(PKG_CONFIG) --libs libsignal-protocol-c) ++ + LIBGCRYPT_LDFLAGS ?= $(shell $(LIBGCRYPT_CONFIG) --libs) + + PKGCFG_C=$(GLIB_CFLAGS) \ + $(LIBPURPLE_CFLAGS) \ ++ $(LIBSIGNAL_PROTOCOL_C_CFLAGS) \ + $(XML2_CFLAGS) + + + PKGCFG_L=$(shell $(PKG_CONFIG) --libs sqlite3 mxml) \ + $(GLIB_LDFLAGS) \ + $(LIBPURPLE_LDFLAGS) \ ++ $(LIBSIGNAL_PROTOCOL_C_LDFLAGS) \ + $(XML2_LDFLAGS) \ + $(LIBGCRYPT_LDFLAGS) + +@@ -51,7 +56,7 @@ else + endif + endif + +-HEADERS=-I$(HDIR)/jabber -I$(LOMEMO_SRC) -I$(AXC_SRC) -I$(AX_DIR)/src ++HEADERS=-I$(HDIR)/jabber -I$(LOMEMO_SRC) -I$(AXC_SRC) + CFLAGS += -std=c11 -Wall -g -Wstrict-overflow $(PKGCFG_C) $(HEADERS) + PLUGIN_CPPFLAGS=-DPURPLE_PLUGINS + # -D_BSD_SOURCE can be removed once nobody uses glibc <= 2.18 any more +@@ -79,26 +84,32 @@ AXC_SRC=$(AXC_DIR)/src + AXC_BUILD=$(AXC_DIR)/build + AXC_PATH=$(AXC_BUILD)/libaxc-nt.a + +-AX_DIR=$(AXC_DIR)/lib/libsignal-protocol-c +-AX_PATH=$(AX_DIR)/build/src/libsignal-protocol-c.a +- +-VENDOR_LIBS=$(LOMEMO_PATH) $(AXC_PATH) $(AX_PATH) ++VENDOR_LIBS=$(LOMEMO_PATH) $(AXC_PATH) + + + ### make rules + # +-all: $(BDIR)/lurch.so ++all: $(BDIR)/lurch.so $(BDIR)/linkdummy ++ ++ ++$(BDIR)/linkdummy.c: ++ echo 'int main() { return 0; }' > $@ ++ ++$(BDIR)/liblinklurch.so: $(BDIR)/lurch.so | $(BDIR) ++ ln -f $^ $@ ++ ++$(BDIR)/linkdummy: $(BDIR)/linkdummy.o $(BDIR)/liblinklurch.so ++ $(CC) \ ++ $(shell $(PKG_CONFIG) --libs purple) \ ++ -L$(BDIR) -llinklurch \ ++ $^ \ ++ -o $@ \ ++ $(LDFLAGS) ++ + + $(BDIR): + $(MKDIR_P) build + +-$(AX_PATH): +- cd $(AX_DIR)/ && \ +- $(MKDIR_P) build && \ +- cd build && \ +- $(CMAKE) $(CMAKE_FLAGS) .. \ +- && $(MAKE) +- + $(AXC_PATH): + $(MAKE) -C "$(AXC_DIR)" build/libaxc-nt.a + +-- +2.27.0 + diff --git a/x11-plugins/lurch/lurch-0.6.8-r2.ebuild b/x11-plugins/lurch/lurch-0.6.8-r2.ebuild new file mode 100644 index 0000000..cc21686 --- /dev/null +++ b/x11-plugins/lurch/lurch-0.6.8-r2.ebuild @@ -0,0 +1,76 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit toolchain-funcs + +AXC_PV=0.3.3 +LIBOMEMO_PV=0.7.0 + +DESCRIPTION="OMEMO encryption for libpurple (XEP-0384)" +HOMEPAGE="https://github.com/gkdr/lurch" +SRC_URI="https://github.com/gkdr/lurch/releases/download/v${PV}/lurch-${PV}-src.tar.gz -> ${P}.tar.gz + https://github.com/gkdr/axc/archive/v${AXC_PV}.tar.gz -> axc-${AXC_PV}.tar.gz + https://github.com/gkdr/libomemo/archive/v${LIBOMEMO_PV}.tar.gz -> libomemo-${LIBOMEMO_PV}.tar.gz" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~amd64 ~x86 ~arm64 ~arm" +IUSE="" + +# NOTE +# The build systems of axc (ex-libaxolotl) +# at https://github.com/gkdr/axc and of libomemo +# at https://github.com/gkdr/libomemo build static +# libraries (*.a files) only, so it is not clear when or +# how to best unbundle them into standalone packages. +# Related yet-to-be-merged pull requests to build shared libraries +# exist upstream: +# - https://github.com/gkdr/axc/pull/17 +# - https://github.com/gkdr/lurch/pull/151 +# - https://github.com/gkdr/libomemo/pull/30 +RDEPEND=" + dev-db/sqlite + dev-libs/glib + dev-libs/libgcrypt:= + dev-libs/libxml2 + dev-libs/mxml + net-im/pidgin:= + >=net-libs/libsignal-protocol-c-2.3.2 + " +DEPEND=" + ${RDEPEND} + virtual/pkgconfig + " + +PATCHES=( + # Unbundle net-libs/libsignal-protocol-c + "${FILESDIR}"/${P}-libsignal-protocol-c.patch + "${FILESDIR}"/${P}-axc-${AXC_PV}-libsignal-protocol-c.patch +) + +src_prepare() { + # Upgrade outdated bundle of axc + rm -R lib/axc || die + mv "${WORKDIR}"/axc-${AXC_PV} lib/axc || die + + # Upgrade outdated bundle of libomemo + rm -R lib/libomemo || die + mv "${WORKDIR}"/libomemo-${LIBOMEMO_PV} lib/libomemo || die + + # Unbundle axc's bundled net-libs/libsignal-protocol-c + rm -R lib/axc/lib/libsignal-protocol-c || die + + default +} + +src_compile() { + local makeargs=( + CC="$(tc-getCC)" + LIBGCRYPT_CONFIG="$(tc-getPROG LIBGCRYPT_CONFIG libgcrypt-config)" + PKG_CONFIG="$(tc-getPKG_CONFIG)" + XML2_CONFIG="$(tc-getPROG XML2_CONFIG xml2-config)" + ) + emake "${makeargs[@]}" +} diff --git a/x11-plugins/lurch/lurch-0.7.0.ebuild b/x11-plugins/lurch/lurch-0.7.0.ebuild new file mode 100644 index 0000000..69acd90 --- /dev/null +++ b/x11-plugins/lurch/lurch-0.7.0.ebuild @@ -0,0 +1,52 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit toolchain-funcs + +DESCRIPTION="OMEMO encryption for libpurple (XEP-0384)" +HOMEPAGE="https://github.com/gkdr/lurch" +SRC_URI="https://github.com/gkdr/lurch/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="GPL-3" # likely not GPL-3+, https://github.com/gkdr/lurch/issues/165 +SLOT="0" +KEYWORDS="~amd64 ~x86 ~arm ~arm64" +IUSE="test" + +# NOTE: Some of these dependencies seem like leftovers in the build system +# and can probably be dropped with lurch >=0.7.1 +# (https://github.com/gkdr/lurch/issues/164) +RDEPEND=" + dev-db/sqlite + dev-libs/glib + dev-libs/libgcrypt:= + dev-libs/libxml2 + dev-libs/mxml + net-im/pidgin:= + net-libs/libaxc + net-libs/libomemo + >=net-libs/libsignal-protocol-c-2.3.2 + " +DEPEND=" + ${RDEPEND} + virtual/pkgconfig + test? ( dev-util/cmocka ) + " + +RESTRICT="!test? ( test )" + +src_prepare() { + rm -Rv lib/{axc,libomemo} || die # unbundle + default +} + +src_compile() { + local makeargs=( + CC="$(tc-getCC)" + LIBGCRYPT_CONFIG="$(tc-getPROG LIBGCRYPT_CONFIG libgcrypt-config)" + PKG_CONFIG="$(tc-getPKG_CONFIG)" + XML2_CONFIG="$(tc-getPROG XML2_CONFIG xml2-config)" + ) + emake "${makeargs[@]}" +} diff --git a/x11-plugins/lurch/metadata.xml b/x11-plugins/lurch/metadata.xml new file mode 100644 index 0000000..6a22e9e --- /dev/null +++ b/x11-plugins/lurch/metadata.xml @@ -0,0 +1,8 @@ + + + + + sping@gentoo.org + Sebastian Pipping + +