diff options
author | Silvio Rhatto <rhatto@riseup.net> | 2014-11-07 16:26:52 -0200 |
---|---|---|
committer | Silvio Rhatto <rhatto@riseup.net> | 2014-11-07 16:26:52 -0200 |
commit | ba88556d92eb758d3fd9b74d3bd41a15c9bf5a85 (patch) | |
tree | 44e963093a664d75bba95f6174cd0a01e01f8311 /leap.md | |
parent | 1acdc1a903609a431b332d6fe2bd5c4d146935cb (diff) | |
download | debian-ba88556d92eb758d3fd9b74d3bd41a15c9bf5a85.tar.gz debian-ba88556d92eb758d3fd9b74d3bd41a15c9bf5a85.tar.bz2 |
Moving LEAP packaging to a separate file
Diffstat (limited to 'leap.md')
-rw-r--r-- | leap.md | 147 |
1 files changed, 147 insertions, 0 deletions
@@ -0,0 +1,147 @@ +Example: packaging leap_cli and dependencies +============================================ + +Determine dependencies +---------------------- + +First, in a *fresh* vagrant box with *sid* and *testing* in the `sources.list`: + + sudo apt-get install rubygems gem2deb + sudo gem install leap_cli + +Then we get the dependencies and build all packages: + + dependencies=" `gem list | cut -d '(' -f 1` " + +Which currently gives us the following result: + +* activemodel +* activesupport +* base32 +* blockenspiel +* builder +* capistrano +* colored +* command_line_reporter +* gli +* gpgme +* highline +* i18n +* json +* json_pure +* leap_cli +* mini_portile +* minitest +* net-scp +* net-sftp +* net-ssh +* net-ssh-gateway +* paint +* tee +* thread_safe +* tzinfo +* versionomy +* ya2yaml + +Gem cleanup: + + sudo gem uninstall $dependencies + +Check existing dependencies: + + for item in $dependencies; do + package=ruby-"`echo $item | sed -e 's/_/-/'`" + packages="$packages $package" + done + + apt-get install --dry-run $packages + +Then: + +* Check for non-existing packages. +* Try different package names. +* Update your list of existing `$packages`. + +In this example we have the following `$already_ported` dependencies: + +* capistrano +* ruby-activemodel +* ruby-activesupport +* ruby-blockenspiel +* ruby-builder +* ruby-colored +* ruby-gpgme +* ruby-highline +* ruby-i18n +* ruby-json +* ruby-minitest +* ruby-net-scp +* ruby-net-sftp +* ruby-net-ssh +* ruby-net-ssh-gateway +* ruby-paint +* ruby-thread-safe +* ruby-tzinfo +* ruby-versionomy + +That means the following `$gems` needs to be packaged: + +* base32 +* command_line_reporter +* gli +* json_pure (we can just use ruby-json and ignore this dependenc) +* leap_cli +* mini_portile +* tee +* ya2yaml + +In summary, we need to port the following `$new_packages`: + +* ruby-base32 +* ruby-command-line-reporter +* ruby-gli +* ruby-mini-portile +* ruby-tee +* ruby-ya2yaml +* ruby-leap-cli + +Build remaining packages +------------------------ + + for gem in $gems; do + gem2deb $gem + done + +Getting the source for the existing packages +-------------------------------------------- + + for package in $already_ported; do + apt-get -t jessie source --download-only $package + dpkg-source -x $package*dsc + done + +Next steps +---------- + +* Fix `debian/control` and other `FIXME` on each package. +* Put `debian/` folder in a `debian` branch on each source. +* Fix [tests](https://wiki.debian.org/Teams/Ruby/Packaging/Tests). +* [Other best practices](https://wiki.debian.org/Teams/Ruby/RubyExtras/UpstreamDevelopers). +* [Review the code](https://manual.sarava.org/specs/code/). +* Automate building with pbuilder for `sid`. +* Fix lintian warnings. +* Upstream pull requests. +* Backport everything to `wheezy`. + +Per-package tasks +----------------- + +* ruby-faker: + * https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=765124 + * https://github.com/rails/rails/issues/13164 +* ruby-leap-cli: + + dpkg: erro ao processar o arquivo ruby-leap-cli_1.5.6-1_all.deb (--install): + a tentar sobre-escrever '/usr/lib/ruby/vendor_ruby/core_ext/hash.rb', que também está no pacote ruby-sshkit 1.4.0-1 + dpkg-deb (sub-processo): a descomprimir membro do arquivo: erro de escrita de lzma: Pipe quebrado + |