guix-devel
[Top][All Lists]
Advanced

[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?



reply via email to

[Prev in Thread] Current Thread [Next in Thread]