[GRASSLIST:3732] RE: Grass 5.0.0pre4 RPMs for Mandrake 8.2
Buchan Milne
bgmilne at cae.co.za
Thu May 23 06:20:20 EDT 2002
Markus Neteler wrote:
> Note: Lapack/Blas is not needed by GRASS. It is implemented for future
> extensions.
>
I have a patch against pre4 that I am using in the RPM, which makes life
quite a bit easier when packaging. It adds a new shell variable DESTDIR
to the Makefile.in, which indicates where the software's 'chroot' should
be during installation, so that during packaging, packagers
1)don't need to be root
2)don't mess with system files
3)don't need to reset 20 variables for make (prefix etc)
There may still be some issues with it (I don't know if it's possible to
get gmake5 and gmakelinks5 to work anyway, but they currently get the
path to the RPM_BUILD_ROOT).
The use of this patch allows packagers to do make
DESTDIR=$RPM_BUILD_ROOT INST_DIR=/usr/lib/
Mandrake even has a macro which implements this, so I actually use:
%makeinstall_std INST_DIR=%{_libdir}/grass5
I would appreciate if someone who builds grass often could test a normal
build without supplying DESTDIR to ensure it doesn't break things, and
then maybe it could be considered for the original source?
Please see the attached patch.
Regards,
Buchan
--
|----------------Registered Linux User #182071-----------------|
Buchan Milne Mechanical Engineer, Network Manager
Cellphone * Work +27 82 472 2231 * +27 21 8828820x202
Stellenbosch Automotive Engineering http://www.cae.co.za
GPG Key http://ranger.dnsalias.com/bgmilne.asc
1024D/60D204A7 2919 E232 5610 A038 87B1 72D6 AC92 BA50 60D2 04A7
-------------- next part --------------
--- grass5.0.0pre4-orig/Makefile.in Mon May 13 09:41:58 2002
+++ grass5.0.0pre4/Makefile.in Wed May 22 13:55:30 2002
@@ -133,26 +133,26 @@
echo " Installation aborted, exiting Make."; \
exit; \
fi; \
- INST_PATH=`dirname ${INST_DIR}`; \
+ INST_PATH=`dirname ${DESTDIR}${INST_DIR}`; \
while [ ! -d $$INST_PATH ]; do \
- INST_PATH=`dirname $$INST_PATH`; \
+ INST_PATH=`dirname $INST_PATH`; \
done; \
- if [ ! -d "${INST_DIR}" -a ! -w "$$INST_PATH" ] ; then \
+ if [ ! -d "${DESTDIR}${INST_DIR}" -a ! -w "$$INST_PATH" ] ; then \
echo "ERROR: Directory $$INST_PATH is a parent directory of your"; \
- echo " install directory ${INST_DIR} and is not writable."; \
+ echo " install directory ${DESTDIR}${INST_DIR} and is not writable."; \
echo " Perhaps you need root access."; \
echo " Installation aborted, exiting Make."; \
exit; \
fi; \
- if [ -d ${INST_DIR} -a ! -w "${INST_DIR}" ] ; then \
- echo "ERROR: Your install directory ${INST_DIR} is not writable."; \
+ if [ -d ${DESTDIR}${INST_DIR} -a ! -w "${DESTDIR}${INST_DIR}" ] ; then \
+ echo "ERROR: Your install directory ${DESTDIR}${INST_DIR} is not writable."; \
echo " Perhaps you need root access."; \
echo " Installation aborted, exiting Make."; \
exit; \
fi; \
- result=`echo "${INST_DIR}" | awk '{ if ($$1 ~ /grass/) print $$1 }'`; \
+ result=`echo "${DESTDIR}${INST_DIR}" | awk '{ if ($$1 ~ /grass/) print $$1 }'`; \
if [ "$$result" = "" ] ; then \
- echo "WARNING: Your install directory ${INST_DIR}"; \
+ echo "WARNING: Your install directory ${DESTDIR}${INST_DIR}"; \
echo " does not contain the word 'grass'."; \
echo " It is highly recommended that the word 'grass' be part"; \
echo " of your install directory to avoid conflicts."; \
@@ -167,39 +167,39 @@
${MAKE} real-install
real-install: FORCE
- test -d ${INST_DIR} || ${MAKE_DIR_CMD} ${INST_DIR}
- test -d ${INST_DIR}/dev || ${MAKE_DIR_CMD} ${INST_DIR}/dev
- 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"
- ${SHELL} -c "cd ${GISBASE} ; tar cBf - driver | (cd ${INST_DIR} ; tar xBf - ) 2>/dev/null ; true"
- ${SHELL} -c "cd ${GISBASE} ; tar cBf - etc | (cd ${INST_DIR} ; tar xBf - ) 2>/dev/null ; true"
- ${SHELL} -c "cd ${GISBASE} ; tar cBf - fonts | (cd ${INST_DIR} ; tar xBf - ) 2>/dev/null ; true"
- ${SHELL} -c "cd ${GISBASE} ; tar cBf - locks | (cd ${INST_DIR} ; tar xBf - ) 2>/dev/null ; true"
- ${SHELL} -c "cd ${GISBASE} ; tar cBf - scripts | (cd ${INST_DIR} ; tar xBf - ) 2>/dev/null ; true"
- ${SHELL} -c "cd ${GISBASE} ; tar cBf - tcltkgrass | (cd ${INST_DIR} ; tar xBf - ) 2>/dev/null ; true"
- ${SHELL} -c "cd ${GISBASE} ; tar cBf - txt | (cd ${INST_DIR} ; tar xBf - ) 2>/dev/null ; true"
- test -d ${GISBASE}/locale && ${SHELL} -c "cd ${GISBASE} ; tar cBf - locale | (cd ${INST_DIR} ; tar xBf - ) 2>/dev/null ; true"
+ test -d ${DESTDIR}${INST_DIR} || ${MAKE_DIR_CMD} ${DESTDIR}${INST_DIR}
+ test -d ${DESTDIR}${INST_DIR}/dev || ${MAKE_DIR_CMD} ${DESTDIR}${INST_DIR}/dev
+ test -d ${DESTDIR}${BINDIR} || ${MAKE_DIR_CMD} ${DESTDIR}${BINDIR}
+ ${SHELL} -c "sed -e \"s#^GISBASE.*#GISBASE=${INST_DIR}#\" ${GRASS_BIN}/grass${NAME_VER} > ${DESTDIR}${BINDIR}/grass${NAME_VER} ; true"
+ ${SHELL} -c "chmod a+x ${DESTDIR}${BINDIR}/grass${NAME_VER} ; true"
+ ${SHELL} -c "$(INSTALL) ${GRASS_BIN}/gmake${NAME_VER} ${DESTDIR}${BINDIR} ; true"
+ ${SHELL} -c "$(INSTALL) ${GRASS_BIN}/gmakelinks${NAME_VER} ${DESTDIR}${BINDIR} ; true"
+ ${SHELL} -c "cd ${GISBASE} ; tar cBf - bin | (cd ${DESTDIR}${INST_DIR} ; tar xBf - ) 2>/dev/null ; true"
+ ${SHELL} -c "cd ${GISBASE} ; tar cBf - bwidget | (cd ${DESTDIR}${INST_DIR} ; tar xBf - ) 2>/dev/null ; true"
+ ${SHELL} -c "cd ${GISBASE} ; tar cBf - documents | (cd ${DESTDIR}${INST_DIR} ; tar xBf - ) 2>/dev/null ; true"
+ ${SHELL} -c "cd ${GISBASE} ; tar cBf - driver | (cd ${DESTDIR}${INST_DIR} ; tar xBf - ) 2>/dev/null ; true"
+ ${SHELL} -c "cd ${GISBASE} ; tar cBf - etc | (cd ${DESTDIR}${INST_DIR} ; tar xBf - ) 2>/dev/null ; true"
+ ${SHELL} -c "cd ${GISBASE} ; tar cBf - fonts | (cd ${DESTDIR}${INST_DIR} ; tar xBf - ) 2>/dev/null ; true"
+ ${SHELL} -c "cd ${GISBASE} ; tar cBf - locks | (cd ${DESTDIR}${INST_DIR} ; tar xBf - ) 2>/dev/null ; true"
+ ${SHELL} -c "cd ${GISBASE} ; tar cBf - scripts | (cd ${DESTDIR}${INST_DIR} ; tar xBf - ) 2>/dev/null ; true"
+ ${SHELL} -c "cd ${GISBASE} ; tar cBf - tcltkgrass | (cd ${DESTDIR}${INST_DIR} ; tar xBf - ) 2>/dev/null ; true"
+ ${SHELL} -c "cd ${GISBASE} ; tar cBf - txt | (cd ${DESTDIR}${INST_DIR} ; tar xBf - ) 2>/dev/null ; true"
+ test -d ${GISBASE}/locale && ${SHELL} -c "cd ${GISBASE} ; tar cBf - locale | (cd ${DESTDIR}${INST_DIR} ; tar xBf - ) 2>/dev/null ; true";true
@ # The man, include, and lib could go to ${PREFIX}/ BUT if this is
@ # done, then the corresponding uninstall instructions must delete
@ # the grass files BY FILENAME NOT DIRECTORY!! Otherwise there is a
@ # high risk of deleteing system files since PREFIX is defined by
@ # default to be /usr/local
- ${SHELL} -c "cd ${GISBASE} ; tar cBf - man | (cd ${INST_DIR} ; tar xBf - ) 2>/dev/null ; true"
- ${SHELL} -c "cd ${GISBASE} ; tar cBf - include | (cd ${INST_DIR} ; tar xBf - ) 2>/dev/null ; true"
- ${SHELL} -c "cd ${GISBASE} ; tar cBf - lib | (cd ${INST_DIR} ; tar xBf - ) 2>/dev/null ; true"
- ${SHELL} -c "$(INSTALL) ${GISBASE}/dev/create_fifos.sh ${INST_DIR}/dev ; true"
+ ${SHELL} -c "cd ${GISBASE} ; tar cBf - man | (cd ${DESTDIR}${INST_DIR} ; tar xBf - ) 2>/dev/null ; true"
+ ${SHELL} -c "cd ${GISBASE} ; tar cBf - include | (cd ${DESTDIR}${INST_DIR} ; tar xBf - ) 2>/dev/null ; true"
+ ${SHELL} -c "cd ${GISBASE} ; tar cBf - lib | (cd ${DESTDIR}${INST_DIR} ; tar xBf - ) 2>/dev/null ; true"
+ ${SHELL} -c "$(INSTALL) ${GISBASE}/dev/create_fifos.sh ${DESTDIR}${INST_DIR}/dev ; true"
if [ ${XDRIVER} = fifo ] ; then \
- ${SHELL} -c "${SHELL} ${SRCDIR}/src/scripts/shells/create_fifos.sh ${INST_DIR} 2>/dev/null ; true"; \
+ ${SHELL} -c "${SHELL} ${SRCDIR}/src/scripts/shells/create_fifos.sh ${DESTDIR}${INST_DIR} 2>/dev/null ; true"; \
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 "chmod -R a+rX ${INST_DIR} 2>/dev/null ; true"
+ ${SHELL} -c "sed 's#'${GISBASE}'#'${INST_DIR}'#g' ${GISBASE}/etc/monitorcap > ${DESTDIR}${INST_DIR}/etc/monitorcap ; true"
+ ${SHELL} -c "chmod -R 1777 ${DESTDIR}${INST_DIR}/locks 2>/dev/null ; true"
+ ${SHELL} -c "chmod -R a+rX ${DESTDIR}${INST_DIR} 2>/dev/null ; true"
uninstall: FORCE
@ # NOTE: if anything is changed for uninstall then the same change
@@ -212,18 +212,18 @@
@ # Therefore, the only way exit will quit Make is if there is only
@ # a single action for the target.
@ # Check if grass is part of INST_DIR
- @ result=`echo "${INST_DIR}" | awk '{ if ($$1 ~ /grass/) print $$1 }'`; \
+ @ result=`echo "${DESTDIR}${INST_DIR}" | awk '{ if ($$1 ~ /grass/) print $$1 }'`; \
if [ "$$result" = "" ] ; then \
- echo "WARNING: Your install directory ${INST_DIR}"; \
+ echo "WARNING: Your install directory ${DESTDIR}${INST_DIR}"; \
echo " does not contain the word 'grass'."; \
echo " There is a possibility that this directory conflicts"; \
echo " with a system directory. If you proceed the following"; \
echo " directories will be deleted:"; \
- echo " ${INST_DIR}/bin, ${INST_DIR}/bwidget, ${INST_DIR}/dev,"; \
- echo " ${INST_DIR}/documents, ${INST_DIR}/driver, ${INST_DIR}/etc,"; \
- echo " ${INST_DIR}/fonts, ${INST_DIR}/include, ${INST_DIR}/lib,"; \
- echo " ${INST_DIR}/locks, ${INST_DIR}/man, ${INST_DIR}/scripts,"; \
- echo " ${INST_DIR}/tcltkgrass, ${INST_DIR}/txt"; \
+ echo " ${DESTDIR}${INST_DIR}/bin, ${DESTDIR}${INST_DIR}/bwidget, ${DESTDIR}${INST_DIR}/dev,"; \
+ echo " ${DESTDIR}${INST_DIR}/documents, ${DESTDIR}${INST_DIR}/driver, ${DESTDIR}${INST_DIR}/etc,"; \
+ echo " ${DESTDIR}${INST_DIR}/fonts, ${DESTDIR}${INST_DIR}/include, ${DESTDIR}${INST_DIR}/lib,"; \
+ echo " ${DESTDIR}${INST_DIR}/locks, ${DESTDIR}${INST_DIR}/man, ${DESTDIR}${INST_DIR}/scripts,"; \
+ echo " ${DESTDIR}${INST_DIR}/tcltkgrass, ${DESTDIR}${INST_DIR}/txt"; \
echo " as well as the files ${BINDIR}/grass${NAME_VER},"; \
echo " ${BINDIR}/gmake${NAME_VER}, and ${BINDIR}/gmakelinks${NAME_VER}."; \
echo " Do you want to continue? [y/n]"; \
@@ -234,7 +234,7 @@
exit; \
fi; \
else \
- echo "WARNING: You are about to delete all files in ${INST_DIR}"; \
+ echo "WARNING: You are about to delete all files in ${DESTDIR}${INST_DIR}"; \
echo " as well as the files ${BINDIR}/grass${NAME_VER},"; \
echo " ${BINDIR}/gmake${NAME_VER}, and ${BINDIR}/gmakelinks${NAME_VER}."; \
echo " Do you want to continue? [y/n]"; \
@@ -255,26 +255,26 @@
${SHELL} -c "rm -f ${BINDIR}/grass${NAME_VER} ; true"
${SHELL} -c "rm -f ${BINDIR}/gmake${NAME_VER} ; true"
${SHELL} -c "rm -f ${BINDIR}/gmakelinks${NAME_VER} ; true"
- ${SHELL} -c "rm -rf ${INST_DIR}/bin ; true"
- ${SHELL} -c "rm -rf ${INST_DIR}/bwidget ; true"
- ${SHELL} -c "rm -rf ${INST_DIR}/dev ; true"
- ${SHELL} -c "rm -rf ${INST_DIR}/documents ; true"
- ${SHELL} -c "rm -rf ${INST_DIR}/driver ; true"
- ${SHELL} -c "rm -rf ${INST_DIR}/etc ; true"
- ${SHELL} -c "rm -rf ${INST_DIR}/fonts ; true"
- ${SHELL} -c "rm -rf ${INST_DIR}/locks ; true"
- ${SHELL} -c "rm -rf ${INST_DIR}/scripts ; true"
- ${SHELL} -c "rm -rf ${INST_DIR}/tcltkgrass ; true"
- ${SHELL} -c "rm -rf ${INST_DIR}/txt ; true"
- ${SHELL} -c "rm -rf ${INST_DIR}/locale ; true"
+ ${SHELL} -c "rm -rf ${DESTDIR}${INST_DIR}/bin ; true"
+ ${SHELL} -c "rm -rf ${DESTDIR}${INST_DIR}/bwidget ; true"
+ ${SHELL} -c "rm -rf ${DESTDIR}${INST_DIR}/dev ; true"
+ ${SHELL} -c "rm -rf ${DESTDIR}${INST_DIR}/documents ; true"
+ ${SHELL} -c "rm -rf ${DESTDIR}${INST_DIR}/driver ; true"
+ ${SHELL} -c "rm -rf ${DESTDIR}${INST_DIR}/etc ; true"
+ ${SHELL} -c "rm -rf ${DESTDIR}${INST_DIR}/fonts ; true"
+ ${SHELL} -c "rm -rf ${DESTDIR}${INST_DIR}/locks ; true"
+ ${SHELL} -c "rm -rf ${DESTDIR}${INST_DIR}/scripts ; true"
+ ${SHELL} -c "rm -rf ${DESTDIR}${INST_DIR}/tcltkgrass ; true"
+ ${SHELL} -c "rm -rf ${DESTDIR}${INST_DIR}/txt ; true"
+ ${SHELL} -c "rm -rf ${DESTDIR}${INST_DIR}/locale ; true"
@ # If man, include, and lib are changed to ${PREFIX}/ in the install
@ # target then the grass files MUST BE REMOVED BY FILENAME NOT BY
@ # DIRECTORY!! Otherwise there is a high risk of deleteing system
@ # files since PREFIX is defined by default to be /usr/local
- ${SHELL} -c "rm -rf ${INST_DIR}/man ; true"
- ${SHELL} -c "rm -rf ${INST_DIR}/include ; true"
- ${SHELL} -c "rm -rf ${INST_DIR}/lib ; true"
- ${SHELL} -c "rmdir ${INST_DIR} ; true"
+ ${SHELL} -c "rm -rf ${DESTDIR}${INST_DIR}/man ; true"
+ ${SHELL} -c "rm -rf ${DESTDIR}${INST_DIR}/include ; true"
+ ${SHELL} -c "rm -rf ${DESTDIR}${INST_DIR}/lib ; true"
+ ${SHELL} -c "rmdir ${DESTDIR}${INST_DIR} ; true"
strip: FORCE
@ if [ ! -f ${GRASS_BIN}/grass${NAME_VER} ] ; then \
@@ -313,13 +313,13 @@
@ # a single action for the target.
@ # Check if the user needs root permission and check if grass has
@ # been installed
- @ if [ ! -d ${INST_DIR} ] ; then \
- echo "ERROR: It seems your install directory ${INST_DIR} does not exist."; \
+ @ if [ ! -d ${DESTDIR}${INST_DIR} ] ; then \
+ echo "ERROR: It seems your install directory ${DESTDIR}${INST_DIR} does not exist."; \
echo " Grass has not been installed yet. Try \"make install\" first."; \
echo " Creation of binary distribution aborted, exiting Make."; \
exit; \
fi; \
- if [ ! -w ${INST_DIR} ] ; then \
+ if [ ! -w ${DESTDIR}${INST_DIR} ] ; then \
echo "ERROR: It seems you do not have the correct permissions to create"; \
echo " a binary distribution. Perhaps you need root access."; \
echo " Creation of binary distribution aborted, exiting Make."; \
@@ -330,14 +330,14 @@
echo " Creation of binary distribution aborted, exiting Make."; \
exit; \
fi; \
- INST_MOD_TIME=`${INST_DIR}/etc/getModTime ${BINDIR}/grass${NAME_VER}`; \
+ INST_MOD_TIME=`${DESTDIR}${INST_DIR}/etc/getModTime ${BINDIR}/grass${NAME_VER}`; \
if [ "$$INST_MOD_TIME" = "-1" ]; then \
echo "ERROR: Invalid file: ${BINDIR}/grass${NAME_VER}"; \
echo " Please advise the GRASS developers of this error."; \
echo " Creation of binary distribution aborted, exiting Make."; \
exit; \
fi; \
- COMP_MOD_TIME=`${INST_DIR}/etc/getModTime ${GRASS_BIN}/grass${NAME_VER}`; \
+ COMP_MOD_TIME=`${DESTDIR}${INST_DIR}/etc/getModTime ${GRASS_BIN}/grass${NAME_VER}`; \
if [ "$$COMP_MOD_TIME" = "-1" ]; then \
echo "ERROR: Invalid file: ${GRASS_BIN}/grass${NAME_VER}"; \
echo " Please advise the GRASS developers of this error."; \
@@ -357,20 +357,20 @@
${MAKE} real-bindist
real-bindist: FORCE
- ${SHELL} -c "cp -f AUTHORS BUGS COPYING NEWS.html README REQUIREMENTS.html TODO.txt ${INST_DIR}/ ; true"
- ${SHELL} -c "cp -f ${BINDIR}/grass${NAME_VER} ${INST_DIR}/ ; true"
- (cd ${INST_DIR}; tar cBf - ${BIN_DIST_FILES} | gzip -fc > ${SRCDIR}/grass${VERSION}_${ARCH}_bin.tar.gz )
+ ${SHELL} -c "cp -f AUTHORS BUGS COPYING NEWS.html README REQUIREMENTS.html TODO.txt ${DESTDIR}${INST_DIR}/ ; true"
+ ${SHELL} -c "cp -f ${BINDIR}/grass${NAME_VER} ${DESTDIR}${INST_DIR}/ ; true"
+ (cd ${DESTDIR}${INST_DIR}; tar cBf - ${BIN_DIST_FILES} | gzip -fc > ${SRCDIR}/grass${VERSION}_${ARCH}_bin.tar.gz )
@ name=${SRCDIR}/grass${VERSION}_${ARCH}_bin.tar.gz; \
size=`ls -l $$name | awk '{print $$5}'`; \
sed -e "s/BIN_DIST_VERSION/${NAME_VER}/" \
- -e "s/SIZE_TAR_FILE/$$size/" -e "s#BIN_DIST_DIR#'${INST_DIR}'#" \
+ -e "s/SIZE_TAR_FILE/$$size/" -e "s#BIN_DIST_DIR#'${DESTDIR}${INST_DIR}'#" \
-e "s/TEST_STR=/TEST_STR=executable/" \
-e "s#IMPORTANT.*#Generated from the binaryInstall.src file using the command make bindist#" \
-e "s/# executable shell.*//" -e "s/# make bindist.*//" \
binaryInstall.src > grass${NAME_VER}_${ARCH}_install.sh ; true
${SHELL} -c "chmod a+x grass${NAME_VER}_${ARCH}_install.sh 2>/dev/null ; true"
- ${SHELL} -c "rm -f ${INST_DIR}/AUTHORS ${INST_DIR}/BUGS ${INST_DIR}/COPYING ${INST_DIR}/NEWS.html ${INST_DIR}/README ${INST_DIR}/REQUIREMENTS.html ${INST_DIR}/TODO.txt ; true"
- ${SHELL} -c "rm -f ${INST_DIR}/grass${NAME_VER} ; true"
+ ${SHELL} -c "rm -f ${DESTDIR}${INST_DIR}/AUTHORS ${DESTDIR}${INST_DIR}/BUGS ${DESTDIR}${INST_DIR}/COPYING ${DESTDIR}${INST_DIR}/NEWS.html ${DESTDIR}${INST_DIR}/README ${DESTDIR}${INST_DIR}/REQUIREMENTS.html ${DESTDIR}${INST_DIR}/TODO.txt ; true"
+ ${SHELL} -c "rm -f ${DESTDIR}${INST_DIR}/grass${NAME_VER} ; true"
@ echo "Distribution binary package: grass${VERSION}_${ARCH}_bin.tar.gz ready."
@ echo "DO NOT FORGET!! Upload BOTH grass${VERSION}_${ARCH}_bin.tar.gz and grass${NAME_VER}_${ARCH}_install.sh to the GRASS ftp server."
@ echo "Both files are required!!."
More information about the grass-user
mailing list