sionescu / iolib

Common Lisp I/O library
http://common-lisp.net/project/iolib/
MIT License
141 stars 31 forks source link

Fallback for 'newish' libfixposix call lfp_get_environ. #22

Closed VrRm closed 9 years ago

VrRm commented 9 years ago

libfixposix doesn't get updated very often on Debian (ubuntu 14.14 is still on libfixposix.so.0.0.0). Since lfp_get_environ is a relatively new addition, make sure the symbol exits before mapping it to os-environ. Otherwise use the 'old' method.

sionescu commented 9 years ago

You need to use a recent version of libfixposix. If Debian has an older version, try convincing the maintainer to update it

guicho271828 commented 9 years ago

couldn't libfixposix be provided as a part of quicklisp, using ASDF for building C sources? Is there someone using libfixposix for the purpose other than iolib?

sionescu commented 9 years ago

ASDF was not meant for compiling C libraries and it's not a good tool. I'm using libfixposix in private project. To make it easier to install libfixposix, I've created multiple repositories for various Linux distributions. You can find the full list here, and instructions to install on a Debian-based distribution are here.

VrRm commented 9 years ago

Thanks for reviewing the issue. The breakage this causes is significant. I would be reluctant to distribute a package with a dependency on iolib due to the issue, which is a shame because it's a very powerful and convenient library to use. For myself, the better solution was to compile libfixposix myself and copy it locally. I've leaned from bitter experience never to use custom ppa's for libraries because of the unpredictable ways even seemingly innocuous libraries can wreck system dependencies, though, I'm sure there are others who are sophisticated in the ways of Debian package management and can do it safely.

Regarding the compiling of c code during asdf installation, this is something that's done all the time in modern build systems, node.js being a notable example than compile a vast amount of c code for complex systems. Eventually this is something that lisp build systems (inside or outside of asdf) will have to implement, though the infrastructure and best practices for it are definitely not mature in any package that I'm aware of.

guicho271828 commented 9 years ago

@VrRm see asdf-linguist and my hackish proposal at https://github.com/sionescu/libfixposix/pull/6#issuecomment-97512697 .

guicho271828 commented 9 years ago

please. quicklisp is currently the most reliable ecosystem in CL community I suppose. I even think about adding a .deb support for quicklisp.

sionescu commented 9 years ago

@VrRm your experience taught you wrong. Also, node.js - npm more specifically - is a notable example of compiling C code that is totally and utterly fucked up, not something to point to as en example of good practices.