* New flag ``--fpm-options-file path/to/file`` which allows you to specify additional fpm flags in an external file of your choosing. (`#1905`_, `#1902`_, `#1827`_; Jordan Sissel, Will Furnell, hjpotter92)
* deb: Periods are now accepted in package names (`#1899`_; C. Cooke)
* Fix bug where fpm would crash if ``--workdir`` pointed at a path that didn't
exist. (`#1959`_; Jordan Sissel)
* osxpkg: this package format now supports the fpm ``--prefix`` flag(`#1909`_, `#1908`_; Jordan Sissel, mcataga)
* cpan: Fix bug where fpm would fail on certain Perl modules due to their source tarball structure (`#1940`_; Nicholas Hubbard, William N. Braswell, Jr.)
* cpan: Fix crash on certain CPAN modules where the author field was blank (`#1942`_, `#1937`_, `#1523`_, `#1528`_; Nicholas Hubbard, William N. Braswell, Jr.)
* deb: The distribution field of the debian changelog and changes files will now use the value set by ``--deb-dist`` (default is "unstable") (`#1934`_; Chabert Loïc)
* python: Fix errors in how fpm invoked ``pip``. Previously, fpm would use pip's ``--build`` flag, but this was removed a while ago, and fpm is now aware! (`#1896`_, `#1831`_, `#1893`_, `#1916`_; Jordan Sissel, Svyatogor Chuykov)
* deb: The default ``--deb-priority`` is now "optional" instead of "extra" (`#1913`_; Chris Novakovic)
* Enable installation of fpm on older versions of ruby. This change removed ``git`` rubygem dependency. (`#1946`_, `#1923`_; Jordan Sissel, Andreas Wirooks, Ruslan Kuprieiev, jamshid, Lorenzo Castellino, Sam Hughes)
* Enable operation of fpm on very old versions of ruby (as old as Ruby 1.9.3). This changed removed ``json`` rubygem dependency. (`#1950`_, `#1949`_, `#1741`_, `#1264`_, `#1798`_, `#1800`_, `#1784`_; Jordan Sissel and many others)
* Fix bug where subprocesses could hang waiting for input (`#1955`_, `#1519`_, `#1522`_; Nicholas Hubbard, William N. Braswell, Jr.)
* Update Dockerfile to use ubuntu:20.04 (`#1935`_; Gnought)
* internal: Fix a code typo (`#1948`_; Nicholas Hubbard)
* internal tests: Support newer versions of lintian (`#1939`_, `#1907`_; Jordan Sissel)
* Improve support for Ruby 3.1.0 and newer that would previously crash with an error mentioning Psych::DisallowedClass (`#1898`_, `#1895`_; Jordan Sissel, Alexandre ZANNI)
* docs: All supported package types now have dedicated documentation pages. Some pages are small stubs and would benefit from future improvement. (`#1884`_; mcandre, Jordan Sissel)
* Fix a bug that impacted fpm api usage (from other ruby programs) that caused an error "NameError: uninitialized constant FPM::Package::CPAN" when trying to output a Deb package. (`#1854`_, `#1856`_; Karol Bucek, Jordan Sissel)
* python: Use pip by default for fetching Python packages. This matches the Python 3 "installation" docs which recommend calling pip as ``python -m pip`` where ``python`` depends on ``--python-bin`` (default "python"). Previous default was to use `easy_install` which is no longer available on many newer systems. To use easy_install, you can set ``--no-python-internal-pip`` to revert this pip default. Further, you can specify your own pip path instead of using ``python -m pip`` with the ``--python-pip /path/to/pip`` flag. (`#1820`_, `#1821`_; Jordan Sissel)
* python: Support extras_require build markers in python packages (`#1307`_, `#1816`_; Joris Vandermeersch)
* freebsd: Fix bug which caused fpm to generate incorrect FreeBSD packages "missing leading `/`" (`#1811`_, `#1812`_, `#1844`_, `#1832`_, `#1845`_; Vlastimil Holer, Clayton Wong, Markus Ueberall, Jordan Sissel)
* deb: In order to only allow fpm to create valid packages, fpm now rejects packages with invalid "provides" (``--provides``) values. (`#1829`_, `#1825`_; Jordan Sissel, Peter Teichman)
* deb: Only show a warning about /etc and config files if there are files in /etc (`#1852`_, `#1851`_; Jordan Sissel)
* rpm: replace dash with underscore in rpm's "Release" field aka what fpm calls ``--iteration``. (`#1834`_, `#1833`_; Jordan Sissel)
* empty: `fpm -s empty ...` now defaults to "all" architecture instead of "native". (`#1850`_, `#1846`_; Jordan Sissel)
* Significant documentation improvements rewriting most of the documentation. New overview pages, full CLI flag listing, and new sections dedicated package types (rpm, cpan, deb, etc). (`#1815`_, `#1817`_, `#1838`_; Vedant K, Jordan Sissel)
* Typo fixes in documentation are always appreciated! (`#1842`_; Clayton Wong)
* fpm can now (we hope!) now be tested more easily from docker (`#1818`_, `#1682`_, `#1453`_; @directionless, Jordan Sissel, Douglas Muth)
* Apple M1 users should now work (`#1772`_, `#1785`_, `#1786`_; Jordan Sissel)
* Removed `ffi` ruby library as a dependency. This should make it easier to support a wider range of Ruby versions (Ruby 2.2, 3.0, etc) and platforms (like arm64, Apple M1, etc) in the future. (`#1785`_, `#1786`_; Jordan Sissel)
* Now uses the correct architecture synonym for ARM 64 systems. Debian uses `arm64` as a synonym for what other systems call `aarch64` (linux kernel, RPM, Arch Linux). (`#1775`_; Steve Kamerman)
* Docs: Fix a typo in an example (`#1785`_; Zoe O'Connell)
* rpm: File paths can now contain single-quote characters (`#1774`_; Jordan Sissel)
* Ruby 3.0 support: Added `rexml` as a runtime dependency. In Ruby 2.0, `rexml` came by default, but in Ruby 3.0, `rexml` is now a bundled gem and some distributiosn do not include it by default. (`#1794`_; Jordan Sissel)
* Fix error "git: not found (Git::GitExecuteError)". Now loads `git` library only when using git features. (`#1753`_, `#1748`_, `#1751`_, `#1766`_; Jordan Sissel, Cameron Nemo, Jason Rogers, Luke Short)
* deb: Fix syntax error in `postinst` (`--after-install`) script. (`#1752`_, `#1749`_, `#1764`_; rmanus, Adam Mohammed, Elliot Murphy, kimw, Jordan Sissel)
* Pin ffi dependency to ruby ffi 1.12.x to try keeping fpm compatible with older/abandoned rubies like 2.0 and 2.1. (`#1709`_; Matt Patterson)
* deb: New flag to add 'set -e' to all scripts. `--deb-maintainerscripts-force-errorchecks` which defaults to off. (`#1697`_; Andreas Ulm)
* deb: Fix bug when converting rubygems to debs where certain constraints like `~>1` would generate a deb dependency that couldn't be satisfied. (`#1699`_; Vlastimil Holer)
* python: Prepend to PYTHONPATH instead of replacing it. This should help on platforms that rely heavily on PYTHONPATH, such as NixOSX (`#1711`_, `#1710`_; anarg)
* python: Add `--python-trusted-host` flag which passes `--trusted-host` flag to `pip` (`#1737`_; Vladimir Ponarevsky)
* Dockerfile updated to Alpine 3.12 (`#1745`_; Cameron Nemo)
* Remove the 'backports' deprecation warning (`#1727`_; Jose Galvez)
* sh: Performance improvement when printing package metadata (`#1729`_; James Logsdon, Ed Healy)
* rpm: Add support for `xzmt` compression (multithreaded xz compressor) to help when creating very large packages (several gigabytes). (`#1447`_, `#1419`_; amnobc)
* rpm: Add `--rpm-macro-expansion` flag to enable macro expansion in scripts during rpmbuild. See https://rpm.org/user_doc/scriptlet_expansion.html for more details. (`#1642`_; juliantrzeciak)
* deb: use correct control.tar filename (`#1668`_; Mike Perham)
* cpan: Have perl modules implicitly "provide" (`--provides`) capabilities. (`#1340`_; Bob Bell. `#1345`_; liger1978)
* cpan: Now transforms perl version values like "5.008001" to "5.8.1" (`#1342`_; Bob Bell)
* cpan: Use `>=` ("this version or newer") for package dependencies instead of `=` ("exactly this version"). (`#1338`_; Bob Bell)
* deb: Add `--deb-after-purge` flag for running a script after `apt-get purge` is run. (Alexander Weidinger)
* deb: fix bug when using `--deb-upstart` would use the wrong file name (`#1325`_, `#1287`_; vbakayev)
* deb: New flags `--deb-interest-noawait` and `--deb-activate-nowait`. (`#1225`_, `#1359`_; Philippe Poilbarbe)
* dir: Remove a debug statement that would put fpm into a debug prompt (`#1293`_, `#1259`_; Joseph Anthony Pasquale Holsten)
* dir: When using `path mapping`_ (`a=b` syntax), and `a` is a symlink, use the path `b` as the symlink, not `b/a` (`#1253`_, Nemanja Boric)
* gem: Can now make reproducible_builds_ when building a deb (`-s gem -t deb`). See the `Deterministic output`_ docs.
* gem: Add `--gem-embed-dependencies` flag to include in the output package all dependent gems of the target. For example, `fpm -s gem -t rpm --gem-embed-dependencies rails` will create a single `rails` rpm that includes active_support, active_record, etc.
* pleaserun: Add more flags (`--pleaserun-chdir`, `--pleaserun-user`, etc) to allow more customization of pleaserun services. (`#1311`_; Paulo Sousa)
* python: Add `--python-setup-py-arguments` flag for passing arbitrary flags to `python setup.py install` (`#1120`_, `#1376`_; Ward Vandewege, Joseph Anthony Pasquale Holsten)
* rpm: --config-files can now copy files from outside of the package source. This means you can do things like `fpm -s gem -t rpm --config-files etc/my/config` and have `etc/my/config` come from the local filesystem. (`#860`_, `#1379`_; jakerobinson, Joseph Anthony Pasquale Holsten)
* tar: Only create `.scripts` directory if there are scripts to include (`#1123`_, `#1374`_; Thiago Figueiró)
* virtualenv: Add `--virtualenv-find-links` flag which appends `--find-links` to the `pip install` command.
* virtualenv: Add `--virtualenv-setup-install` flag to run `setup.py install` after pip finishes installing things. (`#1218`_; John Stowers)
* virtualenv: Add `--virtualenv-system-site-package` flag which creates the virtualenv in a way that allows it to use the system python packages. (`#1218`_; John Stowers)
* cpan: Fix bug preventing some perl modules from being installed (`#1236`_, `#1241`_; Richard Grainger)
* rpm: Documentation improvements (`#1242`_; Nick Griffiths)
* virtualenv: Fix a bug where `pip` might be run incorrectly (`#1210`_; Nico Griffiths)
* FreeBSD: --architecture (-a) flag now sets FreeBSD package ABI (`#1196`_; Matt Sharpe)
* perl/cpan: Fix bug and now local modules can be packaged (`#1202`_, `#1203`_; liger1978)
* perl/cpan: Add support for `http_proxy` environment variable and improve how fpm queries CPAN for package information. (`#1206`_, `#1208`_; liger1978)
* Fix crash for some users (`#1231`_, `#1148`_; Jose Diaz-Gonzalez)
* Documentation now published on fpm.readthedocs.io. This is a work-in progress. Contributions welcome! <3 (`#1237`_, Jordan Sissel)
* deb: Can now read bz2-compressed debian packages. (`#1213`_; shalq)
* pleaserun: New flag --pleaserun-chdir for setting the working directory of a service. (`#1235`_; Claus F. Strasburger)
* New source: pleaserun. This lets you create packages that will install a system service. An after-install script is used in the package to determine which service platform to target (systemd, upstart, etc). Originated from Aaron Mildenstein's work on solving this problem for Logstash. (`#1119`_, `#1112`_)
* New target: Alpine Linux "apk" packages. (`#1054`_, George Lester)
* deb: don't append `.conf` to an upstart file if the file name already ends in `.conf`. (`#1115`_, josegonzalez)
* freebsd: fix bug where --package flag was ignored. (`#1093`_, Paweł Tomulik)
* Improvements to the fpm rake tasks (`#1101`_, Evan Gilman)
* deb: Init scripts, etc/default, and upstart files are automatically added as config files in a debian package. Disable this behavior with ---deb-auto-config-files
* deb: Small changes to make lintian complain less about our resulting debs.
* rpm: File names with both spaces and symbols should now be packageable. (`#946`_, iwonbigbro)
* cpan: Now queries MetaCPAN for package info if we can't find any in the cpan archive we just downloaded. (`#849`_, BaxterStockman)
* rpm: You can now specify custom rpm tags at the command line. Be careful, as no validation is done on this before sending to rpmbuild. (`#687`_, vStone)
* cpan: Install if the package name given is a local file (`#986`_, mdom)
* sh: Metadata now available as env vars for post-install scripts (`#1006`_, Ed Healy)
* rpm: No more warning if you don't set an epoch. (`#1053`_, Joseph Frazier)
* rpm: Use lstat calls instead of stat, so we don't follow symlinks (`#765`_, Shrijeet Paliwal)
* rpm and deb: Now supports script actions on upgrades. This adds two new flags: --before-upgrade and --after-upgrade. (`#772`_, `#661`_; Daniel Haskin)
* rpm: Package triggers are now supported. New flags: --rpm-trigger-before-install, --rpm-trigger-after-install, --rpm-trigger-before-uninstall, --rpm-trigger-after-target-uninstall. (`#626`_, Maxime Caumartin)
* Allow the -p flag to target a directory for writing the output package (`#656`_, Jordan Sissel)
* Add --debug-workspace which skips any workspace cleanup to let users debug things if they break. (`#720`_, `#734`_; Jordan Sissel)
* rpm: Add --rpm-attr for controlling attribute settings per file. This setting will likely be removed in the future once rpmbuild is no longer needed. (`#719`_)
* deb: Add --deb-meta-file to add arbitrary files to the control dir (`#599`_, Dan Brown)
* deb: Add --deb-interest and --deb-activate for adding package triggers (`#595`_, Dan Brown)
* cpan: Fix small bug in handling empty metadata fields (`#712`_, Mathias Lafeldt)
* rpm: Fix bug when specifying both --architecture and --rpm-os (`#707`_, `#716`_; Alan Ivey)
* gem: Fix bug where --gem-version-bins is given but package has no bins (`#688`_, Jan Vansteenkiste)
* cpan: Improve how fpm tries to find cpan artifacts for download (`#614`_, Tim Nicholas)
* gem: Add --gem-disable-dependency for removing one or more specific rubygem dependencies from the automatically-generated list (`#598`_, Derek Olsen)
* python: Add --python-scripts-executable for setting a custom interpreter to use for the hashbang line at the top of may python package scripts. (`#628`_, Vladimir Rutsky)
* dir: Now correctly identifies hardlinked files and creates a package correctly with that knowledge (`#365`_, `#623`_, `#659`_; Vladimir Rutsky)
* rpm: Add --rpm-auto-add-exclude-directories for excluding directories from the --rpm-auto-add-directories behavior (`#640`_, Vladimir Rutsky)
* general: --config-files now accepts directories and will recursively mark any files within as config files inside the package (`#642`_, Vladimir Rutsky)
* general: If you specify a --config-files path that doesn't exist, you will now get an error. (`#654`_, Alan Franzoni)
* python: Support --python-pypi when using --python-pip (`#652`_, David Lindquist)
* deb: Tests now try to make packages ensure we don't upset lintian (`#648`_, Sam Crang)
* rpm: Fix architecture targeting (`#676`_, Rob Kinyon)
* rpm: Allow --rpm-user and --rpm-group to override the user/group even if --rpm-use-file-permissions is enabled. (`#679`_, Jordan Sissel)
* deb: Correctly handle --config-files given with a leading / (Jordan Sissel)
1.0.0 (December 5, 2013)
^^^^^^^^^^^^^^^^^^^^^^^^
* Config file of flags is now supported. Searches for $HOME/.fpm and $PWD/.fpm. If both exist, $HOME is loaded first so $PWD can override. (Pranay Kanwar)
* python: better handling of unicode strings in python package metadata (`#575`_, Bruno Renié)
* cpan: Support 'http_proxy' env var. (`#491`_, Patrick Cable)
* deb: --deb-user and --deb-group both default to 'root' now (`#504`_, Pranay Kanwar)
* deb: convert '>' to '>>' in deb version constraints (`#503`_, `#439`_, Pranay Kanwar)
* deb: Warn if epoch is set. Just so you know what's going on, since the default filename doesn't include the epoch. (`#502`_, Pranay Kanwar)
* deb,rpm: --config-files is now recursive if you give it a directory. This seems to be the most expected behavior by users. (`#171`_, `#506`_; Pranay Kanwar)
* dir: Respect -C when using path mapping (`#498`_, `#507`_; Pranay Kanwar)
* rpm: Add --rpm-ignore-iteration-in-dependencies to let you to depend on any release (aka iteration) of the same version of a package. (`#364`_, `#508`_; Pranay Kanwar)
* dir: Handle copying of special files when possible (`#347`_, `#511`_, `#539`_, `#561`_; Pranay Kanwar)
* rpm: Don't mistake symlinks as actual directories (`#521`_, Nathan Huff)
* npm: Choose an alternate npm registry with --npm-registry (`#445`_, `#524`_; Matt Sharpe)
* cpan: Choose an alternate cpan server with --cpan-mirror. Additionally, you can use --cpan-mirror-only to only use this mirror for metadata queries. (`#524`_, Matt Sharpe)
* deb: Fix broken --deb-changelog flag (`#543`_, `#544`_; Tray Torrance)
* deb: When --deb-upstart is given, automatically create an upstart-sysv symlink /etc/init.d/<name> to /lib/init/upstart-job (`#545`_, Igor Galić)
* rpm: Fix bug when generating spec file listings on files with strange characters in the names. (`#547`_, Chris Chandler)
* dir: Fix bug where the new directory mapping feature would cause you not to be able to select files with '=' in the name for packaging. (`#556`_, `#554`_; Pranay Kanwar)
* python: Fix some unicode string issues in package metadata (`#575`_, Bruno Renié)
* gem-rpm: Now respects the --gem-package-name-prefix when generating the 'rubygem(name)' provides statement (`#585`_, Stepan Stipl)
* deb: Downcase and replace underscores with dashes in 'provides' list. (`#591`_, Eric Connell)
* deb: Fix a lintian complaint about md5sums permissions (`#593`_, Sam Crang)
* cpan: Modules with 'MYMETA' files are now supported (`#573`_, Michael Donlon)
* dir: supports mapping one path to another. You set mappings by using 'source=destination' syntax. For example: % fpm -s dir -t deb -n example /home/jls/.zshrc=/etc/skel/ The key above is the '=' symbol. The result of the above will be a package containing only /etc/skel/.zshrc For more, see https://github.com/jordansissel/fpm/wiki/Source:-dir#mapping
* deb: fixed some additional complaints by lintian (`#420`_, patch by Pranay Kanwar)
* rpm: add flags --rpm-autoreqprov, --rpm-autoreq, and --rpm-autoprov to tell rpm to enable that feature in the rpm spec. (`#416`_, patch by Adam Stephens)
* COMPATIBILITY WARNING: rpm: The default epoch is now nothing because this aligns more closely with typical rpm packages in the real world. This decision was reached in `#381`_. If you need the previous behavior, you must now specify '--epoch 1' (`#388`_, patch by Pranay Kanwar)
* python: new flag --python-obey-requirements-txt which makes a requirements.txt file from the python package used for the package dependencies instead of the usual setup.py dependencies. The default behavior without this flag is to respect setup.py. (`#384`_)
* deb: new flag --deb-shlibs to specify the content of the 'shlibs' file in the debian package (`#405`_, patch by Aman Gupta)
* Add '-f' / '--force' flag to force overwriting an existing package output path (`#385`_, Timothy Sutton)
* New flag: --no-auto-depends flag to skip any automatic dependencies that would normally be added by gem, python, deb, and rpms input packages. (`#386`_, `#374`_; patch by Pranay Kanwar)
* gem: Use 'gem' command to download gems and read gem package information. (`#389`_, `#394`_, `#378`_, `#233`_; patches by Pranay Kanwar and Chris Roberts)
* rpm: dashes are now replaced with underscores in rpm version strings (`#395`_, `#393`_, `#399`_; patches by Jeff Terrace and Richard Guest)
* python: Only use the first line of a license; some python packages (like 'requests') embed their full license copy into the license field. For the sake of sanity and function with most packaging systems, fpm only uses the first line of that license.
* rpm: Add new 'none' option to --rpm-compression to disable compression entirely. (`#398`_, patch by Richard Guest)
* deb: Make dependencies using the '!=' operator represented as "Breaks" in the deb package (previously used "Conflicts"). (`#400`_)
* deb: Add md5sums to the debian packages which improves correctness of the package. (`#403`_, `#401`_; patch by Pranay Kanwar)
* rpm: Convert all '!=' dependency operators to 'Conflicts'. Previously, this only applied to packages converting from python to rpm. (`#404`_, `#396`_; patch by Pranay Kanwar)
* rpm: new flag --rpm-use-file-permissions which try to create an rpm that has file ownership/modes that exactly mirror how they are on the filesystem at package time. (`#377`_, patch by Paul Rhodes)
* general: remove empty directories only when they match the exclude pattern (`#323`_, patch by Pranay Kanwar)
* New 'source' type: empty. Allows you to create packages without any files in them (sometimes called 'meta packages'). Useful when you want to have one package be simply dependencies or when you want to spoof a package you don't want installed, etc. (`#359`_, 349; patch by Pranay Kanwar)
* solaris: Add --solaris-user and --solaris-group flags (`#342`_, Patch by Derek Olsen)
* gem: new flag --env-shebang; default true (disable with --no-env-shebang). Lets you disable #! (shebang) mangling done by gem installation. (`#363`_, patch by Grier Johnson)
* deb: fix bug on changelog handling (`#376`_, patch by mbakke)
* rpm: fix --rpm-rpmbuild-define (`#383`_, patch by Eric Merritt)
* deb: Add --deb-field for setting a custom field in the control file. For more information on this setting, see section 5.7 "User-defined fields" of the debian policy manual: http://www.debian.org/doc/debian-policy/ch-controlfields.html#s5.7
* Added --deb-changelog and --rpm-changelog support flags. Both take a path to a changelog file. Both must be valid changelog formats for their respective package types. (`#300`_, patch by Pranay Kanwar)
* deb: Multiple "provides" are now supported. (`#301`_, patch by Pranay Kanwar)
* rpm: Added --rpm-os flag to set the OS target for the rpm. This lets you build rpms for linux on OS X and other platforms (with --rpm-os linux). (`#309`_)
* rpm: Avoid platform-dependent commands in the %install phase (`#309`_, fixes 'cp -d' on OSX)
* python: ignore comments in requirements.txt (`#304`_, patch by Pranay Kanwar)
* The --directories flag is now recursive when the output package is rpm. This makes all directories under a given path as owned by the package so they'll be removed when the package is uninstalled (`#245`_, `#293`_, `#294`_, patch by Justin Ellison)
* Add fpm version info to '--help' output (`#281`_)
* gem to rpm: Use 'rubygem(gemname)' for dependencies (`#284`_, patch by Jan Vansteenkiste)
* Fix a bug in gem version mangling (`#292`_, `#291`_; patch by Pranay Kanwar)
* Fix compatibility with Python 2.5 (`#279`_, patch by Denis Bilenko)
* Fix regression in rpm building where the epoch in was missing in the rpm, but prior fpm versions defaulted it to 1. This caused rpms built with newer fpms to appear "older" than older rpms. Tests added to ensure this regression is caught prior to future releases! (Reported by eliklein)
0.4.17 (September 12, 2012)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
* Remove accidental JSON warning when using '-s python'
0.4.16 (September 6, 2012)
^^^^^^^^^^^^^^^^^^^^^^^^^^
* Fix compatibility with Ruby 1.8.7 (broken in 0.4.15)
* add --template-value. Used to expose arbitrary values to script templates. If you do --template-value hello=world, in your template you can do <%= hello %> to get 'world' to show up in your maintainer scripts.
* Make --exclude accept path prefixes as well. If you have a files in 'usr/share/man' in your package, you can now exclude all of a subdir by doing '--exclude usr/share/man'
0.4.12 (August 10, 2012)
^^^^^^^^^^^^^^^^^^^^^^^^
* Fix a major bug introduced in 0.4.11 that caused all deb packages to contain empty maintainer scripts if not otherwise specified, which made apt/dpkg quite unhappy
* rpm: relocatable rpms now supported when using the '--prefix' flag. Example: fpm -s dir -t rpm --prefix /usr/local -n example /etc/motd (patch by jkoppe)
* deb: --deb-compression flag: Support different compression methods. Default continues to be gzip.
* new flag: --template-scripts. This lets you write script templates for --after-install, etc. Templates are ERB, so you can do things like '<%= name %>' to get the package name in the script, etc.
* warn on command invocations that appear to have stray flags to try and help users who have complex command lines that are failling.
* Fix gem and python 'version' selection (`#215`_, `#204`_)
* Dependencies using '!=' will now map to 'Conflicts' in deb packages. (`#221`_, patch by Sven Fischer)
* Allow setting default user/group for files in rpm packages (`#208`_, patch by Jason Rogers). Note: This adds --user and --group flags to effect this. These flags may go away in the future, but if they do, they will be
* In python packages set 'install-data' correctly. (`#223`_, patch by Jamie Scheinblum)
* Make FPM::Package#files list only 'leaf' nodes (files, empty directories, symlinks, etc).
0.4.3 (March 21, 2012)
^^^^^^^^^^^^^^^^^^^^^^
* Fix bug in python packaging when invoked with a relative path to a setup.py (Reported by Thomas Meson, https://github.com/jordansissel/fpm/pull/180)
0.4.2 (March 21, 2012)
^^^^^^^^^^^^^^^^^^^^^^
* Set default temporary directory to /tmp (https://github.com/jordansissel/fpm/issues/174)
* Improve symlink handling (patch by Aleix Conchillo Flaqué, pull/177))
* Python package support changes (thanks to input by Luke Macken):
* New flag: --python-install-bin. Sets the location for python package scripts (default: /usr/bin)
* New flag: --python-install-lib. Sets the location for the python package to install libs to, default varies by system. Usually something like /usr/lib/python2.7/site-packages.
* Fix up --prefix support
* Improve staged package installation
0.4.1 (March 19, 2012)
^^^^^^^^^^^^^^^^^^^^^^
* Fix fpm so it works in ruby 1.8 again. Tests run, and passing: rvm 1.8.7,1.9.2,1.9.3 do bundle exec rspec
0.4.0 (March 18, 2012)
^^^^^^^^^^^^^^^^^^^^^^
* Complete rewrite of pretty much everything.
* Otherwise, the 'fpm' command functionality should be the same
* Please let me know if something broke!
* Now has an API (see examples/api directory)
* Also has a proper test suite
* Updated the rpm spec generator to disable all the ways I've found rpmbuild to be weird about packages. This means that fpm-generated rpms will no longer strip libraries, move files around, randomly mutate jar files, etc.
* Add --license and --vendor settings (via Pieter Loubser)
* python support: try to name python packages sanely. Some pypi packages are literally called 'python-foo' so make sure we generate packages named 'python-foo' and not 'python-python-foo' (via Thomas Meson)
* rpm support: Add --rpm-rpmbuild-define for passing a --define flag to rpmbuild (via Naresh V)
* PHP pear source support (fpm -s pear ...) (via Andrew Gaffney)
0.3.10 (Oct 10, 2011)
^^^^^^^^^^^^^^^^^^^^^
* Allow taking a list of files/inputs on stdin with '-' or with the --inputs flag. (Matt Patterson)
* (python) pass -U to easy_install (Khalid Goudeaux)
* (debian) quote paths in md5sum calls (Matt Patterson)
* (debian) quiet stderr from dpkg --print-architecture
0.3.9 (Sep 8, 2011)
^^^^^^^^^^^^^^^^^^^
* Fix bug in 'dir' source that breaks full paths
* Added a bunch of tests (yaay)
0.3.8 and earlier: I have not kept this file up to date very well... Sorry :(
* If present, DEBEMAIL and DEBFULLNAME environment variables will be used as the default maintainer. Previously the default was simply <$user@$hostname> https://github.com/jordansissel/fpm/issues/37
* Add '--replaces' flag for specifying packages replaced by the one you are building. This only functions in .deb packages now until I find a suitable synonym in RPM.
* Add --python-bin and --python-easyinstall flags. This lets you choose specific python and easy_install tools to use when building. Default is simply 'python' and 'easy_install' respectively.
* Add support for ~/.fpmrc - The format of this file is the same as the flags. One flag per line. https://github.com/jordansissel/fpm/issues/38. Example::