Commit Graph

1343 Commits

Author SHA1 Message Date
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