2 Commits

11 changed files with 468 additions and 114 deletions

15
_service Normal file
View File

@@ -0,0 +1,15 @@
<services>
<service name="obs_scm" mode="disabled">
<param name="scm">git</param>
<param name="url">https://gitlab.com/fbb-git/icmake.git</param>
<param name="revision">13.00.01</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="changesgenerate">enable</param>
</service>
<service name="set_version" mode="disabled"/>
<service name="tar" mode="disabled"/>
<service name="recompress" mode="disabled">
<param name="file">*.tar</param>
<param name="compression">bz2</param>
</service>
</services>

4
_servicedata Normal file
View File

@@ -0,0 +1,4 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://gitlab.com/fbb-git/icmake.git</param>
<param name="changesrevision">6c2e6babc4481bd03cd59a826be9990c8d5d908c</param></service></servicedata>

View File

@@ -0,0 +1,277 @@
Index: icmake-13.04.00/icmake/build
===================================================================
--- icmake-13.04.00.orig/icmake/build
+++ icmake-13.04.00/icmake/build
@@ -66,32 +66,32 @@ echo "
# cp the default skeleton files to tmp/usr/share/icmake
- echo "default skeleton files in usr/share/icmake/ to tmp/usr/share/icmake
+ echo "default skeleton files in usr/share/icmake/ to tmp${SKELDIR}
"
- try cp -r usr/share/icmake/* tmp/usr/share/icmake/
+ try cp -r usr/share/icmake/* tmp${SKELDIR}
# cp the config files in ./etc/icmake to tmp/etc/icmake
- echo "configuration files in etc/icmake to tmp/etc/icmake
+ echo "configuration files in etc/icmake to tmp${CONFDIR}
"
- try cp -r etc/icmake/* tmp/etc/icmake/
+ try cp -r etc/icmake/* tmp${CONFDIR}/
# manpages: write the man pages in doc/ to tmp/usr/share/man/
- cp doc/*.1 tmp/usr/share/man/man1
- cp doc/*.7 tmp/usr/share/man/man7
+ cp doc/*.1 tmp${MANDIR}/man1
+ cp doc/*.7 tmp${MANDIR}/man7
# manpages: "compress the man-pages below tmp/usr/share/man/
- echo "compress man-pages .1 in tmp/usr/share/man/man1
+ echo "compress man-pages .1 in tmp${MANDIR}/man1
"
- cd tmp/usr/share/man/man1
+ cd tmp${MANDIR}/man1
for x in *.1 ; do
gzip -9cn $x > $x.gz || exit 1
done
rm -f *.1
- echo "compress man-pages .7 in tmp/usr/share/man/man7
+ echo "compress man-pages .7 in tmp${MANDIR}/man7
"
cd ../man7
for x in *.7 ; do
@@ -103,17 +103,17 @@ echo "
# install the doc/icmake files
- echo "compress changelog in tmp/usr/share/doc/icmake
+ echo "compress changelog in tmp${DOCDIR}
"
- gzip -9cn changelog > tmp/usr/share/doc/icmake/changelog.gz || exit 1
+ gzip -9cn changelog > tmp${DOCDIR}/changelog.gz || exit 1
- echo "cp examples files to tmp/usr/share/doc/icmake
+ echo "cp examples files to tmp${DOCDIR}
"
- try cp -r examples tmp/usr/share/doc/icmake
+ try cp -r examples tmp${DOCDIR}
- echo "cp rebuild script and friends to tmp/usr/share/doc/icmake/
+ echo "cp rebuild script and friends to tmp${DOCDIR}
"
- try cp -r rebuild build2nd README.rebuild tmp/usr/share/doc/icmake
+ try cp -r rebuild build2nd README.rebuild tmp${DOCDIR}
echo "cp ./etc files to tmp/etc
"
Index: icmake-13.04.00/icmake/buildscripts/multicomp
===================================================================
--- icmake-13.04.00.orig/icmake/buildscripts/multicomp
+++ icmake-13.04.00/icmake/buildscripts/multicomp
@@ -4,7 +4,7 @@
# $1 is, e.g., /usr/libexec/icmake/icm-dep
. ../buildscripts/precomp
-
+. ../tmp/INSTALL.sh
build()
{
@@ -42,7 +42,7 @@ IFS=${ORGIFS}
opts=" -Wall -Werror"
- ../tmp/usr/libexec/icmake/icm-multicomp -q jobs \
+ ../tmp${LIBDIR}/icm-multicomp -q jobs \
'/usr/bin/g++ -c -o $2 '${ICMAKE_CPPSTD}"${opts}"' $1' || exit 1
/usr/bin/g++ -o ../tmp/$1 tmp/*.o -L../tmp -licmake ${LDFLAGS} || exit 1
Index: icmake-13.04.00/icmake/buildscripts/multicompobj
===================================================================
--- icmake-13.04.00.orig/icmake/buildscripts/multicompobj
+++ icmake-13.04.00/icmake/buildscripts/multicompobj
@@ -4,7 +4,8 @@
# $1 is, e.g., /usr/libexec/icmake/icm-dep
. ../buildscripts/precomp
-
+. ../tmp/INSTALL.sh
+
jobs()
{
count=0 # use o-file numbers to avoid name collisions
@@ -44,7 +45,7 @@ build()
# use -O2
export ICMAKE_CPPSTD="${ICMAKE_CPPSTD} -O2"
# multi-compile
- ../tmp/usr/libexec/icmake/icm-multicomp -q jobs
+ ../tmp${LIBDIR}/icm-multicomp -q jobs
# created the o-files .tgz
# tar czf ../tmp/usr/share/icmake/ofiles.tgz *.o
# clean up
Index: icmake-13.04.00/icmake/buildscripts/precomp
===================================================================
--- icmake-13.04.00.orig/icmake/buildscripts/precomp
+++ icmake-13.04.00/icmake/buildscripts/precomp
@@ -8,7 +8,7 @@ Buiding tmp/spch.gch and using .ih.gch f
OPTS='g++ -Wall -Werror -O2 -c -o $2 '
OPTS="$OPTS ${ICMAKE_CPPSTD}${opts} -x c++header \$1"
- ../tmp/usr/libexec/icmake/icm-spch $1 --all spch tmp/ "'${OPTS}'"
+ ../tmp${LIBDIR}/icm-spch $1 --all spch tmp/ "'${OPTS}'"
rm spch
}
Index: icmake-13.04.00/icmake/comp/build
===================================================================
--- icmake-13.04.00.orig/icmake/comp/build
+++ icmake-13.04.00/icmake/comp/build
@@ -2,9 +2,10 @@
# icm-spch and icm-multicomp must be available
. ../buildscripts/multicomp
+. ../tmp/INSTALL.sh
echo "
-Building tmp/usr/libexec/icmake/icm-comp"
+Building tmp${LIBDIR}/icm-comp"
-build /usr/libexec/icmake/icm-comp
+build ${LIBDIR}/icm-comp
Index: icmake-13.04.00/icmake/dep/build
===================================================================
--- icmake-13.04.00.orig/icmake/dep/build
+++ icmake-13.04.00/icmake/dep/build
@@ -1,8 +1,9 @@
#!/bin/bash
. ../buildscripts/multicomp
+. ../tmp/INSTALL.sh
echo "
-Building tmp/usr/libexec/icmake/icm-dep"
+Building tmp${LIBDIR}/icm-dep"
-build /usr/libexec/icmake/icm-dep
+build ${LIBDIR}/icm-dep
Index: icmake-13.04.00/icmake/exec/build
===================================================================
--- icmake-13.04.00.orig/icmake/exec/build
+++ icmake-13.04.00/icmake/exec/build
@@ -1,8 +1,9 @@
#!/bin/bash
. ../buildscripts/multicomp
+. ../tmp/INSTALL.sh
echo "
-Building tmp/usr/libexec/icmake/icm-exec"
+Building tmp${LIBDIR}/icm-exec"
-build /usr/libexec/icmake/icm-exec
+build ${LIBDIR}/icm-exec
Index: icmake-13.04.00/icmake/install
===================================================================
--- icmake-13.04.00.orig/icmake/install
+++ icmake-13.04.00/icmake/install
@@ -48,8 +48,8 @@ progs()
# maybe strip the binaries
if [ "$STRIP" == "strip" ] ; then
- try strip tmp/usr/bin/icmake tmp/usr/bin/icmbuild \
- tmp/usr/bin/icmodmap tmp/usr/libexec/icmake/*
+ try strip tmp${BINDIR}/icmake tmp${BINDIR}/icmbuild \
+ tmp${BINDIR}/icmodmap tmp${LIBDIR}/*
echo
fi
Index: icmake-13.04.00/icmake/multicmp/build
===================================================================
--- icmake-13.04.00.orig/icmake/multicmp/build
+++ icmake-13.04.00/icmake/multicmp/build
@@ -6,13 +6,14 @@
. ../buildscripts/precomp
. ../buildscripts/build
+. ../tmp/INSTALL.sh
echo "
-Building tmp/usr/libexec/icmake/icm-multicomp"
+Building tmp${LIBDIR}/icm-multicomp"
# do the precompilation
precomp
# execute build installing the program in the destination dir.
-build /usr/libexec/icmake/icm-multicomp
+build ${LIBDIR}/icm-multicomp
find ./ -name '*.gch' -exec rm {} \;
Index: icmake-13.04.00/icmake/pp/build
===================================================================
--- icmake-13.04.00.orig/icmake/pp/build
+++ icmake-13.04.00/icmake/pp/build
@@ -1,8 +1,9 @@
#!/bin/bash
. ../buildscripts/multicomp
+. ../tmp/INSTALL.sh
echo "
-Building tmp/usr/libexec/icmake/icm-pp"
+Building tmp${LIBDIR}/icm-pp"
-build /usr/libexec/icmake/icm-pp
+build ${LIBDIR}/icm-pp
Index: icmake-13.04.00/icmake/prepare
===================================================================
--- icmake-13.04.00.orig/icmake/prepare
+++ icmake-13.04.00/icmake/prepare
@@ -63,9 +63,9 @@ YEARS=\"${YEARS}\"" > tmp/INSTALL.sh
echo "Creating intermediate construction directories below ./tmp"
-try mkdir -p tmp/usr/bin tmp/usr/libexec/icmake tmp/usr/share/icmake
-try mkdir -p tmp/etc/icmake tmp/usr/share/man/man1
-try mkdir -p tmp/usr/share/man/man7 tmp/usr/share/doc/icmake
+try mkdir -p tmp${BINDIR} tmp${LIBDIR} tmp${SKELDIR}
+try mkdir -p tmp${CONFDIR} tmp${MANDIR}/man1
+try mkdir -p tmp${MANDIR}/man7 tmp${DOCDIR}
echo
echo Next: call ./buildlib x
Index: icmake-13.04.00/icmake/spch/build
===================================================================
--- icmake-13.04.00.orig/icmake/spch/build
+++ icmake-13.04.00/icmake/spch/build
@@ -2,10 +2,11 @@
# make ../bootstrap/build available in the current directory
. ../buildscripts/build
+. ../tmp/INSTALL.sh
echo "
-Building tmp/usr/libexec/icmake/icm-spch"
+Building tmp${LIBDIR}/icm-spch"
# execute build installing the program in the destination dir,
# which is under TMP_DIR
-build /usr/libexec/icmake/icm-spch
+build ${LIBDIR}/icm-spch
Index: icmake-13.04.00/icmake/un/build
===================================================================
--- icmake-13.04.00.orig/icmake/un/build
+++ icmake-13.04.00/icmake/un/build
@@ -3,6 +3,6 @@
. ../buildscripts/multicomp
echo "
-Building tmp/usr/libexec/icmake/icm-un"
+Building tmp${LIBDIR}/icm-un"
-build /usr/libexec/icmake/icm-un
+build ${LIBDIR}/icm-un

16
fix-spch-process.patch Normal file
View File

@@ -0,0 +1,16 @@
Index: icmake-13.00.01/icmake/spch/process/spch.cc
===================================================================
--- icmake-13.00.01.orig/icmake/spch/process/spch.cc
+++ icmake-13.00.01/icmake/spch/process/spch.cc
@@ -10,7 +10,10 @@ int Process::spch() const
ofstream out = Exception::factory<ofstream>( d_options.spch() );
for (string const &line: StringSet{ Classes{ d_options }.readClasses() })
- out << "#include \"" << line << "\"\n";
+ {
+ if (Tools::exists(line))
+ out << "#include \"" + line + "\"\n";
+ }
return 0;

View File

@@ -1,12 +0,0 @@
diff --git a/icmake/comp/symtab/symtab.h b/icmake/comp/symtab/symtab.h
index cea2df3..a57ea2c 100644
--- a/icmake/comp/symtab/symtab.h
+++ b/icmake/comp/symtab/symtab.h
@@ -3,6 +3,7 @@
#include <string>
#include <vector>
+#include <cstdint>
#include "../exprtype/exprtype.h"

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:730a8fa45a1623e119d11e9506c1eb887b0dd2530117be560c40c9ce6d553ca8
size 357102

3
icmake-13.00.01.tar.bz2 Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:db0b20190a3d07120eb8dcdd51e614abcc5bc46a9b52ff9ec20cf9949195f8db
size 553698

View File

@@ -1,3 +1,123 @@
-------------------------------------------------------------------
Mon Oct 20 13:29:02 UTC 2025 - Valentin Lefebvre <valentin.lefebvre@suse.com>
- Remove fixed patches
[- gcc-13-fix.patch]
[- reproducible.patch]
[- prevent-double-slash.patch]
- Fix build of 13.00.01
[+ fix-lib-path-for-builds-file.patch]
[+ fix-spch-process.patch]
- Use service file to get tarball source.
- upgrade to 13.00.01
* Manpages for Debian were updated.
- upgrade to 13.00.00
* The man-pages were updated and contain specific details about the
changes since version 12.03.00
* Option --all was added to icm-spch.
* Headers inspected by icmake --spch are not modified anymore.
* The program 'noifndef.cc', available in the icmake's source distribution
(sub-dir 'build2nd') can be used to remove '#ifnef SPCH_' sections from
projects' .ih files.
* 'icmake --source' compiles the icmake script to a temporary .bim file;
* The support program 'icmun' was renamed to 'icm-un'.
* The 'icmconf' script can use -o in its #define SPCH specification. All
(space character delimited) words following -o are passed to 'icm-spch' as
separate '-o word' options;
* When developing C++ programs the environment variable ICMAKE_CXXFLAGS
is no longer used. Instead the environment variable ICMAKE_CPPSTD is
used. Use this latter environment variable to define one point of
maintenance specifying the version of the bf(C++) standard used when
compiling sources.
* When using Debian (or a comparable distributions) the script 'rebuild' can
be used to rebuild icmake's binaries after installing 'libbobcat-dev',
resulting in a reduction of their sizes of about 40%.
* The 'icmake' program itself was redesigned.
- upgrade to 12.03.00
* #define IH is only required if #define SPCH or #define PRECOMP is
specified in the icmconf file.
- upgrade to 12.02.01
* /usr/share/icmake/icmconf defines IH, required by icmbuild
* /etc/icmake/icmstart.rc specifies usage.cc and version.cc with Pb, so
'icmstart -b ...' is recognized
- upgrade to 12.02.00
* Added the /usr/bin/icmodmap program + man-page
* Compilations use --std=c++26
- upgrade to 12.00.01
* Icmake is now completely independent from bobcat.
- upgrade to 12.00.00
* The icmake construction no longer depends on the availability of the
(possibly bootstrapped) bobcat library. Bootstrapping is no longer
required.
* The /usr/libexec/icmake/icm-spch support program recognizes
* When icmstart optionally installs a directory it also requests whether the
directory name should be added to the CLASSES file
* The icmake man-page received some cosmetic changes
- upgrade to 11.01.02
* Repaired a failing comparison between signed/unsigned values only
appearing in 32-bit architectures.
- upgrade to 11.01.01
* Repaired an issue when converting to 11.00.00 with 'icmake -c ...'
* For backward compatibility ICMAKE_CXXFLAGS is still recognized by
icmbuild and support programs.
- upgrade to 11.01.00
* The environment variable ICMAKE_CXXFLAGS was replaced by ICMAKE_CPPSTD
* Earlier FTBFS problems in a clean chroot environment were caused by not
having defined the ICMAKE_CXXFLAGS environment variable
* Internal redesign: all filesystem functions used by at least two functions
are now defined in support/tools
- upgrade to 11.00.00
* New major version supports using Single Pre-Compiled Headers and
multi-threaded compilation, significantly reducing the compilation time of
the source files of projects compared to situations where these facilities
are not used. The icmake and icmconf manuals were updated accordingly.
- upgrade to 10.06.01
* icm_bootstrap was slightly modified: when the man-pages are available in
the ./doc directory Yodl isn't called to create them. Pre-built man-pages
are only used when constructing the icmake_*.orig.tar.gz tar file, to allow
the debian package to be constructed w/o being dependent on Yodl, as that
would introduce a circular dependency.
- upgrade to 10.06.00
* Updated the QUICKINSTALL file and repaired bugs / improved the comment in
icm_prepare, icm_bootstrap and icm_install scripts.
* The CPPENVOPTS environment variable is no longer used. Instead use the
ICMAKE_CXXFLAGS environment variable (cf. the icmconf(7) man-page).
* The icm_prepare, icm_bootstrap, and icm_install scripts received a major
upgrade
- upgrade to 10.05.01
* Repaired typo in icmstript.yo
- upgrade to 10.05.00
* When compiling C++ programs the icmconf file by default specifies the
options
-Werror -Wall -O2
As before, additional options can be added to the CXXFLAGS specification
in the icmconf file, but it's also possible to define additional options
in the environment variable CPPENVOPTS (cf. the icmconf(7) man-page).
* This is the last entry in gitlab's 'master' branch. This version and
future versions will be committed to gitlab's 'main' branch.
- upgrade to 10.04.01
* Processed Tony Mancill's merge request to fix Matthias Klose's debian bug
report #1037691.
* Updated the C++ standard version in ./c++std to --std=c++23.
- upgrade to 10.04.00
* Replaced 'typedef' definitions by 'using' declarations
* Input file lists are now sorted (following a gitlab merge request by
Bernhard M. Wiedemann), resulting in icmake offering reproducible builds
(cf https://reproducible-builds.org/).
- upgrade to 10.03.03
* Updated the usr/share/icmake files: the parser/ and scanner/ files are
now more in line with the current versions of bisonc++ and flexc++
- upgrade to 10.03.02
* Added the 'bobcatbootstrap' script to perform an initial installation of
icmake when the bobcat library isn't yet available. See the
README.bobcatbootstrap file and/or the usage info at the top of the
'bobcatbootstrap' script
* The bootstrap/flags file now loads the standard specified in 'c++std'
- upgrade to 10.03.01
* Ready for libbobcat6
* Added 'c++std' defining the c++ standard to use for
compilation. Compilation commands also use -Werror
-------------------------------------------------------------------
Sat Jun 15 03:05:57 UTC 2024 - Bernhard Wiedemann <bwiedemann@suse.com>

View File

@@ -1,7 +1,7 @@
#
# spec file for package icmake
#
# Copyright (c) 2023 SUSE LLC
# Copyright (c) 2025 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,17 +17,16 @@
Name: icmake
Version: 10.03.00
Version: 13.00.01
Release: 0
Summary: A program maintenance (make) utility using a C-like grammar
License: GPL-3.0-only
Group: Development/Tools/Building
URL: https://gitlab.com/fbb-git/icmake
Source: %{URL}/-/archive/%{version}/icmake-%{version}.tar.bz2
Patch1: prevent-double-slash.patch
Patch2: gcc-13-fix.patch
# PATCH-FIX-UPSTREAM https://gitlab.com/fbb-git/icmake/-/merge_requests/5
Patch3: reproducible.patch
Patch: fix-lib-path-for-builds-file.patch
# FIXED-UPSTREAM
Patch: fix-spch-process.patch
BuildRequires: bison
BuildRequires: flex
BuildRequires: gcc-c++
@@ -44,23 +43,32 @@ that have proven to be useful in program maintenance.
%autosetup -p1
%build
export CXXFLAGS="%{optflags} -std=c++20"
echo "/* created during rpmbuild */" > %{name}/INSTALL.im
echo "#define BINDIR \"%{_bindir}\"" >> %{name}/INSTALL.im
echo "#define SKELDIR \"%{_datadir}/%{name}\"" >> %{name}/INSTALL.im
echo "#define MANDIR \"%{_mandir}\"" >> %{name}/INSTALL.im
echo "#define LIBDIR \"%{_libdir}/%{name}\"" >> %{name}/INSTALL.im
echo "#define CONFDIR \"%{_sysconfdir}/%{name}\"" >> %{name}/INSTALL.im
echo "#define DOCDIR \"%{_docdir}/%{name}\"" >> %{name}/INSTALL.im
echo "#define DOCDOCDIR \"%{_docdir}/%{name}\"" >> %{name}/INSTALL.im
export CXXFLAGS="%{optflags} -std=c++2b -g"
export ICMAKE_CPPSTD="${CXXFLAGS}"
_bindir=%{_bindir}
_datadir=%{_datadir}
_mandir=%{_mandir}
_libdir=%{_libdir}
_sysdir=%{_sysconfdir}
_docdir=%{_docdir}
{
echo "/* created during rpmbuild */"
echo "#define BINDIR \"${_bindir:1}\""
echo "#define SKELDIR \"${_datadir:1}/%{name}\""
echo "#define MANDIR \"${_mandir:1}\""
echo "#define LIBDIR \"${_libdir:1}/%{name}\""
echo "#define CONFDIR \"${_sysdir:1}/%{name}\""
echo "#define DOCDIR \"${_docdir:1}/%{name}\""
} > %{name}/INSTALL.im
pushd %{name}
./icm_prepare "/"
./icm_bootstrap ""
./prepare "/"
./buildlib "/"
./build all
popd
%install
pushd %{name}
./icm_install all %{buildroot}
./install strip all %{buildroot}
popd
%files
@@ -68,9 +76,11 @@ popd
%doc %{_docdir}/%{name}/
%{_bindir}/icmake
%{_bindir}/icmbuild
%{_bindir}/icmodmap
%{_bindir}/icmstart
%{_mandir}/man1/icmake.1%{ext_man}
%{_mandir}/man1/icmbuild.1%{ext_man}
%{_mandir}/man1/icmodmap.1%{ext_man}
%{_mandir}/man1/icmstart.1%{ext_man}
%{_mandir}/man7/icmconf.7%{ext_man}
%{_mandir}/man7/icmstart.rc.7%{ext_man}
@@ -78,10 +88,12 @@ popd
%{_datadir}/icmake
%dir %{_libdir}/icmake
%{_libdir}/icmake/icm-comp
%{_libdir}/icmake/icm-exec
%{_libdir}/icmake/icm-pp
%{_libdir}/icmake/icm-dep
%{_libdir}/icmake/icmun
%{_libdir}/icmake/icm-exec
%{_libdir}/icmake/icm-multicomp
%{_libdir}/icmake/icm-pp
%{_libdir}/icmake/icm-spch
%{_libdir}/icmake/icm-un
%{_libdir}/icmake/icmbuild
%{_libdir}/icmake/icmstart.bim
%dir %{_sysconfdir}/icmake

