From a9fb771119d3bba19d9c724ec3b9de98aaa63830395bfe65890bce8f4213f65c Mon Sep 17 00:00:00 2001 From: Dirk Mueller Date: Thu, 18 Jul 2024 08:43:30 +0000 Subject: [PATCH] Accepting request 1188059 from home:bmwiedemann:branches:Base:System replace with upstream patch - Use %autosetup - Add reproducible-jar.patch to use a constant jar mtime for bit-reproducible builds OBS-URL: https://build.opensuse.org/request/show/1188059 OBS-URL: https://build.opensuse.org/package/show/Base:System/gettext-runtime?expand=0&rev=200 --- gettext-0.12.1-gettextize.patch | 4 +- gettext-0.12.1-sigfpe.patch | 8 +- gettext-csharp.changes | 5 + gettext-csharp.spec | 13 +-- gettext-initialize_vars.patch | 4 +- gettext-java.changes | 7 ++ gettext-java.spec | 15 +-- gettext-po-mode.diff | 4 +- gettext-runtime-mini.changes | 5 + gettext-runtime-mini.spec | 13 +-- gettext-runtime.changes | 5 + gettext-runtime.spec | 13 +-- reproducible-jar.patch | 186 ++++++++++++++++++++++++++++++++ 13 files changed, 224 insertions(+), 58 deletions(-) create mode 100644 reproducible-jar.patch diff --git a/gettext-0.12.1-gettextize.patch b/gettext-0.12.1-gettextize.patch index f285853..821ca3d 100644 --- a/gettext-0.12.1-gettextize.patch +++ b/gettext-0.12.1-gettextize.patch @@ -1,7 +1,7 @@ Index: gettext-tools/misc/gettextize.in =================================================================== ---- gettext-tools/misc/gettextize.in.orig 2010-06-06 14:49:57.000000000 +0200 -+++ gettext-tools/misc/gettextize.in 2010-12-20 18:47:11.932132562 +0100 +--- a/gettext-tools/misc/gettextize.in.orig 2010-06-06 14:49:57.000000000 +0200 ++++ b/gettext-tools/misc/gettextize.in 2010-12-20 18:47:11.932132562 +0100 @@ -1262,20 +1262,6 @@ if $doit; then echo "It is a wrapper around that implements the configure --disable-nls" echo "option." diff --git a/gettext-0.12.1-sigfpe.patch b/gettext-0.12.1-sigfpe.patch index 77e96f9..f8a6876 100644 --- a/gettext-0.12.1-sigfpe.patch +++ b/gettext-0.12.1-sigfpe.patch @@ -1,7 +1,7 @@ Index: gettext-runtime/intl/dcigettext.c =================================================================== ---- gettext-runtime/intl/dcigettext.c.orig 2010-06-06 14:49:57.000000000 +0200 -+++ gettext-runtime/intl/dcigettext.c 2010-12-20 18:47:11.543133542 +0100 +--- a/gettext-runtime/intl/dcigettext.c.orig 2010-06-06 14:49:57.000000000 +0200 ++++ b/gettext-runtime/intl/dcigettext.c 2010-12-20 18:47:11.543133542 +0100 @@ -68,20 +68,7 @@ extern int errno; #endif @@ -26,8 +26,8 @@ Index: gettext-runtime/intl/dcigettext.c # include Index: gettext-runtime/intl/eval-plural.h =================================================================== ---- gettext-runtime/intl/eval-plural.h.orig 2010-06-06 14:49:57.000000000 +0200 -+++ gettext-runtime/intl/eval-plural.h 2010-12-20 18:48:36.928872823 +0100 +--- a/gettext-runtime/intl/eval-plural.h.orig 2010-06-06 14:49:57.000000000 +0200 ++++ b/gettext-runtime/intl/eval-plural.h 2010-12-20 18:48:36.928872823 +0100 @@ -62,16 +62,12 @@ plural_eval (const struct expression *pe case mult: return leftarg * rightarg; diff --git a/gettext-csharp.changes b/gettext-csharp.changes index 70e644a..ebeab32 100644 --- a/gettext-csharp.changes +++ b/gettext-csharp.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Tue Jul 16 08:42:20 UTC 2024 - Bernhard Wiedemann + +- Use %autosetup + ------------------------------------------------------------------- Mon Feb 26 14:57:24 UTC 2024 - Dominique Leuenberger diff --git a/gettext-csharp.spec b/gettext-csharp.spec index 356ae29..a734e6e 100644 --- a/gettext-csharp.spec +++ b/gettext-csharp.spec @@ -80,18 +80,7 @@ also included msgfmt.net.exe and msgunfmt.net.exe handle PO files more reliably than 'resgen'. %prep -%setup -q -n gettext-%{version} -%patch -P 0 -%patch -P 1 -p1 -%patch -P 2 -%patch -P 3 -p1 -%patch -P 4 -%patch -P 5 -%patch -P 6 -p1 -%patch -P 11 -p1 -%patch -P 13 -p1 -%patch -P 14 -p1 -%patch -P 15 -p1 +%autosetup -p1 -n gettext-%{version} %build export CFLAGS="%{optflags} -pipe -W -Wall -Dgcc_is_lint -lm" diff --git a/gettext-initialize_vars.patch b/gettext-initialize_vars.patch index ab7e412..4adab28 100644 --- a/gettext-initialize_vars.patch +++ b/gettext-initialize_vars.patch @@ -1,7 +1,7 @@ Index: gettext-tools/gnulib-lib/gl_anylinked_list2.h =================================================================== ---- gettext-tools/gnulib-lib/gl_anylinked_list2.h.orig 2010-05-24 11:42:37.000000000 +0200 -+++ gettext-tools/gnulib-lib/gl_anylinked_list2.h 2010-12-20 18:47:11.981132438 +0100 +--- a/gettext-tools/gnulib-lib/gl_anylinked_list2.h.orig 2010-05-24 11:42:37.000000000 +0200 ++++ b/gettext-tools/gnulib-lib/gl_anylinked_list2.h 2010-12-20 18:47:11.981132438 +0100 @@ -34,6 +34,12 @@ # define ASYNCSAFE(type) #endif diff --git a/gettext-java.changes b/gettext-java.changes index 3f6110f..8270c78 100644 --- a/gettext-java.changes +++ b/gettext-java.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Tue Jul 16 08:42:20 UTC 2024 - Bernhard Wiedemann + +- Use %autosetup +- Add reproducible-jar.patch to use a constant jar mtime + for bit-reproducible builds + ------------------------------------------------------------------- Mon Feb 26 14:57:24 UTC 2024 - Dominique Leuenberger diff --git a/gettext-java.spec b/gettext-java.spec index 0ebab4c..8a2087c 100644 --- a/gettext-java.spec +++ b/gettext-java.spec @@ -44,6 +44,8 @@ Patch13: reproducible.patch # PATCH-FEATURE bsc#1165138 Patch14: 0001-msgcat-Add-feature-to-use-the-newest-po-file.patch Patch15: 0002-msgcat-Merge-headers-when-use-first.patch +# PATCH-FIX-UPSTREAM https://lists.gnu.org/archive/html/bug-gettext/2024-07/msg00021.html +Patch16: reproducible-jar.patch BuildRequires: automake >= 1.14 BuildRequires: fdupes BuildRequires: gcc-c++ @@ -65,18 +67,7 @@ Java applications. It also includes example code for java, java+awt and java+swing. %prep -%setup -q -n gettext-%{version} -%patch -P 0 -%patch -P 1 -p1 -%patch -P 2 -%patch -P 3 -p1 -%patch -P 4 -%patch -P 5 -%patch -P 6 -p1 -%patch -P 11 -p1 -%patch -P 13 -p1 -%patch -P 14 -p1 -%patch -P 15 -p1 +%autosetup -p1 -n gettext-%{version} %build # expect a couple "You should update your `aclocal.m4' by running aclocal." diff --git a/gettext-po-mode.diff b/gettext-po-mode.diff index a5e13ea..ab3381b 100644 --- a/gettext-po-mode.diff +++ b/gettext-po-mode.diff @@ -1,7 +1,7 @@ Index: gettext-tools/emacs/po-mode.el =================================================================== ---- gettext-tools/emacs/po-mode.el.orig 2010-06-06 14:49:57.000000000 +0200 -+++ gettext-tools/emacs/po-mode.el 2010-12-20 18:47:11.963132483 +0100 +--- a/gettext-tools/emacs/po-mode.el.orig 2010-06-06 14:49:57.000000000 +0200 ++++ b/gettext-tools/emacs/po-mode.el 2010-12-20 18:47:11.963132483 +0100 @@ -1242,6 +1242,7 @@ all reachable through 'M-x customize', i ;; mode-line-format usually contains global-mode-string, but some ;; people customize this variable. As a last resort, append at the end. diff --git a/gettext-runtime-mini.changes b/gettext-runtime-mini.changes index 59ae323..7a38e55 100644 --- a/gettext-runtime-mini.changes +++ b/gettext-runtime-mini.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Tue Jul 16 08:42:20 UTC 2024 - Bernhard Wiedemann + +- Use %autosetup + ------------------------------------------------------------------- Thu Jun 6 14:23:04 UTC 2024 - Dominique Leuenberger diff --git a/gettext-runtime-mini.spec b/gettext-runtime-mini.spec index 50cbc61..1d89b5b 100644 --- a/gettext-runtime-mini.spec +++ b/gettext-runtime-mini.spec @@ -173,18 +173,7 @@ This package provides headers and static libraries for libtextstyle %endif %prep -%setup -q -n %{pacname}-%{version} -%patch -P 0 -%patch -P 1 -p1 -%patch -P 2 -%patch -P 3 -p1 -%patch -P 4 -%patch -P 5 -%patch -P 6 -p1 -%patch -P 11 -p1 -%patch -P 13 -p1 -%patch -P 14 -p1 -%patch -P 15 -p1 +%autosetup -p1 -n %{pacname}-%{version} %build %define _lto_cflags %{nil} diff --git a/gettext-runtime.changes b/gettext-runtime.changes index 59ae323..7a38e55 100644 --- a/gettext-runtime.changes +++ b/gettext-runtime.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Tue Jul 16 08:42:20 UTC 2024 - Bernhard Wiedemann + +- Use %autosetup + ------------------------------------------------------------------- Thu Jun 6 14:23:04 UTC 2024 - Dominique Leuenberger diff --git a/gettext-runtime.spec b/gettext-runtime.spec index b6ba16e..c7ced19 100644 --- a/gettext-runtime.spec +++ b/gettext-runtime.spec @@ -173,18 +173,7 @@ This package provides headers and static libraries for libtextstyle %endif %prep -%setup -q -n %{pacname}-%{version} -%patch -P 0 -%patch -P 1 -p1 -%patch -P 2 -%patch -P 3 -p1 -%patch -P 4 -%patch -P 5 -%patch -P 6 -p1 -%patch -P 11 -p1 -%patch -P 13 -p1 -%patch -P 14 -p1 -%patch -P 15 -p1 +%autosetup -p1 -n %{pacname}-%{version} %build %define _lto_cflags %{nil} diff --git a/reproducible-jar.patch b/reproducible-jar.patch new file mode 100644 index 0000000..cf79981 --- /dev/null +++ b/reproducible-jar.patch @@ -0,0 +1,186 @@ +commit 06bb3d6f86c43c7eb259cb2f0b8522ad87df40f1 +Author: Bruno Haible +Date: Tue Jul 16 23:59:05 2024 +0200 + + java: Create reproducible .jar files if the 'jar' utility supports it. + + Suggested by Bernhard M. Wiedemann in + . + + * build-aux/jar-cf: New file. + * Makefile.am (EXTRA_DIST): Add it. + * gettext-runtime/intl-java/Makefile.am (libintl.jar): Use jar-cf. + * gettext-tools/src/Makefile.am (gettext.jar): Likewise. + +diff --git a/Makefile.am b/Makefile.am +index c3ac6e0e5..4e2ad1128 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -54,7 +54,8 @@ EXTRA_DIST = \ + $(changelog_etc) DEPENDENCIES PACKAGING HACKING JOIN-GNU ChangeLog.0 \ + autogen.sh \ + check-copyright-headers \ +- build-aux/ac-help.sed build-aux/git-version-gen build-aux/texi2html \ ++ build-aux/ac-help.sed build-aux/git-version-gen build-aux/jar-cf \ ++ build-aux/texi2html \ + m4/fixautomake.m4 m4/woe32-dll.m4 \ + m4/libtool.m4 + +diff --git a/build-aux/jar-cf b/build-aux/jar-cf +new file mode 100755 +index 000000000..f42578c02 +--- /dev/null ++++ b/build-aux/jar-cf +@@ -0,0 +1,112 @@ ++#!/bin/sh ++# Creating a Java archive (.jar). ++ ++# Copyright (C) 2024 Free Software Foundation, Inc. ++# ++# This file is free software: you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published ++# by the Free Software Foundation, either version 3 of the License, ++# or (at your option) any later version. ++# ++# This file is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program. If not, see . ++ ++# Written by Bruno Haible , 2024. ++ ++# func_usage ++# outputs to stdout the --help usage message. ++func_usage () ++{ ++ echo "\ ++Usage: jar-cf [OPTION]... JAR_PROGRAM TOP_SRCDIR DESTINATION.jar ELEMENT... ++ ++Invokes the JAR_PROGRAM, to create DESTINATION.jar with the ELEMENTs as ++contents. ++ ++Options: ++ --help print this help and exit ++ --version print version information and exit ++ ++Send patches and bug reports to ." ++} ++ ++# func_version ++# outputs to stdout the --version message. ++func_version () ++{ ++ echo "jar-cf (GNU gettext)" ++ echo "Copyright (C) 2024 Free Software Foundation, Inc. ++License GPLv3+: GNU GPL version 3 or later ++This is free software: you are free to change and redistribute it. ++There is NO WARRANTY, to the extent permitted by law." ++ echo ++ printf 'Written by %s.\n' "Bruno Haible" ++} ++ ++# func_fatal_error message ++# outputs to stderr a fatal error message, and terminates the program. ++func_fatal_error () ++{ ++ echo "jar-cf: *** $1" 1>&2 ++ echo "jar-cf: *** Stop." 1>&2 ++ exit 1 ++} ++ ++# Outputs a command and runs it. ++func_verbose () ++{ ++ # Make it easy to copy&paste the printed command into a shell in most cases, ++ # by escaping '\\', '"', and '$'. This is not perfect, just good enough. ++ echo "$@" | sed -e 's/\([\\"$]\)/\\\1/g' ++ "$@" ++} ++ ++# Command-line option processing. ++while test $# -gt 0; do ++ case "$1" in ++ --help | --hel | --he | --h ) ++ func_usage ++ exit 0 ;; ++ --version | --versio | --versi | --vers | --ver | --ve | --v ) ++ func_version ++ exit 0 ;; ++ -- ) # Stop option processing ++ shift; break ;; ++ -* ) ++ func_fatal_error "unrecognized option: $1" ++ ;; ++ * ) ++ break ;; ++ esac ++done ++ ++if test $# -lt 2; then ++ func_fatal_error "too few arguments" ++fi ++ ++jar_program="$1" ++top_srcdir="$2" ++shift ++shift ++ ++if $jar_program --help 2>&1 | grep '\-\-date=' >/dev/null; then ++ # The JAR_PROGRAM supports the --date option. Its effect is to set the given ++ # date as time stamp on all the ELEMENTs and also the META-INF/MANIFEST.MF. ++ # Use it, for reproducibility (cf. ). ++ if test -d "$top_srcdir/.git"; then ++ # We are in a git checkout. Use the date of the latest commit. ++ date=`git log -n 1 --date=iso --format=fuller | sed -n -e 's/^CommitDate: //p' | sed -e 's/ /T/' -e 's/ \(...\)\(..\)$/\1:\2/'` ++ else ++ # We are building from a tarball. ++ # Use the date of the first entry of the ChangeLog file. ++ date=`sed -n -e 's/^\([0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]\).*/\1/p' -e 1q "$top_srcdir/ChangeLog"`'T00:00:00+00:00' ++ fi ++ func_verbose $jar_program --date="$date" -c -f "$@" ++else ++ func_verbose $jar_program cf "$@" ++fi +diff --git a/gettext-runtime/intl-java/Makefile.am b/gettext-runtime/intl-java/Makefile.am +index a8c5290e9..4444f6e6c 100644 +--- a/gettext-runtime/intl-java/Makefile.am ++++ b/gettext-runtime/intl-java/Makefile.am +@@ -1,5 +1,5 @@ + ## Makefile for the gettext-runtime/intl-java subdirectory of GNU gettext +-## Copyright (C) 2001-2003, 2006-2007, 2013 Free Software Foundation, Inc. ++## Copyright (C) 2001-2024 Free Software Foundation, Inc. + ## + ## This program is free software: you can redistribute it and/or modify + ## it under the terms of the GNU General Public License as published by +@@ -45,7 +45,7 @@ gnu/gettext/GettextResource.class: $(srcdir)/gnu/gettext/GettextResource.java + $(JAVACOMP) -d . $(srcdir)/gnu/gettext/GettextResource.java + + libintl.jar: gnu/gettext/GettextResource.class +- $(JAR) cf $@ gnu/gettext/GettextResource*.class ++ $(top_srcdir)/../build-aux/jar-cf '$(JAR)' '$(top_srcdir)/..' $@ gnu/gettext/GettextResource*.class + + EXTRA_DIST += gnu/gettext/GettextResource.java + +diff --git a/gettext-tools/src/Makefile.am b/gettext-tools/src/Makefile.am +index d95b08ed6..0316ca287 100644 +--- a/gettext-tools/src/Makefile.am ++++ b/gettext-tools/src/Makefile.am +@@ -1,5 +1,5 @@ + ## Makefile for the gettext-tools/src subdirectory of GNU gettext +-## Copyright (C) 1995-1998, 2000-2023 Free Software Foundation, Inc. ++## Copyright (C) 1995-2024 Free Software Foundation, Inc. + ## + ## This program is free software: you can redistribute it and/or modify + ## it under the terms of the GNU General Public License as published by +@@ -655,7 +655,7 @@ gnu/gettext/GetURL.class: $(srcdir)/gnu/gettext/GetURL.java + $(JAVACOMP) -d . $(srcdir)/gnu/gettext/GetURL.java + + gettext.jar: gnu/gettext/DumpResource.class gnu/gettext/GetURL.class +- $(JAR) cf $@ gnu/gettext/DumpResource*.class gnu/gettext/GetURL*.class ++ $(top_srcdir)/../build-aux/jar-cf '$(JAR)' '$(top_srcdir)/..' $@ gnu/gettext/DumpResource*.class gnu/gettext/GetURL*.class + + EXTRA_DIST += gnu/gettext/DumpResource.java gnu/gettext/GetURL.java +