unofficial mirror of help-guix@gnu.org 
 help / color / mirror / Atom feed
* successfully(?) installed package but it can't be found/used
@ 2021-07-08 14:35 info
  2021-07-09  1:02 ` Julien Lepiller
  0 siblings, 1 reply; 2+ messages in thread
From: info @ 2021-07-08 14:35 UTC (permalink / raw)
  To: help-guix


Hi,

I would like to install Artanis v0.5 into my store.  I see the patch  
https://issues.guix.gnu.org/46885#0 and incorporate the changes into a  
local guix.scm (pasted at the end of this message). I do not change  
guile-xyz.scm.  The install seems to complete without error:

$ guix package --install-from-file=guix.scm
guix package: warning: Consider running 'guix pull' followed by
'guix package -u' to get up-to-date packages and security updates.

The following package will be upgraded:
    artanis 0.4.1 → 0.5

substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
The following derivations will be built:
    /gnu/store/zvw16sg5sj11b2gzgyrh7bhvzmbw01j2-artanis-0.5.drv
    /gnu/store/gkq3pzjqvvnwfd5v9ia2vqffcbq6d5nq-artanis-0.5.tar.xz.drv
    /gnu/store/ybh7mdkv7mnjsvy5bkxhcff50kzzbgpq-artanis-0.5.tar.gz.drv

building /gnu/store/ybh7mdkv7mnjsvy5bkxhcff50kzzbgpq-artanis-0.5.tar.gz.drv...
building /gnu/store/gkq3pzjqvvnwfd5v9ia2vqffcbq6d5nq-artanis-0.5.tar.xz.drv...
building /gnu/store/zvw16sg5sj11b2gzgyrh7bhvzmbw01j2-artanis-0.5.drv...
The following derivation will be built:
    /gnu/store/rcvd3kqvik3id62619vq586cvwdwx4gy-profile.drv

applying 1 graft for  
/gnu/store/zkbw06gwzv46rmj0qs2pc5i3hfign799-artanis-0.5.drv ...
building CA certificate bundle...
listing Emacs sub-directories...
building fonts directory...
generating GLib schema cache...
creating GTK+ icon theme cache...
building cache files for GTK+ input methods...
building directory of Info manuals...
building database for manual pages...
building XDG desktop file cache...
building XDG MIME database...
building profile with 29 packages...
hint: Consider setting the necessary environment variables by running:
      GUIX_PROFILE="/home/mbc/.guix-profile"
      . "$GUIX_PROFILE/etc/profile"
Alternately, see `guix package --search-paths -p "/home/mbc/.guix-profile"'.

However when I search for artanis:

$ guix package -s artanis
name: artanis
version: 0.4.1
outputs: out
systems: x86_64-linux i686-linux etc. etc.

If I search the store there are many artanis-0.5 files, sample below:

$find /gnu/store -wholename *artanis-0.5*

