Compare commits

...

No commits in common. "c8" and "c9-beta" have entirely different histories.
c8 ... c9-beta

4 changed files with 108 additions and 213 deletions

View File

@ -1 +1 @@
71fc3595865ea6ea859587cbbb35cbf9aeb39d2d SOURCES/gawk-4.2.1.tar.xz 02408f1be58747a0d8c16ef1d191398b4260c638 SOURCES/gawk-5.1.0.tar.xz

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/gawk-4.2.1.tar.xz SOURCES/gawk-5.1.0.tar.xz

View File

@ -1,193 +0,0 @@
From c1f670b26671cc8d60d967bbcb42cb8deb3baf2b Mon Sep 17 00:00:00 2001
From: "Arnold D. Robbins" <arnold@skeeve.com>
Date: Tue, 31 Jul 2018 21:40:49 +0300
Subject: Fix assigning $0 from a number.
---
ChangeLog | 6 ++++++
interpret.h | 1 +
test/ChangeLog | 5 +++++
test/Makefile.am | 5 ++++-
test/Makefile.in | 10 +++++++++-
test/Maketests | 5 +++++
test/assignnumfield.awk | 1 +
test/assignnumfield.in | 5 +++++
test/assignnumfield.ok | 5 +++++
9 files changed, 41 insertions(+), 2 deletions(-)
create mode 100644 test/assignnumfield.awk
create mode 100644 test/assignnumfield.in
create mode 100644 test/assignnumfield.ok
diff --git a/ChangeLog b/ChangeLog
index 904e984c..68210057 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2018-07-31 Arnold D. Robbins <arnold@skeeve.com>
+
+ * interpret.h (unfield): Add a call to force_string() on
+ new value. See test/assignnumfield.awk. Thanks to
+ Ralph Corderoy <ralph@inputplus.co.uk> for the bug report.
+
2018-02-25 Arnold D. Robbins <arnold@skeeve.com>
* 4.2.1: Release tar ball made.
diff --git a/interpret.h b/interpret.h
index 8408a532..fed0078c 100644
--- a/interpret.h
+++ b/interpret.h
@@ -46,16 +46,25 @@ unfield(NODE **l, NODE **r)
* valref 1, that effectively means that this is an assignment like "$n = $n",
* so a no-op, other than triggering $0 reconstitution.
*/
-#define UNFIELD(l, r) \
-{ \
- /* if was a field, turn it into a var */ \
- if ((r->flags & MALLOC) != 0 || r->valref == 1) { \
- l = r; \
- } else { \
- l = dupnode(r); \
- DEREF(r); \
- } \
-}
+// not a macro so we can step into it with a debugger
+#ifndef UNFIELD_DEFINED
+#define UNFIELD_DEFINED 1
+static inline void
+unfield(NODE **l, NODE **r)
+{
+ /* if was a field, turn it into a var */
+ if (((*r)->flags & MALLOC) != 0 || (*r)->valref == 1) {
+ (*l) = (*r);
+ } else {
+ (*l) = dupnode(*r);
+ DEREF(*r);
+ }
+ force_string(*l);
+}
+
+#define UNFIELD(l, r) unfield(& (l), & (r))
+#endif
+
int
r_interpret(INSTRUCTION *code)
{
diff --git a/test/ChangeLog b/test/ChangeLog
index 392d593b..2af89e66 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,3 +1,8 @@
+2018-07-31 Arnold D. Robbins <arnold@skeeve.com>
+
+ * Makefile.am (EXTRA_DIST): Add assignnumfield files.
+ * assignnumfield.awk, assignnumfield.in, assignnumfield.ok: New files.
+
2018-02-25 Arnold D. Robbins <arnold@skeeve.com>
* 4.2.1: Release tar ball made.
diff --git a/test/Makefile.am b/test/Makefile.am
index e6f1e223..774424f7 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -121,6 +121,9 @@ EXTRA_DIST = \
asort.ok \
asorti.awk \
asorti.ok \
+ assignnumfield.awk \
+ assignnumfield.in \
+ assignnumfield.ok \
awkpath.ok \
back89.awk \
back89.in \
@@ -1235,7 +1238,7 @@ BASIC_TESTS = \
addcomma anchgsub anchor argarray arrayind1 arrayind2 arrayind3 arrayparm \
arrayprm2 arrayprm3 arrayref arrymem1 arryref2 arryref3 arryref4 arryref5 \
arynasty arynocls aryprm1 aryprm2 aryprm3 aryprm4 aryprm5 aryprm6 aryprm7 \
- aryprm8 aryprm9 arysubnm aryunasgn asgext awkpath \
+ aryprm8 aryprm9 arysubnm aryunasgn asgext awkpath assignnumfield \
back89 backgsub badassign1 badbuild \
callparam childin clobber closebad clsflnam compare compare2 \
concat1 concat2 concat3 concat4 concat5 convfmt \
diff --git a/test/Makefile.in b/test/Makefile.in
index 532aca07..69b86d07 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -379,6 +379,9 @@ EXTRA_DIST = \
asort.ok \
asorti.awk \
asorti.ok \
+ assignnumfield.awk \
+ assignnumfield.in \
+ assignnumfield.ok \
awkpath.ok \
back89.awk \
back89.in \
@@ -1493,7 +1496,7 @@ BASIC_TESTS = \
addcomma anchgsub anchor argarray arrayind1 arrayind2 arrayind3 arrayparm \
arrayprm2 arrayprm3 arrayref arrymem1 arryref2 arryref3 arryref4 arryref5 \
arynasty arynocls aryprm1 aryprm2 aryprm3 aryprm4 aryprm5 aryprm6 aryprm7 \
- aryprm8 aryprm9 arysubnm aryunasgn asgext awkpath \
+ aryprm8 aryprm9 arysubnm aryunasgn asgext awkpath assignnumfield \
back89 backgsub badassign1 badbuild \
callparam childin clobber closebad clsflnam compare compare2 \
concat1 concat2 concat3 concat4 concat5 convfmt \
@@ -2787,6 +2790,11 @@ asgext:
@AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+assignnumfield:
+ @echo $@
+ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+
back89:
@echo $@
@AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
diff --git a/test/Maketests b/test/Maketests
index 8c604222..eb7c4651 100644
--- a/test/Maketests
+++ b/test/Maketests
@@ -140,6 +140,11 @@ asgext:
@AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+assignnumfield:
+ @echo $@
+ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+
back89:
@echo $@
@AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
diff --git a/test/assignnumfield.awk b/test/assignnumfield.awk
new file mode 100644
index 00000000..3a056cb0
--- /dev/null
+++ b/test/assignnumfield.awk
@@ -0,0 +1 @@
+{$0 = ++i} 1
diff --git a/test/assignnumfield.in b/test/assignnumfield.in
new file mode 100644
index 00000000..b82c4b2d
--- /dev/null
+++ b/test/assignnumfield.in
@@ -0,0 +1,5 @@
+a b c
+a b c
+a b c
+a b c
+a b c
diff --git a/test/assignnumfield.ok b/test/assignnumfield.ok
new file mode 100644
index 00000000..8a1218a1
--- /dev/null
+++ b/test/assignnumfield.ok
@@ -0,0 +1,5 @@
+1
+2
+3
+4
+5
--
cgit v1.2.1

View File

@ -30,10 +30,13 @@
# For more info: https://fedoraproject.org/wiki/Packaging:Guidelines#PIE # For more info: https://fedoraproject.org/wiki/Packaging:Guidelines#PIE
%global _hardened_build 1 %global _hardened_build 1
# Extract the API major & minor versions, so we can export them below: # Extract the API major & minor versions, so we can export them below.
%global gawk_api_major %%(tar -xf %{SOURCE0} gawk-%{version}/gawkapi.h --to-stdout 2>/dev/null | \ # Ensure that the major version is >= 3, since that patch is not yet
# in the tarball.
%global gawk_api_major %%(x=`tar -xf %{SOURCE0} gawk-%{version}/gawkapi.h --to-stdout 2>/dev/null | \
grep -i -e "gawk_api_major.*[[:digit:]]" | \ grep -i -e "gawk_api_major.*[[:digit:]]" | \
grep -o -e "[[:digit:]]" || :) grep -o -e "[[:digit:]]"`; \
[ "$x" -lt 3 ] && x=3; echo $x)
%global gawk_api_minor %%(tar -xf %{SOURCE0} gawk-%{version}/gawkapi.h --to-stdout 2>/dev/null | \ %global gawk_api_minor %%(tar -xf %{SOURCE0} gawk-%{version}/gawkapi.h --to-stdout 2>/dev/null | \
grep -i -e "gawk_api_minor.*[[:digit:]]" | \ grep -i -e "gawk_api_minor.*[[:digit:]]" | \
@ -43,8 +46,8 @@
Name: gawk Name: gawk
Summary: The GNU version of the AWK text processing utility Summary: The GNU version of the AWK text processing utility
Version: 4.2.1 Version: 5.1.0
Release: 4%{?dist} Release: 6%{?dist}
License: GPLv3+ and GPLv2+ and LGPLv2+ and BSD License: GPLv3+ and GPLv2+ and LGPLv2+ and BSD
@ -69,7 +72,6 @@ BuildRequires: gcc
BuildRequires: grep BuildRequires: grep
BuildRequires: ghostscript BuildRequires: ghostscript
BuildRequires: automake
# Extending GAWK possibilities: # Extending GAWK possibilities:
BuildRequires: libsigsegv-devel BuildRequires: libsigsegv-devel
BuildRequires: mpfr-devel BuildRequires: mpfr-devel
@ -80,6 +82,9 @@ BuildRequires: texinfo-tex
BuildRequires: texlive-ec BuildRequires: texlive-ec
BuildRequires: texlive-cm-super BuildRequires: texlive-cm-super
# Make check
BuildRequires: glibc-all-langpacks
# NOTE: In case any patch updates the awkgram.y or command.y (IOW if anything # NOTE: In case any patch updates the awkgram.y or command.y (IOW if anything
# changes the timestamp of awkgram.y, and it becomes newer than awkgram.c, # changes the timestamp of awkgram.y, and it becomes newer than awkgram.c,
# same applies for command.y), the 'make' command will automatically try # same applies for command.y), the 'make' command will automatically try
@ -94,6 +99,12 @@ BuildRequires: texlive-cm-super
# For more info, see: https://bugzilla.redhat.com/show_bug.cgi?id=1176993 # For more info, see: https://bugzilla.redhat.com/show_bug.cgi?id=1176993
BuildRequires: bison BuildRequires: bison
# After patching the awkgram.y, and running autoreconf, we now need additional
# packages to correctly finish the build. These should not be needed in the
# future, once upstream fixes their requirement on 'aclocal-1.15'.
BuildRequires: automake
BuildRequires: make
# ============================================================================= # =============================================================================
# NOTE: 'autosetup' macro (below) uses 'git' for applying the patches: # NOTE: 'autosetup' macro (below) uses 'git' for applying the patches:
@ -104,8 +115,12 @@ BuildRequires: bison
# Upstream patches -- official upstream patches released by upstream since the # Upstream patches -- official upstream patches released by upstream since the
# ---------------- last rebase that are necessary for any reason: # ---------------- last rebase that are necessary for any reason:
#Patch000: example000.patch #Patch000: example000.patch
Patch000: assign-int.patch
Patch001: proc-rv.patch Patch001: proc-rv.patch
#Parts of the patch dealing with .info files, were removed, some parts of documentation might be broken
#Patch008: gawk-api-version.patch
# Downstream patches -- these should be always included when doing rebase: # Downstream patches -- these should be always included when doing rebase:
# ------------------ # ------------------
@ -121,6 +136,7 @@ Patch001: proc-rv.patch
# Patches to be removed -- deprecated functionality which shall be removed at # Patches to be removed -- deprecated functionality which shall be removed at
# --------------------- some point in the future: # --------------------- some point in the future:
#Patch200: gawk-4.2.1-200-fix-build-for-f29.patch
%description %description
@ -163,6 +179,16 @@ displaying images. Therefore, this doc subpackage can provide you with HTML, PDF
and PS versions of those documents, which might be useful when you need to and PS versions of those documents, which might be useful when you need to
access them regularly, and/or when you do not have access to Internet. access them regularly, and/or when you do not have access to Internet.
# ---------------
%package all-langpacks
Summary: Additional localisation files for gawk utility
Supplements: %{name} = %{version}-%{release}
Conflicts: %{name} < 5.0.1-8
%description all-langpacks
The base package of gawk supports only the english localisation. This subpackage
contains additional localisation files.
# === BUILD INSTRUCTIONS ====================================================== # === BUILD INSTRUCTIONS ======================================================
# Call the 'autosetup' macro to prepare the environment, but do not patch the # Call the 'autosetup' macro to prepare the environment, but do not patch the
@ -179,7 +205,10 @@ git commit --all --amend --no-edit > /dev/null
# --------------- # ---------------
%build %build
autoreconf # NOTE: The re-generating of ./configure (below) should be removed once the
# direct dependency on 'aclocal-1.15' is fixed in upstream and backported.
autoreconf --force --verbose
%configure %configure
%make_build %make_build
@ -227,7 +256,8 @@ install -m 0644 -p doc/gawkinet.{pdf,ps} %{buildroot}%{_docdir}/%{name}
# === PACKAGING INSTRUCTIONS ================================================== # === PACKAGING INSTRUCTIONS ==================================================
%files -f %{name}.lang #%files -f %{name}.lang
%files
%{_bindir}/*awk %{_bindir}/*awk
%{_libdir}/*awk %{_libdir}/*awk
%{_datadir}/*awk %{_datadir}/*awk
@ -241,6 +271,8 @@ install -m 0644 -p doc/gawkinet.{pdf,ps} %{buildroot}%{_docdir}/%{name}
%doc NEWS README POSIX.STD README_d/README.multibyte %doc NEWS README POSIX.STD README_d/README.multibyte
%license COPYING LICENSE.GPLv2 LICENSE.LGPLv2 LICENSE.BSD %license COPYING LICENSE.GPLv2 LICENSE.LGPLv2 LICENSE.BSD
# ---------------
%files -f %{name}.lang all-langpacks
# --------------- # ---------------
%files devel %files devel
@ -257,17 +289,73 @@ install -m 0644 -p doc/gawkinet.{pdf,ps} %{buildroot}%{_docdir}/%{name}
# ============================================================================= # =============================================================================
%changelog %changelog
* Fri Feb 11 2022 Jakub Martisko <jamartis@redhat.com> - 4.2.1-4 * Wed Feb 16 2022 Jakub Martisko <jamartis@redhat.com> - 5.1.0-6
- Rebuild with some gating tests disabled Fix the issue with incorect handling of return values of some processes
Resolves: rhbz#2053515 Resolves: rhbz#2055107
* Thu Feb 10 2022 Jakub Martisko <jamartis@redhat.com> - 4.2.1-3 * Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 5.1.0-5
Fix the issue with an incorect handling of return code of some processes - Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Resolves: rhbz#2018077 Related: rhbz#1991688
* Tue Nov 24 2020 Jakub Martisko <jamartis@redhat.com> - 4.2.1-2 * Thu Apr 15 2021 Mohan Boddu <mboddu@redhat.com> - 5.1.0-4
- Fix an issue with an int() value not being assigned to a variable - Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
Resolves: #1893370
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 5.1.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 5.1.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue Jul 21 2020 Jakub Martisko <jamartis@redhat.com> - 5.1.0-1
- New upstream release
* Tue Feb 18 2020 Jakub Martisko <jamartis@redhat.com> - 5.0.1-8
- Split the package into the main package and locales subpackage
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 5.0.1-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Wed Oct 9 2019 Jerry James <loganjerry@gmail.com> - 5.0.1-6
- Rebuild for mpfr 4
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 5.0.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Sat Jul 20 2019 Andrew Schorr <ajschorr@fedoraproject.org> - 5.0.1-4
- Force api_major_version >= 3 because patch is not in tarball yet
* Thu Jul 11 2019 Andrew Schorr <ajschorr@fedoraproject.org> - 5.0.1-3
- Add upstream patch to fix the API version number
* Thu Jun 27 2019 Jakub Martisko <jamartis@redhat.com> - 5.0.1-2
- Fix the bacward compatibility of the inplace extension
- (renaming of some variables due to introduction of namespaces)
Resolves: #1723359
* Mon Jun 24 2019 Jakub Martisko <jamartis@redhat.com> - 5.0.1-1
- New upstream release
Resolves: #1674922
* Sun Feb 17 2019 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 4.2.1-6
- Rebuild for readline 8.0
* Wed Feb 13 2019 Jakub Martisko <jamartis@redhat.com> - 4.2.1-5
- Fix FTBFS caused by missing glibc langpacks required by make check
Resolves: #1674922
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4.2.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 4.2.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Thu Jun 21 2018 David Kaspar [Dee'Kej] <dkaspar@redhat.com> - 4.2.1-2
- 5 important patches backported from upstream per their request:
gawk-4.2.1-000-add-support-for-a-and-A-in-printf.patch
gawk-4.2.1-001-remove-the-tail-recursion-optimization.patch
gawk-4.2.1-002-copy-MPZ-MPFR-bits-also-in-r_dupnode.patch
gawk-4.2.1-003-fix-rebuilding-records-if-using-API-parser.patch
gawk-4.2.1-004-fix-a-corner-case-with-EPIPE-to-stdout-stderr.patch
* Mon Feb 26 2018 David Kaspar [Dee'Kej] <dkaspar@redhat.com> - 4.2.1-1 * Mon Feb 26 2018 David Kaspar [Dee'Kej] <dkaspar@redhat.com> - 4.2.1-1
- Rebase to latest stable release from upstream - Rebase to latest stable release from upstream