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

⌈⌋ ⎇ branch:  cross package maker


Update of "cross package maker"

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

Overview

Artifact ID: a152f851c0dd7b1334dc67fd5d2b23d6ab7423b5
Page Name:cross package maker
Date: 2014-12-14 22:52:53
Original User: mario
Mimetype:text/x-markdown
Parent: 22319e90117f13f288b39ef2aba6e6dae3a0804b (diff)
Next b5dfc9da31559853aa62987449cb70995a725d6f
Content

xpm is currently a personalized branch of fpm (Effing Package Management;), which greatly simplifies cross-distro package generation.

It creates or converts between

  • Debian .deb
  • RedHat .rpm
  • Node .npm
  • OSX .pkg
  • Ruby .gem
  • Solaris packages
  • plain ZIPs or TARs

and lots more..
See the → Howto on common fpm usage examples.

xpm target/source extensions

This variant (precautiosly renamed for parallel installation) adds a few more modules:

  • target exe for Windows SFX installers

  • reader src to consume per-file relative pack: specifiers and meta fields from primarily source-based bundles

  • target phar which bundles PHP scripts into .phar/zip/tars with meta fields

ToDo

It's further planned to support:

  • Multi-target creation in one swoop.

    fpm -t deb,rpm,exe
    

    Not yet sure, but seems feasible. In particular since fpm package modules use non-overlapping specialty flags each.

  • Introduce simple filters (semi-build scripts that resemble debian helpers, or quick tasks to reduce manual build scripts) to be run between sourcing and target build module.

    fpm --filter mangz,appdata
    

    Non-conclusive list. Not yet decided on --filter or --modify or --pipe or overloading -f, or adding a new short -i/-r/-u/-w flag or whatever's free.

Still pondering

And a slightly overambitious extension:

  • a GUI-based cross-distro installer

    • Basically a zip, with shell prefix (derived from the existing sh target),
    • But the primary payload being a Python script (__init__.py),
    • Later Perl, Shell as optional fallback,
    • xdialog/xmessage/zenity in absence of Tk/gtk/qt bindings for either,
    • And one or multiple .debs included
    • DEBs are for all practical purposes the currently most widely supported format (Debian/Ubuntu/Mint family, OSX flint, OpenWRT ipkg, Windows wpkg.exe)
    • Still can be converted to native RPMs on target systems (using alien or an included slim fpm)
    • Else can easily be just extracted raw with ar|tar anyway).

See Research on existing and inactive cross-distro packagers, schemes and initiatives.

GitHub

I just don't fancy git. That's all. But this fossil repo will be synced back to https://github.com/prof-milki/xpm once in a while.

Name

Yes, I'm aware xpm is technically a taken moniker. Just sounded cool. (Though firefox has long abondened them, and Wayland will eradicate xpixmaps anyway... So xpm is just a historic format; moreover libxpm never provide a binary by that name anyway.)