Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package mold for openSUSE:Factory checked in at 2026-10-07 19:32:08 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/mold (Old) and /work/SRC/openSUSE:Factory/.mold.new.3698736 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mold" Wed Oct 7 19:32:08 2026 rev:65 rq:1382849 version:3.0.0 Changes: -------- --- /work/SRC/openSUSE:Factory/mold/mold.changes 2026-09-21 12:03:08.866059597 +0200 +++ /work/SRC/openSUSE:Factory/.mold.new.3698736/mold.changes 2026-10-07 19:32:48.783161285 +0200 @@ -1,0 +2,24 @@ +Tue Oct 6 17:29:29 UTC 2026 - Martin Pluskal <[email protected]> + +- Update to version 3.0.0: + * Complete rewrite from C++ to Rust; 2.42.1 was the last C++ + release. Upstream claims drop-in replacement for 2.42.1: + same command line, targets and output modulo the fixes + below (Gentoo-tested, not verified on openSUSE). + * Build system is now Cargo (Rust >= 1.95 plus a C compiler); + the oneTBB dependency is gone. + * Keep the previous no-mimalloc behavior via the + system-allocator cargo feature; link system zlib and zstd. + * Compatibility fixes: statically-linked executables with + version scripts, --gc-sections keeping --init/--fini + functions, common-symbol size merging, --icf on exported + functions, deterministic output, single-dash options parsed + as GNU ld reads them. + * Test suite moved from ctest to cargo test. + * Many more fixes and improvements; see upstream's release + notes for the full list. +- Switch sources to a _service (tar_scm + cargo_vendor + + cargo_audit) shipping mold-3.0.0.tar.zst and vendor.tar.zst + with the mimalloc git dependency vendored for offline build. + +------------------------------------------------------------------- Old: ---- mold-2.42.1.tar.gz New: ---- _service mold-3.0.0.tar.zst vendor.tar.zst ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ mold.spec ++++++ --- /var/tmp/diff_new_pack.e8mUj1/_old 2026-10-07 19:32:49.838205346 +0200 +++ /var/tmp/diff_new_pack.e8mUj1/_new 2026-10-07 19:32:49.839205388 +0200 @@ -17,31 +17,27 @@ Name: mold -Version: 2.42.1 +Version: 3.0.0 Release: 0 Summary: A Modern Linker (mold) License: MIT URL: https://github.com/rui314/mold -Source: https://github.com/rui314/mold/archive/v%{version}/mold-%{version}.tar.gz +Source0: %{name}-%{version}.tar.zst +Source1: vendor.tar.zst +BuildRequires: cargo BuildRequires: clang -BuildRequires: cmake +BuildRequires: diffutils +BuildRequires: gawk BuildRequires: gcc-c++ -BuildRequires: gdb BuildRequires: glibc-devel-static -BuildRequires: libdwarf-tools -BuildRequires: llvm -BuildRequires: llvm-gold BuildRequires: pkgconfig -BuildRequires: tbb-devel -BuildRequires: valgrind +BuildRequires: rust >= 1.95 +BuildRequires: tar BuildRequires: zstd BuildRequires: pkgconfig(libzstd) BuildRequires: pkgconfig(zlib) Suggests: update-alternatives OrderWithRequires(pre): update-alternatives -%ifarch x86_64 -BuildRequires: gcc-32bit -%endif %description mold is a faster drop-in replacement for existing Unix linkers. @@ -51,19 +47,36 @@ build time especially in rapid debug-edit-rebuild cycles. %prep -%autosetup -p1 +%autosetup -p1 -a1 %build -%cmake \ - -DMOLD_USE_MIMALLOC=OFF \ - -DMOLD_USE_SYSTEM_TBB=ON -%cmake_build +# mold embeds the wrapper library dir at compile time (default +# /usr/local/lib); openSUSE uses lib64, so export it for both +# the build and the install below. +export MOLD_LIBDIR=%{_libdir} +export ZSTD_SYS_USE_PKG_CONFIG=1 +cargo build --release --offline --features system-allocator %install -%cmake_install +export MOLD_LIBDIR=%{_libdir} +# install-mold.sh hardcodes PREFIX/share/doc, not the distro docdir, so install +# the same layout by hand into the openSUSE paths. +install -D -m 0755 target/release/mold %{buildroot}%{_bindir}/mold +ln -sf mold %{buildroot}%{_bindir}/ld.mold +install -D -m 0755 target/release/mold-wrapper.so %{buildroot}%{_libdir}/mold/mold-wrapper.so +install -d %{buildroot}%{_libexecdir}/mold +ln -sf ../../bin/mold %{buildroot}%{_libexecdir}/mold/ld +install -D -m 0644 docs/mold.1 %{buildroot}%{_mandir}/man1/mold.1 +ln -sf mold.1 %{buildroot}%{_mandir}/man1/ld.mold.1 +install -D -m 0644 LICENSE %{buildroot}%{_docdir}/mold/LICENSE %check -%ctest +export MOLD_LIBDIR=%{_libdir} +export ZSTD_SYS_USE_PKG_CONFIG=1 +# Full suite: unit tests plus the shell integration tests. Targets without +# a compiler+QEMU pair in the buildroot are skipped by the runner, so this +# exercises every native case with no cross toolchain needed. +cargo test --release --offline --features system-allocator %pre if [ $1 -eq 2 ] && [ -f %{_sbindir}/update-alternatives ] && [ -f %{_sysconfdir}/alternatives/ld ] ; then ++++++ _service ++++++ <services> <service name="tar_scm" mode="manual"> <param name="url">https://github.com/rui314/mold</param> <param name="scm">git</param> <param name="exclude">.git</param> <param name="revision">v3.0.0</param> <param name="versionformat">@PARENT_TAG@</param> <param name="versionrewrite-pattern">v(.*)</param> </service> <service name="set_version" mode="manual"> <param name="basename">mold</param> </service> <service name="recompress" mode="manual"> <param name="file">*.tar</param> <param name="compression">zst</param> </service> <service name="cargo_vendor" mode="manual"> <param name="srcdir">mold</param> <param name="compression">zst</param> <param name="update">true</param> </service> <service name="cargo_audit" mode="manual"> <param name="srcdir">mold</param> </service> </services>
