allows us to get rid of some NO_DEPENDS tests later, also allows for
RUN_DEPENDS to become indexed on SUBPACKAGE.
LIB_DEPENDS and WANTLIB are going to need more surgery, since they need
to be checked during build and packaging...
consider it to be the main package, and do some equal treatment for each
package.
(to do: add subpackage where needed to WANTLIB, RUN_DEPENDS, LIB_DEPENDS
and act on them accordingly).
Also define _DONE_FILES for _fetch-makefile to avoid blocking if it's
not invoked from a higher level target.
can be used to run targets that may fail without impacting further stuff,
or to collect stats on anything.
For instance
BULK_DO= mkdir -p ${PORTSDIR}/config/${FULLPKGPATH}; \
cp -f ${WRKBUILD}/config.{log,status} ${PORTSDIR}/config/${FULLPKGPATH} || true; \
cd ${PACKAGE_REPOSITORY}/${MACHINE_ARCH}/all && perl ${PORTSDIR}/infrastructure/package/check-modes ${PKGNAMES} || true
- make sure locks happen when they should, including for lib-depends-check.
- make sure various targets set PACKAGING as they should.
- let BULK=Yes be invoked only from make package.
Fix for the BULK_COOKIE and UPDATE_COOKIE issue. They can no longer depend
on PACKAGE_COOKIES, since this needs to get built with PACKAGING set. So
instead, simply remove the cookies when we create a new package succesfully.
By any kind of reasoning, both bulk and update are `reset' when a new
package appears, so this seems to be the right semantics in most cases.
Thanks for wilfried and nikolay for error spotting. Hoping this will be
what's needed, finally.
building a subpackage, and then we definitely want the `current' stuff,
not the stuff that's already installed.
Allows shared libs updates in MULTI_PACKAGES to proceed gracefully without
having to uninstall stuff.
(we do not do this stuff in general, because in other cases, builds are
`staggered', e.g., a port is built against the existing base, not the stuff
in other WRKDIRS)
Add a message to that effect so that users don't get confused.
(specifically, make itself does not change dirs, so if you do ^Z,
you're not where you think you are...)
end up there with PACKAGING not set.
We do not try to `fix it' ourselves, because PACKAGING not set may have
some non obvious issues, like PKG_ARCH or PERMIT_PACKAGE_* not set correctly
at all.
Move BULK_COOKIE for package to the redirector, so that we do not
clean in subpackage cases, but instead wait for all the packages to be built.
Also, introduce FORCE_UPDATE=hard: with signatures, -F installed is
most often not necessary...
package cookie, so that an update will get all subpackages built.
And a fix for an old issue: let make update proceed to update ALL subpackages,
as seems the most natural. Create a subupdate target if one specifically
wants to update a single package (and use it as dependency in the FORCE_UPDATE
case).
cookies, and also insist on running make package, which is necessary to
make sure all MULTI_PACKAGES get built.
Repair make clean=packages: make sure all packages get named using the same
scheme as other multi-packages targets (that way, arch-indep subpackages
get cleaned properly)
into real targets.
- now make package will create missing ftp/cdrom links when PERMIT says so.
- PKG_ARCH=* packages get built into packages/no-arch, and linked from
elsewhere.
Everything gets based off PACKAGE_REPOSITORY, PKGREPOSITORYBASE and friends
get ditched.
All `package' targets go through the same routine: iterate through every
subpackage with PACKAGING set.
This includes describe, lib-depends-check, package, dump-vars, install-all,
which will iterate through subdescribe, sublib-depends-check, subpackage,
subdump-vars, and install.
(names are subject to change).
Much simpler logic, plus hey, you get an install-all target !
Might be some minor breakage, most stuff appear to work just fine...
_MASTER_LOCK, we keep a list of _LOCKS_HELD by one port builder in
an env variable, and we don't relock stuff that's already locked.
This allows us to, e.g., have fake depend on regress without issue
(even though, internally, it's more efficient to use the _internal-*
targets to avoid testing locks).