Commit Graph

52 Commits

Author SHA1 Message Date
Jordan Sissel 541550a74d Allow versions in `Provides` field for Debian packages
This fixes #1788. This also reverts #280. For #280, at the time, this
change to ignore versions was correct. Two years after #280, Debian
began allowing `Provides` field to have versions.

This change also fixes bug in gem-to-deb conversion where previously an
incorrect Provides syntax would be generated (but thanks to #280,
removed), so this bug was only noticed after #280 was undone!

Computers are hard sometimes.

Added tests for gem-to-deb conversion specifically for the Provides
field.

Tested manually with Docker on Ubuntu 14.04 and 18.04 and results meet
expectations.

The history here is follows:
* In 2012, fpm was patched to remove version specifiers in Provides
  field because Debian didn't support it.
* In 2014, Debian dpkg[1] added support for versions in Provides field
* Somewhere between 2015-2018, Debian and Ubuntu included this new
  version of dpkg.
* Debian packaging policy docs (v4.4.0) was updated to allow versions
  in the Provides field.

Expected impacts:
* Older versions of dpkg/etc should _ignore_ the presence of a version
  specifier. Testing on Ubuntu 14.04 confirmed this.
* Newer versions of dpkg/etc should respect the presence of a version
  specifier. Testing on Ubuntu 18.04 confirmed this.

