Update of "Packfile"
Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Artifact ID: | d99d55fce1844361def1d79fb220241ff6fd7075 |
---|---|
Page Name: | Packfile |
Date: | 2015-04-15 16:40:31 |
Original User: | mario |
Mimetype: | text/x-markdown |
Parent: | a348db1020bcaf153b82e1702107f29bf3798c03 (diff) |
Next | c41335b3dc8bc9ebef6e10c6b0c028a6ec25a382 |
-u packfile
A Packfile
is run via make
after all source files have been collected into the staging directory.
- The main
Packfile
will be picked up from whereverfpm
was invoked at.
Runs within the base/tmp/pack-xyz123-staging/
path. - Any Packfiles that were grabbed along with source files (e.g.
usr/share/doc/Packfile
) will be run in the according staging subdirectory.
And of course they'll be automatically removed after being run.
Simple
An example Packfile could just be:
all:
gzip -9 usr/share/doc/mypkg/changelog
Note that the paths are relative, as it's already run within the staging directory.
Env vars
There are a few extra environment variables available:
PACK_TYPE
= debPACK_NAME
= mypkgPACK_VERSION
= 1.2.3PACK_ARCH
= nativePACK_STAGING
= /tmp/pack-dir-staging-123/PACK_DIRECOTIRES
= ""
Package-type specific rules
So you could add rules depending on target package types for example:
all: $(PACK_TYPE)
deb:
gzip -9 usr/share/doc/mypkg/changelog
rpm:
mv etc/rc.d/05-mypkg etc/init.d/mypkg
Purpose
Minor mid-packaging refinements.
Packfiles came to be, because they're more flexibile than builtin/default -u filters. They permit more cusomized hooks and packaging tasks.
It's not meant to delay actual build steps into the packaging phase.
Instead it's there to avoid packaging-workarounds creeping into and collecting dust in a regular Makefile.
Of course the boundaries can be somewhat arbitrary. But at least it's now feasible to cleanly spearate Makefile and Packfile tasks. Less mashup / overlap.
Suitable for minor file renaming, data compression or stub/default creation tasks.