Differences between revisions 1 and 104 (spanning 103 versions)
Revision 1 as of 2006-03-06 15:01:35
Size: 10405
Editor: ?JunichiUekawa
Comment: shamelessly taken from http://demudi.agnula.org/wiki/DevelopPackaging
Revision 104 as of 2010-12-28 12:09:55
Size: 10126
Editor: ?ArnoutEngelen
Comment: link to page about deprecation status of debian-multimedia@lists.debian.org as a Maintainer/Uploader
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:

This page thanks to great work from tim hall, shamelessly re-used by dancerj
#format wiki
#language en
<<BR>>

||<tablestyle="float:right; font-size: 0.9em; width:40%; background:#F1F1ED; margin: 0 0 1em 1em;" style="border:0; padding:0em;"><<TableOfContents(2)>>||
||<style="border:0; padding:0.5em;"><<Navigation(siblings,1)>>||

= Develop Packaging =

= Packages maintained by the Debian Multimedia Team =

Here you can find a list of packages maintained by the Debian Multimedia Team:

http://qa.debian.org/developer.php?login=pkg-multimedia-maintainers@lists.alioth.debian.org

http://qa.debian.org/developer.php?login=debian-multimedia@lists.debian.org ([[DebianMultimedia/OldMaintainerDeprecation|deprecated]])

New packages should set the Maintainer field to {{{Debian Multimedia Maintainers <pkg-multimedia-maintainers@lists.alioth.debian.org>}}}. Existing packages should move to using that address on a best-effort basis.