View File

@@ -1,26 +0,0 @@
Index: icmake-8.01.00/icmake/icm_prepare
===================================================================
--- icmake-8.01.00.orig/icmake/icm_prepare
+++ icmake-8.01.00/icmake/icm_prepare
@@ -27,7 +27,7 @@ try mkdir -p tmp
echo Writing tmp/ROOT
ROOT=`echo $1 | sed 's_/$__'`
-echo "ROOT=${ROOT}/" > tmp/ROOT
+echo "ROOT=${ROOT}" > tmp/ROOT
. scripts/conversions
Index: icmake-8.01.00/icmake/scripts/conversions
===================================================================
--- icmake-8.01.00.orig/icmake/scripts/conversions
+++ icmake-8.01.00/icmake/scripts/conversions
@@ -3,7 +3,7 @@ CONFIG=INSTALL.im
. VERSION
. tmp/ROOT
-ROOT=`echo ${ROOT}/ | sed 's,//,/,g' | sed 's,//,/,g'`
+ROOT=`echo ${ROOT} | sed 's,//,/,g' | sed 's,//,/,g'`
EXTENSION=`grep '^#' $CONFIG | grep "#define[[:space:]]\+EXTENSION" | \
sed 's,.*EXTENSION[[:space:]]\+\"\([^"]*\)".*,'${ROOT}'\1,'`

