. Support staging.

This commit is contained in:
Greg Lewis 2014-06-29 07:12:44 +00:00
parent af58c75065
commit b80fe53ce9
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=359737
4 changed files with 154 additions and 32 deletions

View file

@ -14,30 +14,30 @@ COMMENT= Dungeon explorin', slashin', hackin' game
USES= gmake
PKGDEINSTALL= ${WRKDIR}/pkg-deinstall
SUB_FILES+= pkg-deinstall
MAN6= dgn_comp.6 dlb.6 lev_comp.6 recover.6 slashem.6
MAKE_JOBS_UNSAFE= yes
WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION:C/([A-Z])./\1/g}
MAKE_ENV+= DATADIR="${DATADIR}"
NO_STAGE= yes
.include <bsd.port.pre.mk>
post-patch:
${REINPLACE_CMD} -e \
"s@%%DATADIR%%@${DATADIR}@g" ${WRKSRC}/include/config.h
pre-configure:
do-configure:
@cd ${WRKSRC}/sys/unix; ${SH} setup.sh
post-install:
@cd ${WRKSRC}/doc; ${CHMOD} 644 *.6
@(cd ${WRKSRC}/doc; ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} \
${MAKEFILE} ${MAKE_ARGS} manpages)
.if !defined(NOPORTDOCS)
${MKDIR} ${DOCSDIR}
${INSTALL_DATA} ${WRKSRC}/doc/Guidebook.txt ${DOCSDIR}
${INSTALL_DATA} ${WRKSRC}/slamfaq.txt ${DOCSDIR}
${INSTALL_DATA} ${FILESDIR}/sample.slashemrc ${DOCSDIR}
.if ${PORT_OPTIONS:MDOCS}
${MKDIR} ${STAGEDIR}${DOCSDIR}
${INSTALL_DATA} ${WRKSRC}/doc/Guidebook.txt ${STAGEDIR}${DOCSDIR}
${INSTALL_DATA} ${WRKSRC}/slamfaq.txt ${STAGEDIR}${DOCSDIR}
${INSTALL_DATA} ${FILESDIR}/sample.slashemrc ${STAGEDIR}${DOCSDIR}
.endif
@${CAT} ${PKGMESSAGE}
.include <bsd.port.mk>
.include <bsd.port.post.mk>

View file

@ -1,7 +1,5 @@
$FreeBSD$
--- sys/unix/Makefile.doc.orig Sat Dec 30 05:08:31 2006
+++ sys/unix/Makefile.doc Fri Aug 17 23:19:06 2007
--- sys/unix/Makefile.doc.orig 2006-12-30 05:08:31.000000000 -0800
+++ sys/unix/Makefile.doc 2014-06-28 23:55:59.000000000 -0700
@@ -53,16 +53,16 @@
# tbl tmac.n Guidebook.mn | groff -Wall -Tdvi > Guidebook.dvi
@ -25,11 +23,21 @@ $FreeBSD$
FRGAMEMANCREATE = cp fr/$(GAME).6
# manual installation for most SYSV-style systems
# and for man files readable in less (eg dos DJGPP+GNU)
@@ -79,7 +79,6 @@
-$(DGNMANCREATE) $(MANDIR)/dgn_comp.$(MANEXT)
-$(RCVRMANCREATE) $(MANDIR)/recover.$(MANEXT)
-$(DLBMANCREATE) $(MANDIR)/dlb.$(MANEXT)
@@ -74,12 +74,11 @@
# FRGAMEMANCREATE = groff -Wall -mtty-char -Tutf8 -man fr/$(GAME).6 >
manpages:
- -$(GAMEMANCREATE) $(MANDIR)/$(GAME).$(MANEXT)
- -$(LEVMANCREATE) $(MANDIR)/lev_comp.$(MANEXT)
- -$(DGNMANCREATE) $(MANDIR)/dgn_comp.$(MANEXT)
- -$(RCVRMANCREATE) $(MANDIR)/recover.$(MANEXT)
- -$(DLBMANCREATE) $(MANDIR)/dlb.$(MANEXT)
- -$(FRGAMEMANCREATE) $(FRMANDIR)/$(GAME).$(MANEXT)
+ -$(GAMEMANCREATE) ${DESTDIR}$(MANDIR)/$(GAME).$(MANEXT)
+ -$(LEVMANCREATE) ${DESTDIR}$(MANDIR)/lev_comp.$(MANEXT)
+ -$(DGNMANCREATE) ${DESTDIR}$(MANDIR)/dgn_comp.$(MANEXT)
+ -$(RCVRMANCREATE) ${DESTDIR}$(MANDIR)/recover.$(MANEXT)
+ -$(DLBMANCREATE) ${DESTDIR}$(MANDIR)/dlb.$(MANEXT)
# manual creation for distribution
DISTRIB = Guidebook.txt $(GAME).txt lev_comp.txt dgn_comp.txt recover.txt dlb.txt

