This reverts commit 2163ca2d03.
Removing `export AR=gcc-ar` was apparently done based on the assumption
that the linked issue (https://github.com/mesonbuild/meson/issues/1646)
had been solved completely on meson's side.
Instead, their solution, seen in
https://github.com/void-linux/void-packages/pull/2815, had been to force
gcc-ar for linking static libraries; by exporting `AR=ar`, we were
accidentally breaking static libraries when LTO is enabled. This was
noticed by leah while we were trying to build qemu-user-static using the
normal libglib-devel package (built with meson, which for us defaults to
enabling LTO).
Unfortunately, while correct, this change wasn't enough to fix the
static glib build, which had to resort to disabling LTO.
Allows a template to define in which circumstances its do_check phase
should run, without requiring custom do_check definitions in each
template (also makes it easier to change how build styles do things
without checking as many templates).
Add to Manual and CONTRIBUTING as well.
Missing $XBPS_MASTERDIR/tmp caused ca-certificates and glibc-locales to
fail in the reconfigure step of binary-bootstrap, since a call to mktemp
(which I couldn't locate in source though) assumed /tmp in the chroot
would be present already.
This issue was reproducible reliably for me on NixOS by doing something
like:
rm -rf masterdir
./xbps-src binary-bootstrap
The workaround I found was:
mkdir -p masterdir/tmp # or alternatively ./xbps-src clean
# which also (re-)creates masterdir/tmp
./xbps-src binary-bootstrap
This workaround is now mirrored in chroot_prepare by ensuring that tmp
always exists.
Detected when cross building timg after rebuilding GraphicsMagick with
new libdir directories. Could be fixed in all offending packages, but
it's easier to fix it in one place, and arguably more correct.
zuluplay seems maintained in zulucrypt sources, as zulucrypt cmake
complains about outdated zuluplay while the actual repo has no tag.
The only consumer is zulucrypt, which now uses the bundled zuluplay now.
The cc-rs crate will try to guess the host compiler and use default
flags these are not specifically set. The default behavior is wrong in
Void cross-compilation environments. Explicitly define HOST_CC=gcc and
use innocuous HOST_CFLAGS=-O2 just to thwart the bad defaults.
Co-authored-by: Érico Rolim <erico.erc@gmail.com>
Co-authored-by: Andrew J. Hesford <ajh@sideband.org>
Closes: #28416.
This allows templates to override do_build and not have to create the
build subdirectory used as TMPDIR in do_install; failure to create this
directory will cause pip to use (and pollute) /tmp in the masterdir.
This saves us one sed execution per file in the destdir, resulting
in a major speedup.
Grep will only consider text files and only look at the first line.
The libdir changes to use /usr/lib{32,64} instead of /usr/lib broke
cross builds for some packages that use gir, due to issues with copying
over symlinks. Since we haven't managed to track down the root cause for
the installation path, a symlink is a clean enough temporary fix. This
follows the style of the 00-libdir hooks.
Since pre-install runs for the main package and then each subpackage, it
should use PKGDESTDIR (not DESTDIR), which also enables a subpackage
that installs files during pkg_install to work cleanly.
As far as I can see, the previous hook was quite flawed. Since it was a
pre-install hook, the check for a directory would happen *before*
package installation (so nothing would happen). The only reason it did
anything was because it also ran as a step before a subpackage's
pkg_install (most GIR packages have a -devel subpackage), but used
DESTDIR instead of PKGDESTDIR, so it checked and affected the contents
of the main package. Then when the subpackage's pkg_install ran, the
files would have already been copied to the correct folders.
Closes#27437
Due to constant change in vala, some projects includes some old and
pre-generated vapi in their source tree and uses that version
instead of system one.
Pass system vapidir after real arguments in order to prefer its bundled
vapi.
Changed by q66:
we're now using an upstream snapshot from alpine; this should
allow us to get an assortment of regression fixes without having
to patch them in
also libssp fixes for musl, and typo fixes for libstdc++-devel
pkg function
also drop gccgo on 32-bit powerpc
Co-authored-by: q66 <daniel@octaforge.org>
Currently /etc/localtime is copied from the host to the chroot. Some
software expects /etc/localtime to be a symbolic link it can read to
determine the name of the time zone, so set up the expected link
structure.
xbps-src always ignore self deps in depends and in hostmakedepends
when not cross compiling. The old behaviour did only check for cross.
This now also ignores them in makedepends, but they are either way
disallowed in there, and returning an error would be correct, but
./xbps-src show-* is and never was suitable for linting, so ignore for now.
* $XBPS_CROSS_TRIPLET-pkg-config is our wrapper not a real executable
* In a build that have both freetype-config and pkg-config,
$XBPS_CROSS_BASE will be prepended twice with current system,
let's fix it.
this introduces a new build-style void-cross, which can be used
to write system crosstoolchain templates; this is to reduce the
amount of maintenance, resolve existing problems with the cross
toolchain templates and remove repeated code
this makes sure we don't have to worry about packages installing
stuff in lib32/lib64, it will be automagically symlinked
if something is still left over for whatever reason, or if the
opposite wordsize directory exists, that will be caught by pkglint
Also remove a few more private libraries that can be built in.
Co-authored-by: andry-dev <andry-dev@users.noreply.github.com>
Co-authored-by: Andrew J. Hesford <ajh@sideband.org>
Closes: #27300 [via git-merge-pr]
for now, these profiles set -mcpu to power8 and -mtune to power9
to match our ppc64le profiles, since there isn't really any native
harwdare to run these on (at least yet), and any packages will be
experimental for now anyway
As discussing in [1], on template with "subpackages" as multilines will
report false positive on some packages will never be built.
There're multiple problems here:
- expanded "subpackages" will have an empty line if it has a newline
inside template
- "sed" expression couldn't work with multilines "subpackages"
Let's not quote "$subpkgs" and "$subpackages" in "printf" to let the
shell do expansion and trim the empty lines for us. And rewrite the
"sed" expression to work with multilines "subpackages"
[1]: https://github.com/void-linux/void-packages/pull/26939#issuecomment-739098547
The file was created in chroot_prepare(), but the configuration
directory was being cleaned in chroot_sync_repodata(). This commit moves
the configuration to after the directories are created.
Fixes#25534
Outside of chroot, we calcucate XBPS_ALT_REPOSITORY only to throw it
away and calculate it again inside chroot. Normally, this is not problem
except when we're working with a Git's worktree, in which case, we don't
have the access to original gitdir inside chroot.
Let's bring that value from outside of chroot into it.
we don't need to specify -mcpu where compiler default is used,
preserve mtune though; do not -mno-altivec on ppc since altivec
is not default in the first place and doing this will just
break random things that explicitly enable altivec for runtime
checked code; do not use -maltivec on either ppc64le or ppc64
since it's implied by their -mcpu's (power8 for ppc64le which
is implicit, and 970 for ppc64 which is explicit)
also remove -mlong-double-64 for musl targets as that's compiler
default and it's not necessary to pass it; also remove -mabi=elfv2
for both ppc64le and ppc64 since it's implied default
Current wrappers hard-coded them at 0.42 which is very long ago.
Hence, those wrappers insert a versioned vapidir that no longer exists.
The build still work because valac will look into host's versioned vapidir
instead.
Let's check the version we're having and wrap that instead of changing
the hard-coded number from time to time.
- Remove .travis.yml, common/travis/docker.sh.
- Change references to travis to be more generic.
- Manual.md: Orient against using CI logs in broken= or nocross=.
Cleaned up patches, remove the aarch64-fregs one (it was fixed with a
musl patch, instead), and moved closer to where upstream is moving
regarding musl compat.
The elogind build option is enabled by default so that we can enable
only the libseat wlroots backend by default. This is also the right
default if other projects start using seatd.
The code for `git.sr.ht` was almost identical to that of `hg.sr.ht`. The
main difference, aside from replacing `hg.sr.ht` in `url` with
`git.sr.ht`, was the endpoint of `url`. The `hg.sr.ht` url uses `tags`
whereas `git.sr.ht` uses `refs`.
This allows the build system to detect itself whether it should use
certain features, instead of defaulting to (potentially bad) enabled
status.
Features that aren't detected properly, be it because false positives or
negatives, should be explicitly called out in the templates.