[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#353552:



tags 353552 + patch
thanks dude

The attached patch (also pasted below for convenience) fixes the
problem by installing Falcon's Eye's arch-indep support files to
/usr/share/games/falconseye and putting symlinks to
/usr/share/games/falconseye/* in the /usr/lib/games/falconseye
directory.

Thanks go to Bas Wijnen <shevek at fmf.nl> for suggesting symlinking;
I am a newbie to Debian packaging and would not have thought of that
timesaving idea.

Regards,
Jason Spiro <jasonspiro3@gmail.com>

diff -ruN5 falconseye-1.9.3/debian/falconseye-data.dirs
falconseye-1.9.3-new/debian/falconseye-data.dirs
--- falconseye-1.9.3/debian/falconseye-data.dirs	2006-07-11
22:50:27.000000000 -0400
+++ falconseye-1.9.3-new/debian/falconseye-data.dirs	2006-07-11
23:38:14.000000000 -0400
@@ -1,6 +1,7 @@
usr/lib/games/falconseye
-usr/lib/games/falconseye/config
-usr/lib/games/falconseye/graphics
-usr/lib/games/falconseye/sound
+usr/share/games/falconseye
+usr/share/games/falconseye/config
+usr/share/games/falconseye/graphics
+usr/share/games/falconseye/sound
usr/share/doc/falconseye/manual
usr/share/pixmaps
diff -ruN5 falconseye-1.9.3/debian/rules falconseye-1.9.3-new/debian/rules
--- falconseye-1.9.3/debian/rules	2006-07-11 22:50:27.000000000 -0400
+++ falconseye-1.9.3-new/debian/rules	2006-07-11 23:38:14.000000000 -0400
@@ -31,12 +31,11 @@

build-arch: build-arch-stamp
build-arch-stamp: #CONFIGURE_STAMP# #CONFIG_STATUS#

	sh sys/unix/setup.sh 1
-	$(MAKE) all CFLAGS='-O2 -I../include \
-	 -I/usr/X11R6/include -fomit-frame-pointer' LFLAGS='-L/usr/X11R6/lib'
+	$(MAKE) all

build-indep: build-indep-stamp
build-indep-stamp: #CONFIGURE_STAMP# #CONFIG_STATUS#
	
	# Add here commands to compile the indep part of the package.
@@ -61,32 +60,43 @@
	dh_installdirs -i
	
	# Add here commands to install the indep part of the package into
	# debian/<package>-doc.
	#INSTALLDOC#
-	chgrp games debian/falconseye-data/usr/lib/games/falconseye
+	chgrp games debian/falconseye-data/usr/share/games/falconseye
	for file in cmdhelp data help hh history opthelp options \
	  oracles rumors wizhelp; \
	do \
	  install -m 0644 -o root -g root dat/$$file \
-	  debian/falconseye-data/usr/lib/games/falconseye/; \
+	  debian/falconseye-data/usr/share/games/falconseye/; \
	done

	install -m 0644 -o root -g root win/jtp/gamedata/config/jtp_lit1.dat \
-	  debian/falconseye-data/usr/lib/games/falconseye/config/
+	  debian/falconseye-data/usr/share/games/falconseye/config/

	install -m 0644 -o root -g root win/jtp/gamedata/graphics/* \
-	  debian/falconseye-data/usr/lib/games/falconseye/graphics/
+	  debian/falconseye-data/usr/share/games/falconseye/graphics/
										
	install -m 0644 -o root -g root win/jtp/gamedata/sound/* \
-	  debian/falconseye-data/usr/lib/games/falconseye/sound/
+	  debian/falconseye-data/usr/share/games/falconseye/sound/

	install -m 644 -o root -g root win/jtp/gamedata/manual/* \
	  debian/falconseye-data/usr/share/doc/falconseye/manual/
										
	install -m 644 -o root -g root debian/falconseye.xpm \
	  debian/falconseye-data/usr/share/pixmaps/
+	
+	# Symlink all files just installed to /usr/lib so that falconseye,
+	# which has not been modified to look in /usr/share for any of its
+	# files, will still find them. This symlinking is easier than
+	# actually patching the source, since falconseye expects to find
+	# all its support files in one directory.
+	
+	for x in debian/falconseye-data/usr/share/games/falconseye/*; do \
+		ln -s /usr/share/games/falconseye/`basename $$x` \
+		  debian/falconseye-data/usr/lib/games/falconseye; \
+	done

install-arch:
	dh_testdir
	dh_testroot
	dh_clean -k -a
diff -ruN5 falconseye-1.9.3/sys/unix/Makefile.top
falconseye-1.9.3-new/sys/unix/Makefile.top
--- falconseye-1.9.3/sys/unix/Makefile.top	2001-06-24 19:57:24.000000000 -0400
+++ falconseye-1.9.3-new/sys/unix/Makefile.top	2006-07-11
23:49:19.000000000 -0400
@@ -26,20 +26,25 @@
GAMEPERM = 04755
FILEPERM = 0644
EXEPERM  = 0755
DIRPERM  = 0755

-# GAMEDIR also appears in config.h as "HACKDIR".
-# VARDIR may also appear in unixconf.h as "VAR_PLAYGROUND" else GAMEDIR
+# ARCHDIR is the directory where architecture-dependent game files go.
+# INDEPDIR is the directory where architecture-independent game files go.
+# Everything under INDEPDIR gets symlinked into ARCHDIR by debian/rules.
+# See debian/rules for an explanation of why it is symlinked.
+# ARCHDIR also appears in config.h as "HACKDIR".
+# VARDIR may also appear in unixconf.h as "VAR_PLAYGROUND" else ARCHDIR
#
-# note that 'make install' believes in creating a nice tidy GAMEDIR for
+# note that 'make install' believes in creating a nice tidy ARCHDIR for
# installation, free of debris from previous NetHack versions --
-# therefore there should not be anything in GAMEDIR that you want to keep
+# therefore there should not be anything in ARCHDIR that you want to keep
# (if there is, you'll have to do the installation by hand or modify the
# instructions)
-GAMEDIR  = $(PREFIX)/games/lib/$(GAME)dir
-VARDIR  = $(GAMEDIR)
+ARCHDIR  = $(PREFIX)/games/lib/$(GAME)dir
+INDEPDIR = $(PREFIX)/games/share/$(GAME)dir
+VARDIR  = $(ARCHDIR)
SHELLDIR = $(PREFIX)/games

# per discussion in Install.X11 and Install.Qt
VARDATND =
# VARDATND = x11tiles pet_mark.xbm
@@ -85,15 +90,15 @@

# Falcon's Eye directories. These also appear in jtp_win.h as
# defines JTP_MAIN_DIRECTORY, JTP_DATA_DIRECTORY,
# JTP_GRAPHICS_DIRECTORY and JTP_SOUND_DIRECTORY.
# They are assumed to be subdirectories of the main game directory.
-JTPMAINDIR = $(GAMEDIR)
-JTPDATADIR = $(GAMEDIR)/config
-JTPGRAPHICSDIR = $(GAMEDIR)/graphics
-JTPSOUNDDIR = $(GAMEDIR)/sound
-JTPMANUALDIR = $(GAMEDIR)/manual
+JTPMAINDIR = $(ARCHDIR)
+JTPDATADIR = $(ARCHDIR)/config
+JTPGRAPHICSDIR = $(INDEPDIR)/graphics
+JTPSOUNDDIR = $(ARCHDIR)/sound
+JTPMANUALDIR = $(ARCHDIR)/manual

#
# end of configuration
#

@@ -197,37 +202,37 @@
		-e '}' 					\
	  	-e '$$s/.*/nodlb/p' < dat/options` ;	\
	$(MAKE) dofiles-$${target-nodlb}
#comment out the next line if you don't want the Falcon's Eye files
	$(MAKE) dofiles-jtp
-	cp src/$(GAME) $(GAMEDIR)
+	cp src/$(GAME) $(ARCHDIR)
	-rm -f $(SHELLDIR)/$(GAME)
-	sed -e 's;/usr/games/lib/nethackdir;$(GAMEDIR);' \
+	sed -e 's;/usr/games/lib/nethackdir;$(ARCHDIR);' \
		-e 's;HACKDIR/nethack;HACKDIR/$(GAME);' \
		< sys/unix/nethack.sh \
		> $(SHELLDIR)/$(GAME)
# set up their permissions
-	-( cd $(GAMEDIR) ; $(CHOWN) $(GAMEUID) $(GAME) ; \
+	-( cd $(ARCHDIR) ; $(CHOWN) $(GAMEUID) $(GAME) ; \
			$(CHGRP) $(GAMEGRP) $(GAME) )
-	chmod $(GAMEPERM) $(GAMEDIR)/$(GAME)
+	chmod $(GAMEPERM) $(ARCHDIR)/$(GAME)
	-$(CHOWN) $(GAMEUID) $(SHELLDIR)/$(GAME)
	$(CHGRP) $(GAMEGRP) $(SHELLDIR)/$(GAME)
	chmod $(EXEPERM) $(SHELLDIR)/$(GAME)

dofiles-dlb: check-dlb
-	( cd dat ; cp nhdat $(DATNODLB) $(GAMEDIR) )
+	( cd dat ; cp nhdat $(DATNODLB) $(ARCHDIR) )
# set up their permissions
-	-( cd $(GAMEDIR) ; $(CHOWN) $(GAMEUID) nhdat $(DATNODLB) ; \
+	-( cd $(ARCHDIR) ; $(CHOWN) $(GAMEUID) nhdat $(DATNODLB) ; \
			$(CHGRP) $(GAMEGRP) nhdat $(DATNODLB) ; \
			chmod $(FILEPERM) nhdat $(DATNODLB) ; \
	)

dofiles-nodlb:
# copy over the game files
-	( cd dat ; cp $(DAT) $(GAMEDIR) )
+	( cd dat ; cp $(DAT) $(ARCHDIR) )
# set up their permissions
-	-( cd $(GAMEDIR) ; $(CHOWN) $(GAMEUID) $(DAT) ; \
+	-( cd $(ARCHDIR) ; $(CHOWN) $(GAMEUID) $(DAT) ; \
			$(CHGRP) $(GAMEGRP) $(DAT) ; \
			chmod $(FILEPERM) $(DAT) )

dofiles-jtp:
# create the Falcon's Eye directories and set up their permissions
@@ -260,15 +265,15 @@
	$(CHGRP) $(GAMEGRP) $(JTPMANUALFILES) ; \
	chmod $(FILEPERM) $(JTPMANUALFILES) )

update: $(GAME) $(VARDAT) dungeon spec_levs
#	(don't yank the old version out from under people who're playing it)
-	-mv $(GAMEDIR)/$(GAME) $(GAMEDIR)/$(GAME).old
+	-mv $(ARCHDIR)/$(GAME) $(ARCHDIR)/$(GAME).old
#	quest.dat is also kept open and has the same problems over NFS
#	(quest.dat may be inside nhdat if dlb is in use)
-	-mv $(GAMEDIR)/quest.dat $(GAMEDIR)/quest.dat.old
-	-mv $(GAMEDIR)/nhdat $(GAMEDIR)/nhdat.old
+	-mv $(ARCHDIR)/quest.dat $(ARCHDIR)/quest.dat.old
+	-mv $(ARCHDIR)/nhdat $(ARCHDIR)/nhdat.old
# set up new versions of the game files
	( $(MAKE) dofiles )
# touch time-sensitive files
	-touch -c $(VARDIR)/bones* $(VARDIR)/?lock* $(VARDIR)/wizard*
	-touch -c $(VARDIR)/save/*
@@ -278,16 +283,16 @@

install: $(GAME) $(VARDAT) dungeon spec_levs
# set up the directories
# not all mkdirs have -p; those that don't will create a -p directory
	-mkdir -p $(SHELLDIR)
-	-rm -rf $(GAMEDIR) $(VARDIR)
-	-mkdir -p $(GAMEDIR) $(VARDIR) $(VARDIR)/save
+	-rm -rf $(ARCHDIR) $(VARDIR)
+	-mkdir -p $(ARCHDIR) $(VARDIR) $(VARDIR)/save
	-rmdir ./-p
-	-$(CHOWN) $(GAMEUID) $(GAMEDIR) $(VARDIR) $(VARDIR)/save
-	$(CHGRP) $(GAMEGRP) $(GAMEDIR) $(VARDIR) $(VARDIR)/save
-	chmod $(DIRPERM) $(GAMEDIR) $(VARDIR) $(VARDIR)/save
+	-$(CHOWN) $(GAMEUID) $(ARCHDIR) $(VARDIR) $(VARDIR)/save
+	$(CHGRP) $(GAMEGRP) $(ARCHDIR) $(VARDIR) $(VARDIR)/save
+	chmod $(DIRPERM) $(ARCHDIR) $(VARDIR) $(VARDIR)/save
# set up the game files
	( $(MAKE) dofiles )
# set up some additional files
	touch $(VARDIR)/perm $(VARDIR)/record $(VARDIR)/logfile
	-( cd $(VARDIR) ; $(CHOWN) $(GAMEUID) perm record logfile ; \

Attachment: tweak-falconseye-file-placements.patch
Description: Binary data


Reply to: