Subject: bug#37523: Print hint if build fails due to invalid character in package source base name

From: Hartmut Goebel <[email-masked]>
Date: Thu, 26 Sep 2019 18:01:40 +0200

Followup to <http://issues.guix.gnu.org/issue/26175#4>:

guix shall print a hint if building fails due to the package source base
name containing a character invalid in a store filename (e.g. "@" or "%").

Currently, when building such a package, one gets an error message like:

guix build: error: invalid character `@' in name
[email-masked]'

guix build should catch this error and print a hint like:

You may add a ‘file-name’ field to the package source to work around this.

Ludovic Courtès wrote on Sun Sep 08 22:07:10+0200 2019

> Unfortunately it cannot really be caught. I mean, you could catch
> ‘&store-protocol-error’ error conditions, but then the error message is
> just a string, there’s no error code you can compare against.

Example package raising this error:

(use-modules (guix packages) (guix download) (guix build-system gnu))

(package
  (name "kde-l10n-ca-valencia")
  (version "14.11.80")
  (source
   (origin
     (method url-fetch)
     (uri (string-append "mirror://kde//Attic/applications/"
                         version "/src/kde-l10n/"
                         "kde-l10n-ca@valencia-" version ".tar.xz"))
     (sha256 (base32
"1mqadassxcm0m9r1l02m5vr4bbandn48xz8gifvxmb4wiz8i8d0w"))))
  (build-system gnu-build-system)
  (synopsis "") (description "") (license "") (home-page ""))

-- 
Regards
Hartmut Goebel

| Hartmut Goebel          | [email-masked]               |
| www.crazy-compilers.com | compilers which you thought are impossible |