/gnu/store/6l81w3hcw6s4jn7nic0bh096nvql0ffc-artanis-0.5/lib/guile/3.0/site-ccache/artanis/mvc/view.go
/gnu/store/6l81w3hcw6s4jn7nic0bh096nvql0ffc-artanis-0.5/lib/guile/3.0/site-ccache/artanis/mvc/controller.go
/gnu/store/6l81w3hcw6s4jn7nic0bh096nvql0ffc-artanis-0.5/lib/guile/3.0/site-ccache/artanis/irregex.go
/gnu/store/6l81w3hcw6s4jn7nic0bh096nvql0ffc-artanis-0.5/lib/guile/3.0/site-ccache/artanis/ssql.go
/gnu/store/6l81w3hcw6s4jn7nic0bh096nvql0ffc-artanis-0.5/lib/guile/3.0/site-ccache/artanis/fprm.go
/gnu/store/6l81w3hcw6s4jn7nic0bh096nvql0ffc-artanis-0.5/lib/guile/3.0/site-ccache/artanis/third-party
/gnu/store/6l81w3hcw6s4jn7nic0bh096nvql0ffc-artanis-0.5/lib/guile/3.0/site-ccache/artanis/third-party/csv.go
/gnu/store/6l81w3hcw6s4jn7nic0bh096nvql0ffc-artanis-0.5/lib/guile/3.0/site-ccache/artanis/debug.go
/gnu/store/6l81w3hcw6s4jn7nic0bh096nvql0ffc-artanis-0.5/lib/guile/3.0/site-ccache/artanis/commands.go
/gnu/store/6l81w3hcw6s4jn7nic0bh096nvql0ffc-artanis-0.5/lib/guile/3.0/site-ccache/artanis/page.go
/gnu/store/6l81w3hcw6s4jn7nic0bh096nvql0ffc-artanis-0.5/lib/guile/3.0/site-ccache/artanis/artanis.go
/gnu/store/6l81w3hcw6s4jn7nic0bh096nvql0ffc-artanis-0.5/bin
/gnu/store/6l81w3hcw6s4jn7nic0bh096nvql0ffc-artanis-0.5/bin/art
/gnu/store/6l81w3hcw6s4jn7nic0bh096nvql0ffc-artanis-0.5/bin/.art-real
/gnu/store/b6g0wiw56gqjsj6ik9g53g5q9npwzkv8-profile/share/doc/artanis-0.5.......

If I try to create an ad hoc environment:

$ guix environment --ad-hoc artanis@0.5
guix environment: error: artanis: package not found for version 0.5

Where did I go wrong?
Thanks
Mortimer

--------guix.scm----------------

