;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Cyril Roelandt ;;; Copyright © 2014, 2015, 2018 Mark H Weaver ;;; ;;; 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 apr) #:use-module ((guix licenses) #:prefix l:) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (gnu packages) #:use-module (gnu packages perl) #:use-module (gnu packages xml) #:use-module (gnu packages autotools)) (define-public apr (package (name "apr") (version "1.7.0") (source (origin (method url-fetch) (uri (string-append "mirror://apache/apr/apr-" version ".tar.bz2")) (sha256 (base32 "1spp6r2a3xcl5yajm9safhzyilsdzgagc2dadif8x6z9nbq4iqg2")) (patches (search-patches "apr-skip-getservbyname-test.patch")) (patch-flags '("-p0")))) (build-system gnu-build-system) (arguments ;; Sometimes we end up with two processes concurrently trying to make ;; 'libmod_test.la': . ;; Thus, build sequentially. '(#:parallel-build? #f #:parallel-tests? #f)) (inputs (list perl libltdl)) (home-page "http://apr.apache.org/") (synopsis "The Apache Portable Runtime Library") (description "The mission of the Apache Portable Runtime (APR) project is to create and maintain software libraries that provide a predictable and consistent interface to underlying platform-specific implementations. The primary goal is to provide an API to which software developers may code and be assured of predictable if not identical behaviour regardless of the platform on which their software is built, relieving them of the need to code special-case conditions to work around or take advantage of platform-specific deficiencies or features.") (license l:asl2.0))) (define-public apr-util (package (name "apr-util") (version "1.6.1") (source (origin (method url-fetch) (uri (string-append "mirror://apache/apr/apr-util-" version ".tar.bz2")) (sha256 (base32 "0nq3s1yn13vplgl6qfm09f7n0wm08malff9s59bqf9nid9xjzqfk")))) (build-system gnu-build-system) (inputs (list apr)) (propagated-inputs (list expat)) (arguments '(#:phases (modify-phases %standard-phases (replace 'configure (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out")) (apr (assoc-ref inputs "apr")) (expat (assoc-ref inputs "expat"))) (setenv "CONFIG_SHELL" (which "bash")) (invoke "./configure" (string-append "--prefix=" out) (string-append "--with-apr=" apr) (string-append "--with-expat=" expat)))))) ;; There are race conditions during 'make check'. Typically, the ;; 'testall' executable is not built yet by the time 'make check' tries ;; to run it. See ;; . #:parallel-tests? #f)) (home-page "http://apr.apache.org/") (synopsis "One of the Apache Portable Runtime Library companions") (description "APR-util provides a number of helpful abstractions on top of APR.") (license l:asl2.0))) /td>Ludovic Courtès 2024-03-11daemon: Protect against FD escape when building fixed-output derivations (CVE......This fixes a security issue (CVE-2024-27297) whereby a fixed-output derivation build process could open a writable file descriptor to its output, send it to some outside process for instance over an abstract AF_UNIX socket, which would then allow said process to modify the file in the store after it has been marked as “valid”. Vulnerability discovered by puck <https://github.com/puckipedia>. Nix security advisory: https://github.com/NixOS/nix/security/advisories/GHSA-2ffj-w4mj-pg37 Nix fix: https://github.com/NixOS/nix/commit/244f3eee0bbc7f11e9b383a15ed7368e2c4becc9 * nix/libutil/util.cc (readDirectory): Add variants that take a DIR* and a file descriptor. Rewrite the ‘Path’ variant accordingly. (copyFile, copyFileRecursively): New functions. * nix/libutil/util.hh (copyFileRecursively): New declaration. * nix/libstore/build.cc (DerivationGoal::buildDone): When ‘fixedOutput’ is true, call ‘copyFileRecursively’ followed by ‘rename’ on each output. Change-Id: I7952d41093eed26e123e38c14a4c1424be1ce1c4 Reported-by: Picnoir <picnoir@alternativebit.fr>, Théophane Hufschmitt <theophane.hufschmitt@tweag.io> Change-Id: Idb5f2757f35af86b032a9851cecb19b70227bd88 Ludovic Courtès