Cross package maker. DEB/RPM generation or conversion. Derived from jordansissel/fpm.

⌈⌋ ⎇ branch:  cross package maker


Update of "Packfile"

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview

Artifact ID: a348db1020bcaf153b82e1702107f29bf3798c03
Page Name:Packfile
Date: 2015-04-15 16:32:48
Original User: mario
Mimetype:text/x-markdown
Next d99d55fce1844361def1d79fb220241ff6fd7075
Content

-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 wherever fpm 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 that 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 = deb
  • PACK_NAME = mypkg
  • PACK_VERSION = 1.2.3
  • PACK_ARCH = native
  • PACK_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.