3 ms·
>It's a shame it can't use all of PyPI though. People often have this disappointment about Guix not being some sort of meta-package manager that can use any pa
by davexunit 11y ago
>It's a shame it can't use all of PyPI though.
People often have this disappointment about Guix not being some sort of meta-package manager that can use any package format right off-the-shelf, which I think is caused by a misunderstanding of how the system works. Guix packages describe the precise dependency graph of any piece of software, all the way down to the C compiler's compiler. A package on PyPI, or anywhere else for that matter, does not. For example, Python eggs that build native extensions need certain shared libraries and C header files available on the system before they can be installed, but PyPI has no way of installing those things or otherwise capturing that information in a precise way.
However, us Guix devs can, and should, make it easy for users to take the metadata for a package available in another system such as PyPI and produce, to the best of our ability, a Scheme snippet that gets one most of the way to a working Guix package. We wrote the 'guix import' utility for this purpose. Right now, it can generate Scheme snippets based on packages at PyPI, CPAN, Hackage, ELPA, RubyGems, and CRAN. The user can take the output of the importer, and add the (hopefully few) missing pieces, such as the C library a Python native extension needs.
- riffraff 11y agoIf I import a new package, what is the effort required to submit the new definition into the guix repo? Is that also integrated with the guix command line tool? If not, why not? It would be super neat :)
- davexunit 11y agoRoughly: - Clone the git repo, build Guix, and run the build daemon - Add the Scheme code for the package recipe to the relevant module - Run 'guix build' to make sure it builds and runs - Run 'guix lint' to catch common style issues - Make a commit - Send patch file to our mailing list Full details about contributing can be found here: http://www.gnu.org/software/guix/manual/html_node/Contributing.html#Contributing http://www.gnu.org/software/guix/manual/html_node/Contributi... I welcome you to give packaging a shot. The IRC channel and mailing list are full of nice people that can help you if you struggle with something or encounter a bug.