トップ «前の日記(2003-10-09(木)) 最新 次の日記(2003-10-11(土))» 編集

とた日記


2003-10-10(金) [長年日記]

_ databases/grass の更新に挑戦(2)

昨日はあのまま寝てしまったので、そのつづきから。patch は良くわからないのでとりあえず差分をマージする形で作っておきました。あとで詳細を確認します。本当は Makefile.in とか configure.in とかの意味をよく考えなければならないとは思うのですが。。。 files/patch-Makefile.in

--- Makefile.in.orig    Fri Oct 11 06:06:36 2002
+++ Makefile.in Thu Oct  9 22:59:48 2003
@@ -172,8 +172,6 @@
        test -d ${BINDIR} || ${MAKE_DIR_CMD} ${BINDIR}
        ${SHELL} -c "sed -e \"s#^GISBASE.*#GISBASE=${INST_DIR}#\" ${GRASS_BIN}/grass${NAME_VER} > ${BINDIR}/grass${NAME_VER} ; true"
        ${SHELL} -c "chmod a+x ${BINDIR}/grass${NAME_VER} ; true"
-       ${SHELL} -c "$(INSTALL) ${GRASS_BIN}/gmake${NAME_VER} ${BINDIR} ; true"
-       ${SHELL} -c "$(INSTALL) ${GRASS_BIN}/gmakelinks${NAME_VER} ${BINDIR} ; true"
        ${SHELL} -c "cd ${GISBASE} ; tar cBf - bin | (cd ${INST_DIR} ; tar xBf - ) 2>/dev/null ; true"
        ${SHELL} -c "cd ${GISBASE} ; tar cBf - bwidget | (cd ${INST_DIR} ; tar xBf - ) 2>/dev/null ; true"
        ${SHELL} -c "cd ${GISBASE} ; tar cBf - documents | (cd ${INST_DIR} ; tar xBf - ) 2>/dev/null ; true"
@@ -199,6 +197,8 @@
        fi
        ${SHELL} -c "sed 's#'${GISBASE}'#'${INST_DIR}'#g' ${GISBASE}/etc/monitorcap > ${INST_DIR}/etc/monitorcap ; true"
        ${SHELL} -c "chmod -R 1777 ${INST_DIR}/locks 2>/dev/null ; true"
+       ${SHELL} -c "sed 's#'${GISBASE}'#'${INST_DIR}'#g' ${GISBASE}/etc/paint/driver.rsh > ${INST_DIR}/etc/paint/driver.rsh ; true"
+       ${SHELL} -c "chmod 755 ${INST_DIR}/etc/paint/driver.rsh ; true"
        ${SHELL} -c "chmod -R a+rX ${INST_DIR} 2>/dev/null ; true"
 
 uninstall: FORCE

files/patch-configure.in

--- configure.in.orig   Sun Mar 16 21:25:19 2003
+++ configure.in        Thu Oct  9 23:00:51 2003
@@ -295,7 +295,7 @@
        AC_MSG_ERROR([*** You must supply a directory list to --with-libs.])
        ;;
 esac
-AC_MSG_RESULT($LIBRARY_DIRS)
+AC_MSG_RESULT($with_libs)
 
 if test -n "$with_libs"; then
     for dir in $with_libs; do
@@ -502,7 +502,7 @@
 
 LOC_CHECK_INC_PATH(dbm,DBM,DBMINCPATH)
 
-LOC_CHECK_INCLUDES(dbm.h,DBM,$DBMINCPATH)
+LOC_CHECK_INCLUDES(gdbm.h,DBM,$DBMINCPATH)
 
 # With DBM library directory
 
@@ -842,7 +842,7 @@
 
 LOC_CHECK_LIB_PATH(opengl,OpenGL,OPENGL_LIB_PATH)
 
-LOC_CHECK_LIBS(GL,glBegin,OpenGL,$OPENGL_LIB_PATH,OPENGLLIB,$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS $MATHLIB,,,-lpthread)
+LOC_CHECK_LIBS(GL,glBegin,OpenGL,$OPENGL_LIB_PATH,OPENGLLIB,$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS $MATHLIB,,,-pthread -lXext)
 
 LOC_CHECK_LIBS(GLU,gluBeginCurve,GLU,$OPENGL_LIB_PATH,OPENGLULIB,$OPENGLLIB $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS $MATHLIB,,,-lstdc++)
 

files/patch-src.contrib::GMSL::NVIZ2.2::html::Gmakefile

--- src.contrib/GMSL/NVIZ2.2/html/Gmakefile.orig        Tue Jan 22 13:51:38 2002
+++ src.contrib/GMSL/NVIZ2.2/html/Gmakefile     Thu Oct  9 23:13:37 2003
@@ -3,4 +3,4 @@
 all:
        if [ ! -d $(GRASS_NVIZ_DOCS) ]; then mkdir $(GRASS_NVIZ_DOCS); fi
 #fix for CVS and Gmakefile:
-       (tar -cf - *  | (cd $(GRASS_NVIZ_DOCS); tar  -xf - 2>/dev/null ); true)
+       (tar -cf - [a-z]* | (cd $(GRASS_NVIZ_DOCS); tar  -xf - 2>/dev/null ); true)

files/patch-src::general::init::init.sh

--- src/general/init/init.sh.orig       Sun Mar 16 21:25:20 2003
+++ src/general/init/init.sh    Thu Oct  9 23:09:58 2003
@@ -165,12 +165,12 @@
 fi
 
 if [ ! "$GRASS_TCLSH" ] ; then
-    GRASS_TCLSH=tclsh
+    GRASS_TCLSH=tclsh8.3
     export GRASS_TCLSH
 fi
 
 if [ ! "$GRASS_WISH" ] ; then
-    GRASS_WISH=wish
+    GRASS_WISH=wish8.3
     export GRASS_WISH
 fi
 

これで一応 patch まで当たりました。あとは pkg-plist の作成です。念のため今インストールされている grass-5.0.0_2,1 の package を作成しておきます。

# cd /usr/ports/databases/grass
# make package

あとは Automated package list creation に従って

# mkdir /var/tmp/grass
# mtree -U -f /etc/mtree/BSD.local.dist -d -e -p /var/tmp/grass
# make depends PREFIX=/var/tmp/grass
# (cd /var/tmp/grass && find -d * -type d) | sort > OLD-DIRS
# touch pkg-plist
# make install PREFIX=/var/tmp/grass
# ( cd /var/tmp/grass && find -d * \! -type d ) | sort > pkg-plist
# ( cd /var/tmp/grass && find -d * -type d ) | sort | comm -13 OLD-DIRS - | sort -r | sed -e 's#^#@dirrm #' >> pkg-plist

pkg-plist を確認してみると

(snip)
@dirrm grass5/man/man1
@dirrm grass5/man/help 
@dirrm grass5/man
@dirrm grass5/locks/example.ne.jp
@dirrm grass5/locks 
@dirrm grass5/locale/ru/LC_MESSAGES
@dirrm grass5/locale/ru
(snip)

となっていて @dirrm grass5/locks/example.ne.jp が気持ち悪いです。アンインストール時にゴミが残るとしても grass5/locks の中だけだろうと予想したので @dirrm grass5/locks/example.ne.jp の 1 行は削除しておきました。