Commit Graph

1343 Commits

Author SHA1 Message Date
Jordan Sissel 0b6deb762e Make --exclude on 'foo' kill any files like foo/bar/baz - #248 2012-08-14 16:03:50 -07:00
Jordan Sissel 020aed0a25 Fix a 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 2012-08-10 16:00:50 -07:00
Jordan Sissel 3fc1f58d72 - support templating package/maintainer scripts (#246)
- include test coverage
2012-08-07 10:25:13 -07:00
Jordan Sissel 832d8d7995 move erb require to top 2012-08-07 09:44:20 -07:00
Jordan Sissel 013dd087ce remove monkeypatches now that we're on a newer backports (2.6.2) 2012-08-07 09:33:48 -07:00
Jordan Sissel 7a2ab4f4aa - remove monkeypatches and upgrade to backports 2.6.2 2012-08-07 09:32:59 -07:00
Jordan Sissel 77fd8b49b3 fix missing logger 2012-08-06 02:37:45 -04:00
Matt Blair 79b2608f95 if a deb's compression type isn't specified, use gzip. 2012-07-29 19:45:58 -07:00
Matt Blair ef5f7d3b34 fix uninitialized constant errors 2012-07-29 19:28:56 -07:00
Jordan Sissel aec08417ae - fix up rpm relocatability support 2012-07-24 19:33:31 -07:00
Jordan Sissel 4f829b3373 Don't try to exclude things when no :excludes attribute is present 2012-07-24 19:33:19 -07:00
Jordan Sissel c44becf28f Merge pull request #234 from llasram/master
Better metadata-copying behavior when copying symlinks.
2012-07-21 20:51:47 -07:00
Jordan Sissel 81365423c2 - try to warn about what appears to stray flags (flags that appear after
non-flag arguments)
2012-07-21 20:50:29 -07:00
Jordan Sissel 6b7f4c59b9 - fix some failing tests introduced by #230 (regression check on quoted
filenames, etc)
- Prefer File.join() when joining paths
2012-07-21 20:49:42 -07:00
Jordan Sissel 81baf8371e Merge pull request #230 from jkoppe/master
Make rpms relocatable by respecting fpm's --prefix appropriately.
2012-07-21 20:44:52 -07:00
Jordan Sissel 106172e934 Merge pull request #236 from jimbrowne/issue-205
Remove dirs empty due to --exclude.  Issue 205.
2012-07-21 20:43:07 -07:00
Jordan Sissel b314cd1d41 Save a stat call 2012-07-10 14:51:15 -07:00
Greg Swallow 2075838aac Do not check utime on copied symlinks.
/usr/local
/rvm/gems/ruby-1.9.3-p0/gems/fpm-0.4.10/lib/fpm/package/dir.rb:121:in `utime': No such file or directory - /tmp/package-dir-staging2
0120710-20351-f4vjw7/usr/lib/libQt3Support.so (Errno::ENOENT)
	from /usr/local/rvm/gems/ruby-1.9.3-p0/gems/fpm-0.4.10/lib/fpm/package/dir.rb:121:in `copy_metadata'
	from /usr/local/rvm/gems/ruby-1.9.3-p0/gems/fpm-0.4.10/lib/fpm/package/dir.rb:111:in `copy'
	from /usr/local/rvm/gems/ruby-1.9.3-p0/gems/fpm-0.4.10/lib/fpm/package/dir.rb:79:in `block in clone'
	from /usr/local/rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/find.rb:41:in `block in find'
	from /usr/local/rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/find.rb:40:in `catch'
	from /usr/local/rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/find.rb:40:in `find'
	from /usr/local/rvm/gems/ruby-1.9.3-p0/gems/fpm-0.4.10/lib/fpm/package/dir.rb:77:in `clone'
	from /usr/local/rvm/gems/ruby-1.9.3-p0/gems/fpm-0.4.10/lib/fpm/package/dir.rb:36:in `block in input'
	from /usr/local/rvm/gems/ruby-1.9.3-p0/gems/fpm-0.4.10/lib/fpm/package/dir.rb:32:in `chdir'
	from /usr/local/rvm/gems/ruby-1.9.3-p0/gems/fpm-0.4.10/lib/fpm/package/dir.rb:32:in `input'
	from /usr/local/rvm/gems/ruby-1.9.3-p0/gems/fpm-0.4.10/lib/fpm/command.rb:248:in `block in execute'
	from /usr/local/rvm/gems/ruby-1.9.3-p0/gems/fpm-0.4.10/lib/fpm/command.rb:247:in `each'
	from /usr/local/rvm/gems/ruby-1.9.3-p0/gems/fpm-0.4.10/lib/fpm/command.rb:247:in `execute'
	from /usr/local/rvm/gems/ruby-1.9.3-p0/gems/clamp-0.3.1/lib/clamp/command.rb:64:in `run'
	from /usr/local/rvm/gems/ruby-1.9.3-p0/gems/clamp-0.3.1/lib/clamp/command.rb:126:in `run'
	from /usr/local/rvm/gems/ruby-1.9.3-p0/gems/fpm-0.4.10/bin/fpm:8:in `<top (required)>'
	from /usr/local/rvm/gems/ruby-1.9.3-p0/bin/fpm:19:in `load'
	from /usr/local/rvm/gems/ruby-1.9.3-p0/bin/fpm:19:in `<main>'
2012-07-10 17:09:46 -03:00
Jim Browne d7185811ce Don't process ancestors of non-empty dirs. 2012-06-28 17:10:09 -07:00
Jim Browne 8202756e7b Remove dirs empty due to --exclude. Issue 205. 2012-06-28 16:48:54 -07:00
Jordan Sissel aa3c8acf32 - support compression types in for data.tar in deb packages. Default
continues to be gzip. (#235)
2012-06-15 10:51:44 -07:00
Jordan Sissel c129e283ae - capture and print InvalidPackageConfiguration errors 2012-06-15 10:51:25 -07:00
Marshall T. Vandegrift e99f73c33e Include accidentally-removed suid/gid bit behavior. 2012-06-14 12:44:57 -04:00
Marshall T. Vandegrift 2247080a17 Change the owner of link, not linked file. 2012-06-14 12:38:43 -04:00
Marshall T. Vandegrift 5cc7a106e3 Don't chmod a file to the permissions of a symlink. 2012-06-14 12:31:57 -04:00
Jason Koppe 7716399445 make --prefix work with rpm output files 2012-05-29 15:17:37 -05:00
Steven Buss 6fc64443f0 Copy directory symlinks.
Linking symlinked directories causes a hardlink to be created, which
result in the source directory being wiped out during cleanup, so copy
the symlink.
2012-05-26 15:03:24 -07:00
Jordan Sissel 4b4a308d82 Merge pull request #221 from svenihoney/debian_fix_unequal
Introduced a dependency mapping for != dependency using Conflicts in deb instead of a Depends
2012-05-23 10:56:24 -07:00
Jordan Sissel c6d3ddb6bc Merge pull request #208 from jacaetevha/master
RPM user and group setting for %files section
2012-05-23 10:47:10 -07:00
Jamie Scheinblum 2fe62aac3a Set install data location to match install-lib
(distutils default is installation base dir)
2012-05-16 18:37:48 -07:00
Sven Fischer f163183626 Add != dependencies as Conflicts for debian packages
Added correct patch now.
2012-05-15 20:18:19 +02:00
Sven Fischer 8dad155e37 Introduced a dependency mapping for != dependency
There exist gems in the wild that have a dependency !=
Example is sprocket gem (at least version 2.1.3). Use a mapping
that prevents dpkg to choke on != and appended it to the conflicts.
2012-05-15 18:33:23 +02:00
Jordan Sissel 02ede4ee99 - only set permissions/ownership/times if the source and destinations
aren't pointing at the same inode.
2012-05-15 00:05:56 -07:00
Jordan Sissel c1c9510a4b - Fix versioned downloading for gem and python packages.
Tested: fpm -s gem -t deb -v 1.7.1 json
    Successfully installed json-1.7.1
  Tested: fpm -s python -t deb -v 2.1.6 simplejson
  Relevant output:
    Searching for simplejson==2.1.6
    Reading http://pypi.python.org/simple/simplejson/
    Reading http://github.com/simplejson/simplejson
    Reading http://undefined.org/python/#simplejson
    Best match: simplejson 2.1.6
    Downloading
    http://pypi.python.org/packages/source/s/simplejson/simplejson-2.1.6
    .tar.gz#md5=2f8351f6e6fe7ef25744805dfa56c0d5
    Processing simplejson-2.1.6.tar.gz

  Related tickets: #215, #204
2012-05-14 23:38:47 -07:00
Jordan Sissel 6418d324cc Handle ExecutableNotFound in a readable way for humans 2012-05-12 00:36:35 -07:00
Jordan Sissel 2f72ef6731 Merge pull request #212 from Slezhuk/master
Fixed python3 incopabilities.
2012-05-06 23:22:55 -07:00
Marshall T. Vandegrift 30988c41ea Preserve file metadata when packaging directories. 2012-05-06 08:46:44 -04:00
Jan Vansteenkiste 1a11689ccb Fixed the path_prefix to prefix to allow overriding the gem path 2012-04-26 07:31:19 +02:00
Slezhuk Evgeniy 20b2ca3e0f modified: lib/fpm/package/pyfpm/get_metadata.py
modified:   lib/fpm/package/python.rb

Added python3 support. Useful for packaging python3 projects. For example:
fpm -s python -t deb --python-bin /usr/bin/python3 myproject/setup.py
2012-04-25 16:09:48 +04:00
Jordan Sissel 4f0fcc8750 - Make gem 'provides' really provide 'rubygem-foo'
- When converting gem->rpm, turn 'rubygem-foo' provides into
  'rubygem(foo)'
2012-04-25 00:23:15 -07:00
Jordan Sissel 9963391c4b Merge pull request #198 from mv/master
Warning: already initialized constant
2012-04-25 00:12:27 -07:00
Jason Rogers fb19626b90 add setting for RPM user and group attributes in the %files section 2012-04-18 11:54:06 -04:00
Lars van de Kerkhof 47f168378a Better check for 'install_requires'. 2012-04-13 12:25:51 +02:00
Lars van de Kerkhof 8abba0bd7f don't try to parse empty install_requires 2012-04-13 12:20:57 +02:00
Lars van de Kerkhof 8aad03dbc7 Better formatting and removed duplicate dependency entries. 2012-04-12 22:26:34 +02:00
Lars van de Kerkhof 0c691ab163 Nolonger lose information whith compound specs.
When a compound spec is found, like tornado>=1.0,<=1.1 multiple entries will be
added to the dependency list:

tornado >= 1.0 and tornado <= 1.1

Because that seems to work for the debian dependency specification.
2012-04-12 22:18:23 +02:00
Lars van de Kerkhof 91cd5e1b9a Use existing --deb-ignore-iteration-in-dependencies flag to determine if dependencies should be strictly versioned or allow iteration. 2012-04-12 22:12:48 +02:00
Lars van de Kerkhof fd7468182e According to http://www.debian.org/doc/debian-policy/ch-relationships.html#s-depsyntax (= version) is valid and also that is sematically more correct than (>= version) and (<< version+1) because your +1 guess is just that, a guess. 2012-04-12 18:26:45 +02:00
Lars van de Kerkhof 2d09b8ebe6 let pkg_resources do the parsing of the specs. When multiple specs are found prefer order is "<=", "==", ">=" and next the version number. 2012-04-12 18:26:45 +02:00
Marcus Vinicius Ferreira f98dface31 Removed warnings: CONSTANT already defined. 2012-04-04 13:41:11 -03:00
Anton Cohen dce5b9f872 Fixed gem ~> version operator translated to rpm require.
In gem specs ~> is a Pessimistic Version Consrtaint that is inclusive
on the bottom end. E.g., '~> 2.2' means '>= 2.2.0 and < 3.0'.

I changed the translation to RPM spec to be >= and <. It was > and <.

http://docs.rubygems.org/read/chapter/16
http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch-advanced-packaging.html
2012-03-31 17:58:39 -07:00
Jordan Sissel 90b065958c - Make file exclusion work again. Fixes #185
This improves on the patch in #186.
- Add tests to make sure exclude stays working :)
2012-03-30 15:24:04 -07:00
Jordan Sissel e2d3c3835a - fix the --exclude flag to add to an array as ivar @excludes 2012-03-30 15:20:30 -07:00
Jordan Sissel a6eddeeccd - If no args are given, assume '.' was intended if the source is 'dir'
and chdir (-C) is set. Fixes issue #187
- Abort if there's no package name known.
2012-03-30 15:07:31 -07:00
Jordan Sissel 6ced55e58d some style cleanup 2012-03-30 09:47:10 -07:00
Jordan Sissel 64daffcbe3 Merge branch 'master' of https://github.com/MITx/fpm into MITx-master
Conflicts:
	lib/fpm/command.rb
2012-03-30 09:42:39 -07:00
Jordan Sissel 3123bd879d Improve default values for epoch and iteration on deb/rpm packages (Should fix #190) 2012-03-30 09:34:15 -07:00
Jordan Sissel 370d82779b - Add --rpm-digest and --rpm-compression flags to allow selectable
digest/compress algorithms during package building. Defaults to the
  settings that are most likely to work on the widest range of rpm
  consumers (md5 + gzip)

  Improves solution already committed for #192
2012-03-29 19:23:25 -07:00
Calen Pennington caf636f377 Move exclude functionality into the convert process, and make give it a sensible default of excluding nothing 2012-03-27 10:00:57 -04:00
Tor Arne Vestbø aa455b823f Fix attribute lookup for --deb-custom-control 2012-03-27 13:05:16 +02:00
Jordan Sissel 57f8b85f68 skip mkdir if it exists already 2012-03-26 12:21:15 -07:00
Jordan Sissel 9ec10faf20 - skip staging path (no sense in including "/" in the files list) 2012-03-26 12:20:54 -07:00
Jordan Sissel d866841f42 Make FPM::Package#files emit only leaf paths (files, symlinks, empty directories, etc) 2012-03-26 12:13:37 -07:00
Jordan Sissel bdd0d9dc84 Clone should include the path itself, no reason to skip it 2012-03-26 12:13:37 -07:00
Calen Pennington 5dc03d0495 Make the --exclude argument work by removing the excluded paths from the staging directory 2012-03-26 10:22:24 -04:00
Andrew Bennett 1437bd4147 Rename val => dep to fix local variable error. 2012-03-22 20:58:48 -06:00
Brian Akins 994cb6690d add config_files to input 2012-03-22 18:10:12 -03:00
Calen Pennington 46e14baf3c Handle packaging links better 2012-03-22 12:28:47 -04:00
Calen Pennington cb1f6b6fec Create the bin_dir so that gem will install into it, even if the version of gem being used doesn't create the directory itself 2012-03-22 11:18:34 -04:00
Jordan Sissel 2e0f6f5785 - Use the correct path ("setup.py") since we are chdiring to that file's
directory. Fixes #180
2012-03-21 09:52:11 -07:00
Jordan Sissel 8235922970 - remove 'deprecated operator' stuff, I don't think it's necessary
anymore. Python docs only list 6 operators, none include >> or <<
  http://docs.python.org/distutils/setupscript.html
  Fixes #179
2012-03-21 09:37:24 -07:00
Jordan Sissel 87538abcb8 - Add --python-install-lib and --python-install-bin flags
- improve staged installation for python
2012-03-20 23:55:43 -07:00
Jordan Sissel 09a7fcd8ab Make :flag options automatically support --no-<flag> switches 2012-03-20 23:55:43 -07:00
Jordan Sissel fbaa32583f Add more comments/logging 2012-03-20 23:55:43 -07:00
Jordan Sissel bb08688d57 use the normal tmpdir for the temporary location 2012-03-20 23:55:43 -07:00
Aleix Conchillo Flaque a696559cbf fix issues when packaging links in dir package and rpm template
* lib/fpm/package/dir.rb: File.directory? returns true if source is a
  link to a directory. This is not the desired behavior, a link should
  be kept as a link, whether it is a link for a file or a directory.

* templates/rpm.erb: check whether we are copying a link, if so, only
  copy the link not a new file.

  For the same reason as lib/fpm/package/dir.rb, links to directories
  were rejected. So, do not reject links to directories.
2012-03-20 18:49:22 -07:00
Jordan Sissel f86c23995e Patch in File::write until the next backports gem is released (fixes #175, fixes #176) 2012-03-19 14:35:58 -07:00
Jordan Sissel 559ae665d5 - Fix Dir.mktmpdir invocations to work in both ruby 1.8 and 1.9
(Fixes #175, fixes #176)
2012-03-19 14:33:18 -07:00
Jordan Sissel 47bce16cf8 - Add monkeypatches for File.write under Ruby 1.8.7 (will remove
monkeypatches once the next version of the 'backports' gem  is
  released)
  Fixes #175, fixes #176.
2012-03-19 14:32:36 -07:00
Jordan Sissel 0a6065114b Fix Find.find() calls for 1.8.7 (fixes #175, fixes #176) 2012-03-19 14:32:13 -07:00
Jordan Sissel 7038c42047 - fix missing doc comments 2012-03-19 00:17:44 -07:00
Jordan Sissel 5159767528 Fix missing doc comments 2012-03-19 00:17:36 -07:00
Jordan Sissel b2bd9a7c88 Remove unused and mysterious 'settings' method 2012-03-19 00:17:25 -07:00
Jordan Sissel a57e6adc96 Disable rpm provides hackery that doesn't belong in the gem package 2012-03-19 00:04:43 -07:00
Jordan Sissel 170c79f250 Give a proper error message to the user if FileAlreadyExists is tossed 2012-03-18 23:22:38 -07:00
Jordan Sissel d99ca9f499 Add script loading on input 2012-03-18 23:20:43 -07:00
Jordan Sissel 9f7a5e5dbf Fix script support in deb package 2012-03-18 23:20:25 -07:00
Jordan Sissel 654a970a1c - default version to 1.0 when invoked on the command line
- add support for --inputs
2012-03-18 22:56:01 -07:00
Jordan Sissel ad83721825 add doc comments 2012-03-17 16:12:35 -07:00
Jordan Sissel 56af3360de add class doc for deb 2012-03-17 15:02:41 -07:00
Jordan Sissel 0cc16d68d1 - remove i386 -> i686 arch translation. Turns out in many cases this is
incorrect. Debian is confusing.
2012-03-15 17:42:22 -07:00
Jordan Sissel fc1aa1d4ff - Add support for config files, conflicts, and provides. 2012-03-15 00:55:05 -07:00
Jordan Sissel e9995a93e6 Deprecate old --{pre,post}-{un,}install flags in favor of --{before,after}-{install,remove}. 2012-03-15 00:54:14 -07:00
Jordan Sissel 527a3b3cb5 spacing 2012-03-14 23:28:26 -07:00
Jordan Sissel db13e48301 - Add specs for the gem package 2012-03-14 23:26:58 -07:00
Jordan Sissel 8f43e639a8 - add package_name_prefix flag to python package
- add --python-fix-name and --python-fix-dependencies flags which allow
  you to disable 'name fixing' that turns 'foo' into 'python-foo'
  (requested by Luke Macken)
- use attributes where possible (easyinstall path, python path, etc)
2012-03-15 00:52:14 +00:00
Jordan Sissel c5dd9a8c00 - comment cleanup 2012-03-15 00:18:02 +00:00
Jordan Sissel 2d363a670f Make 'options' with defaults appear set in a package's #attributes hash even if we are running programmatically (not via command line) 2012-03-15 00:17:53 +00:00
Jordan Sissel 742faaefe8 - insist doesn't work in ruby 1.8 yet. 2012-03-11 13:58:39 -07:00
Jordan Sissel 1f448e786a Put each downloaded python package into a separate subdirectory. This allows multiple to be downloaded at once. Tested with: fpm -s python -t deb -n graphite carbon whisper graphite-web 2012-03-09 17:39:41 -08:00
Jordan Sissel dbd551c636 Add default #to_s (for package filename) based on observations of real rpm packages in the wild 2012-03-09 17:38:18 -08:00
Jordan Sissel cb05d02819 Add default #to_s (for package filename) based on observations of real deb packages in the wild 2012-03-09 17:38:07 -08:00
Jordan Sissel e0d3b606d4 - Default '--package' to nil. This will let the package implementations
choose the best default filename to output
2012-03-09 17:36:54 -08:00
Jordan Sissel fff76ba048 Add 'ITERATION' to #to_s 2012-03-10 00:58:05 +00:00
Jordan Sissel deedcfeedb add FileAlreadyExists error 2012-03-10 00:12:16 +00:00
Jordan Sissel cb88629302 - fix contents of 'debian-binary' file (was missing trailing newline)
- support --edit flag
- abort if the output file target already exists
- public :converted_from for api completeness
2012-03-10 00:11:16 +00:00
Jordan Sissel 778cd62446 - more hacks for debian's arch naming 2012-03-09 15:15:10 -08:00
Jordan Sissel 2540d157b1 fix arch name translation for deb packages when 'dpkg' is not available 2012-03-09 13:26:21 -08:00
Jordan Sissel 2746ad891f expose #architecture from RPM 2012-03-09 21:22:46 +00:00
Jordan Sissel d00f617606 default arch should be native 2012-03-09 21:20:22 +00:00
Jordan Sissel 2a667da27e expose boolean attributes as well 2012-03-08 18:08:06 -08:00
Jordan Sissel 18f4f3e0af Add --edit support 2012-03-08 18:02:27 -08:00
Jordan Sissel 83468ec209 - try to make pear work as non-root 2012-03-08 17:41:21 -08:00
Jordan Sissel b6fdfa96df - move pear package type to new api 2012-03-08 17:21:47 -08:00
Jordan Sissel ae1e1c4b00 style 2012-03-08 17:05:57 -08:00
Jordan Sissel 20943ee491 - Finish converting python package to the new api. 2012-03-08 17:05:49 -08:00
Jordan Sissel fd659e456a fix some defaults 2012-03-08 17:04:48 -08:00
Jordan Sissel 8ef036565b improve logging 2012-03-08 16:07:23 -08:00
Jordan Sissel 9d54e7335f - fix typos in tar output method, tar output works now. 2012-03-08 16:07:03 -08:00
Jordan Sissel 33b511684a - fix minor build path problem
- default epoch to nil if not present (not all packages have it)
2012-03-08 16:06:20 -08:00
Jordan Sissel 9ed9e2f8aa - tar input works 2012-03-08 16:01:46 -08:00
Jordan Sissel 84352667fa - Add dependency parsing from deb packages on input
- specs passing
2012-03-08 15:21:38 -08:00
Jordan Sissel c3e9cde53c - make 'input' work for deb packages
- improve --installed-size docs
2012-03-08 13:30:26 -08:00
Jordan Sissel 5e5da07ea2 split the cleanup methods since only cleanup_staging is needed during conversion 2012-03-08 13:29:43 -08:00
Jordan Sissel 46db2b7893 add fix for debian's 64bit x86 naming 2012-03-08 13:29:13 -08:00
Jordan Sissel ae06ab4212 clean up how flags can override input attributes 2012-03-08 13:28:52 -08:00
Jordan Sissel a0cfda9d7a - rpm epoch is an array of numbers? uhh.. ok
- 'rpm' -> 'arr-pm' lib path
2012-03-08 10:16:53 -08:00
Jordan Sissel 5e734a541e - fix spec checking for rpm 'name'
- fix rpm 'defines' default
2012-03-08 09:32:12 -08:00
Jordan Sissel 0b29c9a5d7 - Call package scripts by less-typo-able names (after_remove vs post_uninstall) 2012-03-08 07:49:44 -08:00
Jordan Sissel a6aa2fe83e - more work aligning the deb package class with the new API 2012-03-08 07:49:02 -08:00
Jordan Sissel a4d48cef90 move class methods to bottom 2012-03-08 00:02:59 -08:00
Jordan Sissel c0566bb424 - fix staging dir dangling around. 2012-03-03 17:38:16 -08:00
Jordan Sissel c125e0339f Don't set a default license/vendor anymore 2012-03-03 00:41:04 -08:00
Jordan Sissel 7cab011094 - The 'dir' package has no metadata, so provide some defaults 2012-03-03 00:40:51 -08:00
Jordan Sissel 3a64ee9af1 Add --rpmbuild-define previously available in fpm 2012-03-03 00:40:24 -08:00
Jordan Sissel 23f812e55a - document attributes 2012-03-03 00:38:08 -08:00
Jordan Sissel 8a51745466 - Use new package flag/attributes 2012-03-03 00:04:10 -08:00
Jordan Sissel ae4228f273 - make all program flags appear as package attributes.
This lets package and command flags accessible in packages.
2012-03-02 23:58:43 -08:00
Jordan Sissel ef713a6dfd remove old pry usage 2012-03-02 23:58:06 -08:00
Jordan Sissel 9ab4a7664b - make package flags turn into attributes 2012-03-02 22:42:58 -08:00
Jordan Sissel 257e73d5a6 - turn package flags into attributes 2012-03-02 22:42:39 -08:00
Jordan Sissel 41f345b1f8 - only build a binary package. source package is silly. 2012-03-02 18:49:28 -08:00
Jordan Sissel fb3b36ade2 - when inputting an rpm, pull relevant package data out
like the package name, architecture, dependencies, etc.
2012-03-02 18:21:53 -08:00
Jordan Sissel 1b808c0bd8 - remove extra debugging 2012-03-02 18:21:42 -08:00
Jordan Sissel 6526f54a8c - only use flag values if they are given 2012-03-02 18:19:42 -08:00
Jordan Sissel 094a1b7c23 - Vicotry. Tests are passing again. 2012-03-02 15:55:34 -08:00
Jordan Sissel 91799dcf36 - set defaults for license/etc. This will likely change again soon oce
I figure a good way to clarify default values.
2012-03-02 12:09:38 -08:00
Jordan Sissel e0d7601ec6 - better input validation 2012-03-02 02:53:17 -08:00
Jordan Sissel 6a2c524592 - all plugins found in fpm/package/*.rb
- apply options to the command
2012-03-02 02:45:10 -08:00
Jordan Sissel 735a7238ce - allow package subclasses to define command-line flags 2012-03-02 02:44:30 -08:00
Jordan Sissel 040da7ff0b - clean up docs and requires 2012-03-02 02:44:12 -08:00
Jordan Sissel a488ac515f use new options goodness 2012-03-02 02:44:00 -08:00
Jordan Sissel ade423ddae - purge old deb source (that was actually just a copy of the deb
target?)
2012-03-02 02:17:11 -08:00
Jordan Sissel fd80216543 - add deb work in progress 2012-03-02 02:16:44 -08:00
Jordan Sissel b78bd520f2 - get a bare minimum deb output working 2012-03-02 02:13:01 -08:00
Jordan Sissel f40e27e2ba - move to FPM::Package namespace.
- capitalize acronyms like NPM and PEAR
2012-03-02 01:24:25 -08:00
Jordan Sissel 30fca1871b purge old stuff 2012-03-02 01:24:23 -08:00
Jordan Sissel 1c12468c50 - consolidate the remaining old fpm things into package/ 2012-03-02 01:21:05 -08:00
Jordan Sissel 26c06d3c8a - style and docs 2012-03-02 01:20:49 -08:00
Jordan Sissel 18e3573c4b - remove old flags helper, won't need it soon. 2012-03-02 01:11:15 -08:00
Jordan Sissel 1a35c60a88 remove old requires 2012-03-01 23:35:33 -08:00
Jordan Sissel a156ff2a59 remove old fpm program code 2012-03-01 23:35:26 -08:00
Jordan Sissel 84f01aa423 - fix some broken tests 2012-03-01 23:35:03 -08:00
Jordan Sissel 0826b44468 - Get things together enough that this works again:
fpm -s dir -t rpm -d "zsh" -n testing ~/.zshrc
- Move to using clamp instead of optparse
2012-03-01 23:17:38 -08:00
Jordan Sissel 43b84c2f80 - purge pre-refactor stuff
- move python package to  new api
2012-02-29 22:26:03 -08:00
Jordan Sissel 6eccfbce31 - Improve package API stuff (add 'converted_from' etc)
- Gem to RPM conversions work. Even multiple-composition of gem+gem+gem
  -> rpm works
2012-02-29 17:14:45 -08:00
Jordan Sissel 493f2ad6b3 remove fpm/rubyfixes 2012-02-29 09:00:08 -08:00
Jordan Sissel e3215d79c5 - use ruby backports! 2012-02-29 08:59:07 -08:00
Jordan Sissel d05c332455 - Start work on rpm support using my pure-ruby rpm library. 2012-02-24 01:21:12 -08:00
Jordan Sissel 86a88dbaf5 - disable unused pre-refactor requires 2012-02-24 01:20:45 -08:00
Jordan Sissel 7d333b11a7 - start major refactoring. Design first, this time. With tests. 2012-02-22 23:59:31 -08:00
Jordan Sissel 8bb3fcfb7d Merge pull request #157 from ploubser/master
Added vendor and license meta data to rpm and deb packages
2012-02-20 12:40:07 -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
Jordan Sissel df5ae16470 Moved to 'ruby-arr-pm' project 2012-02-17 22:22:06 -08:00
Andrew Gaffney c0a33870ab Add PEAR support 2012-02-03 12:38:37 -08:00
Jordan Sissel 59e31965b7 Merge pull request #146 from zllak/bug/deb
Try to make packages built from python sources sanely named.
2012-02-02 08:08:25 -08:00
Jordan Sissel b851c3a220 Merge pull request #149 from nareshov/rpmbuild-define
forgot to include the defines method for upstream merge
2012-02-02 08:05:34 -08:00
Naresh V c20cf60f87 forgot to include the defines method for upstream merge 2012-02-02 19:15:51 +05:30
Thomas Meson 1d5e675c65 clarify with a comment the package name sanitization 2012-01-27 11:24:41 +01:00
Thomas Meson 11cdab4a28 avoid removing the "python" in a package name if not followed by a dash
Example is "pythonweb", which would have been put as a dependency as
"python-web", instead of "python-pythonweb"
2012-01-26 16:49:12 +01:00
Thomas Meson 75f93cc7c9 sanitize output python package name
When building python deb packages from PyPI, some packages starting with
python- will end up being named python-python-xxx.
So, this commit avoid adding the prefix+suffix before the package name
2012-01-26 16:48:41 +01:00
Thomas Meson d338ad21c5 do not add the prefix "python" if already in the dependency name
Packages found on PyPI can be named "python-xx" (like python-dateutil).
This was building packages with "python-python-dateutil" as dependency
2012-01-24 18:30:41 +01:00
Thomas Meson 2537eddc9c handles correctly dependencies versions from setup.py
Something, dependencies can be: python-dateutil>=1.5.0,<2.0.0
This case was not supported, and was building wrong packages.
2012-01-24 18:30:41 +01:00
Jordan Sissel 07e023c0ff Merge pull request #137 from rajatvig/master
Fixed the issues for Gems when making RPM's
2011-12-20 11:23:22 -08:00
Rajat Vig 39c07adf11 fixed the failures on sprockets, faraday, polyglot and sinatra 2011-12-21 00:15:40 +05:30
Naresh V 886c878eaf Add new option to pass --define arguments to rpmbuild. 2011-12-20 16:14:07 +05:30
Matt Blair b03bf429dc Make a comment accurate. 2011-12-14 16:17:15 -08:00
Jordan Sissel fb284ce242 Merge pull request #134 from pjjw/osx-fixes
add'l osx fixes
2011-12-11 11:02:40 -08:00
Peter Woodman 8d9d5a9b6b pull FPM::Source#tar_cmd into util.rb, use tar_cmd to generate dpkg control file, use numbers for owner/group 2011-12-10 23:38:28 -08:00
Peter Woodman 27f22833e4 Merge branch 'master' into osx-fixes 2011-12-10 23:33:15 -08:00
Peter Woodman 076a143a3b fix tests on osx 2011-12-10 22:49:29 -08:00
Devon Peters efbc9e2db6 enable setting BASEDIR for Solaris packages, via --prefix 2011-12-09 11:57:41 -08:00
Emmanuel Bastien 3a0bee03fa Fix wrong arguments split on safesystem call. 2011-12-04 14:14:13 +01:00
Emmanuel Bastien cf7d3acb87 Merge from master; rewriting calls to safesystem(). 2011-12-04 13:40:33 +01:00
Jordan Sissel ea172e60e0 Merge pull request #126 from ohookins/config_files
Allow RPM generation to specify configuration files.
2011-12-03 22:19:47 -08:00
Jordan Sissel 2334c3a878 Merge pull request #128 from dpeters/option_parsing
Catch basic option parser exceptions
2011-12-03 22:19:15 -08:00
Jordan Sissel 277c9fab9e Merge pull request #123 from ohookins/inputs_file
Allow --inputs to actually work.
2011-12-03 22:17:48 -08:00
Christian G. Warden 518cfc61d9 Pass arguments to system more safely
Pass each argument to (safe)system separately in case paths contain
spaces or other characters that might cause the shell to interpret a
single argument as multiple arguments.
2011-12-01 18:10:18 -08:00
Devon Peters 0ce2496edb Catch basic option parser exceptions, and show the usage message instead of a stack trace. 2011-11-29 13:39:28 -08:00
Emmanuel Bastien ceeddf73ef Add support for debconf. 2011-11-29 13:59:29 +01:00
Oliver Hookins 8afaa2fc67 Pull path mangling logic out of template and correct it. 2011-11-24 23:44:05 +01:00
Oliver Hookins b04ba73dfc Allow RPM generation to specify configuration files. 2011-11-24 00:15:33 +01:00
Oliver Hookins df8c2e8703 Allow --inputs to actually work. 2011-11-17 09:06:26 +01:00
Oliver Hookins 30a3374aa8 This should be an instance variable. 2011-11-17 00:32:50 +01:00
Jordan Sissel 2ccb41570d Merge pull request #112 from pjjw/osx-fixes
Fix tar command on OSX, skip .deb md5sums creation
2011-10-27 00:26:53 -07:00
Jordan Sissel 46090cf771 - style cleanup 2011-10-24 17:34:45 -07:00
Eric Sorenson af77c4f1d6 Add (maybe?) support for --iteration to rpm output.
The rpm equivalent of iteration is 'release', and it defaults to 1
unless overriden by the user.
2011-10-24 16:46:09 -07:00
Peter Woodman 5eed9bba2e skip md5sums creation on osx 2011-10-18 21:40:54 -07:00
Peter Woodman 237c70deb1 point to gnutar for the tar binary on osx 2011-10-18 21:30:54 -07:00
Jordan Sissel 60c4da17a9 - quiet stderr from dpkg --print-architecture 2011-10-11 12:46:59 -07:00
Jordan Sissel 35edea0b0d Merge pull request #111 from fidothe/spaces-in-filenames
md5sum errors when files in the package have spaces in their name
2011-10-11 12:05:00 -07:00
Matt Patterson 1a5ba04543 Quote path handed to md5sum by Builder so we don't choke on filenames with spaces in 2011-10-11 15:14:49 +02:00
Matt Patterson 9d4e7f7191 Accept a list of paths to package in --inputs, or from STDIN by passing - as the only argument 2011-10-11 15:01:35 +02:00
Khalid Goudeaux e3f57454c4 pass -U to easy_install to always fetch package
When calling easy_install with a build directory
on a machine/environment where the target package is
already available, include -U to force the package
to be redownloaded.

Otherwise, easy_install does nothing and fpm errors
out with:
Unexpected directory layout after easy_install
2011-09-26 12:11:29 -05:00
Jordan Sissel e6c5953720 - don't prefix with './' not needed. Tests verify. 2011-09-08 10:29:53 -07:00
Chris Andrews 78015580b8 Restore support for multiple specified paths in the Dir source.
Only the first specified path was being used once prefixed with ./
where all should have been used.

This broke an invocation of the form:

fpm -s dir \
    -t rpm \
    -n mypkg \
    -v 1.0 \
    -C pkg \
    dir1 dir2 dir3

where only pkg/dir1 would be tarred up, leading to complaints from rpm.
2011-09-08 11:53:12 +01:00
Krzysztof Wilczynski 0fa3a26baa Fix name of the variable.
Should be "path" not "paths".

Signed-off-by: Krzysztof Wilczynski <krzysztof.wilczynski@linux.com>
2011-09-04 20:42:44 +01:00
Krzysztof Wilczynski 86347c2893 Consolidate all changes under one commit.
Signed-off-by: Krzysztof Wilczynski <krzysztof.wilczynski@linux.com>
2011-09-03 02:29:54 +01:00
Corry Haines dac445319b Remove dashes from the version in rpm targets
RPMs do not allow dashes in the main part of the version string.

We need to test @version because some sources (I am looking at you gem)
set version to a Fixnum, and others to a String.
2011-08-23 14:56:44 -07:00
Jordan Sissel d8312ebf27 - stylefix 2011-08-19 18:32:54 -07:00
Jordan Sissel 602772d2b0 Merge branch 'master' of github.com:jordansissel/fpm 2011-08-19 18:32:30 -07:00
Jordan Sissel fd63a3eeb2 - Add flag --gem-gem to specify the path to the 'gem' tool
Default is 'gem' and uses $PATH
  https://github.com/jordansissel/fpm/issues/85
2011-08-19 18:31:50 -07:00
Jordan Sissel 117ee5011a Merge pull request #81 from bernd/master
Add deb Pre-Depends support
2011-08-19 18:19:56 -07:00
Jordan Sissel e3930f030f - Merge https://github.com/jordansissel/fpm/pull/79 by hand. 2011-08-19 18:16:24 -07:00
Jordan Sissel a236eb091e Merge pull request #88 from tabletcorry/master
Adds gem prefix and safesystem
2011-08-19 18:14:14 -07:00
Jordan Sissel 807bf1eb78 Merge pull request #93 from ration/master
Use -E in gem install command
2011-08-19 18:11:29 -07:00
Jordan Sissel c7e12b35bc - clean up and catch null case 2011-08-19 18:09:26 -07:00
David Dollar e792c1c042 make sure we have a description 2011-08-19 21:05:18 -04:00
Tatu Lahtela bc52019d6b add use shebang option 2011-08-19 11:25:30 +03:00
Corry Haines 43c1a94a52 Add --python-package-prefix option
Allows the prefix of packages to change to a user specified value.

Useful if you do not want to conflict with other python packages,
or want to install to a special ruby instance
2011-08-17 19:17:15 -07:00
Jordan Sissel d57dea5fd0 - remove 'replaces not supported' warning (issues/91) 2011-08-13 17:19:23 -07:00
Corry Haines b8e6202eab Add "safesystem" function
Basically, its a replacement for system. If the command fails, then
it raises an exception and prints out the entire command that was
attempted.

This will prevent issues where fpm finished (with return code 0) and
produces an artifact with real size (>0 bytes) but the artifact
is worthless as it contains nothing.

Fixes #86
2011-08-01 20:35:56 -07:00
Corry Haines 5874596c89 Add --gem-package-prefix option
Allows the prefix of packages to change to a user specified value.

Useful if you do not want to conflict with other rubygem packages,
or want to install to a special ruby instance

Fixes #84
2011-07-28 10:56:24 -07:00
Jeanine Adkisson 9d1bffd691 proposed fix for issue #82 2011-07-27 15:21:53 -07:00
Bernd Ahlers 90d6f1a1f4 Add support for deb Pre-Depends. 2011-07-26 19:18:25 +02:00
Pierre Carrier 09ebd8b744 pyfpm: compatible with Python 2.5 + Lenny's python-json 2011-07-26 00:27:21 +02:00
Pierre Carrier 2fdbaeaf01 builder.rb: handle standard files as sources 2011-07-26 00:27:21 +02:00
Aman Gupta 9d31c4b023 debian control.tar.gz contents use ./ prefix 2011-07-26 00:27:21 +02:00
Brian Pitts 94689018a3 Add support for tarballs compressed by XZ 2011-07-12 11:15:19 -07:00
Jordan Sissel f81d47c2f6 Merge pull request #71 from rcrowley/deb-md5sums
Return complete list of MD5 sums from checksum
2011-07-11 18:17:10 -07:00
Pierre Carrier 456eb3fb29 python.rb: better error if easy_install isn't installed 2011-07-08 19:20:24 +02:00
Richard Crowley af4c012109 Return complete list of MD5 sums from checksum.
Before this patch, the method almost correctly computed the list of MD5 sums but returned the result of calling paths.each, not the md5sums list.  Now paths.collect.flatten is the return value.

The find(1) call was changed slightly to use the %P formatter so the output lines look like this:

	0123456789abcdef0123456789abcdef path/to/file

Instead of this:

	0123456789abcdef0123456789abcdef ./path/to/file

The difference is cosmetic but looks like everyone else's packages.
2011-07-08 14:11:24 +00:00
Aman Gupta a6c7c314bb Merge remote-tracking branch 'origin/master' into brew2deb-backports
Conflicts:
	lib/fpm/target/deb.rb
2011-07-08 00:36:04 -07:00
Jordan Sissel e5891573e8 Merge branch 'master' of github.com:jordansissel/fpm 2011-07-08 00:14:40 -07:00
Jordan Sissel 71dd690acb - deb packages let you specify 'or' in deps (pipe, '|'). Let it work. 2011-07-08 00:13:09 -07:00
Aman Gupta 8ddf448742 Merge remote-tracking branch 'origin/master' into brew2deb-backports
Conflicts:
	lib/fpm/target/deb.rb
2011-07-07 23:57:48 -07:00
Aman Gupta 8cf6e4fd93 Handle complex deb dependencies (fixes #70) 2011-07-07 23:37:23 -07:00
Aman Gupta 4518db757d Rename to --config-files and add some help 2011-07-07 23:33:58 -07:00
Aman Gupta 7c1be2d3fd do not include epoch version in generate .deb filenames 2011-07-07 23:08:02 -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 35a2ed46d3 convert tabs and remove trailing whitespace 2011-07-07 22:47:45 -07:00
Aman Gupta ea31691dee add support for specifying configuration files in debian packages 2011-07-07 22:37:47 -07:00
Aman Gupta 7786bc583d Pass through --category to set debian Section 2011-07-07 22:32:58 -07:00
Aman Gupta b077dd646b Add support for debian conflicts 2011-07-07 22:29:16 -07:00
Jordan Sissel 5d7cad764c - replace underscores with dashes in dependencies
This should fix: https://github.com/jordansissel/fpm/issues/65
2011-07-07 20:55:05 -07:00
Jordan Sissel 904669b4b5 - If install_requires is just a string, make it an array.
Fixes: https://github.com/jordansissel/fpm/issues/66
2011-07-07 20:47:22 -07:00
Ted Cooper 84d4572c4f missing parens 2011-07-07 14:35:57 -04:00
Ted Cooper ba2d9eaf06 * added command-line option to make generated debs' dependencies
ignore iterations
* in order to accomplish this, added framework similar to that in
FPM::Source to FPM::Package to support plugin-specific command-line
options and pass corresponding params to FPM::Package constructor
to be made available as an instance variable
* also fixed bug (probably due to recent refactoring) that broke help
* also fixed spelling error
2011-07-07 14:03:18 -04:00
Jordan Sissel 8512dcd66a - patch from alcy for https://github.com/jordansissel/fpm/issues/61 2011-06-27 18:48:58 -07:00
Jordan Sissel 181220c06c Merge pull request #58 from bulletproofnetworks/master
Fix inconsistent RubyGems behaviour when using --binpath option
2011-06-24 17:11:32 -07:00
Jordan Sissel 7b34efe276 - make it work in ruby 1.8.6 2011-06-24 10:13:46 -07:00
Bruno Grasselli 9387c54ace Porting fpm to ruby 1.9 2011-06-24 12:58:18 -03:00
Lindsay Holmwood e3fb7939d6 Explicitly mkdir -p the temporary bin path. Fixes #27.
- It's a guess, but I think that various releases of RubyGems don't
   create the path specified by --bindir.
 - This patch covers the inconsistent behaviour in RubyGems.
2011-06-24 12:05:15 +10:00
Lindsay Holmwood 692e79bcba Removed trailing whitespace 2011-06-24 12:04:05 +10:00
Jordan Sissel 7342cfa119 - Fix spurious 'find' warning message
https://github.com/jordansissel/fpm/issues/50
2011-06-20 23:38:45 -07:00
Jordan Sissel 8b7fd7635e - improve the error message when you give an invalid target or source
- clenaed up unused code in target/puppet
2011-06-20 23:27:41 -07:00
Jordan Sissel 4db6f46088 - some code cleanup
- source rpm => target puppet works now
2011-06-20 23:00:18 -07:00
Jordan Sissel 553e01aa2f - previous commit missed some files; adding features to allow generating
multiple files from 'specfile' phase.
2011-06-20 19:33:27 -07:00
Jordan Sissel 9e9f8a6c29 Merge branch 'feature/puppet' of github.com:jordansissel/fpm into feature/puppet 2011-06-19 22:17:34 -07:00
Jordan Sissel ca6d3c4927 - downcase dependency names, too 2011-06-19 22:13:48 -07:00
Jordan Sissel cf920bb50f - work-in-progress making it so you can conver rpms to puppet modules. 2011-06-19 01:15:00 -07:00
Jordan Sissel 64c28c41eb - seems to work. Missing a few features, but it works :) 2011-06-19 00:17:49 -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 2a063a831e - add stubs 2011-06-18 22:57:26 -07:00
Jordan Sissel 7bed50ebb8 - start working on https://github.com/jordansissel/fpm/issues/51 2011-06-18 22:11:03 -07:00
Jordan Sissel 02ba8287fb - deb: downcase the package name if it's uppercase, but still warn about it.
- deb: Replace underscores '_' with dashes '-'
  https://github.com/jordansissel/fpm/issues/48
2011-06-15 09:20:25 -07:00
Jordan Sissel 7fbe3d4cc7 - add {pre,post}install support 2011-06-15 07:40:52 +00:00
Jordan Sissel e2b750e6df - only wrap system() if we're in debug mode
- fix a bug in dir target regarding handling "." and "./"
- clean up some verbosity
- solaris: parse pkgproto output ourselves
2011-06-15 07:20:05 +00:00
Jordan Sissel d3b8bd5e76 - solaris package building works.
Big thanks to Ben Rockwood for giving me access to a Joyent Solaris
  system so I could make this happen.
2011-06-15 07:05:24 +00:00
Jordan Sissel 4a2dc3931e - Start working on a solaris package type.
- md5sums aren't needed by most packages, disable it by default.
  In the future, should move the md5sums generator to the .deb package
  target and keep it away from other stuff.
2011-06-15 06:20:36 +00:00
Jordan Sissel a3c0d188fe - abort if someone tries to build a .deb package with a capital letter
in the name.

  Fixes: https://github.com/jordansissel/fpm/issues/43
2011-06-08 18:52:55 -07:00
Adam Jacob c78dedb799 Adding iteration as a settable field 2011-05-30 10:39:32 -07:00
Jordan Sissel 378699fe35 fizzlesticks 2011-05-19 20:45:33 -07:00
Jordan Sissel 15d69551e8 - add 'tar' source support. 2011-05-19 20:23:01 -07:00
Jordan Sissel b22c299d95 - oops. 2011-05-18 01:24:37 -07:00
Jordan Sissel ea78fd34b9 - add changelist! 2011-05-18 01:22:45 -07:00
Jordan Sissel c5d218fcd4 - use DEBEMAIL and DEBFULLNAME from environment as the default
maintainer. https://github.com/jordansissel/fpm/issues/37
- remove some print statements that we don't need
2011-05-18 01:17:01 -07:00
Jordan Sissel 317c69f2bd - Add new flags for the python source:
--python-bin - path to the python binary you want to run
  --python-easyinstall - path to the easy_install script you want to use
  https://github.com/jordansissel/fpm/issues/38
2011-05-18 01:08:35 -07:00
Jordan Sissel 92fdaebdb6 - forgot to commit this. 2011-05-18 00:49:59 -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 952ff93aff - Add general way for source plugins to add flags specific to that
plugin. For now, only 'gem' uses this.
- Add flag --gem-bin-path to install a gem's executables to a specific
  place. Some folks like /usr/bin, so, package puppet with bins there:
  * fpm -s gem -t deb --gem-bin-path /usr/bin puppet

  The original implementation for this bin-path flag was by lassizci.
  https://github.com/jordansissel/fpm/pull/27
2011-05-17 00:17:22 -07:00
Jordan Sissel 33f77bbab2 - sometimes 'install_requirements' can be None. 2011-05-16 19:49:21 -07:00
Jordan Sissel 219fe803e5 - fix path if relative 2011-05-16 18:55:16 -07:00
Jordan Sissel bac9ee1131 - support version-specific downloads for python 2011-05-16 18:52:46 -07:00
Jordan Sissel d06d8e3140 - fix dep regexp to permit package names without version conditions 2011-05-16 18:33:27 -07:00
Jordan Sissel aeb3d4c7e8 - Add python packaging support.
* Uses 'easy_install' to download packages from pypi.
  * You can also give the path to a setup.py to use if you already have
    the project locally.
  * Automatically chooses 'native' or 'all' arch depending on whether
    the python project has C extensions
2011-05-16 18:18:04 -07:00
Jordan Sissel b3ebc06ff5 - factor out the rpm bits into separate class files
- include all known rpm 'tag' types
2011-05-14 00:49:46 -07:00
Jordan Sissel 1a2d3369d0 - Refactor architecture selection.
Unless specified, the arch is selected automatically.
  The default arch is "native"

  Also support "native" and "all" strings which are converted to the
  appropriate values for the target packages.
    "all" will become "noarch" for rpms (stays as 'all' for deb)
    "native" will become amd64 or i386 for deb (or other)
    "native" will become the output of 'uname -m' for rpm.

  If the source is a gem, and the gem has no extensions (ruby C code),
  default to "all". If it has C extensions (like eventmachine and
  sqlite3 gems), then the arch defaults to "native"

  This resolves:
  https://github.com/jordansissel/fpm/pull/29
  https://github.com/jordansissel/fpm/issues/25
  https://github.com/jordansissel/fpm/issues/14
2011-05-12 21:20:25 -07:00
Jordan Sissel a8be482afa - move rpm multiline-description fix to just the rpm template 2011-05-11 15:52:59 -07:00
Jordan Sissel 3c803c9eda Merge branch 'master' of github.com:jordansissel/fpm 2011-05-11 15:49:32 -07:00
Jordan Sissel 42c0bfbcb2 - add TODO 2011-05-11 15:49:08 -07:00
Curt Micol d9bb28db22 Remove superfluous url accessor. 2011-05-11 11:56:21 -04:00
Curt Micol c7078b2967 Adds --url as a command line option. 2011-05-11 11:47:05 -04: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
Thomas Haggett 380caa0635 Build .deb files with postinst and prerm scripts burned in. 2011-05-01 11:20:36 +01:00
Jordan Sissel e72fc738d7 - @paths is an array 2011-04-26 01:00:17 -07:00
Jordan Sissel b16f38853c - Make 'gem' source obey --prefix (issues/21) 2011-04-26 00:25:54 -07:00
Jordan Sissel 59ee089f91 - add --provides flag and support into rpm target 2011-04-25 13:40:47 -07:00
Jordan Sissel 749cafa047 - include epoch value in filename output by default 2011-04-25 11:43:14 -07:00
Jordan Sissel f46a9bf52e Merge branch 'master' of github.com:jordansissel/fpm 2011-04-25 11:25:12 -07:00
Jordan Sissel 0cac7f906d - Add epoch support 2011-04-25 11:24:56 -07:00
Jordan Sissel b083c29482 - add todo 2011-04-14 22:17:46 -07:00
Jordan Sissel cd9000b41f - Actually obey maintainer settings (previously we ignored it entirely)
Fixes: https://github.com/jordansissel/fpm/issues/13
2011-04-11 11:18:09 -07:00
Jordan Sissel b01dbbfb73 Merge branch 'master' of github.com:jordansissel/fpm
Conflicts:
	fpm.gemspec
2011-04-07 09:03:19 -07:00
Jordan Sissel b237a6b2d4 - make sure we call rsync properly if we're copying a directory 2011-04-07 07:32:48 -07:00
Jordan Sissel 8d2445f55f - version bump
- sort paths by length before taring up, this ensure "/usr" before
  "/usr/bin" in the tarball.
2011-04-05 22:40:49 -07:00
Jordan Sissel 8c43ac4c56 Merge branch 'master' of github.com:jordansissel/fpm 2011-03-30 15:53:56 -07:00
Jordan Sissel e07d1d789a - monkeypatch String#start_with? becuase ruby <=1.8.6 doesn't have it. 2011-03-30 15:53:17 -07:00
Jordan Sissel 1453109c51 - Some gem deps look like this ">= A, <= B" so split them and add
separate deps for each.
2011-03-29 11:17:30 -07:00
Jordan Sissel 32e58a9b5c - Compensate for some gems or rubygems versions not having 'license'
or possibly other fields. Assume "unknown"
2011-03-29 11:06:29 -07:00
Jordan Sissel 7c21f43f75 - remove extra mkdir that put crap in the source dir unintentionally
when using --prefix
2011-03-21 10:53:30 -07:00
Jordan Sissel aacb5d0d15 - Set default version to 1.0 2011-03-17 00:32:42 -07:00
Marc Fournier 8b5466c03e Make deb output filename compliant with debian policy. 2011-03-17 07:49:28 +01:00
root 1a91db513f - Kernel.system() doesn't return exit code, use $? 2011-03-07 13:10:14 -05:00
root 817cba2b45 - make sure all the necessary rpmbuild directories exist
- on failure, emit exit code.
2011-03-07 13:07:02 -05:00
root 586b9c89fb - Don't use .start_with? (not available in ruby 1.8.6 or older)
Reported by Chris Macleod
2011-03-07 12:35:24 -05:00
Jordan Sissel 0ed6ee0f89 - Create the rpm correctly targeted at the output path (usually $PWD as
of fpm invocation)
  The prior behavior would make an rpm similar to this:
  $PWD/name-version.x86_64.rpm/x86_64/the-actual-rpm.rpm
- Version bump
2011-03-01 22:53:33 -08:00
Jordan Sissel 6f047154bc - Properly prefix file paths if --prefix is given. 2011-02-14 17:06:34 -08:00
Jordan Sissel ccbdea4bb2 - Make the 'dir' source accept files sanely. Previously a plain file
input would make a directory but now it does not.
2011-02-07 23:25:28 -08:00
Jordan Sissel 9fafb17c92 fix syntax post-merge 2011-02-07 23:25:12 -08:00
Jordan Sissel 1558279025 Merge branch 'feature/exclude-files'
Conflicts:
	lib/fpm/builder.rb
2011-02-07 23:16:17 -08:00
Jordan Sissel 27fd1350f6 Merge branch 'feature/exclude-files'
Conflicts:
	lib/fpm/builder.rb
2011-02-07 23:13:28 -08:00
Jordan Sissel 76d3be7a97 - fpm --exclude now works decently. Relies on tar(1)'s --exclude flag. 2011-02-07 18:33:15 -08:00
Jordan Sissel bb91dd9949 - Start working on file exclusion 2011-02-07 17:38:18 -08:00
Jordan Sissel aa933f65b3 - If iteration is nil, default to '1' for RPM
- Style cleanup
2011-02-07 10:52:06 -08:00
Jordan Sissel d666e07fa7 Merge branch 'master' of https://github.com/anthezium/fpm into pull/6 2011-02-07 10:43:18 -08:00
Pierre-Yves Ritschard 776941e964 Support for suffixes in gems. This allows building the same gems
for differents rubies (1.8, 1.9.2, ...).
2011-02-07 18:38:21 +01:00
anthezium ab1d71cc4a remove default iteration of 1, allowing it to be nil
updated default_output to properly handle nil iteration
2011-02-04 07:17:27 -08:00
anthezium 743c32c297 don't include hyphen after version if iteration is nil 2011-02-04 07:10:15 -08:00
Jeanine Adkisson 0fd0c0db38 option to edit the specfile before build 2011-02-02 10:05:43 -08:00
Jordan Sissel 6cce352951 - Add proper 'arch' support for rpm. 2011-01-22 10:56:15 -08:00
Jordan Sissel 7e11b8380b - Fix gem tar building to include only the gem install dir
- Abort if rpmbuild fails so we can debug it.
- Fix dependency conversion for rpm
- Fix path prefixing so rpm accepts our list of files (rpm requires
  paths in %files section start with '/'
2011-01-22 00:55:53 -08:00
Jordan Sissel 343d8e08cf Merge branch 'master' of https://github.com/pyro/fpm into pull/3 2011-01-21 22:35:43 -08:00
Jordan Sissel 4948fc05c3 - Start working on npm source 2011-01-21 09:24:03 -08:00
Pierre-Yves Ritschard 922751497f fix fpm for ruby 1.9 2011-01-21 11:45:40 +01:00
Jordan Sissel 49a2d7cdc0 - make it so we can download non-latest packages 2011-01-20 17:40:43 -08:00
Jordan Sissel d9c9d0b510 - Add support for rubygems 1.3.5 2011-01-20 16:35:59 -08:00
Jordan Sissel 18dad90a6d - only add dependencies if given 2011-01-20 15:34:34 -08:00
Jordan Sissel b19c02d1c7 - fix method signatures 2011-01-20 12:45:22 -08:00
Jordan Sissel 570098480c - Fix issue/2 - we were accidentally ignoring deps specified via
commandline.
2011-01-13 15:34:40 -08:00
Jordan Sissel d56ced7f30 - Add --prefix flag for prefixing paths before packaging. This is not
necessary for 'gem'.
  Example, package up /etc but install to /server/$(hostname) or
  something fun:
    fpm -s dir -t deb --prefix /server/$(hostname) /etc

  This is useful for packages/directories that you would prefer
  installed in a specific heirarchy.
2011-01-07 20:25:12 -08:00
Jordan Sissel dce2dd1d7c - Fix version 'iteration' in package output
- some style fixups
- Allow gems to be versioned (fpm -s gem -t deb -v 1.0 somegem) will
  fetch somegem version 1.0
2011-01-07 16:10:56 -08:00
Jordan Sissel 5698ab33cf - ignore deps when fetching gem sources 2011-01-07 13:20:23 -08:00
Jordan Sissel 1b44b1dbb2 - Allow downloading of gems if the given path is not a local file. 2011-01-07 01:34:54 -08:00
Jordan Sissel 3629870de8 - Make rpm target work
- Get fpm -s rpm -t rpm working (should provide a useful test case)
- Allow 'output' (-p <path>) to be a directory
2011-01-07 00:50:06 -08:00
Jordan Sissel 57a336ab71 - Read metadata for Source::RPM 2011-01-06 19:07:45 -08:00
Jordan Sissel f8443472d2 - Make source 'rpm' work. Can now convert RPM to DEB :) 2011-01-06 18:46:01 -08:00
Jordan Sissel 17e4d266c2 - Namespace targets and sources.
- Allow case-insensitive target/source names.
2011-01-06 18:39:58 -08:00
Jordan Sissel ed72b8e3ba - Allow tar to take a chdir option. 2011-01-06 18:39:30 -08:00
Jordan Sissel 876f81367d - move rpm to target/ 2011-01-06 11:15:27 -08:00
Jordan Sissel 8ea1c5553a - Allow a package name. 2011-01-05 22:54:21 -08:00
Jordan Sissel da0b1d03ac style 2011-01-05 22:54:12 -08:00
Jordan Sissel 90190bfa07 - Fix require since path change 2011-01-05 22:53:31 -08:00
Jordan Sissel 20424816e6 - Move files 2011-01-05 22:31:16 -08:00
Jeanine Adkisson 6619e4c6cb render templates in the context of the package, not the source
This allows things like debs referring to x86_64 as amd64
to be in the Deb class.
2011-01-05 20:26:37 -08:00
Jeanine Adkisson e8511f3787 make sure to grab and expose everything from the source 2011-01-05 20:26:10 -08:00
Jeanine Adkisson a1644be271 rm debugging code 2011-01-05 20:18:50 -08:00
Jeanine Adkisson e2e404c956 don't expose rpm, gem, and tar functionality until they're done 2011-01-05 20:18:50 -08:00
Jeanine Adkisson 9de4678d90 add in stubby FPM::Rpm and FPM::Gem
TODO: put sources and packages in separate namespaces
2011-01-05 20:02:22 -08:00
Jeanine Adkisson a1a6f98d56 stupid syntax error *facepalm 2011-01-05 18:38:04 -08:00
Jeanine Adkisson eb985c0d79 actually require the new code 2011-01-05 18:34:42 -08:00
Jeanine Adkisson a76ef974f9 constants for local directory names
Things get weird when you're Dir.chdir-ing
2011-01-05 18:32:45 -08:00
Jeanine Adkisson 8e16c50dc1 the assemble method has moved to builder 2011-01-05 18:31:28 -08:00
Jeanine Adkisson 39843be0e4 be more energetic with method naming, and use symbols 2011-01-05 18:29:43 -08:00
Jeanine Adkisson da0c9963b6 Builder#assemble! doesn't actually take any params 2011-01-05 18:28:32 -08:00
Jeanine Adkisson 8ef454a330 the checksum method is now owned by builder 2011-01-05 18:27:00 -08:00
Jeanine Adkisson 780bbbde0e Package#default_output.
Package managers usually have lots of guidelines
and specs for naming conventions.  This lets the
package class provide a default.
2011-01-05 18:23:15 -08:00
Jeanine Adkisson 8a864b9f8a meet FPM::Dir, the simplest source of all. 2011-01-05 18:21:23 -08:00
Jeanine Adkisson a6082a9a39 FPM::Builder
The builder is the thing that takes a package and a source
and makes them do things.  It is responsible for fpm-wide
defaults, keeping track of paths of things, etc.

Note in particular the change to bin/fpm.
2011-01-05 18:16:59 -08:00
Jeanine Adkisson db2afcd61e a package is initialized with a source
and interprets its metadata accordingly
2011-01-05 18:13:59 -08:00
Jeanine Adkisson 1cfaf3eb9b tar is owned by the source now 2011-01-05 18:12:29 -08:00
Jeanine Adkisson ae91abfa39 FPM::Source
This is the base class for sources.  Subclasses need to define
two methods:

def get_metadata
  # starting out with @paths and @root, infer as much
  # metadata as possible
end

def make_tarball!(tar_path)
  # turn this source into a tarball at the given path
end
2011-01-05 18:00:10 -08:00
Jeanine Adkisson 701e77c346 no need to delete the file twice (moved to package.rb:84) 2011-01-04 18:46:49 -08:00
Jeanine Adkisson d9bd870af4 factor out the re-usable parts of assemble
This is so I can reuse as much code as possible for rpms.
I've verified to the extent I know that behavior is unchanged
(i.e. made a directory somewhere and packaged it up as a deb),
but it'd be nice to have some specs so I can be sure.  Count that
as a TODO.
2011-01-04 18:37:21 -08:00
Jeanine Adkisson 415cb79dac factor out the architecture munging into a method in FPM::Deb 2011-01-04 18:24:30 -08:00
Jeanine Adkisson fcc428c938 rm debug puts 2011-01-04 18:24:30 -08:00
Jordan Sissel ce8efab77c - delete the .deb if it exists, before we create it 2011-01-04 16:29:40 -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 6fd63af88d - version bump
- remove debug output
2011-01-03 18:49:25 -08:00
Jordan Sissel 3ef75dbcd5 - support dependencies again 2011-01-03 18:47:19 -08:00
Jordan Sissel 5b942f2710 - Fix gem-ification bits (now installs+runs)
- Factor out 'deb' package assembly into a library
2011-01-03 18:22:09 -08:00