* bug#22970: guix edit mutt -- not working
2016-03-11 10:48 ` Alex Kost
@ 2016-03-11 11:21 ` Jean Louis
2016-03-11 11:21 ` Jean Louis
` (2 subsequent siblings)
3 siblings, 0 replies; 17+ messages in thread
From: Jean Louis @ 2016-03-11 11:21 UTC (permalink / raw)
To: Alex Kost; +Cc: guix-devel, 22970-done, help-guix
Hello Alex,
Thank you much. That looks like a solution that is valuable, and I would
like to see that in future documentation.
The info documentation and guix package --help now provide the option to
read the file and evaluate from file, and I guess that this solution you
provided is better for future:
- people can learn Guile, scheme and programming
- every user can modify the package.scm according to the needs
I will copy this to guix-devel
Louis
On Fri, Mar 11, 2016 at 01:48:39PM +0300, Alex Kost wrote:
>
> > Hello Andreas,
> >
> > I have now 2 files in gnu/guix/packages/*.scm, for mutt and postgresql:
> > and now I get each time on running guix, following:
> >
> > guix package: warning: failed to load '(databases)':
> > ERROR: no code for module (databases)
> > guix package: warning: failed to load '(mutt)':
> > ERROR: no code for module (mutt)
> >
> > because 2 files are: databases.scm and mutt.scm
> >
> > I have already installed mutt, with changes, and it works. On the end of
> > file there is word "mutt". Similar for PostgreSQL, only it did not yet
> > compile.
> >
> > Now I get a feeling, if I have 20 files to change or adapt to my system,
> > I will get 20 warnings by each run of guix package manager.
> >
> > Somehow it does not feel right.
> >
> > It would be more logical to have GUIX_PACKAGE_PATH plus one separate
> > file where some modified or user related packages are listed, instead of
> > having the package name on the end of *.scm file.
>
> I agree, using GUIX_PACKAGE_PATH is such a nice way to keep your own
> packages. I don't understand why Andreas recommended to use "guix
> package -f". I think it is suitable to build some development
> "guix.scm" file (not related, but see ¹). But for user packages, I
> think keeping them in GUIX_PACKAGE_PATH directories is a much better
> solution.
>
> I also don't recommend to use the same /gnu/packages/*.scm structure, as
> there may be problems with this. For example, you copied
> /gnu/packages/databases.scm to your GUIX_PACKAGE_PATH dir and modified
> some package in it. Then you have to follow the changes in this file
> made in Guix, and update your local databases.scm accordingly all the
> time.
>
> So if you want to keep all your packages in a single file, you can make
> "<some-dir>/my-guix-packages.scm", add <some-dir> to GUIX_PACKAGE_PATH,
> and that's it! This "my-guix-packages.scm" file will look like this:
>
> (define-module (my-guix-packages)
> #:use-module (guix packages)
> #:use-module (guix download)
> #:use-module (guix utils)
> #:use-module (gnu packages mail))
>
> (define-public my-mutt
> (package
> (inherit mutt)
> (name "my-mutt")
> (arguments
> (substitute-keyword-arguments (package-arguments mutt)
> ((#:configure-flags cf)
> `(cons "--enable-hcache" ,cf))))
> (synopsis (string-append (package-synopsis mutt)
> " (configured with --enable-hcache)"))))
>
> And all guix commands will find packages in this file, for example you
> can do: "guix package -i my-mutt". Try it!
>
> ¹ http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00419.html
>
> --
> Alex
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: bug#22970: guix edit mutt -- not working
2016-03-11 10:48 ` Alex Kost
2016-03-11 11:21 ` Jean Louis
@ 2016-03-11 11:21 ` Jean Louis
2016-03-11 18:48 ` Jean Louis
2016-03-13 10:47 ` Jean Louis
2016-03-13 10:47 ` Jean Louis
3 siblings, 1 reply; 17+ messages in thread
From: Jean Louis @ 2016-03-11 11:21 UTC (permalink / raw)
To: Alex Kost; +Cc: guix-devel, 22970-done, help-guix
Hello Alex,
Thank you much. That looks like a solution that is valuable, and I would
like to see that in future documentation.
The info documentation and guix package --help now provide the option to
read the file and evaluate from file, and I guess that this solution you
provided is better for future:
- people can learn Guile, scheme and programming
- every user can modify the package.scm according to the needs
I will copy this to guix-devel
Louis
On Fri, Mar 11, 2016 at 01:48:39PM +0300, Alex Kost wrote:
>
> > Hello Andreas,
> >
> > I have now 2 files in gnu/guix/packages/*.scm, for mutt and postgresql:
> > and now I get each time on running guix, following:
> >
> > guix package: warning: failed to load '(databases)':
> > ERROR: no code for module (databases)
> > guix package: warning: failed to load '(mutt)':
> > ERROR: no code for module (mutt)
> >
> > because 2 files are: databases.scm and mutt.scm
> >
> > I have already installed mutt, with changes, and it works. On the end of
> > file there is word "mutt". Similar for PostgreSQL, only it did not yet
> > compile.
> >
> > Now I get a feeling, if I have 20 files to change or adapt to my system,
> > I will get 20 warnings by each run of guix package manager.
> >
> > Somehow it does not feel right.
> >
> > It would be more logical to have GUIX_PACKAGE_PATH plus one separate
> > file where some modified or user related packages are listed, instead of
> > having the package name on the end of *.scm file.
>
> I agree, using GUIX_PACKAGE_PATH is such a nice way to keep your own
> packages. I don't understand why Andreas recommended to use "guix
> package -f". I think it is suitable to build some development
> "guix.scm" file (not related, but see ¹). But for user packages, I
> think keeping them in GUIX_PACKAGE_PATH directories is a much better
> solution.
>
> I also don't recommend to use the same /gnu/packages/*.scm structure, as
> there may be problems with this. For example, you copied
> /gnu/packages/databases.scm to your GUIX_PACKAGE_PATH dir and modified
> some package in it. Then you have to follow the changes in this file
> made in Guix, and update your local databases.scm accordingly all the
> time.
>
> So if you want to keep all your packages in a single file, you can make
> "<some-dir>/my-guix-packages.scm", add <some-dir> to GUIX_PACKAGE_PATH,
> and that's it! This "my-guix-packages.scm" file will look like this:
>
> (define-module (my-guix-packages)
> #:use-module (guix packages)
> #:use-module (guix download)
> #:use-module (guix utils)
> #:use-module (gnu packages mail))
>
> (define-public my-mutt
> (package
> (inherit mutt)
> (name "my-mutt")
> (arguments
> (substitute-keyword-arguments (package-arguments mutt)
> ((#:configure-flags cf)
> `(cons "--enable-hcache" ,cf))))
> (synopsis (string-append (package-synopsis mutt)
> " (configured with --enable-hcache)"))))
>
> And all guix commands will find packages in this file, for example you
> can do: "guix package -i my-mutt". Try it!
>
> ¹ http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00419.html
>
> --
> Alex
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: bug#22970: guix edit mutt -- not working
2016-03-11 11:21 ` Jean Louis
@ 2016-03-11 18:48 ` Jean Louis
2016-03-12 8:13 ` Alex Kost
0 siblings, 1 reply; 17+ messages in thread
From: Jean Louis @ 2016-03-11 18:48 UTC (permalink / raw)
To: Alex Kost, guix-devel, help-guix
Hello Alex,
I got your mutt file, for my-guix-packages, but now I see I
need to learn Guile commands, I will do this somewhat later
when I have working system. Please help me until then, as
your style to make a modified package is excellent for me.
I guess you forgot the dependency gdbm, where to put it?
(define-module (my-guix-packages)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix utils)
#:use-module (gnu packages mail))
(define-public my-mutt
(package
(inherit mutt)
(name "my-mutt")
(arguments
(substitute-keyword-arguments (package-arguments mutt)
((#:configure-flags cf)
`(cons "--enable-hcache" ,cf))))
(synopsis (string-append (package-synopsis mutt)
" (configured with --enable-hcache)"))))
On Fri, Mar 11, 2016 at 12:21:09PM +0100, Jean Louis wrote:
> Hello Alex,
>
> Thank you much. That looks like a solution that is valuable, and I would
> like to see that in future documentation.
>
> The info documentation and guix package --help now provide the option to
> read the file and evaluate from file, and I guess that this solution you
> provided is better for future:
>
> - people can learn Guile, scheme and programming
> - every user can modify the package.scm according to the needs
>
> I will copy this to guix-devel
>
> Louis
>
> On Fri, Mar 11, 2016 at 01:48:39PM +0300, Alex Kost wrote:
> >
> > > Hello Andreas,
> > >
> > > I have now 2 files in gnu/guix/packages/*.scm, for mutt and postgresql:
> > > and now I get each time on running guix, following:
> > >
> > > guix package: warning: failed to load '(databases)':
> > > ERROR: no code for module (databases)
> > > guix package: warning: failed to load '(mutt)':
> > > ERROR: no code for module (mutt)
> > >
> > > because 2 files are: databases.scm and mutt.scm
> > >
> > > I have already installed mutt, with changes, and it works. On the end of
> > > file there is word "mutt". Similar for PostgreSQL, only it did not yet
> > > compile.
> > >
> > > Now I get a feeling, if I have 20 files to change or adapt to my system,
> > > I will get 20 warnings by each run of guix package manager.
> > >
> > > Somehow it does not feel right.
> > >
> > > It would be more logical to have GUIX_PACKAGE_PATH plus one separate
> > > file where some modified or user related packages are listed, instead of
> > > having the package name on the end of *.scm file.
> >
> > I agree, using GUIX_PACKAGE_PATH is such a nice way to keep your own
> > packages. I don't understand why Andreas recommended to use "guix
> > package -f". I think it is suitable to build some development
> > "guix.scm" file (not related, but see ¹). But for user packages, I
> > think keeping them in GUIX_PACKAGE_PATH directories is a much better
> > solution.
> >
> > I also don't recommend to use the same /gnu/packages/*.scm structure, as
> > there may be problems with this. For example, you copied
> > /gnu/packages/databases.scm to your GUIX_PACKAGE_PATH dir and modified
> > some package in it. Then you have to follow the changes in this file
> > made in Guix, and update your local databases.scm accordingly all the
> > time.
> >
> > So if you want to keep all your packages in a single file, you can make
> > "<some-dir>/my-guix-packages.scm", add <some-dir> to GUIX_PACKAGE_PATH,
> > and that's it! This "my-guix-packages.scm" file will look like this:
> >
>
> > (define-module (my-guix-packages)
> > #:use-module (guix packages)
> > #:use-module (guix download)
> > #:use-module (guix utils)
> > #:use-module (gnu packages mail))
> >
> > (define-public my-mutt
> > (package
> > (inherit mutt)
> > (name "my-mutt")
> > (arguments
> > (substitute-keyword-arguments (package-arguments mutt)
> > ((#:configure-flags cf)
> > `(cons "--enable-hcache" ,cf))))
> > (synopsis (string-append (package-synopsis mutt)
> > " (configured with --enable-hcache)"))))
>
> >
> > And all guix commands will find packages in this file, for example you
> > can do: "guix package -i my-mutt". Try it!
> >
> > ¹ http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00419.html
> >
> > --
> > Alex
>
>
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: bug#22970: guix edit mutt -- not working
2016-03-11 18:48 ` Jean Louis
@ 2016-03-12 8:13 ` Alex Kost
2016-03-12 9:35 ` Jean Louis
0 siblings, 1 reply; 17+ messages in thread
From: Alex Kost @ 2016-03-12 8:13 UTC (permalink / raw)
To: Jean Louis; +Cc: help-guix
Jean Louis (2016-03-11 21:48 +0300) wrote:
> Hello Alex,
>
> I got your mutt file, for my-guix-packages, but now I see I
> need to learn Guile commands, I will do this somewhat later
> when I have working system. Please help me until then, as
> your style to make a modified package is excellent for me.
It is not my style :-) Package inheriting is a great feature of Guix,
it's just not documented (though "inherit" word can be met in the
manual several times).
> I guess you forgot the dependency gdbm, where to put it?
Sorry about that, but actually I didn't forget about it because I didn't
know it is needed (I've never used mutt, and I know nothing about it or
gdbm). Do you mean this dependency is needed because of --enable-hcache
option?
If so, then it can be added by adding gdbm to the inputs of my-mutt
package (see below). Also (my-guix-packages) module need to use (gnu
packages databases), because gdbm package comes from this module.
I hope the following comments clarify how my-mutt package is made:
> (define-module (my-guix-packages)
> #:use-module (guix packages)
> #:use-module (guix download)
> #:use-module (guix utils)
Don't forget to add this line here:
#:use-module (gnu packages databases)
> #:use-module (gnu packages mail))
>
> (define-public my-mutt
> (package
> (inherit mutt)
Inheriting means: those package fields that are not specified, will be
taken from mutt package. For example, the package name is changed (to
"my-mutt"), but the version is not, so it will be inherited. This means
when the version of mutt package will be updated, the version of my-mutt
package will automatically be updated too.
> (name "my-mutt")
> (arguments
> (substitute-keyword-arguments (package-arguments mutt)
> ((#:configure-flags cf)
> `(cons "--enable-hcache" ,cf))))
This means: take mutt's arguments and do some substitutions there. In
particular, we modify configure-flags by adding "--enable-hcache" to
them.
To add gdbm dependency, add the following line to the package
definition:
(inputs (cons `("gdbm" ,gdbm) (package-inputs mutt)))
> (synopsis (string-append (package-synopsis mutt)
> " (configured with --enable-hcache)"))))
Modifying synopsis is not needed, it is just what you see in the output
of "guix package --show=my-mutt" command.
--
Alex
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: bug#22970: guix edit mutt -- not working
2016-03-12 8:13 ` Alex Kost
@ 2016-03-12 9:35 ` Jean Louis
0 siblings, 0 replies; 17+ messages in thread
From: Jean Louis @ 2016-03-12 9:35 UTC (permalink / raw)
To: Alex Kost; +Cc: help-guix
Hello Alex,
Thank you much, it is working like this very good:
guix package -i my-mutt
by using this file: my-guix-packages.scm in ~/gnu/guix/packages:
(define-module (my-guix-packages)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix utils)
#:use-module (gnu packages mail)
#:use-module (gnu packages databases))
(define-public my-mutt
(package
(inherit mutt)
(name "my-mutt")
(inputs (cons `("gdbm" ,gdbm) (package-inputs mutt)))
(arguments
(substitute-keyword-arguments (package-arguments mutt)
((#:configure-flags cf)
`(cons "--enable-hcache" ,cf))))
(synopsis (string-append (package-synopsis mutt)
" (configured with --enable-hcache)"))))
On Sat, Mar 12, 2016 at 11:13:06AM +0300, Alex Kost wrote:
> Jean Louis (2016-03-11 21:48 +0300) wrote:
>
> > Hello Alex,
> >
> > I got your mutt file, for my-guix-packages, but now I see I
> > need to learn Guile commands, I will do this somewhat later
> > when I have working system. Please help me until then, as
> > your style to make a modified package is excellent for me.
>
> It is not my style :-) Package inheriting is a great feature of Guix,
> it's just not documented (though "inherit" word can be met in the
> manual several times).
>
> > I guess you forgot the dependency gdbm, where to put it?
>
> Sorry about that, but actually I didn't forget about it because I didn't
> know it is needed (I've never used mutt, and I know nothing about it or
> gdbm). Do you mean this dependency is needed because of --enable-hcache
> option?
>
> If so, then it can be added by adding gdbm to the inputs of my-mutt
> package (see below). Also (my-guix-packages) module need to use (gnu
> packages databases), because gdbm package comes from this module.
>
> I hope the following comments clarify how my-mutt package is made:
>
> > (define-module (my-guix-packages)
> > #:use-module (guix packages)
> > #:use-module (guix download)
> > #:use-module (guix utils)
>
> Don't forget to add this line here:
>
> #:use-module (gnu packages databases)
>
> > #:use-module (gnu packages mail))
> >
> > (define-public my-mutt
> > (package
> > (inherit mutt)
>
> Inheriting means: those package fields that are not specified, will be
> taken from mutt package. For example, the package name is changed (to
> "my-mutt"), but the version is not, so it will be inherited. This means
> when the version of mutt package will be updated, the version of my-mutt
> package will automatically be updated too.
>
> > (name "my-mutt")
> > (arguments
> > (substitute-keyword-arguments (package-arguments mutt)
> > ((#:configure-flags cf)
> > `(cons "--enable-hcache" ,cf))))
>
> This means: take mutt's arguments and do some substitutions there. In
> particular, we modify configure-flags by adding "--enable-hcache" to
> them.
>
> To add gdbm dependency, add the following line to the package
> definition:
>
> (inputs (cons `("gdbm" ,gdbm) (package-inputs mutt)))
>
> > (synopsis (string-append (package-synopsis mutt)
> > " (configured with --enable-hcache)"))))
>
> Modifying synopsis is not needed, it is just what you see in the output
> of "guix package --show=my-mutt" command.
>
> --
> Alex
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: bug#22970: guix edit mutt -- not working
2016-03-11 10:48 ` Alex Kost
2016-03-11 11:21 ` Jean Louis
2016-03-11 11:21 ` Jean Louis
@ 2016-03-13 10:47 ` Jean Louis
2016-03-13 11:01 ` Efraim Flashner
2016-03-13 11:01 ` Efraim Flashner
2016-03-13 10:47 ` Jean Louis
3 siblings, 2 replies; 17+ messages in thread
From: Jean Louis @ 2016-03-13 10:47 UTC (permalink / raw)
To: Alex Kost; +Cc: 22970-done, help-guix
Hello Alex,
I have followed your recommendation, and mutt is working modified.
However, now I get useless error messages. And I can imagine, if I have
modified 10 packages, that I would get 10x that much of error messages.
warning: collision encountered:
/gnu/store/xxzgai9khdfhk70p06vs6akrarzph9r2-my-mutt-1.5.24/share/man/man1/mutt.1.gz
/gnu/store/vh7ghk1xlrn4crshqrdygp5573aipk44-mutt-1.5.24/share/man/man1/mutt.1.gz
warning: arbitrarily choosing
/gnu/store/xxzgai9khdfhk70p06vs6akrarzph9r2-my-mutt-1.5.24/share/man/man5/muttrc.5.gz
warning: collision encountered:
/gnu/store/xxzgai9khdfhk70p06vs6akrarzph9r2-my-mutt-1.5.24/bin/mutt
/gnu/store/vh7ghk1xlrn4crshqrdygp5573aipk44-mutt-1.5.24/bin/mutt
warning: arbitrarily choosing
/gnu/store/xxzgai9khdfhk70p06vs6akrarzph9r2-my-mutt-1.5.24/bin/mutt
warning: collision encountered:
/gnu/store/xxzgai9khdfhk70p06vs6akrarzph9r2-my-mutt-1.5.24/bin/flea
/gnu/store/vh7ghk1xlrn4crshqrdygp5573aipk44-mutt-1.5.24/bin/flea
Let me stop with copy and paste, because there are many more lines like
that.
Maybe it is design of guix package manager, maybe it is my fault.
I understood that I can change definitions for guix packages, and such
would be installed. There shall be no warnings like this.
I do intend to make about 5-10 packages for system I use, and I worry
about future warning messages, it will be like 3-4 screens, making guix
package manager not user-friendly. I would not see real errors.
On Fri, Mar 11, 2016 at 01:48:39PM +0300, Alex Kost wrote:
> Jean Louis (2016-03-10 22:34 +0300) wrote:
>
> > Hello Andreas,
> >
> > I have now 2 files in gnu/guix/packages/*.scm, for mutt and postgresql:
> > and now I get each time on running guix, following:
> >
> > guix package: warning: failed to load '(databases)':
> > ERROR: no code for module (databases)
> > guix package: warning: failed to load '(mutt)':
> > ERROR: no code for module (mutt)
> >
> > because 2 files are: databases.scm and mutt.scm
> >
> > I have already installed mutt, with changes, and it works. On the end of
> > file there is word "mutt". Similar for PostgreSQL, only it did not yet
> > compile.
> >
> > Now I get a feeling, if I have 20 files to change or adapt to my system,
> > I will get 20 warnings by each run of guix package manager.
> >
> > Somehow it does not feel right.
> >
> > It would be more logical to have GUIX_PACKAGE_PATH plus one separate
> > file where some modified or user related packages are listed, instead of
> > having the package name on the end of *.scm file.
>
> I agree, using GUIX_PACKAGE_PATH is such a nice way to keep your own
> packages. I don't understand why Andreas recommended to use "guix
> package -f". I think it is suitable to build some development
> "guix.scm" file (not related, but see ¹). But for user packages, I
> think keeping them in GUIX_PACKAGE_PATH directories is a much better
> solution.
>
> I also don't recommend to use the same /gnu/packages/*.scm structure, as
> there may be problems with this. For example, you copied
> /gnu/packages/databases.scm to your GUIX_PACKAGE_PATH dir and modified
> some package in it. Then you have to follow the changes in this file
> made in Guix, and update your local databases.scm accordingly all the
> time.
>
> So if you want to keep all your packages in a single file, you can make
> "<some-dir>/my-guix-packages.scm", add <some-dir> to GUIX_PACKAGE_PATH,
> and that's it! This "my-guix-packages.scm" file will look like this:
>
> (define-module (my-guix-packages)
> #:use-module (guix packages)
> #:use-module (guix download)
> #:use-module (guix utils)
> #:use-module (gnu packages mail))
>
> (define-public my-mutt
> (package
> (inherit mutt)
> (name "my-mutt")
> (arguments
> (substitute-keyword-arguments (package-arguments mutt)
> ((#:configure-flags cf)
> `(cons "--enable-hcache" ,cf))))
> (synopsis (string-append (package-synopsis mutt)
> " (configured with --enable-hcache)"))))
>
> And all guix commands will find packages in this file, for example you
> can do: "guix package -i my-mutt". Try it!
^ permalink raw reply [flat|nested] 17+ messages in thread
* bug#22970: guix edit mutt -- not working
2016-03-13 10:47 ` Jean Louis
@ 2016-03-13 11:01 ` Efraim Flashner
2016-03-13 11:01 ` Efraim Flashner
1 sibling, 0 replies; 17+ messages in thread
From: Efraim Flashner @ 2016-03-13 11:01 UTC (permalink / raw)
To: Jean Louis; +Cc: 22970-done, Alex Kost, help-guix
[-- Attachment #1: Type: text/plain, Size: 771 bytes --]
On Sun, 13 Mar 2016 11:47:04 +0100
Jean Louis <guix@rcdrun.com> wrote:
> Hello Alex,
>
> I have followed your recommendation, and mutt is working modified.
> However, now I get useless error messages. And I can imagine, if I have
> modified 10 packages, that I would get 10x that much of error messages.
>
> warning: collision encountered:
> /gnu/store/xxzgai9khdfhk70p06vs6akrarzph9r2-my-mutt-1.5.24/bin/mutt
> /gnu/store/vh7ghk1xlrn4crshqrdygp5573aipk44-mutt-1.5.24/bin/mutt
>
Now that you have my-mutt installed you can remove mutt
--
Efraim Flashner <efraim@flashner.co.il> אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: bug#22970: guix edit mutt -- not working
2016-03-13 10:47 ` Jean Louis
2016-03-13 11:01 ` Efraim Flashner
@ 2016-03-13 11:01 ` Efraim Flashner
1 sibling, 0 replies; 17+ messages in thread
From: Efraim Flashner @ 2016-03-13 11:01 UTC (permalink / raw)
To: Jean Louis; +Cc: 22970-done, Alex Kost, help-guix
[-- Attachment #1: Type: text/plain, Size: 771 bytes --]
On Sun, 13 Mar 2016 11:47:04 +0100
Jean Louis <guix@rcdrun.com> wrote:
> Hello Alex,
>
> I have followed your recommendation, and mutt is working modified.
> However, now I get useless error messages. And I can imagine, if I have
> modified 10 packages, that I would get 10x that much of error messages.
>
> warning: collision encountered:
> /gnu/store/xxzgai9khdfhk70p06vs6akrarzph9r2-my-mutt-1.5.24/bin/mutt
> /gnu/store/vh7ghk1xlrn4crshqrdygp5573aipk44-mutt-1.5.24/bin/mutt
>
Now that you have my-mutt installed you can remove mutt
--
Efraim Flashner <efraim@flashner.co.il> אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 17+ messages in thread
* bug#22970: guix edit mutt -- not working
2016-03-11 10:48 ` Alex Kost
` (2 preceding siblings ...)
2016-03-13 10:47 ` Jean Louis
@ 2016-03-13 10:47 ` Jean Louis
3 siblings, 0 replies; 17+ messages in thread
From: Jean Louis @ 2016-03-13 10:47 UTC (permalink / raw)
To: Alex Kost; +Cc: 22970-done, help-guix, Jean Louis
Hello Alex,
I have followed your recommendation, and mutt is working modified.
However, now I get useless error messages. And I can imagine, if I have
modified 10 packages, that I would get 10x that much of error messages.
warning: collision encountered:
/gnu/store/xxzgai9khdfhk70p06vs6akrarzph9r2-my-mutt-1.5.24/share/man/man1/mutt.1.gz
/gnu/store/vh7ghk1xlrn4crshqrdygp5573aipk44-mutt-1.5.24/share/man/man1/mutt.1.gz
warning: arbitrarily choosing
/gnu/store/xxzgai9khdfhk70p06vs6akrarzph9r2-my-mutt-1.5.24/share/man/man5/muttrc.5.gz
warning: collision encountered:
/gnu/store/xxzgai9khdfhk70p06vs6akrarzph9r2-my-mutt-1.5.24/bin/mutt
/gnu/store/vh7ghk1xlrn4crshqrdygp5573aipk44-mutt-1.5.24/bin/mutt
warning: arbitrarily choosing
/gnu/store/xxzgai9khdfhk70p06vs6akrarzph9r2-my-mutt-1.5.24/bin/mutt
warning: collision encountered:
/gnu/store/xxzgai9khdfhk70p06vs6akrarzph9r2-my-mutt-1.5.24/bin/flea
/gnu/store/vh7ghk1xlrn4crshqrdygp5573aipk44-mutt-1.5.24/bin/flea
Let me stop with copy and paste, because there are many more lines like
that.
Maybe it is design of guix package manager, maybe it is my fault.
I understood that I can change definitions for guix packages, and such
would be installed. There shall be no warnings like this.
I do intend to make about 5-10 packages for system I use, and I worry
about future warning messages, it will be like 3-4 screens, making guix
package manager not user-friendly. I would not see real errors.
On Fri, Mar 11, 2016 at 01:48:39PM +0300, Alex Kost wrote:
> Jean Louis (2016-03-10 22:34 +0300) wrote:
>
> > Hello Andreas,
> >
> > I have now 2 files in gnu/guix/packages/*.scm, for mutt and postgresql:
> > and now I get each time on running guix, following:
> >
> > guix package: warning: failed to load '(databases)':
> > ERROR: no code for module (databases)
> > guix package: warning: failed to load '(mutt)':
> > ERROR: no code for module (mutt)
> >
> > because 2 files are: databases.scm and mutt.scm
> >
> > I have already installed mutt, with changes, and it works. On the end of
> > file there is word "mutt". Similar for PostgreSQL, only it did not yet
> > compile.
> >
> > Now I get a feeling, if I have 20 files to change or adapt to my system,
> > I will get 20 warnings by each run of guix package manager.
> >
> > Somehow it does not feel right.
> >
> > It would be more logical to have GUIX_PACKAGE_PATH plus one separate
> > file where some modified or user related packages are listed, instead of
> > having the package name on the end of *.scm file.
>
> I agree, using GUIX_PACKAGE_PATH is such a nice way to keep your own
> packages. I don't understand why Andreas recommended to use "guix
> package -f". I think it is suitable to build some development
> "guix.scm" file (not related, but see ¹). But for user packages, I
> think keeping them in GUIX_PACKAGE_PATH directories is a much better
> solution.
>
> I also don't recommend to use the same /gnu/packages/*.scm structure, as
> there may be problems with this. For example, you copied
> /gnu/packages/databases.scm to your GUIX_PACKAGE_PATH dir and modified
> some package in it. Then you have to follow the changes in this file
> made in Guix, and update your local databases.scm accordingly all the
> time.
>
> So if you want to keep all your packages in a single file, you can make
> "<some-dir>/my-guix-packages.scm", add <some-dir> to GUIX_PACKAGE_PATH,
> and that's it! This "my-guix-packages.scm" file will look like this:
>
> (define-module (my-guix-packages)
> #:use-module (guix packages)
> #:use-module (guix download)
> #:use-module (guix utils)
> #:use-module (gnu packages mail))
>
> (define-public my-mutt
> (package
> (inherit mutt)
> (name "my-mutt")
> (arguments
> (substitute-keyword-arguments (package-arguments mutt)
> ((#:configure-flags cf)
> `(cons "--enable-hcache" ,cf))))
> (synopsis (string-append (package-synopsis mutt)
> " (configured with --enable-hcache)"))))
>
> And all guix commands will find packages in this file, for example you
> can do: "guix package -i my-mutt". Try it!
^ permalink raw reply [flat|nested] 17+ messages in thread