Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package smlnj for openSUSE:Factory checked 
in at 2026-09-16 17:44:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/smlnj (Old)
 and      /work/SRC/openSUSE:Factory/.smlnj.new.383539 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "smlnj"

Wed Sep 16 17:44:24 2026 rev:28 rq:1378222 version:2026.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/smlnj/smlnj.changes      2024-05-06 
17:55:34.400156040 +0200
+++ /work/SRC/openSUSE:Factory/.smlnj.new.383539/smlnj.changes  2026-09-16 
17:48:30.814481143 +0200
@@ -1,0 +2,15 @@
+Sat Sep 12 16:15:22 UTC 2026 - Martin Pluskal <[email protected]>
+
+- Update to 2026.2 (development line with LLVM code generator):
+  * bug fixes across compiler, runtime and Basis library
+  * new inline bit operations on words, Trilean structure in SML/NJ lib
+  * build.sh supports -install directory, macOS installers notarized
+- Switch to per-arch upstream source tarballs with bundled boot files;
+  drop obsolete pack_new_version.sh, urlgetter.sh and MLRISC.diff
+  (uninstalled doc helper with wrong perl path)
+- Narrow ExclusiveArch to x86_64 and aarch64 (upstream supports
+  64-bit Unix only); adds native aarch64 support
+- Build compiles the bundled LLVM code generator; new build
+  requirements on cmake, autoconf, automake and python3
+
+-------------------------------------------------------------------

Old:
----
  MLRISC.diff
  pack_new_version.sh
  smlnj-110.99.5.tar.xz
  urlgetter.sh

New:
----
  smlnj-amd64-unix-2026.2.tgz
  smlnj-arm64-unix-2026.2.tgz

----------(Old B)----------
  Old:- Switch to per-arch upstream source tarballs with bundled boot files;
  drop obsolete pack_new_version.sh, urlgetter.sh and MLRISC.diff
  (uninstalled doc helper with wrong perl path)
