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 行は削除しておきました。