We've got some updates regarding OBS and GitHub/GitLab integration. Have a look and let us know what you think! 🧐

https://openbuildservice.org/2021/06/14/scm-integration-improvements/

File tcl.spec of Package tcl

#
# spec file for package tcl (Version 8.5.5)
#
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#

# norootforbuild


Name:           tcl
Url:            http://www.tcl.tk
Version:        8.5.5
Release:        1
%define TCL_MINOR %(echo %version | cut -c1-3)
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
Summary:        The Tcl Programming Language
License:        BSD 3-Clause
Group:          Development/Languages/Tcl
AutoReqProv:    on
Provides:       tclsh tclsh%{TCL_MINOR}
PreReq:         /bin/rm
Source0:        %name%{version}-src.tar.bz2
Source1:        tcl-rpmlintrc
Source2:        baselibs.conf
Source3:        macros.tcl
Patch0:         tcl.patch

%description
Tcl (Tool Command Language) is a very powerful but easy to learn
dynamic programming language, suitable for a very wide range of uses,
including web and desktop applications, networking, administration,
testing and many more. Open source and business-friendly, Tcl is a
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 .



Authors:
--------
    The Tcl Core Team <tcl-core@lists.sourceforge.net>

%package devel
Group:          Development/Libraries/Tcl
License:        BSD 3-Clause
Summary:        Header Files and C API Documentation for Tcl
Requires:       tcl = %version

%description devel
This package contains header files and documentation needed for writing
Tcl extensions in compiled languages like C, C++, etc., or for
embedding the Tcl interpreter in programs written in such languages.

This package is not needed for writing extensions or applications in
the Tcl language itself.



Authors:
--------
    The Tcl Core Team <tcl-core@lists.sourceforge.net>

%prep
%setup -q -n %name%version
%patch0

%build
cd unix
%configure \
	--enable-treads \
	--enable-man-symlinks \
	--enable-man-compression=gzip
%define scriptdir %_libdir/tcl
MAKE='make %{?jobs:-j%jobs}
	TCL_LIBRARY="%scriptdir/tcl%TCL_MINOR"
	TCL_PACKAGE_PATH="%_libdir/tcl %_datadir/tcl"
	CFLAGS="%optflags $PFLAGS"
	LDFLAGS_OPTIMIZE="%optflags $PFLAGS"
	SHLIB_LD="gcc -shared %optflags $PFLAGS"'
# Build with instrumentation for profiling
PFLAGS="%cflags_profile_generate"
eval $MAKE
# Some of the regressioin 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.
cat > known-failures <<EOF
httpold-4.12
mathop-25.14
EOF
eval $MAKE test 2>&1 | tee testresults
grep FAILED testresults | grep -Fqvwf known-failures && exit 1
# If we don't do profile based optimisation, we are done at this point.
if test -n "$PFLAGS"; then
    # Rebuild and use the profiling results
    make clean
    PFLAGS="%cflags_profile_feedback"
    eval $MAKE
fi

%install
make -C unix install install-private-headers \
	INSTALL_ROOT=%buildroot \
	TCL_LIBRARY="%scriptdir/tcl%TCL_MINOR" 
rm -f %buildroot%scriptdir/tcl%TCL_MINOR/ldAix
ln -sf tclsh%TCL_MINOR %buildroot%_prefix/bin/tclsh
mkdir -p %buildroot%_datadir/tcl
install -D %{S:3} -m 644 %buildroot/etc/rpm/macros.tcl

%clean
rm -rf %buildroot
%if %_lib == lib64

%post
test -L /usr/lib/tcl%TCL_MINOR && /bin/rm -f /usr/lib/tcl%TCL_MINOR
exit 0
%endif

%files
%defattr(-,root,root,755)
%doc README changes license.terms ChangeLog*
%docdir %_mandir/mann
%doc %_mandir/man1/*
%doc %_mandir/mann/*
%_prefix/bin/*
%_libdir/lib*.so
%_datadir/tcl
%scriptdir
%exclude %scriptdir/*/tclAppInit.c
%config /etc/rpm/macros.tcl

