[packages/ejabberd] Up to 26.07 - ship bootstrap for mod_invites (no npm/curl at build time) - drop base64url/jiffy/unic

arekm arekm at pld-linux.org
Fri Sep 11 11:36:33 CEST 2026


commit 104021d8188af33c021350fe6effefc074aeac8f
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Fri Sep 11 11:33:42 2026 +0200

    Up to 26.07
    - ship bootstrap for mod_invites (no npm/curl at build time)
    - drop base64url/jiffy/unicode_util_compat: not needed
    - eimp: dlopen versioned sonames

 ejabberd-eimp-sonames.patch |  37 ++++++++++++++++
 ejabberd.spec               | 100 ++++++++++++++++++++++++--------------------
 2 files changed, 92 insertions(+), 45 deletions(-)
---
diff --git a/ejabberd.spec b/ejabberd.spec
index 0684761..5a815c4 100644
--- a/ejabberd.spec
+++ b/ejabberd.spec
@@ -9,67 +9,64 @@
 Summary:	Fault-tolerant distributed Jabber/XMPP server
 Summary(pl.UTF-8):	Odporny na awarie rozproszony serwer Jabbera/XMPP
 Name:		ejabberd
-Version:	26.02
+Version:	26.07
 Release:	1
 License:	GPL
 Group:		Applications/Communications
 # Source0:	https://www.process-one.net/downloads/downloads-action.php?file=/%%{version}/%%{name}-%%{version}.tar.gz
 Source0:	https://github.com/processone/ejabberd/archive/refs/tags/%{version}.tar.gz
-# Source0-md5:	351090f1d8769866cc49a16dc3702e4a
+# Source0-md5:	161ee1a1dcf8b2c00315c25d044592fd
 Source1:	%{name}.init
 Source2:	%{name}.sysconfig
 Source3:	%{name}.service
 Source4:	%{name}.logrotate
+# mod_invites landing page assets; without them the Makefile tries npm/curl at build time
+Source5:	https://github.com/twbs/bootstrap/releases/download/v5.3.8/bootstrap-5.3.8-dist.zip
+# Source5-md5:	47618f513bb53f5ed4d36a2170d3c478
 
 # Archives created with the ejabberd-pack_deps.sh script (in this repo)
-Source10:       ejabberd-base64url-20190617.tar.gz
-# Source10-md5:	5a12fd2fb1f992c850aba5115aab3dd4
-Source11:       ejabberd-cache_tab-20250711.tar.gz
-# Source11-md5:	e30cc84a853d6428dcae901353d80c07
-Source12:       ejabberd-eimp-20250711.tar.gz
-# Source12-md5:	0c5b1e205bb27411d3bb79cdcf5a8730
+Source11:	ejabberd-cache_tab-20260325.tar.gz
+# Source11-md5:	265a026990607d476c9527321fa79691
+Source12:	ejabberd-eimp-20260325.tar.gz
+# Source12-md5:	e9a307470a0d8af44bd6be02437c00c3
 Source13:       ejabberd-erlydtl-20250813.tar.gz
 # Source13-md5:	e061df1be17c0e7d1827907f27318a8e
