debian/changelog | 19 +++ debian/control | 10 - debian/scripts/validate-posix-sh | 63 ---------- debian/scripts/vars.arm | 14 ++ debian/xserver-xorg.postrm.in | 2 xsf-docs/faq/general.txt | 10 + xsf-docs/howto/build-mesa.txt | 3 xsf-docs/reference/experimental.txt | 98 +++++++++++++++ xsf-docs/reference/git-usage.txt | 190 +++++++++++++++++++++++++++++++ xsf-docs/reference/squeeze-backports.txt | 9 + 10 files changed, 346 insertions(+), 72 deletions(-)
New commits: commit 19f60cacb0faee0f4ed4770fbf8ae19fdf7a0f19 Author: Cyril Brulebois <[email protected]> Date: Thu Jun 2 23:08:17 2011 +0200 Document the merge. diff --git a/debian/changelog b/debian/changelog index 1670d93..30abb2d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -9,6 +9,11 @@ xorg (1:7.6+7) UNRELEASED; urgency=low * Remove debian/scripts/validate-posix-sh, unused. * Address description-synopsis-starts-with-article lintian tag. * Bump Standards-Version (no changes needed). + * Merge xsf-docs up to the 15ac25a426 commit: + - Add: reference/experimental + - Add: reference/git-usage + - Update: faq/general (firmware for ATI) + - and other minor updates. -- Cyril Brulebois <[email protected]> Thu, 02 Jun 2011 19:00:42 +0200 commit 15ac25a426af414f2cc3fdec1da8aa49d23c06b7 Author: Cyril Brulebois <[email protected]> Date: Thu Jun 2 21:16:05 2011 +0200 reference/git-usage: New doc. diff --git a/xsf-docs/reference/git-usage.txt b/xsf-docs/reference/git-usage.txt new file mode 100644 index 0000000..cdf89dd --- /dev/null +++ b/xsf-docs/reference/git-usage.txt @@ -0,0 +1,190 @@ +Git usage +========= +:toc: +Cyril Brulebois <[email protected]> + + +[NOTE] +The old documentation is still available on the wiki: +http://wiki.debian.org/XStrikeForce/git-usage[wiki.debian.org/XSF/git-usage]; +this documentation is just a draft for now. + + +Foreword +-------- + +Upstream repositories are hosted on +http://cgit.freedesktop.org/[git.freedesktop.org] + +Debian repositories are hosted on +http://git.debian.org/[git.debian.org] under the `pkg-xorg/*` +namespace. Each repository is about a single Debian source package. + +We have two types of repositories: + +* *regular* packages: 1 upstream repository → 1 Debian repository → 1 + Debian source package (non-native). +* *bundle* packages: multiple upstream repositories → 1 Debian + repository → 1 Debian source package (native). + +A local git repository can have several remotes. In the context of +Debian packaging, one usually starts by cloning the Debian repository, +so `origin` will likely point to `git.debian.org`. One can use +`upstream` to point to `anongit.freedesktop.org`. The following +documentation assumes this convention. + +To get the repository from `git.debian.org` one can run `debcheckout +$package` (or `debcheckout $package $package.git`), which will use the +`Vcs-Git` fields in the APT cache to pick the appropriate git +location. To add the `upstream` remote (using the info stored in +`debian/watch`), one can use `xsf-remote-add-upstream` script from the +http://git.debian.org/?p=pkg-xorg/debian/xsf-tools.git[pkg-xorg/debian/xsf-tools.git] +repository. + +**TODO:** There will be more information about how to deal with the +many repositories maintained by the X Strike Force in a later chapter. + +The usual workflow is to keep the target suite in `debian/changelog` +to `UNRELEASED` until the upload happens, the last commit before a +commit being only `dch -r`. To achieve that, and to avoid noise since +those packages are comaintained, it’s advised to set the following +variable in `~/.devscripts`: + +---- +DEBCHANGE_RELEASE_HEURISTIC=changelog +---- + + +Regular packages +---------------- + +For most packages (exceptions include `xorg-server`), development is +linear, and happens in a `master` branch. That `master` branch is +pushed in the Debian repository as `upstream-$suite` +(e.g. `upstream-unstable`), depending on the target suite. Usually, +`upstream-unstable` tracks `upstream/master`. + +The packaging is kept in `debian-$suite` branches, branched from +`upstream-$suite`. When cloning a Debian repository, the default +branch is `debian-unstable`. + +To create the initial packaging from the `upstream-unstable` branch, +just run `git checkout -b debian-unstable`, add packaging files +(`changelog`, `control`, `copyright`, `rules` etc. under `debian/`), +and that’s it. + +Here’s how to merge from upstream (`$foo` being a tag or +`upstream/master`): + +---- + git checkout upstream-unstable + git merge $foo + git log $foo > ChangeLog + dch -v $debianrevision + git commit -am 'Bump changelogs.' +---- + +`$debianrevision` is usually `$foo` with `-1` appended (first upload), +and sometimes prepended with a epoch (for example `2:`). Passing +`$foo-1` is usually a good rule of thumb, since `dch` will complain if +the epoch is missing (given the specified version string wouldn’t be +newer than the current one). + +When development isn’t linear +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +For packages like `xorg-server` and `libx11`, there are stable +branches which receive updates for a while. Trying to switch from +`1.10.2` to `1.11.0` might trigger a lot of conflicts. But in the end +what matters is the changes between `upstream-$suite` and +`debian-$suite`. Here’s an example, supposing `upstream-unstable` and +`debian-unstable` are pointing to the “old” branches, and supposing +the new branch is `upstream/master`: + +---- +git checkout -b debian-unstable-new upstream/master +git merge -s ours upstream-unstable +git merge debian-unstable +git branch -d debian-unstable +git branch -m debian-unstable +---- + +Subtitles: + +* Create a `debian-unstable-new` branch starting with the upstream + `master` branch, and switch to it. +* “Merge” the old `upstream-unstable` branch, actually keeping only + the new upstream branch. +* Merge the old packaging on top of it. +* Remove the old branch (so that the name can be reused). +* Rename the current `debian-unstable-new` branch into + `debian-unstable`. + +Since the tip of the new `debian-unstable` branch is a descendant of +the tip of the old `debian-unstable` one, it can be pushed normally. + +Since old `upstream-unstable` and new `upstream-unstable` diverged, +this branch has to be pushed with a `-f` to force the update (it’s not +a fast-forward). + + +Bundle packages +--------------- + +One bundle package is a Debian native package, with just a (Debian) +tarball, instead of an upstream tarball plus a Debian diff. + +There is no upstream branches here, only `debian-$suite`. + +The repository contains a `debian/` directory for the packaging, and +one directory per upstream source. Merging a new upstream release +means updating the contents of the relevant directory with the +contents of the new upstream tarball. Fetching new tarballs is +automated through a specific target: `make -f debian/rules +get-tarballs` + +To perform an update, first run `dch -i` to create a new changelog +entry if the previous commit was an upload (the new entry targets the +`UNRELEASED` suite, see “Foreword”). + +Assuming `get-tarballs` made `foo-bar.tar.gz` appear in the top-level +directory, here’s how to update (trailing slashes are not needed, just +there to clarify we’re working on directories): + +---- +git rm -r foo/ +tar xf foo-bar.tar.gz +mv foo-bar/ foo/ +git add foo/ +dch "foo bar" +debcommit -a +---- + +Using the `xsf-remote-add-upstream` script will create several +`upstream-$foo` remotes, using info stored in `debian/watch*`. This +helps browsing the history of a given repository (rather than having +to look at a big fat diff with autogenerated files in the middle). + + +Upgrade checklist +----------------- + +[NOTE] +Since it’s likely for a reader of this page to be on her way to update +a package, here’s a tiny upgrade checklist. + +Basic checks include looking into what happened to those files since +the last packaging update: + +* `COPYING`: Update `debian/copyright` accordingly. +* `configure.ac` (or `configure.in`): Update (build-)dependencies + accordingly. + +About xorg macros (they show up very often in the diff), they’re +shipped in the `xutils-dev` package, which contains a file to help map +macro versions and package versions: +`/usr/share/doc/xutils-dev/versions` + +Some packages might have more specific instructions. That’s the case +for at least `xorg-server`. See its `debian/README.source`, below the +generic “how to use quilt” blurb. commit 7cbdcdd618ab1462f19aad8c5ff50d1c9791ba4e Author: Cyril Brulebois <[email protected]> Date: Thu Jun 2 19:53:43 2011 +0200 Bump Standards-Version (no changes needed). diff --git a/debian/changelog b/debian/changelog index d9a99c5..1670d93 100644 --- a/debian/changelog +++ b/debian/changelog @@ -8,6 +8,7 @@ xorg (1:7.6+7) UNRELEASED; urgency=low to have them +x. * Remove debian/scripts/validate-posix-sh, unused. * Address description-synopsis-starts-with-article lintian tag. + * Bump Standards-Version (no changes needed). -- Cyril Brulebois <[email protected]> Thu, 02 Jun 2011 19:00:42 +0200 diff --git a/debian/control b/debian/control index 74c9c29..ce58f68 100644 --- a/debian/control +++ b/debian/control @@ -3,7 +3,7 @@ Section: x11 Priority: optional Maintainer: Debian X Strike Force <[email protected]> Uploaders: Drew Parsons <[email protected]>, Cyril Brulebois <[email protected]> -Standards-Version: 3.9.1 +Standards-Version: 3.9.2 Build-Depends: debhelper (>= 7), po-debconf, commit aba1a28f7b8abde0014d6e748fe88895ed6e2957 Author: Cyril Brulebois <[email protected]> Date: Thu Jun 2 19:53:15 2011 +0200 Address description-synopsis-starts-with-article lintian tag. diff --git a/debian/changelog b/debian/changelog index f41203d..d9a99c5 100644 --- a/debian/changelog +++ b/debian/changelog @@ -7,6 +7,7 @@ xorg (1:7.6+7) UNRELEASED; urgency=low * Set the same permissions on all debian/scripts/vars.* files: no need to have them +x. * Remove debian/scripts/validate-posix-sh, unused. + * Address description-synopsis-starts-with-article lintian tag. -- Cyril Brulebois <[email protected]> Thu, 02 Jun 2011 19:00:42 +0200 diff --git a/debian/control b/debian/control index c3492ae..74c9c29 100644 --- a/debian/control +++ b/debian/control @@ -42,7 +42,7 @@ Depends: x11-xkb-utils Recommends: libgl1-mesa-dri, -Description: the X.Org X server +Description: X.Org X server This package depends on the full suite of the server and drivers for the X.Org X server. It does not provide the actual server itself. @@ -55,7 +55,7 @@ Recommends: ${F:XServer-Xorg-Video-Recommends}, Replaces: xserver-xorg-driver-all Conflicts: xserver-xorg-driver-all -Description: the X.Org X server -- output driver metapackage +Description: X.Org X server -- output driver metapackage This package depends on the full suite of output drivers for the X.Org X server (Xorg). It does not provide any drivers itself, and may be removed if you wish to only have certain drivers installed. @@ -67,7 +67,7 @@ Depends: ${misc:Depends}, Recommends: ${F:XServer-Xorg-Input-Recommends}, -Description: the X.Org X server -- input driver metapackage +Description: X.Org X server -- input driver metapackage This package depends on the full suite of input drivers for the X.Org X server (Xorg). It does not provide any drivers itself, and may be removed if you wish to only have certain drivers installed. @@ -170,7 +170,7 @@ Depends: xserver-xorg-dev, xtrans-dev, ${misc:Depends}, -Description: the X.Org X Window System development libraries +Description: X.Org X Window System development libraries This metapackage provides the development libraries for the X.Org X Window System. . commit 46831401f5ff822fdc9b9e3f719900ba95dd1e0a Author: Cyril Brulebois <[email protected]> Date: Thu Jun 2 19:24:43 2011 +0200 Remove debian/scripts/validate-posix-sh, unused. diff --git a/debian/changelog b/debian/changelog index 07d5df8..f41203d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -6,6 +6,7 @@ xorg (1:7.6+7) UNRELEASED; urgency=low Margaritis! * Set the same permissions on all debian/scripts/vars.* files: no need to have them +x. + * Remove debian/scripts/validate-posix-sh, unused. -- Cyril Brulebois <[email protected]> Thu, 02 Jun 2011 19:00:42 +0200 diff --git a/debian/scripts/validate-posix-sh b/debian/scripts/validate-posix-sh deleted file mode 100644 index d799369..0000000 --- a/debian/scripts/validate-posix-sh +++ /dev/null @@ -1,63 +0,0 @@ -#!/bin/sh - - -# Run this before committing changes to shell scripts. - -PROGNAME=${0##*/} - -ASH="ash -n" -BASH="bash --posix -n" -DASH="dash -n" -KSH="ksh -n" -POSH="posh -n" -ERROR="" - -usage () { - cat <<EOF -Usage: $PROGNAME SCRIPT ... -Perform syntax checks on each SCRIPT with POSIX-compatible shells available on -the system. -EOF -} - -howl () { - echo "$PROGNAME: error; $*" >&2 -} - -warn () { - echo "$PROGNAME: warning; $*" >&2 -} - -if [ -z "$1" ]; then - usage >&2 - exit 2 -fi - -while [ -n "$1" ]; do - if ! [ -r "$1" ]; then - howl "\"$1\" does not exist or is not readable" - usage >&2 - exit 2 - fi - for SH in "$BASH" "$DASH" "$KSH" "$POSH"; do - CMD=${SH%% *} - if which "$CMD" >/dev/null 2>&1; then - if ! $SH "$1"; then - echo "$PROGNAME: \"$1\" failed syntax check with $CMD" - error="yes" - fi - else - warn "cannot verify correctness of \"$1\" with $CMD; shell not" \ - "available" - fi - done - shift -done - -if [ -n "$ERROR" ]; then - exit 1 -fi - -exit 0 - -# vim:set ai et sts=4 sw=4 tw=80: commit d25035b59bd5e02c06757c2f1b7064692e263e5a Author: Cyril Brulebois <[email protected]> Date: Thu Jun 2 19:23:56 2011 +0200 Set the same permissions on all debian/scripts/vars.* files: no need to have them +x. diff --git a/debian/changelog b/debian/changelog index afefbd3..07d5df8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -4,6 +4,8 @@ xorg (1:7.6+7) UNRELEASED; urgency=low Bernhard R. Link! * Add support for armhf (Closes: #605841), Thanks, Konstantinos Margaritis! + * Set the same permissions on all debian/scripts/vars.* files: no need + to have them +x. -- Cyril Brulebois <[email protected]> Thu, 02 Jun 2011 19:00:42 +0200 diff --git a/debian/scripts/vars.alpha b/debian/scripts/vars.alpha old mode 100755 new mode 100644 diff --git a/debian/scripts/vars.amd64 b/debian/scripts/vars.amd64 old mode 100755 new mode 100644 diff --git a/debian/scripts/vars.arm b/debian/scripts/vars.arm old mode 100755 new mode 100644 diff --git a/debian/scripts/vars.hppa b/debian/scripts/vars.hppa old mode 100755 new mode 100644 diff --git a/debian/scripts/vars.i386 b/debian/scripts/vars.i386 old mode 100755 new mode 100644 diff --git a/debian/scripts/vars.ia64 b/debian/scripts/vars.ia64 old mode 100755 new mode 100644 diff --git a/debian/scripts/vars.kfreebsd-amd64 b/debian/scripts/vars.kfreebsd-amd64 old mode 100755 new mode 100644 diff --git a/debian/scripts/vars.kfreebsd-i386 b/debian/scripts/vars.kfreebsd-i386 old mode 100755 new mode 100644 diff --git a/debian/scripts/vars.m32r b/debian/scripts/vars.m32r old mode 100755 new mode 100644 diff --git a/debian/scripts/vars.m68k b/debian/scripts/vars.m68k old mode 100755 new mode 100644 diff --git a/debian/scripts/vars.mips b/debian/scripts/vars.mips old mode 100755 new mode 100644 diff --git a/debian/scripts/vars.mipsel b/debian/scripts/vars.mipsel old mode 100755 new mode 100644 diff --git a/debian/scripts/vars.powerpc b/debian/scripts/vars.powerpc old mode 100755 new mode 100644 diff --git a/debian/scripts/vars.ppc64 b/debian/scripts/vars.ppc64 old mode 100755 new mode 100644 diff --git a/debian/scripts/vars.s390 b/debian/scripts/vars.s390 old mode 100755 new mode 100644 diff --git a/debian/scripts/vars.sparc b/debian/scripts/vars.sparc old mode 100755 new mode 100644 commit 65aa191aaee83413b22c00aa7057bf9aa6ab8604 Author: Cyril Brulebois <[email protected]> Date: Thu Jun 2 19:16:07 2011 +0200 Add support for armhf (Closes: #605841), Thanks, Konstantinos Margaritis! diff --git a/debian/changelog b/debian/changelog index f7c0eba..afefbd3 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,6 +2,8 @@ xorg (1:7.6+7) UNRELEASED; urgency=low * Remove long obsolete XF86Config-4 on purge (Closes: #610450). Thanks, Bernhard R. Link! + * Add support for armhf (Closes: #605841), Thanks, Konstantinos + Margaritis! -- Cyril Brulebois <[email protected]> Thu, 02 Jun 2011 19:00:42 +0200 diff --git a/debian/scripts/vars.armhf b/debian/scripts/vars.armhf new file mode 100644 index 0000000..db0ec34 --- /dev/null +++ b/debian/scripts/vars.armhf @@ -0,0 +1,14 @@ + +# This file is NOT a shell script. +# +# This file gets included by both debian/rules (make) AND the scripts in +# debian/scripts (Bourne shell). +XSERVER_XORG_VIDEO_DEPENDS="xserver-xorg-video-ati, \ + xserver-xorg-video-fbdev, \ + xserver-xorg-video-nouveau, \ + xserver-xorg-video-vesa, \ +" + +XSERVER_XORG_INPUT_DEPENDS="xserver-xorg-input-evdev, \ + xserver-xorg-input-synaptics, \ + xserver-xorg-input-wacom" commit 1087fbc35e001a3bf5b2524a6d4cb7e386a34c57 Author: Cyril Brulebois <[email protected]> Date: Tue Jan 18 21:03:23 2011 +0100 Remove long obsolete XF86Config-4 on purge (Closes: #610450). Thanks, Bernhard R. Link! diff --git a/debian/changelog b/debian/changelog index 3aa6a35..f7c0eba 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +xorg (1:7.6+7) UNRELEASED; urgency=low + + * Remove long obsolete XF86Config-4 on purge (Closes: #610450). Thanks, + Bernhard R. Link! + + -- Cyril Brulebois <[email protected]> Thu, 02 Jun 2011 19:00:42 +0200 + xorg (1:7.6+6) unstable; urgency=low * Merge xsf-docs up to the bd39472b0c commit: diff --git a/debian/xserver-xorg.postrm.in b/debian/xserver-xorg.postrm.in index 4fd7aca..652629b 100644 --- a/debian/xserver-xorg.postrm.in +++ b/debian/xserver-xorg.postrm.in @@ -31,7 +31,7 @@ if [ "$1" = "purge" ]; then rm -f "$SERVER_SYMLINK" rm -f "$XORGCONFIG_CHECKSUM" "$XORGCONFIG_ROSTER" rm -f "$SERVER_SYMLINK_CHECKSUM" "$SERVER_SYMLINK_ROSTER" - rm -f "$XORGCONFIG" + rm -f "$XORGCONFIG" "$XF86CONFIG" for DIR in "$CONFIG_DIR" "$CONFIG_AUX_DIR"; do rmdir "$DIR" 2> /dev/null || true commit 43b3e3dea1765812360d3750120710f47f9d4450 Author: Cyril Brulebois <[email protected]> Date: Fri May 27 12:41:44 2011 +0200 faq/general: Mention ati+firmware. diff --git a/xsf-docs/faq/general.txt b/xsf-docs/faq/general.txt index f2ea07a..015c6af 100644 --- a/xsf-docs/faq/general.txt +++ b/xsf-docs/faq/general.txt @@ -30,6 +30,16 @@ All drivers preferences, through the `-dpi` X server command line option (see ++Xserver++’s manual page), or through ++xrandr++’s `--dpi` option. +Ati driver +~~~~~~~~~~ + + * _Why is it I’m getting low performances, or even crashes?_ + + Make sure you have installed the + link:http://packages.debian.org/firmware-linux&exact=1[`firmware-linux` + package]. The driver might still be working without the firmware, + but using code paths which aren’t supported as well as the “normal” + ones. + Intel driver ~~~~~~~~~~~~ commit fb2ff93ba6fb6e405626b6c7ae23c2680f5d76d3 Author: Cyril Brulebois <[email protected]> Date: Sun May 1 22:28:08 2011 +0200 reference/squeeze-backports: nouveau can't be backported. diff --git a/xsf-docs/reference/squeeze-backports.txt b/xsf-docs/reference/squeeze-backports.txt index 2104097..11c2e30 100644 --- a/xsf-docs/reference/squeeze-backports.txt +++ b/xsf-docs/reference/squeeze-backports.txt @@ -45,7 +45,7 @@ Video drivers * `ati`: Drivers for ATI cards. * `intel`: Driver for Intel cards. - * `nouveau`: Driver for NVidia cards. + * `nouveau`: Driver for NVidia cards. Not possible since upstream’s http://git.debian.org/?p=pkg-xorg/driver/xserver-xorg-video-nouveau.git;a=commit;h=a4d580bf05d7aac1d486e5d1ba9a2201c026e5f5[a4d580bf05]. * `fbdev` and `vesa`: Generic drivers. * `dummy`: Dummy driver, suitable when there’s no monitor connected. commit fddb111136c1d124e53265d1ee1832e9922ebb57 Author: Cyril Brulebois <[email protected]> Date: Sun May 1 22:08:15 2011 +0200 reference/squeeze-backports: No need for mach64 and r128. diff --git a/xsf-docs/reference/squeeze-backports.txt b/xsf-docs/reference/squeeze-backports.txt index 83982be..2104097 100644 --- a/xsf-docs/reference/squeeze-backports.txt +++ b/xsf-docs/reference/squeeze-backports.txt @@ -43,12 +43,17 @@ Input drivers Video drivers ~~~~~~~~~~~~~ - * `ati`, `mach64`, `r128`: Drivers for ATI cards. + * `ati`: Drivers for ATI cards. * `intel`: Driver for Intel cards. * `nouveau`: Driver for NVidia cards. * `fbdev` and `vesa`: Generic drivers. * `dummy`: Dummy driver, suitable when there’s no monitor connected. +.Note +There are a few other drivers for ATI cards (`mach64`, `r128`), which +are pulled by `ati`, but there are versions available in `squeeze` +already, so backporting them isn’t required. + Libraries ~~~~~~~~~ commit 16428f3bc83f4e1614449d0580de7847584ae62c Author: Cyril Brulebois <[email protected]> Date: Wed Apr 6 06:38:31 2011 +0200 build-mesa: Add --prefix=/usr. In case somebody's interested in e.g. the headers, ship everything under /usr (since we already have /usr/lib/… for the shared objects). diff --git a/xsf-docs/howto/build-mesa.txt b/xsf-docs/howto/build-mesa.txt index 78fb5b2..c6e1b90 100644 --- a/xsf-docs/howto/build-mesa.txt +++ b/xsf-docs/howto/build-mesa.txt @@ -107,7 +107,8 @@ $ autoreconf -vfi Here’s what the `./configure` call will look like: ---- -$ ./configure --enable-driglx-direct \ +$ ./configure --prefix=/usr \ + --enable-driglx-direct \ --enable-gallium \ --enable-gles-overlay \ --enable-gles1 \ commit a214fc59e4942e5dd69dead256dbb64217eaad28 Author: Cyril Brulebois <[email protected]> Date: Sun Apr 3 19:24:17 2011 +0200 experimental: More or less final tweaks. diff --git a/xsf-docs/reference/experimental.txt b/xsf-docs/reference/experimental.txt index 506e2ea..522ef3f 100644 --- a/xsf-docs/reference/experimental.txt +++ b/xsf-docs/reference/experimental.txt @@ -20,7 +20,7 @@ A quick overview of how things work upstream for the server: It doesn’t make much sense to try and package `master` on a continuous fashion, since the ABI can be broken multiple times, without a bump for the ABI version numbers every time. It’s usually done once a bunch -of majors changes landed, and when things are supposed to be stable +of major changes landed, and when things are supposed to be stable for a while. On the packaging side, as explained on the link:dependencies.html[dependencies between server and drivers] page, a bump means the need for a rebuild of the relevant drivers (input @@ -29,8 +29,8 @@ and/or video). That’s why the idea is to concentrate on upstream release candidates and official releases. Depending on available developer time (both upstream and in Debian), several branches can be developed/maintained -in parallel, so both `1.9` and `1.10` can be worth having at the same -time. +in parallel, so it can be worth having several versions available in +parallel, which is where `experimental` is handy. Keeping on with this example, with `1.9` in `unstable`, release candidates for `1.10` can be uploaded to `experimental`, along with a @@ -44,7 +44,8 @@ To avoid repetitive and sometimes pointless work, it’s probably a good idea to upload (to `experimental` as well) only a few drivers built against the server in `experimental`. ABI might be bumped between release candidates (that happened between `1.10rc3` and `1.10` for -example), so drivers would need to be rebuilt. +example), so drivers would need to be rebuilt (even though binNMUs +might help). The proposed drivers can be seen on the link:squeeze-backports.html[backports policy for squeeze] page, along @@ -54,7 +55,7 @@ with a tiny description for each. Building drivers in experimental -------------------------------- -Having a driver in experimental doesn’t change much: It is sufficient +Having a driver in `experimental` doesn’t change much: It is sufficient to declare a build-dependency against `xserver-xorg-dev (>= $serverminver)`, where `$serverminver` can be seen in: @@ -81,7 +82,7 @@ Instead, that seems more natural: * `1.42-1` to `unstable`. * `1.42-1+exp1` to `experimental`: bump the build-dep. - * `1.42-2` to `unstable`: add a bugfix to `unstable`’s version. + * `1.42-2` to `unstable`: add a bugfix to ++unstable++’s version. * `1.42-2+exp1` to `experimental`: rebuild against experimental (merging or rebasing the build-dep bump). commit 553f78a335650aadb9b79734ef85fb9e464a7574 Author: Cyril Brulebois <[email protected]> Date: Sun Apr 3 19:05:21 2011 +0200 experimental: Add a note about “double uploads”. diff --git a/xsf-docs/reference/experimental.txt b/xsf-docs/reference/experimental.txt index 99f513f..506e2ea 100644 --- a/xsf-docs/reference/experimental.txt +++ b/xsf-docs/reference/experimental.txt @@ -81,6 +81,17 @@ Instead, that seems more natural: * `1.42-1` to `unstable`. * `1.42-1+exp1` to `experimental`: bump the build-dep. - * `1.42-2` to `unstable`: add a bugfix. + * `1.42-2` to `unstable`: add a bugfix to `unstable`’s version. * `1.42-2+exp1` to `experimental`: rebuild against experimental (merging or rebasing the build-dep bump). + +**** +.Note + +Remember `experimental` is special. With the above sequence of +uploads, if the `1.42-2+exp1` version isn’t uploaded, the +`1.42-1+exp1` upload might disappear from `experimental` after some +time, since the version in `unstable` is more recent: the “obsolete” +package goes away. That’s why it’s important to remember uploading to +`experimental` as well when uploading a new driver to `unstable`. +**** commit be963b3947257dd9a7782c0eb204dd64901514d4 Author: Cyril Brulebois <[email protected]> Date: Sun Apr 3 18:55:49 2011 +0200 experimental: Mention selected drivers, and how to build. diff --git a/xsf-docs/reference/experimental.txt b/xsf-docs/reference/experimental.txt index 512bc38..99f513f 100644 --- a/xsf-docs/reference/experimental.txt +++ b/xsf-docs/reference/experimental.txt @@ -36,3 +36,51 @@ Keeping on with this example, with `1.9` in `unstable`, release candidates for `1.10` can be uploaded to `experimental`, along with a few drivers so that it’s actually useful. + +Selecting drivers +----------------- + +To avoid repetitive and sometimes pointless work, it’s probably a good +idea to upload (to `experimental` as well) only a few drivers built +against the server in `experimental`. ABI might be bumped between +release candidates (that happened between `1.10rc3` and `1.10` for +example), so drivers would need to be rebuilt. + +The proposed drivers can be seen on the +link:squeeze-backports.html[backports policy for squeeze] page, along +with a tiny description for each. + + +Building drivers in experimental +-------------------------------- + +Having a driver in experimental doesn’t change much: It is sufficient +to declare a build-dependency against `xserver-xorg-dev (>= +$serverminver)`, where `$serverminver` can be seen in: + + * `debian/serverminver` in the `xorg-server` source package: see its + first line. + * `/usr/share/xserver-xorg/inputdrvdep`: see the needed version of + `xserver-xorg-core`. + * `/usr/share/xserver-xorg/videodrvdep`: ditto. + +So, for a given version of a driver in `unstable`, bumping the +build-dep version and uploading to `experimental` should be enough, +providing it doesn’t require further changes (source code changes are +sometimes needed to support building against a newer server). When +that happens, the revision number can be constructed by appending +`+exp1`. The idea here is to avoid things like: + + * `1.42-1` to `unstable`. + * `1.42-2` to `experimental`: bump the build-dep. + * `1.42-3` to `unstable`: revert the build-dep bump, add a bugfix. + * `1.42-4` to `experimental`: build the build-dep again, keep the bugfix. + * etc. + +Instead, that seems more natural: + + * `1.42-1` to `unstable`. + * `1.42-1+exp1` to `experimental`: bump the build-dep. + * `1.42-2` to `unstable`: add a bugfix. + * `1.42-2+exp1` to `experimental`: rebuild against experimental + (merging or rebasing the build-dep bump). commit adbac8e5711754ab9de0270db89de9c6285b7e45 Author: Cyril Brulebois <[email protected]> Date: Sun Apr 3 05:20:35 2011 +0200 experimental: New documentation. Let's try and document the specific handling of sid+experimental packages for server+drivers. diff --git a/xsf-docs/reference/experimental.txt b/xsf-docs/reference/experimental.txt new file mode 100644 index 0000000..512bc38 --- /dev/null +++ b/xsf-docs/reference/experimental.txt @@ -0,0 +1,38 @@ +Handling multiple server versions thanks to experimental +======================================================== +Cyril Brulebois <[email protected]> + + +Context +------- + +A quick overview of how things work upstream for the server: + + * Patches get reviewed and merged into the `master` branch. + * After a few release candidates, `master` gets tagged (say: `1.10` + or `1.10.0`), and a stable branch (`server-1.10-branch` in this + case) is created to receive bug fixes. + * Those bug fixes usually are cherry-picks from commits in the + `master` branch. + * This leads to stable bugfix releases: `1.10.1`, `1.10.2`, and + so on. + +It doesn’t make much sense to try and package `master` on a continuous +fashion, since the ABI can be broken multiple times, without a bump +for the ABI version numbers every time. It’s usually done once a bunch +of majors changes landed, and when things are supposed to be stable +for a while. On the packaging side, as explained on the +link:dependencies.html[dependencies between server and drivers] page, +a bump means the need for a rebuild of the relevant drivers (input +and/or video). + +That’s why the idea is to concentrate on upstream release candidates +and official releases. Depending on available developer time (both +upstream and in Debian), several branches can be developed/maintained +in parallel, so both `1.9` and `1.10` can be worth having at the same +time. + +Keeping on with this example, with `1.9` in `unstable`, release +candidates for `1.10` can be uploaded to `experimental`, along with a +few drivers so that it’s actually useful. + -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

