remove a bunch of symlinks when the package gets deleted.

from maintainer Edd Barrett
This commit is contained in:
steven 2007-10-19 22:14:13 +00:00
parent f1a4fa26a4
commit b08d2ecda2
3 changed files with 144 additions and 3 deletions

View File

@ -1,10 +1,10 @@
# $OpenBSD: Makefile,v 1.4 2007/09/10 13:37:26 steven Exp $
# $OpenBSD: Makefile,v 1.5 2007/10/19 22:14:13 steven Exp $
COMMENT= base TeXLive LaTeX distribution
V= 2007
DISTNAME= texlive_base-${V}-src
PKGNAME= texlive_base-${V}p0
PKGNAME= texlive_base-${V}p1
SHARED_LIBS= kpathsea 0.0
WANTLIB= m X11 ICE freetype Xt pthread c Xext fontconfig \

View File

@ -0,0 +1,140 @@
$OpenBSD: patch-texk_tetex_texlinks,v 1.1 2007/10/19 22:14:13 steven Exp $
--- texk/tetex/texlinks.orig Wed Jan 17 16:31:31 2007
+++ texk/tetex/texlinks Mon Oct 15 09:49:15 2007
@@ -6,6 +6,9 @@
# the lines given in fmtutil.cnf.
# History:
+# Tue Oct 9 14:23:01 BST 2007
+# Added unlink option (-u) to aid OpenBSD package uninstall
+# Edd Barrett <vext01@gmail.com>
# Sun Aug 28 21:41:06 CEST 2005
# remove special cases for csplain,cslatex,pdfcslatex,pdfcsplain
# Fr Apr 8 19:15:05 CEST 2005
@@ -35,34 +38,31 @@ export PATH
test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"'
cnf=fmtutil.cnf # name of the config file
-version=1169050907 # seconds since `00:00:00 1970-01-01 UTC'
+version=1192147136 # seconds since `00:00:00 1970-01-01 UTC'
# date '+%s' (with GNU date)
progname=texlinks
-usage='texlinks [options] [directories]
+usage='Usage: texlinks [OPTION]... [DIRECTORY]...
Create symbolic links format -> engine according to fmtutil setup.
-Valid options:
- --help
- -h show this help text
- --version show version string
- --cnffile file
- -f file use file as config file (default: fmtutil.cnf)
- --verbose
- -v set verbose mode on (default: off)
- --multiplatform
- -m operate in all platform specific directories
+Mandatory arguments to long options are mandatory for short options too.
+ -h, --help show this help text
+ --version show version string
+ -f, --cnffile FILE use FILE as config file (default: fmtutil.cnf)
+ -v, --verbose enable verbose messages (default: off)
+ -m, --multiplatform operate in all platform specific directories
(default: operate only in directory for this platform)
- --silent
- -s silently skip over existing scripts / binaries
- instead of creating a warning
+ -s, --silent silently skip existing scripts / binaries
+ (default: issue warning)
+ -u, --unlink remove symlinks created by texlinks
-directories is an optional list of directories in which to operate.
-If no directories are specified the list of directories depends on the
---multiplatform option.
-'
+The DIRECTORY arguments are an optional list of directories in which to
+operate. If no directories are specified the list of directories
+depends on the --multiplatform option.
+Report bugs to tex-k@tug.org.'
+
###############################################################################
# abort(errmsg)
# print `errmsg' to stderr and exit with error code 1
@@ -140,7 +140,7 @@ install_link()
fi
if test -f $selfautoloc/mf && test -f $selfautoloc/mf-nowin; then
# have both mf and mf-nowin binaries. no link.
- verbose_echo "metafont symlink $src -> $dest skipped (special case)"
+ verbose_echo "skipped metafont symlink $src -> $dest (special case)"
return
fi
fi
@@ -149,7 +149,7 @@ install_link()
case $src in
*/cont-??|*/metafun|*/mptopdf)
- verbose_echo "symlink $src -> $dest skipped (special case)"
+ verbose_echo "skipped ConTeXtish symlink $src -> $dest (special case)"
;;
*)
test "x$src" != "x`(ls -ld $src | awk '{print $NF}') 2>/dev/null`" &&
@@ -205,6 +205,24 @@ upd_symlinkdir()
}
###############################################################################
+# rm_link()
+# Delete a previously installed link
+###############################################################################
+rm_link()
+{
+ link=$1;
+ if test -e $link; then
+ if test -h $link; then
+ verbose_do rm -Rf $link
+ else
+ verbose_echo "kept $link, since not a symlink"
+ fi
+ else
+ verbose_echo "skipped $link, non-existent"
+ fi
+}
+
+###############################################################################
# main()
# parse commandline arguments, initialize variables,
# switch into temp. direcrory, execute desired command
@@ -217,6 +235,7 @@ main()
multiplatform=false
verbose=false
+ unlink=false
silent=false
thisdir=`pwd`
: ${KPSE_DOT=$thisdir}; export KPSE_DOT
@@ -232,6 +251,7 @@ main()
--v*|-v) verbose=true;;
--s*|-s) silent=true;;
--m*|-m) multiplatform=true;;
+ --u*|-u) unlink=true;;
-*) errmsg "fmtutil: unknown option \`$1' ignored.";;
*) break;;
esac
@@ -278,9 +298,14 @@ main()
test "x$fmt" = "x$engine" && continue
if test -f "$d/$engine"; then
- install_link "$engine" "$d/$fmt"
+ case $unlink in
+ true)
+ rm_link "$d/$fmt";;
+ *)
+ install_link "$engine" "$d/$fmt";;
+ esac
else
- verbose_echo "$d/$engine: engine does not exist. Skipping..."
+ verbose_echo "skipped $d/$engine, engine does not exist"
fi
# restore positional arguments:

View File

@ -1,5 +1,6 @@
@comment $OpenBSD: PLIST,v 1.2 2007/09/10 13:37:26 steven Exp $
@comment $OpenBSD: PLIST,v 1.3 2007/10/19 22:14:13 steven Exp $
@conflict teTeX_base-*
@unexec texlinks -u
%%SHARED%%
bin/a2ping
bin/afm2pl