-Source14:       ejabberd-ezlib-20250711.tar.gz
-# Source14-md5:	79a14e7cb3ead683fe51ee4b8ff03779
-Source15:       ejabberd-fast_tls-20250820.tar.gz
-# Source15-md5:	70a92a254691800f8a5db37d9922558e
-Source16:       ejabberd-fast_xml-20250711.tar.gz
-# Source16-md5:	23f0acad1dbe175aeda1f9d0b1ed6a73
-Source17:       ejabberd-fast_yaml-20250711.tar.gz
-# Source17-md5:	eb19d5ccfcb0774f4d715dde2dc86f49
-Source18:       ejabberd-idna-20180830.tar.gz
-# Source18-md5:	e34174d5c5e2e91611d3249c690f6d2d
-Source19:       ejabberd-jiffy-20220223.tar.gz
-# Source19-md5:	b98489245dadf5a36ac3408be21d835a
+Source14:	ejabberd-ezlib-20260325.tar.gz
+# Source14-md5:	2e6e5eeeacb05876011ef7c8974e03a7
+Source15:	ejabberd-fast_tls-20260325.tar.gz
+# Source15-md5:	bde8886ecde87a5d4a847f3f8ee0eae4
+Source16:	ejabberd-fast_xml-20260413.tar.gz
+# Source16-md5:	6f1e39b4ec3dcf7a88f833ad05de2451
+Source17:	ejabberd-fast_yaml-20260325.tar.gz
+# Source17-md5:	98622932e63f398b523ab24dd1017010
+Source18:	ejabberd-idna-20260121.tar.gz
+# Source18-md5:	76c837c5b67578cb4f7f7de086d4065b
 Source20:       ejabberd-jose-20251120.tar.gz
 # Source20-md5:	280dafb5cec4aafe7760467e0938106b
-Source21:       ejabberd-mqtree-20250711.tar.gz
-# Source21-md5:	d1c8cbee0f63ef9e40b7dce3670a6208
-Source22:       ejabberd-p1_acme-20260119.tar.gz
-# Source22-md5:	51281dfbfdb38f388b7c848db7b5d615
-Source23:       ejabberd-p1_mysql-20260119.tar.gz
-# Source23-md5:	dfe8a014cac8aeffb2209108bc8bc95e
+Source21:	ejabberd-mqtree-20260325.tar.gz
+# Source21-md5:	15817259e0bb19d9762338e4308e4267
+Source22:	ejabberd-p1_acme-20260325.tar.gz
+# Source22-md5:	a1dae6f8ac9715a8cd5d2db73cd7a36a
+Source23:	ejabberd-p1_mysql-20260216.tar.gz
+# Source23-md5:	f5904ad9d69d45c42a2fd9f96ca6b476
 Source24:       ejabberd-p1_oauth2-20240123.tar.gz
 # Source24-md5:	7c18266d7bd911e16948db91c28af651
-Source25:       ejabberd-p1_pgsql-20260119.tar.gz
-# Source25-md5:	9f05668d729ba06a95493e8a568feb22
-Source26:       ejabberd-p1_utils-20250711.tar.gz
-# Source26-md5:	6845ebdc2aedcbb6c2ed917f15890df7
+Source25:	ejabberd-p1_pgsql-20260325.tar.gz
+# Source25-md5:	da806d3bd0a9b8572e209e37befb099b
+Source26:	ejabberd-p1_utils-20260325.tar.gz
+# Source26-md5:	30449ea7e5f816ebfdc80f9b2c61ec1c
 Source27:       ejabberd-pkix-20240627.tar.gz
 # Source27-md5:	d6b72b6881b79f91cd06c05f71384e14
 Source28:       ejabberd-sqlite3-20240627.tar.gz
 # Source28-md5:	16e8a8f35ba615a3be79bf7b143a9ab7
-Source29:       ejabberd-stringprep-20250711.tar.gz
-# Source29-md5:	86847d5e38e6fce3f702ca5e1951efe3
-Source30:       ejabberd-stun-20250820.tar.gz
-# Source30-md5:	a8da79142e4ac13d9d9590d93cc6bd26
-Source31:       ejabberd-unicode_util_compat-20170729.tar.gz
-# Source31-md5:	1b348fdf38dba88ebed2f65125ad8590
-Source32:       ejabberd-xmpp-20260119.tar.gz
-# Source32-md5:	1e7fc8ad5e5cc0923ac719e382127e3a
-Source33:       ejabberd-yconf-20251023.tar.gz
-# Source33-md5:	76ac924f50ef7e20eb55f3c7ae8de119
+Source29:	ejabberd-stringprep-20260325.tar.gz
+# Source29-md5:	97b6bc552ab7ae35b604a5325f5493aa
+Source30:	ejabberd-stun-20260325.tar.gz
+# Source30-md5:	ecb0d86a9562fdacae92d25bb6837245
+Source32:	ejabberd-xmpp-20260730.tar.gz
+# Source32-md5:	aac5f31852a8599fe455f4acb6a6751d
+Source33:	ejabberd-yconf-20260325.tar.gz
+# Source33-md5:	be48b71a7ff82595769d019621ce330d
 Patch0:		%{name}-paths.patch
 Patch1:		%{name}-config.patch
 # Build from vendored deps and local rebar3 plugins without network access.
