aboutsummaryrefslogtreecommitdiff
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019, 2023 Ludovic Courtès <ludo@gnu.org>
;;;
;;; 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-store-deduplication)
  #:use-module (guix tests)
  #:use-module (guix store)
  #:use-module (guix store roots)
  #:use-module ((guix utils) #:select (call-with-temporary-directory))
  #:use-module ((guix build utils) #:select (delete-file-recursively))
  #:use-module ((guix config) #:select (%state-directory))
  #:use-module (srfi srfi-1)
  #:use-module (srfi srfi-64))

(define %store #f)

(test-begin "store-roots")

;; The 'open-connection' call below gets guix-daemon to create
;; %STATE-DIRECTORY/profiles.
(set! %store (open-connection))

(test-assert "gc-roots, regular root"
  (let* ((item (add-text-to-store %store "something"
                                  (random-text)))
         (root (string-append %gc-roots-directory "/test-gc-root")))
    (symlink item root)
    (let ((result (member root (gc-roots))))
      (delete-file root)
      result)))

(test-assert "gc-roots, indirect root"
  (call-with-temporary-directory
   (lambda (directory)
     (let* ((item (add-text-to-store %store "something"
                                     (random-text)))
            (root (string-append directory "/gc-root")))
       (symlink item root)
       (add-indirect-root %store root)
       (let ((result (member root (gc-roots))))
         (delete-file root)
         result)))))

(test-end "store-roots")
title='2023-10-25 10:42:22 +0200'>2023-10-25gnu: abcl: Update to 1.9.2....* gnu/packages/java.scm (abcl): Update to 1.9.2. Signed-off-by: Guillaume Le Vaillant <glv@posteo.net> Artyom Bologov 2023-10-06gnu: openjdk-12: Fix building on aarch64-linux....* gnu/packages/java.scm (openjdk-12)[arugments]: When building for aarch64-linux add a phase to remove a duplicate line. Efraim Flashner 2023-10-05gnu: openjdk-10: Fix building on aarch64-linux....* gnu/packages/java.scm (openjdk-10)[arguments]: Replace inherited 'patch-for-aarch64 phase for changes in source code layout. Co-authored-by: Christopher Baines <mail@cbaines.net> Co-authored-by: Tim Johann <t1m@phrogstar.de> Efraim Flashner 2023-09-21gnu: Add jbr@21-b240.22....* gnu/packages/java.scm (jbr21): New variable. Danny Milosavljevic 2023-09-21gnu: Add openjdk@21....* gnu/packages/java.scm (openjdk21): New variable. * gnu/packages/patches/openjdk-21-fix-rpath.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. Danny Milosavljevic 2023-09-21gnu: Add openjdk@20....* gnu/packages/java.scm (openjdk20): New variable. Danny Milosavljevic 2023-08-13gnu: jbr: Update description....* gnu/packages/chromium.scm (jbr11)[description]: Remove reference to "JCEF". (jbr17)[description]: Remove reference to "JCEF". Danny Milosavljevic 2023-08-07gnu: Add older version of jbr....* gnu/packages/java.scm (jbr11): New variable. Danny Milosavljevic 2023-08-05gnu: Add java-mapdb....* gnu/packages/java.scm (java-mapdb): New variable. Liliana Marie Prikler 2023-08-05gnu: Add java-httpcomponents-httpclient-osgi....* gnu/packages/java.scm (java-httpcomponents-httpclient-osgi): New variable. Liliana Marie Prikler 2023-08-05gnu: Add java-httpcomponents-httpcore-osgi....* gnu/packages/java.scm (java-httpcomponents-httpcore-osgi): New variable. Liliana Marie Prikler 2023-08-05gnu: Add java-httpcomponents-httpclient-cache....* gnu/packages/java.scm (java-httpcomponents-httpclient-cache): New variable. Liliana Marie Prikler 2023-08-05gnu: Add java-easymock-class-extension....* gnu/packages/java.scm (java-easymock-class-extension): New variable. Liliana Marie Prikler 2023-08-05gnu: Add java-easymock version 3.2....* gnu/packages/java.scm (java-easymock-3.2): New variable. Liliana Marie Prikler 2023-07-30gnu: ant@1.10: Update to 1.10.13....* gnu/packages/java.scm (ant/java8): Update to 1.10.13. Tobias Geerinckx-Rice 2023-07-26gnu: openjdk9: Fix build on aarch64....* gnu/packages/java.scm (openjdk9)[arguments]: Add 'patch-for-aarch64 phase to remove duplicate line in interp_masm_aarch64.hpp. Signed-off-by: Andreas Enge <andreas@enge.fr> Christopher Baines 2023-07-17gnu: jbr: Use Jetbrains' configure-flags....* gnu/packages/java.scm (jbr17)[arguments]<#:configure-flags>: Use Jetbrains' configure flags. Danny Milosavljevic 2023-07-03gnu: jbr: Make big cursors work....* gnu/packages/patches/jbr-17-xcursor-no-dynamic.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/java.scm (jbr17)[source]<#:patches>: Add it. Danny Milosavljevic 2023-07-03gnu: Add jbr....* gnu/packages/java.scm (jbr17): New variable. Danny Milosavljevic 2023-06-29gnu: openjdk19: Update to 19.0.2....* gnu/packages/java.scm (openjdk19): Update to 19.0.2. Ricardo Wurmus 2023-06-17gnu: openjdk: Re-add "openjdk-15-xcursor-no-dynamic.patch"....* gnu/packages/java.scm (openjdk16)[source](patches): Re-add xcursor patch. (openjdk17)[source](patches): Re-add xcursor patch. Danny Milosavljevic 2023-06-11svn-download: Do not expand keywords....Subversion keyword expansion is potentially non-reproducible as some of them expand time strings relative to the local time zone: https://issues.guix.gnu.org/43442#18 In practice this is not a problem in Guix since Subversion checkouts happen in an isolated environment using the "default timezone" (UTC). However, Software Heritage disables keyword expansion for this very reason. By following suit, we make sure content can be retrieved from there. * guix/build/svn.scm (svn-fecth): Pass "--ignore-keywords" to Subversion. * guix/build-system/texlive.scm (%texlive-date): New variable. * gnu/packages/java.scm (java-geronimo-xbean-reflect) (java-geronimo-genesis-2.1): Update the source hash. * gnu/packages/machine-learning.scm (ghmm): Likewise. * gnu/packages/video.scm (libsmpeg, libsmpeg-with-sdl1): Likewise. * gnu/packages/tex.scm (texlive-bin): Update the hash of the "texlive-scripts" input, and a add a new phase that imitates Subversion keyword expansion for scripts that need it. (texlive-latex-base): Update the hash of the "texlive-luatexconfig" native input. (texlive-hyphen-base, texlive-dvipdfmx, texlive-dvips, texlive-cm) (texlive-tex-plain, texlive-kpathsea, texlive-latexconfig) (texlive-tetex, texlive-pdftex, texlive-xetex): Update the source hash. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Timothy Sample