diff options
Diffstat (limited to 'user/gnucobol')
-rw-r--r-- | user/gnucobol/0001-move-packed-decimal.patch | 30 | ||||
-rw-r--r-- | user/gnucobol/0002-errno.patch | 26 | ||||
-rw-r--r-- | user/gnucobol/APKBUILD | 26 | ||||
-rw-r--r-- | user/gnucobol/keep-debug-flags.patch | 62 |
4 files changed, 73 insertions, 71 deletions
diff --git a/user/gnucobol/0001-move-packed-decimal.patch b/user/gnucobol/0001-move-packed-decimal.patch new file mode 100644 index 000000000..d5251172a --- /dev/null +++ b/user/gnucobol/0001-move-packed-decimal.patch @@ -0,0 +1,30 @@ +See also: + +* https://sourceforge.net/p/gnucobol/bugs/904/ + +diff -ur a/gnucobol-3.2/libcob/numeric.c b/gnucobol-3.2/libcob/numeric.c +--- a/libcob/numeric.c 2023-08-18 01:07:41.324059298 +0000 ++++ b/libcob/numeric.c 2023-08-18 01:31:31.294137417 +0000 +@@ -2739,17 +2739,12 @@ + } + } else { + unsigned char *pos = fld2 + fld2_size - 1; +- if (COB_FIELD_HAVE_SIGN (f2)) { +- if (!fld1_sign) { +- *pos &= 0xF0; +- *pos |= 0x0C; +- } else { +- *pos &= 0xF0; +- *pos |= fld1_sign; +- } +- } else { +- *pos &= 0xF0; ++ if (!COB_FIELD_HAVE_SIGN (f2)) { + *pos |= 0x0F; ++ } else if (fld1_sign == 0x0D) { ++ *pos = (*pos & 0xF0) | 0x0D; ++ } else { ++ *pos = (*pos & 0xF0) | 0x0C; + } + if (!(COB_FIELD_DIGITS (f2) & 1) /* -> digits % 2 == 0 */) { + *fld2 &= 0x0F; diff --git a/user/gnucobol/0002-errno.patch b/user/gnucobol/0002-errno.patch new file mode 100644 index 000000000..968190733 --- /dev/null +++ b/user/gnucobol/0002-errno.patch @@ -0,0 +1,26 @@ +See also: + +* https://git.adelielinux.org/adelie/packages/-/issues/1045#note_13472 + +--- a/cobc/cobc.c.gc32 Sat Jul 22 17:01:52 2023 ++++ b/cobc/cobc.c Thu Aug 17 23:01:33 2023 +@@ -2358,6 +2358,10 @@ + DECLNORET static void COB_A_NORETURN + cobc_terminate (const char *str) + { ++ /* must be executed before anything that may adjust errno, ... ++ like the listing code below. */ ++ const char *errno_str = cb_get_strerror (); ++ + if (cb_src_list_file) { + set_listing_date (); + set_standard_title (); +@@ -2365,7 +2369,7 @@ + cobc_elided_strcpy (cb_listing_filename, str, sizeof (cb_listing_filename), 0); + print_program_header (); + } +- cb_perror (0, "cobc: %s: %s", str, cb_get_strerror ()); ++ cb_perror (0, "cobc: %s: %s", str, errno_str); + if (cb_src_list_file) { + print_program_trailer (); + } diff --git a/user/gnucobol/APKBUILD b/user/gnucobol/APKBUILD index 8e65b9810..f0807703b 100644 --- a/user/gnucobol/APKBUILD +++ b/user/gnucobol/APKBUILD @@ -1,10 +1,10 @@ # Contributor: Max Rees <maxcrees@me.com> -# Maintainer: Max Rees <maxcrees@me.com> +# Maintainer: Zach van Rijn <me@zv.io> pkgname=gnucobol -pkgver=3.1.2 +pkgver=3.2 pkgrel=0 pkgdesc="Free COBOL compiler" -url="https://sourceforge.net/projects/open-cobol/" +url="https://www.gnu.org/software/gnucobol/" arch="all" license="GPL-3.0+ AND LGPL-3.0+ AND GFDL-1.3" # Since it compiles to C as an intermediate, the headers / libraries must @@ -12,9 +12,11 @@ license="GPL-3.0+ AND LGPL-3.0+ AND GFDL-1.3" depends="db-dev gmp-dev json-c-dev libxml2-dev ncurses-dev" makedepends="autoconf automake help2man libtool texinfo" subpackages="$pkgname-doc $pkgname-lang" -source="https://downloads.sourceforge.net/project/gnucobol/gnucobol/${pkgver%.*}/gnucobol-$pkgver.tar.xz - https://dev.sick.bike/dist/newcob.val.Z - keep-debug-flags.patch +source="https://ftp.gnu.org/gnu/gnucobol/gnucobol-$pkgver.tar.xz + https://distfiles.adelielinux.org/source/archive/$pkgname-$pkgver/newcob.val.Z + + 0001-move-packed-decimal.patch + 0002-errno.patch " prepare() { @@ -37,14 +39,20 @@ build() { } check() { - make check + #1045 + for k in 774 775 818 887 1139 1140 1203 1215; do + sed -i tests/testsuite -e "/^$k;/d"; + done + make test + make check } package() { make DESTDIR="$pkgdir" install } -sha512sums="738149c9d3e01140e4036b041f4eaa6c7caf7848a87146a3dd9940a9f17006805fd3c6b169d346bf01a0c2e671655080978c0f3182a85389f8f8a373ca8c1435 gnucobol-3.1.2.tar.xz +sha512sums="1aef3c1bf7283219a7cb1e7b38ba5c5e299c0a83666ab6afdbb5713f1f791b23575ca51d546c4f2f036217060269028bbce4b5babbeb4f721b57495d5f258ff7 gnucobol-3.2.tar.xz eb784866d1a335834074fbe103b5c5f5da810d847ae14a64316ecbb2c0f95ef751d2f2ec609b8fa21ef0b775817dc61115a574608ec89750d779ae0afbb95379 newcob.val.Z -e032706ea9827ca416680f01a7440c44d9c586cbe7d93f5acd58adedacb6cc3d37a0966b6d5d6fc5d5969deb6a77757eee2a1d310ade8842924ffa8da0277a70 keep-debug-flags.patch" +d913d314172b4476ac7488010a03d52aac4c25502333a146725d459655f128026b74b938a2224d15fbfbd91f91dad7202d1546e7f77c01e16e242341bbada62c 0001-move-packed-decimal.patch +caaaca806c04db9e89f535c31444c647da926b76bed421c44ed1ea199d75d2fc4e1a5141eeff9c0985c2430513d416756443e8ca807bda9c3a496171e22026f0 0002-errno.patch" diff --git a/user/gnucobol/keep-debug-flags.patch b/user/gnucobol/keep-debug-flags.patch deleted file mode 100644 index 625a5002b..000000000 --- a/user/gnucobol/keep-debug-flags.patch +++ /dev/null @@ -1,62 +0,0 @@ ---- gnucobol-3.1.2/configure.ac 2020-12-23 05:51:14.000000000 -0500 -+++ gnucobol-3.1.2/configure.ac 2021-05-03 02:35:16.051807283 -0400 -@@ -1854,59 +1854,6 @@ if test "$COB_USES_CLANG_ONLY" = "yes"; - fi - - --# Include CFLAGS / CPPFLAGS in COB_CFLAGS without optimization/debug options. -- --if test "x$CFLAGS" != "x"; then -- cob_temp_flags="$CFLAGS" --else -- cob_temp_flags="" --fi --if test "x$CPPFLAGS" != "x"; then -- if test "x$cob_temp_flags" != "x"; then -- cob_temp_flags="$CPPFLAGS $cob_temp_flags" -- else -- cob_temp_flags="$CPPFLAGS" -- fi --fi -- --# --# Add CFLAGS and CPPFLAGS to COB_CFLAGS, minus optimization/debug options. -- --cob_temp_flags="$CFLAGS $CPPFLAGS" -- --if test "$enable_hardening" = no; then -- cob_temp_flags=$(echo x$cob_temp_flags | \ -- sed -e 's/^x//' \ -- -e 's/-Wp,-D_FORTIFY_SOURCE=.//g' \ -- -e 's/-D_FORTIFY_SOURCE=.//g' \ -- -e 's/-fmessage-length=0//g' \ -- -e 's/-fstack-protector-strong//g' \ -- -e 's/-fstack-protector-all//g' \ -- -e 's/-fstack-protector//g' \ -- ) --fi -- --cob_temp_flags=$(echo x$cob_temp_flags | \ -- sed -e 's/^x//' \ -- -e 's/-g\(db\)\{0,1\}[[0-9 ]]//g' \ -- -e 's/-g\(db\)\{0,1\}$//' \ -- -e 's/[[+-]]O[[0-9s]]*//g' \ -- -e 's/-O//g' \ -- -e 's/-funwind-tables//g' \ -- -e 's/-fasynchronous-unwind-tables//g' \ -- -e 's/ / /g' \ -- -e 's/ $//g' \ -- ) -- --if test "x$cob_temp_flags" != "x"; then -- COB_CFLAGS="$cob_temp_flags $COB_CFLAGS" --fi --if test "$enable_hardening" = "yes"; then -- # needs optimization -- COB_CFLAGS="$COB_CFLAGS -O" --fi --unset cob_temp_flags -- - # Special stuff - - AH_VERBATIM([_XOPEN_SOURCE_EXTENDED], |