Uploading to Extras-devel

(Preparing a source package)
(Add dput line)
Line 130: Line 130:
  allow_unsigned_uploads = 0
  allow_unsigned_uploads = 0
  incoming = /var/www/extras/incoming-nonfree/diablo
  incoming = /var/www/extras/incoming-nonfree/diablo
 +
 +
Upload with dput:
 +
 +
dput -f diablo-extras-devel-non-free PACKAGE_VERSION_*.changes
 +
The packages are imported into the repository once per hour.  
The packages are imported into the repository once per hour.  

Revision as of 11:38, 24 November 2008

Contents

Pre-requisites

  • A Garage account: [signup]
  • An "invitation" to upload: [request] (nb without this you can't do anything - even upload an ssh key)
  • ssh-keygen
  • debsign

Setup

Setting up SSH and PGP to upload to extras

Put your SSH key[1] and PGP key[2] into Garage.

  • If you need to create an RSA SSH key (Make sure it is an RSA key):
  1. ssh-keygen -t rsa (enter enter, passphraseIfDesired, enter).
  2. Copy the contents of ~/.ssh/id_rsa.pub in the "Public SSH keys" section of your garage account maintenance page.
  • If you need to create a PGP key:
  1. Create the key using: gpg --gen-key:
    1. Select default key ("DSA and Elgamal")
    2. Minimum keysize of 1024
    3. Key does not expire
    4. Enter your name, email, (comment)
    5. Select a passphrase (that you will never forget...)
    6. While key generation is running, surf the web / draw onscreen / watch video on your machine to generate enough entropy input - this can take a few minutes
  2. Export the key using: gpg --export --armor jqdoe@example.com >mypubkey.asc
  3. Copy the contents of mypubkey.asc file to the extras sign-up page.

Setting up Scratchbox to use the extras repository

Add the extras repository to your Scratchbox install:

  1. Login to Scratchbox
  2. Create /etc/apt/sources.list.d/extras-repo.list
  3. Update apt's information.

Note: this should be done in both your ARMEL and x86 targets.

/scratchbox/login
cat >/etc/apt/sources.list.d/extras-repo.list <<EOT
#Maemo extras
deb http://repository.maemo.org/extras/ diablo free non-free
deb-src http://repository.maemo.org/extras/ diablo free
EOT
fakeroot apt-get update

Preparing a source package

Upstream sources can be easily repacked using mud-builder which automates the steps below. Alternatively, you can do it directly using Debian tooling:

Create your package with dpkg-buildpackage in the project source directory:

dpkg-buildpackage -rfakeroot -sa -S -i

You may verify that your Build-Depends field in debian/control is complete by running

dpkg-depcheck -m dpkg-buildpackage -rfakeroot -b

in the source tree. (You'll need to fakeroot apt-get install devscripts for this to work).

Note that the Extras Assistant https://garage.maemo.org/extras-assistant/index.php can be used to upload (without signing or keys). It asks for the required files using a straightforward web interface.

Autobuilder special considerations

If it builds under your local scratchbox but doesn't on the autobuilder, you need to do the above dep-check and/or otherwise correct the Build-Depends field as the builder uses the minimal rootstrap and only adds extra packages if they are mentioned in this field (This includes most -dev versions which include the special libraries and includes, and the pkg-config stuff and applies to almost everything)

Also make sure the Section: in the control file is *all lowercase*, e.g. user/navigation not user/Navigation, otherwise after building it will silently NOT be moved to extras-devel

Upload

Sign the package

Sign the .changes file (you'll need to do it outside scratchbox) with

debsign -k<key-id> <package>.changes

If you have multiple keys or don't know your key-id, you can find it with

gpg --list-keys

Example output:

pub   1024D/FEA210ED 2007-06-14 [expired: 2008-06-13]
uid                  Niels Breet (Maemo) <maemo@xxx>
pub   4096R/80C3F817 2008-06-30 [expires: 2009-06-30]
uid                  Niels Breet (Maemo) <niels@xxx>

The key-id is found in the second column, in this case FEA210ED or 80C3F817.

Upload the package

free packages

Describe: upload source package to diablo-extras-builder via dput[1], scp[2] or through the web interface[3].

The /etc/dput.cf sections for free packages are:

[chinook-extras-builder]
login = <your_garage_login_name>
fqdn = garage.maemo.org
method = scp
hash = md5
allow_unsigned_uploads = 0
incoming = /var/www/extras-devel/incoming-builder/chinook
[diablo-extras-builder]
login = <your_garage_login_name>
fqdn = garage.maemo.org
method = scp
hash = md5
allow_unsigned_uploads = 0
incoming = /var/www/extras-devel/incoming-builder/diablo

Then run:

dput -f diablo-extras-builder PACKAGE_VERSION_*.changes
dput -f chinook-extras-builder PACKAGE_VERSION_*.changes

non-free packages

Publishing non-free packages in the Maemo Extras repository for Diablo is done via dput. Direct upload of binary packages is allowed for non-free packages only.

Settings for /etc/dput.cf for Diablo Extras-Devel non-free:

[diablo-extras-devel-non-free]
login = <your_garage_login_name>
fqdn = garage.maemo.org
method = scp
hash = md5
allow_unsigned_uploads = 0
incoming = /var/www/extras-devel/incoming-nonfree/diablo

Settings for /etc/dput.cf for Diablo Extras non-free:

[diablo-extras-non-free]
login = <your_garage_login_name>
fqdn = garage.maemo.org
method = scp
hash = md5
allow_unsigned_uploads = 0
incoming = /var/www/extras/incoming-nonfree/diablo

Upload with dput:

dput -f diablo-extras-devel-non-free PACKAGE_VERSION_*.changes


The packages are imported into the repository once per hour.

Please make sure your dependencies are correct. If there is a dependency problem between a free and a non-free package, the non-free package will most likely be removed first. (As we can recompile free packages, but can't do that for non-free ones)

There is no promotion available for non-free. You need to upload your package to the right repository yourself.

Promotion

After the autobuilder builds a package, it will be available in Extras-Devel. This is the experimental repository.

Please make sure your package is ready for the masses and at least test:

  • if it installs without problems
  • if it uninstalls without problems
  • if it doesn't introduce dependency problems for other packages.

You can promote your package to Extras with the promotion interface.

Resources

Reference

Template:Refs


Cite error: <ref> tags exist, but no <references/> tag was found