diff options
author | David Nusinow <dnusinow@debian.org> | 2006-03-01 04:42:58 +0000 |
---|---|---|
committer | David Nusinow <dnusinow@debian.org> | 2006-03-01 04:42:58 +0000 |
commit | 60b76134c6def3b926be778cc47864eb5475c2d2 (patch) | |
tree | 61a3ab5112fabd5648b76dfbea0100cadb5515af /debian | |
parent | f36091ddc7a78687504303f79cf801e7e46d62db (diff) | |
download | xutils-dev-60b76134c6def3b926be778cc47864eb5475c2d2.tar.gz |
* Port patches from trunk
+ general/099u_mkdirhier_rewrite.diff
* Actually include port of previous patch in this package
Diffstat (limited to 'debian')
-rw-r--r-- | debian/changelog | 3 | ||||
-rw-r--r-- | debian/patches/01_netbsd_imake.c_fixes.diff | 38 | ||||
-rw-r--r-- | debian/patches/02_mkdirhier_rewrite.diff | 314 | ||||
-rw-r--r-- | debian/patches/series | 1 |
4 files changed, 355 insertions, 1 deletions
diff --git a/debian/changelog b/debian/changelog index 654d17f..82fd12e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,8 +2,9 @@ xutils-dev (1:1.0.1-2) experimental; urgency=low * Port patches from trunk + netbsd/841_netbsd_imake.c_fixes.diff + + general/099u_mkdirhier_rewrite.diff - -- David Nusinow <dnusinow@debian.org> Tue, 28 Feb 2006 22:04:34 -0500 + -- David Nusinow <dnusinow@debian.org> Tue, 28 Feb 2006 23:42:18 -0500 xutils-dev (1:1.0.1-1) experimental; urgency=low diff --git a/debian/patches/01_netbsd_imake.c_fixes.diff b/debian/patches/01_netbsd_imake.c_fixes.diff new file mode 100644 index 0000000..a6baf4e --- /dev/null +++ b/debian/patches/01_netbsd_imake.c_fixes.diff @@ -0,0 +1,38 @@ +$Id: 841_netbsd_imake.c_fixes.diff 689 2005-10-19 22:11:30Z dnusinow $ + +Patch to imake.c for Debian/NetBSD support by Joel Baker +<lucifer@lightbearer.com>. + +Index: imake-1.0.1/imake.c +=================================================================== +--- imake-1.0.1/imake.c.orig 2005-10-18 19:41:20.000000000 -0400 ++++ imake-1.0.1/imake.c 2005-10-18 22:41:29.000000000 -0400 +@@ -1076,6 +1076,10 @@ + fprintf (inFile, "%s\n", "#define LinuxWare 11"); + fprintf (inFile, "%s\n", "#define LinuxYggdrasil 12"); + ++ fprintf (inFile, "%s\n", "#define NetBSDUnknown 0"); ++ fprintf (inFile, "%s\n", "#define NetBSDNative 1"); ++ fprintf (inFile, "%s\n", "#define NetBSDDebian 2"); ++ + #ifdef CROSSCOMPILE + if (CrossCompiling) { + fprintf (inFile, "%s\n", +@@ -1097,6 +1101,8 @@ + if (lstat (debian, &sb) == 0) { + fprintf (inFile, "%s\n", "#define DefaultLinuxDistribution LinuxDebian"); + fprintf (inFile, "%s\n", "#define DefaultLinuxDistName Debian"); ++ fprintf (inFile, "%s\n", "#define DefaultNetBSDDistribution NetBSDDebian"); ++ fprintf (inFile, "%s\n", "#define DefaultNetBSDDistName Debian"); + /* You could also try to get the version of the Debian distrib by looking + * at the content of /etc/debian_version */ + return; +@@ -1105,6 +1111,8 @@ + + fprintf (inFile, "%s\n", "#define DefaultLinuxDistribution LinuxUnknown"); + fprintf (inFile, "%s\n", "#define DefaultLinuxDistName Unknown"); ++ fprintf (inFile, "%s\n", "#define DefaultNetBSDDistribution NetBSDUnknown"); ++ fprintf (inFile, "%s\n", "#define DefaultNetBSDDistName Unknown"); + /* would like to know what version of the distribution it is */ + } + diff --git a/debian/patches/02_mkdirhier_rewrite.diff b/debian/patches/02_mkdirhier_rewrite.diff new file mode 100644 index 0000000..488f97f --- /dev/null +++ b/debian/patches/02_mkdirhier_rewrite.diff @@ -0,0 +1,314 @@ +$Id: 099u_mkdirhier_rewrite.diff 480 2005-08-02 20:14:26Z branden $ + +Reimplement mkdirhier; see Debian #141347 and #232357 for some reasons why. + +This shell script and manpage by Branden Robinson. + +Not submitted upstream to XFree86 or X.Org. + +Index: imake-1.0.1/mkdirhier +=================================================================== +--- imake-1.0.1/mkdirhier (revision 309) ++++ imake-1.0.1/mkdirhier (working copy) +@@ -1,67 +1,94 @@ + #!/bin/sh +-# $Xorg: mkdirhier.sh,v 1.3 2000/08/17 19:41:53 cpqbld Exp $ +-# Courtesy of Paul Eggert + +-newline=' +-' +-IFS=$newline ++# Copyright 2005 Branden Robinson. + +-case ${1--} in +--*) echo >&2 "mkdirhier: usage: mkdirhier directory ..."; exit 1 +-esac ++# Permission is hereby granted, free of charge, to any person obtaining a ++# copy of this software and associated documentation files (the "Software"), ++# to deal in the Software without restriction, including without limitation ++# the rights to use, copy, modify, merge, publish, distribute, sublicense, ++# and/or sell copies of the Software, and to permit persons to whom the ++# Software is furnished to do so, subject to the following condition: ++# ++# The above copyright notice and this permission notice shall be ++# included in all copies or substantial portions of the Software. ++# ++# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ++# SOFTWARE IN THE PUBLIC INTEREST, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR ++# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ++# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER ++# DEALINGS IN THE SOFTWARE. + +-status= ++# I rewrote Paul Eggert's script in POSIX shell because it was a little ++# odd, and did not confine itself to puritantical pre-POSIX conventions. ++# For example, in one place it used: ++# case ${1--} in ++# -*) ++# to test for $1 being null, presumably due to fears that test -n and -z ++# will not be available. Yet later in the script, test -n was used. ++# ++# This seemed quite silly. I decided to rewrite it since I am arrgoant ++# enough to think I know what I'm doing in POSIX shell. ++# ++# If someone needs a pre-POSIX version of mkdirhier, they'll probably need to ++# turn to someone else, as I have no idea where such a thing is specified. + +-for directory +-do +- case $directory in +- '') +- echo >&2 "mkdirhier: empty directory name" +- status=1 +- continue;; +- *"$newline"*) +- echo >&2 "mkdirhier: directory name contains a newline: \`\`$directory''" +- status=1 +- continue;; +- ///*) prefix=/;; # See Posix 2.3 "path". +- //*) prefix=//;; +- /*) prefix=/;; +- -*) prefix=./;; +- *) prefix= +- esac ++set -e + +- IFS=/ +- set x $directory +- case $2 in +- */*) # IFS parsing is broken +- IFS=' ' +- set x `echo $directory | tr / ' '` +- ;; +- esac +- IFS=$newline +- shift ++PROGNAME=${0##*/} ++STATUS=0 + +- for filename +- do +- path=$prefix$filename +- prefix=$path/ +- shift ++usage() { ++ cat <<EOF ++usage: $PROGNAME DIRECTORY ... ++Create each directory DIRECTORY, also creating intermediate directories in the ++specified hierarchy as necessary. + +- test -d "$path" || { +- paths=$path +- for filename +- do +- if [ -n "$filename" -a "$filename" != "." ]; then +- path=$path/$filename +- paths=$paths$newline$path +- fi +- done ++Note: Use "mkdir -p" instead of "$PROGNAME" if the system supports it. ++EOF ++} + +- mkdir $paths || status=$? ++makedir () { ++ FUNC_STATUS=0 ++ # Does the desired directory already exist? ++ if ! [ -d "$1" ]; then ++ # Is a directory hierarchy specified (i.e., are any slashes in the ++ # argument)? ++ PARENT=${1%/*} ++ if [ -n "$PARENT" ] && [ "$PARENT" != "$1" ]; then ++ # Yes; does the desired directory's immediate parent exist? ++ if ! [ -d "$PARENT" ]; then ++ # No; push it onto the stack. If that fails, return ++ # immediately, as we know later calls will also fail. E.g., if ++ # we are asked to create /usr/bin/foo/bar/baz/quux and ++ # /usr/bin/foo fails, we don't have to even try anything deeper ++ # in the hierarchy. ++ if ! makedir "$PARENT"; then ++ return $FUNC_STATUS ++ fi ++ fi ++ fi ++ mkdir "$1" || FUNC_STATUS=$? ++ fi ++ return $FUNC_STATUS ++} + +- break +- } +- done +- done ++if [ -z "$1" ]; then ++ usage >&2 ++ exit 64 ++fi + +-exit $status ++while [ -n "$1" ]; do ++ ARG="$1" ++ makedir "$ARG" || \ ++ { ++ STATUS=$? ++ echo "$PROGNAME: could not create directory \"$ARG\"" >&2 ++ } ++ shift ++done ++ ++exit $STATUS ++ ++# vim:set ai et sts=4 sw=4 tw=80: +Index: imake-1.0.1/mkdirhier.man +=================================================================== +--- imake-1.0.1/mkdirhier.man (revision 309) ++++ imake-1.0.1/mkdirhier.man (working copy) +@@ -1,42 +1,111 @@ +-.\" $Xorg: mkdirhier.man,v 1.4 2001/02/09 02:03:17 xorgcvs Exp $ +-.\" Copyright (c) 1993, 1994, 1998 The Open Group +-.\" +-.\" Permission to use, copy, modify, distribute, and sell this software and its +-.\" documentation for any purpose is hereby granted without fee, provided that +-.\" the above copyright notice appear in all copies and that both that +-.\" copyright notice and this permission notice appear in supporting +-.\" documentation. +-.\" +-.\" The above copyright notice and this permission notice shall be included in +-.\" all copies or substantial portions of the Software. +-.\" ++.\" Copyright 2005 Branden Robinson. ++.\" ++.\" Permission is hereby granted, free of charge, to any person obtaining a ++.\" copy of this software and associated documentation files (the "Software"), ++.\" to deal in the Software without restriction, including without limitation ++.\" the rights to use, copy, modify, merge, publish, distribute, sublicense, ++.\" and/or sell copies of the Software, and to permit persons to whom the ++.\" Software is furnished to do so, subject to the following condition: ++.\" ++.\" The above copyright notice and this permission notice shall be ++.\" included in all copies or substantial portions of the Software. ++.\" + .\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + .\" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +-.\" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +-.\" THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +-.\" WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +-.\" OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +-.\" SOFTWARE. +-.\" +-.\" Except as contained in this notice, the name of The Open Group shall not +-.\" be used in advertising or otherwise to promote the sale, use or other +-.\" dealing in this Software without prior written authorization from The +-.\" Open Group. +-.\" +-.\" $XFree86: xc/config/util/mkdirhier.man,v 1.2 2001/01/27 18:19:55 dawes Exp $ +-.\" +-.TH MKDIRHIER 1 __xorgversion__ ++.\" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ++.\" SOFTWARE IN THE PUBLIC INTEREST, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR ++.\" OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ++.\" ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER ++.\" DEALINGS IN THE SOFTWARE. ++.TH mkdirhier __mansuffix__ __xorgversion__ + .SH NAME +-mkdirhier \- makes a directory hierarchy ++mkdirhier \- create a directory hierarchy + .SH SYNOPSIS + .B mkdirhier +-directory ... ++.I directory ++\&... + .SH DESCRIPTION +-The +-.I mkdirhier +-command creates the specified directories. Unlike +-.I mkdir +-if any of the parent directories of the specified directory +-do not exist, it creates them as well. ++.B mkdirhier ++creates the specified directories. ++Unlike some versions of ++.BR mkdir , ++if any of the parent directories of the specified directory do not exist, ++.B mkdirhier ++creates them as well. ++.PP ++.B mkdirhier ++is a wrapper for ++.BR mkdir ; ++systems with ++.BR mkdir (__osmansuffix__) ++implementations conformant with the Single Unix Specification may simply ++use ++.B mkdir \-p ++instead \(em this includes all systems using the GNU Core Utilities' ++version of ++.BR mkdir . ++.SH DIAGNOSTICS ++If ++.B mkdirhier ++is not supplied with any arguments, a usage message is printed. ++.PP ++.B mkdirhier ++prefixes its diagnostic messages with the name under which it was invoked, ++followed by a colon (\(oq:\(cq) so that its messages can be distingushed ++from others. ++.TP ++.B could not create directory \(dq\fIdirectory\fP\(dq ++indicates that there was a failure while creating ++.IR directory . ++This message will likely be preceded by a diagnostic message from ++.BR mkdir . ++.SH "EXIT STATUS" ++.TP ++.B 64 ++.B mkdirhier ++was not given any directory names to create. ++.PP ++.B mkdirhier ++otherwise exits with the exit status of the last ++.B mkdir ++command that failed. ++.SH BUGS ++.B mkdirhier ++does not create all the requested directories as an atomic operation; ++therefore, it is is susceptible to race conditions. ++For example, if ++.B mkdirhier ++is directed to create a hierarchy ++.I a/b/c/d ++and any of ++.IR a/ , ++.IR b/ , ++or ++.I c/ ++do not yet exist, any of the newly-created directories can be removed ++and/or replaced by a symbolic link to another location in the window of ++time after ++.B mkdirhier ++creates a directory and the directory immediately below it. ++This means that failures can be provoked (since ++.B mkdir ++will fail to create a directory in a directory that does not already ++exist), ++or directories may be created in unexpected locations. ++The same limitation holds for multiple directory arguments to ++.BR mkdirhier ; ++given two arguments ++.I a/b/c/d ++and ++.IR a/b/c/f , ++it is possible for the directory hierarchy ++.I a/b/c ++to be disrupted in the time between the processing of the two arguments. ++To avoid these problems, use ++.B mkdir \-p ++instead, or do not use ++.B mkdirhier ++to create directories in parts of the filesystem where untrusted users can ++manipulate them. + .SH "SEE ALSO" +-mkdir(1) ++.BR mkdir (__osmansuffix__) diff --git a/debian/patches/series b/debian/patches/series index ded2b3f..d79baec 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1 +1,2 @@ 01_netbsd_imake.c_fixes.diff -p0 +02_mkdirhier_rewrite.diff -p0 |