@@ -78,6 +75,7 @@ Patch2:		rebar3-offline-build.patch
 # https://github.com/paleg/ejabberd/compare/paleg:19.08...paleg:19.08-mod_logdb.patch
 Patch3:		%{name}-mod_logdb.patch
 Patch4:		system-elixir.patch
+Patch5:		%{name}-eimp-sonames.patch
 URL:		https://www.ejabberd.im/
 BuildRequires:	autoconf
 BuildRequires:	automake
@@ -88,6 +86,11 @@ BuildRequires:	erlang-rebar3-pc
 BuildRequires:	erlang-rebar3-provider-asn1
 BuildRequires:	erlang-rebar3-rebar-mix
 BuildRequires:	expat-devel >= 1.95
+# eimp autodetects these; keep them declared so image support does not depend on the build host
+BuildRequires:	gd-devel
+BuildRequires:	libjpeg-devel
+BuildRequires:	libpng-devel
+BuildRequires:	libwebp-devel
 BuildRequires:	openssl-devel
 %if %{with pam}
 BuildRequires:	pam-devel
@@ -95,6 +98,7 @@ BuildRequires:	pam-devel
 BuildRequires:	git-core
 BuildRequires:	rpmbuild(macros) >= 2.035
 BuildRequires:	sqlite3-devel
+BuildRequires:	unzip
 BuildRequires:	yaml-devel
 BuildRequires:	zlib-devel
 Requires(post):	/usr/bin/perl
@@ -105,6 +109,11 @@ Requires(post,preun):	/sbin/chkconfig
 Requires(post,preun,postun):	systemd-units >= 38
 %{?erlang_requires}
 Requires:	expat >= 1.95
+# eimp dlopen()s these sonames (see Patch5), rpm cannot generate the deps
+Requires:	gd >= 2.1.0
+Requires:	libjpeg >= 8
+Requires:	libpng >= 1.6
+Requires:	libwebp >= 1.0
 Requires:	elixir
 Requires:	rc-scripts
 Requires:	systemd-units >= 38
@@ -130,7 +139,7 @@ Requires:	%{name} = %{version}-%{release}
 Server-side logging module.
 
 %prep
-%setup -q -a 10 -a 11 -a 12 -a 13 -a 14 -a 15 -a 16 -a 17 -a 18 -a 19 -a 20 -a 21 -a 22 -a 23 -a 24 -a 25 -a 26 -a 27 -a 28 -a 29 -a 30 -a 31 -a 32 -a 33
+%setup -q -a 11 -a 12 -a 13 -a 14 -a 15 -a 16 -a 17 -a 18 -a 20 -a 21 -a 22 -a 23 -a 24 -a 25 -a 26 -a 27 -a 28 -a 29 -a 30 -a 32 -a 33
 %patch -P0 -p1
 %patch -P1 -p1
 %patch -P2 -p1
@@ -138,6 +147,10 @@ Server-side logging module.
 %patch -P3 -p1
 %endif
 %patch -P4 -p1
+%patch -P5 -p1
+
+unzip -q %{SOURCE5}
+mv bootstrap-5.3.8-dist priv/mod_invites/static/bootstrap
 
 %{__sed} -i -e 's, at ELIXIRDIR@,%{_libdir}/elixir,' ejabberdctl.template rebar.config
 rm -f mix.lock rebar.lock
