guix-patches
[Top][All Lists]
Advanced

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

bug#26771: [PATCH] build-system/gnu: Fix compress-documentation phase


From: Maxim Cournoyer
Subject: bug#26771: [PATCH] build-system/gnu: Fix compress-documentation phase
Date: Thu, 04 May 2017 00:53:24 -0700
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)

Hello Guix!

This patch fixes a small defect in compress-documentation phase of our
gnu-build-system. The phase could create dangling manual
page symlinks in the case those were recursive.

One package which exhibited the issue is Gimp; you might have noticed
the `find-files' error message when the manual page database gets
created on a profile generation as a consequence of that.

Here's the Gimp example in some more details:

* The manual pages under share/man/man1 before the documentation is
  compressed:
  
     gimp.1 -> gimp-2.8.1                  
     gimp-2.8.1                            
     gimp-console.1 -> gimp-console-2.8.1  
     gimp-console-2.8.1 -> gimp-2.8.1      
     gimptool-2.0.1

* After the documentation is compressed:

     gimp.1 -> gimp-2.8.1.gz
     gimp-2.8.1.gz
     gimp-console.1 -> gimp-console-2.8.1.gz
     gimp-console-2.8.1 -> gimp-2.8.1.gz
     gimptool-2.0.1.gz

We can see that the gimp-console.1 link now points to an unexisting
file. To correct the problem, a `points-to-symbolic-link?' predicate is
added and its negation is used to filter out the links which shouldn't
be retargetted.

I didn't test this by rebuilding the world; rather, I exercised the
`compress-documentation' function at the REPL, feeding it a copied gimp
derivation output as it appeared before the problematic
compress-documentation phase.

It should be applied to core-updates since it triggers a rebuild of all
the packages using the GNU build system.

Maxim

Attachment: 0001-build-system-gnu-Fix-compress-documentation-phase.patch
Description: Text Data

Attachment: signature.asc
Description: PGP signature


reply via email to

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