;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Arun Isaac ;;; Copyright © 2022 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 direct-connect) #:use-module (guix build-system scons) #:use-module (guix gexp) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) #:use-module (gnu packages) #:use-module (gnu packages boost) #:use-module (gnu packages compression) #:use-module (gnu packages gettext) #:use-module (gnu packages gnome) #:use-module (gnu packages gtk) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python-xyz) #:use-module (gnu packages tls) #:use-module (gnu packages version-control)) (define-public linuxdcpp (package (name "linuxdcpp") (version "1.1.0") (source (origin (method url-fetch) (uri (string-append "https://launchpad.net/linuxdcpp/1.1/1.1.0/+download/linuxdcpp-" version ".tar.bz2")) (sha256 (base32 "12i92hirmwryl1qy0n3jfrpziwzb82f61xca9jcjwyilx502f0b6")) (patches (search-patches "linuxdcpp-openssl-1.1.patch")) (modules '((guix build utils))) (snippet #~(begin (substitute* "SConstruct" ;; This compares single char[]acters in the version string, and ;; broke when GCC went into double digits. (("conf.CheckCXXVersion\\([^\\)]*\\)") "True") ;; Not all valid C++98 code is valid C++14 (and higher) code. (("'-D_REENTRANT'" match) (string-append match ", '-std=gnu++98'"))))))) (build-system scons-build-system) (arguments `(#:scons ,scons-python2 #:scons-flags (list (string-append "PREFIX=" %output)) #:tests? #f)) ; no tests (inputs (list boost bzip2 gtk+-2 libglade libnotify openssl)) (native-inputs (list bazaar gettext-minimal pkg-config)) (home-page "https://launchpad.net/linuxdcpp/") (synopsis "Direct Connect client") (description "LinuxDC++ is a Direct Connect (DC) client. Direct Connect is a peer-to-peer file-sharing protocol. Clients connect to a central hub where they can chat or share files with one another. Users can view other users' list of shared files or search the hub for files.") (license license:gpl2+))) I'm looking at this in particular because I want to use this in the data service, since it provides substitutes for derivations, and since these can be built on other machines, it's useful to control which builtin builders they depend on. Fixes: <https://issues.guix.gnu.org/67250>. * build-aux/build-self.scm (build-program): Accept #:built-in-builders and pass along to port->connection or open-connection as approriate. (build): Accept and pass on #:built-in-builders. * guix/channels.scm (build-from-source, build-channel-instance, channel-instance-derivations, channel-instances->manifest, channel-instances->derivation): Accept and pass on #:built-in-builders. Change-Id: I315c990de66c6f7dca25a859165a5568abe385ea Christopher Baines 2021-11-27build-self: Help users to submit useful bug reports....* build-aux/build-self.scm (build): Request the ‘COMPLETE output’. Tobias Geerinckx-Rice 2021-04-29download: Use Disarchive as a last resort....This is a fixed version of 66b14dccdd0d83c875ce3a8d50ceab8b6f0a3ce2, which was reverted in e74250c3c535b75dd2225a26df51febb7ed94654. * guix/download.scm (%disarchive-mirrors): New variable. (%disarchive-mirror-file): New variable. (built-in-download): Add 'disarchive-mirrors' keyword argument and pass its value along to the 'builtin:download' derivation. (url-fetch): Pass '%disarchive-mirror-file' to 'built-in-download'. * guix/scripts/perform-download.scm (perform-download): Read Disarchive mirrors from the environment and pass them to 'url-fetch'. * guix/build/download.scm (disarchive-fetch/any): New procedure. (url-fetch): Add 'disarchive-mirrors' keyword argument, use it to make a list of URIs, and use the new procedure to fetch the file if all other methods fail. * build-aux/build-self.scm (build-program)[select?]: Exclude '(guix build download)'. * guix/self.scm (compiled-guix)[*core-modules*]: Add 'guile-json' to the list of extensions. Timothy Sample 2021-04-01build-self: Take care of the spinner in the parent process....This simplifies code and mostly ensures we don't print a spinner while there's build activity going on. * build-aux/build-self.scm (build-program): Remove 'spin' and 'call-with-new-thread' call from "compute-guix-derivation" body. Remove "Computing Guix derivation" message. (proxy): Pass extra argument to 'select'. Display a spinner when 'select' returns empty lists. (build): Print "Computing Guix derivation" message here. Ludovic Courtès 2021-04-01build-self: Forward sub-process build output to (current-build-output-port)....Fixes <https://bugs.gnu.org/41930>. * build-aux/build-self.scm (build-program): Add extra 'build-output' parameter. Interpret it as a socket name and connect to it; use it as the CURRENT-BUILD-OUTPUT-PORT. (proxy): New procedure. (build): Open a named socket. Accept connections and call 'proxy' on it. Ludovic Courtès 2021-03-19build-self: Silent Guile warnings while computing the derivation....In particular, silence the Guile-Git autoload warnings introduced by c1940fde43c7aca37d67589cc5cb248086d17d56. * build-aux/build-self.scm (build-program): Wrap 'guix-derivation' call in 'parameterize'. Ludovic Courtès