summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Cristau <jcristau@debian.org>2009-08-02 15:04:15 +0200
committerJulien Cristau <jcristau@debian.org>2009-08-02 15:04:15 +0200
commit93a81e1d57042311b2242a777cd97b8ef31305da (patch)
treed6de7692854fb2f73147ab46ff2a1297be3e7307
parentb8edfc2fcc56ac06971e6f334de5fef45a2a42ac (diff)
parent8f72294ada477f003888b6776883c1dd98289f3f (diff)
downloadxutils-dev-93a81e1d57042311b2242a777cd97b8ef31305da.tar.gz
Merge branch 'debian-unstable' of git.debian.org:/git/pkg-xorg/xsfbs into debian-unstable
-rw-r--r--debian/README.source73
-rwxr-xr-xdebian/xsfbs/repack.sh32
-rw-r--r--debian/xsfbs/xsfbs.sh78
3 files changed, 105 insertions, 78 deletions
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.
diff --git a/debian/xsfbs/repack.sh b/debian/xsfbs/repack.sh
new file mode 100755
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
diff --git a/debian/xsfbs/xsfbs.sh b/debian/xsfbs/xsfbs.sh
index 72efa95..781826f 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
@@ -305,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
#
@@ -719,72 +707,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
#