From eea3243d9ded9aedfb9fed457f3bc9b10b7c665c Mon Sep 17 00:00:00 2001 From: OscarL Date: Mon, 12 Dec 2022 23:16:39 -0300 Subject: [PATCH] kbuild: update to version 0.1.9998svn3572 (#7536) - Re-applied (after minor modifications) the previous .patch for version 0.1.9998svn3296. - Used basically the same patch David Karoly applied to make-4.3 to fix a build error. - Use byacc instead of yacc to fix error: "arith.tab.h not found". - Automatically create SvnInfo.kmk from BUILD() instead of using the first change from "kbuild-0.1.9998svn3296-distribution.patch". - Disable textinfo docs (the other change from that "distribution" patch). - Install "templates/*.kmk" too (can't even try to build VirtualBox's Guest Additions without this). - Use $portVersion instead of hardcoded version. --- ...6.recipe => kbuild-0.1.9998svn3572.recipe} | 29 +++-- .../kbuild-0.1.9998svn3296-distribution.patch | 21 ---- ....patch => kbuild-0.1.9998svn3572.patchset} | 105 +++++++++++++----- 3 files changed, 93 insertions(+), 62 deletions(-) rename dev-util/kbuild/{kbuild-0.1.9998svn3296.recipe => kbuild-0.1.9998svn3572.recipe} (79%) delete mode 100644 dev-util/kbuild/patches/kbuild-0.1.9998svn3296-distribution.patch rename dev-util/kbuild/patches/{kbuild-0.1.9998svn3296-haiku.patch => kbuild-0.1.9998svn3572.patchset} (88%) diff --git a/dev-util/kbuild/kbuild-0.1.9998svn3296.recipe b/dev-util/kbuild/kbuild-0.1.9998svn3572.recipe similarity index 79% rename from dev-util/kbuild/kbuild-0.1.9998svn3296.recipe rename to dev-util/kbuild/kbuild-0.1.9998svn3572.recipe index 1e95276d0..e5273f7c2 100644 --- a/dev-util/kbuild/kbuild-0.1.9998svn3296.recipe +++ b/dev-util/kbuild/kbuild-0.1.9998svn3572.recipe @@ -5,15 +5,15 @@ Its features include a template mechanism that simplifies configuration and \ a set of supporting tools that provide consistent behavior across multiple \ platforms." HOMEPAGE="https://trac.netlabs.org/kbuild/" -COPYRIGHT="2005-2018 Knut St. Osmundsen" +COPYRIGHT="2005-2022 Knut St. Osmundsen" LICENSE="GNU GPL v3" REVISION="1" -SOURCE_URI="https://salsa.debian.org/pkg-virtualbox-team/kbuild/-/archive/upstream/0.1.9998svn3296+dfsg/kbuild-upstream-0.1.9998svn3296+dfsg.tar.bz2" -CHECKSUM_SHA256="30c025d076f561984932801c143d57e833386f6e96bf244d57d0f9074e59f683" -SOURCE_DIR="kbuild-upstream-0.1.9998svn3296+dfsg" +# No direct source archive from $HOMEPAGE, so we use the one from debian's "mirror": +SOURCE_URI="https://salsa.debian.org/pkg-virtualbox-team/kbuild/-/archive/upstream/$portVersion+dfsg/kbuild-upstream-$portVersion+dfsg.tar.bz2" +CHECKSUM_SHA256="f054cff0d71e731b946f23769a9d6225186a31f00e135f36cb347a5ecd99b9b5" +SOURCE_DIR="kbuild-upstream-$portVersion+dfsg" PATCHES=" - kbuild-0.1.9998svn3296-distribution.patch - kbuild-0.1.9998svn3296-haiku.patch + kbuild-$portVersion.patchset " ARCHITECTURES="all !x86_gcc2" @@ -23,9 +23,10 @@ fi PROVIDES=" kbuild$secondaryArchSuffix = $portVersion - cmd:kDepIDB$secondaryArchSuffix = $portVersion - cmd:kDepObj$secondaryArchSuffix = $portVersion - cmd:kDepPre$secondaryArchSuffix = $portVersion + cmd:bld_signames$secondaryArchSuffix = $portVersion + cmd:kDepIDB$secondaryArchSuffix = $portVersion + cmd:kDepObj$secondaryArchSuffix = $portVersion + cmd:kDepPre$secondaryArchSuffix = $portVersion cmd:kmk$secondaryArchSuffix = $portVersion cmd:kmk_append$secondaryArchSuffix = $portVersion cmd:kmk_ash$secondaryArchSuffix = $portVersion @@ -63,13 +64,13 @@ BUILD_PREREQUIRES=" cmd:aclocal cmd:autopoint cmd:autoreconf + cmd:byacc cmd:find cmd:flex cmd:gcc$secondaryArchSuffix cmd:ld$secondaryArchSuffix cmd:make cmd:makeinfo - cmd:yacc " defineDebugInfoPackage kbuild$secondaryArchSuffix \ @@ -111,7 +112,11 @@ esac BUILD() { - kBuild/env.sh --full make $jobArgs -f bootstrap.gmk + # Add a file with the SVN revision (so "kmk --version" displays it): + svnRevision=${portVersion:${#portVersion}-4} + printf '%s\n' "KBUILD_SVN_REV := $svnRevision" > SvnInfo.kmk + + kBuild/env.sh --full make $jobArgs -f bootstrap.gmk YACC=byacc } INSTALL() @@ -119,7 +124,7 @@ INSTALL() mkdir -p $binDir $dataDir/kBuild $dataDir/profile.d cp -R kBuild/bin/haiku.${kbuildArch}/* $binDir - cp -R kBuild/{tools,units,*.kmk} $dataDir/kBuild + cp -R kBuild/{tools,units,templates,*.kmk} $dataDir/kBuild kbuildProfile=$dataDir/profile.d/kbuild.sh echo "export KBUILD_PATH=$dataDir/kBuild" > $kbuildProfile diff --git a/dev-util/kbuild/patches/kbuild-0.1.9998svn3296-distribution.patch b/dev-util/kbuild/patches/kbuild-0.1.9998svn3296-distribution.patch deleted file mode 100644 index 4866b5014..000000000 --- a/dev-util/kbuild/patches/kbuild-0.1.9998svn3296-distribution.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff --git a/SvnInfo.kmk b/SvnInfo.kmk -new file mode 100644 -index 0000000..23713f6 ---- /dev/null -+++ b/SvnInfo.kmk -@@ -0,0 +1,2 @@ -+KBUILD_SVN_URL := http://svn.netlabs.org/repos/kbuild/trunk -+KBUILD_SVN_REV := 3296 -diff --git a/src/kmk/doc/Makefile.am b/src/kmk/doc/Makefile.am -index 11aa4d4..caf8951 100644 ---- a/src/kmk/doc/Makefile.am -+++ b/src/kmk/doc/Makefile.am -@@ -18,7 +18,7 @@ - TEXI2HTML = texi2html - TEXI2HTML_FLAGS = -split_chapter - --info_TEXINFOS = make.texi -+#info_TEXINFOS = make.texi - make_TEXINFOS = fdl.texi make-stds.texi - - CLEANFILES = make*.html diff --git a/dev-util/kbuild/patches/kbuild-0.1.9998svn3296-haiku.patch b/dev-util/kbuild/patches/kbuild-0.1.9998svn3572.patchset similarity index 88% rename from dev-util/kbuild/patches/kbuild-0.1.9998svn3296-haiku.patch rename to dev-util/kbuild/patches/kbuild-0.1.9998svn3572.patchset index 83b57cfb2..cd421f251 100644 --- a/dev-util/kbuild/patches/kbuild-0.1.9998svn3296-haiku.patch +++ b/dev-util/kbuild/patches/kbuild-0.1.9998svn3572.patchset @@ -1,8 +1,14 @@ +From e1c53c298daa1a862d3f43ae2d5607119d979f43 Mon Sep 17 00:00:00 2001 +From: Oscar Lesta +Date: Thu, 24 Nov 2022 21:19:51 -0300 +Subject: Re-applied changes from kbuild-0.1.9998svn3296-haiku.patch. + + diff --git a/src/kmk/Makefile.am b/src/kmk/Makefile.am -index ca8acb1..a9c96c8 100644 +index 12cc103..3f91c9e 100644 --- a/src/kmk/Makefile.am +++ b/src/kmk/Makefile.am -@@ -98,6 +98,9 @@ kmk_SOURCES = ar.c arscan.c commands.c default.c dir.c expand.c file.c \ +@@ -99,6 +99,9 @@ kmk_SOURCES = ar.c arscan.c commands.c default.c dir.c expand.c file.c \ kmkbuiltin/osdep.c \ kmkbuiltin/kbuild_protection.c \ kmkbuiltin/common-env-and-cwd-opt.c @@ -12,7 +18,7 @@ index ca8acb1..a9c96c8 100644 kmk_redirect_SOURCES = kmkbuiltin/redirect.c \ kmkbuiltin/common-env-and-cwd-opt.c \ -@@ -113,6 +116,9 @@ noinst_HEADERS = commands.h dep.h filedef.h job.h makeint.h rule.h variable.h \ +@@ -114,6 +117,9 @@ noinst_HEADERS = commands.h dep.h filedef.h job.h makeint.h rule.h variable.h \ #kmk_LDADD = @LIBOBJS@ @ALLOCA@ $(GLOBLIB) @GETLOADAVG_LIBS@ @LIBINTL@ kmk_LDADD = @LIBOBJS@ @ALLOCA@ $(GLOBLIB) @GETLOADAVG_LIBS@ \ $(GUILE_LIBS) @@ -23,13 +29,13 @@ index ca8acb1..a9c96c8 100644 if WINDOWSENV kmk_LDADD += $(W32LIB) diff --git a/src/kmk/Makefile.kmk b/src/kmk/Makefile.kmk -index 44e86e7..2405310 100644 +index ff93ae5..1e9ea5b 100644 --- a/src/kmk/Makefile.kmk +++ b/src/kmk/Makefile.kmk -@@ -61,6 +61,10 @@ ifneq ($(KBUILD_TARGET),os2) - TEMPLATE_BIN-KMK_INCS += glob - endif - TEMPLATE_BIN-KMK_LIBS = $(LIB_KUTIL) $(TEMPLATE_BIN-THREADED_LIBS) $(kmkmissing_1_TARGET) $(LIB_KUTIL) +@@ -63,6 +63,10 @@ endif + TEMPLATE_BIN-KMK_LIBS = $(LIB_KUTIL) $(TEMPLATE_BIN-THREADED_LIBS) $(kmkmissing_1_TARGET) $(LIB_KUTIL) + TEMPLATE_BIN-KMK_LIBS.x86 = $(LIB_KUTIL) $(TEMPLATE_BIN-THREADED_LIBS.x86) + TEMPLATE_BIN-KMK_LIBS.amd64 = $(LIB_KUTIL) $(TEMPLATE_BIN-THREADED_LIBS.amd64) +ifeq ($(KBUILD_TARGET),haiku) + TEMPLATE_BIN-KMK_DEFS += _BSD_SOURCE + TEMPLATE_BIN-KMK_LIBS += bsd @@ -263,10 +269,10 @@ index 3580374..7c79b6f 100644 - -#include "inlined_memchr.h" diff --git a/src/kmk/configure.ac b/src/kmk/configure.ac -index 76a38a2..9eddc7d 100644 +index d950182..44beae8 100644 --- a/src/kmk/configure.ac +++ b/src/kmk/configure.ac -@@ -431,6 +431,8 @@ AC_DEFINE_UNQUOTED([MAKE_HOST],["$host"],[Build host information.]) +@@ -432,6 +432,8 @@ AC_DEFINE_UNQUOTED([MAKE_HOST],["$host"],[Build host information.]) MAKE_HOST="$host" AC_SUBST([MAKE_HOST]) @@ -276,7 +282,7 @@ index 76a38a2..9eddc7d 100644 AM_CONDITIONAL([WINDOWSENV], [false]) diff --git a/src/kmk/getopt.c b/src/kmk/getopt.c -index f0d58a9..cc43ab8 100644 +index b7999ea..5c4dee3 100644 --- a/src/kmk/getopt.c +++ b/src/kmk/getopt.c @@ -68,6 +68,10 @@ this program. If not, see . */ @@ -291,7 +297,7 @@ index f0d58a9..cc43ab8 100644 # include # if HAVE_STRING_H - 0 diff --git a/src/kmk/kmkbuiltin.h b/src/kmk/kmkbuiltin.h -index c6c40f0..32b0add 100644 +index 955a04d..043980b 100644 --- a/src/kmk/kmkbuiltin.h +++ b/src/kmk/kmkbuiltin.h @@ -26,6 +26,10 @@ @@ -340,7 +346,7 @@ index eff20bb..9b27737 100644 extern int haiku_lchmod(const char *pszPath, mode_t mode); diff --git a/src/kmk/kmkbuiltin/install.c b/src/kmk/kmkbuiltin/install.c -index 2864573..1bdf3e5 100644 +index 00bdf73..262cb6d 100644 --- a/src/kmk/kmkbuiltin/install.c +++ b/src/kmk/kmkbuiltin/install.c @@ -68,9 +68,7 @@ __FBSDID("$FreeBSD: src/usr.bin/xinstall/xinstall.c,v 1.66 2005/01/25 14:34:57 s @@ -355,10 +361,10 @@ index 2864573..1bdf3e5 100644 # include # define strtofflags(a, b, c) string_to_flags(a, b, c) diff --git a/src/kmk/kmkbuiltin/mkdir.c b/src/kmk/kmkbuiltin/mkdir.c -index 2fede17..ffee5d9 100644 +index 65e961f..d82544f 100644 --- a/src/kmk/kmkbuiltin/mkdir.c +++ b/src/kmk/kmkbuiltin/mkdir.c -@@ -54,9 +54,7 @@ __FBSDID("$FreeBSD: src/bin/mkdir/mkdir.c,v 1.28 2004/04/06 20:06:48 markm Exp $ +@@ -55,9 +55,7 @@ __FBSDID("$FreeBSD: src/bin/mkdir/mkdir.c,v 1.28 2004/04/06 20:06:48 markm Exp $ #include #include #include @@ -385,7 +391,7 @@ index 7db962c..cf2a8ed 100644 #include "getopt_r.h" #ifdef __sun__ diff --git a/src/kmk/kmkbuiltin/rm.c b/src/kmk/kmkbuiltin/rm.c -index 41cbd7c..2a8c450 100644 +index 5753b3e..da12cbf 100644 --- a/src/kmk/kmkbuiltin/rm.c +++ b/src/kmk/kmkbuiltin/rm.c @@ -48,9 +48,9 @@ static char sccsid[] = "@(#)rm.c 8.5 (Berkeley) 4/18/94"; @@ -659,18 +665,59 @@ index d341fe0..48876d4 100644 #ifdef VMS # include # if HAVE_STRING_H - 0 -diff --git a/src/sed/lib/utils.c b/src/sed/lib/utils.c -index 14e6073..fdec2cb 100644 ---- a/src/sed/lib/utils.c -+++ b/src/sed/lib/utils.c -@@ -35,6 +35,10 @@ - # include - #endif /* HAVE_STDLIB_H */ +-- +2.37.3 + + +From e38b9486f39daeb1e1e6858afafe7807714b4925 Mon Sep 17 00:00:00 2001 +From: Oscar Lesta +Date: Thu, 24 Nov 2022 21:23:48 -0300 +Subject: Disable texinfo docs. + +Taken from kbuild-0.1.9998svn3296-distribution.patch. + +diff --git a/src/kmk/doc/Makefile.am b/src/kmk/doc/Makefile.am +index 11aa4d4..caf8951 100644 +--- a/src/kmk/doc/Makefile.am ++++ b/src/kmk/doc/Makefile.am +@@ -18,7 +18,7 @@ + TEXI2HTML = texi2html + TEXI2HTML_FLAGS = -split_chapter -+#ifdef __HAIKU__ -+# include -+#endif -+ - #include "utils.h" +-info_TEXINFOS = make.texi ++#info_TEXINFOS = make.texi + make_TEXINFOS = fdl.texi make-stds.texi - #ifdef KBUILD_OS_WINDOWS /* bird: Way faster console output! */ + CLEANFILES = make*.html +-- +2.37.3 + + +From a48564a9f0239d20b061c0541816030d265c68b3 Mon Sep 17 00:00:00 2001 +From: Oscar Lesta +Date: Thu, 24 Nov 2022 22:07:18 -0300 +Subject: Fix usage of sizeof on incomplete type. + +Using basically the same patch David Karoly applied to make-4.3 +to fix: + +error: invalid application of 'sizeof' to incomplete type 'char[]` + +That happens on Haiku after some changes. + +diff --git a/src/kmk/dir.c b/src/kmk/dir.c +index 1709479..4044cfa 100644 +--- a/src/kmk/dir.c ++++ b/src/kmk/dir.c +@@ -1469,7 +1469,7 @@ read_dirstream (__ptr_t stream) + /* The glob interface wants a 'struct dirent', so mock one up. */ + struct dirent *d; + unsigned int len = df->length + 1; +- unsigned int sz = sizeof (*d) - sizeof (d->d_name) + len; ++ unsigned int sz = offsetof(struct dirent, d_name) + len; + if (sz > bufsz) + { + bufsz *= 2; +-- +2.37.3 +