Subject: Re: [bug#40485] Acknowledgement (gnu: Update libxfce4ui to 4.15.2.)

From: Danny Milosavljevic <[email-masked]>
Date: Fri, 10 Apr 2020 00:11:57 +0200

Hi,

On Fri, 10 Apr 2020 02:12:42 +0530
Naga Malleswari <[email-masked]> wrote:

>On 09/04/20 3:49 am, Danny Milosavljevic wrote:
>> + (inherit libxfce4ui-1)
>> +    (name "libxfce4ui") ; not necessary but I like it for no reason
>> +    (version "4.15.2")
>> +    (source (origin ; necessary block!!  

>I used the same. I added name block. It worked !!!

>1) If name block is removed in the latest [libxfce4ui package], it's building the
>older version. Why??

If I remove (name "libxfce4ui") from the latest libxfce4ui package, and then
invoke

  make -j5 SUBDIRS=

then I get an error

  error: name: unbound variable.

from the compilation of gnu/packages/xfce.scm.
So that's why the latest libxfce4ui package would never be loaded into guix
(it's broken) and instead the other one would be used.

I'm not sure why that is the case.  It's certainly different to most other
programming languages.  @Ludo?

@Ludo: Reduced test case:

  ,use (guix packages)
  (define-public a
    (package
      (name "a")
      (version name)
      (source #f) (build-system #f) (synopsis #f) (description #f) (license #f) (home-page #f)))

  (define-public b
    (package
      (inherit a)
      (version name))) ; error message here

Error message:

  ;;; <stdin>:9:4: warning: possibly unbound variable `name'
  <unnamed port>:9:4: In procedure module-lookup: Unbound variable: name

What's happening here?  I would have expected NAME to be available from the
descendant record and accessing the ancestor record... is it not available
on purpose?

>2)  /latest is also removed from variable. Would it make a difference?

No.  It's just part of a variable's name (the slash has no special meaning
either).