Author
Topic: Gentoo Ebuild: It Arises (Read 999 times)

Howdie, fellow post-apocalyptic sojourners. For the fortunate Gentoo-ites among us (...you know who you are), a series of unofficial but well-tested ebuilds compiling and installing Cataclysm: DDA from live GitHub sources have arisen! We currently support versions 0.4 and 9999 (i.e., the most recent GitHub commit), with planned support for 0.5 as soon as that erupts.

The wiki has complete instructions. If you're too busy chopping up your bench into nailboards to thumb through them, however, it's pretty simple:

We're migrating the license to CC-BY-SA 3.0, so once that's done we can do "legit" distro releases, but while that's happening by all means feel free to build and spread around packages.

We're also taking a look at updating the makefiles to accomodate packaging more easily (allowing installing to /usr/local/whatever or whatever wacky paths various distros use).

Logged

You most construct more Developers. -FSNYou'll be missed, NPC McForgotYourName. -Inquisitor DustThe perfect place to steal the raw inspiration from! -John CandleburyEvery time I start a fire in the wood stove I begin to sweat as if defusing a bomb -Gekko

We're also taking a look at updating the makefiles to accomodate packaging more easily (allowing installing to /usr/local/whatever or whatever wacky paths various distros use).

Badical! Err... excellent. Honestly, I found the Cataclysm: DDA "Makefile" to be remarkably helpful. So many roguelikes either distribute no makefiles or highly nonstandard makefiles. (premake4-based ToME4, I'm glaring at you.)

I did trip across a breaking bug, however. I should probably launch a new forum post for it, but... well, Spring is here. Doesn't happen often in Canada. So here goes:

Under Linux (and possibly OS X), if the directory to which "cataclysm" is installed is not writable by the current user, running "cataclysm" results in 100% CPU load. And that's it. No output. No error. No warning. Just 100% CPU load.

I'm afraid I haven't grepped through the codebase, yet. Perhaps the function responsible for writing the "save" savefile silently spins until getting write access to such directory? Which, of course, it never gets.

Regardless, fantastic job. At the currently diabolic pace of development, I can well see DDA overtaking ToME4 as Roguelike of the Year. I guess what I'm trying to say is: "Thanks for all the rancid zombie fish."

Ideally, enable both. (Queue skin-crawlingly overused "Why can't we have both?" meme. Twitch. Twitch.) For your grisly edification, the following optional USE flags are also now supported:

"clang", compiling Cataclysm: DDA with the LLVM-based clang++ compiler rather than the conventional g++ compiler. (Highly experimental. Guaranteed to explode your digital world in uncomfortable ways – but it's there if you're feeling frisky.)

"lua", embedding a Lua interpreter into Cataclysm: DDA. (Technically, this currently does nothing. Thanks, leycec. I know. But it will probably do something when Lua support goes live in the upcoming version 1.0. Hey, no harm in planning ahead... or is there?)

This updates comes courtesy the following Gentooers, whose thankless diligence on both this forum and github shamed me into patching my bit rot:

We know we're bad people wrt non-configurable file paths, builld- and run-time configurability for that is being looked at. We have the gnarly "let's add indirection to all the hard-coded file paths" done, now just need to hook it up to the makefile and stuff.Btw, clang++ isn't all that experimental, the official builds are on clang since that's what our Jenkins instance is configured for. (yes we'll be looking at whether g++ builds make faster code at some point)

Logged

You most construct more Developers. -FSNYou'll be missed, NPC McForgotYourName. -Inquisitor DustThe perfect place to steal the raw inspiration from! -John CandleburyEvery time I start a fire in the wood stove I begin to sweat as if defusing a bomb -Gekko

You guys rock the post-apocalyptic Casbah. With bated (fetid) breath, we contemplate what lurks in the dark for 0.A. Here's to even more weekends wrecked with Lua-enabled grappler zombie duels.

Quote

We know we're bad people wrt non-configurable file paths, builld- and run-time configurability for that is being looked at. We have the gnarly "let's add indirection to all the hard-coded file paths" done, now just need to hook it up to the makefile and stuff.

The "Makefile" is astonishingly serviceable with respect to Gentoo integration. A well-deserved kudos to the build team! That said, there are a few incidental hiccoughs:

The live "Makefile" assumes subdirectories "obj" (when compiling the ncurses build) and "obj/tiles" (when compiling the SDL build) to exist without actually creating such subdirectories. Since they don't exist, "make" immediately fails with fatal error. (Easily fixed on our end, of course, but there you are.)

The live "Makefile" hardcodes "-werror" into variable $(WARNINGS) (when building with g++). This is a fairly dangerous option, guaranteeing build failure on the first otherwise ignorable compilation warning. You might want to omit such option from $(WARNINGS) by default – perhaps enabling such option only under developer-specific debug builds. (Easily fixed on our end, again.)

Aaaand... That's it.

Quote

Btw, clang++ isn't all that experimental, the official builds are on clang since that's what our Jenkins instance is configured for. (yes we'll be looking at whether g++ builds make faster code at some point)

Bump. For inscrutable reasons, the live ebuild has switched from a hard package mask to empty ebuild KEYWORDS. Current users will probably want to add the following line to /etc/portage/package.accept_keywords:

btw, any feedback on whether our efforts to make directories more configurable made the rebuild any easier?

Logged

You most construct more Developers. -FSNYou'll be missed, NPC McForgotYourName. -Inquisitor DustThe perfect place to steal the raw inspiration from! -John CandleburyEvery time I start a fire in the wood stove I begin to sweat as if defusing a bomb -Gekko