unofficial mirror of help-guix@gnu.org 
 help / color / mirror / Atom feed
* packaged artanis v0.5 not found
@ 2021-07-08 20:30 mbcladwell
  2021-09-01 12:03 ` Arun Isaac
  0 siblings, 1 reply; 3+ messages in thread
From: mbcladwell @ 2021-07-08 20:30 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] 3+ messages in thread

end of thread, other threads:[~2021-09-11  6:29 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-08 20:30 packaged artanis v0.5 not found mbcladwell
2021-09-01 12:03 ` Arun Isaac
2021-09-11  6:28   ` mbcladwell

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).