[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] gnu: Add epic5.
From: |
ng0 |
Subject: |
Re: [PATCH] gnu: Add epic5. |
Date: |
Mon, 10 Oct 2016 22:03:27 +0000 |
ng0 <address@hidden> writes:
> Leo Famulari <address@hidden> writes:
>
>> On Sun, Oct 09, 2016 at 06:44:11PM +0000, ng0 wrote:
>>> From: ng0 <address@hidden>
>>>
>>> * 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:
address@hidden ~/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?