Hi there, This is an ebuild for the game known as Linley's Dungeon Crawl ( http://www.dungeoncrawl.org/ ). I also include a patch file and an environment file to go in /etc/env.d/ . This is my very first ebuild, so go easy on me please. :D This ebuild currently doesn't do everything it should. Here's what I feel still needs to be done: 1. When the "debug" USE flag is set, it should append the following CFLAGS: "-DFULLDEBUG -DWIZARD". I'm not entirely sure why this doesn't seem to be working currently, as to the best of my knowledge I've done what I need to. 2. Crawl uses a central folder for its saved games and config files. In this ebuild, I define that directory as ${GAMES_STATEDIR}/crawl (normally /var/games/crawl/ ), and tweak the permissions (using prepgamesdirs and chmod) so that users of the group "games" can write to the folder. However, the configuration files should really probably be somewhere like /etc/crawl/, so they need to be split off from the saved games somehow. Obviously, though, the saved games need to remain in ${GAMES_STATEDIR}/crawl. I'd love feedback on the ebuild; as I've said, it's my first one, so I'm sure there are things wrong with it other than the two items above. Thanks! - Coaran.
Created attachment 52059 [details] dungeon-crawl-4.0.0_beta26.ebuild
Created attachment 52060 [details, diff] dungeon-crawl-patch.patch
Created attachment 52061 [details] 90crawl.env File to go into /etc/env.d/.
Created attachment 52062 [details] licenses/crawl I forgot to mention that this ebuild requires a new license in /usr/portage/licenses . Here's the license to use.
There's one more thing I forgot to mention in the list of things needing done, as well... in the patch I gave, it removes the double brackets enclosing the contents of sacrifice[] - this needed to be done because the compiler gave an error otherwise. However, I haven't been able to test that section of the code yet so I don't know whether it's correct or not - basically, when you sacrifice something to your god (if you have one), one of those messages appears, depending on who your god is, I believe. So that needs to be tested, too. Thanks!
I've managed to tweak the ebuild and patch to make the "debug" USE flag work. I'll upload the new patch/ebuild now.
Created attachment 52302 [details] dungeon-crawl-4.0.0_beta26.ebuild New ebuild that allows the "debug" USE flag to work.
Created attachment 52303 [details, diff] dungeon-crawl-patch.patch New patch that allows the "debug" USE flag to work.
Okay, I've been working on this and I've got what seems to be a complete, functional ebuild. I'll upload the new files after this. Changes: * Configuration files (init.txt, macro.txt) are now in /etc/games/crawl/ while transient state files (saved games, bones, morgue.txt, etc) are in /var/games/crawl/ . * A new local USE flag "patch" will tell the ebuild to patch Crawl with the mammoth patch available at http://www.angelfire.com/trek/mazewest/ . The patch is only the "Travel" patch, not the "Imps, Draconians and Demons, oh my!" patch. I also edit the patch very slightly in the ebuild to restore easy quitting with the SPACE bar as it was before. * Fixed an error in the ebuild caused due to my misunderstanding of doins. * Removed "-Wmissing-declarations" CFLAG, thus preventing tons of warnings about it being deprecated. (It was in the original Crawl makefile; the other warnings may be able to be removed too) * A few others bits and pieces, including ebuild formatting.
Created attachment 58900 [details] dungeon-crawl-4.0.0_beta26.ebuild New ebuild file.
Created attachment 58901 [details, diff] dungeon-crawl-patch.patch New patch file. The 'religion.cc' fix is moved into a separate file to prevent conflicts, as the same issue is fixed in the "Travel" patch used if the "patch" USE flag is enabled.
Created attachment 58902 [details, diff] morgue-orig.patch New patch file. This one tweaks the code to use the new /etc directory when the "patch" USE flag is not enabled.
Created attachment 58903 [details, diff] morgue-patch.patch New patch file. This one tweaks the code to use the new /etc directory when the "patch" USE flag *is* enabled. (Two files are needed as changed are made by the Travel patch the cause conflicts with the other one.)
Created attachment 58905 [details, diff] religion.patch Patch to fix the religion.cc file. This patch is in a separate file because the Travel patch fixes the same problem, so there would be a conflict if I applied it anyway.
Created attachment 58906 [details, diff] space.patch Patch to tweak the output of the Travel patch to allow easy quitting with SPACE to work again.
Comment on attachment 52061 [details] 90crawl.env Deprecated file; the ebuild now writes this file automatically.
Okay, finished uploading. I would suggest a location of games-roguelike/dungeon-crawl . Can somebody comment on whether it's kosher to implement the local "patch" USE flag? Thanks.
Just a note to say that I've made some more changes to the ebuild and will be uploading them in a bit.
Okay, I'm uploading the new files now. Changes: * Politely asked upstream Travel patch maker if they could put dates or version numbers into the patch filename. They agreed, so the ebuild now takes that into account. * Ebuild uses latest version of the Travel patch. * Added USE option "charset850" for compiling Crawl with the DOS 850 character set, as it can look a little nicer. Obviously any terminals which run Crawl will need to be set to use that character set. * Moved macro.txt into the GAMES_STATEDIR directory. * Travel patch now handles what the space patch file did before, but unfortunately still not in the best way, so a new space.patch is required. I'll submit space.patch to the patch maker to see what he thinks. * Patch introduces a '0' shortcut for exploring; this isn't ideal for me as I use it for something else, and other people might too, so explore.patch removes that functionality. I'll again let the patch maker know about this. File changes: * dungeon-crawl-4.0.0_beta26.ebuild * files/morgue-orig.patch * files/morgue-patch.patch * files/space.patch File additions: * files/altcharset.patch * files/explore.patch
Created attachment 68460 [details] dungeon-crawl-4.0.0_beta26.ebuild New ebuild file.
Created attachment 68461 [details, diff] morgue-orig.patch Changed morgue-orig.patch file. (the ebuild was changed too, obviously, but I didn't say that.)
Created attachment 68462 [details, diff] morgue-patch.patch Changed morgue-patch.patch file.
Created attachment 68463 [details, diff] space.patch Changed space.patch file.
Created attachment 68464 [details, diff] altcharset.patch New patch allowing Crawl to use the DOS 850 charset if wanted.
Created attachment 68465 [details, diff] explore.patch New patch to disable the '0' explore shortcut - it's available as Ctrl-O anyway.
Okay, I'm done uploading. It should be ready for testing.
(In reply to comment #26) > Okay, I'm done uploading. It should be ready for testing. I tried it out on my amd64 system and it works great; thanks for the ebuild.
No problem. By the way, just so people know, when I said it's ready for testing, I should mention that I've been using my own ebuild for quite a long time now and I haven't come across any bugs, *except* when I use the wizard mode and cheat (a rare occurrence, don't worry ;-)), at which point the validity of any error is suspect anyway. The devs will presumably need to test it for themselves, though.
(In reply to comment #28) > The devs will presumably need to test it for themselves, though. Always. This is one of the reasons why it takes so long for some things to get into portage. We have to test *everything* that we commit, even if large numbers of users claim it works for them. However, the more users that say it works for them, the less testing we really need ot do. For packages where nobody says it works, we have to test everything we can think of before including it.
I also wrote an ebuild for Crawl, but I got bogged down learning src_install commands. Yours looks great, and I'll test soon. A couple comments: -definitely look over the Debian patchset, there are two security bugs fixed, and a few other useful fixes see: http://www.debian.org/security/2006/dsa-949 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-0045 http://ftp.debian.org/debian/pool/main/c/crawl/crawl_4.0.0beta26-7.diff.gz (basically one liners that should be applied to vanilla and the travel patch set) -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations should be removed from makefile.lnx, and not appended later. Darshan's patch needs a version bump, and perhaps the use flag should be called something less generic than "patch". If you know C++ you should consider integrating the tile patch too :) nitpicky: Missing quotes around $WORKDIR and possibly others. Your top section is out of order, makes it a bit hard to read You need a || die after emake, maybe others Use $MY_PN = foo, $MY_PV = bar, $MY_P = $MY_PN$MY_PV .. would be cleaner Perhaps license should be renamed to dungeon-crawl to avoid confusion
Darshan has recently merged the Debian patches into his patchset, so they only need to be applied to vanilla crawl.
Yeah, I noticed that as I was looking at it. I'm giving this a go and attempting to incorporate the various changes. There are quite a lot. :D
I guess I'll need to do this in such a way that the regular Debian patches are applied if the user doesn't want the travel patch, but the travel patch is applied if they do, which contains the Debian fixes. What license does Debian have for their patches?
Right, /if/ use travelpatch /then/ patch with only the travel patch /else/ patch with Debian patches. I can separate out the useful Debian patches if you like. I would bet my savings account that their patch license (if there is one) is either the package's license, GPL, public domain, or another permissive license, but a quick search revealed nothing.
Ciaran, do you mind if I go ahead and modify the ebuild?
Crap, sorry. I meant to look into it myself, and in fact I had looked at this thread recently and I was going to do more work on it at the weekend. But yeah, sure, go ahead. It'd probably be quicker than me right now. :D
Created attachment 105979 [details] stone soup crawl version Hi there, This is my first ebuild ever and I'm sure I did a terrible job. But this is supposed to be the latest version of crawl from the "Stone Soup" series. Take a look at http://crawl-ref.sourceforge.net/. I believe that this version has all the older patches as well as some new bug fixes and features.
If it works (with collision-protect on) then that's a good start. Your ebuild does have a few faux pas, you should read some of devmanual.gentoo.org, I found it very helpful. I'll provide more feedback soonish. Cheers~
Also, check out this: http://www.gentoo.org/proj/en/desktop/games/games-ebuild-howto.xml
Created attachment 106632 [details] My second stone soup ebuild Hi there, Ok I read some of the documentation and have made the ebuild a little better. I'm there are still many things wrong with it, but it is getting there. Give it a shot, crawl is a fun game.
Comment on attachment 106632 [details] My second stone soup ebuild # Copyright 1999-2007 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ inherit eutils games DESCRIPTION="A free and portable roguelike molded in the tradition of the \ early greats of the genre." HOMEPAGE="http://crawl-ref.sourceforge.net/" SRC_URI="http://umn.dl.sourceforge.net/sourceforge/crawl-ref/stone_soup-${PV}-src.tbz2" LICENSE="crawl" SLOT="0" KEYWORDS="~x86 ~amd64" IUSE="" DEPEND="sys-libs/ncurses" RDEPEND="sys-libs/ncurses" S="${WORKDIR}/stone_soup-${PV}-src" src_unpack() { unpack stone_soup-${PV}-src.tbz2 || die "unpacking files" } src_compile() { cd source sed -i \ -e "/^DATADIR/c DATADIR := ${GAMES_DATADIR}/crawl" \ makefile.unix \ || die "sed failed" sed -i \ -e '/^#ifdef MULTIUSER/a #define SAVE_DIR_PATH "PUTDIRECTORYHERE"' \ AppHdr.h \ || die "sed failed" sed -i \ -e "s:PUTDIRECTORYHERE:${GAMES_STATEDIR}/crawl/:" \ AppHdr.h \ || die "sed failed" emake || die "compilation failed" } src_install() { cd source dogamesbin crawl || die "installing the binary failed" dodir ${GAMES_DATADIR}/crawl cp -r dat ${D}${GAMES_DATADIR}/crawl cd .. dodoc CREDITS readme.txt cd docs dodoc crawl_manual.txt doman crawl.6 dodir ${GAMES_STATEDIR}/crawl prepgamesdirs fperms 770 ${GAMES_STATEDIR}/crawl }
Comment on attachment 106632 [details] My second stone soup ebuild Hmm I'm not sure what happened there. Tried to attach a new ebuild but the old one is repeated.
Created attachment 106766 [details] dungeon crawl stone soup build
Created attachment 116369 [details] dungeon-crawl-ss-0.2.4.ebuild Here is an update of the stone soup ebuild that works with 0.2.4.
The same ebuild should work for version 2.7. Just rename it.
Renaming the ebuild to "dungeon-crawl-ss-0.4.ebuild seems to work fine, so you can play the new 0.4 version. Sorry no tiles though.
Created attachment 182639 [details] ebuild for crawl stone soup build 0.4.5 This is the latest ebuild for dungeon crawl stone soup 0.4.5.
Created attachment 192290 [details] This pulls the svn trunk version for those who wants bleeding edge. I made this because I wanted to play the trunk version from the svn. I used the 0.4.5 version ebuild as template to get this to work. Enjoy ^.^
Created attachment 192331 [details] Installs Dungeon Crawl Stone Soup from SVN. Trunk version. The previous ebuild was missing docs and settings folders, which made the help files in-game not to function. As well as default settings.
Created attachment 194950 [details] new ebuild for the latest stable stone soup crawl release Hello there, Here is the latest ebuild for the new release of stone soup crawl 0.5.0. I borrowed the doc and settings fixes from Mattias, thanks!
Created attachment 195397 [details] new ebuild for crawl stone soup 0.5...now with tiles! Hello there, This is a better version of crawl stone soup 0.5..now with tiles! Use the "tiles" use flag to turn on tiles. Enjoy
Created attachment 204397 [details] 0.5.1 version of stone soup dungeon crawl Here is the 0.5.1 version of stone soup with tiles working again.
Created attachment 212651 [details] stone-soup-0.5.2.ebuild Here's my take on Dungeon Crawl Stone Soup. This is an ebuild for 0.5.2: - CFLAGS, LDFLAGS, DESTDIR and --as-needed fixes - Deactivated and removed internal copies of sqlite, lua and ttf-bitstream-vera - Changed the executable name to stone-soup (in case we ever commit both this and the original Dungeon Crawl) The only thing to fix is the jobserver warning (I couldn't figure it out) but it's really not major. Also I'm not sure about the fperms 2770 on the executable and I'm wondering if stone-soup is affected by bug #125902 like a few other roguelikes. Can anybody comment on the above? That is if somebody still cares about this... Denis.
How about getting this into sunrise? It's already been five years.
please, change media-fonts/ttf-bitstream-vera to virtual/ttf-fonts in CDEPEND
latest stable is 0.7.1
(In reply to comment #56) > latest stable is 0.7.1 > nvm that, sry, mixed it up with 'Dungeon Crawl Stone Soup'
Created attachment 269113 [details] stone-soup-9999.ebuild here is an updated ebuild for the git repository including use flag ("tiles") for graphical version. could probably be easily adapted for 0.7.2
As the original person who opened this bug 11-12 years ago(!), I'd like to suggest that this bug can be closed. We've had games-roguelike/stone-soup (Stone Soup, a fork of the original code) in the Portage tree for about 4 years now, and while it's not quite the same thing as the original Dungeon Crawl by Linley Henzell (and you won't find it if you look on dungeoncrawl.org), it's the clear successor to the original. The original code also no longer compiles - presumably due to changes in the C standard - and the website providing the travel patch stopped hosting it a long time ago (and even if it was hosting it, the page is no longer maintained). While I still have copies of the patch that apply to the original Crawl source code, the patch was merged into Stone Soup a long, long time ago. I'm not a Gentoo dev so I won't close this bug myself, but it's almost certainly not something that needs to be open any more.
(In reply to Sophie Hamilton from comment #59) > As the original person who opened this bug 11-12 years ago(!), I'd like to > suggest that this bug can be closed. Sounds fair. Closing.