ports/160414: [maintainer-approved] [japanese/alias-fonts] [patch] Broken pkg-(de)install scripts
WATANABE Kazuhiro
CQG00620 at nifty.ne.jp
Sat Sep 3 03:30:08 UTC 2011
>Number: 160414
>Category: ports
>Synopsis: [maintainer-approved] [japanese/alias-fonts] [patch] Broken pkg-(de)install scripts
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Sat Sep 03 03:30:07 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator: WATANABE Kazuhiro
>Release: FreeBSD 7.3-RELEASE-p6 i386
>Organization:
>Environment:
System: FreeBSD capricorn.sign.local 7.3-RELEASE-p6 FreeBSD 7.3-RELEASE-p6 #5: Mon May 30 22:12:49 JST 2011 nabe at capricorn:/FreeBSD/obj/i386/RELENG_7_3/FreeBSD/RELENG_7_3/src/sys/VASH i386
>Description:
In pkg-install, it checks the wrong argument. $ARGV[1] in Perl is not
$1 but $2 in sh(1). (Result: The script does nothing.)
In pkg-deinstall, it doesn't check the argument. (Result: The script
runs twice.) And this script deletes fonts.alias.orig last. I think
this behavior is not good.
In the both script, "pattern) list ;;" combination in a "case" command
is wrong. (Result: The all previous entries of fonts.alias are lost.)
The maintainer says he has not had a testing environment, and he has
approved my patch.
>How-To-Repeat:
capricorn# cd /usr/ports/japanese/alias-fonts
capricorn# ls -l /usr/local/lib/X11/fonts/local/fonts.alias*
-rw-r--r-- 1 root wheel 19623 Sep 3 11:10 /usr/local/lib/X11/fonts/local/fonts.alias
capricorn# make install
===> Vulnerability check disabled, database not found
===> License check disabled, port has not defined LICENSE
===> Extracting for ja-alias-fonts-1.0_5
===> Vulnerability check disabled, database not found
===> License check disabled, port has not defined LICENSE
===> Patching for ja-alias-fonts-1.0_5
===> ja-alias-fonts-1.0_5 depends on executable: bdftopcf - found
===> ja-alias-fonts-1.0_5 depends on executable: mkfontdir - found
===> ja-alias-fonts-1.0_5 depends on executable: mkfontscale - found
===> Configuring for ja-alias-fonts-1.0_5
===> Installing for ja-alias-fonts-1.0_5
===> ja-alias-fonts-1.0_5 depends on file: /usr/local/lib/X11/fonts/local/jpnhn4-iso.pcf.gz - found
===> ja-alias-fonts-1.0_5 depends on file: /usr/local/lib/X11/fonts/local/5x10B.pcf.gz - found
===> ja-alias-fonts-1.0_5 depends on file: /usr/local/share/font-shinonome/shnmk12.pcf.gz - found
===> ja-alias-fonts-1.0_5 depends on file: /usr/local/lib/X11/fonts/local/kanji18.pcf.gz - found
===> ja-alias-fonts-1.0_5 depends on file: /usr/local/lib/X11/fonts/local/k20b.pcf.gz - found
===> ja-alias-fonts-1.0_5 depends on file: /usr/local/lib/X11/fonts/local/kanji26.pcf.gz - found
===> ja-alias-fonts-1.0_5 depends on file: /usr/local/lib/X11/fonts/local/K12-1.pcf.gz - found
===> Generating temporary packing list
===> Checking if japanese/alias-fonts already installed
===> Registering installation for ja-alias-fonts-1.0_5
capricorn# ls -l /usr/local/lib/X11/fonts/local/fonts.alias*
-rw-r--r-- 1 root wheel 19623 Sep 3 11:10 /usr/local/lib/X11/fonts/local/fonts.alias ### Not updated.
capricorn# make deinstall
===> Deinstalling for japanese/alias-fonts
===> Deinstalling ja-alias-fonts-1.0_5
capricorn# ls -l /usr/local/lib/X11/fonts/local/fonts.alias*
-rw-r--r-- 1 root wheel 0 Sep 3 11:15 /usr/local/lib/X11/fonts/local/fonts.alias ### All entries are lost.
capricorn#
>Fix:
After applied my patch:
capricorn# ls -l /usr/local/lib/X11/fonts/local/fonts.alias*
-rw-r--r-- 1 root wheel 19623 Sep 3 11:27 /usr/local/lib/X11/fonts/local/fonts.alias
capricorn# make install
===> Vulnerability check disabled, database not found
(snip)
===> Registering installation for ja-alias-fonts-1.0_5
capricorn# ls -l /usr/local/lib/X11/fonts/local/fonts.alias*
-rw-r--r-- 1 root wheel 34048 Sep 3 11:28 /usr/local/lib/X11/fonts/local/fonts.alias
-rw-r--r-- 1 root wheel 19623 Sep 3 11:27 /usr/local/lib/X11/fonts/local/fonts.alias.orig
capricorn# make deinstall
===> Deinstalling for japanese/alias-fonts
===> Deinstalling ja-alias-fonts-1.0_5
capricorn# ls -l /usr/local/lib/X11/fonts/local/fonts.alias*
-rw-r--r-- 1 root wheel 19623 Sep 3 11:28 /usr/local/lib/X11/fonts/local/fonts.alias
-rw-r--r-- 1 root wheel 34048 Sep 3 11:28 /usr/local/lib/X11/fonts/local/fonts.alias.orig
capricorn#
The patch is here:
diff -urN ports/japanese/alias-fonts.orig/pkg-deinstall ports/japanese/alias-fonts/pkg-deinstall
--- ports/japanese/alias-fonts.orig/pkg-deinstall 2011-08-19 15:31:07.000000000 +0900
+++ ports/japanese/alias-fonts/pkg-deinstall 2011-08-25 20:18:18.000000000 +0900
@@ -1,6 +1,10 @@
#!/bin/sh
# $FreeBSD: ports/japanese/alias-fonts/pkg-deinstall,v 1.4 2011/08/15 07:03:55 tota Exp $
+if [ $2 != "DEINSTALL" ]; then
+ exit 0
+fi
+
dir="${PKG_PREFIX}/lib/X11/fonts/local";
to="$dir/fonts.alias";
from="$to.orig";
@@ -17,9 +21,7 @@
trimmed=${line# *}
case $trimmed in
!*|"") echo $line;;
- -alias-*) echo $line;;
- *) ;;
+ -alias-*) ;;
+ *) echo $line;;
esac
done < $from > $to
-
-rm $from
diff -urN ports/japanese/alias-fonts.orig/pkg-install ports/japanese/alias-fonts/pkg-install
--- ports/japanese/alias-fonts.orig/pkg-install 2011-08-15 16:03:55.000000000 +0900
+++ ports/japanese/alias-fonts/pkg-install 2011-08-25 18:32:52.000000000 +0900
@@ -1,7 +1,7 @@
#!/bin/sh
# $FreeBSD: ports/japanese/alias-fonts/pkg-install,v 1.7 2011/08/15 07:03:55 tota Exp $
-if [ $1 != "POST-INSTALL" ]; then
+if [ $2 != "POST-INSTALL" ]; then
exit 0
fi
@@ -21,8 +21,8 @@
trimmed=${line# *}
case $trimmed in
!*|"") echo $line;;
- -alias-*) echo $line;;
- *) ;;
+ -alias-*) ;;
+ *) echo $line;;
esac
done < $from > $to
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list