aboutsummaryrefslogtreecommitdiff
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (test-composer)
  #:use-module (guix import composer)
  #:use-module (guix base32)
  #:use-module (gcrypt hash)
  #:use-module (guix tests http)
  #:use-module (guix grafts)
  #:use-module (srfi srfi-64)
  #:use-module (web client)
  #:use-module (ice-9 match))

;; Globally disable grafts because they can trigger early builds.
(%graft? #f)

(define test-json
  "{
  \"packages\": {
    \"foo/bar\": {
      \"0.1\": {
        \"name\": \"foo/bar\",
        \"description\": \"description\",
        \"keywords\": [\"testing\"],
        \"homepage\": \"http://example.com\",
        \"version\": \"0.1\",
        \"license\": [\"BSD-3-Clause\"],
        \"source\": {
          \"type\": \"url\",
          \"url\": \"http://example.com/Bar-0.1.tar.gz\"
        },
        \"require\": {},
        \"require-dev\": {\"phpunit/phpunit\": \"1.0.0\"}
      }
    }
  }
}")

(define test-source
  "foobar")

(test-begin "composer")

(test-assert "composer->guix-package"
  ;; Replace network resources with sample data.
  (with-http-server `((200 ,test-json)
                      (200 ,test-source))
    (parameterize ((%composer-base-url (%local-url))
                   (current-http-proxy (%local-url)))
      (match (composer->guix-package "foo/bar")
        (`(package
            (name "php-foo-bar")
            (version "0.1")
            (source (origin
                      (method url-fetch)
                      (uri "http://example.com/Bar-0.1.tar.gz")
                      (sha256
                       (base32
                        ,(? string? hash)))))
            (build-system composer-build-system)
            (native-inputs (list php-phpunit-phpunit))
            (synopsis "")
            (description "description")
            (home-page "http://example.com")
            (license license:bsd-3))
         (string=? (bytevector->nix-base32-string
                    (call-with-input-string test-source port-sha256))
                   hash))
        (x
         (pk 'fail x #f))))))

(test-end "composer")
it/gnu/services/virtualization.scm?id=e30cf11bb097ed8678d26a43579e0cf6a1815992'>services: childhurd: Adjust for hurd-disk-image move....This is a follow-up to commit b904b59ce592c89dfb4675a8c06757afed6738a0. * gnu/services/virtualization.scm: Import (gnu system images hurd). Marius Bakke 2020-06-21services: childhurd: Support more than one instance....* gnu/services/virtualization.scm (<hurd-vm-configuration>)[options]: Remove "--hda" option. [id,net-options]: New fields. (hurd-vm-net-options): New procedure. Parameterize port forwarding with ID. * gnu/services/virtualization.scm (hurd-vm-shepherd-service): Use them. Parameterize provision with ID, if set. Hardcode "--hda" option for image. * doc/guix.texi (Virtualization Services): Document new fields. Update for hardcoding of "--hda". Jan (janneke) Nieuwenhuizen 2020-06-14services: Add 'hurd-vm service-type'....* gnu/services/virtualization.scm (hurd-vm-shepherd-service, hurd-vm-disk-image): New procedures. (%hurd-vm-operating-system, hurd-vm-service-type): New variables. (<hurd-vm-configuration>): New record type. * doc/guix.texi (Virtualization Services): Document it. * gnu/services/shepherd.scm (scm->go): Use let-system, remove FIXME. Fixes fixes cross-building of shepherd modules for the Hurd image. Jan (janneke) Nieuwenhuizen 2020-04-12services: libvirt-configuration: Fix grammar of "allows to select" to "allows...selecting". * gnu/services/virtualization (libvirt-configuration): Fix grammar. Vagrant Cascadian 2020-02-01services: virtualization: Add riscv32 and riscv64 to qemu platforms....* gnu/services/virtualization (%riscv32): New variable. (%riscv64): New variable. (%qemu-platforms): Add riscv32 and riscv64. Vagrant Cascadian 2019-11-05services: libvirtd: Provide ip binary at runtime....* gnu/services/virtualization.scm (libvirt-shepherd-service): Add sbin to the PATH variable, as ip binary is installed there. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Miguel Ángel Arruga Vivas 2019-09-21services: virtualization: Change libvirtd use syslog by default....As defaulting by stderr, along with the shepherd service not directing the output to a log file makes seeing the output difficult, compared to logging to syslog. * gnu/services/virtualization.scm (libvirt-configuration)[log-outputs]: Change default from "3:stderr" to "3:syslog:libvirtd". Christopher Baines 2019-09-11services: libvirtd: Use '/run/current-system/profile/bin' as PATH....This is a followup to ef640db2f509f51ebfe3a6a66ba837ef3103bbb7. * gnu/services/virtualization.scm (libvirt-shepherd-service): Set '#:environment-variables' for 'make-forkexec-constructor'. 宋文武 2019-09-11gnu: libvirt: Don't wrap with PATH....This reverts commit 903e051a71467bc96a054c9b4ed89348fdae8977 to fix <https://bugs.gnu.org/31365>. The full path of the 'ip' command is already embedded, and we want to search 'qemu' in PATH. * gnu/packages/virtualization.scm (libvirt): Remove 'wrap-libvirtd phase. Add configure flags to run qemu as 'nobody:kvm'. * gnu/services/virtualization.scm (libvirt-service-type): Add 'qemu' to the system profile. 宋文武 2018-07-14gnu: services: Export virtlog-configuration....* gnu/services/virtualization.scm (virtlog-configuration): Export. Julien Lepiller 2018-01-11services: qemu-binfmt: Extend guix-daemon with extra chroot directories....Fixes <https://bugs.gnu.org/20239>. * gnu/services/virtualization.scm (<qemu-binfmt-configuration>)[guix-support?]: New field. (qemu-binfmt-guix-chroot): New procedure. (qemu-binfmt-service-type)[extensions]: Add GUIX-SERVICE-TYPE. * doc/guix.texi (Virtualization Services): Document 'guix-support?'. (Additional Build Options): Mention binfmt_misc and offloading under '--system'. Ludovic Courtès 2018-01-11services: Add qemu-binfmt....* gnu/services/virtualization.scm (<qemu-platform>): New record type. (bv): New macro. (%i386, %i486, %alpha, %arm, %armeb, %sparc, %sparc32plus) (%ppc, %ppc64, %ppc64le, %m68k, %mips, %mipsel, %mipsn32el) (%mips64, %mips64el, %sh4, %sh4eb, %s390x, %aarch64, %hppa) (%qemu-platforms): New variables. (lookup-qemu-platforms): New procedure. (<qemu-binfmt-configuration>): New record type. (qemu-platform->binfmt): New procedures. (%binfmt-mount-point, %binfmt-register-file, %binfmt-file-system) (qemu-binfmt-service-type): New variables. (qemu-binfmt-shepherd-services): New procedures. * doc/guix.texi (Virtualization Services): Add "Transparent Emulation with QEMU" heading. binfmt fixlet Ludovic Courtès