* Guix can't build my dummy package definition @ 2020-03-01 12:58 Jérémy Korwin-Zmijowski 2020-03-01 13:09 ` pelzflorian (Florian Pelz) ` (2 more replies) 0 siblings, 3 replies; 6+ messages in thread From: Jérémy Korwin-Zmijowski @ 2020-03-01 12:58 UTC (permalink / raw) To: Guix Help Hey Guixters ! I am experimenting one way to learn how to use Guix for packaging. I've a package dummy definition in /tmp/def.scm: (use-modules (guix packages) (guix build-system emacs) (guix licenses) (guix git-download)) (define-public ac-geiser (package (name "") (version "") (source (origin (uri (git-reference (url "") (commit ""))) (method git-fetch) (sha256 (base32 "")))) (build-system emacs-build-system) (synopsis "") (description "") (license bsd-3) (home-page ""))) Then when I do : ./pre-inst-env guix build -f /tmp/def.scm I get : guix build: error: #<unspecified>: not something we can build What is Guix trying to tell yo me ? I have no clue... Does anybody have one ? Cheers -- Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Guix can't build my dummy package definition 2020-03-01 12:58 Guix can't build my dummy package definition Jérémy Korwin-Zmijowski @ 2020-03-01 13:09 ` pelzflorian (Florian Pelz) 2020-03-01 14:50 ` Julien Lepiller 2020-03-01 16:15 ` Ricardo Wurmus 2 siblings, 0 replies; 6+ messages in thread From: pelzflorian (Florian Pelz) @ 2020-03-01 13:09 UTC (permalink / raw) To: Jérémy Korwin-Zmijowski; +Cc: Guix Help On Sun, Mar 01, 2020 at 01:58:27PM +0100, Jérémy Korwin-Zmijowski wrote: > Hey Guixters ! > > I am experimenting one way to learn how to use Guix for packaging. > Nice to hear. :) > […] > Then when I do : > > ./pre-inst-env guix build -f /tmp/def.scm > > I get : > > guix build: error: #<unspecified>: not something we can build > This seems like what is described at the end of: https://guix.gnu.org/cookbook/en/html_node/GUIX_005fPACKAGE_005fPATH.html#GUIX_005fPACKAGE_005fPATH You would need to add ac-geiser add the end of the file if you want to test it with -f. But maybe also take a look at the other methods described in the Cookbook. Regards, Florian ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Guix can't build my dummy package definition 2020-03-01 12:58 Guix can't build my dummy package definition Jérémy Korwin-Zmijowski 2020-03-01 13:09 ` pelzflorian (Florian Pelz) @ 2020-03-01 14:50 ` Julien Lepiller 2020-03-01 15:49 ` Jérémy Korwin-Zmijowski 2020-03-01 16:15 ` Ricardo Wurmus 2 siblings, 1 reply; 6+ messages in thread From: Julien Lepiller @ 2020-03-01 14:50 UTC (permalink / raw) To: help-guix, Jérémy Korwin-Zmijowski Le 1 mars 2020 07:58:27 GMT-05:00, "Jérémy Korwin-Zmijowski" <jeremy@korwin-zmijowski.fr> a écrit : >Hey Guixters ! > >I am experimenting one way to learn how to use Guix for packaging. > >I've a package dummy definition in /tmp/def.scm: > >(use-modules > (guix packages) > (guix build-system emacs) > (guix licenses) > (guix git-download)) > >(define-public ac-geiser > (package > (name "") > (version "") > (source > (origin > (uri > (git-reference (url "") > (commit ""))) > (method git-fetch) > (sha256 (base32 "")))) > (build-system emacs-build-system) > (synopsis "") > (description "") > (license bsd-3) > (home-page ""))) > >Then when I do : > >./pre-inst-env guix build -f /tmp/def.scm > >I get : > >guix build: error: #<unspecified>: not something we can build > >What is Guix trying to tell yo me ? I have no clue... > >Does anybody have one ? > >Cheers I knew it was going to happen :) That message is indeed not very helpful. Internally, guix evaluates the file and uses its return value (the value the last expression evaluates to). Here, your last expression is a define-public which does not return any value (in other languages, it's called unit or void, in guile it's #<unspecified>). The solution is to make sure your last expression evaluates to a package object. Three solutions: 1. Add a new line on which you put the name of the variable you define, so it evaluates to its content, the package object. 2. Do not wrap the package definition in a define-public, but use package directly, so that it evaluates to a package expression directly. 3. Define your file as a module, and use -L to add it to load path. Then guix will be able to necognise all your packages in that file by their name, instead of only the last one (ex: guix build -L . ac-geiser), although your package has no name yet, so it can't be found by guix that way currently. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Guix can't build my dummy package definition 2020-03-01 14:50 ` Julien Lepiller @ 2020-03-01 15:49 ` Jérémy Korwin-Zmijowski 0 siblings, 0 replies; 6+ messages in thread From: Jérémy Korwin-Zmijowski @ 2020-03-01 15:49 UTC (permalink / raw) To: Julien Lepiller, help-guix Of course !!! I did know about it, I just forget it... Damn brain! Thank you for your quick answers ! So cool. I appreciate the three options you gave Julien. Helpful! I can realize now how much my lack of curioisity cost. Haha awesome feedback for me. Thank you again. Jérémy Le 1 mars 2020 15:50:28 GMT+01:00, Julien Lepiller <julien@lepiller.eu> a écrit : >Le 1 mars 2020 07:58:27 GMT-05:00, "Jérémy Korwin-Zmijowski" ><jeremy@korwin-zmijowski.fr> a écrit : >>Hey Guixters ! >> >>I am experimenting one way to learn how to use Guix for packaging. >> >>I've a package dummy definition in /tmp/def.scm: >> >>(use-modules >> (guix packages) >> (guix build-system emacs) >> (guix licenses) >> (guix git-download)) >> >>(define-public ac-geiser >> (package >> (name "") >> (version "") >> (source >> (origin >> (uri >> (git-reference (url "") >> (commit ""))) >> (method git-fetch) >> (sha256 (base32 "")))) >> (build-system emacs-build-system) >> (synopsis "") >> (description "") >> (license bsd-3) >> (home-page ""))) >> >>Then when I do : >> >>./pre-inst-env guix build -f /tmp/def.scm >> >>I get : >> >>guix build: error: #<unspecified>: not something we can build >> >>What is Guix trying to tell yo me ? I have no clue... >> >>Does anybody have one ? >> >>Cheers > >I knew it was going to happen :) > >That message is indeed not very helpful. Internally, guix evaluates the >file and uses its return value (the value the last expression evaluates >to). Here, your last expression is a define-public which does not >return any value (in other languages, it's called unit or void, in >guile it's #<unspecified>). The solution is to make sure your last >expression evaluates to a package object. Three solutions: > >1. Add a new line on which you put the name of the variable you define, >so it evaluates to its content, the package object. > >2. Do not wrap the package definition in a define-public, but use >package directly, so that it evaluates to a package expression >directly. > >3. Define your file as a module, and use -L to add it to load path. >Then guix will be able to necognise all your packages in that file by >their name, instead of only the last one (ex: guix build -L . >ac-geiser), although your package has no name yet, so it can't be found >by guix that way currently. -- Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Guix can't build my dummy package definition 2020-03-01 12:58 Guix can't build my dummy package definition Jérémy Korwin-Zmijowski 2020-03-01 13:09 ` pelzflorian (Florian Pelz) 2020-03-01 14:50 ` Julien Lepiller @ 2020-03-01 16:15 ` Ricardo Wurmus 2020-03-01 16:25 ` Jérémy Korwin-Zmijowski 2 siblings, 1 reply; 6+ messages in thread From: Ricardo Wurmus @ 2020-03-01 16:15 UTC (permalink / raw) To: Jérémy Korwin-Zmijowski; +Cc: help-guix Hi Jérémy, > I've a package dummy definition in /tmp/def.scm: > > (use-modules > (guix packages) > (guix build-system emacs) > (guix licenses) > (guix git-download)) > > (define-public ac-geiser > (package > (name "") > (version "") > (source > (origin > (uri > (git-reference (url "") > (commit ""))) > (method git-fetch) > (sha256 (base32 "")))) > (build-system emacs-build-system) > (synopsis "") > (description "") > (license bsd-3) > (home-page ""))) > > Then when I do : > > ./pre-inst-env guix build -f /tmp/def.scm > > I get : > > guix build: error: #<unspecified>: not something we can build This is because “define” (or “define-public”) does not return a value. It returns an unspecified value. When using “guix build” with a file then the file must evaluate to a package value. This means it must end with a (package …) expression or the name of a variable that is bound to a package expression. You can fix this by either adding “ac-geiser” to the bottom of the file, or by removing the (define-public ac-geiser …) wrapping around the package expression. -- Ricardo ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Guix can't build my dummy package definition 2020-03-01 16:15 ` Ricardo Wurmus @ 2020-03-01 16:25 ` Jérémy Korwin-Zmijowski 0 siblings, 0 replies; 6+ messages in thread From: Jérémy Korwin-Zmijowski @ 2020-03-01 16:25 UTC (permalink / raw) To: Ricardo Wurmus; +Cc: help-guix Thank you Ricardo! Very clear. I appreciate you help! Jérémy Le 1 mars 2020 17:15:21 GMT+01:00, Ricardo Wurmus <rekado@elephly.net> a écrit : > >Hi Jérémy, > >> I've a package dummy definition in /tmp/def.scm: >> >> (use-modules >> (guix packages) >> (guix build-system emacs) >> (guix licenses) >> (guix git-download)) >> >> (define-public ac-geiser >> (package >> (name "") >> (version "") >> (source >> (origin >> (uri >> (git-reference (url "") >> (commit ""))) >> (method git-fetch) >> (sha256 (base32 "")))) >> (build-system emacs-build-system) >> (synopsis "") >> (description "") >> (license bsd-3) >> (home-page ""))) >> >> Then when I do : >> >> ./pre-inst-env guix build -f /tmp/def.scm >> >> I get : >> >> guix build: error: #<unspecified>: not something we can build > >This is because “define” (or “define-public”) does not return a value. >It returns an unspecified value. > >When using “guix build” with a file then the file must evaluate to a >package value. This means it must end with a (package …) expression or >the name of a variable that is bound to a package expression. > >You can fix this by either adding “ac-geiser” to the bottom of the >file, >or by removing the (define-public ac-geiser …) wrapping around the >package expression. > >-- >Ricardo -- Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté. ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2020-03-01 16:25 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2020-03-01 12:58 Guix can't build my dummy package definition Jérémy Korwin-Zmijowski 2020-03-01 13:09 ` pelzflorian (Florian Pelz) 2020-03-01 14:50 ` Julien Lepiller 2020-03-01 15:49 ` Jérémy Korwin-Zmijowski 2020-03-01 16:15 ` Ricardo Wurmus 2020-03-01 16:25 ` Jérémy Korwin-Zmijowski
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).