summaryrefslogtreecommitdiff
path: root/mk/plist
AgeCommit message (Collapse)AuthorFilesLines
2006-07-21Modify the shlib-type script so that it doesn't need to compile anythingjlam2-26/+22
-- instead, we just check "pkg_info", which should exist on all pkgsrc platforms. XXX Note that this may need to change when we later support other package XXX system flavors. Back out revision 1.79 of pkgtools/x11-links/Makefile which was only to work around needing a C compiler for shlib-type to work.
2006-07-15Split the variable BUILD_DEFS into those that are defined by packagesrillig1-2/+2
and those that are defined by the infrastructure (_BUILD_DEFS). This allows the build-defs-message target to be moved to the end of bsd.pkg.mk. Now it prints the correct result even in unprivileged builds, which had been wrong due to the order in which the files have been included. For example, ${UNPRIVILEGED_USER} was displayed as (not defined) although its value was defined, which could be checked with "bmake show-var". Tested with one package that _does_ define BUILD_DEFS and with one that doesn't. The behavior stays the same.
2006-07-07Rename <phase>_COOKIE variables to _COOKIE.<phase>. These are privatejlam1-3/+3
variables so there are no user-visible changes. This change just makes it a little easier to write for loops.
2006-06-08Fix an inverted test that caused all catman pages to be stripped fromjlam1-3/+3
the PLIST on platforms where IMAKE_MANINSTALL != MANINSTALL, e.g. Solaris. Solution noted by adrianp in private email. This should fix the problem noted in PR pkg/33629.
2006-06-03First pass at implementing support for package system flavors otherjlam1-1/+2
than pkgsrc's current one. This is an important lead-up to any project that redesigns the pkg_* tools in that it doesn't tie us to past design (mis)choices. This commit mostly deals with rearranging code, although there was a considerable amount of rewriting done in cases where I thought the code was somewhat messy and was difficult to understand. The design I chose for supporting multiple package system flavors is that the various depends, install, package, etc. modules would define default targets and variables that may be overridden in files from pkgsrc/mk/flavor/${PKG_FLAVOR}. The default targets would do the sensible thing of doing nothing, and pkgsrc infrastructure would rely on the appropriate things to be defined in pkgsrc/mk/flavor to do the real work. The pkgsrc/mk/flavor directory contains subdirectories corresponding to each package system flavor that we support. Currently, I only have "pkg" which represents the current pkgsrc-native package flavor. I've separated out most of the code where we make assumptions about the package system flavor, mostly either because we directly use the pkg_* tools, or we make assumptions about the package meta-data directory, or we directly manipulate the package meta-data files, and placed it into pkgsrc/mk/flavor/pkg. There are several new modules that have been refactored out of bsd.pkg.mk as part of these changes: check, depends, install, package, and update. Each of these modules has been slimmed down by rewriting them to avoid some recursive make calls. I've also religiously documented which targets are "public" and which are "private" so that users won't rely on reaching into pkgsrc innards to call a private target. The "depends" module is a complete overhaul of the way that we handle dependencies. There is now a separate "depends" phase that occurs before the "extract" phase where dependencies are installed. This differs from the old way where dependencies were installed just before extraction occurred. The reduce-depends.mk file is now replaced by a script that is invoked only once during the depends phase and is used to generate a cookie file that holds the full set of reduced dependencies. It is now possible to type "make depends" in a package directory and all missing dependencies will be installed. Future work on this project include: * Resolve the workflow design in anticipation of future work on staged installations where "package" conceptually happens before "install". * Rewrite the buildlink3 framework to not assume the use of the pkgsrc pkg_* tools. * Rewrite the pkginstall framework to provide a standard pkg_* tool to perform the actions, and allowing a purely declarative file per package to describe what actions need to be taken at install or deinstall time. * Implement support for the SVR4 package flavor. This will be proof that the appropriate abstractions are in place to allow using a completely different set of package management tools.
2006-06-01Removed superfluous backslashes.rillig1-2/+2
2006-06-01In AWK string literals, backslashes must be doubled. Otherwise they arerillig1-4/+4
simply discarded.
2006-05-29When filtering out unrelated info files, only check the last bit ofjlam1-4/+4
the name instead of the whole name. This avoids some problems where the file name contains awk-special characters, e.g. +.
2006-05-14Re-add ${PREFIX} to the list of directories print-PLIST targetseb1-1/+2
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-09Apply PRINT_PLIST_AWK and _PLIST_PLIST_AWK_SUBST in the same orderminskim1-2/+2
for both files and directories.
2006-05-02Use brackets "[]" to quote characters instead of backslash "\". Thisjlam1-2/+2
is more bulletproof across different versions of awk. From PR pkg/33410 by Aleksey Cheusov.
2006-04-24Added the shebang line.rillig1-2/+2
2006-04-17Only do the locale transformation if USE_PKGLOCALEDIR is defined. Thisjlam2-2/+9
avoids any problems with current packages that install locale files but don't honor PKGLOCALEDIR yet.
2006-04-17Modify the plist module to automatically transform "^share/locale" injlam3-3/+62
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-16Now that all info file entries have been pushed from INFO_FILES intojlam1-19/+2
the PLISTs, drop support for listing info files in INFO_FILES. The INFO_FILES variable is now strictly defined/undefined.
2006-04-15Apply jlam's awk fix done in plist-info.awk 1.12.minskim1-3/+5
- Avoid () as a regular expression as the interpretation seems to be implementation-defined by various awks.
2006-04-14Avoid () as a regular expression as the interpretation seems to bejlam1-3/+5
implementation-defined by various awks.
2006-04-12If the info file doesn't exist on the disk, we should still output anjlam1-1/+8
entry for it in the final PLIST. This allows us to locate info files in the PLIST that aren't on the system during the CHECK_FILES stage.
2006-04-05Create a new variable IGNORE_LIBTOOLIZE containing files which shouldjlam2-3/+12
not be expanded by the plist module.
2006-03-30Whitespace changes.jlam1-14/+14
2006-03-30Skip symlinks without emitting warnings during PLIST creation as thesejlam1-5/+12
are harmless.
2006-03-20* Creates a new variable PKGINFODIR (named similarly to PKGMANDIR)jlam3-42/+55
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-14Properly rename "info" to ${INFO_DIR} in any @dirrm statements. Alsojlam1-6/+12
add a guard so that we don't re-expand any "info" in ${INFO_DIR} again.
2006-03-14Teach the plist framework a new variable IGNORE_INFO_DIRS that is ajlam2-7/+30
list of ${PREFIX}-relative paths of directories that do *not* contain info files. This allows avoiding the auto info-file-entry munging that occurs for all PLIST entries that are in directories named "info".
2006-03-14Sort _PLIST_AWK_ENV.jlam1-2/+2
2006-03-14Restructure pattern-actions a bit so that we're not lumping everythingjlam1-8/+20
into the last action. This makes it easier to understand the flow.
2006-03-09Check that INFO_FILES is defined before using its value. Fixes PR pkg/33043.jlam1-2/+2
2006-03-04Handle info directory trees that aren't rooted directly in ${PREFIX}, e.g.jlam1-4/+8
${PREFIX}/<pkg>/info, etc.
2006-02-07Info pages don't always end in ".info" as noted in PR pkg/32699. Fix thejlam1-6/+11
PLIST handling based on the suggestion in the PR by Johan Danielsson. This restores the behavior from the old PLIST code.
2006-02-07Fix typo in comment.jlam1-2/+2
2006-02-07Provide default values for various variables if they're not present injlam5-26/+26
the shell environment array ENVIRON.
2006-02-05warning: escape sequence `\.' treated as plain `.'rillig4-13/+13
2006-02-05plist-info.awk:80: warning: escape sequence `\.' treated as plain `.'rillig1-2/+2
2006-01-22SUS says awk's delete command only deletes array elements, not the arrayjlam2-5/+2
itself.
2006-01-21Fix a weird newline error (probably cut-and-paste error).jlam1-3/+2
2006-01-19Fix a typo in the comment.jlam1-2/+2
2006-01-19Add a catman page to the script comments to clarify how this scriptjlam1-5/+41
should be used. Also, do a minor reordering of lines so that the logic is more clear.
2006-01-14Signature police.seb1-1/+1
2006-01-13Make use of ${.TARGET} within a target instead of re-specifying thejlam1-2/+2
file again.
2006-01-13Remove the show-shlib-type target since it's no longer needed ... thejlam2-8/+2
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-13Force compression and decompression to avoid the default behavior ofjlam1-3/+3
gzip/gunzip where hard-linked files aren't compressed/decompressed.
2006-01-12Initial commit of a new module that encapsulates all of the codejlam16-0/+1563
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.