Commit graph

18 commits

Author SHA1 Message Date
joerg
8a5245d7ec Don't generate @dirrm lines in print-PLIST, switch @exec mkdir lines to
@pkgdir.
2009-06-14 17:12:03 +00:00
rillig
b1bf3ebab8 Replaced _PKG_SILENT and _PKG_DEBUG with RUN. 2009-03-17 22:13:36 +00:00
seb
700cddad6f Avoid quoting "other character" in awk's strings as regular expressions.
See pkg/39002.
2008-07-23 23:46:26 +00:00
joerg
961f2e2499 For DESTDIR operation, no need to filter out old files. 2007-08-20 10:59:53 +00:00
jlam
639a93d743 Don't substitute for OPSYS- or ARCH-related variables in print-plist
if EMUL_PLATFORMS is defined.  This facilitates making
EMUL_PLATFORM-specific PLISTs.
2007-07-31 19:51:01 +00:00
joerg
409b183fc0 Remove USE_MTREE support. Keep one copy (the NetBSD version) for
the purpose of print-PLIST in plist/common-dirs.mtree.

Discussed with wiz@, no objections on tech-pkg@.
2007-07-02 14:54:09 +00:00
wiz
5dce6c7d9d Make MTREE_FILE and MTREE_ARGS internal by prefixing them with '_'.
They are not supposed to be set by the user.
2007-03-02 09:08:33 +00:00
joerg
bf76172a69 Font-related entries we skip for CHECK_FILES should be skipped for
print-PLIST as well.
2006-11-15 10:40:34 +00:00
joerg
5b374e445d Main infrastructure for DESTDIR support.
Packages may set PKG_DESTDIR_SUPPORT to either "destdir" or
"user-destdir" to flag support for this, following the same
rules as PKG_INSTALLATION_TYPES (e.g. define before first include
of bsd.prefs.mk).

The user activates it via USE_DESTDIR. When set to "yes",
packages with "user-destdir" are handled as "destdir".
The installation of the package will not go to ${LOCALBASE},
but a subdirectory of ${WRKDIR} instead. pre/post install scripts are
not run and the package is not registered either. A binary package
can be created instead to be installed normally with pkg_add.

For "user-destdir" packages, everything is run as normal user and
ownership is supposed to be correctled by pkg_create later. Since
the current pkg_install code uses pax and it doesn't allow overwriting
owners, this does not work yet.

For "destdir" packages, installation, packaging and cleaning is run as
root.

This commit does not change the handling of DEPENDS_TARGET or
bin-install to allow recursive usage.
2006-10-09 12:25:44 +00:00
jlam
356f5e8af5 Rename <phase>_COOKIE variables to _COOKIE.<phase>. These are private
variables so there are no user-visible changes.  This change just makes
it a little easier to write for loops.
2006-07-07 21:24:27 +00:00
seb
ad25735eb4 Re-add ${PREFIX} to the list of directories print-PLIST target
should ignore or it is broken for packages that installing files right
under ${PREFIX}.  Example in lang/sun-jre15:
$ make print-PLIST
...
@dirrm java/sun-1.5
ls: /usr/pkg//usr/pkg/.: No such file or directory
@dirrm /usr/pkg/.
$

It looks to me that was removed by mistake in revision 1.5
of this file.
2006-05-14 14:27:41 +00:00
minskim
c43654731a Apply PRINT_PLIST_AWK and _PLIST_PLIST_AWK_SUBST in the same order
for both files and directories.
2006-05-09 21:37:33 +00:00
jlam
d19161d212 Modify the plist module to automatically transform "^share/locale" in
PLISTs to "${PKGLOCALEDIR}/locale" for the installed PLIST.  This is
similar to the work that's already done to automatically handle
PKGINFODIR and PKGMANDIR.  PLISTs in pkgsrc will be modified so that
they would just list the message files to be under "share/locale".
USE_PKGLOCALEDIR must continue to be set in package Makefiles so that
localedir substitutions happen at post-configure time.
2006-04-17 06:12:46 +00:00
jlam
29fefe52e3 * Creates a new variable PKGINFODIR (named similarly to PKGMANDIR)
that is a purely user-settable variable to represent the relative
  path under ${PREFIX} where info files are stored and "dir" files
  are managed.  PKGINFODIR defaults to "info".  INFO_DIR still works,
  but will be obsoleted after the 2006Q1 branch.

