- simplify IGNORE handling, always define it, even when NO_IGNORE is set,
and only use it for the targets it's meant to influence.
- make it possible to multiply-IGNORE a port, so stuff that's BROKEN and
NOT_FOR_ARCH will show up as both.
- DESCRIBE_TARGETs can die, since we no longer need special IGNORE dance
for them.
- add an IGNORE_IS_FATAL tweak, so that ignored ports can actually error out.
- reorg dump-vars to choose what to show, including new IGNORE, and COMES_WITH.
- name an explicit prepare step, which does check build dependencies and
install them (useful for build timing purposes)
- move the do-fetch test out, so that we can add pre-extract and do-extract
there eventually.
BUILD_DEPENDS, and --skipdeps to CONFIGURE_ARGS. Additionally it nukes
existing ${WRKSRC}/inc/Module/*Install* files in pre-configure to force
regeneration of bundled and often outdated Module::Install versions.
feedback/testing by msf@, jim@ and landry@
but they can (sometimes) be useful: add DANGEROUS knob to prevent running
them accidentally, but allow people to run makesum/update-plist/update-patches
recursively.
- there's no need for :: on pure dependencies, : works just fine for
accumulating (and :: is not 100% standard on all systems)
- append directly to _FETCH_MAKEFILE_NAMES. This avoids an untidy blank space
happen often (/usr/ports NFS mounted & /usr/ports/obj a symlink to a
local dir, /usr/ports as a symlink to /home/wherever..)
Use readlink -fn only if USE_SYSTRACE is set so less things are run when
bsd.port.mk is included. Should make everyone happy.
Issue reported by and original fix ajacoutot@, sounds reasonable to espie@
dirs forgotten all around. One can still unset it in /etc/mk.conf to get
back to the older behaviour, or still override it with /usr/obj/ports or
/usr/wobj or whatever. At least, now it can be a separate partition.
Most of us were already overriding this value, OpenBSD is all about sane
& simple default settings.
${PORTSDIR}/obj suggestion from jakemsr@.
Discussed at length with several, 'Works for me' krw@ ok todd@ wcmaier@.
but select some variables instead.
checked by naddy@ on a bulk-build.
(apart from making stuff less easy to break, it also means Makefiles stop
inheriting a WIDE set of .PHONY targets, which is a good thing)
redundant makefile parts found at many places in the tree
DISPLAY and XAUTHORITY variables/checks to be nuked soon from many ports
ok ajacoutot@, sthen@, jasper@
this fixes an old bug where package creation would fail if one has some
particular file under PKGPATH because it would give pkg_create the wrong
args
from Wim Lewis on ports@, thank you!
"looks right" sthen@, "sounds reasonable" landry@, ok jasper@ espie@
*solely* as a facility for people working on the ports tree.
not to be used for anything at all in the ports tree itself !!!
since it's not protected against any kind of race.
last one in the pipe to make sure failed regression tests don't bake a
cookie when REGRESS_LOG is set (default).
Also redirect stderr to regress log and introduce REGRESS_STATUS_IGNORE
variable so post-regress targets like found in cpan.port.mk can do the
actual failure detection.
Problem noticed by bluhm@, latching of exit code suggested by steven@
Testing, feedback and ok on earlier version by bluhm@, 'go for it' espie@
well.
Incidentally, this is also an issue with update: in some cases, the update
target wouldn't work (specifically, when dependencies had changed).
Fix it as well.
There might be a need to revisit the DEPENDS_TARGET stuff later, this is
a bit of a kludge...
every word. Also use :T to select the final word of the PKGPATH, so
that hooks work seamlessly for `non-core' modules, thus removing the
need for most modules to be core.
SIMPLE_LOCK for a while, this means something else is fetching
the same distfile, so first check whether our target actually exists
before we try to fetch it all over again.
the variable subst means the subst shouldn't occur anywhere, but only at
beginning of name... useful for backsubst of SYSCONFDIR, since etc is so
frequent. Extended to other variables such as PREFIX.
tweak make-plist to use OpenBSD::Subst.
*this means this only works with current, but you've had a week to update...*
to use it set CPAN_REPORT=Yes, CPAN_REPORT_FROM to your email address
and CPAN_REPORT_DB to a directory (like PLIST_DB)
initially by steven@
feedback from steven@, msf@, rui@, espie@, merdely@, okan@
ok msf@
- pass an argument for the file into which we want to save the result, to
avoid getting it polluted with error messages (defaults to /dev/stdout for
debug).
- create the makefile fragment as a temp file and only copy it when complete.
- copy it in one chunk, so that one can read a partial mirror-maker file
and have it be usable.
This does allow for people to start a make mirror-maker in one shell, and
start fetching stuff right away, before mirror-maker is finished.
This also produces usable mirror-maker Makefiles even if the ports tree
contains bogus entries.
error.
Do the real erroring out through a fatal error in pkgpath.mk (and set
PKGPATH to something less confusing than an empty variable). This
solves PR 5510 for real.
dependency, but only the ones actually required.
If we end up needing to rebuild them from source, then change back
to _internal-package-only, so that we benefit from the whole build
and get all packages again.
we can compute it first, and only start pkg_create if it didn't error
out.
This gets rid of the very verbose and confusing error messages
pkg_create meets when the ports tree cannot solve some dependencies.
Do port-lib-depends-check in two steps: first generate a list of
binary: lib1,lib2,lib3
in WRKINST/.saved_libs
then run check-lib-depends on it.
Speeds up tweaks to WANTLIB quite a lot, as we do not rescan every
binary all the time...
without a packagename bump, or because they have too long comments.
steven@ and I cleaned up most of them.
As a result, there's no longer any WRKPKG directory with their temporary
files.
We also use the `sort -u' feature of pkg_create for dependencies, so that
the command lines to pkg_create get simpler, which will allow for easier
error-checking later on.
SUPDISTFILES, so we get them as well.
This misbehavior noticed by Mikolaj Kucharski.
(the intention is obviously to regrab everything to verify whether
anything changed, and that includes SUPDISTFILES)
Only functional change:
Add sha256 at the end of the list of supported ciphers, so that new
makesums will add the new cipher.
The rest is business as usual.
the multi-packages case, as should be.
introduce _ALLPKGPATHS, and use it in show-required-by, so that
show-required-by works for multi-packages.
problem noticed by bernd@
pwd -P, and we select the longest prefix from PORTSDIR_PATH.
This lets mystuff-like dirs get stripped from PKGPATH correctly, as long
as PORTSDIR_PATH is set correctly.
Adapt make-plist to use the same code as pkg_create to deduce fragment
names, remove some old special cases that should no longer matter.
Zap directories from dependencies in a way depending on the dependency.
Far from perfect yet, as directories should be registered multiple times
in packages that do not depend on each other, and could also be used to
figure out where to put new files...
of FORCE_UPDATE. Also break out in case update fails (otherwise the old
installed package would be enough to continue building).
Sprinkle REPORT_PROBLEM to know more precisely what stuff is breaking.
replace some
if eval cmd; then
with
if (eval exec cmd); then
because if eval... seems to break early, even with the test guard, thus
giving a chance to REPORT_PROBLEM to do stuff instead of having to wait.
(Note: a trap would probably be simpler ?)
bsd.port.subdir.mk
Use absolute paths to build readmes files, based on READMES_TOP, which
can be (or not) PORTSDIR.
Generate category readmes in tmp directory as well.
minor clean-ups
so that the `normal' cases is MULTI_PACKAGES, (with possibly one
special '-' subpackage).
Adjust a few tests accordingly so that people don't notice the '-'
SUBPACKAGE: mostly do not print some directory changes, adjust FULLPKGPATH,
and set up PLIST- templates correctly.
careful: they do not get defined to a default value unless the `main'
variable is defined, because they get set later otherwise...
remove the .if defined(MULTI_PACKAGES) guards as they don't serve any purpose.
Simplify the PLIST tests to make them more uniform.
Move SED_PLIST to the list of obsolete variables instead of giving it special
treatment.
and WANTLIB.
Get the rules for the LIBSPECS_COOKIES out of the loop that dictates their
usage.
Introduce *DEP3 variables, to keep *-depends-list compatible with old stuff.
Use _BUILDLIB_DEPENDS and _BUILDWANTLIB everywhere this makes sense.
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.