Adds in two new options to enable/disable and autostart systemd services
--[no-]deb-systemd-enable to enable the systemd service after install
--[no-]deb-systemd-auto-start to auto start the service after install
Additionally, any service start/stop/restart will use deb-systemd-invoke
wrapper if installed on the system
This should fix this error on travis:
```
Installing collected packages: virtualenv
The script virtualenv is installed in '/Users/travis/Library/Python/2.7/bin' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
```
I'm not sure why this fails, but it seems to fail mostly on newer
rpm/rpmbuild systems. Maybe my arr-pm library is incorrectly parsing
these rpms somehow? Anyway... the tests are passing now.
rubies >= 2.5 ship with JSON 2.x, so allowing bundler to resolve to newer
implementations eliminates conflicts with dependency trees that include JSON
2.x.
Breaking changes for JSON 2.x include removed support for older rubies [1],
so specifying in this manner ensures that older rubies can find 1.x, while
newer ones can resolve to 2.x
[1]: https://github.com/flori/json/blob/master/CHANGES.md#2015-09-11-200
Resolves: https://github.com/jordansissel/fpm/issues/1599
The `Replaces` field needs to be formated 'package (operator version)'.
This makes use of the `fix_dependency` method for consistent formatting
with other dependencies.
[Snaps][1] are self-contained squashfs images. Add basic support for
using them as inputs and outputs.
Typically Snapcraft is used to create snaps, but #1149 indicated a
desire to not use Snapcraft, so the snap is created natively, using
mksquashfs at the end to actually create the squashfs image. This may
not work for all use-cases (e.g. when the source doesn't already have
its dependencies bundled).
[1]: https://snapcraft.io/Resolve#1181
Signed-off-by: Kyle Fazzari <kyrofa@ubuntu.com>
If "--deb-templates" is used, fpm uses the wrong mode for this file. Since it is not an executable file, it should
not have the executable bits set. The lintian tool complains (with an error) that the mode is incorrect, and that
it should not be executable. Changing the mode to 0644 resolves this.
On input, the compression type is detected automatically. For output, the compression type is determined by the `--deb-compression` flag.
Fixesjordansissel/fpm#1540
Perl modules have both META.json and META.yml. In the JSON, the perl
dependency appears as a string `"5.004"`, but in YAML it appears as a
number `5.004`! This may cause fpm to fail when trying to convert the
perl version into a dependency, so we now always treat the perl version
as a string.
Fixes#1514
I had forgotten how I did this and couldn't find notes, so... here's
how:
```
grep -Eo '`#([0-9]+)`_' CHANGELOG.rst | sed -re 's@^`#([0-9]+)`_$@.. _#\1: https://github.com/jordansissel/fpm/issues/\1@' | sort -u > docs/changelog_links.rst
```
This finds all \`#NNN\`_ entries in the CHANGELOG.rst and puts it sorted
into changelog_links.rst for reStructuredText linking.
In order to follow best practice for Dockerfiles, this commit:
* Removes leading and trailing blank lines.
* Pins the base image to a specific version of Alpine; the latest, 3.7, is used.
* Tells `apk` to not cache any package lists.
* Puts each dependency on its own line.
* Does some minor reformatting for readability.
This will generate .changes file for Debian packages. Some Debian
repository management tools use .changes files for importing packages.
The command line option --(no-)deb-generate-changes allows to select to
generate the .changes file, the option --deb-dist allows to set a
distribution (like sid) for the package.