.cvsignore | 19 autogen.sh | 12 debian/changelog | 13 debian/control | 12 debian/rules | 2 debian/xsfbs/xsfbs-autoreconf.mk | 150 ++++++ debian/xsfbs/xsfbs.mk | 379 ++++++++++++++++ debian/xsfbs/xsfbs.sh | 907 +++++++++++++++++++++++++++++++++++++++ man/.cvsignore | 2 man/Makefile.am | 2 src/.cvsignore | 6 11 files changed, 1496 insertions(+), 8 deletions(-)
New commits: commit fd339b46746d0fdf329138ea3d8043bfcb5adf64 Author: Brice Goglin <[EMAIL PROTECTED]> Date: Tue Apr 24 00:34:19 2007 +0200 Miscellaneous fixed in debian/control and debian/rules. * Install the upstream changelog. * Generate the dependency on xserver-xorg-core automatically. * Bump Build-Depends: xserver-xorg-dev to >= 2:1.2.99.902 (needed to let xsfbs get access to serverminver). * Add XS-Vcs-*. * Add a link to www.X.org and a reference to the xf86-input-summa module in the long description. * Remove Fabio from uploaders with his permission. He's always welcome back. diff --git a/debian/changelog b/debian/changelog index 786b8a8..da1f26c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,11 +1,22 @@ xserver-xorg-input-hyperpen (1:1.1.0-2) UNRELEASED; urgency=low + [ Julien Cristau ] * Add link to xserver-xorg-core bug script, so that bugreports contain the user's config and log files. * Bump dependency on xserver-xorg-core to >= 2:1.1.1-11, as previous versions don't have the bug script. - -- Julien Cristau <[EMAIL PROTECTED]> Tue, 7 Nov 2006 07:30:36 +0100 + [ Brice Goglin ] + * Install the upstream changelog. + * Generate the dependency on xserver-xorg-core automatically. + * Bump Build-Depends: xserver-xorg-dev to >= 2:1.2.99.902 + (needed to let xsfbs get access to serverminver). + * Add XS-Vcs-*. + * Add a link to www.X.org and a reference to the xf86-input-summa + module in the long description. + * Remove Fabio from uploaders with his permission. He's always welcome back. + + -- Brice Goglin <[EMAIL PROTECTED]> Tue, 24 Apr 2007 00:01:32 +0200 xserver-xorg-input-hyperpen (1:1.1.0-1) unstable; urgency=low diff --git a/debian/control b/debian/control index 70d38ff..cac18a5 100644 --- a/debian/control +++ b/debian/control @@ -2,21 +2,23 @@ Source: xserver-xorg-input-hyperpen Section: x11 Priority: optional Maintainer: Debian X Strike Force <debian-x@lists.debian.org> -Uploaders: David Nusinow <[EMAIL PROTECTED]>, Branden Robinson <[EMAIL PROTECTED]>, Fabio M. Di Nitto <[EMAIL PROTECTED]> -Build-Depends: debhelper (>= 5), pkg-config, xserver-xorg-dev (>= 2:1.1.1-1), x11proto-input-dev, x11proto-core-dev, x11proto-randr-dev +Uploaders: David Nusinow <[EMAIL PROTECTED]>, Branden Robinson <[EMAIL PROTECTED]> +Build-Depends: debhelper (>= 5), pkg-config, xserver-xorg-dev (>= 2:1.2.99.902), x11proto-input-dev, x11proto-core-dev, x11proto-randr-dev Standards-Version: 3.7.2 +XS-Vcs-Git: git://git.debian.org/git/pkg-xorg/driver/xserver-xorg-input-hyperpen +XS-Vcs-Browser: http://git.debian.org/?p=pkg-xorg/driver/xserver-xorg-input-hyperpen.git Package: xserver-xorg-input-hyperpen Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends}, xserver-xorg-core (>= 2:1.1.1-11) +Depends: ${shlibs:Depends}, ${misc:Depends}, ${xserver:Depends} Provides: xserver-xorg-input Replaces: xserver-xorg (<< 6.8.2-35) Description: X.Org X server -- HyperPen input driver This package provides the driver for Aiptek HyperPen 6000 graphics tablets. . More information about X.Org can be found at: + <URL:http://www.X.org> <URL:http://xorg.freedesktop.org> <URL:http://lists.freedesktop.org/mailman/listinfo/xorg> . - This module can be found as the module 'driver/xf86-input-hyperpen' at - :pserver:[EMAIL PROTECTED]:/cvs/xorg + This package is built from the X.org xf86-input-hyperpen driver module. diff --git a/debian/rules b/debian/rules index afce395..c05ac15 100755 --- a/debian/rules +++ b/debian/rules @@ -71,7 +71,7 @@ binary-arch: build install dh_testroot dh_installdocs - dh_installchangelogs + dh_installchangelogs ChangeLog dh_install --sourcedir=debian/tmp --list-missing --exclude=hyperpen_drv.la dh_installman dh_link commit 271778bd6338575afa3e4ae7f614f38cdff8e2fb Author: Branden Robinson <[EMAIL PROTECTED](none)> Date: Thu Apr 12 23:18:32 2007 -0400 Test for existence of debian/patches directory before creating a symlink to it. This prevents packages that apply no patches from ending up with a broken symlink in them. Remove SVN keyword. Update copyright notice. diff --git a/debian/xsfbs/xsfbs.mk b/debian/xsfbs/xsfbs.mk index d88c6db..63dde45 100755 --- a/debian/xsfbs/xsfbs.mk +++ b/debian/xsfbs/xsfbs.mk @@ -1,11 +1,10 @@ #!/usr/bin/make -f -# $Id$ -# Debian rules file for xorg-x11 source package +# Debian X Strike Force Build System (XSFBS): Make portion # Copyright 1996 Stephen Early # Copyright 1997 Mark Eichin -# Copyright 1998-2005 Branden Robinson +# Copyright 1998-2005, 2007 Branden Robinson # Copyright 2005 David Nusinow # # Licensed under the GNU General Public License, version 2. See the file @@ -127,7 +126,7 @@ $(STAMP_DIR)/prepare: $(STAMP_DIR)/stampdir if [ ! -e $(STAMP_DIR)/log ]; then \ mkdir $(STAMP_DIR)/log; \ fi; \ - if [ ! -e patches ]; then \ + if [ -e debian/patches ] && [ ! -e patches ]; then \ ln -s debian/patches patches; \ fi; \ >$@ commit 72811b4cede7275a35d36b44bcb5f431a8aa0133 Author: Julien Cristau <[EMAIL PROTECTED]> Date: Fri Mar 2 20:28:15 2007 +0100 Fix copy/paste typo in the input driver provides. diff --git a/debian/xsfbs/xsfbs.mk b/debian/xsfbs/xsfbs.mk index 0343aec..d88c6db 100755 --- a/debian/xsfbs/xsfbs.mk +++ b/debian/xsfbs/xsfbs.mk @@ -359,7 +359,7 @@ VIDEOABI = $(shell cat /usr/share/xserver-xorg/videoabiver 2>/dev/null) INPUTABI = $(shell cat /usr/share/xserver-xorg/inputabiver 2>/dev/null) SERVER_DEPENDS = xserver-xorg-core (>= $(SERVERMINVERS)) VIDDRIVER_PROVIDES = xserver-xorg-video-$(VIDEOABI) -INPDRIVER_PROVIDES = xserver-xorg-video-$(INPUTABI) +INPDRIVER_PROVIDES = xserver-xorg-input-$(INPUTABI) ifeq ($(PACKAGE),) PACKAGE=$(shell awk '/^Package:/ { print $$2; exit }' < debian/control) endif commit 4a943db2564c4f573ce2f5f676a841267e961f16 Author: David Nusinow <[EMAIL PROTECTED]> Date: Thu Mar 1 22:06:04 2007 -0500 Fix one missed bit from the serverabiver -> serverminver rename diff --git a/debian/xsfbs/xsfbs.mk b/debian/xsfbs/xsfbs.mk index cfc5496..0343aec 100755 --- a/debian/xsfbs/xsfbs.mk +++ b/debian/xsfbs/xsfbs.mk @@ -366,7 +366,7 @@ endif .PHONY: serverabi serverabi: -ifeq ($(SERVERABI),) +ifeq ($(SERVERMINVERS),) @echo error: xserver-xorg-dev needs to be installed @exit 1 else commit 1344bb9deda5ba54215d0ec5b164706999236b0b Author: David Nusinow <[EMAIL PROTECTED]> Date: Wed Feb 28 23:08:17 2007 -0500 Fix typo that prevented the input abi versioning from working. Good catch Julien diff --git a/debian/xsfbs/xsfbs.mk b/debian/xsfbs/xsfbs.mk index 5e8cf41..cfc5496 100755 --- a/debian/xsfbs/xsfbs.mk +++ b/debian/xsfbs/xsfbs.mk @@ -356,7 +356,7 @@ debian/shlibs.local: 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/driverabiver 2>/dev/null) +INPUTABI = $(shell cat /usr/share/xserver-xorg/inputabiver 2>/dev/null) SERVER_DEPENDS = xserver-xorg-core (>= $(SERVERMINVERS)) VIDDRIVER_PROVIDES = xserver-xorg-video-$(VIDEOABI) INPDRIVER_PROVIDES = xserver-xorg-video-$(INPUTABI) commit a0c9602f38e9d47d7a76b7b345e7e8bbb29b752f Author: David Nusinow <[EMAIL PROTECTED]> Date: Tue Feb 27 21:50:20 2007 -0500 Add support for X server input ABI versioning diff --git a/debian/xsfbs/xsfbs.mk b/debian/xsfbs/xsfbs.mk index d54ffd3..5e8cf41 100755 --- a/debian/xsfbs/xsfbs.mk +++ b/debian/xsfbs/xsfbs.mk @@ -355,9 +355,11 @@ debian/shlibs.local: cat debian/*.shlibs >$@ SERVERMINVERS = $(shell cat /usr/share/xserver-xorg/serverminver 2>/dev/null) -SERVERABI = $(shell cat /usr/share/xserver-xorg/serverabiver 2>/dev/null) +VIDEOABI = $(shell cat /usr/share/xserver-xorg/videoabiver 2>/dev/null) +INPUTABI = $(shell cat /usr/share/xserver-xorg/driverabiver 2>/dev/null) SERVER_DEPENDS = xserver-xorg-core (>= $(SERVERMINVERS)) -DRIVER_PROVIDES = xserver-xorg-video-$(SERVERABI) +VIDDRIVER_PROVIDES = xserver-xorg-video-$(VIDEOABI) +INPDRIVER_PROVIDES = xserver-xorg-video-$(INPUTABI) ifeq ($(PACKAGE),) PACKAGE=$(shell awk '/^Package:/ { print $$2; exit }' < debian/control) endif @@ -369,7 +371,8 @@ ifeq ($(SERVERABI),) @exit 1 else echo "xserver:Depends=$(SERVER_DEPENDS)" >> debian/$(PACKAGE).substvars - echo "xviddriver:Provides=$(DRIVER_PROVIDES)" >> debian/$(PACKAGE).substvars + echo "xviddriver:Provides=$(VIDDRIVER_PROVIDES)" >> debian/$(PACKAGE).substvars + echo "xinpdriver:Provides=$(INPDRIVER_PROVIDES)" >> debian/$(PACKAGE).substvars endif include debian/xsfbs/xsfbs-autoreconf.mk commit 00fc799ec3107c0c29286b75e780bef82c1fa137 Author: David Nusinow <[EMAIL PROTECTED]> Date: Wed Feb 21 22:47:30 2007 -0500 Fix name of serverminver diff --git a/debian/xsfbs/xsfbs.mk b/debian/xsfbs/xsfbs.mk index ae767b1..d54ffd3 100755 --- a/debian/xsfbs/xsfbs.mk +++ b/debian/xsfbs/xsfbs.mk @@ -354,7 +354,7 @@ $(STAMP_DIR)/genscripts: $(STAMP_DIR)/stampdir debian/shlibs.local: cat debian/*.shlibs >$@ -SERVERMINVERS = $(shell cat /usr/share/xserver-xorg/serverminvers 2>/dev/null) +SERVERMINVERS = $(shell cat /usr/share/xserver-xorg/serverminver 2>/dev/null) SERVERABI = $(shell cat /usr/share/xserver-xorg/serverabiver 2>/dev/null) SERVER_DEPENDS = xserver-xorg-core (>= $(SERVERMINVERS)) DRIVER_PROVIDES = xserver-xorg-video-$(SERVERABI) commit dacefd5a6bb9f786c78f35358273e3214c7492e9 Author: David Nusinow <[EMAIL PROTECTED]> Date: Wed Feb 21 21:37:52 2007 -0500 Update serverabi generation to also account for driver Provides * Have the drivers use the file serverminver instead of serverabiver in order to generate the versioned dependency on the server. This is clearer naming. * Use serverabiver to actually store the server's video ABI version. This is used to generate the Provides: line for drivers so the server can depend on them properly. This goes in to the substvar xviddriver:Provides. diff --git a/debian/xsfbs/xsfbs.mk b/debian/xsfbs/xsfbs.mk index dbb2872..ae767b1 100755 --- a/debian/xsfbs/xsfbs.mk +++ b/debian/xsfbs/xsfbs.mk @@ -354,8 +354,10 @@ $(STAMP_DIR)/genscripts: $(STAMP_DIR)/stampdir debian/shlibs.local: cat debian/*.shlibs >$@ +SERVERMINVERS = $(shell cat /usr/share/xserver-xorg/serverminvers 2>/dev/null) SERVERABI = $(shell cat /usr/share/xserver-xorg/serverabiver 2>/dev/null) -SERVER_DEPENDS = xserver-xorg-core (>= $(SERVERABI)) +SERVER_DEPENDS = xserver-xorg-core (>= $(SERVERMINVERS)) +DRIVER_PROVIDES = xserver-xorg-video-$(SERVERABI) ifeq ($(PACKAGE),) PACKAGE=$(shell awk '/^Package:/ { print $$2; exit }' < debian/control) endif @@ -367,6 +369,7 @@ ifeq ($(SERVERABI),) @exit 1 else echo "xserver:Depends=$(SERVER_DEPENDS)" >> debian/$(PACKAGE).substvars + echo "xviddriver:Provides=$(DRIVER_PROVIDES)" >> debian/$(PACKAGE).substvars endif include debian/xsfbs/xsfbs-autoreconf.mk commit 9ed8b0c26438b90f187ef7c165d5a76cf8f340eb Author: Julien Cristau <[EMAIL PROTECTED]> Date: Sat Feb 17 16:01:41 2007 +0100 Add new "serverabi" rule to generate drivers dependency on the server. diff --git a/debian/xsfbs/xsfbs.mk b/debian/xsfbs/xsfbs.mk index 7b8206e..dbb2872 100755 --- a/debian/xsfbs/xsfbs.mk +++ b/debian/xsfbs/xsfbs.mk @@ -354,6 +354,21 @@ $(STAMP_DIR)/genscripts: $(STAMP_DIR)/stampdir debian/shlibs.local: cat debian/*.shlibs >$@ +SERVERABI = $(shell cat /usr/share/xserver-xorg/serverabiver 2>/dev/null) +SERVER_DEPENDS = xserver-xorg-core (>= $(SERVERABI)) +ifeq ($(PACKAGE),) +PACKAGE=$(shell awk '/^Package:/ { print $$2; exit }' < debian/control) +endif + +.PHONY: serverabi +serverabi: +ifeq ($(SERVERABI),) + @echo error: xserver-xorg-dev needs to be installed + @exit 1 +else + echo "xserver:Depends=$(SERVER_DEPENDS)" >> debian/$(PACKAGE).substvars +endif + include debian/xsfbs/xsfbs-autoreconf.mk # vim:set noet ai sts=8 sw=8 tw=0: commit 502f9412dcaa6abd23b94372d86824c895cea3b8 Author: David Nusinow <[EMAIL PROTECTED]> Date: Sun Feb 4 20:43:28 2007 -0500 Move the files so they'll be put in debian/xsfbs automatically when pulled in to our git repos diff --git a/debian/xsfbs/xsfbs-autoreconf.mk b/debian/xsfbs/xsfbs-autoreconf.mk new file mode 100644 index 0000000..dce8fc8 --- /dev/null +++ b/debian/xsfbs/xsfbs-autoreconf.mk @@ -0,0 +1,150 @@ +#!/usr/bin/make -f +# $Id$ + +# 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 new file mode 100755 index 0000000..7b8206e --- /dev/null +++ b/debian/xsfbs/xsfbs.mk @@ -0,0 +1,359 @@ +#!/usr/bin/make -f +# $Id$ + +# Debian rules file for xorg-x11 source package + +# Copyright 1996 Stephen Early +# Copyright 1997 Mark Eichin +# Copyright 1998-2005 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 <[EMAIL PROTECTED]> +# Modified by Mark W. Eichin <[EMAIL PROTECTED]> +# Modified by Adam Heath <[EMAIL PROTECTED]> +# Modified by Branden Robinson <[EMAIL PROTECTED]> +# Modified by Fabio Massimo Di Nitto <[EMAIL PROTECTED]> +# Modified by David Nusinow <[EMAIL PROTECTED]> +# Acknowledgements to Manoj Srivastava. + +# Pass $(DH_OPTIONS) into the environment for debhelper's benefit. +export DH_OPTIONS + +# 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 [EMAIL PROTECTED](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 +# 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) + +# 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 + +# $(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 + +# 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)/genscripts $(STAMP_DIR)/prepare $(STAMP_DIR)/patches $(STAMP_DIR)/log +$(STAMP_DIR)/prepare: $(STAMP_DIR)/stampdir + if [ ! -e $(STAMP_DIR)/patches ]; then \ + mkdir $(STAMP_DIR)/patches; \ + ln -s $(STAMP_DIR)/patches .pc; \ + echo 2 >$(STAMP_DIR)/patches/.version; \ + fi; \ + if [ ! -e $(STAMP_DIR)/log ]; then \ + mkdir $(STAMP_DIR)/log; \ + fi; \ + if [ ! -e patches ]; then \ + ln -s debian/patches patches; \ + fi; \ + >$@ + +# 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; then \ + echo -n "Applying patches..."; \ + if quilt push -a -v >$(STAMP_DIR)/log/patch 2>&1; then \ + echo "successful."; \ + else \ + 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: + rm -f $(STAMP_DIR)/patch + @echo -n "Unapplying patches..."; \ + if [ -e $(STAMP_DIR)/patches/applied-patches ]; then \ + if quilt pop -a -v >$(STAMP_DIR)/log/unpatch 2>&1; then \ + echo "successful."; \ + else \ + 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 -f .pc patches + rm -rf $(STAMP_DIR) $(SOURCE_DIR) + rm -rf imports + dh_clean debian/shlibs.local \ + debian/MANIFEST.$(ARCH) debian/MANIFEST.$(ARCH).new \ + 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 + +# Use the MANIFEST files to determine whether we're shipping everything we +# expect to ship, and not shipping anything we don't expect to ship. +.PHONY: check-manifest +stampdir_targets+=check-manifest +check-manifest: $(STAMP_DIR)/check-manifest +$(STAMP_DIR)/check-manifest: $(STAMP_DIR)/install + # Compare manifests. + (cd debian/tmp && find -type f | LC_ALL=C sort | cut -c3-) \ + >debian/MANIFEST.$(ARCH).new + # Construct MANIFEST files from MANIFEST.$(ARCH).in and + # MANIFEST.$(ARCH).all or MANIFEST.all. + if expr "$(findstring -DBuildFonts=NO,$(IMAKE_DEFINES))" \ + : "-DBuildFonts=NO" >/dev/null 2>&1; then \ + LC_ALL=C sort -u debian/MANIFEST.$(ARCH).in >debian/MANIFEST.$(ARCH); \ + else \ + if [ -e debian/MANIFEST.$(ARCH).all ]; then \ + LC_ALL=C sort -u debian/MANIFEST.$(ARCH).in debian/MANIFEST.$(ARCH).all >debian/MANIFEST.$(ARCH); \ + else \ + LC_ALL=C sort -u debian/MANIFEST.$(ARCH).in debian/MANIFEST.all >debian/MANIFEST.$(ARCH); \ + fi; \ + fi + # Confirm that the installed file list has not changed. + if [ -e debian/MANIFEST.$(ARCH) ]; then \ + if ! cmp -s debian/MANIFEST.$(ARCH) debian/MANIFEST.$(ARCH).new; then \ + diff -U 0 debian/MANIFEST.$(ARCH) debian/MANIFEST.$(ARCH).new || DIFFSTATUS=$$?; \ + case $${DIFFSTATUS:-0} in \ + 0) ;; \ + 1) if [ -n "$$IGNORE_MANIFEST_CHANGES" ]; then \ + echo 'MANIFEST check failed; ignoring problem because \$$IGNORE_MANIFEST_CHANGES set' >&2; \ + echo 'Please ensure that the package maintainer has an up-to-date version of the' >&2; \ + echo 'MANIFEST.$(ARCH).in file.' >&2; \ + else \ + echo 'MANIFEST check failed; please see debian/README' >&2; \ + exit 1; \ + fi; \ + ;; \ + *) echo "diff reported unexpected exit status $$DIFFSTATUS when performing MANIFEST check" >&2; \ + exit 1; \ + ;; \ + esac; \ + fi; \ + fi + >$@ + +# Because we build (and install) different files depending on whether or not +# any architecture-independent packages are being created, the list of files we +# expect to see will differ; see the discussion of the "build" target above. +.PHONY: check-manifest-arch check-manifest-indep +check-manifest-arch: IMAKE_DEFINES+= -DBuildSpecsDocs=NO -DBuildFonts=NO -DInstallHardcopyDocs=NO +check-manifest-arch: check-manifest +check-manifest-indep: check-manifest + +# 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 + +# Change to what should be the correct directory, ensure it is, and if +# so, create the .orig.tar.gz file. Exclude the debian directory and its +# contents, and any .svn directories and their contents (so that we can safely +# build an .orig.tar.gz from SVN checkout, not just an export). +# +# Note: This rule is for Debian package maintainers' convenience, and is not +# needed for conventional build scenarios. +# +# This rule *IS* the recommended method for creating a new .orig.tar.gz file, +# for the rare situations when one is needed. +.PHONY: make-orig-tar-gz +make-orig-tar-gz: clean prune-upstream-tree + ( cd .. \ + && if [ $(shell basename $(CURDIR)) != $(SOURCE_NAME)-$(NO_EPOCH_VER) ]; then \ + echo "Our current working directory has the wrong name. Renaming..." >&2; \ + mv $(CURDIR) $(SOURCE_NAME)-$(NO_EPOCH_VER); \ + fi; \ + tar --exclude=debian --exclude=debian/* \ + --exclude=.svn --exclude=.svn/* \ + -cf - $(SOURCE_NAME)-$(NO_EPOCH_VER) \ + | gzip -9 >$(SOURCE_NAME)_$(NO_EPOCH_VER).orig.tar.gz; \ + ) + +# 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)/' \ + -e 's/@DEFAULT_DCRESOLUTIONS@/$(DEFAULT_DCRESOLUTIONS)/' \ + <$$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 + >$@ + +# Generate the shlibs.local file. +debian/shlibs.local: + cat debian/*.shlibs >$@ + +include debian/xsfbs/xsfbs-autoreconf.mk + +# vim:set noet ai sts=8 sw=8 tw=0: diff --git a/debian/xsfbs/xsfbs.sh b/debian/xsfbs/xsfbs.sh new file mode 100644 index 0000000..52473ca --- /dev/null +++ b/debian/xsfbs/xsfbs.sh @@ -0,0 +1,907 @@ +# $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 +# 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". + [EMAIL PROTECTED]@ [EMAIL PROTECTED]@ + +# 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 + +ARCHITECTURE="$(dpkg --print-installation-architecture)" + +LAPTOP="" +if [ -n "$(which laptop-detect)" ]; then + if laptop-detect >/dev/null; then + LAPTOP=true + fi +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_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 ... ] + # + # 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 -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]