Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package tcl for openSUSE:Factory checked in 
at 2026-09-04 12:35:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/tcl (Old)
 and      /work/SRC/openSUSE:Factory/.tcl.new.1265 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "tcl"

Fri Sep  4 12:35:44 2026 rev:75 rq:1375403 version:8.6.18

Changes:
--------
--- /work/SRC/openSUSE:Factory/tcl/tcl.changes  2026-06-08 14:05:47.172462457 
+0200
+++ /work/SRC/openSUSE:Factory/.tcl.new.1265/tcl.changes        2026-09-04 
12:35:45.637787423 +0200
@@ -1,0 +2,27 @@
+Wed Aug 26 12:28:00 UTC 2026 - Martin Pluskal <[email protected]>
+
+- Split the test suite into a multibuild "test" flavour: the main
+  build no longer runs it (%check measured 326s of a 471s build on
+  aarch64) and no longer pulls in the timezone build dependency;
+  the test flavour builds only a src.rpm
+- Do not build the test flavour in the Factory rings and staging,
+  which set %_with_ringdisabled
+- Modernise the spec: drop the obsolete BuildRoot, Group, defattr
+  and PreReq tags, brace all macros, use %autosetup and %make_build
+- Point URL, Source0 and the description at tcl-lang.org; the
+  tcl.tk domain no longer resolves at all
+- Run the full test suite: drop the 31-entry known-failures
+  whitelist, every id of which passes again (47159 tests, 43939
+  passed, 3220 skipped, 0 failed on aarch64); only the riscv64 and
+  qemu-only entries are kept
+- Fail the build on a crashed or aborted test run, which previously
+  passed silently: the pipeline reported tee's exit status, and
+  tests/all.tcl returns 0 even on failures unless ERROR_ON_FAILURES
+  is set
+- Drop the dead s390 test guard; only s390x still exists
+- Drop the ppc64 tcl-64bit and tcl-devel-64bit Obsoletes, added in
+  2009 for the SLE10-era biarch packages
+- Drop the %post scriptlet removing a /usr/lib/tcl8.6 compat symlink
+  from the pre-2005 layout; no tcl 8.6 package has ever created it
+
+-------------------------------------------------------------------

New:
----
  _multibuild

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

Other differences:
------------------
++++++ tcl.spec ++++++
--- /var/tmp/diff_new_pack.qCnnUr/_old  2026-09-04 12:35:47.127839738 +0200
+++ /var/tmp/diff_new_pack.qCnnUr/_new  2026-09-04 12:35:47.129839808 +0200
@@ -16,44 +16,56 @@
 #
 
 
+%global flavor @BUILD_FLAVOR@%{nil}
+%if "%{flavor}" == "test"
+%define psuffix -test
+%bcond_without test
+%global debug_package %{nil}
+%else
+%define psuffix %{nil}
+%bcond_with test
+%endif
+%define origname tcl
+
 %if 0%{!?_rpmmacrodir:1}
 %define _rpmmacrodir %{_rpmconfigdir}/macros.d
 %endif
-
-Name:           tcl
-URL:            http://www.tcl.tk
-Version:        8.6.18
-Release:        0
 %define         rrc %{nil}
-%define TCL_MINOR %(echo %version | cut -c1-3)
+%define TCL_MINOR %(echo %{version} | cut -c1-3)
 %define itclver 4.3.7
-BuildRoot:      %{_tmppath}/%{name}-%{version}-build
+%define scriptdir %{_libdir}/tcl
+Name:           %{origname}%{psuffix}
+Version:        8.6.18
+Release:        0
 Summary:        The Tcl Programming Language
 License:        TCL
-Group:          Development/Languages/Tcl
-Provides:       itcl = %itclver
-Provides:       tclsh
-Provides:       tclsh%{TCL_MINOR}
-Obsoletes:      itcl < %itclver
-# Require the extension from the SQLite package instead of shipping
-# the embedded copy, which might be outdated.
-Requires:       sqlite3-tcl
-# bug437293
-%ifarch ppc64
-Obsoletes:      tcl-64bit
-%endif
-#
-PreReq:         /bin/rm
-Source0:        
http://prdownloads.sourceforge.net/tcl/%{name}%{version}%{rrc}-src.tar.gz
+URL:            https://www.tcl-lang.org
+Source0:        
https://prdownloads.sourceforge.net/tcl/%{origname}%{version}%{rrc}-src.tar.gz
 Source1:        tcl-rpmlintrc
 Source2:        baselibs.conf
 Source3:        macros.tcl
 Patch0:         tcl-fix-socket-13.1.patch
 BuildRequires:  autoconf
