When using alpine as host, things start to fail. Lets pull in the
upstream alpine patches to make things work. This should not affect
other hosts.
Note, that Alpine has the '_GNU_SOURCE' define in the APKBUILD file, but
here we add this flag to the needed fix flags patch, which does similar
things too.
Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
This resolves an error when building toolchain/musl on macOS due to
improper hole-detection caused by a bug in macOS/APFS [1].
As long as we don't reconfigure, 001-m4.patch is not needed.
If we keep it, it will force reconfigure the project,
since m4 files are changed. This works, but may not be optimal,
because the build should use files from coreutils/m4, but
OpenWRT uses legacy files from staging_dir/host/share/aclocal [2].
backport a couple of upstream patches
date: diagnose -f read errors
copy: fix --reflink=auto to fallback in more cases
[1] https://debbugs.gnu.org/cgi/bugreport.cgi?bug=61386
[2] https://github.com/openwrt/openwrt/pull/12233#issuecomment-1481097456
Co-developed-by: Michael Pratt <mcpratt@pm.me>
Signed-off-by: Georgi Valkov <gvalkov@gmail.com>
Run `time make tools/squashfs4/{clean,compile} -j$(nproc)`
Before:
real 0m8.803s
user 0m12.415s
sys 0m1.317s
After:
real 0m13.781s
user 0m13.290s
sys 0m1.528s
Signed-off-by: Linhui Liu <liulinhui36@gmail.com>
Host/Clean/Default is no longer defined.
Use the uninstall makefile target
to remove the obsolete m4 files, and more.
Signed-off-by: Michael Pratt <mcpratt@pm.me>
Remove the specialized copy of libtool
which was used for linking to uClibc++, which is now removed.
Also remove references to the deprecated fixup targets
that invoked this specialized libtool, which no package uses.
Ref: 6b2ed6101 ("uclibc++: remove")
Ref: c10515db6 ("re-enable the libtool PKG_BUILD_DEPENDS for PKG_FIXUP")
Ref: 246a5b334 ("More libtool madness")
Signed-off-by: Michael Pratt <mcpratt@pm.me>
An old patch attempted to harmonize the way that
both Openwrt and Automake uses the $(V) variable.
However, it was reverted because of the side-effects.
This method is more simple and just
allows Automake to accept any string
as part of the verbosity toggle,
falling back to the default if null.
Ref: e6901bf90 ("tools/automake: Revert "Do not use $(V) - force AM_V=1"")
Ref: 43365ca66 ("Do not use $(V) - force AM_V=1")
Signed-off-by: Michael Pratt <mcpratt@pm.me>
OpenWrt contains a 2012 copy of glibc's elf.h, which predates the
introduction of some newer architectures like Arm64 and RISC-V.
Linux 5.13 introduced the "gen-hyprel" tool into the kernel compile
(when virtualization/KVM is enabled) which requires EM_AARCH64 to be
defined.
arch/arm64/kvm/hyp/nvhe/gen-hyprel.c: In function 'init_elf':
arch/arm64/kvm/hyp/nvhe/gen-hyprel.c:289:43: error: 'EM_AARCH64'
undeclared (first use in this function); did you mean 'EM_IA_64'?
289 | assert_eq(elf16toh(elf.ehdr->e_machine), EM_AARCH64, "%u");
| ^~~~~~~~~~
Update the copy of elf.h from the latest glibc to fix this.
Compile-tested: ath79, armvirt, mpc85xx, x86
Run-tested: armvirt
Signed-off-by: Mathew McBride <matt@traverse.com.au>
Upstream introduced a new `trailer.m4` macro file referenced by the
absolute build path of autoconf. Make sure that this is covered by
the `000-relocatable.patch` as well.
This should fix various SDK build failures related to autoconf.
Fixes: 030447b8f4 ("tools/autoconf: bump to 2.71")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This updates libtool to its current release, from 2015. Current patches
were renumbered and given a description text. The fix in
160-passthrough-ssp.patch is no longer needed.
A patch to speed up build was cherry-picked, and another openwrt
specific patch was needed to not use quotes in $(SHELL), to acommodate
our "SHELL=/usr/bin/env bash" usage.
The already present call to ./bootstrap ensures that generated files are
refreshed, so the patches are applied only to their sources. Also, that
bootstrap call was adjusted to run at the appropriate time when QUILT=1.
References below are relevant commits to upstream libtool
regarding some of the changes to patches.
This commit is being reapplied after previous revertion, and after some editing.
The fix for the issue that prompted reverting is the parent of this commit.
Ref: 435cb8d71 ("libtoolize: simplify runtime by substituting pkgauxdir")
Ref: 3cf11cfe2 ("libtoolize: rewritten over funclib.sh instead of general.m4sh")
Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
[refactored to simplify patch changes, expanded patches, added upstream references]
Signed-off-by: Michael Pratt <mcpratt@pm.me>
libtoolize hardcodes some paths. This is fine when building libtool and
then using it (for example in OpenWrt's buildroot). But when using an
SDK the paths are most likely different.
For example, when building util-linux within an SDK we're greeted with
the following message:
libtoolize: error: $pkgauxdir is not a directory: '/path/to/openwrt/staging_dir/host/share/libtool/build-aux'
This is because staging_dir/host/bin/libtoolize contains the following
hard-coded paths from when the SDK was built in the first place:
prefix="/path/to/openwrt/staging_dir/host"
datadir="/path/to/openwrt/staging_dir/host/share"
pkgauxdir="/path/to/openwrt/staging_dir/host/share/libtool/build-aux"
pkgltdldir="/path/to/openwrt/staging_dir/host/share/libtool"
aclocaldir="/path/to/openwrt/staging_dir/host/share/aclocal"
This commits updates 000-relocatable.patch to correct the paths,
relative to "$STAGING_DIR_HOST".
Ref: 96e05e2e3 ("libtool: Revert "libtool: bump to 2.4.6"")
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
[adapted to older libtool version before bumping, use STAGING_DIR_HOST]
Signed-off-by: Michael Pratt <mcpratt@pm.me>
Add commit messages to patches as intended
by the last bump to libtool which had to be reverted.
This allows for a cleaner diff later,
removing this clutter from the complex changes to patches
that are required to bump to the latest libtool version.
Ref: c377d874b ("libtool: bump to 2.4.6")
Signed-off-by: Michael Pratt <mcpratt@pm.me>
Preparation for bumping libtool several versions at once,
which includes some complex changes to patches.
Remove an empty line change from a patch.
Signed-off-by: Michael Pratt <mcpratt@pm.me>
Autoconf release 2.71 is a bugfix release of 2.70
Links provided are the changelog of 2.70 [1] [2]
and the announcement of 2.71 [3]
The first patch needed to be rewritten.
Some of the lines in the patch were moved
to be consistent with the same change added upstream
in other similar files.
Second and third patches are no longer needed,
Emacs can now be disabled at the configure stage,
and support for musl was added upstream.
The patch now causes help2man to be required
for installing man pages, but we don't need them.
There is no way to disable man pages build
with the configure script,
so use make to touch the files with the build target install-man1.
Link: https://lists.gnu.org/archive/html/autotools-announce/2020-12/msg00001.html
Link: https://lwn.net/Articles/839395
Link: https://lists.gnu.org/archive/html/info-gnu/2021-01/msg00017.html
Signed-off-by: Michael Pratt <mcpratt@pm.me>
Instead of having a somewhat random list of aclocal symlinks
which are named with the API versioning scheme,
install a symlink for every API version since 1.11
(the first release after Automake was moved to git)
using the API version number from the version of automake
that is currently in openwrt.
Automake API versioning does not include the patch level number.
Signed-off-by: Michael Pratt <mcpratt@pm.me>
The configure option datarootdir
defaults to PREFIX/share.
The Host/Clean define should be Host/Uninstall
otherwise it is removing the build directory
before there is a chance to try "make uninstall"
in that directory.
Host/Clean/Default is no longer defined.
Consolidate the install stage with Host/Uninstall,
since it is essentially uninstalling before installing.
Signed-off-by: Michael Pratt <mcpratt@pm.me>
The configure option datarootdir
defaults to PREFIX/share.
The Host/Clean define should be Host/Uninstall
otherwise it is removing the build directory
before there is a chance to try "make uninstall"
in that directory.
Host/Clean/Default is no longer defined.
Use default build recipes defined in host-build.mk
instead of custom ones that are equivalent.
Signed-off-by: Michael Pratt <mcpratt@pm.me>
The configure option datarootdir
defaults to PREFIX/share.
The Host/Clean define should be Host/Uninstall
otherwise it is removing the build directory
before there is a chance to try "make uninstall"
in that directory.
Host/Clean/Default is no longer defined.
Use default build recipes defined in host-build.mk
instead of custom ones that are equivalent.
Signed-off-by: Michael Pratt <mcpratt@pm.me>
These wrappers are not needed as CC doesn't need to be a single word.
a53b084e49 which introduced the wrappers
doesn't explain why they were really needed and why only for the target
and not for the host.
Moreover, name of the wrappers breaks a ccache assumption: since
v4.0-3-g6a92b4cd3a67 it has special handling for "chained" invocation
such as "ccache ccache gcc" where it skips all the "ccache*" names in
the middle and proceeds to run as if it was started as "ccache
gcc"[1][2].
This becomes important when a build system sees ccache in the PATH and
automatically enables it by prepending to CC. An example of such a
system would be autosetup as used by jimtcl. With the wrappers it breaks
as the command line ends up being just "ccache -Os..." because
"ccache_cc" gets skipped as it starts with "ccache".
[1] https://github.com/ccache/ccache/blob/master/src/ccache.cpp#L2105
[2] https://github.com/ccache/ccache/blob/master/src/Util.cpp#L802
Reported-by: Karl Palsson <karlp@etactica.com>
Signed-off-by: Paul Fertser <fercerpav@gmail.com>
The hash currently matches neither the SHA256 of the Github download
nor the hash of the archive generated by the OpenWrt build system.
(and yes, they differ...)
Set hash of Github-generated tarball.
Fixes: 30f2d516ba ("tools/squashfs4: add new tool for squashfs4 images")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
squashfs tool is finally reborn and correctly maintained.
Introduce the new version as a replacement for squasfs4kit as it was a
fork and also abandoned.
Add additional patch to add the missing feature present in squashfskit4
but still missing on this new project.
Backport each required patch that fix compilation error on macos.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
The name of squashfs is confusing since in reality it's a really old
version using an old lzma library. This tools is used for old ath79
netgear target and to produde a fake squasfs3 image needed for some
specific bootloader from some OEM (AVM for example)
Rename squashfs tool to squasfs3-lzma to better describe it.
Rename the installed bin from mksquashfs-lzma to mksquashfs3-lzma.
Use tar transform to migrate the root directory in tar to the new
naming.
Drop redundant PKG_CAT variable not needed anymore.
Also update any user of this tool.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
This reverts commit 52167feff8.
Fakeroot 1.30.1 broke building on certain hosts (32-bit archs).
As of 2023-01-10, this was apparently fixed in source code,
however, the version is still 1.30.1 (patch release),
so the old binaries are removed from the repository and replaced,
but the source provided by the repository remains the same.
Furthermore, there are some complicated issues blocking
the "testing" release from being bumped to a 1.30.x version.
Considering all of this, it would likely be better for this package
to follow the "testing" release instead of the "unstable" release,
which is still 1.29-1, so revert to that.
Link: https://bugs.debian.org/1023286
Link: https://tracker.debian.org/news/1407613/accepted-fakeroot-1301-11-source-into-unstable/
Link: https://qa.debian.org/excuses.php?package=fakeroot
Link: https://bugs.debian.org/1027803
Signed-off-by: Michael Pratt <mcpratt@pm.me>
Release information:
https://github.com/pkgconf/pkgconf/blob/master/NEWS
Fixes CVE-2023-24056.
Further, this commit corrects the "-Dtests" flag and changes it from
"false" to "disabled".
Signed-off-by: Nick Hainke <vincent@systemli.org>
In addition to version update, this commit applies a fixup to allow building
on MacOS involving renaming: [gt_TYPE_WINT_T] --> [gt_TYPE_WINT_T_GNUTLS]
suggested by zhanhb.
Build system: x86_64
Build-tested: bcm2711/RPi4B
Signed-off-by: John Audia <graysky@archlinux.us>
Adds support for building TP-Link Deco M4R v4 factory images
e7233d229c2c tplink-safeloader: Add support for Deco M4R V4
Signed-off-by: Mark Ceeha <hi@shiz.me>
CMake depends on (libdeflate-)gunzip, libdeflate depends on Cmake, so we
can't win.
Luckily libdeflate is _very_ easy to build, without any build system, so
lets just manually compile it and be done with it.
Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Like with commit ae614fb397 ("tools: Improve diffability/maintainability")
we also want tools-core to be easy to maintain. While a smaller target,
it's still usefull and makes things nice and consistent.
To avoid duplicating any tools in the comment, simplify the comment
instead.
Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>