From mboxrd@z Thu Jan 1 00:00:00 1970 From: ng0 Subject: Re: [PATCH] gnu: Add epic5. Date: Mon, 10 Oct 2016 22:03:27 +0000 Message-ID: <87y41v6evk.fsf@we.make.ritual.n0.is> References: <20161009184411.30748-1-ngillmann@runbox.com> <20161009184411.30748-2-ngillmann@runbox.com> <20161009194814.GA19104@jasmine> <87vax1s0u4.fsf@we.make.ritual.n0.is> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:56498) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1btifb-0004tz-K9 for guix-devel@gnu.org; Mon, 10 Oct 2016 18:03:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1btifW-0003AX-JD for guix-devel@gnu.org; Mon, 10 Oct 2016 18:03:38 -0400 Received: from aibo.runbox.com ([91.220.196.211]:41121) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1btifW-00039a-7K for guix-devel@gnu.org; Mon, 10 Oct 2016 18:03:34 -0400 In-Reply-To: <87vax1s0u4.fsf@we.make.ritual.n0.is> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Leo Famulari Cc: guix-devel@gnu.org ng0 writes: > Leo Famulari writes: > >> On Sun, Oct 09, 2016 at 06:44:11PM +0000, ng0 wrote: >>> From: ng0 >>> >>> * 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?