;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 David Thompson ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; ;;; 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 . (define-module (gnu packages pumpio) #:use-module (guix licenses) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module (gnu packages aspell) #:use-module (gnu packages qt) #:use-module (gnu packages web)) (define-public pumpa (package (name "pumpa") (version "0.9.3") (source (origin (method git-fetch) ; no source tarballs (uri (git-reference (url "https://source.pumpa.branchable.com/") (commit (string-append "v" version)))) (sha256 (base32 "14072vis539zjgryjr5a77j2cprxii5znyg3p01qbb11lijk9nj7")) (file-name (string-append name "-" version "-checkout")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases (replace 'configure (lambda* (#:key inputs outputs #:allow-other-keys) (substitute* "src/util.cpp" (("buffio\\.h") "tidybuffio.h")) ;; Fix dependency tests. (substitute* "pumpa.pro" (("/usr/include/tidy\\.h") (search-input-file inputs "/include/tidy.h")) (("/usr/include/aspell.h") (search-input-file inputs "/include/aspell.h"))) ;; Run qmake with proper installation prefix. (let ((prefix (string-append "PREFIX=" (assoc-ref outputs "out")))) (invoke "qmake" prefix)) #t))))) (inputs (list aspell qtbase-5 tidy-html)) (synopsis "Qt-based pump.io client") (description "Pumpa is a simple pump.io client written in C++ and Qt.") (home-page "https://pumpa.branchable.com/") (license gpl3+))) ss='msg-avail'>...Previously, test cases could fail if some process was listening at a hard-coded port. This patch eliminates most of these potential failures, by automatically assigning an unbound port. This should allow for building multiple guix trees in parallel outside a build container, though this is currently untested. The test "home-page: Connection refused" in tests/lint.scm still hardcodes port 9999, however. * guix/tests/http.scm (http-server-can-listen?): remove now unused procedure. (%http-server-port): default to port 0, meaning the OS will automatically choose a port. (open-http-server-socket): remove the false statement claiming this procedure is exported and also return the allocated port number. (%local-url): raise an error if the port is obviously unbound. (call-with-http-server): set %http-server-port to the allocated port while the thunk is called. * tests/derivations.scm: adjust test cases to use automatically assign a port. As there is no risk of a port conflict now, do not make any tests conditional upon 'http-server-can-listen?' anymore. * tests/elpa.scm: likewise. * tests/lint.scm: likewise, and add a TODO comment about a port that is still hard-coded. * tests/texlive.scm: likewise. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Maxime Devos 2020-01-17import: texlive: Avoid uses of '@@' in tests....* guix/import/texlive.scm (fetch-sxml, sxml->package): Export. * tests/texlive.scm <top level>: Call '%http-server-port'. ("fetch-sxml: returns SXML for valid XML"): Use 'with-http-server' and set 'current-http-proxy' instead of using 'mock'. ("sxml->package"): Remove use of '@@'. Ludovic Courtès e. Ludovic Courtès