ng0 <ngillm...@runbox.com> writes: > Leo Famulari <l...@famulari.name> writes: > >> On Sun, Oct 09, 2016 at 06:44:11PM +0000, ng0 wrote: >>> From: ng0 <n...@we.make.ritual.n0.is> >>> >>> * gnu/packages/irc.scm (epic5): New variable. >> >> Thanks for the updated patch. >> >> Sorry I didn't notice this before... >> >>> + (inputs >>> + `(("openssl" ,openssl) >>> + ("ncurses" ,ncurses) >>> + ("libarchive" ,libarchive) ; CHANGELOG: "Support for loading zip >>> files" >>> + ("perl" ,perl) >>> + ("tcl" ,tcl) >>> + ("ruby" ,ruby) >>> + ("gdbm" ,gdbm))) >> >> Using `guix gc --references $(./pre-inst-env guix build epic5)`, I >> noticed that there is no reference to gdbm. >> >> So, if you install this epic5 package and then do `guix gc`, you will >> lose gdbm and I assume that epic5 will stop working. >> >> We need to figure out a way to make sure epic5 keeps that reference. > > > Hm. Maybe there's an config option I can pass, if you have time to look > at it go ahead, I'll be slow and update it some time this month. > I keep poking at system services and trying to finish those, easier said > than done in some cases it turns out.
This can not be related, but I will set the CFLAGS too with the next version of the patch: o You must not try to compile epic with "gcc -O2" because -O2 will generate bad code that leads to random crashes. When you use -O2, gcc assumes the source is conformant to ISO C99's requirements about alias-safety, and EPIC, being a C90 program, does not conform, so the result is undefined behavior (which means it crashes randomly.) This is not a bug in EPIC. You must only compile epic with -O. egrep -nr "gdbm": *** News 10/30/2005 -- New function, $dbmctl() [hash table support] *** Notice *** This function uses a custom implementation of SDBM. The file format it generates should be compatable with $perl() but is not compatable with ndbm or gdbm. The $dbmctl() function is an interface to the unix DBM API: $dbmctl(OPEN type filename) Open a DBM file for read and write access. $dbmctl(OPEN_READ type filename) Open a DBM file for read-only access. $dbmctl(CLOSE refnum) Close a previously opened DBM file $dbmctl(ADD refnum "key" data) Insert a new key/data pair. Fail if key already exists. $dbmctl(CHANGE refnum "key" data) If key already exists, change its data. If it doesn't exist, add it. $dbmctl(DELETE refnum "key") Remove a key/data pair $dbmctl(READ refnum "key") Return the data for a key. $dbmctl(NEXT_KEY refnum start-over) Return the next key in the database $dbmctl(ALL_KEYS refnum) Return all keys -- could be huge! could take a long time! $dbmctl(ERROR refnum) Return the errno for the last error. "Type" must always be "STD" for now. Reserved for future expansion. "Filename" must be a filename that doesn't include the ".db" extension! This is a requirement of the DBM api, and not an epic thing. "Refnum" is the integer value returned by OPEN or OPEN_READ "Key" is a hash table key value "Data" is a hash table data value "Start-over" is 1 if you want to fetch the first key in the table, and is 0 if you want to fetch the next key. You must call this with 1 before you call it with 0, according to the API. ALL_KEYS does a "start-over" and you need to do another "start-over" after using it. while INSTALL says: o On Linux, you _*-MUST-*_ install your system's "ncurses-devel" package or you won't be able to build epic. You should install your system's "gdbm-devel" package or you won't have access to $dbmctl() (hash tables) What are your thoughts? the egrep result is just this: ng0@shadowwalker ~/re-src/epic5-2.0.1$ egrep -nr "gdbm" UPDATES:2660: is not compatable with ndbm or gdbm. INSTALL:31: "gdbm-devel" package or you won't have access to $dbmctl() (hash tables) drop gdbm support? patch it in? make it propagated-input?