swedebu...@riseup.net writes: > On 2016-02-20 05:57, Leo Famulari wrote: >> On Fri, Feb 19, 2016 at 11:18:02PM +0100, swedebu...@riseup.net wrote: >>> Hi >>> >>> This patch almost work. >>> >>> I really tried hard understanding what made cups fail after modifying >>> the >>> configure flags and found lines in two makefiles under /notifier:65 >>> and >>> /scheduler:159 to be patched. >> >> I'm not sure what the specific problem is. If you share the error >> messages we may be able to give specific advice. >> >>> >>> How do I best create a patch for those? >> >> This is my approach. There may be a better approach but this does work. >> >> $ tar xf $(./pre-inst-env guix build --source foo) && cd foo >> $ git init && git add --all && git commit -m "Initial import of >> upstream sources" >> $ # make changes >> $ git add --update && git commit && git format-patch HEAD^ >> >> Then, I move the patch into the Guix source tree, add it to the package >> definition and gnu-system.am, and see if it works as expected. > > Thanks. > > I realize that I'm way in over my head in trying to get this > cups-package to work. > > Could somebody mentor me on this one? > > Outstanding issues are: > > 1) understanding whether patching of the makefiles is necessary given > that what we want is it to log to /var/log/cups/? In the case yes I > would like to patch the makefiles.
I haven’t looked at this yet, but usually the directory that’s used for storing logs can be specified at configure time, i.e. by passing an additional configure flag, such as “--localstatedir=/var” or similar. > 2) understanding how to code the package object to put the cups.conf > locally in .guix-profile/etc/cups/cups.conf and if it should be a > symlink to the store or an editable file? By default a package’s files are stored in “$prefix/”, which is the unique directory in “/gnu/store/” for this particular variant of the package. When you *install* a package its contents are linked into a profile, so installing the “cups” package into the default profile would make the configuration file available in “~/.guix-profile/etc/cups/cups.conf” if the file’s location in the store is “/gnu/store/....-cups-.../etc/cups/cups.conf”. As all the store items are immutable, any file in a profile is read-only. In the case of CUPS I think it would be valuable to have it first look for a configuration file somewhere under “/etc/”, which would allow users to create a suitable custom configuration file (e.g. by defining a service providing such file). Only if that file does not exist should CUPS look for its default configuration file in the store (but maybe that’s not necessary at all). Are you familiar with how GuixSD handles services? We would need a service that creates a CUPS configuration file based on a CUPS configuration value. ~~ Ricardo