Commit Graph

1343 Commits

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