All source packages must use the [[http://git.debian.org/git/pkg-multimedia/|pkg-multimedia git area]] in alioth.
Line 7: Line 24:
The A/!DeMuDi project needs help to create new Debian packages and maintain the existing ones. If you want to contribute to this effort, but you are new to the Debian packaging systems, here follows some information to get you started. The Debian Multimedia Maintainers need help to create new Debian packages and maintain the existing ones. If you want to contribute to this effort, but you are new to the Debian packaging systems, here follows some information to get you started. Also see [[http://wiki.debian.org/DebianMultimedia/Sponsoring|DebianMultimedia/Sponsoring]] for Best Practices with regard to obtaining sponsorship for your uploads if you are not a DD or DM.

== Packaging guidelines ==
  * Packages should use git, as mentioned above. Desirable is being able to use DebianPkg:git-buildpackage.
  * Upstream sources should be kept in the ''upstream'' branch and the the debian packaging in the ''master'' branch.
  * DebianPkg:quilt should be used for patch management, and the ''master'' branch should only differ from the ''upstream'' branch in files inside the debian/ directory. This means no direct changes to the source in the master branch.
  * Patches should have a [[http://dep.debian.net/deps/dep3/|DEP-3]] compliant header, and should be submitted upstream (if relevant) before uploading to Debian.
  * The maintainer field should be set to {{{Debian Multimedia Maintainers <pkg-multimedia-maintainers@lists.alioth.debian.org>}}}
  * The git repository should be hosted in alioth, under the pkg-multimedia project. It should forward commit messages to {{{pkg-multimedia-commits@lists.alioth.debian.org}}} and ''package''{{{_cvs@packages.qa.debian.org}}}
   * You can use the setup-repository script in /git/pkg-multimedia to create the bare repository with commit messages enabled. The repository should be named as the source package name for the message forwarding to work (eg, the repository for source package liblo is named liblo.git).
  * The control file should use the Vcs-Git and Vcs-Browser tags.


== Workflow guidelines ==
  * '''One change per commit'''. This is very important, it eases review, cherry picking, bisecting (and thus debugging) and backporting.
  * Do not commit `debian/changelog` along with the changes. This practice makes cherry picking and backporting changes unnecessarily hard. The changelog is generated with [[DebianMan:1/git-dch|git-dch(1)]] at the time of upload. Also, packages should use the changelog release heuristic of [[DebianMan:1/dch|dch(1)]].
  * The commit message should have a short (<78 characters) summary of the change followed by a newline. After that, you can elaborate on the change. The summary is treated specially by various tools like [[DebianMan:1/git-dch|git-dch(1)]], or the commitdiff mailer.
  * After each upload to the Debian FTP servers, the first commit should be creating a new changelog entry, to ease testing of unreleased packages.
  * Tags should be created (and signed) by the uploading DD, in the case of the debian tags in the master branch, and by the person importing the upstream sources in the case of upstream tags.
Line 11: Line 46:
  * [http://www.debian.org/doc/devel-manuals#maint-guide Debian New Maintainers' Guide]
  * [http://www.debian.org/doc/devel-manuals#devref Debian Developer's Reference]
  * [http://www.debian.org/doc/devel-manuals#policy Debian Policy Manual]
 
== Lists of packages and applications ==
 
  * [http://www.debian.org/devel/wnpp/ Work-Needing and Prospective Packages]

Key to status column

  * '''O''' - The package has been ‘Orphaned’. It needs a new maintainer as soon as possible. If the package has a Priority higher or equal to standard, the severity should be set to important.
  * '''RFA''' - This is a ‘Request for Adoption’. Due to lack of time, resources, interest or something similar, the current maintainer is asking for someone else to maintain this package. They will maintain it in the meantime, but perhaps not in the best possible way. In short: the package needs a new maintainer.
  * '''RFH''' - This is a ‘Request For Help’. The current maintainer wants to continue to maintain this package, but they need some help to do this, because their time is limited or the package is quite big and needs several maintainers.
  * '''ITP''' - This is an ‘Intent To Package’. Please submit a package description along with copyright and URL in such a report.
  * '''RFP''' - This is a ‘Request For Package’. Someone has found an interesting piece of software and would like someone else to maintain it for Debian. Please submit a package description along with copyright and URL in such a report.
  * '''not in WNPP''' - That's because you haven't submitted an RFP for it yet (see above).

You can click on the links in this column to bring up the full bug reports.

== Audio and multimedia applications which need help ==

|| '''Package''' || '''Status''' || '''Upstream''' || '''Comment''' ||
|| alsa-firmware || [http://bugs.debian.org/276798 RFP:] || Wishlist || part of ALSA and needed for several cards ||
|| banshee (sonance) || [http://bugs.debian.org/296467 ITP] || [http://sonance.aaronbock.net/ http://sonance.aaronbock.net/] || GNOME audio player based on GStreamer and Mono ||
|| [http://bugs.debian.org/cantus cantus] || [http://bugs.debian.org/287985 O] || [http://cvs.gna.org/cvsweb/?cvsroot=cantus http://cvs.gna.org/cvsweb/?cvsroot=cantus] || Gnome tool to mass-rename/tag mp3 and ogg files - Has a couple of minor bugs that probably wouldn't be hard to fix. Orphaned 2004-12-31. ||
|| didgeridoo || not in WNPP || [http://www.linux-sound.org/rtsynth/ http://www.linux-sound.org/rtsynth/] || voice controlled resonance instrument for the jack-audio-connection-kit ||
|| dirac || not in WNPP || [http://dirac.sf.net/ http://dirac.sf.net/] || video codec that provides general-purpose video compression and decompression tools comparable with state-of-the-art systems ||
|| dssi || [http://bugs.debian.org/280165 ITP:] ||http://www.student.nada.kth.se/~d00-llu/music_dssi.php || See all the other dssi0.9 ITPs. ||
|| dssi0.9-plugin-fluidsynth || [http://bugs.debian.org/321465 ITP:] || || DSSI wrapper for the !FluidSynth SoundFont-playing software synthesizer. ||
|| dssi0.9-plugin-hexter || [http://bugs.debian.org/321469 ITP:] || || Yamaha DX7 modeling DSSI plugin. ||
|| dssi0.9-plugin-ll-scope || [http://bugs.debian.org/321468 ITP:] || || An oscilloscope DSSI plugin. ||
|| dssi0.9-plugin-sineshaper || [http://bugs.debian.org/321488 ITP:] || || Monophonic synth plugin with two oscillators and waveshapers. ||
|| dssi0.9-plugin-vst || [http://bugs.debian.org/321463 ITP:] || || Wrapper plugin for Windows VSTs to function as DSSI plugin. ||
|| dssi0.9-plugin-xsynth || [http://bugs.debian.org/321464 ITP:] || || classic-analog (VCOs-VCF-VCA) style software synthesizer. ||
|| [http://bugs.debian.org/em8300 em8300] || [http://bugs.debian.org/346583 RFA:] || || Drivers for DXR3/Hollywood+ decoder cards - Debian maintainer has become upstream too & needs help. ||
|| [http://bugs.debian.org/freebirth freebirth] || [http://bugs.debian.org/302897 ITA] || Dead upstream page || Bass synthesizer/sample player/sequencer similar to Rebirth ||
|| freecycle || [http://bugs.debian.org/303307 ITP:] || || a beat slicer ||
|| freewheeling || [http://bugs.debian.org/291493 ITP] || [http://freewheeling.sf.net/ http://freewheeling.sf.net/] || live looping musical instrument ||
|| [http://bugs.debian.org/freqtweak freqtweak] || [http://bugs.debian.org/352540 O:] || || Realtime audio frequency spectral manipulation ||
|| [http://bugs.debian.org/gcombust gcombust] || [http://bugs.debian.org/288267 O:] || || GTK+ based CD mastering and burning program ||
|| gmorgan || [http://bugs.debian.org/338691 ITP:] || || MIDI rhythm station emulator software ||
|| gplflash || not in WNPP || [http://gplflash.sourceforge.net/ http://gplflash.sourceforge.net/] || a fully Flash 7-compliant replacement for the restrictively licensed Macromedia Flash Player and browser plugin ||
|| [http://bugs.debian.org/icecast-client icecast-client] || [http://bugs.debian.org/279526 O:] || || Streaming Mpeg Layer III feeder - deprecated & to be removed. ||
|| [http://bugs.debian.org/kino kino] || [http://bugs.debian.org/298106 RFA] || [http://kino.schirmacher.de/ http://kino.schirmacher.de/] || Non-linear editor for Digital Video data ||
|| ktoon || [http://bugs.debian.org/295760 ITP:] || http://ktoon.toonka.com/ || 2d animation toolkit - being held up by libming licensing issues, help? ||
|| latencytest || not in WNPP || [http://www.alsa-project.org/~iwai/alsa.html#LatencyTest http://www.alsa-project.org/~iwai/alsa.html#LatencyTest] || Tool to measure kernel latency ||
|| lives || [http://bugs.debian.org/247337 ITP] || [http://www.xs4all.nl/~salsaman/lives/ http://www.xs4all.nl/~salsaman/lives/] || LiVES is the Linux Video Editing System ||
|| [http://bugs.debian.org/mctools-lite mctools-lite] || [http://bugs.debian.org/352538 O:] || || A CD player and audio mixer for X ||
|| midicomp || not in WNPP || [http://midicomp.opensrc.org/ http://midicomp.opensrc.org/] || utility to "compile" and "decompile" midi files from/to text files ||
|| [http://bugs.debian.org/music123 music123] || [http://bugs.debian.org/285163 O:] || || A command-line shell for sound-file players ||
|| [http://bugs.debian.org/nas nas] || [http://bugs.debian.org/354174 RFH:] || || The Network Audio System ||
|| om || not in WNPP || [http://www.nongnu.org/om-synth/ http://www.nongnu.org/om-synth/] || modular synthesizer for GNU/Linux audio systems using the Jack audio server and LADSPA or DSSI plugins ||
|| pvoc || [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=282644 RFP] || [http://quitte.de/dsp/pvoc.html http://quitte.de/dsp/pvoc.html] || LADSPA plugins and command line utilities for time stretching/pitch shifting ||
|| qsampler || [http://bugs.debian.org/280576 ITP:] || http://qsampler.sourceforge.net/qsampler-index.html#Downloads || A !LinuxSampler Qt GUI Interface ||
|| [http://bugs.debian.org/rawrec rawrec] || [http://bugs.debian.org/288215 O:] || || Buffered raw audio recorder/player - looks dead. ||
|| rivendell || not in WNPP || [http://www.salemradiolabs.com/rivendell/ http://www.salemradiolabs.com/rivendell/] || complete radio broadcast automation solution ||
|| [http://bugs.debian.org/rosegarden2 rosegarden2] || [http://bugs.debian.org/352537 O:] || || An integrated MIDI sequencer and musical notation editor - no longer in development, to be removed? ||
|| [http://bugs.debian.org/rosegarden4 rosegarden4] || [http://bugs.debian.org/352541 ITA:] || || music editor and MIDI/audio sequencer - being adopted. ||
|| [http://bugs.debian.org/rosegarden rosegarden] || [http://bugs.debian.org/352543 O:] || || An integrated MIDI sequencer and musical notation editor ||
|| rtirq || [http://bugs.debian.org/307786 ITP:] || || Startup script for realtime-preempt enabled kernels ||
|| rtsynth || not in WNPP || [http://www.linux-sound.org/rtsynth/ http://www.linux-sound.org/rtsynth/] || a midi event triggered real time synth for Linux ||
|| [http://bugs.debian.org/sfront sfront] || [http://bugs.debian.org/352542 O:] || || MPEG 4 Structured Audio decoder ||
|| [http://bugs.debian.org/slimp3 slimp3] || [http://bugs.debian.org/303617 ITA:] || || MPEG Layer III Streaming Server ||
|| [http://bugs.debian.org/soundgrab soundgrab] || [http://bugs.debian.org/288216 O:] || || play a raw audio file and interactively select and save pieces - looks dead. ||
|| [http://bugs.debian.org/sound-recorder sound-recorder] || [http://bugs.debian.org/288211 O:] || || Direct-to-disk recording and play-back programs. - looks dead. ||
|| [http://bugs.debian.org/tapiir tapiir] || [http://bugs.debian.org/352539 O:] || || A tool for real time audio delay and feedback effects ||
|| [http://bugs.debian.org/volume.app volume.app] || [http://bugs.debian.org/274281 ITA:][http://bugs.debian.org/304826 merged with 304826] || || A dockapp enabling easy control of the volume level - looks like it's been adopted. ||
|| [http://bugs.debian.org/vstream vstream] || [http://bugs.debian.org/349197 O:] || || bttv video capture utility aimed at making MPEGs - no longer developed upstream. ||
|| wasp || not in WNPP || [http://artemiolabs.com/software/wasp/ http://artemiolabs.com/software/wasp/] || LADSPA plugins ||
|| wavbreaker || [http://bugs.debian.org/282456 ITP:] || http://huli.org/wavbreaker || Takes a wave file and break it up into multiple wave files ||
|| [http://bugs.debian.org/xfonts-artwiz xfonts-artwiz] || [http://bugs.debian.org/344396 O:] || || Artwiz X11 fonts - no longer work with Xorg ||
|| yatm || not in WNPP || [http://delysid.org/yatm.html http://delysid.org/yatm.html] || Ogg and mp3 player with time stretching capabilities ||
|| [http://bugs.debian.org/zinf zinf] || [http://bugs.debian.org/328956 RFA:] || || Extensible, cross-platform audio player - Upstream may be dead? ||
  * [[http://www.debian.org/doc/devel-manuals#maint-guide|Debian New Maintainers' Guide]]
  * [[http://www.debian.org/doc/devel-manuals#devref|Debian Developer's Reference]]
  * [[http://www.debian.org/doc/devel-manuals#policy|Debian Policy Manual]]
  * [[http://wiki.debian.org/Alioth/Git | Using git on Alioth]]
  * [[http://honk.sigxcpu.org/projects/git-buildpackage/manual-html/gbp.html | git-buildpackage online documentation]] (offline: /usr/share/doc/git-buildpackage/manual-html)
  * [[http://www.netfort.gr.jp/~dancer/column/libpkg-guide/libpkg-guide.html|Debian Library Packaging guide]]

== Proposing new packages for pkg-multimedia ==

 * Don't bother with git for packaging new software. Instead, package it properly following DebianPolicy and the [[ http://www.debian.org/doc/developers-reference/ | DevelopersReference ]].

 * If you are confident with your package, propose it for review on the pkg-multimedia-maintainers mailing list. Link to your package preferably in a way that can be easily used with [[dget]]. The [[ http://mentors.debian.net | debian mentors ]] site is a good place.

 * Members of the team will then review your package and give you hints how to improve it. If the package is "good enough" (at the reviewer's discretion), he will setup a repository on git.debian.org and integrate your package while preserving attribution.

== Working on existing packages with git for newbies ==

  * As a very basic introduction, first read PackagingWithGit.

  * We generally follow the workflow and defaults of [[ http://honk.sigxcpu.org/projects/git-buildpackage/manual-html/gbp.html | git-buildpackage ]]

 * locate the packaging branch on http://git.debian.org. All pkg-multimedia branches have pkg-multimedia in their url. Click on the leftmost link in that line. That will bring you to the summary of the project.

 * Note the metadata just above the shortlog, it contains 2 URLs, one of
   them starting with `git://`

 * then [[ http://honk.sigxcpu.org/projects/git-buildpackage/manual-html/gbp.man.gbp.clone.html | gbp-clone(1) ]] to get a copy of the repository. E.g.

{{{
$ gbp-clone --pristine-tar git://git.debian.org/pkg-multimedia/jack-audio-connection-kit.git
}}}

 * Do changes to that branch, build the package, test your changes, and commit early and often!

 * If someone else has committed while you are working on the branch, you need to integrate his changes. For this you have 2 options:

 * if your local changes are rather minor and clean, rebase when using [[ http://www.kernel.org/pub/software/scm/git/docs/git-pull.html | git-pull(1) ]]:
{{{
$ git pull --rebase origin
}}}

 * if you rather don't want to break your history because you think that your changes are rather large and are likely to interfere with the other changes, better merge them with:

{{{
$ git pull origin
}}}

 * In case you want to cleanup your local commits before pushing, use [[ http://www.kernel.org/pub/software/scm/git/docs/git-rebase.html | git-rebase(1) ]]:

{{{
$ git rebase -i origin/master
}}}

   You will be presented a textfile where you can specify what of your local commits you want to modify, drop or squish (merge with the previous one). You can also improve your commit message here.

   Make sure that you don't rewrite already published commits.

 * In order to get comments on your (preferably cleaned up) commits, use [[ http://www.kernel.org/pub/software/scm/git/docs/git-format-patch.html | git-format-patch(1) ]] to generate patches of your commits and email them to the mailing list. Any committer can do this while preserving attribution.

 * None of the steps above require membership in the pkg-multimedia alioth group. All of that can be done totally anonymously!

= Common tasks for team members =

== Uploading proposed package to the team git repository ==

 * First create a repository on git.debian.org:

{{{
$ ssh git.debian.org /git/pkg-multimedia/setup-repository <project>
}}}


 * Then import the sources locally, register the remote archive and push your commits (i.e. upload changes) with the following commands:

{{{
$ cd /path/to/sources/
$ git-import-dsc --pristine-tar <project>_0.0.1-1.dsc
$ cd <project>
$ git remote add alioth ssh://user@git.debian.org/git/pkg-multimedia/<project>.git
$ git push alioth master upstream pristine-tar --tags
}}}

== Uploading new upstream version to existing repository ==

 * Updating a git branch

{{{
$ git checkout master
$ git pull
}}}

 * update local branches without switching to them

{{{
$ git remote update
$ git fetch alioth upstream:upstream pristine-tar:pristine-tar
}}}

 * merging a new upstream version

{{{
$ git-import-orig --pristine-tar /path/to/<package>_0.0.1.orig.tar.bz
}}}

 * resolve merge conflicts, review your changes e.g. with `gitk`

{{{
$ git commit
}}}

 * pushing new revisions

{{{
$ git push alioth master upstream pristine-tar --tags --dry-run
}}}

 * if happy, remove the --dry-run parameter

 *'''Assumptions in all cases'''
 * in the source tree
 * the remote 'alioth' is setup properly


== Removing/Adding debian tags to repository ==

 * Removing debian tag

{{{
$ git tag -d debian/0.0.1-1
}}}

 * Adding debian tag

{{{
$ git tag [-a|-s] "debian/0.0.1-1" -m "Debian release 0.0.1-1"
}}}

 * -s (or -u <key>) for GPG-signed tag
 * -a for unsigned tag

{{{
$ git push alioth master
}}}

 * Replacing a previously set tag:

{{{

$ git tag -f [-a|-s] "debian/1.2.3-1" -m "Debian release 1.2.3-1"

}}}

== Common configuration options ==

These parameters should be placed in the `debian/gbp.conf` file.
(uncomment compression line if upstream tarball(s) are not gzip-compressed)
{{{
[DEFAULT]
pristine-tar = True
sign-tags = True
#compression = bzip2
}}}

If you adopt the dpkg source format ''3.0 (quilt)'' you should consider appending the following line to the `.gitignore` file:
{{{
.pc
}}}

----
Work in progress : We're checking all the WNPP bugs and updating infos on this page.
 -- [[billitch]]

----
CategorySound


Develop Packaging

Packages maintained by the Debian Multimedia Team

Here you can find a list of packages maintained by the Debian Multimedia Team:

http://qa.debian.org/developer.php?login=pkg-multimedia-maintainers@lists.alioth.debian.org

http://qa.debian.org/developer.php?login=debian-multimedia@lists.debian.org (?deprecated)

New packages should set the Maintainer field to Debian Multimedia Maintainers <pkg-multimedia-maintainers@lists.alioth.debian.org>. Existing packages should move to using that address on a best-effort basis.

All source packages must use the pkg-multimedia git area in alioth.

How to help with packaging

The Debian Multimedia Maintainers need help to create new Debian packages and maintain the existing ones. If you want to contribute to this effort, but you are new to the Debian packaging systems, here follows some information to get you started. Also see DebianMultimedia/Sponsoring for Best Practices with regard to obtaining sponsorship for your uploads if you are not a DD or DM.

Packaging guidelines

  • Packages should use git, as mentioned above. Desirable is being able to use git-buildpackage.

  • Upstream sources should be kept in the upstream branch and the the debian packaging in the master branch.

  • quilt should be used for patch management, and the master branch should only differ from the upstream branch in files inside the debian/ directory. This means no direct changes to the source in the master branch.

  • Patches should have a DEP-3 compliant header, and should be submitted upstream (if relevant) before uploading to Debian.

  • The maintainer field should be set to Debian Multimedia Maintainers <pkg-multimedia-maintainers@lists.alioth.debian.org>

  • The git repository should be hosted in alioth, under the pkg-multimedia project. It should forward commit messages to pkg-multimedia-commits@lists.alioth.debian.org and package_cvs@packages.qa.debian.org

    • You can use the setup-repository script in /git/pkg-multimedia to create the bare repository with commit messages enabled. The repository should be named as the source package name for the message forwarding to work (eg, the repository for source package liblo is named liblo.git).
  • The control file should use the Vcs-Git and Vcs-Browser tags.

Workflow guidelines

  • One change per commit. This is very important, it eases review, cherry picking, bisecting (and thus debugging) and backporting.

  • Do not commit debian/changelog along with the changes. This practice makes cherry picking and backporting changes unnecessarily hard. The changelog is generated with git-dch(1) at the time of upload. Also, packages should use the changelog release heuristic of dch(1).

  • The commit message should have a short (<78 characters) summary of the change followed by a newline. After that, you can elaborate on the change. The summary is treated specially by various tools like git-dch(1), or the commitdiff mailer.

  • After each upload to the Debian FTP servers, the first commit should be creating a new changelog entry, to ease testing of unreleased packages.
  • Tags should be created (and signed) by the uploading DD, in the case of the debian tags in the master branch, and by the person importing the upstream sources in the case of upstream tags.

Documentation

Proposing new packages for pkg-multimedia

  • Don't bother with git for packaging new software. Instead, package it properly following DebianPolicy and the DevelopersReference.

  • If you are confident with your package, propose it for review on the pkg-multimedia-maintainers mailing list. Link to your package preferably in a way that can be easily used with ?dget. The debian mentors site is a good place.

  • Members of the team will then review your package and give you hints how to improve it. If the package is "good enough" (at the reviewer's discretion), he will setup a repository on git.debian.org and integrate your package while preserving attribution.

Working on existing packages with git for newbies

  • locate the packaging branch on http://git.debian.org. All pkg-multimedia branches have pkg-multimedia in their url. Click on the leftmost link in that line. That will bring you to the summary of the project.

  • Note the metadata just above the shortlog, it contains 2 URLs, one of
    • them starting with git://

  • then gbp-clone(1) to get a copy of the repository. E.g.

$ gbp-clone --pristine-tar git://git.debian.org/pkg-multimedia/jack-audio-connection-kit.git
  • Do changes to that branch, build the package, test your changes, and commit early and often!
  • If someone else has committed while you are working on the branch, you need to integrate his changes. For this you have 2 options:
  • if your local changes are rather minor and clean, rebase when using git-pull(1):

$ git pull --rebase origin
  • if you rather don't want to break your history because you think that your changes are rather large and are likely to interfere with the other changes, better merge them with:

$ git pull origin
  • In case you want to cleanup your local commits before pushing, use git-rebase(1):

$ git rebase -i origin/master
  • You will be presented a textfile where you can specify what of your local commits you want to modify, drop or squish (merge with the previous one). You can also improve your commit message here. Make sure that you don't rewrite already published commits.
  • In order to get comments on your (preferably cleaned up) commits, use git-format-patch(1) to generate patches of your commits and email them to the mailing list. Any committer can do this while preserving attribution.

  • None of the steps above require membership in the pkg-multimedia alioth group. All of that can be done totally anonymously!

Common tasks for team members

Uploading proposed package to the team git repository

  • First create a repository on git.debian.org:

$ ssh git.debian.org /git/pkg-multimedia/setup-repository <project>
  • Then import the sources locally, register the remote archive and push your commits (i.e. upload changes) with the following commands:

$ cd /path/to/sources/
$ git-import-dsc --pristine-tar <project>_0.0.1-1.dsc
$ cd <project>
$ git remote add alioth ssh://user@git.debian.org/git/pkg-multimedia/<project>.git
$ git push alioth master upstream pristine-tar --tags

Uploading new upstream version to existing repository

  • Updating a git branch

$ git checkout master
$ git pull
  • update local branches without switching to them

$ git remote update
$ git fetch alioth upstream:upstream pristine-tar:pristine-tar
  • merging a new upstream version

$ git-import-orig --pristine-tar /path/to/<package>_0.0.1.orig.tar.bz
  • resolve merge conflicts, review your changes e.g. with gitk

$ git commit
  • pushing new revisions

$ git push alioth master upstream pristine-tar --tags --dry-run
  • if happy, remove the --dry-run parameter
  • Assumptions in all cases

  • in the source tree
  • the remote 'alioth' is setup properly

Removing/Adding debian tags to repository

  • Removing debian tag

$ git tag -d debian/0.0.1-1
  • Adding debian tag

$ git tag [-a|-s] "debian/0.0.1-1" -m "Debian release 0.0.1-1"
  • -s (or -u <key>) for GPG-signed tag

  • -a for unsigned tag

$ git push alioth master
  • Replacing a previously set tag:

$ git tag -f [-a|-s] "debian/1.2.3-1" -m "Debian release 1.2.3-1"

Common configuration options

These parameters should be placed in the debian/gbp.conf file. (uncomment compression line if upstream tarball(s) are not gzip-compressed)

[DEFAULT]
pristine-tar = True
sign-tags = True
#compression = bzip2

If you adopt the dpkg source format 3.0 (quilt) you should consider appending the following line to the .gitignore file:

.pc


Work in progress : We're checking all the WNPP bugs and updating infos on this page.


CategorySound