* Modify GNU_CONFIGURE_INFODIR to only honor ${PKGINFODIR} if the
  package installs directly into ${PREFIX} and not some subdirectory
  under ${PREFIX}.  This fixes packages that don't really honor
  $(infodir) all that well, and also avoids PLIST problems relating
  to directory removal for those packages.

* Since the majority of Emacs Lisp packages use GNU_CONFIGURE, just
  set GNU_CONFIGURE_INFODIR directly to ${EMACS_INFOPREFIX}, which is
  the Emacs-distro-specific location for info files.  Also pass
  EMACS_INFOPREFIX through PLIST_SUBST for PLIST substitution.

* INFO_FILES should be defined if the package installs info files.
  If the info files are not listed in the PLIST, then INFO_FILES
  must list the filenames for the info files installed by the package,
  which are assumed to be located in ${PREFIX}/${PKGINFODIR}.

* The plist module can now better detect info files listed in PLISTs
  and exports a command to the pkginstall module to append info file
  names to the +INFO_FILES scriptlet at install-time.

* The print-PLIST target is updated to properly list info files in
  the auto-generated PLIST.

* The check-files code is updated to skip all "dir" Info database files.
2006-03-20 01:48:57 +00:00
jlam
ddf2e29cda Check that INFO_FILES is defined before using its value. Fixes PR pkg/33043. 2006-03-09 16:39:39 +00:00
seb
060fe0fd29 Signature police. 2006-01-14 00:58:37 +00:00
jlam
8da0cdded2 Remove the show-shlib-type target since it's no longer needed ... the
same value is returned by querying for SHLIB_TYPE via show-var, so
convert the only remaining use of show-shlib-type to just use SHLIB_TYPE.
2006-01-13 22:37:02 +00:00
jlam
8e0e10d3fa Initial commit of a new module that encapsulates all of the code
for manipulating PLISTs.  This module is not used by default pending
more widespread testing -- currently the variable _USE_PLIST_MODULE
must be defined in /etc/mk.conf to enable its use.

The main features of the new PLIST module are:

    (1) Splits out the PLIST-handling code from bsd.pkg.mk into a
	separate "plist" module.

    (2) Splits out giant, multi-line awk scripts stored in make
	variables into separate awk scripts that may be joined
	together to post-process PLISTs.  Each of these awk scripts
	consolidates the processing for one set of files, e.g.,
	man pages, info pages, etc., and is more easily commented
	than a make variable.

    (3) Splits out the print-PLIST code from the regular PLIST code
	since they have no common pieces (print-plist.mk vs.
	plist.mk).

    (4) Completely re-implements the shared-library handling to be
	more efficient.  Along the way, this also fixes a problem
	for Mac OS X users where the PLISTs incorrectly contained
	absolute paths.

    (5) Completely re-implements the info-file handling so that we
	can migrate from INFO_FILES definitions to just adding
	info/foo.info entries in the static PLISTs.

    (6) Adds commented-out support for automatically compressed or
	decompressed info page entries based on the value of MANZ.
	These changes will be activated after texinfo.mk has been
	replaced by something that is built using the more modern
	primitives now available in pkgsrc.

    (7) Move the file compression logic into a separate script
	"doc-compress" that compresses or decompresses files while
	minding symlinks.  This script is now called by bsd.pkg.mk
	to do the "autmoatic man page handling".  In the future,
	it will also handle the "automatic info page handling" and
	possible others.

In general, the idea is to move stuff out of the Makefiles and into
separate files where we don't need to worry about quoting rules
and where each file can have a separate history of commits.  This
simplifies the makefile logic (especially in terms of readability)
and also simplifies maintenance of the code.
2006-01-12 23:43:56 +00:00