pallet 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +141 -0
- data/README +0 -0
- data/lib/dependencies.rb +44 -0
- data/lib/install_spec.rb +89 -0
- data/lib/pallet.rb +109 -0
- data/lib/pallet/deb.rb +311 -0
- data/lib/pallet/gem.rb +198 -0
- data/share/debian/changelog +7 -0
- data/share/debian/compat +1 -0
- data/share/debian/conffiles +1 -0
- data/share/debian/config +8 -0
- data/share/debian/control +12 -0
- data/share/debian/copyright +7 -0
- data/share/debian/dirs +1 -0
- data/share/debian/docs +1 -0
- data/share/debian/install +1 -0
- data/share/debian/postinst +3 -0
- data/share/debian/postrm +3 -0
- data/share/debian/rules +61 -0
- data/share/debian/templates +10 -0
- metadata +80 -0
data/CHANGELOG
ADDED
@@ -0,0 +1,141 @@
|
|
1
|
+
pallet (1.2.1)
|
2
|
+
|
3
|
+
Improvements:
|
4
|
+
|
5
|
+
* better file slurping/gsubbing; whole-file rather than
|
6
|
+
line-by-line
|
7
|
+
* cache of replacements now efficiently reimplemented
|
8
|
+
* dh_installdocs ignores .svn directories
|
9
|
+
* new InstallSpec invocation syntax, old mode is deprecated and
|
10
|
+
will be removed later
|
11
|
+
* build-depends are forced to add pallet's build dependencies
|
12
|
+
|
13
|
+
Bugfixes:
|
14
|
+
|
15
|
+
* fixed bug where files created during the build process aren't
|
16
|
+
included into the Debian package
|
17
|
+
* fixed bug where files in directories not existing before the
|
18
|
+
project was build would not be included in the build
|
19
|
+
|
20
|
+
pallet (1.2.0)
|
21
|
+
|
22
|
+
Improvements:
|
23
|
+
|
24
|
+
* reimplemented require overloading as build_dependency and
|
25
|
+
runtime_dependency methods, with no nasty require aliasing
|
26
|
+
|
27
|
+
pallet (1.1.1)
|
28
|
+
|
29
|
+
Bugfixes:
|
30
|
+
|
31
|
+
* reverted changes to LoadError in require, since this causes
|
32
|
+
build failures on non-Linux systems
|
33
|
+
* updated Rakefile to include the Debian files in share/
|
34
|
+
|
35
|
+
pallet (1.1.0)
|
36
|
+
|
37
|
+
Improvements:
|
38
|
+
|
39
|
+
* Gem::DEFAULT_FILES no longer includes '[A-Z]*'
|
40
|
+
* better documentation
|
41
|
+
* allows calling of rake package without having libraries required
|
42
|
+
for the normal execution of Rakefile; this is disabled for any
|
43
|
+
use of the rakefile _except_ when it is called with a package
|
44
|
+
task or any task in the package namespace (mainly useful for
|
45
|
+
build hosts, to limit the needed Gem dependencies)
|
46
|
+
* debian templates directory now located in share/
|
47
|
+
* gem implementation rewritten to use core gem libraries, rather
|
48
|
+
than being a wrapper around Rake::GemSpecTask
|
49
|
+
* gem task can be renamed
|
50
|
+
* gem allows platform to be set
|
51
|
+
* gem allows dest_dir and filename to be changed
|
52
|
+
* reimplementation of InstallSpec
|
53
|
+
* more efficient case-insensitive globbing implemented
|
54
|
+
* Deb#commands.clean added
|
55
|
+
* debian/rules clean now cleans the source tree too
|
56
|
+
* rake clean doesn't remove debian directory, only rake clobber
|
57
|
+
does now
|
58
|
+
* better DRY-ness of substitution variables (no more having to
|
59
|
+
type the hashes around #FOO#)
|
60
|
+
* debhelper autogenerates entries in postrm
|
61
|
+
* debian/rules streamlined
|
62
|
+
* copyright file added to Debs
|
63
|
+
* debian/rules uses binary-indep and binary-arch smartly, based on
|
64
|
+
the configured package architecture
|
65
|
+
* pallet Rakefile is debianized
|
66
|
+
* Debian conffile support
|
67
|
+
|
68
|
+
Bugfixes:
|
69
|
+
|
70
|
+
* throws an exception when Gem#executables are not all in the same
|
71
|
+
directory
|
72
|
+
* no longer includes bin/bin/* in gems
|
73
|
+
* default Debian build-depends are overrideable, rather than being
|
74
|
+
transparently and secretly added
|
75
|
+
* fixed changelog.Debian.gz formatting
|
76
|
+
* fixed DEFAULT_DOCS and DEFAULT_CHANGELOG in Debian template
|
77
|
+
* fixed template location for debianization
|
78
|
+
* 822-date output chomped in Deb
|
79
|
+
* files generated during build process are now added correctly,
|
80
|
+
and list of files to be added are not cached before the build is
|
81
|
+
run
|
82
|
+
|
83
|
+
Known Bugs:
|
84
|
+
|
85
|
+
* replacements cache no longer as efficient
|
86
|
+
* timestamps can differ if the package is being built when the
|
87
|
+
system clock increments its second hand
|
88
|
+
|
89
|
+
pallet (1.0.2)
|
90
|
+
|
91
|
+
Improvements:
|
92
|
+
|
93
|
+
* builds packages binary-only; no source packages
|
94
|
+
* Debian packages signed with author's GPG key if available, or
|
95
|
+
the key id in $GPG_KEY_ID environment if it is set
|
96
|
+
* changelog now reports OS as unstable, stable, and testing
|
97
|
+
* Debian changelog has a better default message
|
98
|
+
* Pallet#requirements field supported by Debian packaging; pops
|
99
|
+
open a debconf warning on install
|
100
|
+
* extended description field Pallet#description added
|
101
|
+
* removed dependency on facets
|
102
|
+
* improved debianization process
|
103
|
+
|
104
|
+
Bugfixes:
|
105
|
+
|
106
|
+
* files are placed into the Debian package with the permissions
|
107
|
+
they already have on the filesystem
|
108
|
+
* fixed bug where InstallSpecs would not always report the base
|
109
|
+
destination directory as needing to exist
|
110
|
+
* default value of Pallet::Deb#docs and Pallet::Deb#files fixed
|
111
|
+
* added dpkg-dev gem requirement
|
112
|
+
* rake clobber always removes packages
|
113
|
+
|
114
|
+
-- Stephen Touset <stouset@damballa.com> Fri Feb 16 14:17:29 EST 2007
|
115
|
+
|
116
|
+
pallet (1.0.1)
|
117
|
+
|
118
|
+
Improvements:
|
119
|
+
|
120
|
+
* added a package:all task to the Rakefile, to generate all
|
121
|
+
supported package types
|
122
|
+
* added an architecture option for Debian packages, to support
|
123
|
+
scripts supported on the "all" architecture without rebuild
|
124
|
+
|
125
|
+
Bugfixes:
|
126
|
+
|
127
|
+
* added debhelper to Debian build-depends
|
128
|
+
* fewer warnings due to non-idiomatic Ruby
|
129
|
+
* adds the CHANGELOG to auto-generated documentation
|
130
|
+
* removed extraneous Rubygems dependencies
|
131
|
+
|
132
|
+
-- Stephen Touset <stouset@damballa.com> Tue, 13 Feb 2007 17:24:02 -0500
|
133
|
+
|
134
|
+
pallet (1.0.0)
|
135
|
+
|
136
|
+
* Initial release of pallet. Allows a small Rakefile-type script to
|
137
|
+
be written which can build packages in the following formats:
|
138
|
+
- Debian
|
139
|
+
- Ruby Gems
|
140
|
+
|
141
|
+
-- Stephen Touset <stouset@damballa.com> Mon, 12 Feb 2007 12:10:35 -0500
|
data/README
ADDED
File without changes
|
data/lib/dependencies.rb
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
module Kernel
|
2
|
+
|
3
|
+
#
|
4
|
+
# Tests to see if we're in rake, and any task given on the command
|
5
|
+
# line is equal to or in the namespace of _name_.
|
6
|
+
#
|
7
|
+
def in_rake_task?(name)
|
8
|
+
$0 =~ /rake/ && ARGV.grep(/\A#{name}/).length != 0
|
9
|
+
end
|
10
|
+
|
11
|
+
#
|
12
|
+
# Requires the library as a build dependency for Pallet, which
|
13
|
+
# ensures it will be loaded whenever the package task is run.
|
14
|
+
#
|
15
|
+
def build_dependency(lib)
|
16
|
+
require lib
|
17
|
+
end
|
18
|
+
|
19
|
+
#
|
20
|
+
# Requires the given library, ignoring any failures if we're in a
|
21
|
+
# package build task.
|
22
|
+
#
|
23
|
+
def runtime_dependency(lib)
|
24
|
+
if in_rake_task? Pallet::NAMESPACE
|
25
|
+
require lib rescue nil
|
26
|
+
else
|
27
|
+
require lib
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
#
|
34
|
+
# Override method_missing and const_missing if we're running a pallet
|
35
|
+
# packaging task.
|
36
|
+
#
|
37
|
+
if in_rake_task? Pallet::NAMESPACE
|
38
|
+
module Kernel #:nodoc:
|
39
|
+
def method_missing(name); nil; end
|
40
|
+
end
|
41
|
+
class Module #:nodoc:
|
42
|
+
def const_missing(name); nil; end
|
43
|
+
end
|
44
|
+
end
|
data/lib/install_spec.rb
ADDED
@@ -0,0 +1,89 @@
|
|
1
|
+
class InstallSpec
|
2
|
+
|
3
|
+
# The directory or file to move from.
|
4
|
+
attr_accessor :source
|
5
|
+
|
6
|
+
# The directory to move any matching files to.
|
7
|
+
attr_accessor :destination
|
8
|
+
|
9
|
+
# Extra attributes for the install specification. Supported
|
10
|
+
# attributes are +:glob+, to change the default globbing pattern, and
|
11
|
+
# +:conf+, which marks the set of files as configuration files.
|
12
|
+
attr_accessor :attributes
|
13
|
+
|
14
|
+
DEFAULT_GLOB = '**/*'
|
15
|
+
EXTRA_SEPARATORS = %r{^/+(.*)/+$}
|
16
|
+
|
17
|
+
#
|
18
|
+
# Initializes the InstallSpec, as a shortcut for InstallSpec#new
|
19
|
+
#
|
20
|
+
def self.[](source, destination, attributes = {})
|
21
|
+
new(source, destination, attributes)
|
22
|
+
end
|
23
|
+
|
24
|
+
#
|
25
|
+
# Initializes the InstallSpec. Available attributes are +:conf+ and
|
26
|
+
# +:glob+. Accepts a block for backwards compatibility, although
|
27
|
+
# this usage is deprecated.
|
28
|
+
#
|
29
|
+
def initialize(source, destination, attributes = {})
|
30
|
+
|
31
|
+
self.source = source
|
32
|
+
self.destination = destination
|
33
|
+
self.attributes = attributes
|
34
|
+
|
35
|
+
# yield for more initialization, for backwards-compatibility
|
36
|
+
# purposes
|
37
|
+
if block_given?
|
38
|
+
puts "WARNING: DEPRECATED USAGE OF INSTALLSPEC. NO LONGER ACCEPTS A BLOCK PARAMETER."
|
39
|
+
yield s = Struct.new(:source, :destination, :glob, :conffiles).new
|
40
|
+
self.source = s.source if s.source
|
41
|
+
self.destination = s.destination if s.destination
|
42
|
+
self.attributes[:glob] = s.glob
|
43
|
+
self.attributes[:conf] = s.conffiles
|
44
|
+
end
|
45
|
+
|
46
|
+
|
47
|
+
# remove any leading /'s, since we should be dealing only with
|
48
|
+
# relative directory paths
|
49
|
+
source.sub! EXTRA_SEPARATORS, '\1'
|
50
|
+
destination.sub! EXTRA_SEPARATORS, '\1'
|
51
|
+
|
52
|
+
# update attributes with the defaults if needed
|
53
|
+
self.attributes[:glob] ||= DEFAULT_GLOB
|
54
|
+
self.attributes[:conf] ||= !! destination.match(%r{/etc|etc/|\Aetc\z})
|
55
|
+
|
56
|
+
end
|
57
|
+
|
58
|
+
#
|
59
|
+
# A hash of all files in _source_ mapping to their destination.
|
60
|
+
#
|
61
|
+
def files
|
62
|
+
hash_to_dest(Dir[pattern].find_all {|f| File.file? f })
|
63
|
+
end
|
64
|
+
|
65
|
+
#
|
66
|
+
# A hash of all directories in _source_ mapped to their destination.
|
67
|
+
#
|
68
|
+
def directories
|
69
|
+
hash_to_dest(Dir[pattern].find_all {|f| File.directory? f } << source)
|
70
|
+
end
|
71
|
+
|
72
|
+
private
|
73
|
+
|
74
|
+
#
|
75
|
+
# The full search pattern to use when looking for files.
|
76
|
+
#
|
77
|
+
def pattern
|
78
|
+
File.directory?(source) ? File.join(source, attributes[:glob]) : source
|
79
|
+
end
|
80
|
+
|
81
|
+
#
|
82
|
+
# Creates a hash mapping everything in _files_ beginning with _source_
|
83
|
+
# to its corresponding location in _destination_.
|
84
|
+
#
|
85
|
+
def hash_to_dest(files)
|
86
|
+
Hash[*files.map {|f| [f, f.sub(/^#{source}/, destination)] }.flatten]
|
87
|
+
end
|
88
|
+
|
89
|
+
end
|
data/lib/pallet.rb
ADDED
@@ -0,0 +1,109 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
|
4
|
+
require 'pallet/deb'
|
5
|
+
require 'pallet/gem'
|
6
|
+
require 'install_spec'
|
7
|
+
|
8
|
+
class Pallet
|
9
|
+
|
10
|
+
VERSION = '1.2.1'
|
11
|
+
NAMESPACE = 'package'
|
12
|
+
|
13
|
+
# The name of the project.
|
14
|
+
attr_accessor :name
|
15
|
+
|
16
|
+
# The version number of the project to tag onto the package.
|
17
|
+
attr_accessor :version
|
18
|
+
|
19
|
+
# A short description of the package function.
|
20
|
+
attr_accessor :summary
|
21
|
+
|
22
|
+
# A longer, more detailed description of the package's capabilities.
|
23
|
+
attr_accessor :description
|
24
|
+
|
25
|
+
# The name of the current project maintainer.
|
26
|
+
attr_accessor :author
|
27
|
+
|
28
|
+
# The maintainer's email address.
|
29
|
+
attr_accessor :email
|
30
|
+
|
31
|
+
# An enumerable with the package definitions for each package type
|
32
|
+
# you wish to support in your project.
|
33
|
+
attr_accessor :packages
|
34
|
+
|
35
|
+
# The preferred packaging format of your project. +rake package+
|
36
|
+
# will build this format, but others can still be built with +rake
|
37
|
+
# package:#{format}+.
|
38
|
+
attr_accessor :preferred_format
|
39
|
+
|
40
|
+
#
|
41
|
+
# Initializes the pallet to a sane state, and creates all the
|
42
|
+
# necessary Rake tasks. Passes a copy of itself to a block, if
|
43
|
+
# given, and uses that block for further initializiation. If no
|
44
|
+
# _version_ is given, defaults to the output of +svnversion+.
|
45
|
+
#
|
46
|
+
def initialize(name, version = %x{svnversion}.chomp)
|
47
|
+
|
48
|
+
# set up defaults
|
49
|
+
self.name = name
|
50
|
+
self.version = version
|
51
|
+
self.author = 'Anonymous'
|
52
|
+
self.email = 'anonymous@example.org'
|
53
|
+
self.summary = ''
|
54
|
+
self.description = ''
|
55
|
+
self.packages = []
|
56
|
+
|
57
|
+
# let block continue initialization
|
58
|
+
yield self if block_given?
|
59
|
+
|
60
|
+
# check that we have _some_ package to build
|
61
|
+
if packages.empty?
|
62
|
+
raise TypeError, 'at least one package type must be specified'
|
63
|
+
end
|
64
|
+
|
65
|
+
# if no preferred format given, use the first one specified
|
66
|
+
self.preferred_format ||= packages.first
|
67
|
+
|
68
|
+
define_rake_tasks
|
69
|
+
|
70
|
+
end
|
71
|
+
|
72
|
+
private
|
73
|
+
|
74
|
+
#
|
75
|
+
# Defines all rake tasks related to packaging.
|
76
|
+
#
|
77
|
+
def define_rake_tasks
|
78
|
+
|
79
|
+
namespace NAMESPACE do
|
80
|
+
|
81
|
+
desc 'Build all supported package types'
|
82
|
+
task :all
|
83
|
+
|
84
|
+
desc 'Remove any ephemeral files used to build packages'
|
85
|
+
task :clean
|
86
|
+
|
87
|
+
desc 'Clean up all package files'
|
88
|
+
task :clobber
|
89
|
+
|
90
|
+
# define a task for all supported packages
|
91
|
+
self.packages.each do |package|
|
92
|
+
package.define
|
93
|
+
task :all => package.task_name
|
94
|
+
end
|
95
|
+
|
96
|
+
end
|
97
|
+
|
98
|
+
# default package task redirection
|
99
|
+
desc "Build a #{preferred_format.task_name}"
|
100
|
+
task :package => "#{NAMESPACE}:#{preferred_format.task_name}"
|
101
|
+
|
102
|
+
# have clean/clobber depend on our own
|
103
|
+
%w{clean clobber}.each {|t| task t => "#{NAMESPACE}:#{t}" }
|
104
|
+
|
105
|
+
end
|
106
|
+
|
107
|
+
end
|
108
|
+
|
109
|
+
require 'dependencies'
|
data/lib/pallet/deb.rb
ADDED
@@ -0,0 +1,311 @@
|
|
1
|
+
class Pallet
|
2
|
+
|
3
|
+
#
|
4
|
+
# = Pallet::Deb
|
5
|
+
#
|
6
|
+
# Automatic builder for Debian packages. Lets users automagically
|
7
|
+
# build a deb after specifying a few customizations.
|
8
|
+
#
|
9
|
+
# == Usage
|
10
|
+
#
|
11
|
+
# At a bare minimum, users must specify lists of files, and where to
|
12
|
+
# place them. The syntax for doing so is not obvious, so we will
|
13
|
+
# demonstrate by example.
|
14
|
+
#
|
15
|
+
# To create a Debian package, moving everything under 'lib/' to
|
16
|
+
# '/usr/lib/ruby/1.8/', everything in 'bin/' to '/usr/bin/', and all
|
17
|
+
# documentation under 'doc/' to the Debian default documentation
|
18
|
+
# directory, under the subdirectory HTML, you would write the
|
19
|
+
# following:
|
20
|
+
#
|
21
|
+
# Pallet::Deb.new(pallet) do |deb|
|
22
|
+
#--
|
23
|
+
# TODO: EXAMPLE!!
|
24
|
+
#++
|
25
|
+
# end
|
26
|
+
#
|
27
|
+
# === GPG Integration
|
28
|
+
#
|
29
|
+
# Pallet::Deb will sign its built Debian packages with the GPG key
|
30
|
+
# id in the environment variable $GPG_KEY_ID, if it is set.
|
31
|
+
# Otherwise, it will sign with the key associated with the
|
32
|
+
# maintainer's email address, if it is avaialble.
|
33
|
+
#
|
34
|
+
# == Caveats
|
35
|
+
#
|
36
|
+
# * Uses dpkg-buildpackage, which is not very flexible. Should be
|
37
|
+
# rewritten later to do everything on its own.
|
38
|
+
# * Can only be used to build a single package, rather than multiple
|
39
|
+
# packages from one source.
|
40
|
+
# * Packages are installed into .., rather than pkg/
|
41
|
+
# * No doc-base integration
|
42
|
+
#
|
43
|
+
class Deb
|
44
|
+
|
45
|
+
# The name the generated rake task will use. Defaults to 'deb'.
|
46
|
+
attr_accessor :task_name
|
47
|
+
|
48
|
+
# An array of Debian build dependencies needed in order to build
|
49
|
+
# the package for this project. Defaults to any core build
|
50
|
+
# requirements introduced by pallet (currently only debhelper (>=
|
51
|
+
# 5) and dpkg-dev).
|
52
|
+
attr_accessor :build_depends
|
53
|
+
|
54
|
+
# All Debian packages this project depends on.
|
55
|
+
attr_accessor :depends
|
56
|
+
|
57
|
+
# Any additional requirements not satisfiable through the Debian
|
58
|
+
# packaging system. For instance, Ruby gems. Any requirements
|
59
|
+
# provided this way will be presented to the user through a
|
60
|
+
# Debconf dialog upon installation.
|
61
|
+
attr_accessor :requirements
|
62
|
+
|
63
|
+
# An array of any tasks which should run and complete successfully
|
64
|
+
# before the Debian package is built.
|
65
|
+
attr_accessor :prerequisites
|
66
|
+
|
67
|
+
# A struct containing a few statically-named commands that can
|
68
|
+
# replace parts of the Pallet::Deb build process. Currently
|
69
|
+
# allows assignment to the _build_, _install_, _package_,
|
70
|
+
# _document_, and _clean_ instance variables.
|
71
|
+
#
|
72
|
+
# _commands.build_ defaults to 'make', 'ant', or nil depending on
|
73
|
+
# whether or not a Makefile, build.xml, or no build file is
|
74
|
+
# detected, respectively.
|
75
|
+
#
|
76
|
+
# _commands.clean_ deafults to 'rake clean'. It can be overridden
|
77
|
+
# if you have another method of cleaning your build directory.
|
78
|
+
#
|
79
|
+
# _commands.install_ defaults to nil. If your project already
|
80
|
+
# provides a command that installs all files needed for the
|
81
|
+
# project into a prefixed directory, you can specify this rather
|
82
|
+
# than providing InstallSpecs to _Pallet::Deb#files_. However,
|
83
|
+
# this command +must+ be able to support a "DESTDIR=$DIR"-style
|
84
|
+
# parameter which determines the install prefix.
|
85
|
+
#
|
86
|
+
# _commands.package_ defaults to nil. If this is specified, the
|
87
|
+
# +entire+ build process will consist of calling this command.
|
88
|
+
# This might be desirable if your project already provides a
|
89
|
+
# _debian_ directory and a _make deb_ command to build the Debian
|
90
|
+
# package. Otherwise, leave this at its default.
|
91
|
+
#
|
92
|
+
# _commands.document_ defaults to nil. If specified, this command
|
93
|
+
# is run to build any automatically-generated documentation.
|
94
|
+
#
|
95
|
+
attr_accessor :commands
|
96
|
+
|
97
|
+
|
98
|
+
# An array of InstallSpec objects pointing to files and their
|
99
|
+
# destination in the finished package. May be omitted if
|
100
|
+
# _commands.install_ is provided.
|
101
|
+
attr_accessor :files
|
102
|
+
|
103
|
+
# A FileList, array, or other enumerable object containing a list
|
104
|
+
# of all project documentation to include in the Debian pacakge.
|
105
|
+
attr_accessor :docs
|
106
|
+
|
107
|
+
# The location on the filesystem of the project Changelog.
|
108
|
+
# Defaults to 'CHANGELOG', if one exists.
|
109
|
+
attr_accessor :changelog
|
110
|
+
|
111
|
+
# A hash pointing to the location of scripts the Debian package
|
112
|
+
# should include. The key in the hash is the debhelper-reconigzed
|
113
|
+
# type of script (cron.d, postinst, postrm, init.d, etc.). The
|
114
|
+
# value is its location in your project hierarchy.
|
115
|
+
attr_accessor :scripts
|
116
|
+
|
117
|
+
# The machine architecture the package can be built to support.
|
118
|
+
# Defaults to 'any', but 'all' should be used for languages that
|
119
|
+
# aren't compiled to a specific platform.
|
120
|
+
attr_accessor :architecture
|
121
|
+
|
122
|
+
# The version of the Debian policy we support
|
123
|
+
DEBIAN_POLICY_VERSION = '3.7.2'
|
124
|
+
|
125
|
+
# Mapping of build spec files to the command that invokes them. We
|
126
|
+
# don't include rake here, since most Ruby programs don't need
|
127
|
+
# "building", and there is no idiomatic rake task used for
|
128
|
+
# building extensions.
|
129
|
+
BUILD_COMMANDS = { 'Makefile' => 'make --silent',
|
130
|
+
'build.xml' => 'ant', }
|
131
|
+
|
132
|
+
# Build dependencies required by pallet, which will always be
|
133
|
+
# added to the debian/control file.
|
134
|
+
BUILD_DEPENDS = ['debhelper (> 5.0)', 'dpkg-dev']
|
135
|
+
|
136
|
+
# Default places to look for documentation.
|
137
|
+
DEFAULT_DOCS = FileList[%w{README* TODO* doc*}]
|
138
|
+
|
139
|
+
# Default changelog search locations.
|
140
|
+
DEFAULT_CHANGELOG = FileList[%w{CHANGELOG*}]
|
141
|
+
|
142
|
+
#
|
143
|
+
# Creates a new specification for building a deb. Yields itself to
|
144
|
+
# the blocked passed for further initialization.
|
145
|
+
#
|
146
|
+
def initialize(pallet)
|
147
|
+
|
148
|
+
@pallet = pallet
|
149
|
+
|
150
|
+
# configure defaults
|
151
|
+
self.task_name = :deb
|
152
|
+
self.depends = []
|
153
|
+
self.build_depends = []
|
154
|
+
self.requirements = []
|
155
|
+
self.prerequisites = []
|
156
|
+
self.files = []
|
157
|
+
self.docs = DEFAULT_DOCS
|
158
|
+
self.changelog = DEFAULT_CHANGELOG.first
|
159
|
+
self.scripts = {}
|
160
|
+
self.commands = Struct.new(:build, :clean, :install, :package, :document).new
|
161
|
+
self.architecture = 'any'
|
162
|
+
|
163
|
+
# try and determine a default build command
|
164
|
+
BUILD_COMMANDS.find do |file, command|
|
165
|
+
self.commands.build = command if File.exist? file
|
166
|
+
end
|
167
|
+
|
168
|
+
# default packaging command; adds GPG key if it's in the environment
|
169
|
+
self.commands.package = "dpkg-buildpackage -rfakeroot -b"
|
170
|
+
self.commands.package << " -k#{ENV['GPG_KEY_ID']}" if ENV['GPG_KEY_ID']
|
171
|
+
|
172
|
+
# default clean command
|
173
|
+
self.commands.clean = 'rake --silent clean'
|
174
|
+
|
175
|
+
# send me off to be configured
|
176
|
+
yield self if block_given?
|
177
|
+
|
178
|
+
# append our core build-dependencies to any others specified, so
|
179
|
+
# the user doesn't have to
|
180
|
+
self.build_depends |= BUILD_DEPENDS
|
181
|
+
|
182
|
+
end
|
183
|
+
|
184
|
+
def define
|
185
|
+
|
186
|
+
desc 'Build this project into a Debian package'
|
187
|
+
task self.task_name => self.prerequisites do
|
188
|
+
debianize unless File.directory? 'debian'
|
189
|
+
packagize
|
190
|
+
end
|
191
|
+
|
192
|
+
task 'clean' => ['clean:deb']
|
193
|
+
task 'clean:deb' do
|
194
|
+
# don't call debian/rules clean if we've already been called
|
195
|
+
# through Make; this might not be entirely reliable...
|
196
|
+
ENV['MAKELEVEL'] or system 'fakeroot debian/rules clean' if File.exist? 'debian/rules'
|
197
|
+
end
|
198
|
+
|
199
|
+
task 'clobber' => ['clobber:deb']
|
200
|
+
task 'clobber:deb' do
|
201
|
+
rm_r 'debian' rescue nil
|
202
|
+
files = Dir["../#{@pallet.name}_#{@pallet.version}*.changes"] +
|
203
|
+
Dir["../#{@pallet.name}_#{@pallet.version}*.deb"]
|
204
|
+
files.each {|f| rm f if File.exist? f }
|
205
|
+
end
|
206
|
+
|
207
|
+
end
|
208
|
+
|
209
|
+
private
|
210
|
+
|
211
|
+
#
|
212
|
+
# Build the _debian/_ directory under the project root
|
213
|
+
#
|
214
|
+
def debianize
|
215
|
+
|
216
|
+
locations = [File.dirname(__FILE__) + '/../../share/debian',
|
217
|
+
'/usr/share/pallet/debian']
|
218
|
+
templates = locations.find {|f| puts f; File.directory? f }
|
219
|
+
|
220
|
+
# make the target directory
|
221
|
+
mkdir 'debian'
|
222
|
+
|
223
|
+
# copy/gsub template files into place
|
224
|
+
Dir[templates + '/**/*'].each do |file|
|
225
|
+
|
226
|
+
dest = 'debian/' + File.basename(file)
|
227
|
+
|
228
|
+
# gsub our replacements in the file in memory, then write back
|
229
|
+
# out to the destination
|
230
|
+
begin
|
231
|
+
s = File.open(file, File::RDONLY)
|
232
|
+
d = File.open(dest, File::WRONLY | File::CREAT)
|
233
|
+
d.write replacements.inject(s.readlines.join) {|contents, rep| contents.gsub %r|##{rep[0]}#|, rep[1] }
|
234
|
+
ensure
|
235
|
+
s.close
|
236
|
+
d.close
|
237
|
+
end
|
238
|
+
|
239
|
+
end
|
240
|
+
|
241
|
+
# mark debian/rules as executable
|
242
|
+
chmod 0755, 'debian/rules'
|
243
|
+
|
244
|
+
# relocate any additional scripts into the debian directory
|
245
|
+
scripts.each_pair do |type, location|
|
246
|
+
ln_sf "../#{location}", "debian/#{type}"
|
247
|
+
end
|
248
|
+
|
249
|
+
end
|
250
|
+
|
251
|
+
def packagize
|
252
|
+
system self.commands.package
|
253
|
+
end
|
254
|
+
|
255
|
+
def replacements
|
256
|
+
@replacements_cache ||= {
|
257
|
+
'ARCHITECTURE' => lambda { self.architecture },
|
258
|
+
'BUILD_DEPS' => lambda { self.build_depends.join ', ' },
|
259
|
+
'CHANGELOG' => lambda { self.changelog },
|
260
|
+
'CLEAN' => lambda { self.commands.clean },
|
261
|
+
'CONFFILES' => lambda { conffiles },
|
262
|
+
'DATE' => lambda { %x{822-date}.chomp },
|
263
|
+
'DEPENDS' => lambda { self.depends.join ', ' },
|
264
|
+
'DESCRIPTION' => lambda { @pallet.description.gsub(/\n/, "\n ") },
|
265
|
+
'DIRECTORIES' => lambda { directories },
|
266
|
+
'DOCS' => lambda { system self.commands.document if self.commands.document; self.docs.join "\n" },
|
267
|
+
'EMAIL' => lambda { @pallet.email },
|
268
|
+
'FILES' => lambda { system self.commands.build if self.commands.build; install },
|
269
|
+
'INSTALL' => lambda { self.commands.install ? "#{self.commands.install} DESTDIR=debian/#{@pallet.name}" : nil },
|
270
|
+
'MAKE' => lambda { self.commands.build },
|
271
|
+
'MODE' => lambda { self.architecture == 'all' ? 'indep' : 'arch' },
|
272
|
+
'PACKAGE' => lambda { @pallet.name },
|
273
|
+
'POLICY' => lambda { DEBIAN_POLICY_VERSION },
|
274
|
+
'REQUIREMENTS' => lambda { self.requirements.map {|r| ' * ' + r }.join "\n" },
|
275
|
+
'SUMMARY' => lambda { @pallet.summary },
|
276
|
+
'UNUSED-MODE' => lambda { self.architecture == 'all' ? 'arch' : 'indep' },
|
277
|
+
'USERNAME' => lambda { @pallet.author },
|
278
|
+
'VERSION' => lambda { @pallet.version },
|
279
|
+
}.instance_eval { each {|k,v| self[k] = v.call.to_s } }
|
280
|
+
end
|
281
|
+
|
282
|
+
#
|
283
|
+
# Generate the complete list of directories needed.
|
284
|
+
#
|
285
|
+
def directories
|
286
|
+
self.files.inject([]) {|m, s| m + s.directories.values }.uniq.join "\n"
|
287
|
+
end
|
288
|
+
|
289
|
+
#
|
290
|
+
# Generate a list of "install" commands to move files into the
|
291
|
+
# correct directory.
|
292
|
+
#
|
293
|
+
def install
|
294
|
+
self.files.inject([]) do |m,s|
|
295
|
+
m + s.files.map {|src, dst| "#{src} #{File.dirname(dst)}" }
|
296
|
+
end.join "\n"
|
297
|
+
end
|
298
|
+
|
299
|
+
#
|
300
|
+
# Returns a list of configuration files in _files_, from the
|
301
|
+
# perspective of the destination on the filesystem when the
|
302
|
+
# package is installed
|
303
|
+
#
|
304
|
+
def conffiles
|
305
|
+
self.files.inject([]) do |m,s|
|
306
|
+
m + (s.attributes[:conf] ? s.files.map {|src, dst| dst } : [])
|
307
|
+
end.join "\n"
|
308
|
+
end
|
309
|
+
|
310
|
+
end
|
311
|
+
end
|
data/lib/pallet/gem.rb
ADDED
@@ -0,0 +1,198 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rubygems/builder'
|
3
|
+
|
4
|
+
class Pallet
|
5
|
+
|
6
|
+
#
|
7
|
+
# = Pallet::Gem
|
8
|
+
#
|
9
|
+
# Automatic rubygem builder. Lets users automagically build a gem
|
10
|
+
# after specifying a few customizations.
|
11
|
+
#
|
12
|
+
# == Usage
|
13
|
+
#
|
14
|
+
# Uses several sane defaults, so in many cases, the specification
|
15
|
+
# could be written simply as:
|
16
|
+
#
|
17
|
+
# Pallet::Gem.new(pallet)
|
18
|
+
#
|
19
|
+
# Which is identical to the following example:
|
20
|
+
#
|
21
|
+
# Pallet::Gem.new(pallet) do |g|
|
22
|
+
# g.files = FileList['lib/**/*', '[A-Z]*']
|
23
|
+
# g.executables = FileList['bin/*']
|
24
|
+
# g.tests = FileList['test/**/*']
|
25
|
+
# g.readme = 'README'
|
26
|
+
# end
|
27
|
+
#
|
28
|
+
# These can be changed, and other attributes can be set.
|
29
|
+
#
|
30
|
+
# Pallet::Gem.new(pallet) do |g|
|
31
|
+
# g.files = FileList['**/*']
|
32
|
+
# g.readme = 'Readme.txt'
|
33
|
+
# g.depends << 'log4r' << 'rake' << 'pallet'
|
34
|
+
# g.requirements << 'Debian Linux' << 'a fast processor'
|
35
|
+
# end
|
36
|
+
#
|
37
|
+
# Dependencies are passed directly to the Gem::Specification
|
38
|
+
# backend, so they can be used as GemSpec-style arrays, if you need
|
39
|
+
# explicit version information.
|
40
|
+
#
|
41
|
+
# Pallet::Gem.new(pallet) do |g|
|
42
|
+
# g.depends << ['log4r', '>= 1.4.2']
|
43
|
+
# g.depends << ['pallet', >= 1.0.0']
|
44
|
+
# end
|
45
|
+
#
|
46
|
+
# == Caveats
|
47
|
+
#
|
48
|
+
# * Due to limitations in the gem specification format, executables
|
49
|
+
# _must_ all reside in the same directory -- by default, 'bin/'.
|
50
|
+
#
|
51
|
+
class Gem
|
52
|
+
|
53
|
+
# The name of the rake task we generate. Defaults to 'gem'.
|
54
|
+
attr_accessor :task_name
|
55
|
+
|
56
|
+
# The directory the package will be built into
|
57
|
+
attr_accessor :dest_dir
|
58
|
+
|
59
|
+
# The filename of the package, when built
|
60
|
+
attr_accessor :filename
|
61
|
+
|
62
|
+
# The target platform of the Gem. Defaults to the sane default of
|
63
|
+
# Gem::Platform::RUBY. See the rdoc for Gem::Platform for other
|
64
|
+
# reasonable values.
|
65
|
+
attr_accessor :platform
|
66
|
+
|
67
|
+
# A list of the files to be contained in the package. Does not
|
68
|
+
# have to contain files implied elsewhere (for instance,
|
69
|
+
# _docs_, _executables_, or _tests_).
|
70
|
+
attr_accessor :files
|
71
|
+
|
72
|
+
# A list of executables contained in the gem. All of these +must+
|
73
|
+
# be in the same directory. An exception will be thrown if they
|
74
|
+
# are not.
|
75
|
+
attr_accessor :executables
|
76
|
+
|
77
|
+
# A list of all test scripts which should be contained in the Gem.
|
78
|
+
attr_accessor :tests
|
79
|
+
|
80
|
+
# A list of additional documentation that should be included along
|
81
|
+
# with the automatically generated rdoc pages. The first one
|
82
|
+
# given will be the "default" rdoc page.
|
83
|
+
attr_accessor :docs
|
84
|
+
|
85
|
+
# All rubygems this Gem should depend on.
|
86
|
+
attr_accessor :depends
|
87
|
+
|
88
|
+
# Any additional requirements not satisfiable through rubygems.
|
89
|
+
# These are currently ignored.
|
90
|
+
attr_accessor :requirements
|
91
|
+
|
92
|
+
# Array of additional tasks which should be completed before the
|
93
|
+
# Gem is built.
|
94
|
+
attr_accessor :prerequisites
|
95
|
+
|
96
|
+
DEFAULT_FILES = FileList['lib/**/*']
|
97
|
+
DEFAULT_EXECUTABLES = FileList['bin/*']
|
98
|
+
DEFAULT_TESTS = FileList['test/**/*']
|
99
|
+
DEFAULT_DOCS = %w{readme todo changelog}
|
100
|
+
|
101
|
+
#
|
102
|
+
# Creates a new specification for building a Gem. Yields itself to
|
103
|
+
# the block passed for initialization.
|
104
|
+
#
|
105
|
+
def initialize(pallet)
|
106
|
+
|
107
|
+
# the name of our rake task
|
108
|
+
self.task_name = :gem
|
109
|
+
self.dest_dir = 'pkg'
|
110
|
+
self.platform = ::Gem::Platform::RUBY
|
111
|
+
|
112
|
+
# set up defaults
|
113
|
+
self.files = DEFAULT_FILES
|
114
|
+
self.executables = DEFAULT_EXECUTABLES
|
115
|
+
self.tests = DEFAULT_TESTS
|
116
|
+
self.docs = Dir['*'].find_all {|f| DEFAULT_DOCS.include? f.downcase }
|
117
|
+
self.depends = []
|
118
|
+
self.requirements = []
|
119
|
+
self.prerequisites = []
|
120
|
+
|
121
|
+
yield self if block_given?
|
122
|
+
|
123
|
+
# build the specification
|
124
|
+
@spec = ::Gem::Specification.new do |s|
|
125
|
+
|
126
|
+
# inherited values from the pallet
|
127
|
+
s.name = pallet.name
|
128
|
+
s.version = pallet.version
|
129
|
+
s.author = pallet.author
|
130
|
+
s.email = pallet.email
|
131
|
+
s.summary = pallet.summary
|
132
|
+
s.description = pallet.description
|
133
|
+
|
134
|
+
s.platform = self.platform
|
135
|
+
|
136
|
+
# aggregate list of files to include
|
137
|
+
s.files = files | executables | tests | docs
|
138
|
+
|
139
|
+
# include binary files
|
140
|
+
unless self.executables.empty?
|
141
|
+
dirs = self.executables.map {|f| File.dirname(f) }.uniq
|
142
|
+
dirs.length == 1 or raise RuntimeError, 'all binaries in a Gem must be in the same directory'
|
143
|
+
s.bindir = dirs.first
|
144
|
+
s.executables = self.executables.map {|f| File.basename(f) }
|
145
|
+
end
|
146
|
+
|
147
|
+
# include tests
|
148
|
+
s.test_files = self.tests
|
149
|
+
|
150
|
+
# include additional documentation
|
151
|
+
s.has_rdoc = true
|
152
|
+
s.extra_rdoc_files = self.docs
|
153
|
+
s.rdoc_options << '-S' << '-N'
|
154
|
+
unless self.docs.empty?
|
155
|
+
s.rdoc_options << '--main' << self.docs.first
|
156
|
+
end
|
157
|
+
|
158
|
+
# add dependencies
|
159
|
+
self.depends.each {|dependency| s.add_dependency(*dependency) }
|
160
|
+
s.requirements = self.requirements
|
161
|
+
|
162
|
+
end
|
163
|
+
|
164
|
+
end
|
165
|
+
|
166
|
+
#
|
167
|
+
# Defines the rake task for creating a gem.
|
168
|
+
#
|
169
|
+
def define
|
170
|
+
|
171
|
+
filename = @spec.full_name + '.gem'
|
172
|
+
dest = File.join(self.dest_dir, filename)
|
173
|
+
|
174
|
+
# create a task for the gem
|
175
|
+
desc 'Build this project into a gem'
|
176
|
+
task self.task_name => self.prerequisites + [dest]
|
177
|
+
directory self.dest_dir
|
178
|
+
|
179
|
+
# task to build the package
|
180
|
+
file dest => [self.dest_dir] + @spec.files do
|
181
|
+
when_writing("Building Rubygem") do
|
182
|
+
b = ::Gem::Builder.new(@spec)
|
183
|
+
b.use_ui(::Gem::SilentUI.new) { b.build }
|
184
|
+
mv filename, self.dest_dir
|
185
|
+
end
|
186
|
+
end
|
187
|
+
|
188
|
+
# clobber task
|
189
|
+
task 'clobber' => 'clobber:gem'
|
190
|
+
task 'clobber:gem' do
|
191
|
+
rm dest rescue nil
|
192
|
+
rmdir self.dest_dir rescue nil
|
193
|
+
end
|
194
|
+
|
195
|
+
end
|
196
|
+
|
197
|
+
end
|
198
|
+
end
|
data/share/debian/compat
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
5
|
@@ -0,0 +1 @@
|
|
1
|
+
#CONFFILES#
|
data/share/debian/config
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
Source: #PACKAGE#
|
2
|
+
Section: non-free/damballa
|
3
|
+
Priority: extra
|
4
|
+
Maintainer: #USERNAME# <#EMAIL#>
|
5
|
+
Build-Depends: #BUILD_DEPS#
|
6
|
+
Standards-Version: #POLICY#
|
7
|
+
|
8
|
+
Package: #PACKAGE#
|
9
|
+
Architecture: #ARCHITECTURE#
|
10
|
+
Depends: ${shlibs:Depends}, ${misc:Depends}, #DEPENDS#
|
11
|
+
Description: #SUMMARY#
|
12
|
+
#DESCRIPTION#
|
@@ -0,0 +1,7 @@
|
|
1
|
+
This package was created automatically using pallet, for #USERNAME#
|
2
|
+
<#EMAIL#> on #DATE#.
|
3
|
+
|
4
|
+
This software is for internal use at Damballa, Inc. only. Copyrights
|
5
|
+
are claimed on all components of this package owned by Damballa.
|
6
|
+
|
7
|
+
No rights to use, distribute, or modify this program are granted.
|
data/share/debian/dirs
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
#DIRECTORIES#
|
data/share/debian/docs
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
#DOCS#
|
@@ -0,0 +1 @@
|
|
1
|
+
#FILES#
|
data/share/debian/postrm
ADDED
data/share/debian/rules
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
#!/usr/bin/make -f
|
2
|
+
|
3
|
+
# Uncomment this to turn on verbose mode.
|
4
|
+
#export DH_VERBOSE=1
|
5
|
+
|
6
|
+
# The Debhelper compatibility level to use
|
7
|
+
#export DH_COMPAT=4
|
8
|
+
|
9
|
+
# Debian policy recommended CFLAGS
|
10
|
+
CFLAGS = -g -O2 -Wall
|
11
|
+
|
12
|
+
build: build-stamp
|
13
|
+
build-stamp:
|
14
|
+
dh_testdir
|
15
|
+
#MAKE#
|
16
|
+
touch $@
|
17
|
+
|
18
|
+
clean:
|
19
|
+
dh_testdir
|
20
|
+
dh_testroot
|
21
|
+
rm -f build-stamp
|
22
|
+
exit
|
23
|
+
#CLEAN#
|
24
|
+
dh_clean
|
25
|
+
|
26
|
+
install: build
|
27
|
+
dh_testdir
|
28
|
+
dh_testroot
|
29
|
+
dh_clean
|
30
|
+
dh_installdirs
|
31
|
+
dh_install
|
32
|
+
#INSTALL#
|
33
|
+
|
34
|
+
# Either binary-indep or binary-arch, depending on which one isn't
|
35
|
+
# actually used. Both must be present.
|
36
|
+
binary-#UNUSED-MODE#: build install
|
37
|
+
|
38
|
+
# Either binary-indep or binary-arch, depending on which one is
|
39
|
+
# actually used. Both must be present.
|
40
|
+
binary-#MODE#: build install
|
41
|
+
dh_testdir
|
42
|
+
dh_testroot
|
43
|
+
dh_installchangelogs #CHANGELOG#
|
44
|
+
dh_installdocs -X.svn
|
45
|
+
dh_installdebconf
|
46
|
+
dh_installlogrotate
|
47
|
+
dh_installinit
|
48
|
+
dh_installcron
|
49
|
+
dh_installman
|
50
|
+
dh_strip
|
51
|
+
dh_compress
|
52
|
+
dh_fixperms
|
53
|
+
dh_makeshlibs
|
54
|
+
dh_installdeb
|
55
|
+
dh_shlibdeps
|
56
|
+
dh_gencontrol
|
57
|
+
dh_md5sums
|
58
|
+
dh_builddeb
|
59
|
+
|
60
|
+
binary: binary-indep binary-arch
|
61
|
+
.PHONY: build clean binary-indep binary-arch binary install
|
@@ -0,0 +1,10 @@
|
|
1
|
+
Template: #PACKAGE#/requirements
|
2
|
+
Type: note
|
3
|
+
Description: Additional requirements must be filled!
|
4
|
+
This package requires the following software or conditions which
|
5
|
+
cannot be fulfilled by apt:
|
6
|
+
.
|
7
|
+
#REQUIREMENTS#
|
8
|
+
.
|
9
|
+
Until you satisfy these requirements, this software WILL NOT WORK. So
|
10
|
+
satisfy them. Now.
|
metadata
ADDED
@@ -0,0 +1,80 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
rubygems_version: 0.9.0
|
3
|
+
specification_version: 1
|
4
|
+
name: pallet
|
5
|
+
version: !ruby/object:Gem::Version
|
6
|
+
version: 1.2.1
|
7
|
+
date: 2007-04-30 00:00:00 -04:00
|
8
|
+
summary: Automated packaging tool for different languages and OSes
|
9
|
+
require_paths:
|
10
|
+
- lib
|
11
|
+
email: stouset@damballa.com
|
12
|
+
homepage:
|
13
|
+
rubyforge_project:
|
14
|
+
description: ""
|
15
|
+
autorequire:
|
16
|
+
default_executable:
|
17
|
+
bindir: bin
|
18
|
+
has_rdoc: true
|
19
|
+
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">"
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 0.0.0
|
24
|
+
version:
|
25
|
+
platform: ruby
|
26
|
+
signing_key:
|
27
|
+
cert_chain:
|
28
|
+
post_install_message:
|
29
|
+
authors:
|
30
|
+
- Stephen Touset
|
31
|
+
files:
|
32
|
+
- lib/pallet
|
33
|
+
- lib/install_spec.rb
|
34
|
+
- lib/pallet.rb
|
35
|
+
- lib/dependencies.rb
|
36
|
+
- lib/pallet/gem.rb
|
37
|
+
- lib/pallet/deb.rb
|
38
|
+
- share/debian
|
39
|
+
- share/debian/changelog
|
40
|
+
- share/debian/control
|
41
|
+
- share/debian/dirs
|
42
|
+
- share/debian/compat
|
43
|
+
- share/debian/postinst
|
44
|
+
- share/debian/postrm
|
45
|
+
- share/debian/config
|
46
|
+
- share/debian/install
|
47
|
+
- share/debian/conffiles
|
48
|
+
- share/debian/copyright
|
49
|
+
- share/debian/docs
|
50
|
+
- share/debian/rules
|
51
|
+
- share/debian/templates
|
52
|
+
- CHANGELOG
|
53
|
+
- README
|
54
|
+
test_files: []
|
55
|
+
|
56
|
+
rdoc_options:
|
57
|
+
- -S
|
58
|
+
- -N
|
59
|
+
- --main
|
60
|
+
- CHANGELOG
|
61
|
+
extra_rdoc_files:
|
62
|
+
- CHANGELOG
|
63
|
+
- README
|
64
|
+
executables: []
|
65
|
+
|
66
|
+
extensions: []
|
67
|
+
|
68
|
+
requirements:
|
69
|
+
- fakeroot
|
70
|
+
- dpkg-dev
|
71
|
+
dependencies:
|
72
|
+
- !ruby/object:Gem::Dependency
|
73
|
+
name: rake
|
74
|
+
version_requirement:
|
75
|
+
version_requirements: !ruby/object:Gem::Version::Requirement
|
76
|
+
requirements:
|
77
|
+
- - ">"
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: 0.0.0
|
80
|
+
version:
|