@@ -160,9 +173,9 @@ unset GIT_DIR GIT_WORK_TREE
 %{__aclocal} -I m4
 %{__autoconf}
 %configure \
-	%{?with_pam --enable-pam} \
 	--enable-user=jabber \
  	%{__enable_disable new_sql_schema new-sql-schema} \
+	--enable-bootstrap \
 	--enable-elixir \
 	--enable-full-xml \
 	--enable-odbc \
@@ -375,7 +388,6 @@ fi
 %exclude %{_libdir}/ejabberd-%{version}/ebin/mod_logdb*
 %endif
 %{_libdir}/ejabberd-%{version}
-%{_libdir}/base64url-*
 %{_libdir}/cache_tab-*
 %{_libdir}/erlydtl-*
 %dir %{_libdir}/eimp-*
@@ -388,7 +400,6 @@ fi
 %{_libdir}/fast_xml-*
 %{_libdir}/fast_yaml-*
 %{_libdir}/idna-*
-%{_libdir}/jiffy-*
 %{_libdir}/jose-*
 %dir %{_libdir}/mqtree-*
 %{_libdir}/mqtree-*/ebin
@@ -412,7 +423,6 @@ fi
 %attr(755,root,root) %{_libdir}/sqlite3-*/priv/sqlite3_drv.so
 %{_libdir}/stringprep-*
 %{_libdir}/stun-*
-%{_libdir}/unicode_util_compat-*
 %{_libdir}/xmpp-*
 %{_libdir}/yconf-*
 %dir %attr(770,root,jabber) /var/lib/ejabberd
diff --git a/ejabberd-eimp-sonames.patch b/ejabberd-eimp-sonames.patch
new file mode 100644
index 0000000..34f0602
--- /dev/null
+++ b/ejabberd-eimp-sonames.patch
@@ -0,0 +1,37 @@
+# eimp dlopen()s unversioned library names, which exist only with -devel packages installed.
+--- a/deps/eimp/c_src/eimp.c
++++ b/deps/eimp/c_src/eimp.c
+@@ -516,7 +516,7 @@ int main(int argc, char *argv[])
+ {
+   void *handle;
+ #ifdef HAVE_JPEG
+-  handle = dlopen("libjpeg.so", RTLD_LAZY);
++  handle = dlopen("libjpeg.so.8", RTLD_LAZY);
+   if (handle) {
+     ptr_jpeg_CreateDecompress = dlsym(handle, "jpeg_CreateDecompress");
+     ptr_jpeg_std_error = dlsym(handle, "jpeg_std_error");
+@@ -527,21 +527,21 @@ int main(int argc, char *argv[])
+ #endif
+ 
+ #ifdef HAVE_WEBP
+-  handle = dlopen("libwebp.so", RTLD_LAZY);
++  handle = dlopen("libwebp.so.7", RTLD_LAZY);
+   if (handle) {
+     ptr_WebPGetInfo = dlsym(handle, "WebPGetInfo");
+   }
+ #endif
+ 
+ #ifdef HAVE_PNG
+-  handle = dlopen("libpng.so", RTLD_LAZY);
++  handle = dlopen("libpng16.so.16", RTLD_LAZY);
+   if (handle) {
+     ptr_png_sig_cmp = dlsym(handle, "png_sig_cmp");
+   }
+ #endif
+ 
+ #ifdef HAVE_GD
+-  handle = dlopen("libgd.so", RTLD_LAZY);
++  handle = dlopen("libgd.so.3", RTLD_LAZY);
+   if (handle) {
+     ptr_gdImageCreateFromWebpPtr = dlsym(handle, "gdImageCreateFromWebpPtr");
+     ptr_gdImageCreateFromPngPtr = dlsym(handle, "gdImageCreateFromPngPtr");
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/ejabberd.git/commitdiff/104021d8188af33c021350fe6effefc074aeac8f



More information about the pld-cvs-commit mailing list