Lots of pkgs seem to fail when _FORTIFY_SOURCE is defined in CPPFLAGS
due to a missing optimization level, and also some of them simply
ignore CPPFLAGS, therefore move it to CFLAGS to fix this once and for all.
Rather than setting them in the build profile, just set them in
etc/defaults.conf (overridable via etc/conf) to simplify the code.
- Also enable _FORTIFY_SOURCE=2 in CPPFLAGS.
- Also enable -z,relro in LDFLAGS.
As suggested by @chneukirchen.
common/build-profiles contains the compilation flags used in native
builds, and are defined per architecture:
- x86_64 (glibc)
- x86_64-musl (musl)
If XBPS_CFLAGS or XBPS_CXXFLAGS are set in `etc/conf`, the settings
from the build profile will be overrided.
Permanent global pkg build options can be defined via 'XBPS_PKG_OPTIONS' in etc/conf.
Permament per-pkg build options can be defined via 'XBPS_PKG_OPTIONS_<pkgname>' in etc/conf.
Close GH #452.
* update-bulk:
This rebuilds all pkgs in system repositories that are outdated.
with this xbps-bulk is now considered fully obsolete.
* update-sys:
This rebuilds all pkgs in system that are oudated and once built,
updates them via xbps-install(8).
This target defines a new configuration option "XBPS_SUCMD" that
is the command to execute to update the system. By default set to
"sudo sh -c".
CAVEATS
- need to check if binpkg is in local repo.
- need to add support to specify alternative rootdir.
- need to add support to specify system repos.
That means that the Makefile and xbps-src generated files are not required
anymore, and the xbps-src script can be used as is.
Bump xbps requirement to 0.35 and enable XBPS_INSTALL_ARGS by default.
The new xbps-src configuration file is `etc/conf` where you can
add your local overrides from defaults set via `etc/defaults.conf`.
To use this xbps-src, run these steps:
$ make
$ sudo make setup (to make chroot helper setgid)
$ ./xbps-src ...