Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 03 Sep 2011 12:08:01 +0900
From:      WATANABE Kazuhiro <CQG00620@nifty.ne.jp>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/160414: [maintainer-approved] [japanese/alias-fonts] [patch] Broken pkg-(de)install scripts
Message-ID:  <20110903030810.24941F6476@mail2.asahi-net.or.jp>
Resent-Message-ID: <201109030330.p833U7bT072373@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>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@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:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110903030810.24941F6476>