In the light of recent XZ events, and fundamental XZ issues lets work on
moving away from using XZ.
So, use gz compressed tarballs as sources whenever possible.
dwarves only offers bz2 compressed tarballs, so use those as size
difference is minor compared to XZ.
Signed-off-by: Robert Marko <robimarko@gmail.com>
dwarves
libdeflate is currently intentionally being fetched via GIT.
However, with the move to using ZSTD to compress the cloned GIT repo
tarballs it means that we would first need to compile ZSTD.
But that means that we need to be able to unpack gzipped tarballs first
which we currently do by using libdeflate-gzip.
So, in order to do so lets fetch libdeflate as a tarball, use gzip to
extract it and then use libdeflate as regular for all other tools.
Signed-off-by: Robert Marko <robimarko@gmail.com>
ZSTD and libdeflate do not depend on SED nor flock, so instead of the whole
for loop that will filter 2 out of 4 core packages just specify that patch
and tar depend on sed explicitly.
ZSTD now depends on libdeflate since libdeflate-gzip will then be used to
unpack ZSTD as well as most tool archives.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Signed-off-by: Robert Marko <robimarko@gmail.com>
We dont really have a reason to deviate from the upstream default for
ZSTD_LEGACY_SUPPORT value of 5, as it will save a bit of space but
prevent decompressing data compressed with legacy ZSTD versions.
Signed-off-by: Robert Marko <robimarko@gmail.com>
ZTSD limits the safe compression level to a max of 19 as 20 to 22 cause
increased RAM usage. Higher levels require --ultra arg passed.
There isn't currently a way to set --ultra using ENV options similar to
ZSTD_CLEVEL and ZSTD_CLEVEL is limited to 19.
To fix this, we can increase the max safe compression level by providing
a custom ZSTDCLI_CLEVEL_MAX value with CFLAGS.
The max safe level is increased to 20.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Convert to make and drop meson dependency since it's not a core tools
and can't depend on advanced build system like cmake or meson.
On top of this make is the official build support and cmake/meson are
supported by 3rd parties.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
GCC14 no longer treats integer types and pointer types as equivalent in
assignments (including implied assignments of function arguments and return
values), and instead fails the compilation with a type error.
So, as a workaround lets disable the newly introduced error
-Werror=int-conversion and just make it print a warning to enable compiling
with GCC14 as Fedora 40 now defaults to it.
Signed-off-by: Robert Marko <robimarko@gmail.com>
Add the new 'zycast' tool for remote flashing of Zyxel devices, support
for factory image generation for two new TP-Link devices, and improved
compatibility with two other devices.
17de36575f1e zycast: disable build on non-Linux OS
a5dfb5fb5e6e tplink-safeloader: add TP-Link RE205 v3 support
c1e06daf4622 tplink-safeloader: bump EAP225-V3 compat_level
335d063cff23 tplink-safeloader: bump EAP225-Outdoor v1 compat
c1e69e6f9c0d tplink-safeloader: show compat_level with FW info
e87f23849790 zycast: new tool for ZyXEL bootloader flashing
9067281d17da tplink-safeloader: add RE365 v1
Signed-off-by: Sander Vanheule <sander@svanheule.net>
Different from OPKG, APK uses a deterministic version schema which chips
the version into chunks and compares them individually. This enforces a
certain schema which was previously entirely flexible.
- Releases are added at the very and end prefixed with an `r` like
`1.2.3-r3`.
- Hashes are prefixed with a `~` like `1.2.3~abc123`.
- Dates become semantic versions, like `2024.04.01`
- Extra tags are possible like `_git`, `_alpha` and more.
For full details see the APK test list:
https://gitlab.alpinelinux.org/alpine/apk-tools/-/blob/master/test/version.data
Signed-off-by: Paul Spooren <mail@aparcar.org>
since kernel 6.4, commit bca2f3a9406b ("efi/zboot: Add BSS padding
before compression") introduces the use of hexdump to padding the
EFI kernel binary before compression.
util-linux which containing hexdump should then be compiled as a host
tool to guarantee not breaking the kernel build process.
Signed-off-by: Weijie Gao <hackpascal@gmail.com>
Disable compilation of separate tests as it causes
a build error when combined with ccache
Fixes: 4a3f430d72 ("tools/expat: update to 2.6.0")
Signed-off-by: Koen Vandeputte <koen.vandeputte@citymesh.com>
* liblzma:
- Use __attribute__((__no_sanitize_address__)) to avoid address
sanitization with CRC64 CLMUL. It uses 16-byte-aligned reads
which can extend past the bounds of the input buffer and
inherently trigger address sanitization errors. This isn't
a bug.
- Fixed an assertion failure that could be triggered by a large
unpadded_size argument. It was verified that there was no
other bug than the assertion failure.
- Fixed a bug that prevented building with Windows Vista
threading when __attribute__((__constructor__)) is not
supported.
* xz now properly handles special files such as "con" or "nul" on
Windows. Before this fix, the following wrote "foo" to the
console and deleted the input file "con_xz":
echo foo | xz > con_xz
xz --suffix=_xz --decompress con_xz
* Build systems:
- Allow builds with Windows win95 threading and small mode when
__attribute__((__constructor__)) is supported.
- Added a new line to liblzma.pc for MSYS2 (Windows):
Cflags.private: -DLZMA_API_STATIC
When compiling code that will link against static liblzma,
the LZMA_API_STATIC macro needs to be defined on Windows.
- CMake specific changes:
* Fixed a bug that allowed CLOCK_MONOTONIC to be used even
if the check for it failed.
* Fixed a bug where configuring CMake multiple times
resulted in HAVE_CLOCK_GETTIME and HAVE_CLOCK_MONOTONIC
not being set.
* Fixed the build with MinGW-w64-based Clang/LLVM 17.
llvm-windres now has more accurate GNU windres emulation
so the GNU windres workaround from 5.4.1 is needed with
llvm-windres version 17 too.
* The import library on Windows is now properly named
"liblzma.dll.a" instead of "libliblzma.dll.a"
* Fixed a bug causing the Ninja Generator to fail on
UNIX-like systems. This bug was introduced in 5.4.0.
* Added a new option to disable CLMUL CRC64.
* A module-definition (.def) file is now created when
building liblzma.dll with MinGW-w64.
* The pkg-config liblzma.pc file is now installed on all
builds except when using MSVC on Windows.
* Added large file support by default for platforms that
need it to handle files larger than 2 GiB. This includes
MinGW-w64, even 64-bit builds.
* Small fixes and improvements to the tests.
* Updated translations: Chinese (simplified) and Esperanto.
Signed-off-by: Nick Hainke <vincent@systemli.org>
This fixes the mirror hash to the version of the file uploaded to the
download mirror and which my build calculated.
Fixes: 59a66d3c9b ("firmware-utils: update to Git HEAD (2023-11-21)")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Update to latest version.
Remove "100-increase-tmpfile-name-length-limit.patch" because project
is now using limits.h with PATH_MAX [0].
Automatically refreshed:
- 030-allow-to-use-different-magic.patch
[0] - 99d430f344
Signed-off-by: Nick Hainke <vincent@systemli.org>
For some reason unsigned types were not added in commit 0a06fcf608
("build: fix kernel 5.4 on macos"), which led to bunch of hacks, like
commit 3cc57ba462 ("uboot-sunxi: add missing type __u64") or
commit 997ff740dc ("uboot-mediatek: fix build on Mac OS X").
So lets add the missing unsigned types to workaround it in a bit more
maintainable way.
Fixes: #13833
Signed-off-by: Petr Štetiar <ynezz@true.cz>
a170683 firmware-utils: fix use of NULL string progname
89875fc tplink-safeloader: CPE510: add Canadian support
9e211d2 mktplinkfw2: add support to extract bootloader images
c18f662 mktplinkfw2: add support to pack bootloader
3dc1339 mktplinkfw2: show exact exceed bytes when the image is to big
d16ff79 tplink-safeloader: WPA8631: add v4 AU, US
0fa1cc5 zytrx: add LTE5398-M904
6354661 firmware-utils: ptgen: add SiFive GPT partition support
The removed patch was applied upstream.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Upstream commit a9a592f96e6498da302f8e968be1db0ad3c32123
("cmake: Add debugger") added a huge amount of code
in order to create a debugging feature for CMakeLists.txt
of other projects. This was added to CMake since 3.27.x.
Unforunately, this new debugger will not build on ARM systems
like arm-linux-gnueabihf (Raspberry Pi 4), and takes up
extra build time for something Openwrt doesn't need,
yet it was enabled by default. (Thanks Microsoft....)
Specifically, it's a failure to link to functions like
__atomic_store_8, __atomic_load_8, __atomic_fetch_add_8, etc.
Let's just disable it.
Someone who really needs this for developing can have CMake
with the debugger on their host machine or manually re-enable it here.
Link: https://gitlab.kitware.com/cmake/cmake/-/issues/21510
Link: https://devblogs.microsoft.com/cppblog/cmake-debugger-allows-you-to-debug-your-cmake-scripts-and-more/
Signed-off-by: Michael Pratt <mcpratt@pm.me>
Changes in 1.3 (18 Aug 2023)
- Remove K&R function definitions and zlib2ansi
- Fix bug in deflateBound() for level 0 and memLevel 9
- Fix bug when gzungetc() is used immediately after gzopen()
- Fix bug when using gzflush() with a very small buffer
- Fix crash when gzsetparams() attempted for transparent write
- Fix test/example.c to work with FORCE_STORED
- Rewrite of zran in examples (see zran.c version history)
- Fix minizip to allow it to open an empty zip file
- Fix reading disk number start on zip64 files in minizip
- Fix logic error in minizip argument processing
- Add minizip testing to Makefile
- Read multiple bytes instead of byte-by-byte in minizip unzip.c
- Add memory sanitizer to configure (--memory)
- Various portability improvements
- Various documentation improvements
- Various spelling and typo corrections
Signed-off-by: Nick Hainke <vincent@systemli.org>
The PKG_CPE_ID links to NIST CPE version 2.2.
Assign PKG_CPE_ID to all remaining tools which have a CPE ID.
Not every tool has CPE id.
Related: https://github.com/openwrt/packages/issues/8534
Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
Changes from version 4.2.0 to version 4.2.1:
- Bug fixes (see <https://www.mpfr.org/mpfr-4.2.0/#fixed> and/or the
ChangeLog file).
- Improved MPFR manual.
- Configure tests: replaced the test of the link with GMP, in order to
avoid the use of a function without a prototype (Autoconf issue), as
this is obsolescent in ISO C. The new test should be more robust.
Signed-off-by: Linhui Liu <liulinhui36@gmail.com>
Changes from 2.0.0 to 2.0.1:
----------------------------
* The behavior of --modversion was largely reverted back to the traditional
pkg-config behavior, but still operates on a solved dependency graph.
The order of --modversion output is based on the dependency resolution
queue which is passed to the solver, which itself generally maps to the
order of the constrants provided on the command line.
* A new flag, --verbose, has been added. When used with `--modversion`, it
is possible to disambiguate which version belongs to which module:
% pkgconf --modversion --verbose foo bar
foo: 1.2.3
bar: 1.3
Changes from 1.9.5 to 2.0.0:
----------------------------
* When flattening the dependency graph, retain the latest seen edges
rather than the earliest.
* Fix a long-standing bug where the dependency resolution queue was
evaluated in reverse. This bug masked the aforementioned dependency
flattening bug in many cases.
* Fix handling of --with-path, which was appending paths to the search
list rather than prepending them as intended.
* Error when --modversion is requested with more than one package, as
the output is ambiguous.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
v2.0.0:
- transition from AGPL to MIT
- Previously, mold could not produce an object file with more than 65520
sections using the --relocatable option. Now the bug has been fixed.
- mold now interprets -undefined as a synonym for --undefined instead of
-u ndefined. This seems inconsistent, as -ufoo is generally treated as
-u foo (which is an alias for --undefined foo), but this is the behavior
of the GNU linkers and LLVM lld, so we prioritize compatibility over
consistency.
- -nopie is now handled as a synonym for --no-pie.
- [RISC-V] R_RISCV_SET_ULEB128 and R_RISCV_SUB_ULEB128 relocation types are
now supported (4bffe26, 1ac5fe7)
- [PPC64] R_PPC64_REL32 relocation type is now supported. (ebd780e)
v2.1.0:
- Loongson's LoongArch CPU has been supported. (03b1a1c)
- -z nosectionheader has been added to eliminate section headers from the
output file. (084ca55)
- Previously, linking with the -z pack-relative-relocs option produces an
executable that glibc 2.38 refuses to run with DT_RELR without
GLIBC_ABI_DT_RELR dependency error. Now, mold produces binaries compatible
with glibc 2.38. (f467ad1)
- [ARM64] R_AARCH64_ADR_PREL_PG_HI21_NC relocation type has been supported.
(17a5c3e)
- [ARM64] R_AARCH64_MOVW_UABS_G3 relocation type has now been handled as a
PLT-generating relocation to fix an issue when main is not defined in the
main executable but rather in a .so file. (e764557)
- [RISC-V] We now merge input .riscv.attributes contents. Previously, we
just concatenated them. (aa64491)
Signed-off-by: Andre Heider <a.heider@gmail.com>
* liblzma and xzdec can now build against WASI SDK when threading
support is disabled. xz and tests don't build yet.
* CMake:
- Fixed a bug preventing other projects from including liblzma
multiple times using find_package().
- Don't create broken symlinks in Cygwin and MSYS2 unless
supported by the environment. This prevented building for the
default MSYS2 environment. The problem was introduced in
xz 5.4.0.
* Documentation:
- Small improvements to man pages.
- Small improvements and typo fixes for liblzma API
documentation.
* Tests:
- Added a new section to INSTALL to describe basic test usage
and address recent questions about building the tests when
cross compiling.
- Small fixes and improvements to the tests.
* Translations:
- Fixed a mistake that caused one of the error messages to not
be translated. This only affected versions 5.4.2 and 5.4.3.
- Updated the Chinese (simplified), Croatian, Esperanto, German,
Korean, Polish, Romanian, Spanish, Swedish, Ukrainian, and
Vietnamese translations.
- Updated the German, Korean, Romanian, and Ukrainian man page
translations.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
mold is a faster drop-in replacement for existing Unix linkers.
A single binary is able to link various targets, which is why this lives
in tools/.
All toolchain builds then just need to copy the linker over, hence avoiding
multiple builds with the same outcome.
Signed-off-by: Andre Heider <a.heider@gmail.com>
Add support for a number of new TP-Link devices.
9e2de8515be1 tplink-safeloader: add EAP610 v3 and EAP613 v1
bb12cf5c3fa9 tplink-safeloader: Add support for TP-Link Deco M5
a2d49fb1e188 tplink-safeloader: add RU support-list entry for Archer C6U v1
Signed-off-by: Sander Vanheule <sander@svanheule.net>
Rename the list of programs installed by coreutils
to PKG_PROGRAMS, which will create a stampfile for each
through a new feature in host-build.mk.
Also, cleanup a bit to save lines
regarding the usage of this list.
Signed-off-by: Michael Pratt <mcpratt@pm.me>
Define the variable PKG_PROGRAMS for the list
of programs installed by findutils,
which will create a stampfile for each
through a new feature in host-build.mk.
Signed-off-by: Michael Pratt <mcpratt@pm.me>
026644099 Bump versions for 1.1.1 release
72f26cd0a azure pipelines: fix branch patterns to support 1.x release branches
e619b96ad ci: Don't error out CI if codecov upload fails
cf2887d57 ci: Move to the codecov github action
f7b0596bd docs: Fix some typos in feature option examples
0d9e46c84 qt: Allow specifying separate tools for qt4/5/6
be89526e7 rust compiler: use better sanity check logging comparable to the clike one
c953363a7 meson_exe: print suitable debug information for DLL not found errors
6a7cd1350 llvm: Bump broken micro version for CI
3dbeac046 ci: Don't search for llvm modules with LLVM 16.0.x
e17d243aa rust: Also disallow `.` in Rust library target names
630a29f4d rust: Don't allow spaces/dashes in Rust library names
b4c669f6e rust: Don't use prefer-dynamic in case of proc-macro Rust dependencies
225719770 mbuild: .pdb files are created only when debug symbols are enabled
e6cc0f2d8 minstall: Fix install_subdir() excludes with path separators on Win
4269a2401 rust: Use `isinstance(d, build.StaticLibrary)` instead of comparing the type name string
cc481c0da rust: Link staticlib/cdylib link targets like link targets from any other language
0d2c62529 rust: Don't prefer dynamic linking of Rust libraries for cdylibs
1a10b8f77 rust: Use the corresponding rustc version when clippy-driver is chosen as Rust compiler
6dce28185 rust: Don't pass dependency compile arguments to the compiler
b781d1261 Fix paths of Fortran order dependencies Fixes#11047
5886499f8 Fix building python extensions on win-arm64
8014827d0 Python module: emit warning for debug buildtypes with MSVC and no debug Python
a53dcd6f6 Fix unit test that hardcoded `/` and hence broke on Windows
795e39b3a Fix `ERROR: no toolchain found` when run from unittests
35d1def39 Add Cython to Windows CI jobs on Azure
a5ef21302 Use release buildtype in Cython tests, and skip unless ninja backend
8bbf6a5df fix regression in precomputing CMAKE_SIZEOF_VOID_P
26b73afba wrap: Always pass posix paths to patch
6696a754a Don't use dyndep scanner when preprocessing
22163998b Specify c++ 11 flag as code uses c++ 11 features
7c5dc1a79 Fix html coverage report generation when using clang on linux
46e0303c3 yasm: Fix usage of incompatible optimization flags
093ae573b fix python.version() not working in some cases
9bfdae8d7 Add c++23 to the list of C++ standards.
4c72b6da5 select the correct python_command for pyinstaller builds, even on not-Windows
9678aa05f fix data collection with pyinstaller
e5928e63d minstall: work around broken environments with missing UIDs
452d1c567 minstall: do not drop privileges if msetup also ran under sudo
960ae14c4 rust: Convert dashes in crate names to underscores
cb75ce50d backend/vs: Fix OpenMPSupport
11fe12d09 zsh: fix help / descriptions
307cb2573 ci: properly check `test cases/windows` files
1f1f05b8b ci: rename workflow
08e684499 syntax-highlighting: vim: fix mesonSpaceError
de8c4839e packaging: fix options hostArchitectures attribute
560ece485 fix various spelling issues
Signed-off-by: Linhui Liu <liulinhui36@gmail.com>
Add patch until it gets accepted in firmware-utils upstream.
The SiFive RISC-V SoCs use two special partition types in the boot process.
As a first step, the ZSBL (zero-stage bootloader) in the CPU looks for a
partition with a GUID of 5B193300-FC78-40CD-8002-E86C45580B47 to load the
first-stage bootloader - which in OpenWrt's case is an SPL image. The FSBL
(SPL) then looks for a partition with a GUID of
2E54B353-1271-4842-806F-E436D6AF6985 to load the SSBL which is usually an
u-boot.
With ptgen already supporting GPT partition creation, add the required GUID
types and name them accordingly to be invoked with the '-T <GPT partition
type>' parameter.
Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
Always initialize header with zeros as otherwise we may end up with
uninitialized memory which ruins reproducibility.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Noteworthy changes in this release:
* New option --ignore-dirnlink
Valid in copy-out mode, it instructs cpio to ignore the actual number
of links reported for each directory member and always store 2
instead.
* Changes in --reproducible option
The --reproducible option implies --ignore-dirlink. In other words,
it is equivalent to --ignore-devno --ignore-dirnlink --renumber-inodes.
* Use GNU ls algorithm for deciding timestamp format in -tv mode
* Bugfixes
** Fix cpio header verification.
** Fix handling of device numbers on copy out.
** Fix calculation of CRC in copy-out mode.
** Rewrite the fix for CVE-2015-1197.
** Fix combination of --create --append --directory.
** Fix appending to archives bigger than 2G.
Removed upstreamed:
- 001-duplicate-program-name.patch
- 010-clang.patch
Signed-off-by: Linhui Liu <liulinhui36@gmail.com>
Using the local gnulib source during bootstrap
allows for fine-grained control over the macros
and source files for use with coreutils
but part of gnulib instead of coreutils,
without having to wait for a release
or deal with gnulib as a git submodule.
In this case, the execution of autotools
must be skipped by force.
Autoconf and Automake during bootstrap on coreutils
only works right when using directly checked-out source.
There is a symbol in gnulib, @GNULIB_TIME@
that is not yet defined in coreutils source,
so we use the backup of lib/time.in.h instead
of the one provided by gnulib source.
Signed-off-by: Michael Pratt <mcpratt@pm.me>
Using the local gnulib source during bootstrap
allows for fine-grained control over the macros
and source files for use with libtool
but part of gnulib instead of libtool,
without having to wait for a release
or deal with gnulib as a git submodule.
Signed-off-by: Michael Pratt <mcpratt@pm.me>
Instead of editing the SUBDIRS variable with a patch,
it can be overriden at the end of the command line when invoking Make.
This tool has a series of recursive Makefiles in each subdirectory,
therefore SUBDIRS is set to a pattern of Make functions
so that the result is variable depending on the current subdirectory
that Make is being invoked in.
By eliminating the patch, autoreconf is no longer required.
Signed-off-by: Michael Pratt <mcpratt@pm.me>
Instead of editing the SUBDIRS variable with a patch,
it can be overriden at the end of the command line when invoking Make.
Skip the build for po files as well, which is causing a conflict
depending on the version of gettext detected, and macros present.
Signed-off-by: Michael Pratt <mcpratt@pm.me>
GNU standards requires certain files at the top-level directory
of a package that automake is used with, mostly documentation.
If one of these files happens to be missing, autoreconf would fail.
Move these file requirements to the more strict 'GNITS' setting.
Link: https://www.gnu.org/software/automake/manual/html_node/Strictness.html
Signed-off-by: Michael Pratt <mcpratt@pm.me>
Some new releases of GNU tools are checking for a higher version
of makeinfo than what our scripted alternative shows
when working with checked-out sources instead of releases.
Since this is a "fake" makeinfo we can also just fake the version.
Signed-off-by: Michael Pratt <mcpratt@pm.me>
These 7 macro files are provided by gnulib,
so we can now replace these statically stored copies
with the latest copy from GNU sources.
Signed-off-by: Michael Pratt <mcpratt@pm.me>
By having a local copy of gnulib, we can:
import the latest macro fixes into any package,
get rid of some statically stored macros that were otherwise missing,
bootstrap GNU tools with the latest relevant source
without having to wait for a release or rely on git submodules,
and possibly more...
The patch assists in bootstrapping by ignoring
the building of po files using gettext,
and also to allow a user-defined path to a program
to include parameters.
Signed-off-by: Michael Pratt <mcpratt@pm.me>
Due to us keeping a patch around for years and never proposing it to
squashfs4 repository, we resulted in having the same squashfs4 version
but with different supported options. (openwrt patched -- upstream)
To workaround this problem, a non-standard option was required.
To not have surprise on tool bump, backport the patch and add the new
config option required to enable these extended non-standard options.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
`bzip2` is the standard executable for bzip2 compression
this includes development includes and both static and shared libs
(libbz2) which can be used by other packages
the initramfs generator offers the BZIP2 option but there was no
executable to support it, and worked only via side effect of having a
system-installed version of bzip2, which could be less predictable
Signed-off-by: Tony Butler <spudz76@gmail.com>
[ remove unintended change ]
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
This reverts commit 394d7134ec.
The commit has unintentded change that cause compilation error with SDK
or LZO compression.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
`bzip2` is the standard executable for bzip2 compression
this includes development includes and both static and shared libs
(libbz2) which can be used by other packages
the initramfs generator offers the BZIP2 option but there was no
executable to support it, and worked only via side effect of having a
system-installed version of bzip2, which could be less predictable
Signed-off-by: Tony Butler <spudz76@gmail.com>
Refresh multiple lzma configuration option patch with new version
proposed upstream. (Reintroduce -Xe option and add more checks and
general better code quality)
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
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>