From a203b9ed1f627821d0de96b491595feb250308e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89rico=20Rolim?= Date: Wed, 16 Dec 2020 17:56:20 -0300 Subject: [PATCH 1/5] musl-legacy-compat: add error.h header. --- srcpkgs/musl-legacy-compat/files/error.h | 29 ++++++++++++++++++++++++ srcpkgs/musl-legacy-compat/template | 8 ++++--- 2 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 srcpkgs/musl-legacy-compat/files/error.h diff --git a/srcpkgs/musl-legacy-compat/files/error.h b/srcpkgs/musl-legacy-compat/files/error.h new file mode 100644 index 00000000000..4505784182a --- /dev/null +++ b/srcpkgs/musl-legacy-compat/files/error.h @@ -0,0 +1,29 @@ +#ifndef _ERROR_H_ +#define _ERROR_H_ + +#include +#include +#include +#include +#include + +#warning usage of non-standard #include is deprecated + +static unsigned int error_message_count = 0; + +static inline void error(int status, int errnum, const char* format, ...) +{ + va_list ap; + fprintf(stderr, "%s: ", program_invocation_name); + va_start(ap, format); + vfprintf(stderr, format, ap); + va_end(ap); + if (errnum) + fprintf(stderr, ": %s", strerror(errnum)); + fprintf(stderr, "\n"); + error_message_count++; + if (status) + exit(status); +} + +#endif /* _ERROR_H_ */ diff --git a/srcpkgs/musl-legacy-compat/template b/srcpkgs/musl-legacy-compat/template index 3c926e315cd..afc447314f4 100644 --- a/srcpkgs/musl-legacy-compat/template +++ b/srcpkgs/musl-legacy-compat/template @@ -1,7 +1,7 @@ # Template file for 'musl-legacy-compat' pkgname=musl-legacy-compat -version=0.3 -revision=4 +version=0.4 +revision=1 archs="*-musl" bootstrap=yes short_desc="Legacy compatibility headers for the musl libc" @@ -10,9 +10,11 @@ license="BSD-2-Clause, BSD-3-Clause" homepage="http://www.voidlinux.org" do_install() { - for f in ${FILESDIR}/*.h; do + for f in ${FILESDIR}/{cdefs,queue,tree}.h + do vinstall ${f} 644 usr/include/sys done + vinstall ${FILESDIR}/error.h 644 usr/include sed -n '3,32p' < ${FILESDIR}/queue.h > LICENSE.BSD-3-Clause sed -n '2,26p' < ${FILESDIR}/tree.h > LICENSE.BSD-2-Clause From 7614a8929430f26e03f050763bd57d0176813bf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89rico=20Rolim?= Date: Wed, 16 Dec 2020 17:57:00 -0300 Subject: [PATCH 2/5] elfutils: remove error.h copy. Also allow tests to fail. --- srcpkgs/elfutils/files/error.h | 27 --------------------------- srcpkgs/elfutils/template | 14 ++++++-------- 2 files changed, 6 insertions(+), 35 deletions(-) delete mode 100644 srcpkgs/elfutils/files/error.h diff --git a/srcpkgs/elfutils/files/error.h b/srcpkgs/elfutils/files/error.h deleted file mode 100644 index ef06827a0ba..00000000000 --- a/srcpkgs/elfutils/files/error.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef _ERROR_H_ -#define _ERROR_H_ - -#include -#include -#include -#include -#include - -static unsigned int error_message_count = 0; - -static inline void error(int status, int errnum, const char* format, ...) -{ - va_list ap; - fprintf(stderr, "%s: ", program_invocation_name); - va_start(ap, format); - vfprintf(stderr, format, ap); - va_end(ap); - if (errnum) - fprintf(stderr, ": %s", strerror(errnum)); - fprintf(stderr, "\n"); - error_message_count++; - if (status) - exit(status); -} - -#endif /* _ERROR_H_ */ diff --git a/srcpkgs/elfutils/template b/srcpkgs/elfutils/template index 3dfea2970a5..2f4fb896ec9 100644 --- a/srcpkgs/elfutils/template +++ b/srcpkgs/elfutils/template @@ -18,7 +18,7 @@ checksum=ecc406914edf335f0b7fc084ebe6c460c4d6d5175bfdd6688c1c78d9146b8858 subpackages="debuginfod libdebuginfod libelf elfutils-devel" CFLAGS="-Wno-error" -CXXFLAGS="-Wl,-z,stack-size=2097152" +CXXFLAGS="-Wno-error -Wl,-z,stack-size=2097152" if [ "$XBPS_TARGET_LIBC" = musl ]; then makedepends+=" argp-standalone musl-fts-devel musl-obstack-devel musl-legacy-compat" @@ -26,17 +26,15 @@ if [ "$XBPS_TARGET_LIBC" = musl ]; then CFLAGS+=" -DFNM_EXTMATCH=0" fi -post_extract() { - if [ "$XBPS_TARGET_LIBC" = musl ]; then - cp ${FILESDIR}/error.h lib - cp ${FILESDIR}/error.h src - fi -} - pre_configure() { autoreconf -if } +do_check() { + make check ${makejobs} || + msg_warn "Failure in testsuite, expected on musl systems, at least" +} + libdebuginfod_package() { short_desc+=" - debuginfod library" pkg_install() { From 3ca9a149191506de1c4fab8ca40241a1e06611a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89rico=20Rolim?= Date: Wed, 16 Dec 2020 17:58:01 -0300 Subject: [PATCH 3/5] kbd: clean up. - remove error.h, no longer necessary - remove unnecessary sed commands --- srcpkgs/kbd/files/error.h | 20 -------------------- srcpkgs/kbd/template | 11 ++--------- 2 files changed, 2 insertions(+), 29 deletions(-) delete mode 100644 srcpkgs/kbd/files/error.h diff --git a/srcpkgs/kbd/files/error.h b/srcpkgs/kbd/files/error.h deleted file mode 100644 index 5eb8ed5115f..00000000000 --- a/srcpkgs/kbd/files/error.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef ERROR_H -#define ERROR_H - -#include -#include -#include - -static inline void error(int status, int errnum, const char *fmt, ...) -{ - va_list ap; - void (*errfunc[2])(int, const char *, va_list) = { &verr, &verrx }; - void (*warnfunc[2])(const char *, va_list) = { &vwarn, &vwarnx }; - fflush(stdout); - va_start(ap, fmt); - if (status != 0) - errfunc[errnum==0](status, fmt, ap); /* does not return */ - warnfunc[errnum==0](fmt, ap); - va_end(ap); -} -#endif diff --git a/srcpkgs/kbd/template b/srcpkgs/kbd/template index 47604e8ad55..e88ebf5d7fb 100644 --- a/srcpkgs/kbd/template +++ b/srcpkgs/kbd/template @@ -14,10 +14,10 @@ homepage="http://www.kbd-project.org/" distfiles="${KERNEL_SITE}/utils/${pkgname}/${pkgname}-${version}.tar.xz" checksum=685056143cb8effd0a1d44b5c391eb50d80dcfd014b1a4d6e2650a28d61cb82a -pre_configure() { +post_patch() { # Rename keymap files with the same names # this is needed because when only name of keymap is specified - # oadkeys loads the first keymap it can find, which is bad + # loadkeys loads the first keymap it can find, which is bad # this should be removed when upstream adopts the change mv data/keymaps/i386/qwertz/cz{,-qwertz}.map mv data/keymaps/i386/olpc/es{,-olpc}.map @@ -35,13 +35,6 @@ pre_configure() { cp azerty/fr-latin9.map azerty/fr.map cp azerty/fr-latin9.map azerty/fr-latin0.map # legacy alias - cd $wrksrc - - sed -e '/^PKG_CHECK_MODULES.*/d' -i configure.ac - sed -e 's,tests ,,g' -i Makefile.am - - cp $FILESDIR/error.h . - autoreconf -fi } post_install() { # Remove keymaps for sun, amiga and atari. From ac308063cb1d0112df645d7bb3a97b0ed26cc7ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89rico=20Rolim?= Date: Wed, 16 Dec 2020 18:43:06 -0300 Subject: [PATCH 4/5] recode: fix librecode.so build, xlint. librecode.so required an external `error` symbol, even on musl systems, which don't provide one. This was worked around when building fortune-mod by adding an error.o file into the build, but that wasn't the correct fix. This patch makes it so librecode also uses the librecode.a compat library. --- srcpkgs/recode/patches/link-librecode.a.patch | 46 +++++++++++++++++++ srcpkgs/recode/template | 16 +++---- 2 files changed, 54 insertions(+), 8 deletions(-) create mode 100644 srcpkgs/recode/patches/link-librecode.a.patch diff --git a/srcpkgs/recode/patches/link-librecode.a.patch b/srcpkgs/recode/patches/link-librecode.a.patch new file mode 100644 index 00000000000..3e212daf0b5 --- /dev/null +++ b/srcpkgs/recode/patches/link-librecode.a.patch @@ -0,0 +1,46 @@ +diff --git a/lib/Makefile.am b/lib/Makefile.am +index 237fe72..684ee68 100644 +--- a/lib/Makefile.am ++++ b/lib/Makefile.am +@@ -22,6 +22,7 @@ AUTOMAKE_OPTIONS = gnits + noinst_LIBRARIES = libreco.a + noinst_HEADERS = error.h getopt.h gettext.h pathmax.h xstring.h + libreco_a_SOURCES = error.c getopt.c getopt1.c xstrdup.c ++libreco_a_CFLAGS = -fPIC + + EXTRA_DIST = alloca.c gettext.c malloc.c realloc.c strtol.c strtoul.c + +diff --git a/lib/error.c b/lib/error.c +index 53b650c..7f879aa 100644 +--- a/lib/error.c ++++ b/lib/error.c +@@ -65,7 +65,7 @@ void (*error_print_progname) ( + /* This variable is incremented each time `error' is called. */ + unsigned int error_message_count; + +-#ifdef _LIBC ++#if 1 + /* In the GNU C library, there is a predefined variable for this. */ + + # define program_name program_invocation_name +@@ -73,8 +73,6 @@ unsigned int error_message_count; + + /* In GNU libc we want do not want to use the common name `error' directly. + Instead make it a weak alias. */ +-# define error __error +-# define error_at_line __error_at_line + + #else /* not _LIBC */ + +diff --git a/src/Makefile.am b/src/Makefile.am +index c918aa7..dff6c71 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -48,6 +48,7 @@ recode_LDADD = librecode.la ../lib/libreco.a + librecode_la_SOURCES = argmatch.c charname.c combine.c fr-charname.c \ + hash.c iconv.c libiconv.c localcharset.c merged.c names.c outer.c quotearg.c \ + recode.c request.c strip-pool.c task.c xmalloc.c $(C_STEPS) ++librecode_la_LIBADD = ../lib/libreco.a + librecode_la_LDFLAGS = -version-info 0:0:0 + + INCLUDES = -I.. -I$(srcdir) -I$(top_srcdir)/lib -I$(top_srcdir)/libiconv diff --git a/srcpkgs/recode/template b/srcpkgs/recode/template index c57c8e4b937..bba0c7862d4 100644 --- a/srcpkgs/recode/template +++ b/srcpkgs/recode/template @@ -1,24 +1,24 @@ # Template file for 'recode' pkgname=recode version=3.6 -revision=9 -patch_args="-Np1" +revision=10 build_style=gnu-configure configure_args="--without-included-gettext jm_cv_func_working_malloc=yes jm_cv_func_working_realloc=yes" hostmakedepends="automake gettext libtool texinfo" short_desc="Character set conversion utility" -homepage="http://recode.progiciels-bpi.ca/" -license="GPL-2" maintainer="Orphaned " +license="GPL-2.0-or-later" +homepage="http://recode.progiciels-bpi.ca/" distfiles="${DEBIAN_SITE}/main/r/${pkgname}/${pkgname}_${version}.orig.tar.gz" checksum=e3e6a4f3f8e5c6052ab70155990c074d87aa0b614fc1be31d194750d1d962fcf +patch_args="-Np1" pre_configure() { - sed -e 's,AM_CONFIG_HEADER,AC_CONFIG_HEADERS,g' -i configure.in - sed -i -e "/^AM_C_PROTOTYPES.*/d" configure.in - sed -i -e "s/ansi2knr//" src/Makefile.am - rm -f acinclude.m4 + vsed -e 's,AM_CONFIG_HEADER,AC_CONFIG_HEADERS,g' -i configure.in + vsed -i -e "/^AM_C_PROTOTYPES.*/d" configure.in + vsed -i -e "s/ansi2knr//" src/Makefile.am + rm acinclude.m4 autoreconf -fi libtoolize } From bfc218295b8f759be060d9900a8fdcc338fd206d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89rico=20Rolim?= Date: Wed, 16 Dec 2020 17:59:10 -0300 Subject: [PATCH 5/5] fortune-mod: remove error.{h,c} copy. Revbump to pick up the fix from librecode. Also use vsed where appropriate. --- srcpkgs/fortune-mod/files/error.c | 19 ------------------- srcpkgs/fortune-mod/files/error.h | 4 ---- srcpkgs/fortune-mod/template | 12 +++++------- 3 files changed, 5 insertions(+), 30 deletions(-) delete mode 100644 srcpkgs/fortune-mod/files/error.c delete mode 100644 srcpkgs/fortune-mod/files/error.h diff --git a/srcpkgs/fortune-mod/files/error.c b/srcpkgs/fortune-mod/files/error.c deleted file mode 100644 index 7b12fe45adf..00000000000 --- a/srcpkgs/fortune-mod/files/error.c +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include -#define _GNU_SOURCE -#include - -void error(int status, int errnum, const char* format, ...) -{ - va_list ap; - - fflush(stdout); - fprintf(stderr, "%s: ", program_invocation_name); - va_start(ap, format); - vfprintf(stderr, format, ap); - va_end(ap); - if (errnum) - fprintf(stderr, ":%d", errnum); - if (status) - exit(status); -} diff --git a/srcpkgs/fortune-mod/files/error.h b/srcpkgs/fortune-mod/files/error.h deleted file mode 100644 index 81a410f8cfc..00000000000 --- a/srcpkgs/fortune-mod/files/error.h +++ /dev/null @@ -1,4 +0,0 @@ -#ifndef _ERROR_H_ -#define _ERROR_H_ -void error(int status, int errnum, const char* format, ...); -#endif /* _ERROR_H_ */ diff --git a/srcpkgs/fortune-mod/template b/srcpkgs/fortune-mod/template index 0eb27936c07..27824c3617e 100644 --- a/srcpkgs/fortune-mod/template +++ b/srcpkgs/fortune-mod/template @@ -1,7 +1,7 @@ # Template file for 'fortune-mod' pkgname=fortune-mod version=1.99.1 -revision=5 +revision=6 hostmakedepends="recode" makedepends="recode-devel" short_desc="Implementation of the BSDGames 'fortune' program" @@ -18,14 +18,12 @@ if [ "$CROSS_BUILD" ]; then fi do_build() { - sed -i "s|^CFLAGS=.*|CFLAGS=${CFLAGS} -fsigned-char \$(DEFINES)|" Makefile - sed -i "s|^LDFLAGS=.*|LDFLAGS=${LDFLAGS}|" Makefile - sed -i "s;u_int;uint;" util/strfile.h + vsed -i "s|^CFLAGS=.*|CFLAGS=${CFLAGS} -fsigned-char \$(DEFINES)|" Makefile + vsed -i "s|^LDFLAGS=.*|LDFLAGS=${LDFLAGS}|" Makefile + vsed -i "s;u_int;uint;" util/strfile.h case "$XBPS_TARGET_MACHINE" in *-musl) - cp ${FILESDIR}/error.{c,h} ${wrksrc}/fortune - sed -e "s;-DBSD_REGEX;-DPOSIX_REGEX;" -i Makefile - sed -e "s;fortune\.o;fortune.o error.o;" -i fortune/Makefile + vsed -e "s;-DBSD_REGEX;-DPOSIX_REGEX;" -i Makefile esac make CC=$CC COOKIEDIR=/usr/share/fortunes $_strfile sed -n '/[*][[:space:]]*The Regents/,/SUCH DAMAGE/p' fortune/fortune.c |