guix: build-system: gnu: Avoid warnings from "libtool finish"

  • Done
  • quality assurance status badge
Details
2 participants
  • Dave Love
  • Ludovic Courtès
Owner
unassigned
Submitted by
Dave Love
Severity
normal
D
D
Dave Love wrote on 27 Jul 2017 16:40
(address . guix-patches@gnu.org)
874ltyhrj2.fsf@i-ulialbion.it.manchester.ac.uk
The "ldconfig not found" warnings confused me, and caused a bug report
previously.
From d6f42badc39679dd36ea8f582140a7d63316d101 Mon Sep 17 00:00:00 2001
From: Dave Love <fx@gnu.org>
Date: Thu, 27 Jul 2017 15:35:53 +0100
Subject: [PATCH] guix: build-system: gnu: Avoid warnings from "libtool
finish".

* guix/build/gnu-build-system.scm (configure): Avoid warnings from
libtool invoking ldconfig.
---
guix/build/gnu-build-system.scm | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)

Toggle diff (25 lines)
diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm
index 1786e2e3c..508699497 100644
--- a/guix/build/gnu-build-system.scm
+++ b/guix/build/gnu-build-system.scm
@@ -271,9 +271,15 @@ makefiles."
;; Call `configure' with a relative path. Otherwise, GCC's build system
;; (for instance) records absolute source file names, which typically
;; contain the hash part of the `.drv' file, leading to a reference leak.
- (zero? (apply system* bash
- (string-append srcdir "/configure")
- flags))))
+ (and (zero? (apply system* bash
+ (string-append srcdir "/configure")
+ flags))
+ ;; Avoid warnings about from "libtool finish" about not finding
+ ;; ldconfig.
+ (if (file-exists? "libtool")
+ (begin (substitute* "libtool" (("ldconfig") ":"))
+ #t)
+ #t))))
(define* (build #:key (make-flags '()) (parallel-build? #t)
#:allow-other-keys)
--
2.11.0
L
L
Ludovic Courtès wrote on 31 Jul 2017 17:28
(name . Dave Love)(address . fx@gnu.org)(address . 27848@debbugs.gnu.org)
87k22o39s8.fsf@gnu.org
Dave Love <fx@gnu.org> skribis:

Toggle quote (20 lines)
> --- a/guix/build/gnu-build-system.scm
> +++ b/guix/build/gnu-build-system.scm
> @@ -271,9 +271,15 @@ makefiles."
> ;; Call `configure' with a relative path. Otherwise, GCC's build system
> ;; (for instance) records absolute source file names, which typically
> ;; contain the hash part of the `.drv' file, leading to a reference leak.
> - (zero? (apply system* bash
> - (string-append srcdir "/configure")
> - flags))))
> + (and (zero? (apply system* bash
> + (string-append srcdir "/configure")
> + flags))
> + ;; Avoid warnings about from "libtool finish" about not finding
> + ;; ldconfig.
> + (if (file-exists? "libtool")
> + (begin (substitute* "libtool" (("ldconfig") ":"))
> + #t)
> + #t))))
>

I’m not too keen on this approach, in large part because I’ve got used
to the “ldconfig not found” messages, but also because a simple change
like this can create more problems than what it solves: packages where
the “libtool” script lives in a different directory, packages where
“libtool” is a different thing, packages where it’s read-only or where
it’s a directory, etc.

Since this is a rebuild-the-world change, we have to make sure it’s
really worth it.

WDYT?

Thanks,
Ludo’.
D
D
Dave Love wrote on 31 Jul 2017 20:17
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 27848@debbugs.gnu.org)
87k22obhdf.fsf@i-ulialbion.it.manchester.ac.uk
Ludovic Courtès <ludo@gnu.org> writes:

Toggle quote (3 lines)
> I’m not too keen on this approach, in large part because I’ve got used
> to the “ldconfig not found” messages,

It's OK if you know, but I assume it's common for newbies to see it and
waste time, as at least two of us did.

Toggle quote (6 lines)
> but also because a simple change
> like this can create more problems than what it solves: packages where
> the “libtool” script lives in a different directory, packages where
> “libtool” is a different thing, packages where it’s read-only or where
> it’s a directory, etc.

OK, but I thought the common case of it at top level was worth fixing.
I guess you could check it's really a libtool script before editing it.

However, is there a good reason not to provide a dummy ldconfig which
does nothing, or prints a message about not doing anything?
L
L
Ludovic Courtès wrote on 31 Jul 2017 21:26
(name . Dave Love)(address . fx@gnu.org)(address . 27848@debbugs.gnu.org)
87k22ol86p.fsf@gnu.org
Dave Love <fx@gnu.org> skribis:

Toggle quote (8 lines)
> Ludovic Courtès <ludo@gnu.org> writes:
>
>> I’m not too keen on this approach, in large part because I’ve got used
>> to the “ldconfig not found” messages,
>
> It's OK if you know, but I assume it's common for newbies to see it and
> waste time, as at least two of us did.

Yeah, I see.

Toggle quote (12 lines)
>> but also because a simple change
>> like this can create more problems than what it solves: packages where
>> the “libtool” script lives in a different directory, packages where
>> “libtool” is a different thing, packages where it’s read-only or where
>> it’s a directory, etc.
>
> OK, but I thought the common case of it at top level was worth fixing.
> I guess you could check it's really a libtool script before editing it.
>
> However, is there a good reason not to provide a dummy ldconfig which
> does nothing, or prints a message about not doing anything?

I’d think it’s safer to just not provide it at all.

Ludo’.
L
L
Ludovic Courtès wrote on 4 Sep 2017 15:26
control message for bug #27848
(address . control@debbugs.gnu.org)
87k21e1to9.fsf@gnu.org
tags 27848 wontfix
close 27848
?