(use-modules
   (guix packages)
   ((guix licenses) #:prefix license:)
   (guix download)
   (guix build-system gnu)
   (gnu packages)
   (gnu packages autotools)
   (gnu packages guile)
   (gnu packages guile-xyz)
   (gnu packages pkg-config)
   (gnu packages texinfo)
   (gnu packages bash)
   (gnu packages linux)
   (gnu packages databases)
   (gnu packages nss)
   (gnu packages tls)
   (gnutls)
)

(define-public artanis
   (package
     (name "artanis")
     (version "0.5")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnu/artanis/artanis-"
                                   version ".tar.gz"))
               (sha256
                (base32
                 "1vk1kp2xhz35xa5n27cxlq9c88wk6qm7fqaac8rb0pb6k9pvsv7v"))
               (modules '((guix build utils)))
               (snippet
                '(begin
                   ;; Unbundle guile-redis and guile-json
                   (delete-file-recursively "artanis/third-party/json.scm")
                   (delete-file-recursively "artanis/third-party/json")
                   (delete-file-recursively "artanis/third-party/redis.scm")
                   (delete-file-recursively "artanis/third-party/redis")
                   (substitute* '("artanis/artanis.scm"
                                  "artanis/lpc.scm"
                                  "artanis/oht.scm")
                     (("(#:use-module \\()artanis third-party (json\\))" _
                       use-module json)
                      (string-append use-module json)))
                   (substitute* '("artanis/lpc.scm"
                                  "artanis/session.scm")
                     (("(#:use-module \\()artanis third-party (redis\\))" _
                       use-module redis)
                      (string-append use-module redis)))
                   (substitute* "artanis/oht.scm"
                      
(("([[:punct:][:space:]]+)(->json-string)([[:punct:][:space:]]+)"
                       _ pre json-string post)
                      (string-append pre
                                     "scm" json-string
                                     post)))
                   (substitute* "artanis/artanis.scm"
                      
(("[[:punct:][:space:]]+->json-string[[:punct:][:space:]]+")
                      ""))
                   #t))))
     (build-system gnu-build-system)
     (inputs
      `(("guile" ,guile-3.0)
        ("nss" ,nss)
        ("nspr" ,nspr)))
     ;; FIXME the bundled csv contains one more exported procedure
     ;; (sxml->csv-string) than guile-csv. The author is maintainer of both
     ;; projects.
     ;; TODO: Add guile-dbi and guile-dbd optional dependencies.
     (propagated-inputs
      `(("guile-json" ,guile-json-3)
        ("guile-readline" ,guile-readline)
        ("guile-redis" ,guile-redis)))
     (native-inputs
      `(("bash"       ,bash)         ;for the `source' builtin
        ("pkgconfig"  ,pkg-config)
        ("util-linux" ,util-linux))) ;for the `script' command
     (arguments
      '(#:make-flags
        ;; TODO: The documentation must be built with the `docs' target.
        (let* ((out (assoc-ref %outputs "out"))
               (scm (string-append out "/share/guile/site/3.0"))
               (go  (string-append out "/lib/guile/3.0/site-ccache")))
          ;; Don't use (%site-dir) for site paths.
          (list (string-append "MOD_PATH=" scm)
                (string-append "MOD_COMPILED_PATH=" go)))
        #:test-target "test"
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-site-dir
            (lambda* (#:key outputs #:allow-other-keys)
              (substitute* "artanis/commands/help.scm"
                (("\\(%site-dir\\)")
                 (string-append "\""
                                (assoc-ref outputs "out")
                                "/share/guile/site/3.0\"")))))
          (add-after 'unpack 'patch-reference-to-libnss
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "artanis/security/nss.scm"
                (("ffi-binding \"libnss3\"")
                 (string-append
                  "ffi-binding \""
                  (assoc-ref inputs "nss") "/lib/nss/libnss3.so"
		 "\""))
                (("ffi-binding \"libssl3\"")
                 (string-append "ffi-binding \""
			       (assoc-ref inputs "nss") "/lib/nss/libssl3.so"
                  "\"")))
              #t))
          (add-before 'install 'substitute-root-dir
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out  (assoc-ref outputs "out")))
                (substitute* "Makefile"   ;ignore the execution of bash.bashrc
                  ((" /etc/bash.bashrc") " /dev/null"))
                (substitute* "Makefile"   ;set the root of config files to OUT
                  ((" /etc") (string-append " " out "/etc")))
                (mkdir-p (string-append out "/bin")) ;for the `art' executable
                #t)))
          (add-after 'install 'wrap-art
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (bin (string-append out "/bin"))
                     (scm (string-append out "/share/guile/site/3.0"))
                     (go  (string-append out "/lib/guile/3.0/site-ccache")))
                (wrap-program (string-append bin "/art")
                  `("GUILE_LOAD_PATH" ":" prefix
                    (,scm ,(getenv "GUILE_LOAD_PATH")))
                  `("GUILE_LOAD_COMPILED_PATH" ":" prefix
                    (,go ,(getenv "GUILE_LOAD_COMPILED_PATH"))))
                #t))))))
     (synopsis "Web application framework written in Guile")
     (description "GNU Artanis is a web application framework written in Guile
Scheme.  A web application framework (WAF) is a software framework that is
designed to support the development of dynamic websites, web applications, web
services and web resources.  The framework aims to alleviate the overhead
associated with common activities performed in web development.  Artanis
provides several tools for web development: database access, templating
frameworks, session management, URL-remapping for RESTful, page caching, and
more.")
     (home-page "https://www.gnu.org/software/artanis/")
     (license (list license:gpl3+ license:lgpl3+)))) ;dual license

artanis






^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: successfully(?) installed package but it can't be found/used
  2021-07-08 14:35 successfully(?) installed package but it can't be found/used info
@ 2021-07-09  1:02 ` Julien Lepiller
  0 siblings, 0 replies; 2+ messages in thread
From: Julien Lepiller @ 2021-07-09  1:02 UTC (permalink / raw)
  To: info; +Cc: help-guix

Le Thu, 08 Jul 2021 09:35:12 -0500,
info@labsolns.com a écrit :

> Hi,
> 
> I would like to install Artanis v0.5 into my store.  I see the patch  
> https://issues.guix.gnu.org/46885#0 and incorporate the changes into
> a local guix.scm (pasted at the end of this message). I do not change
> guile-xyz.scm.  The install seems to complete without error:
> 
> $ guix package --install-from-file=guix.scm
> guix package: warning: Consider running 'guix pull' followed by
> 'guix package -u' to get up-to-date packages and security updates.
> 
> The following package will be upgraded:
>     artanis 0.4.1 → 0.5

