debian/README.source | 73 +++++++++++ debian/changelog | 9 + debian/control | 5 debian/xsfbs/repack.sh | 32 +++++ debian/xsfbs/xsfbs.mk | 50 ++----- debian/xsfbs/xsfbs.sh | 311 ------------------------------------------------- 6 files changed, 130 insertions(+), 350 deletions(-)
New commits: commit 09a999678504be72e50f8c686ca214834019fea8 Author: Timo Aaltonen <tjaal...@cc.hut.fi> Date: Tue Nov 24 13:37:31 2009 +0200 Bump Standards-Version to 3.8.3. diff --git a/debian/changelog b/debian/changelog index 4720531..294a007 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,6 +3,7 @@ libxrandr (2:1.3.0-3) UNRELEASED; urgency=low * Drop pre-dependency on x11-common from libxrandr-dev. This was needed for upgrades from sarge. * Move -dbg package to section debug. + * Bump Standards-Version to 3.8.3. -- Timo Aaltonen <tjaal...@ubuntu.com> Tue, 24 Nov 2009 13:34:24 +0200 diff --git a/debian/control b/debian/control index 202b5be..9ce8de2 100644 --- a/debian/control +++ b/debian/control @@ -15,7 +15,7 @@ Build-Depends: automake, libtool, xutils-dev -Standards-Version: 3.7.3 +Standards-Version: 3.8.3 Vcs-Git: git://git.debian.org/git/pkg-xorg/lib/libxrandr Vcs-Browser: http://git.debian.org/?p=pkg-xorg/lib/libxrandr.git commit cafd6e8ce24918c5a1a7046000cdb6dc7c97c939 Author: Timo Aaltonen <tjaal...@cc.hut.fi> Date: Tue Nov 24 13:36:32 2009 +0200 Fix the package name in the changelog entry. diff --git a/debian/changelog b/debian/changelog index 191a0fb..4720531 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,6 @@ libxrandr (2:1.3.0-3) UNRELEASED; urgency=low - * Drop pre-dependency on x11-common from libxtst-dev. This was needed + * Drop pre-dependency on x11-common from libxrandr-dev. This was needed for upgrades from sarge. * Move -dbg package to section debug. commit 31904d77f0d2e48207c28ca525074f8c91303f7e Author: Timo Aaltonen <tjaal...@cc.hut.fi> Date: Tue Nov 24 13:36:19 2009 +0200 Move -dbg package to section debug. diff --git a/debian/changelog b/debian/changelog index d9af76a..191a0fb 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,6 +2,7 @@ libxrandr (2:1.3.0-3) UNRELEASED; urgency=low * Drop pre-dependency on x11-common from libxtst-dev. This was needed for upgrades from sarge. + * Move -dbg package to section debug. -- Timo Aaltonen <tjaal...@ubuntu.com> Tue, 24 Nov 2009 13:34:24 +0200 diff --git a/debian/control b/debian/control index c5ceaa0..202b5be 100644 --- a/debian/control +++ b/debian/control @@ -39,7 +39,7 @@ Description: X11 RandR extension library git://anongit.freedesktop.org/git/xorg/lib/libXrandr Package: libxrandr2-dbg -Section: libdevel +Section: debug Priority: extra Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, libxrandr2 (= ${binary:Version}) commit d58bb2f640d8b2a8faf1a420666cc3fe7da1a88a Author: Timo Aaltonen <tjaal...@cc.hut.fi> Date: Tue Nov 24 13:35:47 2009 +0200 Drop pre-dependency on x11-common from libxtst-dev. This was needed for upgrades from sarge. diff --git a/debian/changelog b/debian/changelog index 95d7cd3..d9af76a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +libxrandr (2:1.3.0-3) UNRELEASED; urgency=low + + * Drop pre-dependency on x11-common from libxtst-dev. This was needed + for upgrades from sarge. + + -- Timo Aaltonen <tjaal...@ubuntu.com> Tue, 24 Nov 2009 13:34:24 +0200 + libxrandr (2:1.3.0-2) unstable; urgency=low * libxrandr-dev depends on randrproto 1.3 (closes: #519981). Thanks, Adrian diff --git a/debian/control b/debian/control index f75edb4..c5ceaa0 100644 --- a/debian/control +++ b/debian/control @@ -65,7 +65,6 @@ Package: libxrandr-dev Section: libdevel Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, libxrandr2 (= ${binary:Version}), libx11-dev, libxext-dev, x11proto-randr-dev (>= 1.3), libxrender-dev -Pre-Depends: x11-common (>= 1:7.0.0) Description: X11 RandR extension library (development headers) libXrandr provides an X Window System client interface to the RandR extension to the X protocol. commit 2a1b4553fc2c5ba982e8bb8be4c504e28ce79ed1 Author: Julien Cristau <jcris...@debian.org> Date: Fri Sep 25 16:39:23 2009 +0200 xsfbs.mk: remove more obsolete code We can use plain debconf-updatepo, and don't need to clean the 'imports' directory or shlibs.local. diff --git a/debian/xsfbs/xsfbs.mk b/debian/xsfbs/xsfbs.mk index 82eb45f..5e16b10 100755 --- a/debian/xsfbs/xsfbs.mk +++ b/debian/xsfbs/xsfbs.mk @@ -177,19 +177,7 @@ xsfclean: cleanscripts unpatch dh_testdir rm -rf .pc rm -rf $(STAMP_DIR) - rm -rf imports - dh_clean debian/shlibs.local \ - debian/po/pothead - -# Generate the debconf templates POT file header. -debian/po/pothead: debian/po/pothead.in - sed -e 's/SOURCE_VERSION/$(SOURCE_VERSION)/' \ - -e 's/DATE/$(shell date "+%F %X%z"/)' <$< >$@ - -# Update POT and PO files. -.PHONY: updatepo -updatepo: debian/po/pothead - debian/scripts/debconf-updatepo --pot-header=pothead --verbose + dh_clean # Remove files from the upstream source tree that we don't need, or which have # licensing problems. It must be run before creating the .orig.tar.gz. commit 9a4314c976e0d22e8d47f5d86163791e407a6ecc Author: Julien Cristau <jcris...@debian.org> Date: Fri Sep 25 15:43:28 2009 +0200 xsfbs.mk: kill obsolete DEFAULT_DCRESOLUTIONS and SOURCE_DIR usage These variables aren't set anywhere. diff --git a/debian/xsfbs/xsfbs.mk b/debian/xsfbs/xsfbs.mk index 1f86848..82eb45f 100755 --- a/debian/xsfbs/xsfbs.mk +++ b/debian/xsfbs/xsfbs.mk @@ -176,7 +176,7 @@ cleanscripts: xsfclean: cleanscripts unpatch dh_testdir rm -rf .pc - rm -rf $(STAMP_DIR) $(SOURCE_DIR) + rm -rf $(STAMP_DIR) rm -rf imports dh_clean debian/shlibs.local \ debian/po/pothead @@ -252,7 +252,6 @@ $(STAMP_DIR)/genscripts: $(STAMP_DIR)/stampdir | sed -e '/^#INCLUDE_SHELL_LIB#$$/d' >>$$MAINTSCRIPT.tmp; \ sed -e 's/@SOURCE_VERSION@/$(SOURCE_VERSION)/' \ -e 's/@OFFICIAL_BUILD@/$(OFFICIAL_BUILD)/' \ - -e 's/@DEFAULT_DCRESOLUTIONS@/$(DEFAULT_DCRESOLUTIONS)/' \ <$$MAINTSCRIPT.tmp >$$MAINTSCRIPT; \ rm $$MAINTSCRIPT.tmp; \ fi; \ commit bda208ec00d0b7b3632f57fb27e014684cdf73ba Author: Julien Cristau <jcris...@debian.org> Date: Fri Sep 25 15:33:39 2009 +0200 xsfbs.sh: fix typo and remove svn keyword diff --git a/debian/xsfbs/xsfbs.sh b/debian/xsfbs/xsfbs.sh index 45acd59..813fd8d 100644 --- a/debian/xsfbs/xsfbs.sh +++ b/debian/xsfbs/xsfbs.sh @@ -1,5 +1,3 @@ -# $Id$ - # This is the X Strike Force shell library for X Window System package # maintainer scripts. It serves to define shell functions commonly used by # such packages, and performs some error checking necessary for proper operation @@ -8,7 +6,7 @@ # removal tasks. # If you are reading this within a Debian package maintainer script (e.g., -# /var/lib/dpkg)info/PACKAGE.{config,preinst,postinst,prerm,postrm}), you can +# /var/lib/dpkg/info/PACKAGE.{config,preinst,postinst,prerm,postrm}), you can # skip past this library by scanning forward in this file to the string # "GOBSTOPPER". commit 5693792171d885769e58dcccc053c08b11acd12a Author: Julien Cristau <jcris...@debian.org> Date: Wed Aug 26 18:53:36 2009 +0200 xsfbs.mk: no need for shlibs.local diff --git a/debian/xsfbs/xsfbs.mk b/debian/xsfbs/xsfbs.mk index f0f8953..1f86848 100755 --- a/debian/xsfbs/xsfbs.mk +++ b/debian/xsfbs/xsfbs.mk @@ -265,10 +265,6 @@ $(STAMP_DIR)/genscripts: $(STAMP_DIR)/stampdir # debian/*.prerm >$@ -# Generate the shlibs.local file. -debian/shlibs.local: - cat debian/*.shlibs >$@ - SERVERMINVERS = $(shell cat /usr/share/xserver-xorg/serverminver 2>/dev/null) VIDEOABI = $(shell cat /usr/share/xserver-xorg/videoabiver 2>/dev/null) INPUTABI = $(shell cat /usr/share/xserver-xorg/inputabiver 2>/dev/null) commit 1f858adff1ce2687cf542dd9b69b81137412f8a4 Author: Julien Cristau <jcris...@debian.org> Date: Wed Aug 26 18:47:09 2009 +0200 xsfbs.sh: remove unused reject_whitespace function diff --git a/debian/xsfbs/xsfbs.sh b/debian/xsfbs/xsfbs.sh index b3f4bbe..45acd59 100644 --- a/debian/xsfbs/xsfbs.sh +++ b/debian/xsfbs/xsfbs.sh @@ -93,22 +93,6 @@ reject_nondigits () { done } -reject_whitespace () { - # syntax: reject_whitespace [ operand ] - # - # scan operand (typically a shell variable whose value cannot be trusted) for - # whitespace characters and barf if any are found - if [ -n "$1" ]; then - # does the operand contain any whitespace? - if expr "$1" : "[[:space:]]" > /dev/null 2>&1; then - # can't use die(), because I want to avoid forward references - echo "$THIS_PACKAGE $THIS_SCRIPT error: reject_whitespace() encountered" \ - "possibly malicious garbage \"$1\"" >&2 - exit $SHELL_LIB_THROWN_ERROR - fi - fi -} - reject_unlikely_path_chars () { # syntax: reject_unlikely_path_chars [ operand ... ] # commit 0dd71e12416aa7dc60ed68af8127e04609b125f4 Author: Julien Cristau <jcris...@debian.org> Date: Wed Aug 26 18:23:53 2009 +0200 xsfbs.sh: remove unused find_culprits function diff --git a/debian/xsfbs/xsfbs.sh b/debian/xsfbs/xsfbs.sh index 7dbb196..b3f4bbe 100644 --- a/debian/xsfbs/xsfbs.sh +++ b/debian/xsfbs/xsfbs.sh @@ -199,53 +199,6 @@ usage_error () { exit $SHELL_LIB_USAGE_ERROR } -find_culprits () { - local f p dpkg_info_dir possible_culprits smoking_guns bad_packages package \ - msg - - reject_whitespace "$1" - message "Searching for overlapping packages..." - dpkg_info_dir=/var/lib/dpkg/info - if [ -d $dpkg_info_dir ]; then - if [ "$(echo $dpkg_info_dir/*.list)" != "$dpkg_info_dir/*.list" ]; then - possible_culprits=$(ls -1 $dpkg_info_dir/*.list | egrep -v \ - "(xbase-clients|x11-common|xfs|xlibs)") - if [ -n "$possible_culprits" ]; then - smoking_guns=$(grep -l "$1" $possible_culprits || true) - if [ -n "$smoking_guns" ]; then - bad_packages=$(printf "\\n") - for f in $smoking_guns; do - # too bad you can't nest parameter expansion voodoo - p=${f%*.list} # strip off the trailing ".list" - package=${p##*/} # strip off the directories - bad_packages=$(printf "%s\n%s" "$bad_packages" "$package") - done - msg=$(cat <<EOF -The following packages appear to have file overlaps with the X.Org packages; -these packages are either very old, or in violation of Debian Policy. Try -upgrading each of these packages to the latest available version if possible: -for example, with the command "apt-get install". If no newer version of a -package is available, you will have to remove it; for example, with the command -"apt-get remove". If even the latest available version of the package has -this file overlap, please file a bug against that package with the Debian Bug -Tracking System. You may want to refer the package maintainer to section 12.8 -of the Debian Policy manual. -EOF -) - message "$msg" - message "The overlapping packages are: $bad_packages" - else - message "no overlaps found." - fi - fi - else - message "cannot search; no matches for $dpkg_info_dir/*.list." - fi - else - message "cannot search; $dpkg_info_dir does not exist." - fi -} - font_update () { # run $UPDATECMDS in $FONTDIRS commit b6c6eceec66066ebac16c85cc75bfa8a4f6cf58a Author: Julien Cristau <jcris...@debian.org> Date: Wed Aug 26 18:23:06 2009 +0200 xsfbs.sh: remove unused maplink function diff --git a/debian/xsfbs/xsfbs.sh b/debian/xsfbs/xsfbs.sh index f869274..7dbb196 100644 --- a/debian/xsfbs/xsfbs.sh +++ b/debian/xsfbs/xsfbs.sh @@ -199,37 +199,6 @@ usage_error () { exit $SHELL_LIB_USAGE_ERROR } - -maplink () { - # returns what symlink should point to; i.e., what the "sane" answer is - # Keep this in sync with the debian/*.links files. - # This is only needed for symlinks to directories. - # - # XXX: Most of these look wrong in the X11R7 world and need to be fixed. - # If we've stopped using this function, fixing it might enable us to re-enable - # it again and catch more errors. - case "$1" in - /etc/X11/xkb/compiled) echo /var/lib/xkb ;; - /etc/X11/xkb/xkbcomp) echo /usr/X11R6/bin/xkbcomp ;; - /usr/X11R6/lib/X11/app-defaults) echo /etc/X11/app-defaults ;; - /usr/X11R6/lib/X11/fs) echo /etc/X11/fs ;; - /usr/X11R6/lib/X11/lbxproxy) echo /etc/X11/lbxproxy ;; - /usr/X11R6/lib/X11/proxymngr) echo /etc/X11/proxymngr ;; - /usr/X11R6/lib/X11/rstart) echo /etc/X11/rstart ;; - /usr/X11R6/lib/X11/twm) echo /etc/X11/twm ;; - /usr/X11R6/lib/X11/xdm) echo /etc/X11/xdm ;; - /usr/X11R6/lib/X11/xinit) echo /etc/X11/xinit ;; - /usr/X11R6/lib/X11/xkb) echo /etc/X11/xkb ;; - /usr/X11R6/lib/X11/xserver) echo /etc/X11/xserver ;; - /usr/X11R6/lib/X11/xsm) echo /etc/X11/xsm ;; - /usr/bin/X11) echo ../X11R6/bin ;; - /usr/bin/rstartd) echo ../X11R6/bin/rstartd ;; - /usr/include/X11) echo ../X11R6/include/X11 ;; - /usr/lib/X11) echo ../X11R6/lib/X11 ;; - *) internal_error "maplink() called with unknown path \"$1\"" ;; - esac -} - find_culprits () { local f p dpkg_info_dir possible_culprits smoking_guns bad_packages package \ msg commit 8eb3d6a5ce9964876e48ea56048f1a5135ef4f28 Author: Julien Cristau <jcris...@debian.org> Date: Wed Aug 26 18:21:34 2009 +0200 xsfbs.sh: remove unused analyze_path diff --git a/debian/xsfbs/xsfbs.sh b/debian/xsfbs/xsfbs.sh index 4461b1a..f869274 100644 --- a/debian/xsfbs/xsfbs.sh +++ b/debian/xsfbs/xsfbs.sh @@ -230,32 +230,6 @@ maplink () { esac } -analyze_path () { - # given a supplied set of pathnames, break each one up by directory and do an - # ls -dl on each component, cumulatively; i.e. - # analyze_path /usr/X11R6/bin -> ls -dl /usr /usr/X11R6 /usr/X11R6/bin - # Thanks to Randolph Chung for this clever hack. - - local f g - - while [ -n "$1" ]; do - reject_whitespace "$1" - g= - message "Analyzing $1:" - for f in $(echo "$1" | tr / \ ); do - if [ -e /$g$f ]; then - ls -dl /$g$f /$g$f.dpkg-* 2> /dev/null || true - g=$g$f/ - else - message "/$g$f: nonexistent; directory contents of /$g:" - ls -l /$g - break - fi - done - shift - done -} - find_culprits () { local f p dpkg_info_dir possible_culprits smoking_guns bad_packages package \ msg commit 1d0081bdf60944d8ef0935a531dfbcc5f01739c5 Author: Julien Cristau <jcris...@debian.org> Date: Wed Aug 26 18:20:11 2009 +0200 xsfbs.sh: remove unused check_symlinks_and_{bomb,warn} diff --git a/debian/xsfbs/xsfbs.sh b/debian/xsfbs/xsfbs.sh index 781826f..4461b1a 100644 --- a/debian/xsfbs/xsfbs.sh +++ b/debian/xsfbs/xsfbs.sh @@ -303,115 +303,6 @@ EOF fi } -check_symlink () { - # syntax: check_symlink symlink - # - # See if specified symlink points where it is supposed to. Return 0 if it - # does, and 1 if it does not. - # - # Primarily used by check_symlinks_and_warn() and check_symlinks_and_bomb(). - - local symlink - - # validate arguments - if [ $# -ne 1 ]; then - usage_error "check_symlink() called with wrong number of arguments;" \ - "expected 1, got $#" - exit $SHELL_LIB_USAGE_ERROR - fi - - symlink="$1" - - if [ "$(maplink "$symlink")" = "$(readlink "$symlink")" ]; then - return 0 - else - return 1 - fi -} - -check_symlinks_and_warn () { - # syntax: check_symlinks_and_warn symlink ... - # - # For each argument, check for symlink sanity, and warn if it isn't sane. - # - # Call this function from a preinst script in the event $1 is "upgrade" or - # "install". - - local errmsg symlink - - # validate arguments - if [ $# -lt 1 ]; then - usage_error "check_symlinks_and_warn() called with wrong number of" \ - "arguments; expected at least 1, got $#" - exit $SHELL_LIB_USAGE_ERROR - fi - - while [ -n "$1" ]; do - symlink="$1" - if [ -L "$symlink" ]; then - if ! check_symlink "$symlink"; then - observe "$symlink symbolic link points to wrong location" \ - "$(readlink "$symlink"); removing" - rm "$symlink" - fi - elif [ -e "$symlink" ]; then - errmsg="$symlink exists and is not a symbolic link; this package cannot" - errmsg="$errmsg be installed until this" - if [ -f "$symlink" ]; then - errmsg="$errmsg file" - elif [ -d "$symlink" ]; then - errmsg="$errmsg directory" - else - errmsg="$errmsg thing" - fi - errmsg="$errmsg is removed" - die "$errmsg" - fi - shift - done -} - -check_symlinks_and_bomb () { - # syntax: check_symlinks_and_bomb symlink ... - # - # For each argument, check for symlink sanity, and bomb if it isn't sane. - # - # Call this function from a postinst script. - - local problem symlink - - # validate arguments - if [ $# -lt 1 ]; then - usage_error "check_symlinks_and_bomb() called with wrong number of" - "arguments; expected at least 1, got $#" - exit $SHELL_LIB_USAGE_ERROR - fi - - while [ -n "$1" ]; do - problem= - symlink="$1" - if [ -L "$symlink" ]; then - if ! check_symlink "$symlink"; then - problem=yes - warn "$symlink symbolic link points to wrong location" \ - "$(readlink "$symlink")" - fi - elif [ -e "$symlink" ]; then - problem=yes - warn "$symlink is not a symbolic link" - else - problem=yes - warn "$symlink symbolic link does not exist" - fi - if [ -n "$problem" ]; then - analyze_path "$symlink" "$(readlink "$symlink")" - find_culprits "$symlink" - die "bad symbolic links on system" - fi - shift - done -} - font_update () { # run $UPDATECMDS in $FONTDIRS commit 8f72294ada477f003888b6776883c1dd98289f3f Author: Julien Cristau <jcris...@debian.org> Date: Wed Jun 3 03:37:37 2009 +0200 Kill custom readlink function This was needed for very, very old versions of debianutils. Closes: #498890 diff --git a/debian/xsfbs/xsfbs.sh b/debian/xsfbs/xsfbs.sh index 197eb74..781826f 100644 --- a/debian/xsfbs/xsfbs.sh +++ b/debian/xsfbs/xsfbs.sh @@ -303,16 +303,6 @@ EOF fi } -# we require a readlink command or shell function -if ! which readlink > /dev/null 2>&1; then - message "The readlink command was not found. Please install version" \ - "1.13.1 or later of the debianutils package." - readlink () { - # returns what symlink in $1 actually points to - perl -e '$l = shift; exit 1 unless -l $l; $r = readlink $l; exit 1 unless $r; print "$r\n"' "$1" - } -fi - check_symlink () { # syntax: check_symlink symlink # commit 7deebf983f53c505bc25171ab77fdc408f250a6e Author: Julien Cristau <jcris...@debian.org> Date: Tue May 26 15:58:19 2009 +0200 xsfbs: don't run dpkg --print-installation-architecture This is deprecated in new dpkg, and had no users anyway. diff --git a/debian/xsfbs/xsfbs.sh b/debian/xsfbs/xsfbs.sh index 8840ff9..197eb74 100644 --- a/debian/xsfbs/xsfbs.sh +++ b/debian/xsfbs/xsfbs.sh @@ -57,8 +57,6 @@ EOF exit $SHELL_LIB_USAGE_ERROR fi -ARCHITECTURE="$(dpkg --print-installation-architecture)" - if [ "$1" = "reconfigure" ] || [ -n "$DEBCONF_RECONFIGURE" ]; then RECONFIGURE="true" else commit 4178d948cd66a938222d0d7c6353ee8d60229e40 Author: David Nusinow <dnusi...@debian.org> Date: Mon May 25 20:08:50 2009 -0400 Add README.source diff --git a/debian/README.source b/debian/README.source new file mode 100644 index 0000000..34ab4bf --- /dev/null +++ b/debian/README.source @@ -0,0 +1,73 @@ +------------------------------------------------------ +Quick Guide To Patching This Package For The Impatient +------------------------------------------------------ + +1. Make sure you have quilt installed +2. Unpack the package as usual with "dpkg-source -x" +3. Run the "patch" target in debian/rules +4. Create a new patch with "quilt new" (see quilt(1)) +5. Edit all the files you want to include in the patch with "quilt edit" + (see quilt(1)). +6. Write the patch with "quilt refresh" (see quilt(1)) +7. Run the "clean" target in debian/rules + +Alternatively, instead of using quilt directly, you can drop the patch in to +debian/patches and add the name of the patch to debian/patches/series. + +------------------------------------ +Guide To The X Strike Force Packages +------------------------------------ + +The X Strike Force team maintains X packages in git repositories on +git.debian.org in the pkg-xorg subdirectory. Most upstream packages +are actually maintained in git repositories as well, so they often +just need to be pulled into git.debian.org in a "upstream-*" branch. +Otherwise, the upstream sources are manually installed in the Debian +git repository. + +The .orig.tar.gz upstream source file could be generated this +"upstream-*" branch in the Debian git repository but it is actually +copied from upstream tarballs directly. + +Due to X.org being highly modular, packaging all X.org applications +as their own independent packages would have created too many Debian +packages. For this reason, some X.org applications have been grouped +into larger packages: xutils, xutils-dev, x11-apps, x11-session-utils, +x11-utils, x11-xfs-utils, x11-xkb-utils, x11-xserver-utils. +Most packages, including the X.org server itself and all libraries +and drivers are, however maintained independently. + +The Debian packaging is added by creating the "debian-*" git branch +which contains the aforementioned "upstream-*" branch plus the debian/ +repository files. +When a patch has to be applied to the Debian package, two solutions +are involved: +* If the patch is available in one of the upstream branches, it + may be git'cherry-picked into the Debian repository. In this + case, it appears directly in the .diff.gz. +* Otherwise, the patch is added to debian/patches/ which is managed + with quilt as documented in /usr/share/doc/quilt/README.source. + +quilt is actually invoked by the Debian X packaging through a larger +set of scripts called XSFBS. XSFBS brings some other X specific +features such as managing dependencies and conflicts due to the video +and input driver ABIs. +XSFBS itself is maintained in a separate repository at + git://git.debian.org/pkg-xorg/xsfbs.git +and it is pulled inside the other Debian X repositories when needed. + +The XSFBS patching system requires a build dependency on quilt. Also +a dependency on $(STAMP_DIR)/patch has to be added to debian/rules +so that the XSFBS patching occurs before the actual build. So the +very first target of the build (likely the one running autoreconf) +should depend on $(STAMP_DIR)/patch. It should also not depend on +anything so that parallel builds are correctly supported (nothing +should probably run while patching is being done). And finally, the +clean target should depend on the xsfclean target so that patches +are unapplied on clean. + +When the upstream sources contain some DFSG-nonfree files, they are +listed in text files in debian/prune/ in the "debian-*" branch of +the Debian repository. XSFBS' scripts then take care of removing +these listed files during the build so as to generate a modified +DFSG-free .orig.tar.gz tarball. commit fa6396d6bf68b9a0154089146287245f9ad60a1e Author: Julien Cristau <jcris...@debian.org> Date: Wed Feb 25 21:31:03 2009 +0100 xsfbs: repack.sh needs to be executable diff --git a/debian/xsfbs/repack.sh b/debian/xsfbs/repack.sh old mode 100644 new mode 100755 commit 2ed171f9f390de4e97141c0016d3ba615e8c943e Author: Julien Cristau <jcris...@debian.org> Date: Tue Feb 17 17:20:42 2009 +0100 xsfbs.sh: kill {,de}register_x_lib_dir_with_ld_so libx11's postinst was the only post-sarge user, and it's gone now. diff --git a/debian/xsfbs/xsfbs.sh b/debian/xsfbs/xsfbs.sh index 72efa95..8840ff9 100644 --- a/debian/xsfbs/xsfbs.sh +++ b/debian/xsfbs/xsfbs.sh @@ -719,72 +719,6 @@ run () { fi } -register_x_lib_dir_with_ld_so () { - # syntax: register_x_lib_dir_with_ld_so - # - # Configure the dynamic loader ld.so to search /usr/X11R6/lib for shared - # libraries. - # - # Call this function from the postinst script of a package that places a - # shared library in /usr/X11R6/lib, before invoking ldconfig. - - local dir ldsoconf - - dir="/usr/X11R6/lib" - ldsoconf="/etc/ld.so.conf" - - # is the line not already present? - if ! fgrep -qsx "$dir" "$ldsoconf"; then - observe "adding $dir directory to $ldsoconf" - echo "$dir" >> "$ldsoconf" - fi -} - -deregister_x_lib_dir_with_ld_so () { - # syntax: deregister_x_lib_dir_with_ld_so - # - # Configure dynamic loader ld.so to not search /usr/X11R6/lib for shared - # libraries, if and only if no shared libaries remain there. - # - # Call this function from the postrm script of a package that places a shared - # library in /usr/X11R6/lib, in the event "$1" is "remove", and before - # invoking ldconfig. - - local dir ldsoconf fgrep_status cmp_status - - dir="/usr/X11R6/lib" - ldsoconf="/etc/ld.so.conf" - - # is the line present? - if fgrep -qsx "$dir" "$ldsoconf"; then - # are there any shared objects in the directory? - if [ "$(echo "$dir"/lib*.so.*.*)" = "$dir/lib*.so.*.*" ]; then - # glob expansion produced nothing, so no shared libraries are present - observe "removing $dir directory from $ldsoconf" - # rewrite the file (very carefully) - set +e - fgrep -svx "$dir" "$ldsoconf" > "$ldsoconf.dpkg-tmp" - fgrep_status=$? - set -e - case $fgrep_status in - 0|1) ;; # we don't actually care if any lines matched or not - *) die "error reading \"$ldsoconf\"; fgrep exited with status" \ - "$fgrep_status" ;; - esac - set +e - cmp -s "$ldsoconf.dpkg-tmp" "$ldsoconf" - cmp_status=$? - set -e - case $cmp_status in - 0) rm "$ldsoconf.dpkg-tmp" ;; # files are identical - 1) mv "$ldsoconf.dpkg-tmp" "$ldsoconf" ;; # files differ - *) die "error comparing \"$ldsoconf.dpkg-tmp\" to \"$ldsoconf\";" \ - "cmp exited with status $cmp_status" ;; - esac - fi - fi -} - make_symlink_sane () { # syntax: make_symlink_sane symlink target # commit 84b7d5bf7a57cab80ba3696ce95028c2f67ba76d Author: Julien Cristau <jcris...@debian.org> Date: Sun Feb 1 01:31:31 2009 +0100 xsfbs: add a repack script for uscan This will automatically prune upstream tarballs diff --git a/debian/xsfbs/repack.sh b/debian/xsfbs/repack.sh new file mode 100644 index 0000000..5935cc9 --- /dev/null +++ b/debian/xsfbs/repack.sh @@ -0,0 +1,32 @@ +#!/bin/sh + +set -e + +if ! [ -d debian/prune ]; then + exit 0 +fi + +if [ "x$1" != x--upstream-version ]; then + exit 1 +fi + +version="$2" +filename="$3" + +if [ -z "$version" ] || ! [ -f "$filename" ]; then + exit 1 +fi + +dir="$(pwd)" +tempdir="$(mktemp -d)" + +cd "$tempdir" +tar xf "$dir/$filename" +cat "$dir"/debian/prune/* | while read file; do rm -f */$file; done + +tar czf "$dir/$filename" * +cd "$dir" +rm -rf "$tempdir" +echo "Done pruning upstream tarball" + +exit 0 commit 86e7669f5d912824e341ea487a6257ec5433eb90 Author: Julien Cristau <jcris...@debian.org> Date: Thu Jul 17 15:44:45 2008 +0200 xsfbs.mk: make 'log' a separate target 'prepare' runs genscripts, and we don't want that in unpatch, so create stampdir/log in a separate target, and make unpatch depend on that instead of prepare. diff --git a/debian/xsfbs/xsfbs.mk b/debian/xsfbs/xsfbs.mk index 984e81c..f0f8953 100755 --- a/debian/xsfbs/xsfbs.mk +++ b/debian/xsfbs/xsfbs.mk @@ -110,10 +110,15 @@ $(STAMP_DIR)/stampdir: .PHONY: prepare stampdir_targets+=prepare prepare: $(STAMP_DIR)/prepare -$(STAMP_DIR)/prepare: $(STAMP_DIR)/stampdir $(STAMP_DIR)/genscripts - mkdir -p $(STAMP_DIR)/log +$(STAMP_DIR)/prepare: $(STAMP_DIR)/log $(STAMP_DIR)/genscripts >$@ +.PHONY: log +stampdir_targets+=log +log: $(STAMP_DIR)/log +$(STAMP_DIR)/log: $(STAMP_DIR)/stampdir + mkdir -p $(STAMP_DIR)/log + # Apply all patches to the upstream source. .PHONY: patch stampdir_targets+=patch @@ -140,7 +145,7 @@ $(STAMP_DIR)/patch: $(STAMP_DIR)/prepare # Revert all patches to the upstream source. .PHONY: unpatch -unpatch: $(STAMP_DIR)/prepare +unpatch: $(STAMP_DIR)/log rm -f $(STAMP_DIR)/patch @echo -n "Unapplying patches..."; \ if $(QUILT) applied >/dev/null 2>/dev/null; then \ commit 50619e730fcaf422ffa4451468520526b2a830b8 Author: Julien Cristau <jcris...@debian.org> Date: Wed Jul 16 18:42:14 2008 +0200 xsfbs.mk: update the list of releases, and drop some unused code we haven't had a separate source tree since modularization. diff --git a/debian/xsfbs/xsfbs.mk b/debian/xsfbs/xsfbs.mk index 2350f80..984e81c 100755 --- a/debian/xsfbs/xsfbs.mk +++ b/debian/xsfbs/xsfbs.mk @@ -44,9 +44,9 @@ NO_EPOCH_VER:=$(shell echo $(UPSTREAM_VERSION) | sed 's/^.://') BUILDER:=$(shell echo $${DEBEMAIL:-$${EMAIL:-$$(echo $$logn...@$$(cat /etc/mailname 2>/dev/null))}}) # Find out if this is an official build; an official build has nothing but -# digits, dots, and/or the strings "woody" or "sarge" in the Debian part of the +# digits, dots, and/or the codename of a release in the Debian part of the # version number. Anything else indicates an unofficial build. -OFFICIAL_BUILD:=$(shell VERSION=$(SOURCE_VERSION); if ! expr "$$(echo $${VERSION\#\#*-} | sed 's/\(woody\|sarge\)//g')" : ".*[^0-9.].*" >/dev/null 2>&1; then echo yes; fi) +OFFICIAL_BUILD:=$(shell VERSION=$(SOURCE_VERSION); if ! expr "$$(echo $${VERSION\#\#*-} | sed 's/\(woody\|sarge\|etch\|lenny\)//g')" : ".*[^0-9.].*" >/dev/null 2>&1; then echo yes; fi) # Set up parameters for the Debian build environment. @@ -69,16 +69,6 @@ endif # $(STAMP_DIR) houses stamp files for complex targets. STAMP_DIR:=stampdir -# $(SOURCE_DIR) houses one or more source trees. -SOURCE_DIR:=build-tree - -# $(SOURCE_TREE) is the location of the source tree to be compiled. If there -# is more than one, others are found using this name plus a suffix to indicate -# the purpose of the additional tree (e.g., $(SOURCE_TREE)-custom). The -# "setup" target is responsible for creating such trees. -#SOURCE_TREE:=$(SOURCE_DIR)/xc -#FIXME We need to define this in our debian/rules file - # $(DEBTREEDIR) is where all install rules are told (via $(DESTDIR)) to place # their files. DEBTREEDIR:=$(CURDIR)/debian/tmp commit 6c29758eb1a2798f6b77516b7a75dc399769d217 Author: Julien Cristau <jcris...@debian.org> Date: Wed Jul 16 18:22:01 2008 +0200 xsfbs.mk: more parallel make fixing diff --git a/debian/xsfbs/xsfbs.mk b/debian/xsfbs/xsfbs.mk index fa2431e..2350f80 100755 --- a/debian/xsfbs/xsfbs.mk +++ b/debian/xsfbs/xsfbs.mk @@ -119,8 +119,8 @@ $(STAMP_DIR)/stampdir: # Set up the package build directory as quilt expects to find it. .PHONY: prepare stampdir_targets+=prepare -prepare: $(STAMP_DIR)/genscripts $(STAMP_DIR)/prepare -$(STAMP_DIR)/prepare: $(STAMP_DIR)/stampdir +prepare: $(STAMP_DIR)/prepare +$(STAMP_DIR)/prepare: $(STAMP_DIR)/stampdir $(STAMP_DIR)/genscripts mkdir -p $(STAMP_DIR)/log >$@ commit 78b3958b14a5298165d8500d711342be1b7b6463 Author: Julien Cristau <jcris...@debian.org> Date: Wed Jul 16 18:22:01 2008 +0200 xsfbs.mk: fix the prepare target for parallel make diff --git a/debian/xsfbs/xsfbs.mk b/debian/xsfbs/xsfbs.mk index b871b3b..fa2431e 100755 --- a/debian/xsfbs/xsfbs.mk +++ b/debian/xsfbs/xsfbs.mk @@ -119,11 +119,9 @@ $(STAMP_DIR)/stampdir: # Set up the package build directory as quilt expects to find it. .PHONY: prepare stampdir_targets+=prepare -prepare: $(STAMP_DIR)/genscripts $(STAMP_DIR)/prepare $(STAMP_DIR)/log +prepare: $(STAMP_DIR)/genscripts $(STAMP_DIR)/prepare $(STAMP_DIR)/prepare: $(STAMP_DIR)/stampdir - if [ ! -e $(STAMP_DIR)/log ]; then \ - mkdir $(STAMP_DIR)/log; \ - fi; \ + mkdir -p $(STAMP_DIR)/log >$@ # Apply all patches to the upstream source. -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org