Age | Commit message (Collapse) | Author | Files | Lines |
|
for a dist file or patch, and let the "checksum" target do the full
digest integrity checks. Should fix a problem reported by John Klos
on tech-pkg, which I was a bit dim in analysing.
|
|
Before this fix it would include
PLIST.common
then _only_ one of the following
PLIST.${OPSYS}
PLIST.${MACHINE_ARCH:C/i[3-6]86/i386/g}
PLIST.${OPSYS}-${MACHINE_ARCH:C/i[3-6]86/i386/g}
PLIST
and then PLIST.common_end.
Now, uses all of the following PLIST files, in that order:
PLIST.common
PLIST.${OPSYS}
PLIST.${MACHINE_ARCH:C/i[3-6]86/i386/g}
PLIST.${OPSYS}-${MACHINE_ARCH:C/i[3-6]86/i386/g}
PLIST
PLIST.common_end
|
|
Scheler and Drochner.
Handle missing checksums in distinfo properly.
Tested by myself and tron.
|
|
ensure the integrity of distfiles and dist patches. For now, the
default algorithms are SHA1 and RMD160, set as a whitespace-separated
list in the DIGEST_ALGORITHMS definition. The DIGEST_ALGORITHM
definition is deprecated.
Patchfiles will still use simply SHA1, since we are trying to detect a
binary "has this file changed", rather than proect against tampering.
In short, if someone can modify the patch file, they can modify the
distinfo file holding its digest information. This value is set in the
new PATCH_DIGEST_ALGORITHM definition.
Triggered by the breaking of SHA1, as reported in
http://www.schneier.com/blog/archives/2005/02/sha1_broken.html
|
|
PLIST.common
PLIST.${OPSYS}
PLIST
PLIST.common_end
to
PLIST.common
PLIST.${OPSYS}
PLIST.${MACHINE_ARCH:C/i[3-6]86/i386/g}
PLIST.${OPSYS}-${MACHINE_ARCH:C/i[3-6]86/i386/g}
PLIST
PLIST.common_end
Which makes it possible to remove duplicated code in some packages.
This doesn't change anything, because all affected packages define PLIST_SRC,
so this code would never be used for them.
And most of them will be fixed with the next commit.
ToDO: ${MACHINE_ARCH:C/i[3-6]86/i386/g} looks wrong and should be changed,
but thats what we allready use for MESSAGE_SRC.
|
|
all grep(1)s support grepping for empty string. `${GREP} .' instead.
|
|
extension when the runtime linker is used. from garbled@.
|
|
<20050215182853.AC52D3C03B8@berkshire.machshav.com>
The check for a vulnerable package at package fetch time is producing
incorrect results when csh-style alternates are used in the
pkg-vulnerabilities specification of the vulnerable package - disable
the incorrect speed-up that was there previously, at the expense of
some machine cycles at build time.
|
|
it explicitly (as with other ${FIND} usage here).
|
|
which had better been $$rebooted (Makefile quoting). Approved by jlam.
|
|
not provided by the Solaris 9 /bin/sh. Use the find(1) -newer expression
instead, as it expresses exactly what we want, compared to the "ls -t"
hack.
|
|
|
|
error checks into labelled blocks toward the top of the file.
While here, remove the historic (now completely empty; it was replaced by
PKG_FAIL_REASON some time ago) uptodate-pkgtools target and the references
to it.
|
|
Consolidate many MAKE_ENVs and SCRIPTS_ENVs into a common block.
(CONFIGURE_ENVs to be done later.)
Introduce new variable ALL_ENV which is automatically included into all
of MAKE_ENV, SCRIPTS_ENV, and CONFIGURE_ENV; this allows much cleaner
addition of the common CC/CXX/CFLAGS/etc. variables needed by all of these.
|
|
|
|
throughout bsd.pkg.mk, to labelled blocks in bsd.pkg.use.mk.
|
|
Part of this, introduce bsd.pkg.use.mk, where the Special Logic invoked
by various pkgsrc-wide USE_* variables will be migrated/consolidated.
|
|
|
|
the correct information to the +INSTALL and +DEINSTALL scripts to fix
problems with binary packages incorrectly locating the reference counts
database, e.g. /var/db.refcount.
|
|
we already use awk so pervasively in pkgsrc, simply use awk in place
of dc for simple computations.
|
|
This ensures that it's always created with the same user/group/mode
as ${WRKDIR}, so if a non-root user thinks he has permissions to remove
${WRKDIR}, then that expectation will remain true for ${PKG_DB_TMPDIR}.
|
|
|
|
spot that will come before compiler.mk (in bsd.prefs.mk). Previously,
LOCALBASE/bin was appearing earlier in the path than work/.<compiler>/bin,
which could cause the Wrong Thing to happen.
|
|
Convert _OPSYS_MAX_CMDLEN to a plain _OPSYS_MAX_CMDLEN_CMD variable, which
is not evaluated by a shell until CONFIGURE_ENV is expanded (and only then
if USE_LIBTOOL+GNU_CONFIGURE are both set).
|
|
A package can optionally provide an ALTERNATIVES file which contains pairs
of wrapper/alternative, one per line. The file is then used by the install
and deinstall scripts to register the alternatives and to create the
appropriate wrappers.
Make bsd.pkg.mk include this new file. This happens unconditionally to
keep all the alternatives logic in an independent file. Otherwise, some
of the stuff could have to be moved to bsd.pkg.mk, breaking consistency.
|
|
Collect many modifiable hard-to-find variables scattered throughout
bsd.pkg.mk into a common section near the top of the file. (Not necessarily
"complete", but helps to reduce HEAD-branch divergence.)
|
|
Also merge in deferred CLASSPATH handling, which can now be moved back
to java-vm.mk for cleanliness.
|
|
|
|
Also move its definition later in bsd.pkg.mk, so that it actually works
for compiler/*.mk (which is why those files originally had to provide
"defaults" for their variables -- they never did get evaluated).
|
|
${PKG_DB_TMPDIR} not ${_PKG_DB_TMPDIR}, patch from Geoff Wing.
|
|
the build user instead of the root user. This should allow "make
clean" as a non-root user to work again.
|
|
the meta-data files are generated and stored in ${PKG_DB_TMPDIR} by
the *-install-fake-pkg targets, and then all of the contents of that
directory are simply copied into ${PKG_DBDIR}/${PKGNAME} by register-pkg.
This is intended to make (DE)INSTALL scripts be more powerful.
Currently, they have no way to keep state on their own. Now, they
can keep state in the current working directory. When invoked by
pkg_add(1), the current working directory is ${PKG_DBDIR}/${PKGNAME},
so the state files are already stored in the correct place. When
invoked by bsd.pkg.mk, the current working directory is ${PKG_DB_TMPDIR},
and any state files generated by the (DE)INSTALL scripts are copied
into the correct place by the register-pkg target.
|
|
split the fake-pkg target into three smaller pieces:
pre-install-fake-pkg - Create files in ${WRKSRC}/.pkgdb meant to be
installed into ${PKG_DBDIR}/${PKGNAME} that don't depend on
the installed files.
post-install-fake-pkg - Create files in ${WRKSRC}/.pkgdb meant to be
installed into ${PKG_DBDIR}/${PKGNAME} that may depend on the
installed files.
register-pkg - Copy the files in ${WRKSRC}/.pkgdb and create a few
additional meta-files in ${PKG_DBDIR}/${PKGNAME}.
The idea is that ${WRKSRC}/.pkgdb contains as much of the state as
possible that will be copied into ${PKG_DBDIR}/${PKGNAME}.
The INSTALL and DEINSTALL scripts generated by bsd.pkg.install.mk are
now invoked with ${WRKSRC}/.pkgdb as the working directory, so the
scripts may use the working directory to store temporary files,
regardless of whether they're invoked from bsd.pkg.mk or by pkg_add.
|
|
|
|
- Move the previous block of code down in the file so that all used variables
are defined (specially PKG_SYSCONFDIR). Fixes a problem noticed by
kristerw@'s bulk build in comms/minicom.
- Ignore diff's return code, which aborts make in NetBSD 1.6.2. Also noticed
by kristerw@'s bulk build.
- Use full paths to do the checks, instead of relative to ${PREFIX}. Less
ambiguity. Matches should be turned into regular expressions that anchor
to a whole line (tried that, but found some problems).
- Turn CHECK_FILES to NO by default. As said in the previous point, there
are still some problems that have to be fixed and minor improvements to
be done. And I have no time to fix this ATM. Yes, this definitely needs
more testing. I'm sorry for all the noise. (But hey! you should set and
try this feature locally! ;-)
|
|
to CHECK_FILES_SKIP to avoid some false positives. These directories are
created in the pre-install stage so are included in the generated file list.
The files are also added to silence some problems that may arise during
"make replace". Found by wiz@ in the gtk2 package.
|
|
packages do not install more files than expected (nor delete existing
files), aside other sanity checks in PKG_SYSCONFDIR and VARBASE.
This behavior is only enabled if PKG_DEVELOPER is set and CHECK_FILES
is YES (the default). Should let us catch problems in other systems,
as some packages install different files depending on the OS they are
being built (which is different to see).
Furthermore, since the sanity checks done in PKG_SYSCONFDIR and VARBASE
are quite agressive, only enable them when CHECK_FILES_STRICT is YES
(defaults to NO). Developers should enable this feature to detect errors,
but this can't be a default yet. Otherwise, lots of packages could be
marked broken in bulk builds (they really are, according to "cleanliness"
rules, but most of them are non-trivial to fix).
|
|
to make older bmakes happy.)
|
|
file to indicate that override logic should be turned on. (AFAICT, only
Interix is afflicted at the moment.)
|
|
previous. (_OPSYS_LIBTOOL_REQD is only defined on some platforms, so the
:U clause provides the next best choice if that's not defined.)
|
|
framework. The list of changes include:
* Modify compiler.mk so that "c" is always prepended to USE_LANGUAGES,
so we no longer need to say it in package Makefiles. Packages
should now append to USE_LANGUAGES instead of setting it.
* Create mk/compiler/f2c.mk which implements another pseudo-compiler
"f2c" that may be used with any C compiler backend, e.g.
PKGSRC_COMPILER= f2c ccache gcc
* Teach the various "real" compiler files, e.g., sunpro.mk, mipspro.mk,
etc., to use f2c if the native Fortran compiler isn't present.
Packages that use Fortran should now simply include the line:
USE_LANGUAGES+= fortran
in the package Makefile.
|
|
already demonstrated by imake failing.
So, instead of fiddling with PATH's value in multiple places, rely on
PREPEND_PATH to get things right. Hopefully this will DTRT. At least
several local tests have worked without problems.
|
|
and ${X11BASE}/bin to the current PATH, _prepend_ them. This way we will
pick our own binaries in favour of the system ones, in the cases where
conflicts exist. Also add a PREPEND_PATH for ${LOCALBASE}/bin.
This should fix several packages on non-NetBSD systems. For example,
ispell-spanish under Linux comes to mind, as it was using the 'ispell'
binary from /usr/bin instead of the one in /usr/pkg/bin to get its
configuration information.
Ideally, buildlink could handle this as it does for libraries, hidding
unexpected binaries ;-)
No objections in tech-pkg@ (or packages@; I don't remember the exact
list where I asked).
|
|
PKG_ERROR_CLASSES is a list of error handlers, PKG_ERROR_HANDLER.<class>,
to create. The default error handler will rethrow the exit code after
emitting an error message that may be specified per-class with
PKG_ERROR_MSG.<class>.
Create error messages for the configure and build phases that inform
the user of places to go looking for why the build didn't complete.
|
|
shell environment passed in the do-configure target.
|
|
every package using perl.
|
|
by imake on Linux requires GNU make.
|
|
and groupadd commands won't follow the calling conventions of the
NetBSD useradd/groupadd. Modify the INSTALL scripts to *never* create
users or groups if there is no available ${USERADD} or ${GROUPADD}
command, but will warn the user of users and groups that need to be
created before the package can be installed.
|
|
|
|
USE_FORTRAN.
|