guix-devel
[Top][All Lists]
Advanced

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

[PATCH] gnu: cups: Update to 2.1.3 (was gnu: cups: Update to 2.1.3 - req


From: swedebugia
Subject: [PATCH] gnu: cups: Update to 2.1.3 (was gnu: cups: Update to 2.1.3 - request for help patching Makefiles)
Date: Wed, 24 Feb 2016 19:20:20 +0100

On 2016-02-23 21:00, address@hidden wrote:
On 2016-02-23 16:52, Ricardo Wurmus wrote:
address@hidden writes:

On 2016-02-20 05:57, Leo Famulari wrote:
On Fri, Feb 19, 2016 at 11:18:02PM +0100, address@hidden 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.

No, not yet. :p

I will focus on getting it to compile with the appropriate
configure-flags and afterwards we can collaborate on creating a
service for cups (with a config file).

Patching is necessary because we want cups to write logs and state/run
files to /var/cups and when compiling it fails when trying to create
those directories.

I succeeded in getting it patched and compiling. :)

cupsd still refuses to run for the following reason:
address@hidden /gnu/store/gm397jmdp3jafz6gm5ry6c459dvapcf7-cups-minimal-2.1.3/sbin$ sudo cupsd -t "/gnu/store/qs3xymcsgxa68i8m188261rhxsszx7za-cups-2.1.0/etc/cups/cups-files.conf" contains errors.

Attachment: 0001-gnu-cups-Update-to-2.1.3-and-add-configure-flags-to-.patch
Description: Text Data


reply via email to

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