By default now it's assumed that if $build_style is not set, the template
uses 'custom-install' build, .e.g do_{build,configure,install}.
If it's set, a helper with the same name with .sh extension will be sourced
to set do_{build,configure,install} phases.
The exception is "meta-template" which currently it must be set via
build_style, probably will change in the future.
* run_func now errors out by itself if the function returned any error.
* if -B flag is enabled and binpkg already exists, skip updating local
repo pkg-index.
XBPS_CACHEDIR has been replaced by XBPS_HOSTDIR in configuration file,
and this expects the following structure:
/host
|_ /build (previously /pkg-builddir)
|_ /binpkgs (previously /pkg-binpkgs)
|_ /repocache (previously /cachedir)
|_ /sources (previously /pkg-srcdistdir)
Thanks to str1ngs for the great idea!
New security enhancements have been made and now you can only umount
a filesystem when the status file ".<mntpnt>_mount_bind_done" is
available in the specified masterdir.
The arguments have been changed and now it accepts two for
<masterdir> and <dir>.
The new code now has some security enhancements that only allows
to bind mount a filesystem when the user executing the process
owns the target directory and has read/write permissions on it.
XBPS_CACHEDIR will be bind mounted as read/write in target masterdir
into /cachedir. This directory must have read/write perms for the user
running xbps-src.
Also when or after the pkg is installed to destdir/stowned, and there was
any error, always remove the files that were installed into destdir.
With these changes there's no need to return any value in the do_foo()
functions because they are caught automatically. Also any function is now
logged into its own file to always log what happens.
- Remove buildvars_funcs.sh, its code has been moved into set_tmpl_common_vars().
- Move stripping code into its own file, and don't run it via fakeroot.
- Remove unnecesary reset_tmpl_vars() call in install_pkg().
- Misc changes.
- Prefix all messages with 'Package 'pkgname (version)': ..." to really
understand what's going on. Add more messages in some stages...
- Do not run pre/post_{configure,build,install} or do_{build,install} stages
if they were executed successfully in the past.
- Added a new var XBPS_REPO_LIST for the conf file, to specify
a list of remote repositories to be used in a masterdir.
- Install all required binpkgs in one pass, if that fails install
one of them at every pass.
- Fixed xbps-src-chroot-helper to properly catch SIG{INT,QUIT}
when -m is specified.
- Misc cosmetics improvements.
--HG--
extra : convert_revision : 0ad7d559477ccc1fc04ab09deb791343ee453de6
* -m flag to specify a custom XBPS_MASTERDIR, overwritting the value
from xbps-src.conf.
* make-repoidx target to create a package index plist file for
the local repository associated with a masterdir, or one specified
by the -p flag.
--HG--
extra : convert_revision : dbd502b532fd49cd17a79a187488a1e92f361ee0
Three new helpers will now be installed into ${libexecdir}:
- xbps-src-capchroot needs to have set CAP_SYS_CHROOT ep.
- xbps-src-chroot-cap{,u}mount: needs to have set CAP_SYS_ADMIN ep.
That means that libcap and setcap(8) are now required to install
xbps-src and use it as normal user.
--HG--
extra : convert_revision : 586d6526079e085f86bf3e393459d429f6f0ef99
* Removed the following vars from the conf file: XBPS_BUILDDIR,
XBPS_PACKAGESDIR and XBPS_SRCDISTDIR. They are always relative
to XBPS_MASTERDIR and cannot be changed.
* Removed XBPS_INSTALLDIR, it was unused in the code.
* Prepend /tools/bin in PATH for the chroot.
* Don't register a repo in the chroot if the XBPS_PREFER_BINPKG_DEPS
is not set.
--HG--
extra : convert_revision : 4df03ffa64f0bbf81cd1dd0baf38f1b7e4f47549