Instead of using file(1) to check for ELF files, just read bytes
directly from the file and check if they are the ELF magic bytes.
Should probably be factored out into a common function that can be used
in other places, if necessary.
Also use awk instead of "grep|awk" for some minor speedup.
Historically, PKGDESTDIR was only set during pkg_install, and
XBPS_PKGDESTDIR was set to indicate that we're in subpkg's
pkg_install.
However, from 0b95cb8f5d, (Merge xbps-src code to make it usable in
a standalone mode., 2014-03-22), PKGDESTDIR is always set,
regardless of states.
Let's drop all usages of XBPS_PKGDESTDIR.
While we're at it, error out of vmove is used outside of subpkg.
`wrksrc` is supposed to be a top-level directory. Should the build
system need to be run inside a sub-directory, `build_wrksrc` should be
used instead. We change to `build_wrksrc` implicitly before `do_build`
and `do_install`.
Let's respect `build_wrksrc` in `perl-module`.
Currently fails with a hard to understand error message:
2021-04-16T11:51:36.1074291Z => ERROR: rust-std-1.51.0_1: post-install_06-strip-and-debug-pkgs: '$STRIPCMD --strip-unneeded "$f"' exited with 1
nss modules from samba, like libnss_winbind, will be used by
musl-nscd-devel, and therefore should use its headers for the
definitions of return values and others.
Without musl-nscd-devel to provide <nss.h>, samba uses a fallback header
that carries completely incompatible return value definitions.
Co-authored-by: Érico Nogueira <erico.erc@gmail.com>
Some packages require tzdata to testing, however, adding `tzdata` to
those checkdepends will break masterdir, since `tzdata` provides
`/usr/share/zoneinfo/UTC`, hence, it will be removed upon cleanup.
Let's add `tzdata` into `base-chroot` and remove the shenanigan in
`chroot.sh`.
1. Relying on `python3 -m pytest --help` to test for pytest can fail
because the pytest packages's __main__ is still invoked; this can
trigger import problems and falsely indicate that pytest is missing.
A simpler test is to just confirm that pytest is importable. If so,
the interpreter returns 0. Otherwise, an ImportError is thrown and
the interpreter will return 1.
2. Many templates require a custom do_check just to set PYTHONPATH to
either a build directory (especially for compiled extensions) or some
subdirectory of the source tree. Setting PYTHONPATH automatically to
the build directory should drastically reduce the need for custom
do_check in py3 templates. (This only applies to python3-module.sh
because pep517 builders will have unpredictable build directories.)
Closes: #31354.
This update breaks some C++ implementations (see [1] and
05ed2cb76b).
All packages that depend on libmicrohttpd have been checked; all but two
(psensor and retroshare) build against libmicrohttpd >= 0.9.71 by now,
and those two are easy enough to patch.
The relevant change is just switching some API return types from `int`
to an enum with the same values, so there isn't any concern about ABI
compatibility with the change (and in fact it's only a warning on a C
compiler).
[1] https://github.com/kismetwireless/kismet/issues/281
GitHub Action and fetch_upstream.sh script limits fetch depth to 200.
With such depth, should the PR was based on very old tree, we couldn't
find the merge-base to diff again.
In theory, we could replace actions/checkout and fetch_upstream.sh to
fetch more than 200 depth. However, there isn't much gain from such
change and it will increase the time to fetch upstream for all PR.
Arguably, such problematic PR couldn't be built because other steps
would build changed packages' dependencies, too.
Let's complain and exit early instead.
* CI will stop whenever a step is failing.
* We always want to enforce commit message lint
* `xlint` is reporting some false positive for license with " WITH "
Let's make the lint-commits part of xlint.sh
The HEAD given by GitHub Action is always non-fast-forward merge commit.
In the next change, lint-commits will use the tip from
"changed_templates.sh".
Let pick the correct tip for interrogation.
Also move to llvm12 and add llvm-unwind-devel to depends, since it's
required by some packages when building things with ldc.
Forcing linking against libunwind from llvm is necessary, otherwise the
resulting runtime is underlinked and fails to find the unw_* symbols it
needs. Argument taken from Alpine:
aaaa982c68/community/ldc/APKBUILD
It's in POSIX-future and some applications have started depending on it.
It's easier to backport into musl than fix each individual package.
Since we are adding a new interface to libc, update common/shlibs entry
as well. This should probably have been done for all musl updates.
And since we are here, also backport:
- isascii fix (removes the need for a patch in fceux)
- make epoll a cancellation point (fixes a bug in jack pipewire utilities)
The dot (.) inside [] matches literal dot. I don't know how it's
working, however the update-check for some packages is broken (i.e.
anthy-unicode).
Let's remove the backslash.
We need `chmod -R` to be able to cleanup after Go packages, but it's
unnecessary in most other cases. By only running it when the first `rm
-rf` fails, we optimize for the most common case and get a tiny speedup
for this build step.
- still depends on nodejs 10, which will be EOL starting May 2021
- template is very out of date (current version is 1.56.0), which shows
lack of interest for the package
- as seen in [1], depends on outdated electron9 (which void no longer
provides, if we wanted to use system electron), and that's a recent
development
[1] https://github.com/atom/atom/pull/21777
As of it's now, package built with build-helper/qmake natively won't
pick our CFLAGS CXXFLAGS and LDFLAGS. The result could be seen in no
debug symbol in djview.
Furthermore, cross build won't pick our hardening flags.
Let's force qmake pick our flags by using the same method as
build-style/qmake.
- CMAKE_BUILD_TYPE=Release will force -O3 instead of respecting our
CFLAGS and CXXFLAGS
- Theoretically, we could patch cmake to always use -O2 instead,
however, patching will break users' expectation when compiling their
our code.
- RelWithDebInfo could be another option if it's acceptable to always
have debug symbol available.
- However, some projects ignore all CFLAGS and CXXFLAGS;
- Some other projects relies on CMAKE_BUILD_TYPE=Release to install to
correct location and/or disable coverage.
- To get away with -O3, we need patching either ways, let's go with
CMAKE_BUILD_TYPE=None, and patch all problematic softwares.
- Installing gumbo-parser-devel didn't provide .so files,
because they are in the base package, so packages depending on
this library used the static one instead.
- add libgumbo to shlibs
- fix checks
- remove starting an article
Move unrelated libraries to gettext package, since they are only used by
it and by gtranslator, which will for the most part be installed
alongside gtranslator already.
The main purpose with this PR is to stop shipping unversioned libintl.so
in gettext-libs. What happens in this case is that packages built
natively for musl with localization support will have gettext in
hostmakedepends, which will lead to gettext-libs being in the host, and,
consequently, /usr/lib/libintl.so being available.
Due to CMake's FindIntl being bad, CMake projects will assume they
should use libintl.so instead of the gettext support from libc, and link
against it unnecessarily (and sometimes innefectively: CMake points the
compiler at /usr/include/libintl.h instead of our
/usr/include/gettext/libintl.h, which means the musl header will be used
instead, and unless the main executable is linked against libintl, the
library's functions won't even be used). Leaving only the essential
libraries in gettext-libs (versioned libintl.so files) and guaranteeing
gettext doesn't pull in the unversioned one means many packages won't
depend on libintl unnecessarily any more. As a matter of fact, this is a
case where our cross builds were more "correct" than native ones, since
libintl.so in the host won't be found for the target.
Furthermore, some packages require autopoint(1) in order to run
autoreconf; to avoid depending on gettext-devel for it, and ending up
linking in libintl into the final binary, we split it into the
gettext-devel-tools subpackage as well.
Also pull in Alpine patches fixing test failures.
* List dependencies of subpackages as part of the source packages
dependencies, knowing the subpackage they are coming from does
not matter to a build scheduler as long as xbps-src requires
those to exist in the same way to main depends= have to exist.
* Resolve virtual? packages through existing means in xbps-src to
avoid duplicating and possibly diverting from xbps-src's
behaviour in tools that use dbulk-dump.
* Filter out dependencies on the template itself from sub packages,
this matches the xbps-src behaviour and there is no need to
have to duplicate logic for this into the scheduling tool.
* Error out on archs= restrictions as we do already on broken=
and nocross=, there shouldn't be the need to discover archs=
restrictions when attempting to build the package.
- makedepend on mpfr-devel: used for arbitrary precision floats,
otherwise they are limited to double precision (53 bits ~ 13 digits)
- makedepend on pari-devel: used for number theory functions
- fix one line of test output to match a change in pari
- fix a bug in invmod which resulted in a test fail (chk_xavier)
- increase stacksize in musl which is needed for tests to pass
In addition to the two new makedepends, there is a small patch that
fixes one line of test output to match a change in pari.
With this commit, all 12 tests pass in glibc and in musl.
See #28989 for the original issue.
At least KiCAD tries to find wx-config-gtk3 in the current directory,
without looking for it in PATH, so the build fails. Actually give it a
full path, like we do for the cross build case.