----------(Old E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ smlnj.spec ++++++
--- /var/tmp/diff_new_pack.FEP1N3/_old  2026-09-16 17:48:36.637724354 +0200
+++ /var/tmp/diff_new_pack.FEP1N3/_new  2026-09-16 17:48:36.641724521 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package smlnj
 #
-# Copyright (c) 2024 SUSE LLC
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,77 +17,91 @@
 
 
 Name:           smlnj
-Version:        110.99.5
+Version:        2026.2
 Release:        0
 Summary:        Standard ML of New Jersey
 License:        BSD-3-Clause
-Group:          Development/Languages/Other
 URL:            https://www.smlnj.org/
-Source:         smlnj-%{version}.tar.xz
-Source1:        pack_new_version.sh
-Source2:        urlgetter.sh
-Source3:        smlnj-rpmlintrc
-Patch1:         MLRISC.diff
+# Upstream ships one source tarball per Unix arch; contents are identical
+# except for the bundled boot.ARCH-unix.tgz bootstrap heap
+Source0:        
https://smlnj.org/dist/working/%{version}/smlnj-amd64-unix-%{version}.tgz
+Source1:        
https://smlnj.org/dist/working/%{version}/smlnj-arm64-unix-%{version}.tgz
+Source2:        smlnj-rpmlintrc
+# keep package names: --perl explodes autoconf/automake into perl(...) 
providers
+BuildRequires:  autoconf
+BuildRequires:  automake
+BuildRequires:  cmake
+BuildRequires:  gcc
 BuildRequires:  gcc-c++
-ExclusiveArch:  %{ix86} x86_64 ppc
+BuildRequires:  make
+BuildRequires:  python3
+# development line supports 64-bit AMD64/AArch64 Unix only
+ExclusiveArch:  x86_64 aarch64
 
 %description
 SML/NJ is an interactive compiler for the Standard ML Programming
 Language (1997 Revision).
 
 %prep
-%setup -q
-tar -xzf config.tgz
-# place urlgetter
-cp %{SOURCE2} .
-
-mkdir base
-cd base
-tar -xzf ../runtime.tgz
-tar -xzf ../MLRISC.tgz
-%patch -P 1
+%ifarch x86_64
+%setup -q -T -b 0 -n smlnj
+%endif
+%ifarch aarch64
+%setup -q -T -b 1 -n smlnj
+%endif
 
 %build
-# remove reference to remote d/l
-echo "SRCARCHIVEURL=/" > ./config/srcarchiveurl
-export BUILDDIR="%{_builddir}/%{name}-%{version}"
-export URLGETTER="%{_sourcedir}/urlgetter.sh"
-
-CFLAGS="%{optflags}" config/install.sh -default 64
+# build.sh builds and installs in one go (bundled LLVM, runtime, heap,
+# libraries); stage under BUILD, rpm wipes BUILDROOT before the install phase
+bash build.sh -install $PWD/stage-smlnj
 
 %install
-mkdir -p %{buildroot}%{_libdir}/smlnj
-cp -a bin lib %{buildroot}%{_libdir}/smlnj
+mkdir -p %{buildroot}%{_libdir}
+cp -a stage-smlnj %{buildroot}%{_libdir}/smlnj
+# LLVM static libs/headers are linked into run.* already; drop the rest,
+# keeping libHeap2Obj.a (heap2exec input)
+rm -f 
%{buildroot}%{_libdir}/smlnj/bin/{llvm-config,llvm-tblgen,llc,llvm-libtool-darwin}
+rm -f %{buildroot}%{_libdir}/smlnj/lib/libLLVM*.a 
%{buildroot}%{_libdir}/smlnj/lib/libCFGCodeGen.a
+rm -rf %{buildroot}%{_libdir}/smlnj/include 
%{buildroot}%{_libdir}/smlnj/lib/cmake
+# driver scripts bake the staging path; rewrite it to the final libdir path
+for f in %{buildroot}%{_libdir}/smlnj/bin/* 
%{buildroot}%{_libdir}/smlnj/bin/.*-sml; do
+  [ -f "$f" ] && sed -i -e "s,$PWD/stage-smlnj,%{_libdir}/smlnj," "$f"
+done
 mkdir -p %{buildroot}%{_bindir}
 for f in %{buildroot}%{_libdir}/smlnj/bin/*; do
-  sed -i -e "s,$PWD,%{_libdir}/smlnj," $f
-  ln -sf ${f#%{buildroot}} %{buildroot}%{_bindir}
-done
-for f in %{buildroot}%{_libdir}/smlnj/bin/.*-sml; do
-  sed -i -e "s,$PWD,%{_libdir}/smlnj," $f
+  # llvm-config is a build-time tool only; keep it out of PATH
+  [ "${f##*/}" = "llvm-config" ] && continue
+  [ -f "$f" ] && ln -sf %{_libdir}/smlnj/bin/${f##*/} 
%{buildroot}%{_bindir}/${f##*/}
 done
 
 # ship required env var
-# todo: move this to the build, if possible
-# especially as there is a conflict
-# if you installed both 32-bit and 64-bit archs
 mkdir -p %{buildroot}%{_sysconfdir}/profile.d
 echo "export SMLNJ_HOME=%{_libdir}/smlnj" > 
%{buildroot}%{_sysconfdir}/profile.d/%{name}.sh
 
+%check
+export SMLNJ_HOME=%{buildroot}%{_libdir}/smlnj
+export CM_PATHCONFIG=%{buildroot}%{_libdir}/smlnj/lib/pathconfig
+# @SMLversion is answered by the driver script itself; evaluate through the
+# heap instead so the check exercises heap load, CM and the Basis library
+HEAP=$(echo %{buildroot}%{_libdir}/smlnj/bin/.heap/sml.*-linux)
+RUN=$(echo %{buildroot}%{_libdir}/smlnj/bin/.run/run.*-linux)
+echo 'val _ = print (Int.toString (foldl (op+) 0 (List.tabulate (100, fn x => 
x * x))) ^ "\n");' | \
+  $RUN @SMLcmdname=sml @SMLload=$HEAP @SMLalloc=1M | grep -q 328350
+
 %files
-%doc %{version}-*
+%license LICENSE
+%doc README.md NOTES.md CONTRIBUTING.md
+%{_bindir}/asdlgen
+%{_bindir}/heap2exec
+%{_bindir}/heap2obj
 %{_bindir}/ml-antlr
 %{_bindir}/ml-build
 %{_bindir}/ml-burg
-%{_bindir}/ml-lex
 %{_bindir}/ml-makedepend
-%ifarch %{ix86}
-%{_bindir}/ml-nlffigen
-%endif
 %{_bindir}/ml-ulex
 %{_bindir}/ml-yacc
+%{_bindir}/print-cfg
 %{_bindir}/sml
 %{_libdir}/smlnj
-# todo: cook it into the build, if possible
 %config %{_sysconfdir}/profile.d/%{name}.sh
 

Reply via email to