%files devel
%defattr(-,root,root)
%doc %_mandir/man3/*
%_includedir/*
%scriptdir/*/tclAppInit.c
%_libdir/*.a
%_libdir/tclConfig.sh

%changelog
* Wed Oct 15 2008 max@suse.de
- Bugfix release 8.5.5:
  * Prevent overflow crash in [lrepeat].
  * Fixed crash in [namespace inscope] involving Tcl_ConcatObj().
  * Improved efficiency converting between lists and dicts.
  * Corrected failure to export [min] and [max] from
  ::tcl::mathfunc.
  * Fixed incorrect isqrt() results on a few values and platforms.
  * Tcl now only asks the system to unload shared libraries that
  explicitly Tcl's [unload] facility.
  * Corrected broken handling of ***= regular expressions.
* Mon Sep 08 2008 max@suse.de
- New release: 8.5.4:
  * fix mem leak in [seek] on reflected channels
  * preserve item intreps when converting from dict to list
  * [info frame] returns file data in more cases
  * fix rare panic in TclStackFree
  * 64bit support for http zlib crc
  * automatic [package provide] for TMs
* Thu Jul 10 2008 max@suse.de
- New release: 8.5.3:
  * Add support for bidirectional [fcopy].
  * Fix [fcopy] callbacks.
  * Fix [chan postevent] crash.
  * Fix broken [format {%% d}].
  * Fix [dict append] crash.
  * Fix crash in [glob -dir {} a].
  * Support TM packages in Safe Base.
* Wed May 07 2008 max@suse.de
- Added a fix and a test for a crash in the [dict append] command.
* Mon Apr 07 2008 max@suse.de
- Added /etc/rpm/macros.tcl
- Fixed behaviour of "%% d" format string.
* Wed Apr 02 2008 max@suse.de
- New release: 8.5.2:
  * Speed: 8.5 now runs 10%% faster than 8.4 with bytecode
  improvements, object caching and reduced memory usage.
  * Bignums: Tcl now supports arbitrary-precision integers, which
  improves math operations on large integers.
  * Safer interps: Tcl's powerful safe interpreter mechanism now
  has improved control of time and command limits in slave
  interpreters.
  * clock command: More robust implementation of command for
  specifying time, with significant l10n and i18n improvements.
  * dict command: New data structure that allows access to data
  by value rather than a variable name, which is substantially
  faster.
  * Additional improvements: Faster list search, new and improved
  mathematics procedures, anonymous procedures, new ways to
  package Tcl extensions, Tcl-level custom channel types, file
  and line location information for each command, and more.
  * More details in /usr/share/doc/packages/tcl/changes .
- Changed install locations for extensions: Compiled packages now
  go into their own subdir under /usr/lib{,64}/tcl, script-only
  packages go into /usr/share/tcl .
* Wed Jun 06 2007 max@suse.de
- New Patchlevel release: 8.4.15
- fix [file copy] on afs
- use > 32 async sockets on 64bit system
- fix list shimmer crash in [lsort]
- fix list shimmer crash in [foreach]
- fix list shimmer crash in [array set]
- fix buffer overflow in [registry keys]
* Tue Oct 17 2006 max@suse.de
- New patchlevel release: 8.4.14rc2
- srand() accept wide input.
- interactive Tcl_Main blocks main loop
- proc re-compile: preserve the previous bytecode while references
  still on the stack
- fixed [glob] on VFS
- fix intermittent failures in TclUnixWaitForFile()
- fix filesystem segfaults
- use of MT-safe system calls
- make [lappend $nonList] complain
- alignment fixes in unicode encoding routines
- [set ::http::strict 1] (default value is 0) to enable URL validity
  checking against RFC 2986
* Mon Sep 11 2006 max@suse.de
- New version: 8.4.13
- Fixes abs(MIN_INT) handling (obsoletes tcl-abs.patch)
- Fixes exec (#127822, obsoletes tcl-exec.patch)
- Several other bugfixes.
* Wed Jan 25 2006 mls@suse.de
- converted neededforbuild to BuildRequires
* Mon Jan 16 2006 max@suse.de
- Fixed a potential segfault in the exec command (#127822).
* Mon Dec 12 2005 max@suse.de
- Fixed abs(MIN_INT) handling.
* Thu Dec 08 2005 max@suse.de
- New version: 8.4.12
* Sun Nov 06 2005 schwab@suse.de
- Fix syntax error in unix configure script.
* Wed Jul 27 2005 max@suse.de
- New version: 8.4.11
- Fixed package loading path. Now Tcl extensions are found under
  /usr/share/tcl, /usr/lib, and on biarch platforms also under
  /usr/lib64.
* Tue Jun 14 2005 max@suse.de
- New version: 8.4.10
- Moved script libraries to /usr/share/tcl .
* Mon May 09 2005 max@suse.de
- Fixed profile-based optimisation with gcc4 (tcl-profile.patch).
* Mon Mar 21 2005 max@suse.de
- Added prerequisites for the trigger scripts (bug #74027).
* Fri Mar 18 2005 max@suse.de
- Make sure that tcl-32bit finds the script libraries when
  installed on a 64bit system.
* Fri Dec 03 2004 max@suse.de
- New version: 8.4.9
* Mon Nov 22 2004 max@suse.de
- New version: 8.4.8
* Thu Aug 19 2004 schwab@suse.de
- Fix broken tests that depend on particular directory order.
* Tue Jul 27 2004 max@suse.de
- New version: 8.4.7
* Thu May 27 2004 max@suse.de
- Added tcl-utf8-null.patch to fix bug #39165. Tcl wrote nullbytes
  as 0xc0, 0xc80 instead of 0x00 when writing to a UTF-8 encoded
  channel.
* Fri Mar 05 2004 max@suse.de
- Updated to the official 8.4.6 source tarball which fixes a
  memory leak.
* Fri Feb 27 2004 max@suse.de
- New version: 8.4.6
* Fri Feb 06 2004 max@suse.de
- Added -fno-strict-aliasing to CFLAGS.
* Tue Jan 20 2004 schwab@suse.de
- Move %%define before first use.
* Thu Jan 15 2004 max@suse.de
- Added LDFLAGS for gcc-3.4 and feedback based optimization.
* Mon Jan 12 2004 max@suse.de
- New version: 8.4.5
- Removed tclbench, since "make test" seems to be enough exercise
  for the feedback based optimization.
* Thu Oct 02 2003 max@suse.de
- Removed support for building static libs from the spec file.
- Added open-std-channels.patch to prevent tclsh from crashing
  when it's started with one or more of std{in,out,err} closed.
* Tue Sep 02 2003 max@suse.de
- Disabled building of the static library to save build time and
  CD space.
* Wed Aug 13 2003 max@suse.de
- Cleaned up the spec file from cruft, left from the times when it
  built multiple packages.
- Added support for GCC feedback based optimization.
- Added support for parallel compilaton.
* Thu Jul 24 2003 max@suse.de
- Fixed a typo, that broke [pkg_mkIndex -verbose].
* Wed Jul 23 2003 max@suse.de
- New version: 8.4.4
* Wed May 21 2003 max@suse.de
- New version: 8.4.3
- Removed obsolete patches
* Wed Mar 05 2003 max@suse.de
- Updated to official 8.4.2 release tarball
- Essental diff to RC1 added as tcl-20030305.path.gz
* Thu Feb 27 2003 max@suse.de
- Updated to 8.4.2 RC1, and added an essential diff to the
  previous tarball (tcl-20030227.patch.bz2).
- tcl-StringObj.patch is no longer needed.
- Disabled the httpold-4.12 test, because it sometimes fails on
  Hammer due to timing issues.
* Tue Feb 18 2003 max@suse.de
- Updated to CVS HEAD, and added diff to the previous tarball
  for completeness.
- Added tcl-StringObj.patch to fix a bug in conjunction
  with expect (Bug #23694).
- Made the testsuite break build if any test fails.
* Fri Feb 07 2003 max@suse.de
- Upgrade to CVS HEAD (8.4.2pre).
* Mon Nov 25 2002 max@suse.de
- Upgrade to 8.4.1
- Added tcl-HEAD.patch with fixes that went in after
  the 8.4.1 release.
- Moved itcl, iwidgets, tk, and tclx into separate soure packages.
* Mon Sep 09 2002 max@suse.de
- Added patch to final 8.4.0.
- Another couple of memleak and docu fixes.
* Thu Sep 05 2002 max@suse.de
- Next round of fixes (tcl8.4-20020905.patch tk8.4-20020905.patch).
- A detailed ChangeLog is at the top of the new patches.
- Removed autoconf and automake from neededforbuild.
* Tue Sep 03 2002 max@suse.de
- Another CVS snapshot for Tcl and Tk.
- The version numbers have been bumped from 8.4b3 to 8.4.0
- A couple more bug fixes. For details see the new ChangeLog
  entries in the patches.
* Mon Sep 02 2002 max@suse.de
- Added patches for to update Tcl and Tk to current CVS HEAD to
  fix some segfault cases and memleaks e.g. bug #18651.
  See ChangeLog for more details.
- Renamed Object.3 to Tcl_Obj.3 to resolve a name conflict.
* Thu Aug 15 2002 max@suse.de
- Updated Tcl and Tk to the latest CVS snapshot which is close
  to the official 8.4b2 release.
- Updated Itcl to 3.3 from CVS because it better fits with Tcl8.4.
- Removed excessive braces from RPM macros, and some more cleanups
  in the spec file.
- Using x-devel-packages instead of xf86 in needeforbuild.
- socklen_t.patch isn't needed anymore.
- Fixed CFLAGS (-fPIC) for TclX.
- Updated TclX to 8.4 from CVS (needed for Tcl/Tk 8.4).
  This doesn't include /usr/bin/tcl and /usr/bin/wishx anymore.
  In case a script needs one of them, please use a normal tclsh
  or wish and add a line saying "package require Tclx" to the
  beginning of the script.
* Fri Jul 26 2002 max@suse.de
- Removed gdb from #neededforbuild.
* Mon Jul 22 2002 max@suse.de
- Updated to the latest CVS HEAD.
- Fixed socket calls on s390x (socklen_t.patch).
* Mon Jul 01 2002 max@suse.de
- New Versions of Tcl and Tk: 8.4b1
* Fri Jun 07 2002 max@suse.de
- New Version of tkcon: 2.3.
- Fixed directory permissions in iwidgets.
- Put things that are common to all subpackages into shell
  functions to make maintainance of the spec file easier.
* Wed Apr 24 2002 max@suse.de
- Fixed creation of Tk's pkgIndex.tcl.
- Fixed permissions and path to wish in iwidgets demo scripts.
* Wed Apr 03 2002 ro@suse.de
- fix to build with latest autoconf (LIBOBJS vs. AC_LIBOBJ)
* Wed Feb 20 2002 uli@suse.de
- fixed to build on ARM
* Wed Feb 20 2002 max@suse.de
- Fixed for lib64-s390x (libdir.patch).
- Running the testsuite after building Tcl.
* Mon Feb 18 2002 max@suse.de
- Changed TclX to use -fPIC instead of -fpic .
* Wed Feb 06 2002 max@suse.de
- Fixed a typo in the http package.
- Moved iwidgets out of the itcl dir.
* Thu Jan 17 2002 max@suse.de
- Moved Tix and Expect back into their own source packages.
- Added some private headers to tcl-devel to be able to
  build Tix and Expect independent of the Tcl/Tk sources.
- replaced %%{_prefix}/lib by %%{_libdir} where apropriate
* Fri Dec 14 2001 uli@suse.de
- build static only on ARM
* Fri Nov 16 2001 schwab@suse.de
- Use $(SHLIB_CFLAGS) in itcl makefiles.
* Mon Oct 29 2001 max@suse.de
- New versions:
  o Tcl/Tk 8.3.4
  o expect 5.33.0
  o Tix 8.1.1
  o [incr Tcl/Tk] 3.2.1
  o [incr Widgets] 4.0.0
- Included tkcon-2.2 with Tk.
- Removed unnecessary explicit dependencies between
  the subpackages.
- Changed the memory man page back to the one that comes with Tcl.
- Changed the -C configure switch to be only used when needed and
  supported.
* Fri Sep 21 2001 max@suse.de
- replaced the "memory" man page from Tcl with the one from TclX,
  because it is better and there was a filename clash in the two
  packages before.
* Mon Jun 18 2001 schwab@suse.de
- Fix TK_XINCLUDES in tkConfig.sh.
* Wed Jun 13 2001 schwab@suse.de
- Add %%suse_update_config.
- Fix for new autoconf (force use of cache file).
* Tue May 08 2001 mfabian@suse.de
- bzip2 sources
* Tue Apr 10 2001 max@suse.de
- new version of Tcl/Tk: 8.3.3
* Mon Apr 02 2001 max@suse.de
- security fix for expect (/var/tmp/[...] was in rpath).
* Thu Mar 08 2001 max@suse.de
- made exclusion of static libs for manual builds more robust
* Wed Mar 07 2001 max@suse.de
- added xdevel and xshared to #neededforbuild
- using %%if to exclude things when building without static libs.
* Wed Jan 10 2001 max@suse.de
- Fixed a bug itcl's manpage installation -
  man.macros was not copied into the individual manpages.
* Mon Jan 08 2001 max@suse.de
- Enabling XIM by default.
  This fixes the compose and deadkey problem. Bug #5234
* Tue Dec 19 2000 max@suse.de
- Fix for race condition with tmpnam(3) in tclUnixPipe.c
* Thu Nov 30 2000 ro@suse.de
- try to fix static-lib install
* Thu Nov 30 2000 max@suse.de
- re-enabled static libs
* Wed Nov 29 2000 max@suse.de
- renamed tcld to tcl-devel
- new version of Tcl/Tk: 8.3.2
- new version of [incr Tcl]: 3.2
- new version of TclX: 8.3.2
- new version of expect: 5.32
- new version of Tix: 8.1.0
* Fri Nov 24 2000 schwab@suse.de
- Fix typo in itk makefile.
* Wed Nov 15 2000 ro@suse.de
- use "export LANG=en_US" to make it build despite col bug
* Wed Sep 13 2000 max@suse.de
- When running in build or autobuild, configure didn't recognize
  the termios API, because the check needed stdin to be a tty.
  Changed tcl.m4 to fix this by relying on the existance of
  termios.h .
* Wed May 31 2000 max@suse.de
- New version of Tix: 4.1.007
- Applied Bruce Stephens' Patch to make Tix work with Tcl/Tk 8.3
  http://www.egroups.com/message/tix/494
* Wed May 17 2000 schwab@suse.de
- Recover bug fixes.
* Thu May 04 2000 max@suse.de
- new version of Tcl/Tk: 8.3.1
- new version of TclX: 8.2.0
- new version of expect: 5.31
- new version of itcl: 3.1.0
- the package uses RPM_BUILD_ROOT now
- some of schwab's bad documented "fixes" got lost
* Fri Apr 14 2000 schwab@suse.de
- Use $RPM_OPT_FLAGS as default CFLAGS.
- expect, tix: fix missing declarations.
- itcl: make sure we link to the libraries just built.
* Wed Apr 12 2000 schwab@suse.de
- expect: make sure ptsname is declared.
- tclX: fix autoconf check for clock_t (look in <time.t>)
* Mon Feb 28 2000 schwab@suse.de
- Add group tags
- expect: use --localdir with autoreconf, update config.{guess,sub}
- tcl: fix printf formats
* Thu Feb 24 2000 schwab@suse.de
- Fix 64 Bit Bug in expect.
* Tue Jan 25 2000 kukuk@suse.de
- Remove autopasswd, mkpasswd and tkpasswd from expect file list.
  They will not work with PAM. Fixes [Bug 638] and [Bug 1554]
* Sat Nov 27 1999 kukuk@suse.de
- Fix duplicate SIGPWR/SIGLOST on SPARC
* Mon Nov 15 1999 kasal@suse.de
- fixed a few minor bugs in spec file, mainly:
  call "autoreconf --force" instead of "autoconf" to regenerate
  also the configure scripts in subdirs
  rm *.o before creating the dynamic version of the library
* Mon Nov 08 1999 max@suse.de
- added some compatibility links:
  /usr/X11R6/bin/wish -> ../../bin/wish8.0
  /usr/X11R6/bin/wish8.0 -> ../../bin/wish8.0
  /usr/X11R6/bin/tixwish -> ../../bin/tixwish4.1.8.0
  /usr/X11R6/bin/tixwish4.1.8.0 -> ../../bin/tixwish4.1.8.0
* Fri Oct 08 1999 max@suse.de
- integrated tclX8.0.4 as an additional subpackage
* Thu Oct 07 1999 max@suse.de
- integrated expect-5.30 as an additional subpackage
- changed the names of some tk manpages because they
  interferred with itcl
- removed the tix-sam libraries from tcld
* Thu Sep 30 1999 max@suse.de
- this is a test version for the beta distribution
- major rework of the spec-file
- renamed the packages from tcl_new, tk_new, etc. to tcl, tk, etc.
- Moved Tk from /usr/X11R6 to /usr.
- Moved Tix from /usr/lib/tcltk to /usr/lib
- Included itcl 3.0.1 as a subpackage
- There is a new subpackage, called tcld that holds all the
  static libs and header files for Tcl, Tk, Tix and Itcl.
- Most file lists are auto-generated now.
* Mon Sep 27 1999 bs@suse.de
- fixed requirements for sub packages
* Mon Sep 13 1999 bs@suse.de
- ran old prepare_spec on spec file to switch to new prepare_spec.
* Sun Mar 14 1999 max@suse.de
- new version: 8.0.5
- ro's patch from Mon Sep 21 1998 is not needed anymore
* Tue Mar 02 1999 ro@suse.de
- changed macro TK to TKK in specfile
  2char macros don't seem to work in current rpm
* Fri Jan 15 1999 max@suse.de
- fixed path bug with applications linked against libtk which do
  not reside in /usr/X11R6
* Thu Nov 26 1998 max@suse.de
- corrected some paths in tix to make it find its init script
  and libraries correctly
* Tue Nov 24 1998 max@suse.de
- merged spec files of tcl_new, tk_new and tix_new into tcl_new.spec
- this changes file is from now on for all three packages
* Mon Nov 23 1998 max@suse.de
- new version: 8.0.4
- cleand up softlinks and compression for man pages
* Mon Sep 21 1998 ro@suse.de
- for GLIBC EOPNOTSUPP and ENOTSUP seem to map to same value
- catch duplicate cases for this reason in tclPosixStr.c
* Mon Nov 10 1997 hf@suse.de
  new version 8.0p1
* Mon Oct 27 1997 hf@suse.de
  ready for autobuild
* Thu Jul 03 1997 hf@suse.de
  A new release 8.0b2, the second (and probably final) beta release for
  Tcl 8.0.
* Tue Jun 03 1997 hf@suse.de
- added static librs and all links for the manpages in
  the /usr/doc/packages/tcl8.0/man
* Tue Apr 15 1997 hf@suse.de
- manpages    hardlinks removed and added softlinks to
  compressd manpages
  the new directory for the manpages is
  /usr/doc/packeges/tcl8.0/man
openSUSE Build Service is sponsored by