View file

@ -1,7 +1,5 @@
$FreeBSD$
--- sys/unix/Makefile.top.orig Sat Dec 30 05:08:31 2006
+++ sys/unix/Makefile.top Sun Aug 19 01:18:58 2007
--- sys/unix/Makefile.top.orig 2006-12-30 05:08:31.000000000 -0800
+++ sys/unix/Makefile.top 2014-06-28 23:58:08.000000000 -0700
@@ -14,20 +14,19 @@
# MAKE = make
@ -45,12 +43,112 @@ $FreeBSD$
# Defs. compatible with Linux's FSSTND 1.2
# FILE_AREA_VAR = /var/lib/games/slashem
@@ -290,7 +289,7 @@
@@ -288,60 +287,32 @@
-e '}' \
-e '$$s/.*/nodlb/p' < dat/options` ; \
$(MAKE) dofiles-$${target-nodlb}
cp src/$(GAME) $(FILE_AREA_UNSHARE)
cp util/recover $(FILE_AREA_UNSHARE)
- cp src/$(GAME) $(FILE_AREA_UNSHARE)
- cp util/recover $(FILE_AREA_UNSHARE)
- cp dat/license doc/Guidebook.txt $(FILE_AREA_DOC)
+ cp dat/license $(FILE_AREA_DOC)
+ cp src/$(GAME) ${DESTDIR}$(FILE_AREA_UNSHARE)
+ cp util/recover ${DESTDIR}$(FILE_AREA_UNSHARE)
+ cp dat/license ${DESTDIR}$(FILE_AREA_DOC)
# cp win/Qt/KDE/kslashem.kdelnk $(KDEDIR)/share/applnk/Games
-rm -f $(SHELLDIR)/$(GAME)
- -rm -f $(SHELLDIR)/$(GAME)
+ -rm -f ${DESTDIR}$(SHELLDIR)/$(GAME)
sed -e 's;/usr/games/lib/nethackdir;$(FILE_AREA_UNSHARE);' \
-e 's;HACKDIR/nethack;HACKDIR/$(GAME);' \
< sys/unix/nethack.sh \
- > $(SHELLDIR)/$(GAME)
-# set up their permissions
- -( cd $(FILE_AREA_UNSHARE) ; $(CHOWN) $(GAMEUID) $(GAME) recover ; \
- $(CHGRP) $(GAMEGRP) $(GAME) recover )
- chmod $(GAMEPERM) $(FILE_AREA_UNSHARE)/$(GAME)
- chmod $(EXEPERM) $(FILE_AREA_UNSHARE)/recover
- -( cd $(FILE_AREA_DOC) ; \
- $(CHOWN) $(GAMEUID) license Guidebook.txt ; \
- $(CHGRP) $(GAMEGRP) license Guidebook.txt ; \
- chmod $(FILEPERM) license Guidebook.txt )
- -$(CHOWN) $(GAMEUID) $(SHELLDIR)/$(GAME)
- $(CHGRP) $(GAMEGRP) $(SHELLDIR)/$(GAME)
- chmod $(EXEPERM) $(SHELLDIR)/$(GAME)
+ > ${DESTDIR}$(SHELLDIR)/$(GAME)
dofiles-dlb: check-dlb
- ( cd dat ; cp nhshare $(SHARE_DATNODLB) $(FILE_AREA_SHARE) )
- ( cd dat ; cp nhushare $(UNSHARE_DATNODLB) $(FILE_AREA_UNSHARE) )
-# set up their permissions
- -( cd $(FILE_AREA_SHARE) ; \
- $(CHOWN) $(GAMEUID) nhshare $(SHARE_DATNODLB) ; \
- $(CHGRP) $(GAMEGRP) nhshare $(SHARE_DATNODLB) ; \
- chmod $(FILEPERM) nhshare $(SHARE_DATNODLB) )
- -( cd $(FILE_AREA_UNSHARE) ; \
- $(CHOWN) $(GAMEUID) nhushare $(UNSHARE_DATNODLB) ; \
- $(CHGRP) $(GAMEGRP) nhushare $(UNSHARE_DATNODLB) ; \
- chmod $(FILEPERM) nhushare $(UNSHARE_DATNODLB) )
+ ( cd dat ; cp nhshare $(SHARE_DATNODLB) ${DESTDIR}$(FILE_AREA_SHARE) )
+ ( cd dat ; cp nhushare $(UNSHARE_DATNODLB) ${DESTDIR}$(FILE_AREA_UNSHARE) )
dofiles-nodlb:
# copy over the game files
- ( cd dat ; cp $(SHARE_DAT) $(FILE_AREA_SHARE) )
- ( cd dat ; cp $(UNSHARE_DAT) $(FILE_AREA_UNSHARE) )
-# set up their permissions
- -( cd $(FILE_AREA_SHARE) ; $(CHOWN) $(GAMEUID) $(SHARE_DAT) ; \
- $(CHGRP) $(GAMEGRP) $(SHARE_DAT) ; \
- chmod $(FILEPERM) $(SHARE_DAT) )
- -( cd $(FILE_AREA_UNSHARE) ; $(CHOWN) $(GAMEUID) $(UNSHARE_DAT) ; \
- $(CHGRP) $(GAMEGRP) $(UNSHARE_DAT) ; \
- chmod $(FILEPERM) $(UNSHARE_DAT) )
+ ( cd dat ; cp $(SHARE_DAT) ${DESTDIR}$(FILE_AREA_SHARE) )
+ ( cd dat ; cp $(UNSHARE_DAT) ${DESTDIR}$(FILE_AREA_UNSHARE) )
update: $(GAME) recover $(CNF_SHARE_DAT) dungeon spec_levs Guidebook.txt
# (don't yank the old version out from under people who're playing it)
- -mv $(FILE_AREA_UNSHARE)/$(GAME) $(FILE_AREA_UNSHARE)/$(GAME).old
+ -mv ${DESTDIR}$(FILE_AREA_UNSHARE)/$(GAME) ${DESTDIR}$(FILE_AREA_UNSHARE)/$(GAME).old
# quest.dat is also kept open and has the same problems over NFS
# (quest.dat may be inside nhushare if dlb is in use)
- -mv $(FILE_AREA_UNSHARE)/quest.dat $(FILE_AREA_UNSHARE)/quest.dat.old
- -mv $(FILE_AREA_UNSHARE)/nhushare $(FILE_AREA_UNSHARE)/nhushare.old
+ -mv ${DESTDIR}$(FILE_AREA_UNSHARE)/quest.dat ${DESTDIR}$(FILE_AREA_UNSHARE)/quest.dat.old
+ -mv ${DESTDIR}$(FILE_AREA_UNSHARE)/nhushare ${DESTDIR}$(FILE_AREA_UNSHARE)/nhushare.old
# set up new versions of the game files
( $(MAKE) dofiles )
# touch time-sensitive files
@@ -354,27 +325,18 @@
install: $(GAME) recover $(CNF_SHARE_DAT) dungeon spec_levs Guidebook.txt
# set up the directories
# not all mkdirs have -p; those that don't will create a -p directory
- -mkdir -p $(SHELLDIR)
- -rm -rf $(FILE_AREA_VAR) $(FILE_AREA_BONES) $(FILE_AREA_SAVE)
- -rm -rf $(FILE_AREA_LEVL) $(FILE_AREA_SHARE) $(FILE_AREA_UNSHARE)
- -rm -rf $(FILE_AREA_DOC)
- -mkdir -p $(FILE_AREA_VAR) $(FILE_AREA_BONES) $(FILE_AREA_SAVE)
- -mkdir -p $(FILE_AREA_LEVL) $(FILE_AREA_SHARE) $(FILE_AREA_UNSHARE)
- -mkdir -p $(FILE_AREA_DOC)
+ -mkdir -p ${DESTDIR}$(SHELLDIR)
+ -rm -rf ${DESTDIR}$(FILE_AREA_VAR) ${DESTDIR}$(FILE_AREA_BONES) ${DESTDIR}$(FILE_AREA_SAVE)
+ -rm -rf ${DESTDIR}$(FILE_AREA_LEVL) ${DESTDIR}$(FILE_AREA_SHARE) ${DESTDIR}$(FILE_AREA_UNSHARE)
+ -rm -rf ${DESTDIR}$(FILE_AREA_DOC)
+ -mkdir -p ${DESTDIR}$(FILE_AREA_VAR) ${DESTDIR}$(FILE_AREA_BONES)
+ -mkdir -p ${DESTDIR}$(FILE_AREA_LEVL) ${DESTDIR}$(FILE_AREA_SHARE) ${DESTDIR}$(FILE_AREA_UNSHARE)
+ -mkdir -p ${DESTDIR}$(FILE_AREA_DOC)
-rmdir ./-p
- -$(CHOWN) $(GAMEUID) $(FILE_AREA_VAR) $(FILE_AREA_BONES) $(FILE_AREA_SAVE) $(FILE_AREA_LEVL)
- $(CHGRP) $(GAMEGRP) $(FILE_AREA_VAR) $(FILE_AREA_BONES) $(FILE_AREA_SAVE) $(FILE_AREA_LEVL)
- chmod $(VARDIRPERM) $(FILE_AREA_VAR) $(FILE_AREA_BONES) $(FILE_AREA_SAVE) $(FILE_AREA_LEVL)
- -$(CHOWN) $(GAMEUID) $(FILE_AREA_SHARE) $(FILE_AREA_UNSHARE)
- $(CHGRP) $(GAMEGRP) $(FILE_AREA_SHARE) $(FILE_AREA_UNSHARE)
- chmod $(DIRPERM) $(FILE_AREA_SHARE) $(FILE_AREA_UNSHARE)
# set up the game files
( $(MAKE) dofiles )
# set up some additional files
- touch $(FILE_AREA_VAR)/perm $(FILE_AREA_VAR)/record $(FILE_AREA_VAR)/logfile
- -( cd $(FILE_AREA_VAR) ; $(CHOWN) $(GAMEUID) perm record logfile ; \
- $(CHGRP) $(GAMEGRP) perm record logfile ; \
- chmod $(VARFILEPERM) perm record logfile )
+ touch ${DESTDIR}$(FILE_AREA_VAR)/perm ${DESTDIR}$(FILE_AREA_VAR)/record ${DESTDIR}$(FILE_AREA_VAR)/logfile
# and a reminder
@echo You may also want to reinstall the man pages via the doc Makefile.

View file

@ -1,19 +1,35 @@
@mode 555
bin/slashem
%%PORTDOCS%%%%DOCSDIR%%/Guidebook.txt
%%PORTDOCS%%%%DOCSDIR%%/sample.slashemrc
%%PORTDOCS%%%%DOCSDIR%%/slamfaq.txt
@mode
@owner games
@group games
%%DATADIR%%/license
@mode 664
%%DATADIR%%/logfile
@mode
%%DATADIR%%/nhshare
%%DATADIR%%/nhushare
%%DATADIR%%/perm
@mode 664
%%DATADIR%%/record
@mode 02755
%%DATADIR%%/recover
%%DATADIR%%/slashem
@mode
@mode
@owner
@group
man/man6/dgn_comp.6.gz
man/man6/dlb.6.gz
man/man6/lev_comp.6.gz
man/man6/recover.6.gz
man/man6/slashem.6.gz
%%PORTDOCS%%%%DOCSDIR%%/Guidebook.txt
%%PORTDOCS%%%%DOCSDIR%%/sample.slashemrc
%%PORTDOCS%%%%DOCSDIR%%/slamfaq.txt
@exec mkdir %D/%%DATADIR%%/save
@exec chmod -R 775 %D/%%DATADIR%%
@exec chmod 2755 %D/%%DATADIR%%/save
@exec chown games:games %D/%%DATADIR%%/save
@dirrmtry %%DATADIR%%/save
@exec chmod 0775 %D/%%DATADIR%%/save
@unexec rmdir %D/%%DATADIR%%/save
@dirrmtry %%DATADIR%%
%%PORTDOCS%%@dirrm %%DOCSDIR%%