Age | Commit message (Collapse) | Author | Files | Lines |
|
sub-scripts.
|
|
+RCD_SCRIPTS, and +PERMS subscripts to handle copying config files
and rc.d scripts, and setting special permissions on files. The +FILES
and +RCD_SCRIPTS are basically identical except for different embedded
packets of data, and they feature reference-counting for the files in
case multiple packages share the same config file.
Garbage-collect unused functions and definitions in the install scripts
now that the subscripts are self-contained.
|
|
|
|
metadatadir argument.
|
|
|
|
|
|
definitions were removed from mk/install/headers. The checks for
whether {GROUP,USER}ADD are defined are now moved to the usergroup
script.
|
|
|
|
this, we only need some simple logic in java-env.mk to automatically
generate an ALTERNATIVES file for us.
There are two exceptions, though: fastjar and jikes (pointed out by tv@),
which do not use this file; they have to be handled manually.
Bump PKGREVISION for all affected packages.
While doing this, remove the java-wrapper package, obsoleted by the new
functionality provided by pkg_alternatives.
|
|
we already use awk so pervasively in pkgsrc, simply use awk in place
of dc for simple computations.
|
|
now simply make ${PKG_REFCOUNT_DBDIR} always be ${PKG_DBDIR}.refcount
so that it always follows the location of ${PKG_DBDIR}. This preserves
the ability for PKG_DBDIR (and PKG_REFCOUNT_DBDIR) to be different on
different machines despite using the same binary packages.
|
|
of ${PKG_DBDIR} to avoid problems with the package tools thinking that
it is a bad package. The default directory is ${PKG_DBDIR} with
".refcount" appended to the name. This may be set explicitly through
PKG_REFCOUNT_DBDIR in /etc/mk.conf (bootstrap users may want to do
this, although the default value should do the right thing).
|
|
handled within the usergroup script.
|
|
CHECK-REMOVE. The users and groups are now printed on the same line
with whitespace separating the entries (for easy copy-and-pasting info
commands), and wrapping to successive lines if we overflow the length
of the current line.
|
|
list of +DIRS-maintained directories. This allows for a package to
specify where its config files should go and creates the directory
automatically, even if it doesn't have any example config files to
put in place.
|
|
script.
|
|
script that is unpacked by the +INSTALL script at PRE-INSTALL time
before any other actions take place, and invoke +USERGROUP to create
any necessary users and groups. Remove the now-unused code for
PKG_USERS and PKG_GROUPS from the install and deinstall templates.
We also reference count the users and groups and store the reference
counts in ${PKG_DBDIR}/.refcount/{users,groups}. This allows multiple
packages to register that they use same users and groups, and allows
+USERGROUP to be invoked at any time to repair an installed package.
Also fix the install and deinstall templates to invoke the CHECK-*
actions with ${PKG_METADATA_DIR} so that the correct PKGNAME can be
derived. This fixes the weird messages asking the user to create
directories for ".pkgdb" during a "make install".
|
|
of directories needed for the proper functioning of each package.
The +INSTALL script unpacks a +DIRS script that adds and removes
directories. The +DIRS script entirely encapsulates the directory
creation and removal, and completely replaces the code in the
mk/install/install and mk/install/deinstall templates that handled
{MAKE,OWN}_DIRS and {MAKE,OWN}_DIRS_PERMS.
The +DIRS script is meant to be executed from within the package
meta-data directory, e.g. /var/db/pkg/<pkgname>. It's usage is:
./+DIRS ADD|REMOVE|CHECK-ADD|CHECK-REMOVE
The ADD and REMOVE actions cause the necessary directories to be added
or removed from the system. The CHECK-ADD and CHECK-REMOVE actions
print out informative messages prompting the user to either create or
remove some necessary directories.
The behaviour of "ADD" is such that if the directory already exists
on the system and is not already ref-counted, then that directory is
marked as "pre-existing". On "REMOVE", pre-existing directories are
left untouched on the filesystem.
At any time, the root user can sanity-check the directories needed by
packages by invoking all of the +DIRS scripts with the "CHECK-ADD"
action. If there are missing directories, then invoking all of the
+DIRS scripts with the "ADD" action will ensure that any missing
directories are created.
The reference counts database is stored in ${PKG_DBDIR}/.refcount.
The reference counts related to directories managed by the +DIRS script
are stored in ${PKG_DBDIR}/.refcount/dirs. If the directory reference
counts database is removed, then invoking all of the +DIRS scripts
with the "ADD" action will reconstruct the database; however, directories
may be marked as being pre-existing, so they won't be removed at
package de-installation (although a message will be displayed informing
the user that those directories can be removed).
|
|
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}.
|
|
|
|
|
|
(...and if it were optional, it should have been an .sinclude anyway.)
Sanity: If mk/platform/${OPSYS}.mk is missing, don't assume NetBSD is it.
pkgsrc now depends on a valid platform file for an OS, so require it.
(Still includes NetBSD.mk, but sets PKG_FAIL_REASON.)
|
|
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.
|
|
|
|
shell script fragments that unpack sub-scripts before the any of the
other PRE-INSTALL stages are run.
|
|
|
|
-L/some/where -lfoo so that the arguments we push on the stack are actually
used in logic.
Should solve the issue build bash with option 'static' enabled reported on
netbsd-users.
OK'd by jlam@.
|
|
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).
|
|
|
|
until the pkg_alternatives package has been manually installed. This way
we drop the dependency on that package.
|
|
which is similar to PKG_CONFIG. This does not change how the binary packages
are built, only whether the pkg_alternatives command should be run at package
installation/deinstallation time or not. The variable can take either YES or
NO as values and defaults to YES.
|
|
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).
|
|
Move definition of PKGSRC_COMPILER to defaults/mk.conf, to make it more
readily seen by the user.
|
|
No need to do .som_done dance; just show the message as part of the
pre-extract phase. If that means showing it more than once if the extract
is interrupted and restarted, no harm done.
|
|
(These are available on all platforms via digest(1).)
Set commands for other checksums on a per OPSYS basis.
Set MKSUSM=yes back as the default.
|
|
Default it to "no" instead.
|
|
out).
|
|
${PKG_DB_TMPDIR} not ${_PKG_DB_TMPDIR}, patch from Geoff Wing.
|
|
packages they upload (by setting the optional variable MKSUMS=yes) and,
also optionally, PGP signing them (by setting SIGN_AS=username@NetBSD.org,
for example).
|
|
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.
|
|
|