make) after all source files have been collected into the staging dir.
- The main
Packfilewill be picked up from wherever
fpmwas invoked at.
Runs within the base
- 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.
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.
There are a few extra environment variables available:
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/*
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.