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

⌈⌋ branch:  cross package maker


Artifact [a9f8ca032e]

Artifact a9f8ca032efc65f1ce4b1ab8a8134cd4e8c5e9f2:

Wiki page [multi-target] by mario 2014-12-30 17:57:30.
D 2014-12-30T17:57:30.657
L multi-target
N text/x-markdown
P 5ebf7deacf5ceaf493016d360dd219ff7f5dcbee
U mario
W 1502
`xpm` provides a little convenience over standard `fpm` by creating multiple package targets at once.

Normally you'd invoke it repeatedly or in a shell loop:

    fpm -s dir -t deb ...
    fpm -s dir -t rpm ...
    fpm -s dir -t ipk ...

But you can as well compact that into:

    xpm -s dir -t deb,rpm,ipk ...

Notably that's only suitable for plain application packages. Distro-targeted packages with specific e.g. `--after-install` scripts may better be created individually.

Albeit you can often combine *non-overlapping* `--deb..` and `--rpm..` flags in one call:

    xpm -s dir -t deb,rpm --deb-sign KEY --rpm-sign ...

It also depends on packaging plugins if the fpm build environment is left in a clean enough state. Some targets (composer, phar) may not yet be suitable for multi-target building.

Targets can also be delimited with `,` `␣` `;` `+` or cominations thereof for readability:

    xpm -s dir -t deb+rpm+exe
    xpm -s dir -t "deb; rpm; exe"

Likewise it's possible to just list the <kbd>-t</kbd> flag multiple times:

    xpm -s dir -t deb -t rpm -t exe



##### implementation

Internally it's a trivial loop to `convert()` from one `input` to different fpm `output` plugins.


##### planning

It's slightly more work, but it might also be useful to permit source transformation lists later `-s dir,zip,deb`. Which would allow for "*matroska*" packages. (The composer plugin currently does this manually for phar-in-deb/rpm packing.)

Z e0fad3b19b494a6b3723b3e966c93aaa