[Crawl] Hearse for Crawl

39 views
Skip to first unread message

Darshan Shaligram

unread,
May 13, 2003, 10:15:51 AM5/13/03
to
If you've played NetHack, you'll know Alexis Manning's Hearse. It's a
system for sharing NetHack bones files.

Hearse now supports bones files from Crawl b26 on an experimental basis,
so us unfortunates playing Crawl on single-user systems need no longer
confront the old boring ghosts (in my case, old boring ghosts who make
life hell by summoning imps and scorpions), and can instead take on
other people's ghosts.

Getting the client
------------------
You'll find a Hearse client that supports Crawl here:

http://www.angelfire.com/trek/mazewest/misc/hearse.pl

This is a modified version of Roderick Schertler's NetHack Hearse client
for Unixes. You'll need a fairly recent (5.6 or better) perl to run the
client. A good Windows Perl binary is available from ActiveState:

http://www.activestate.com/Products/ActivePerl/

Most Unixen will already have perl, and the required modules (lwp and
Digest::MD5).

Running the client
------------------
The first time you run hearse, you'll have to supply an email address
and get a user token from the Hearse server, so that the server can
remember who you are and track what bones you've uploaded (so that the
server doesn't give you your own bones, and to contact you if a bad
bones file is discovered).

You get a user token so:

hearse.pl --user-email f...@xyz.net

The user token is saved in /etc/nethack/ by default (?:\etc\nethack for
Windows users). Unix users may need to run as root for the user token
file to be saved.

Once you have a user token file, you can tell hearse to upload and
delete your bones files and get new ones by running

hearse.pl --delete-uploaded

in your Crawl bonesfile directory, or as:

hearse.pl --delete-uploaded -b bonesfiledir

