help-guix
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Import package and generate use-module


From: phodina
Subject: Import package and generate use-module
Date: Sat, 24 Apr 2021 09:26:20 +0000

I'm making a package for octoprint which is imported from PyPI. guix import -r 
octoprint generates the template to build the package.

However, I'm missing the :#use-module ... in order to build the package when I 
add (define-module (python-octoprint). Given the fact there are tens of inputs 
doing it manually seems tedious and writing a script to parse the package 
definition seems like reinventing the wheel as I'm certainly not the first 
person to run into this issue.

So is there a way to automate also this part?

Let me give you context:If I look at Guix package repository 
gnu/packages/python-xyz.scm I see there definitions of packages:

(define-public python-numpy
  (package
    (name "python-numpy")
...

If I have another package that depends on python-numpy I just provide the name 
in e.g. inputs and I don't have to import it with #:use-module within this file.

However, when I run guix import pypi PKG I get package definition and when I 
run guix build -f python-octoprint.scm I get this error:

/tmp/python-octoprint.scm:275:6: In procedure propagated-inputs:
error: python-flask: unbound variable
hint: Did you forget `(use-modules (gnu packages python-web))'?

Of course writing down all the unbound variables by hand is tedious and 
error-prone. And since guix gives a hint is there a way to write the dependency 
into the file?

And the question in general is: When I find out that the program is not 
packaged and I want to write the package definition and then verify it installs 
and runs correctly, what steps should I take?

guix pull pypi PKG > PKG.scm
# Add 'define-module'
??
guix build -f PKG.scm

Note: Doesn't matter if it's python or rust program. I'm interested in the 
workflow

Kind regards
Petr Hodina

Sent with [ProtonMail](https://protonmail.com) Secure Email.

reply via email to

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