-BuildRequires:  pkg-config
+BuildRequires:  pkgconfig
 BuildRequires:  zlib-devel
-# Required for test suite:
+%if %{with test}
+# Required for the test suite only.
 BuildRequires:  timezone
+%endif
+%if %{without test}
+# Require the extension from the SQLite package instead of shipping
+# the embedded copy, which might be outdated.
+Requires:       sqlite3-tcl
+Provides:       itcl = %{itclver}
+Provides:       tclsh
+Provides:       tclsh%{TCL_MINOR}
+Obsoletes:      itcl < %{itclver}
+%endif
+# The rings and staging build every flavour unless told otherwise; the test
+# suite has no business in the bootstrap ring.
+%if %{with test} && 0%{?_with_ringdisabled}
+ExclusiveArch:  do_not_build
+%endif
 
 %description
 Tcl (Tool Command Language) is a very powerful but easy to learn
@@ -63,20 +75,15 @@
 mature yet evolving language that is truly cross platform, easily
 deployed and highly extensible.
 
-For more information on Tcl see http://www.tcl.tk and
-http://wiki.tcl.tk .
+For more information on Tcl see https://www.tcl-lang.org and
+https://wiki.tcl-lang.org .
 
+%if %{without test}
 %package devel
 Summary:        Header Files and C API Documentation for Tcl
-Group:          Development/Libraries/Tcl
-Requires:       tcl = %version
-# bug437293
-%ifarch ppc64
-Obsoletes:      tcl-devel-64bit
-%endif
-Obsoletes:      itcl-devel < %itclver
-Provides:       itcl-devel = %itclver
-#
+Requires:       tcl = %{version}
+Provides:       itcl-devel = %{itclver}
+Obsoletes:      itcl-devel < %{itclver}
 
 %description devel
 This package contains header files and documentation needed for writing
@@ -85,11 +92,11 @@
 
 This package is not needed for writing extensions or applications in
 the Tcl language itself.
+%endif
 
 %prep
-%setup -q -n %name%version
-%patch -P 0
-if ! test -d pkgs/itcl%itclver; then
+%autosetup -p0 -n %{origname}%{version}
+if ! test -d pkgs/itcl%{itclver}; then
    : New itcl version: pkgs/itcl* . Please update the %%itclver macro 
acordingly.
    exit 1
 fi
@@ -100,57 +107,26 @@
 
 %build
 %global _lto_cflags %{_lto_cflags} -ffat-lto-objects
-%define scriptdir %_libdir/tcl
-export TCL_PACKAGE_PATH="%scriptdir:%_datadir/tcl"
-export TCL_LIBRARY="%scriptdir/tcl%TCL_MINOR"
+export TCL_PACKAGE_PATH="%{scriptdir}:%{_datadir}/tcl"
+export TCL_LIBRARY="%{scriptdir}/tcl%{TCL_MINOR}"
 cd unix
 autoconf
 %configure \
        --enable-man-symlinks \
        --enable-man-compression=gzip \
        --without-tzdata
-make %{?_smp_mflags} \
-       PACKAGE_DIR="%scriptdir"
+%make_build \
+    PACKAGE_DIR="%{scriptdir}"
 
 %check
+%if %{with test}
 cd unix
-# Some of the regressioin tests write to $HOME, so better redirect them
+# Some of the regression tests write to $HOME, so better redirect them
 mkdir home
 export HOME=$PWD/home
-# Run the testsuite to gather some data for the profile-based
-# optimisation and let rpmbuild fail on unexpected test failures.
+# Only arch-specific known failures are left; the 31 ids that used to be
+# listed here all pass again on current Tcl and were dropped.
 cat > known-failures <<EOF
-async-4.2
-async-4.3
-chan-17.4
-chan-io-53.9
-clock-33.5a
-clock-33.8
-clock-33.8a
-event-7.5
-event-11.4
-event-12.4
-exec-19.1
-http-3.25
-interp-34.9
-interp-34.13
-interp-36.7
-io-53.9
-msgcat-14.2
-socket_inet6-2.13
-timer-1.1
-timer-2.1
-timer-3.2
-timer-6.4
-timer-6.5
-thread-7.24
-thread-7.25
-thread-7.28
-thread-7.29
-thread-7.30
-thread-7.31
-thread-20.9
-thread-21.16
 %ifarch riscv64
 binary-40.3
 %endif
@@ -159,55 +135,64 @@
 thread-16.2
 %endif
 EOF
