Packfile
-u packfile
Runs a Packfile
(via make
) after all source files have been collected into the staging dir.
- 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, because it's already run within the staging path set as current working dir.
Env vars
There are a few extra environment variables available:
PACK_TYPE
= debPKG_FLAG
= PKG_DEBPACK_NAME
= mypkgPACK_VERSION
= 1.2.3PACK_ARCH
= nativePACK_STAGING
= /tmp/pack-dir-staging-123/PACK_DIRECTORIES
= ""
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
arch:
sed -i '1 s/python/python2/' usr/bin/*
Purpose
Meant for minor mid-packaging refinements.
Packfiles came to be because they're more flexibile than builtin/default -u filters. They permit cusomized hooks and packaging tweaks.
They're not meant to delay actual build steps into the packaging phase.
Instead it's there to avoid packaging-workarounds creeping into a regular Makefile. The differentation is somewhat arbitrary, of course. But it's feasible to reduce overlap now.
Suitable for minor file renaming, data compression or stub/default creation tasks.