Merge branch 'debian-unstable' of git://git.debian.org/git/pkg-xorg/xsfbs into debian-unstable

This commit is contained in:
Julien Cristau 2010-05-09 14:26:20 +02:00
commit e8a3904da3
3 changed files with 25 additions and 264 deletions

View File

@ -25,7 +25,7 @@ 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
The .orig.tar.gz upstream source file could be generated using this
"upstream-*" branch in the Debian git repository but it is actually
copied from upstream tarballs directly.

54
debian/xsfbs/xsfbs.mk vendored
View File

@ -110,14 +110,15 @@ $(STAMP_DIR)/stampdir:
.PHONY: prepare
stampdir_targets+=prepare
prepare: $(STAMP_DIR)/prepare
$(STAMP_DIR)/prepare: $(STAMP_DIR)/log $(STAMP_DIR)/genscripts
$(STAMP_DIR)/prepare: $(STAMP_DIR)/logdir $(STAMP_DIR)/genscripts
>$@
.PHONY: log
stampdir_targets+=log
log: $(STAMP_DIR)/log
$(STAMP_DIR)/log: $(STAMP_DIR)/stampdir
.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
@ -145,7 +146,7 @@ $(STAMP_DIR)/patch: $(STAMP_DIR)/prepare
# Revert all patches to the upstream source.
.PHONY: unpatch
unpatch: $(STAMP_DIR)/log
unpatch: $(STAMP_DIR)/logdir
rm -f $(STAMP_DIR)/patch
@echo -n "Unapplying patches..."; \
if $(QUILT) applied >/dev/null 2>/dev/null; then \
@ -176,20 +177,8 @@ cleanscripts:
xsfclean: cleanscripts unpatch
dh_testdir
rm -rf .pc
rm -rf $(STAMP_DIR) $(SOURCE_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
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.
@ -252,7 +241,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; \
@ -265,29 +253,33 @@ $(STAMP_DIR)/genscripts: $(STAMP_DIR)/stampdir
# debian/*.prerm
>$@
# Generate the shlibs.local file.
debian/shlibs.local:
cat debian/*.shlibs >$@
# 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)
SERVERMINVERS = $(shell cat /usr/share/xserver-xorg/serverminver 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)
SERVER_DEPENDS = xserver-xorg-core (>= $(SERVERMINVERS))
VIDDRIVER_PROVIDES = xserver-xorg-video-$(VIDEOABI)
INPDRIVER_PROVIDES = xserver-xorg-input-$(INPUTABI)
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 ($(SERVERMINVERS),)
@echo error: xserver-xorg-dev needs to be installed
ifeq ($(VIDEODEP),)
@echo 'error: xserver-xorg-dev >= 1.7.6.901 needs to be installed'
@exit 1
else
echo "xserver:Depends=$(SERVER_DEPENDS)" >> debian/$(PACKAGE).substvars
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:

233
debian/xsfbs/xsfbs.sh vendored
View File

@ -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".
@ -93,22 +91,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 ... ]
#
@ -199,219 +181,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
}
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
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
}
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