Unix users will want to watch what privileges they run hearse with.
hearse will try to set group and user id to 'games' (because it thinks
in terms of NetHack's permissions), but you can override that with the
--run-as-user, --run-as-group and --run-as-me options.

I've probably forgotten lots of important stuff, so questions are
welcome. The client has been tested on Windows and Red Hat Linux.

Running 'perldoc hearse.pl' should also be helpful.

Thanks to Alexis Manning and Arien Malec for making this happen.

--
Darshan Shaligram dars...@aztec.soft.net

Tax

unread,
May 19, 2003, 11:42:21 PM5/19/03
to
I installed ActiveState and ran hearse.pl; it got me a token and put
it in \etc\nethack before crashing. But now it crashes the same way
when I try to upload bones.

This is perl, v5.6.1 built for MSWin32-x86-multi-thread

And the error:
flock() unimplemented on this platform at \alex\hearse.pl line 680.

I did note the ActiveState website mentioning problems with flock()
under x86.

I hope I'm not being an utter newb here. My email username is krawlkat
and my email domain is yahoo.com should you need to ask me more
questions, tell me to be quiet, or tell me what I'm doing wrong. Thank
you for your work!

Tax

unread,
May 19, 2003, 11:42:55 PM5/19/03
to

Arien Malec

unread,
May 20, 2003, 1:10:21 AM5/20/03
to
Tax <ye...@right.gov> wrote in news:gf8jcv8ii6vug16mhe8rp1nmjtba0dmon4@
4ax.com:

> I installed ActiveState and ran hearse.pl; it got me a token and put
> it in \etc\nethack before crashing. But now it crashes the same way
> when I try to upload bones.
>
> This is perl, v5.6.1 built for MSWin32-x86-multi-thread

Darshan developed and I tested Hearse using ActiveState Perl 5.8, so
upgrading might help.



> And the error:
> flock() unimplemented on this platform at \alex\hearse.pl line 680.
>
> I did note the ActiveState website mentioning problems with flock()
> under x86.

If you can't upgrade to Perl 5.8, you might want to comment out the place
get_lock is called under main (it might bomb in other places, however).

Arien

Darshan Shaligram

unread,
May 20, 2003, 2:39:30 AM5/20/03
to
Arien Malec <arien...@yahoo.com.REMOVE> writes:
> Tax <ye...@right.gov> wrote in news:gf8jcv8ii6vug16mhe8rp1nmjtba0dmon4@
> 4ax.com:

> > I installed ActiveState and ran hearse.pl; it got me a token and put
> > it in \etc\nethack before crashing. But now it crashes the same way
> > when I try to upload bones.

> > This is perl, v5.6.1 built for MSWin32-x86-multi-thread

[...]


> > And the error:
> > flock() unimplemented on this platform at \alex\hearse.pl line 680.

> > I did note the ActiveState website mentioning problems with flock()
> > under x86.

> If you can't upgrade to Perl 5.8, you might want to comment out the
> place get_lock is called under main (it might bomb in other places,
> however).

Removing the call to get_lock (line 1161 or so) should be quite safe
under Windows.

I did test this on 5.6.1, but the machine in question had a Cygwin perl.
My bad.

--
Darshan Shaligram dars...@aztec.soft.net

Tax

unread,
May 20, 2003, 7:31:22 PM5/20/03
to
On Tue, 20 May 2003 12:09:30 +0530, Darshan Shaligram
<dars...@aztec.soft.net> wrote:

>Arien Malec <arien...@yahoo.com.REMOVE> writes:
>> Tax <ye...@right.gov> wrote in news:gf8jcv8ii6vug16mhe8rp1nmjtba0dmon4@
>> 4ax.com:
>
>> > I installed ActiveState and ran hearse.pl; it got me a token and put
>> > it in \etc\nethack before crashing. But now it crashes the same way
>> > when I try to upload bones.
>
>> > This is perl, v5.6.1 built for MSWin32-x86-multi-thread
>[...]
>> > And the error:
>> > flock() unimplemented on this platform at \alex\hearse.pl line 680.
>
>> > I did note the ActiveState website mentioning problems with flock()
>> > under x86.
>
>> If you can't upgrade to Perl 5.8, you might want to comment out the
>> place get_lock is called under main (it might bomb in other places,
>> however).
>
>Removing the call to get_lock (line 1161 or so) should be quite safe
>under Windows.

Sweet, I got this working under ActiveState perl 5.8 for w32 under
Win98. Upgrading alone still didn't resolve the issue, but deleting
the get_lock stuff worked like a charm.

If anyone is interested in running Hearse under Windows, I can post
this kluge, though you'll need some sort of perl to make it run. ^_^

Arien Malec

unread,
May 20, 2003, 7:40:06 PM5/20/03
to
Tax <ye...@right.gov> wrote in news:cfelcvov9q76un95quv9j8t8pde4li5kk1@
4ax.com:

> On Tue, 20 May 2003 12:09:30 +0530, Darshan Shaligram
> <dars...@aztec.soft.net> wrote:
>
>>Arien Malec <arien...@yahoo.com.REMOVE> writes:
>>> If you can't upgrade to Perl 5.8, you might want to comment out the
>>> place get_lock is called under main (it might bomb in other places,
>>> however).
>>
>>Removing the call to get_lock (line 1161 or so) should be quite safe
>>under Windows.
>
> Sweet, I got this working under ActiveState perl 5.8 for w32 under
> Win98. Upgrading alone still didn't resolve the issue, but deleting
> the get_lock stuff worked like a charm.

I'd assume we are on different platforms, then. I'm using 2K, SP3, and it
works fine for me without the get_lock line commented out.

Ah, Windows.

Arien

Darshan Shaligram

unread,
May 21, 2003, 2:05:30 AM5/21/03
to
Tax <ye...@right.gov> writes:
[Problems with the Perl Hearse client under Windows]

> Sweet, I got this working under ActiveState perl 5.8 for w32 under
> Win98. Upgrading alone still didn't resolve the issue, but deleting
> the get_lock stuff worked like a charm.

I've updated the script so it doesn't attempt to lock files on Windows.
The updated script is at the same location:

http://www.angelfire.com/trek/mazewest/misc/hearse.pl

Thanks,
--
Darshan Shaligram dars...@aztec.soft.net

Tax

unread,
May 22, 2003, 1:23:22 AM5/22/03
to

Yeah, this is a well-documented difference between the two flavors of
Windows. There are also snippets of workaround code out there, but I'm
not that good at perl yet. :)

Reply all
Reply to author
Forward
0 new messages