-%ifnarch s390 s390x
+%ifnarch s390x
+# pipefail so that an aborted or crashed run fails the build: tests/all.tcl
+# exits 0 even on failures unless ERROR_ON_FAILURES is set, and without
+# pipefail the pipeline below would only ever report tee's status.
+set -o pipefail
 make test 2>&1 | tee testresults
-grep FAILED testresults | grep -Fvwf known-failures && exit 1
+# known-failures is empty on most arches, and `grep -Fvwf` on an empty
+# pattern file exits 1 instead of passing every line through -- which would
+# silently tolerate ALL failures. Filter only when there is something to 
filter.
+if test -s known-failures; then
+    grep FAILED testresults | grep -Fvwf known-failures && exit 1
+else
+    grep FAILED testresults && exit 1
+fi
+%endif
 %endif
 exit 0
 
 %install
+%if %{without test}
 make -C unix install install-private-headers \
-       INSTALL_ROOT=%buildroot
-rm -f %buildroot%scriptdir/tcl%TCL_MINOR/ldAix
-ln -sf tclsh%TCL_MINOR %buildroot%_prefix/bin/tclsh
-ln -sf tclsh.1.gz %buildroot%_mandir/man1/tclsh%TCL_MINOR.1.gz
-mkdir -p %buildroot%_datadir/tcl
-install -D %{S:3} -m 644 %buildroot%_rpmmacrodir/macros.tcl
+    INSTALL_ROOT=%{buildroot}
+rm -f %{buildroot}%{scriptdir}/tcl%{TCL_MINOR}/ldAix
+ln -sf tclsh%{TCL_MINOR} %{buildroot}%{_bindir}/tclsh
+ln -sf tclsh.1.gz %{buildroot}%{_mandir}/man1/tclsh%{TCL_MINOR}.1.gz
+mkdir -p %{buildroot}%{_datadir}/tcl
+install -D -m 0644 %{SOURCE3} %{buildroot}%{_rpmmacrodir}/macros.tcl
 
 # The information in TCL_LIBS is not needed for shared libraries
 # and we don't support static linking.
-sed -i "/^TCL_LIBS=/s/'.*'$//" %buildroot%_libdir/tclConfig.sh
-sed -i "/^Libs.private: /s/ .*$//" %buildroot%_libdir/pkgconfig/tcl.pc
-
-%if "%_lib" == "lib64"
-%post
-test -L /usr/lib/tcl%TCL_MINOR && /bin/rm -f /usr/lib/tcl%TCL_MINOR
-exit 0
+sed -i "/^TCL_LIBS=/s/'.*'$//" %{buildroot}%{_libdir}/tclConfig.sh
+sed -i "/^Libs.private: /s/ .*$//" %{buildroot}%{_libdir}/pkgconfig/tcl.pc
 %endif
 
+%if %{without test}
 %files
-%defattr(-,root,root,755)
 %doc README.md changes license.terms ChangeLog*
-%docdir %_mandir/mann
-%doc %_mandir/man1/*
-%doc %_mandir/mann/*
-%_prefix/bin/*
-%_libdir/lib*.so
-%_datadir/tcl
-%scriptdir
-%exclude %scriptdir/*/*.a
-%exclude %scriptdir/*/*Config.sh
-%exclude %scriptdir/*/tclAppInit.c
-%_rpmmacrodir/macros.tcl
+%docdir %{_mandir}/mann
+%doc %{_mandir}/man1/*
+%doc %{_mandir}/mann/*
+%{_bindir}/*
+%{_libdir}/lib*.so
+%{_datadir}/tcl
+%{scriptdir}
+%exclude %{scriptdir}/*/*.a
+%exclude %{scriptdir}/*/*Config.sh
+%exclude %{scriptdir}/*/tclAppInit.c
+%{_rpmmacrodir}/macros.tcl
 
 %files devel
-%defattr(-,root,root)
-%doc %_mandir/man3/*
-%_includedir/*
-%scriptdir/*/tclAppInit.c
-%attr(0644,root,root) %_libdir/*.a
-%attr(0644,root,root) %scriptdir/*/*.a
-%scriptdir/*/*Config.sh
-%_libdir/*Config.sh
-%_libdir/pkgconfig/*
+%doc %{_mandir}/man3/*
+%{_includedir}/*
+%{scriptdir}/*/tclAppInit.c
+%attr(0644,root,root) %{_libdir}/*.a
+%attr(0644,root,root) %{scriptdir}/*/*.a
+%{scriptdir}/*/*Config.sh
+%{_libdir}/*Config.sh
+%{_libdir}/pkgconfig/*
+
+%endif
 

++++++ _multibuild ++++++
<multibuild>
  <flavor>test</flavor>
</multibuild>

Reply via email to