View File

@@ -1,52 +0,0 @@
https://gitlab.com/fbb-git/icmake/-/merge_requests/5
From cf873922def05742c3076bb53dc77e44d2cf3eb7 Mon Sep 17 00:00:00 2001
From: "Bernhard M. Wiedemann" <bwiedemann@suse.de>
Date: Sun, 6 Nov 2022 04:26:47 +0100
Subject: [PATCH] Sort input file list
so that libsupport.a builds in a reproducible way
in spite of non-deterministic filesystem readdir order
See https://reproducible-builds.org/ for why this is good.
This patch was done while working on reproducible builds for openSUSE.
---
icmake/bootstrap/functions | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
Index: icmake-10.03.00/icmake/bootstrap/functions
===================================================================
--- icmake-10.03.00.orig/icmake/bootstrap/functions
+++ icmake-10.03.00/icmake/bootstrap/functions
@@ -10,11 +10,11 @@ subdirs()
{
[ "`find ./ -mindepth 1 -maxdepth 1 -type d -name ORG`" != "" ] && return
- for subdir in `find ./ -mindepth 1 -maxdepth 1 -type d` ; do
+ for subdir in `find ./ -mindepth 1 -maxdepth 1 -type d | sort` ; do
try cd $subdir
add=0
srclist=`find -mindepth 1 -maxdepth 1 -type f -name '*.cc' \
- -exec basename '{}' ';'`
+ -exec basename '{}' ';' | sort`
if [ "$srclist" != "" ]
then
ih=${subdir}.ih
@@ -23,7 +23,7 @@ subdirs()
try ${CXX} ${CXXFLAGS} -x c++-header $ih
fi
for src in `find -mindepth 1 -maxdepth 1 -type f -name '*.cc' \
- -exec basename '{}' ';'` ; do
+ -exec basename '{}' ';' | sort` ; do
obj=../${dir}${src%%.*}.o
if [ $src -nt ${obj} ] ; then
try ${CXX} ${CXXFLAGS} -o${obj} -c $src
@@ -39,7 +39,7 @@ subdirs()
maindir() # $1: destination program path,
{ # unused: $2: optional -s, use LDFLAGS
for src in `find -mindepth 1 -maxdepth 1 -type f -name '*.cc' \
- -exec basename '{}' ';'` ; do
+ -exec basename '{}' ';' | sort` ; do
if [ "$src" != "main.cc" ] ; then
obj=${src%%.*}.o
if [ $src -nt ${obj} ] ; then