ChangeLog | 137 ++++++++ MAINTAINERS | 41 ++ autogen.sh | 5 configure.ac | 3 debian/README.source | 24 - debian/changelog | 12 debian/compat | 2 debian/control | 10 debian/rules | 85 ----- debian/upstream/signing-key.asc | 60 +++ debian/watch | 1 debian/xsfbs/repack.sh | 32 -- debian/xsfbs/xsfbs-autoreconf.mk | 150 --------- debian/xsfbs/xsfbs.mk | 285 ----------------- debian/xsfbs/xsfbs.sh | 622 --------------------------------------- general/ReleaseNotes.xml | 4 general/input/XKB-Config.xml | 2 general/input/XKB-Enhancing.xml | 4 man/Consortium.man | 2 man/Standards.man | 2 man/X.man | 141 ++++---- man/Xsecurity.man | 2 specs/ICCCM/icccm.xml | 6 specs/XLFD/xlfd.xml | 2 specs/Xserver/XACE-Spec.xml | 4 specs/Xserver/analysis.xml | 8 specs/Xserver/appgroup.xml | 2 specs/Xserver/secint.xml | 4 28 files changed, 351 insertions(+), 1301 deletions(-)
New commits: commit 78ae1784bc5ab185a0062647379fe4781a80a6a4 Author: Julien Cristau <jcris...@debian.org> Date: Wed Oct 28 16:07:38 2015 +0000 Upload to unstable diff --git a/debian/changelog b/debian/changelog index ebf7b34..28f7c36 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,5 +1,6 @@ -xorg-docs (1:1.7.1-1) UNRELEASED; urgency=medium +xorg-docs (1:1.7.1-1) unstable; urgency=medium + * Team upload. * New upstream release. * Let uscan verify tarball signatures. * Remove Cyril from Uploaders. @@ -7,7 +8,7 @@ xorg-docs (1:1.7.1-1) UNRELEASED; urgency=medium * Switch to dh with the autoreconf and quilt addons. * Get rid of debian/xsfbs/. - -- Julien Cristau <jcris...@debian.org> Wed, 28 Oct 2015 15:51:03 +0000 + -- Julien Cristau <jcris...@debian.org> Wed, 28 Oct 2015 16:07:28 +0000 xorg-docs (1:1.7-1) unstable; urgency=low commit e9d1259769bad65a9e5e4dbef3f96b5beb61f5a5 Author: Julien Cristau <jcris...@debian.org> Date: Wed Oct 28 15:57:33 2015 +0000 Get rid of debian/xsfbs/. diff --git a/debian/README.source b/debian/README.source index b09a1ab..4ecd5e6 100644 --- a/debian/README.source +++ b/debian/README.source @@ -47,27 +47,3 @@ are involved: 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/changelog b/debian/changelog index 2d836ce..ebf7b34 100644 --- a/debian/changelog +++ b/debian/changelog @@ -5,6 +5,7 @@ xorg-docs (1:1.7.1-1) UNRELEASED; urgency=medium * Remove Cyril from Uploaders. * Bump Standards-Version to 3.9.6, update Vcs-* control fields. * Switch to dh with the autoreconf and quilt addons. + * Get rid of debian/xsfbs/. -- Julien Cristau <jcris...@debian.org> Wed, 28 Oct 2015 15:51:03 +0000 diff --git a/debian/xsfbs/repack.sh b/debian/xsfbs/repack.sh deleted file mode 100755 index 5935cc9..0000000 --- a/debian/xsfbs/repack.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/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-autoreconf.mk b/debian/xsfbs/xsfbs-autoreconf.mk deleted file mode 100644 index fc2fe62..0000000 --- a/debian/xsfbs/xsfbs-autoreconf.mk +++ /dev/null @@ -1,150 +0,0 @@ -#!/usr/bin/make -f -# $Id: xsfbs-autoreconf.mk 2284 2006-06-06 18:02:50Z branden $ - -# Automagical conversion of autoreconf results into quilt patches. - -# Copyright 2006 Eugene Konev -# -# Licensed under the GNU General Public License, version 2. See the file -# /usr/share/common-licenses/GPL or <http://www.gnu.org/copyleft/gpl.txt>. - -# The idea behind this is storing changes produced by autoreconf as a -# separate patch on quilt stack (on top of stack actually). -# The only usable target here is 'autoreconf`. Other targets are not -# supposed to be called directly. DO NOT invoke them, unless you know what -# you are doing. -# The autoreconf target will check if files with names in $(RECONF_CHECKFILES) -# were changed during patching (from upstream version or from previously -# autoreconfed version) and call actual autoreconfing if they were. -# The actual autoreconfing target (doautoreconf) WILL FAIL after -# calling autoreconf and pushing changes into quilt stack by design. It -# should never be invoked by automatic build process. -# The proposed use is adding autoreconf into clean's prerequisites before -# xsfclean like: -# - clean: xsfclean -# + clean: autoreconf xsfclean -# This will ensure it is called when you build package with dpkg-buildpackage. - -# This dir will be used for producing diff of autoreconfed tree -RECONF_DIR := xsfautoreconf - -# This files will be checked for changes -RECONF_CHECKFILES += configure.ac Makefile.am - -# This files will not be hardlinked but copied -RECONF_NOLINKFILES += aclocal.m4 - -# This files/dirs will be pruned after autoreconf run -RECONF_PRUNEFILES += autom4te.cache config.h.in~ aclocal.m4~ - -# Internal target. Never invoke directly. -stampdir_target+=check.md5sum -$(STAMP_DIR)/check.md5sum: - dh_testdir - $(MAKE) -f debian/rules prepare - for F in $(RECONF_CHECKFILES); do \ - find . -wholename ./$(STAMP_DIR) -prune -o -name $$F -print | \ - LC_ALL=C sort | xargs --no-run-if-empty md5sum >>$@; \ - done - -# Internal target. Never invoke directly. -$(STAMP_DIR)/clean.md5sum: - dh_testdir - $(MAKE) -f debian/rules unpatch - rm -f $(STAMP_DIR)/check.md5sum - $(MAKE) -f debian/rules $(STAMP_DIR)/check.md5sum - mv $(STAMP_DIR)/check.md5sum $@ - -# Internal target. Never invoke directly. -debian/patches/patched.md5sum: - dh_testdir - [ -f $(STAMP_DIR)/clean.md5sum ] || \ - $(MAKE) -f debian/rules $(STAMP_DIR)/clean.md5sum - - $(MAKE) -f debian/rules patch - rm -f $(STAMP_DIR)/check.md5sum - $(MAKE) -f debian/rules $(STAMP_DIR)/check.md5sum - if ! diff $(STAMP_DIR)/clean.md5sum \ - $(STAMP_DIR)/check.md5sum > /dev/null; then \ - $(MAKE) -f debian/rules doautoreconf; \ - else \ - mv $(STAMP_DIR)/check.md5sum $@; \ - fi - -# Internal target. Never invoke directly. -,PHONY: doautoreconf -doautoreconf: patch - quilt push -a >>$(STAMP_DIR)/log/autoreconf 2>&1 || true - if quilt applied | grep ^autoreconf.diff$$ > /dev/null; then \ - quilt pop -a >>$(STAMP_DIR)/log/autoreconf 2>&1; \ - quilt rename -p autoreconf.diff autoreconf-old.diff \ - >>$(STAMP_DIR)/log/autoreconf 2>&1; \ - quilt delete autoreconf-old.diff >>$(STAMP_DIR)/log/autoreconf 2>&1; \ - quilt push -a >>$(STAMP_DIR)/log/autoreconf 2>&1; \ - fi - - if [ -e $(RECONF_DIR) ]; then \ - echo "ERROR: $(RECONF_DIR) already exists. Cleanup by hand"; \ - exit 1; \ - fi - - mkdir -p $(RECONF_DIR)/before - find . -maxdepth 1 -mindepth 1 ! -wholename ./$(RECONF_DIR) \ - -a ! -wholename ./debian -a ! -wholename ./patches \ - -a ! -wholename ./.pc -a ! -wholename ./$(STAMP_DIR) | \ - xargs -i{} cp -al {} $(RECONF_DIR)/before/ - - for F in $(RECONF_PRUNEFILES); do \ - find $(RECONF_DIR)/before -name $$F -print | \ - xargs --no-run-if-empty rm -r; \ - done - - cp -al $(RECONF_DIR)/before $(RECONF_DIR)/after - - for F in $(RECONF_NOLINKFILES); do \ - find . -wholename ./$(RECONF_DIR) -prune -o -wholename ./debian \ - -prune -o -wholename ./$(STAMP_DIR) -prune -o -name $$F \ - -print | \ - xargs --no-run-if-empty -i{} cp --remove-destination {} \ - $(RECONF_DIR)/after/{}; \ - done - - cd $(RECONF_DIR)/after && autoreconf -v --install && \ - for F in $(RECONF_PRUNEFILES); do \ - find . -name $$F -print | \ - xargs --no-run-if-empty rm -r; \ - done - - cd $(RECONF_DIR) && diff -Nru before after > autoreconf.diff || true - - quilt import $(RECONF_DIR)/autoreconf.diff \ - >>$(STAMP_DIR)/log/autoreconf 2>&1 - - mv $(STAMP_DIR)/check.md5sum debian/patches/patched.md5sum - - rm -r $(RECONF_DIR) && rm -f patches/autoreconf-old.diff - - @echo - @echo "****************************************************************" - @echo " This target is made to fail INTENTIONALLY. It should NEVER " - @echo " be invoked during automatic builds. " - @echo - @echo " This target was invoked because you added/removed/changed " - @echo " patches which modify either configure.ac or Makefile.am and, " - @echo " thus, require autoreconf run. And all autoreconfing should " - @echo " happen before uploading. " - @echo - @echo " (See also debian/xsfbs/xsfbs-autoreconf.mk) " - @echo - @echo " If you see this message, autoreconfing actually SUCCEEDED, " - @echo " and your build should finish successfully, when rerun. " - @echo "****************************************************************" - @echo - exit 1; - -.PHONY: autoreconf -autoreconf: debian/patches/patched.md5sum patch $(STAMP_DIR)/check.md5sum - if ! diff $(STAMP_DIR)/check.md5sum \ - debian/patches/patched.md5sum > /dev/null; then \ - $(MAKE) -f debian/rules doautoreconf; \ - fi diff --git a/debian/xsfbs/xsfbs.mk b/debian/xsfbs/xsfbs.mk deleted file mode 100755 index 3c59c20..0000000 --- a/debian/xsfbs/xsfbs.mk +++ /dev/null @@ -1,285 +0,0 @@ -#!/usr/bin/make -f - -# Debian X Strike Force Build System (XSFBS): Make portion - -# Copyright 1996 Stephen Early -# Copyright 1997 Mark Eichin -# Copyright 1998-2005, 2007 Branden Robinson -# Copyright 2005 David Nusinow -# -# Licensed under the GNU General Public License, version 2. See the file -# /usr/share/common-licenses/GPL or <http://www.gnu.org/copyleft/gpl.txt>. - -# Originally by Stephen Early <sde1...@debian.org> -# Modified by Mark W. Eichin <eic...@kitten.gen.ma.us> -# Modified by Adam Heath <doo...@debian.org> -# Modified by Branden Robinson <bran...@debian.org> -# Modified by Fabio Massimo Di Nitto <fabbi...@fabbione.net> -# Modified by David Nusinow <dnusi...@debian.org> -# Acknowledgements to Manoj Srivastava. - -# Pass $(DH_OPTIONS) into the environment for debhelper's benefit. -export DH_OPTIONS - -# force quilt to not use ~/.quiltrc and to use debian/patches -QUILT = QUILT_PATCHES=debian/patches quilt --quiltrc /dev/null - -# Set up parameters for the upstream build environment. - -# Determine (source) package name from Debian changelog. -SOURCE_NAME:=$(shell dpkg-parsechangelog -ldebian/changelog \ - | grep '^Source:' | awk '{print $$2}') - -# Determine package version from Debian changelog. -SOURCE_VERSION:=$(shell dpkg-parsechangelog -ldebian/changelog \ - | grep '^Version:' | awk '{print $$2}') - -# Determine upstream version number. -UPSTREAM_VERSION:=$(shell echo $(SOURCE_VERSION) | sed 's/-.*//') - -# Determine the source version without the epoch for make-orig-tar-gz -NO_EPOCH_VER:=$(shell echo $(UPSTREAM_VERSION) | sed 's/^.://') - -# Figure out who's building this package. -BUILDER:=$(shell echo $${DEBEMAIL:-$${EMAIL:-$$(echo $$LOGNAME@$$(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 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\|etch\|lenny\)//g')" : ".*[^0-9.].*" >/dev/null 2>&1; then echo yes; fi) - -# Set up parameters for the Debian build environment. - -# Determine our architecture. -BUILD_ARCH:=$(shell dpkg-architecture -qDEB_BUILD_ARCH) -# Work around some old-time dpkg braindamage. -BUILD_ARCH:=$(subst i486,i386,$(BUILD_ARCH)) -# The DEB_HOST_ARCH variable may be set per the Debian cross-compilation policy. -ifdef DEB_HOST_ARCH - ARCH:=$(DEB_HOST_ARCH) -else - # dpkg-cross sets the ARCH environment variable; if set, use it. - ifdef ARCH - ARCH:=$(ARCH) - else - ARCH:=$(BUILD_ARCH) - endif -endif - -# $(STAMP_DIR) houses stamp files for complex targets. -STAMP_DIR:=stampdir - -# $(DEBTREEDIR) is where all install rules are told (via $(DESTDIR)) to place -# their files. -DEBTREEDIR:=$(CURDIR)/debian/tmp - -# All "important" targets have four lines: -# 1) A target name that is invoked by a package-building tool or the user. -# This consists of a dependency on a "$(STAMP_DIR)/"-prefixed counterpart. -# 2) A line delcaring 1) as a phony target (".PHONY:"). -# 3) A "$(STAMP_DIR)/"-prefixed target which does the actual work, and may -# depend on other targets. -# 4) A line declaring 3) as a member of the $(stampdir_targets) variable; the -# "$(STAMP_DIR)/" prefix is omitted. -# -# This indirection is needed so that the "stamp" files that signify when a rule -# is done can be located in a separate "stampdir". Recall that make has no way -# to know when a goal has been met for a phony target (like "build" or -# "install"). -# -# At the end of each "$(STAMP_DIR)/" target, be sure to run the command ">$@" -# so that the target will not be run again. Removing the file will make Make -# run the target over. - -# All phony targets should be declared as dependencies of .PHONY, even if they -# do not have "($STAMP_DIR)/"-prefixed counterparts. - -# Define a harmless default rule to keep things from going nuts by accident. -.PHONY: default -default: - -# Set up the $(STAMP_DIR) directory. -.PHONY: stampdir -stampdir_targets+=stampdir -stampdir: $(STAMP_DIR)/stampdir -$(STAMP_DIR)/stampdir: - mkdir $(STAMP_DIR) - >$@ - -# Set up the package build directory as quilt expects to find it. -.PHONY: prepare -stampdir_targets+=prepare -prepare: $(STAMP_DIR)/prepare -$(STAMP_DIR)/prepare: $(STAMP_DIR)/logdir $(STAMP_DIR)/genscripts - >$@ - -.PHONY: logdir -stampdir_targets+=logdir -logdir: $(STAMP_DIR)/logdir -$(STAMP_DIR)/logdir: $(STAMP_DIR)/stampdir - mkdir -p $(STAMP_DIR)/log - >$@ - -# Apply all patches to the upstream source. -.PHONY: patch -stampdir_targets+=patch -patch: $(STAMP_DIR)/patch -$(STAMP_DIR)/patch: $(STAMP_DIR)/prepare - if ! [ `which quilt` ]; then \ - echo "Couldn't find quilt. Please install it or add it to the build-depends for this package."; \ - exit 1; \ - fi; \ - if $(QUILT) next >/dev/null 2>&1; then \ - echo -n "Applying patches..."; \ - if $(QUILT) push -a -v >$(STAMP_DIR)/log/patch 2>&1; then \ - cat $(STAMP_DIR)/log/patch; \ - echo "successful."; \ - else \ - cat $(STAMP_DIR)/log/patch; \ - echo "failed! (check $(STAMP_DIR)/log/patch for details)"; \ - exit 1; \ - fi; \ - else \ - echo "No patches to apply"; \ - fi; \ - >$@ - -# Revert all patches to the upstream source. -.PHONY: unpatch -unpatch: $(STAMP_DIR)/logdir - rm -f $(STAMP_DIR)/patch - @echo -n "Unapplying patches..."; \ - if $(QUILT) applied >/dev/null 2>/dev/null; then \ - if $(QUILT) pop -a -v >$(STAMP_DIR)/log/unpatch 2>&1; then \ - cat $(STAMP_DIR)/log/unpatch; \ - echo "successful."; \ - else \ - cat $(STAMP_DIR)/log/unpatch; \ - echo "failed! (check $(STAMP_DIR)/log/unpatch for details)"; \ - exit 1; \ - fi; \ - else \ - echo "nothing to do."; \ - fi - -# Clean the generated maintainer scripts. -.PHONY: cleanscripts -cleanscripts: - rm -f $(STAMP_DIR)/genscripts - rm -f debian/*.config \ - debian/*.postinst \ - debian/*.postrm \ - debian/*.preinst \ - debian/*.prerm - -# Clean the package build tree. -.PHONY: xsfclean -xsfclean: cleanscripts unpatch - dh_testdir - rm -rf .pc - rm -rf $(STAMP_DIR) - 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. -# -# Note: This rule is for Debian package maintainers' convenience, and is not -# needed for conventional build scenarios. -.PHONY: prune-upstream-tree -prune-upstream-tree: - # Ensure we're in the correct directory. - dh_testdir - grep -rvh '^#' debian/prune/ | xargs --no-run-if-empty rm -rf - -# Verify that there are no offsets or fuzz in the patches we apply. -# -# Note: This rule is for Debian package maintainers' convenience, and is not -# needed for conventional build scenarios. -.PHONY: patch-audit -patch-audit: prepare unpatch - @echo -n "Auditing patches..."; \ - >$(STAMP_DIR)/log/patch; \ - FUZZY=; \ - while [ -n "$$($(QUILT) next)" ]; do \ - RESULT=$$($(QUILT) push -v | tee -a $(STAMP_DIR)/log/patch | grep ^Hunk | sed 's/^Hunk.*\(succeeded\|FAILED\).*/\1/');\ - case "$$RESULT" in \ - succeeded) \ - echo "fuzzy patch: $$($(QUILT) top)" \ - | tee -a $(STAMP_DIR)/log/$$($(QUILT) top); \ - FUZZY=yes; \ - ;; \ - FAILED) \ - echo "broken patch: $$($(QUILT) next)" \ - | tee -a $(STAMP_DIR)/log/$$($(QUILT) next); \ - exit 1; \ - ;; \ - esac; \ - done; \ - if [ -n "$$FUZZY" ]; then \ - echo "there were fuzzy patches; please fix."; \ - exit 1; \ - else \ - echo "done."; \ - fi - -# Generate the maintainer scripts. -.PHONY: genscripts -stampdir_targets+=genscripts -genscripts: $(STAMP_DIR)/genscripts -$(STAMP_DIR)/genscripts: $(STAMP_DIR)/stampdir - for FILE in debian/*.config.in \ - debian/*.postinst.in \ - debian/*.postrm.in \ - debian/*.preinst.in \ - debian/*.prerm.in; do \ - if [ -e "$$FILE" ]; then \ - MAINTSCRIPT=$$(echo $$FILE | sed 's/.in$$//'); \ - sed -n '1,/^#INCLUDE_SHELL_LIB#$$/p' <$$FILE \ - | sed -e '/^#INCLUDE_SHELL_LIB#$$/d' >$$MAINTSCRIPT.tmp; \ - cat debian/xsfbs/xsfbs.sh >>$$MAINTSCRIPT.tmp; \ - sed -n '/^#INCLUDE_SHELL_LIB#$$/,$$p' <$$FILE \ - | sed -e '/^#INCLUDE_SHELL_LIB#$$/d' >>$$MAINTSCRIPT.tmp; \ - sed -e 's/@SOURCE_VERSION@/$(SOURCE_VERSION)/' \ - -e 's/@OFFICIAL_BUILD@/$(OFFICIAL_BUILD)/' \ - <$$MAINTSCRIPT.tmp >$$MAINTSCRIPT; \ - rm $$MAINTSCRIPT.tmp; \ - fi; \ - done - # Validate syntax of generated shell scripts. - #sh debian/scripts/validate-posix-sh debian/*.config \ - # debian/*.postinst \ - # debian/*.postrm \ - # debian/*.preinst \ - # debian/*.prerm - >$@ - -# Compute dependencies for drivers -# -VIDEODEP = $(shell cat /usr/share/xserver-xorg/videodrvdep 2>/dev/null) -INPUTDEP = $(shell cat /usr/share/xserver-xorg/xinputdep 2>/dev/null) - -# these two can be removed post-squeeze -VIDEOABI = $(shell cat /usr/share/xserver-xorg/videoabiver 2>/dev/null) -INPUTABI = $(shell cat /usr/share/xserver-xorg/inputabiver 2>/dev/null) -VIDDRIVER_PROVIDES = xserver-xorg-video-$(VIDEOABI), xorg-driver-video -INPDRIVER_PROVIDES = xserver-xorg-input-$(INPUTABI), xorg-driver-input - -ifeq ($(PACKAGE),) -PACKAGE=$(shell awk '/^Package:/ { print $$2; exit }' < debian/control) -endif - -.PHONY: serverabi -serverabi: install -ifeq ($(VIDEODEP),) - @echo 'error: xserver-xorg-dev >= 1.7.6.901 needs to be installed' - @exit 1 -else - echo "xviddriver:Depends=$(VIDEODEP)" >> debian/$(PACKAGE).substvars - echo "xinpdriver:Depends=$(INPUTDEP)" >> debian/$(PACKAGE).substvars - # the following is there for compatibility... - echo "xviddriver:Provides=$(VIDDRIVER_PROVIDES)" >> debian/$(PACKAGE).substvars - echo "xinpdriver:Provides=$(INPDRIVER_PROVIDES)" >> debian/$(PACKAGE).substvars - echo "xserver:Depends=$(VIDEODEP), $(INPUTDEP)" >> debian/$(PACKAGE).substvars -endif - -# vim:set noet ai sts=8 sw=8 tw=0: diff --git a/debian/xsfbs/xsfbs.sh b/debian/xsfbs/xsfbs.sh deleted file mode 100644 index 813fd8d..0000000 --- a/debian/xsfbs/xsfbs.sh +++ /dev/null @@ -1,622 +0,0 @@ -# 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 -# of those functions. By itself, it does not "do" much; the maintainer scripts -# invoke the functions defined here to accomplish package installation and -# 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 -# skip past this library by scanning forward in this file to the string -# "GOBSTOPPER". - -SOURCE_VERSION=@SOURCE_VERSION@ -OFFICIAL_BUILD=@OFFICIAL_BUILD@ - -# Use special abnormal exit codes so that problems with this library are more -# easily tracked down. -SHELL_LIB_INTERNAL_ERROR=86 -SHELL_LIB_THROWN_ERROR=74 -SHELL_LIB_USAGE_ERROR=99 - -# old -> new variable names -if [ -z "$DEBUG_XORG_PACKAGE" ] && [ -n "$DEBUG_XFREE86_PACKAGE" ]; then - DEBUG_XORG_PACKAGE="$DEBUG_XFREE86_PACKAGE" -fi -if [ -z "$DEBUG_XORG_DEBCONF" ] && [ -n "$DEBUG_XFREE86_DEBCONF" ]; then - DEBUG_XORG_DEBCONF="$DEBUG_XFREE86_DEBCONF" -fi - -# initial sanity checks -if [ -z "$THIS_PACKAGE" ]; then - cat >&2 <<EOF -Error: package maintainer script attempted to use shell library without -definining \$THIS_PACKAGE shell variable. Please report the package name, -version, and the text of this error message to the Debian Bug Tracking System. -Visit <http://www.debian.org/Bugs/Reporting> on the World Wide Web for -instructions, read the file /usr/share/doc/debian/bug-reporting.txt from the -"doc-debian" package, or install the "reportbug" package and use the command of -the same name to file a report against version $SOURCE_VERSION of this package. -EOF - exit $SHELL_LIB_USAGE_ERROR -fi - -if [ -z "$THIS_SCRIPT" ]; then - cat >&2 <<EOF -Error: package maintainer script attempted to use shell library without -definining \$THIS_SCRIPT shell variable. Please report the package name, -version, and the text of this error message to the Debian Bug Tracking System. -Visit <http://www.debian.org/Bugs/Reporting> on the World Wide Web for -instructions, read the file /usr/share/doc/debian/bug-reporting.txt from the -"doc-debian" package, or install the "reportbug" package and use the command of -the same name to file a report against version $SOURCE_VERSION of the -"$THIS_PACKAGE" package. -EOF - exit $SHELL_LIB_USAGE_ERROR -fi - -if [ "$1" = "reconfigure" ] || [ -n "$DEBCONF_RECONFIGURE" ]; then - RECONFIGURE="true" -else - RECONFIGURE= -fi - -if ([ "$1" = "install" ] || [ "$1" = "configure" ]) && [ -z "$2" ]; then - FIRSTINST="yes" -fi - -if [ -z "$RECONFIGURE" ] && [ -z "$FIRSTINST" ]; then - UPGRADE="yes" -fi - -trap "message;\ - message \"Received signal. Aborting $THIS_PACKAGE package $THIS_SCRIPT script.\";\ - message;\ - exit 1" HUP INT QUIT TERM - -reject_nondigits () { - # syntax: reject_nondigits [ operand ... ] - # - # scan operands (typically shell variables whose values cannot be trusted) for - # characters other than decimal digits and barf if any are found - while [ -n "$1" ]; do - # does the operand contain anything but digits? - if ! expr "$1" : "[[:digit:]]\+$" > /dev/null 2>&1; then - # can't use die(), because it wraps message() which wraps this function - echo "$THIS_PACKAGE $THIS_SCRIPT error: reject_nondigits() encountered" \ - "possibly malicious garbage \"$1\"" >&2 - exit $SHELL_LIB_THROWN_ERROR - fi - shift - done -} - -reject_unlikely_path_chars () { - # syntax: reject_unlikely_path_chars [ operand ... ] - # - # scan operands (typically shell variables whose values cannot be trusted) for - # characters unlikely to be seen in a path and which the shell might - # interpret and barf if any are found - while [ -n "$1" ]; do - # does the operand contain any funny characters? - if expr "$1" : '.*[!$&()*;<>?|].*' > /dev/null 2>&1; then - # can't use die(), because I want to avoid forward references - echo "$THIS_PACKAGE $THIS_SCRIPT error: reject_unlikely_path_chars()" \ - "encountered possibly malicious garbage \"$1\"" >&2 - exit $SHELL_LIB_THROWN_ERROR - fi - shift - done -} - -# Query the terminal to establish a default number of columns to use for -# displaying messages to the user. This is used only as a fallback in the -# event the COLUMNS variable is not set. ($COLUMNS can react to SIGWINCH while -# the script is running, and this cannot, only being calculated once.) -DEFCOLUMNS=$(stty size 2> /dev/null | awk '{print $2}') || true -if ! expr "$DEFCOLUMNS" : "[[:digit:]]\+$" > /dev/null 2>&1; then - DEFCOLUMNS=80 -fi - -message () { - # pretty-print messages of arbitrary length - reject_nondigits "$COLUMNS" - echo "$*" | fmt -t -w ${COLUMNS:-$DEFCOLUMNS} >&2 -} - -observe () { - # syntax: observe message ... - # - # issue observational message suitable for logging someday when support for - # it exists in dpkg - if [ -n "$DEBUG_XORG_PACKAGE" ]; then - message "$THIS_PACKAGE $THIS_SCRIPT note: $*" - fi -} - -warn () { - # syntax: warn message ... - # - # issue warning message suitable for logging someday when support for - # it exists in dpkg; also send to standard error - message "$THIS_PACKAGE $THIS_SCRIPT warning: $*" -} - -die () { - # syntax: die message ... - # - # exit script with error message - message "$THIS_PACKAGE $THIS_SCRIPT error: $*" - exit $SHELL_LIB_THROWN_ERROR -} - -internal_error () { - # exit script with error; essentially a "THIS SHOULD NEVER HAPPEN" message - message "internal error: $*" - if [ -n "$OFFICIAL_BUILD" ]; then - message "Please report a bug in the $THIS_SCRIPT script of the" \ - "$THIS_PACKAGE package, version $SOURCE_VERSION to the Debian Bug" \ - "Tracking System. Include all messages above that mention the" \ - "$THIS_PACKAGE package. Visit " \ - "<http://www.debian.org/Bugs/Reporting> on the World Wide Web for" \ - "instructions, read the file" \ - "/usr/share/doc/debian/bug-reporting.txt from the doc-debian" \ - "package, or install the reportbug package and use the command of" \ - "the same name to file a report." - fi - exit $SHELL_LIB_INTERNAL_ERROR -} - -usage_error () { - message "usage error: $*" - message "Please report a bug in the $THIS_SCRIPT script of the" \ - "$THIS_PACKAGE package, version $SOURCE_VERSION to the Debian Bug" \ - "Tracking System. Include all messages above that mention the" \ - "$THIS_PACKAGE package. Visit " \ - "<http://www.debian.org/Bugs/Reporting> on the World Wide Web for" \ - "instructions, read the file" \ - "/usr/share/doc/debian/bug-reporting.txt from the doc-debian" \ - "package, or install the reportbug package and use the command of" \ - "the same name to file a report." - exit $SHELL_LIB_USAGE_ERROR -} - -font_update () { - # run $UPDATECMDS in $FONTDIRS - - local dir cmd shortcmd x_font_dir_prefix - - x_font_dir_prefix="/usr/share/fonts/X11" - - if [ -z "$UPDATECMDS" ]; then - usage_error "font_update() called but \$UPDATECMDS not set" - fi - if [ -z "$FONTDIRS" ]; then - usage_error "font_update() called but \$FONTDIRS not set" - fi - - reject_unlikely_path_chars "$UPDATECMDS" - reject_unlikely_path_chars "$FONTDIRS" - - for dir in $FONTDIRS; do - if [ -d "$x_font_dir_prefix/$dir" ]; then - for cmd in $UPDATECMDS; do - if which "$cmd" > /dev/null 2>&1; then - shortcmd=${cmd##*/} - observe "running $shortcmd in $dir font directory" - cmd_opts= - if [ "$shortcmd" = "update-fonts-alias" ]; then - cmd_opts=--x11r7-layout - fi - if [ "$shortcmd" = "update-fonts-dir" ]; then - cmd_opts=--x11r7-layout - fi - if [ "$shortcmd" = "update-fonts-scale" ]; then - cmd_opts=--x11r7-layout - fi - $cmd $cmd_opts $dir || warn "$cmd $cmd_opts $dir" \ - "failed; font directory data may not" \ - "be up to date" - else - warn "$cmd not found; not updating corresponding $dir font" \ - "directory data" - fi - done - else - warn "$dir is not a directory; not updating font directory data" - fi - done -} - -remove_conffile_prepare () { - # syntax: remove_conffile_prepare filename official_md5sum ... - # - # Check a conffile "filename" against a list of canonical MD5 checksums. - # If the file's current MD5 checksum matches one of the "official_md5sum" - # operands provided, then prepare the conffile for removal from the system. - # We defer actual deletion until the package is configured so that we can - # roll this operation back if package installation fails. - # - # Call this function from a preinst script in the event $1 is "upgrade" or - # "install" and verify $2 to ensure the package is being upgraded from a - # version (or installed over a version removed-but-not-purged) prior to the - # one in which the conffile was obsoleted. - - local conffile current_checksum - - # validate arguments - if [ $# -lt 2 ]; then - usage_error "remove_conffile_prepare() called with wrong number of" \ - "arguments; expected at least 2, got $#" - exit $SHELL_LIB_USAGE_ERROR - fi - - conffile="$1" - shift - - # does the conffile even exist? - if [ -e "$conffile" ]; then - # calculate its checksum - current_checksum=$(md5sum < "$conffile" | sed 's/[[:space:]].*//') - # compare it to each supplied checksum - while [ -n "$1" ]; do - if [ "$current_checksum" = "$1" ]; then - # we found a match; move the confffile and stop looking - observe "preparing obsolete conffile $conffile for removal" - mv "$conffile" "$conffile.$THIS_PACKAGE-tmp" - break - fi - shift - done - fi -} - -remove_conffile_lookup () { - # syntax: remove_conffile_lookup package filename - # - # Lookup the md5sum of a conffile in dpkg's database, and prepare for removal - # if it matches the actual file's md5sum. - # - # Call this function when you would call remove_conffile_prepare but only - # want to check against dpkg's status database instead of known checksums. - - local package conffile old_md5sum - - # validate arguments - if [ $# -ne 2 ]; then - usage_error "remove_conffile_lookup() called with wrong number of" \ - "arguments; expected 1, got $#" - exit $SHELL_LIB_USAGE_ERROR - fi - - package="$1" - conffile="$2" - - if ! [ -e "$conffile" ]; then - return - fi - old_md5sum="$(dpkg-query -W -f='${Conffiles}' "$package" | \ - awk '{ if (match($0, "^ '"$conffile"' ")) print $2}')" - if [ -n "$old_md5sum" ]; then - remove_conffile_prepare "$conffile" "$old_md5sum" - fi -} - -remove_conffile_commit () { - # syntax: remove_conffile_commit filename - # - # Complete the removal of a conffile "filename" that has become obsolete. - # - # Call this function from a postinst script after having used - # remove_conffile_prepare() in the preinst. - - local conffile - - # validate arguments - if [ $# -ne 1 ]; then - usage_error "remove_conffile_commit() called with wrong number of" \ - "arguments; expected 1, got $#" - exit $SHELL_LIB_USAGE_ERROR - fi - - conffile="$1" - - # if the temporary file created by remove_conffile_prepare() exists, remove it - if [ -e "$conffile.$THIS_PACKAGE-tmp" ]; then - observe "committing removal of obsolete conffile $conffile" - rm "$conffile.$THIS_PACKAGE-tmp" - fi -} - -remove_conffile_rollback () { - # syntax: remove_conffile_rollback filename - # - # Roll back the removal of a conffile "filename". - # - # Call this function from a postrm script in the event $1 is "abort-upgrade" - # or "abort-install" is after having used remove_conffile_prepare() in the - # preinst. - - local conffile - - # validate arguments - if [ $# -ne 1 ]; then - usage_error "remove_conffile_rollback() called with wrong number of" \ - "arguments; expected 1, got $#" - exit $SHELL_LIB_USAGE_ERROR - fi - - conffile="$1" - - # if the temporary file created by remove_conffile_prepare() exists, move it - # back - if [ -e "$conffile.$THIS_PACKAGE-tmp" ]; then - observe "rolling back removal of obsolete conffile $conffile" - mv "$conffile.$THIS_PACKAGE-tmp" "$conffile" - fi -} - -replace_conffile_with_symlink_prepare () { - # syntax: replace_conffile_with_symlink_prepare oldfilename newfilename \ - # official_md5sum ... - # - # Check a conffile "oldfilename" against a list of canonical MD5 checksums. - # If the file's current MD5 checksum matches one of the "official_md5sum" - # operands provided, then prepare the conffile for removal from the system. - # We defer actual deletion until the package is configured so that we can - # roll this operation back if package installation fails. Otherwise copy it - # to newfilename and let dpkg handle it through conffiles mechanism. - # - # Call this function from a preinst script in the event $1 is "upgrade" or - # "install" and verify $2 to ensure the package is being upgraded from a - # version (or installed over a version removed-but-not-purged) prior to the - # one in which the conffile was obsoleted. - - local conffile current_checksum - - # validate arguments - if [ $# -lt 3 ]; then - usage_error "replace_conffile_with_symlink_prepare() called with wrong" \ - " number of arguments; expected at least 3, got $#" - exit $SHELL_LIB_USAGE_ERROR - fi - - oldconffile="$1" - shift - newconffile="$1" - shift - - remove_conffile_prepare "$_oldconffile" "$@" - # If $oldconffile still exists, then md5sums didn't match. - # Copy it to new one. - if [ -f "$oldconffile" ]; then - cp "$oldconffile" "$newconffile" - fi - -} - -replace_conffile_with_symlink_commit () { - # syntax: replace_conffile_with_symlink_commit oldfilename - #