help-guix
[Top][All Lists]
Advanced

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

Re: No Guile development packages were found.


From: Julien Lepiller
Subject: Re: No Guile development packages were found.
Date: Mon, 27 Jul 2020 15:48:26 +0200

Hi,

Le Mon, 27 Jul 2020 06:52:52 -0500,
mbcladwell@stihie.net a écrit :

> Hi,
> I would like to upgrade guile-json in my local store.
> I start with
> $guix pull
> $guix package -u  (didn't do anything)

If guile-json is not installed in your default profile, that's
expected. Otherwise, maybe it was your first guix pull? Make sure you
have ~/.config/guix/current/bin *first* in your $PATH and run "hash
guix" to invalidate your shell's cache for the guix binary location.

Make sure "type guix" returns ~/.config/guix/current/bin/guix.

> 
> Modifying the template at  
> https://guix.gnu.org/blog/2018/a-packaging-tutorial-for-guix/
> I create the file guile-json.scm:
> 
> [...]
> 
> Looking at the log file, the final lines are:
> 
> checking for pkg-config... no
> configure: checking for guile 3.0
> configure: checking for guile 2.2
> configure: checking for guile 2.0
> configure: error:
> No Guile development packages were found.
> 
> Please verify that you have Guile installed.  If you installed Guile
> from a binary distribution, please verify that you have also installed
> the development packages.  If you installed it yourself, you might
> need to adjust your PKG_CONFIG_PATH; see the pkg-config man page for
> more.
> 
> command  
> "/gnu/store/29jhbbg1hf557x8j53f9sxd9imlmf02a-bash-minimal-5.0.7/bin/bash"
> "./configure" "CONFIG_SHELL=/gnu/store/29jhbbg1hf55$
> 
> 
> I am on Debian 9 working with guile v 2.2.7, dev files are installed:
> 
> apt-get install guile-2.0-dev
> Reading package lists... Done
> Building dependency tree
> Reading state information... Done
> guile-2.0-dev is already the newest version (2.0.13+1-4).

Guix does not interact with your system, and ensures that it does not
use anything from it when building. Otherwise, the resulting package's
content might depend on the content of the system that built it, and we
wouldn't be able to ensure reproducibility across all the linux
distributions.

Instead, Guix builds packages in its own container system, completely
isolated from the system, your environment variables, etc... In order
to ensure guile is present in this container, you must declare it as a
dependency (we call that an "input"). You'll also need pkg-config, so
the package definition would look like this:

(package
  (name "guile-json")
  ...
  (build-system gnu-build-system)
  (native-inputs
   `(("pkg-config" ,pkg-config)))
  (inputs
   `(("guile" guile-3.0)))
  ...
  (license gpl3+))

With the necessary imports at the beginning of the file. You can have a
look at the actual definition we use in Guix with:

guix edit guile-json

Another possibility, as guile-json is available in Guix (we have 1.2.0,
3.5.0 and 4.0.1 currently) is to use the available recipe for guile-json
but with a different source, like this:

guix install guile-json@3.5.0 --with-source=https://...

Not tested and if something changed in the build instructions, it might
break, but it's certainly easier than creating your own definition from
scratch. I specify the version since it's the closest to the version
you want (in fact the recipe has not changed for guile-json 4, which
would be the one used if you don't specify a version).

Note that you'll need guile itself in your profile too in order for
guile-json to be useful.

> 
> In my .bashrc I set the variable such that at the terminal prompt:
> 
> echo $PKG_CONFIG_PATH
> /home/mbc/.guix-profile/lib/pkgconfig
> 
> Where did I go wrong?

As said above, guix just doesn't care about your environment :)

> Thanks
> Mortimer
> 



reply via email to

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