When you do that, it temporarily (for the duration of the command) add
the new artanis to the list of available packages guix knows about, so
it can install the new artanis.

> 
> However when I search for artanis:
> 
> $ guix package -s artanis
> name: artanis
> version: 0.4.1
> outputs: out
> systems: x86_64-linux i686-linux etc. etc.

Since the package was only available temporarily to guix, it can't find
it anymore. You'll have to use the same file everytime you want to
refer to the package.

> If I search the store there are many artanis-0.5 files, sample below:
> 
> $find /gnu/store -wholename *artanis-0.5*
> 
> /gnu/store/6l81w3hcw6s4jn7nic0bh096nvql0ffc-artanis-0.5/lib/guile/3.0/site-ccache/artanis/mvc/view.go
> /gnu/store/6l81w3hcw6s4jn7nic0bh096nvql0ffc-artanis-0.5/lib/guile/3.0/site-ccache/artanis/mvc/controller.go
> /gnu/store/6l81w3hcw6s4jn7nic0bh096nvql0ffc-artanis-0.5/lib/guile/3.0/site-ccache/artanis/irregex.go
> /gnu/store/6l81w3hcw6s4jn7nic0bh096nvql0ffc-artanis-0.5/lib/guile/3.0/site-ccache/artanis/ssql.go
> /gnu/store/6l81w3hcw6s4jn7nic0bh096nvql0ffc-artanis-0.5/lib/guile/3.0/site-ccache/artanis/fprm.go
> /gnu/store/6l81w3hcw6s4jn7nic0bh096nvql0ffc-artanis-0.5/lib/guile/3.0/site-ccache/artanis/third-party
> /gnu/store/6l81w3hcw6s4jn7nic0bh096nvql0ffc-artanis-0.5/lib/guile/3.0/site-ccache/artanis/third-party/csv.go
> /gnu/store/6l81w3hcw6s4jn7nic0bh096nvql0ffc-artanis-0.5/lib/guile/3.0/site-ccache/artanis/debug.go
> /gnu/store/6l81w3hcw6s4jn7nic0bh096nvql0ffc-artanis-0.5/lib/guile/3.0/site-ccache/artanis/commands.go
> /gnu/store/6l81w3hcw6s4jn7nic0bh096nvql0ffc-artanis-0.5/lib/guile/3.0/site-ccache/artanis/page.go
> /gnu/store/6l81w3hcw6s4jn7nic0bh096nvql0ffc-artanis-0.5/lib/guile/3.0/site-ccache/artanis/artanis.go
> /gnu/store/6l81w3hcw6s4jn7nic0bh096nvql0ffc-artanis-0.5/bin
> /gnu/store/6l81w3hcw6s4jn7nic0bh096nvql0ffc-artanis-0.5/bin/art
> /gnu/store/6l81w3hcw6s4jn7nic0bh096nvql0ffc-artanis-0.5/bin/.art-real
> /gnu/store/b6g0wiw56gqjsj6ik9g53g5q9npwzkv8-profile/share/doc/artanis-0.5.......

You installed artanis before, so no wonder the result is in the store.
However, note that a store path is not the same thing as a package,
it's only the result of building a package or something else.

> 
> If I try to create an ad hoc environment:
> 
> $ guix environment --ad-hoc artanis@0.5
> guix environment: error: artanis: package not found for version 0.5

again, you'd have to use the file so guix knows about the newer artanis
package. However, with an environment, you'll need something else,
because the best you can do is using -l (to load the file), and that
creates an environment with the *dependencies* of the package specified
by the file: guix environment -l guix.scm would give you all you need
to *build* artanis. My suggestion would be to change guix.scm into a
manifest:

(define-public artanis ...)
(packages->manifest (list artanis))

then: guix environment -m guix.scm

HTH!


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-07-09  1:02 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-08 14:35 successfully(?) installed package but it can't be found/used info
2021-07-09  1:02 ` Julien Lepiller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).