[1] https://launchpad.net/debian/+source/dpkg/1.17.11
2021-07-06 14:25:06 -07:00
Morgan Rhodes 1f2f950581 Use `fix_dependency` when populating debian `Replaces` field (#1442)
The `Replaces` field needs to be formated 'package (operator version)'.
This makes use of the `fix_dependency` method for consistent formatting
with other dependencies.
2018-10-25 10:23:16 -07:00
TomyLobo 7e91faf92d Skip certain control file entries if their lists are empty.
For #1126
2016-06-18 04:38:28 -07:00
Nate Brown 1f4223c49f Allow removal of Vendor field for deb 2014-10-07 17:55:57 +00:00
Tray Torrance 59e7fb3f37 Add support for setting build-depends on debian targets 2013-05-23 12:31:07 -07:00
Jordan Sissel 79c2f8ef58 - fix_dependency on Conflicts and Breaks (#410)
- add test coverage for #410
2013-04-11 10:12:53 -07:00
Jordan Sissel 3726868ce2 - Represent '!=' version deps as Breaks, not Conflicts (#400) 2013-04-05 10:21:03 -07:00
Jordan Sissel cab58fac1f - Add --deb-field for setting a custom field in the deb control file
Example: --deb-field "Vcs-Git: git@github.com/some/repo.git"
2013-01-16 15:15:13 -08:00
Jordan Sissel 04a876d785 Merge pull request #310 from r4um/fix_285
Add debian Recommends and Suggests
2013-01-02 15:58:47 -08:00
Pranay Kanwar 1c7a1fcc2b Parse and fix dependencies if required 2012-12-21 23:57:29 +05:30
Pranay Kanwar 9171ae1e17 * Fix #319 Add Debian Predepends. 2012-12-21 23:47:14 +05:30
Pranay Kanwar 2f3c22e086 Add debian Recommends and Suggests 2012-12-07 18:33:19 +05:30
Pranay Kanwar ba081ac1d2 Add multiple provides correctly 2012-11-29 18:23:35 +05:30
Brett Gailey 4c1d3e3c70 Feature: no-depends option for deb and rpm 2012-11-14 14:29:07 -08:00
Andrew Bunday d52f249afe Very minor edit. Fixing an incorrectly escaped comment in the deb erb
template file. (added '-' to the end tag).

Without the edit, the template was inserting an extra blank line into the
config file. When dpkg/reprepro try to read the file the blank line is
interpreted as the end of the configuration, and the additional lines
below it cause an error.

With the edit, no additional blank line is inserted. The comment is
correctly escaped.

Signed-off-by: Andrew Bunday <andrew.bunday@gmail.com>
2012-11-09 14:58:06 +00:00
Jordan Sissel 3b0aeccb7c - fix #280 and hae a test verify it. 2012-10-26 10:37:37 -07:00
Jordan Sissel ee72521b30 - deb provides don't support versions (#280) 2012-10-26 10:30:43 -07:00
Jordan Sissel 5324ccc986 - Add --deb-priority (#232) 2012-08-25 04:10:51 -04:00
Jordan Sissel 807276c6ab Force dependency fixings (improves on #250) 2012-08-24 15:47:02 -07:00
Jordan Sissel cd87f0a42d - Add installed-size
- thin out some older and unused conditions
2012-03-08 13:30:59 -08:00
Jordan Sissel 72ce5a9b8c - hand-merge 4e2f350ae1 from master. 2012-03-02 02:14:33 -08:00
Jordan Sissel b78bd520f2 - get a bare minimum deb output working 2012-03-02 02:13:01 -08:00
Pieter Loubser 9c10b60e1b - Updated builder to include license and vendor
- Moved vendor data in debian erb
2012-02-18 17:18:07 +00:00
Pieter Loubser 72579f3389 - Added license meta data to packages
- Added vendor meta data to packages
2012-02-18 16:43:15 +00:00
Bernd Ahlers 90d6f1a1f4 Add support for deb Pre-Depends. 2011-07-26 19:18:25 +02:00
Jordan Sissel dfc06b6bcc - simplify 2011-07-08 15:48:13 -07:00
Jordan Sissel a5571f0ccf Merge branch 'bugs/deb-description-fix' 2011-07-08 00:48:55 -07:00
Jordan Sissel 12e990de51 - cleaner
- fix typo
2011-07-08 00:43:31 -07:00
Jordan Sissel 8a1b1c5dbc - fix deb descriptions for good? 2011-07-08 00:39:00 -07:00
Aman Gupta 351e791ecd fix missing newline in Provides 2011-07-08 00:34:29 -07:00
Aman Gupta ffc007d9c0 Fix erb line endings 2011-07-07 23:17:04 -07:00
Aman Gupta 92e8cb9dcc removed all trailing whitespace: for i in $(git ls-files); do sed -i tmp -e "s/ *$//" $i; done 2011-07-07 22:52:55 -07:00
Aman Gupta b077dd646b Add support for debian conflicts 2011-07-07 22:29:16 -07:00
Aman Gupta c6684c6b3c remove extra whitespace after Section name 2011-07-07 22:29:02 -07:00
Andrew J Cosgriff e86fa243cf remove bogus whitespace from debian template - it'll break a debian Packages file if it ends up in there 2011-06-28 11:12:59 +10:00
Jordan Sissel 91918e0a3d - Patch from jpluscplusm to work around misfeatures in debian's control
file regarding multiline descriptions.
2011-06-20 16:58:53 -07:00
Jordan Sissel 6799962f5d - convert to using the (still undocumented) ERB "explicit line ending"
mode '-' so we can use '-%>' to say no newline.
2011-06-18 23:22:39 -07:00
Jordan Sissel b1ebf910c4 - move main program to FPM::Program
- support an ~/.fpmrc - the syntax of this file is one flag per line.
  This file is optional.
  https://github.com/jordansissel/fpm/issues/39
- Support --replaces (only .deb supports this right now, rpm seems to
  not).
2011-05-18 00:38:55 -07:00
Jordan Sissel f1b1799d48 - default version comparison should be >=0, as '>0' is deprecated.
https://github.com/jordansissel/fpm/issues/33
2011-05-16 00:18:38 -07:00
sabowski fbc585d3bf Check for empty lines in the description field
The description field cannot contain empty lines in a debian control
file. Adds " ." to empty lines. Also removes double printing of the
description in the control file.
2011-05-06 23:49:11 -07:00
Jordan Sissel 00aed80a74 - Refactor maintainer script support.
Supports {pre,post}{install,uninstall} tasks in deb and rpm now.

maintainers scripts are now supported. However, the interface is
likely to change in the future. I want to make a universal maintainer
script format that allows you to use the same exact script in an rpm
and in a deb package.

See https://github.com/jordansissel/fpm/issues/18
2011-05-05 00:02:27 -07:00
Jordan Sissel f6f4730ee4 - add provids support to deb 2011-04-25 15:37:44 -07:00
Jordan Sissel 0cac7f906d - Add epoch support 2011-04-25 11:24:56 -07:00
Jordan Sissel 9d2fc48a96 - If the dependency given is simply "foo" convert it to be "foo (> 0)"
for debian packages. Otherwise apt-get update becomes quite sad.
2011-03-21 11:47:33 -07:00
anthezium 04c19be215 make iteration optional 2011-02-04 07:12:30 -08:00
Jordan Sissel edf7d37620 - Convert gem '~>' dependency versions to something deb understands. 2011-01-20 16:38:06 -08:00
Jordan Sissel ba9afb0088 - Fix dependency strings from gems to deb 2011-01-07 13:20:02 -08:00
Jeanine Adkisson 7e62488ebc use accessors in the templates
so the source can override them
2011-01-05 18:33:50 -08:00
Jordan Sissel 62744a8dbe - include some more paths in npm packages
- set more default values since apt-get barfs on packages with missing
  data, it seems. Hard to debug since the error messages are totally
  meaningless.
2011-01-04 01:29:15 -08:00
Jordan Sissel 3ef75dbcd5 - support dependencies again 2011-01-03 18:47:19 -08:00