aboutsummaryrefslogtreecommitdiff
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2017, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2021 Ryan Sundberg <ryan@arctype.co>
;;; Copyright © 2022 Marius Bakke <marius@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 (gnu packages jemalloc)
  #:use-module (srfi srfi-1)
  #:use-module (srfi srfi-26)
  #:use-module (ice-9 match)
  #:use-module ((guix licenses) #:select (bsd-2))
  #:use-module (guix packages)
  #:use-module (guix gexp)
  #:use-module (guix download)
  #:use-module (guix utils)
  #:use-module (gnu packages)
  #:use-module (gnu packages perl)
  #:use-module (guix build-system gnu))

(define-public jemalloc
  (package
    (name "jemalloc")
    (version "5.3.0")
    (source (origin
              (method url-fetch)
              (uri (string-append
                    "https://github.com/jemalloc/jemalloc/releases/download/"
                    version "/jemalloc-" version ".tar.bz2"))
              (sha256
               (base32
                "1apyxjd1ixy4g8xkr61p0ny8jiz8vyv1j0k4nxqkxpqrf4g2vf1d"))))
    (build-system gnu-build-system)
    (arguments
     (list
      #:phases
      #~(modify-phases %standard-phases
          (add-after 'unpack 'delete-thp-test
            ;; This test does not check if transparent huge pages are supported
            ;; on the system before running the test.
            (lambda _
              (substitute* "Makefile.in"
                (("\\$\\(srcroot\\)test/unit/pages.c \\\\") "\\")))))
      #:configure-flags
      ;; Disable the thread local storage model in jemalloc 5 to prevent
      ;; shared libraries linked to libjemalloc from crashing on dlopen()
      ;; https://github.com/jemalloc/jemalloc/issues/937
      #~'("--disable-initial-exec-tls"
          #$@(match (%current-system)
               ("aarch64-linux"
                (list "--with-lg-page=14"))
               ("powerpc-linux"
                (list "CPPFLAGS=-maltivec"))
               (_
                '())))))
    (inputs (list perl))
    ;; Install the scripts to a separate output to avoid referencing Perl and
    ;; Bash in the default output, saving ~75 MiB on the closure.
    (outputs '("out" "bin"))
    (home-page "https://jemalloc.net/")
    (synopsis "General-purpose scalable concurrent malloc implementation")
    (description
     "This library providing a malloc(3) implementation that emphasizes
fragmentation avoidance and scalable concurrency support.")
    (license bsd-2)))
iases): Use it. Add clause for 'literal-string?'. * tests/guix-home.sh: Add 'aliases' to 'home-bash-extension' and test it. Ludovic Courtès 2023-01-09home: environment-variables: Fix escaping....* gnu/home/services.scm (environment-variable-shell-definitions): Fix escaping. * tests/guix-home.sh: Add STRING_WITH_ESCAPES environment variable and test its value. Reported-by: elevnkb Andrew Tropin 2023-01-09home: environment-variables: Return support for file-likes and gexps....* gnu/home/services.scm (environment-variable-shell-definitions): Add support for file-likes and gexps. * tests/guix-home.sh: Add SHELL environment variable and test its value. Add BUILDHOSTTIME environment variable. Andrew Tropin 2023-01-05home: shells: Do not escape backslashes in single-quoted strings....This is a followup to 73684dc90e013f2f0cca1097b0c944bb9aa88709. * gnu/home/services.scm (environment-variable-shell-definitions) [shell-single-quote]: Remove #\\ from the escape list. Ludovic Courtès 2023-01-05home: services: environment-variables: Add support for literal strings....* gnu/home/services.scm (<literal-string>): New record type. (environment-variable-shell-definitions): Split 'shell-quote' into 'quote-string' and 'shell-double-quote'. Add 'shell-single-quote'. Add clause for 'literal-string' records. * tests/guix-home.sh: Test it. * doc/guix.texi (Essential Home Services): Document it. Ludovic Courtès 2023-01-03guix: Fix typos....* gnu/home/services.scm (home-files-service-type): Fix typo. (home-xdg-configuration-files-service-type): Likewise. (home-xdg-data-files-service-type): Likewise. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> jman 2022-08-19home: Use absolute path for home in activation script....* gnu/home/services.scm (compute-activation-script): Use absolute path for home in activation script. Andrew Tropin 2022-08-05home: Use warning instead of display....* gnu/home/services/xdg.scm (compute-on-first-login-script): Use warning instead of display. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Andrew Tropin 2022-08-02home: Add explicit dependency on env to activation script....* gnu/home/services.scm (compute-activation-script): Add explicit dependency on env to activation script. Signed-off-by: 宋文武 <iyzsong@member.fsf.org> Andrew Tropin 2022-07-14home: services: environment-variables: Double-quote values....Fixes <https://issues.guix.gnu.org/54469>. Reported by Maxime Devos <maximedevos@telenet.be>. * gnu/home/services.scm (environment-variable-shell-definitions): New procedure, with code formerly in 'serialize-posix-env-vars'. (environment-variables->setup-environment-script): Change "setup-environment" from 'mixed-text-file' to 'computed-file', and use 'environment-variable-shell-definitions'. * tests/guix-home.sh: Test it. * gnu/home/services/shells.scm (serialize-posix-env-vars): Delegate to 'environment-variable-shell-definitions'. Ludovic Courtès 2022-07-14home: services: Fix typo....* gnu/home/services.scm (environment-variables->setup-environment-script): Fix spelling of 'warn-about-duplicate-definitions'. Ludovic Courtès 2022-06-04home: services: Add 'lookup-home-service-types' procedure....* gnu/home/services.scm (lookup-home-service-types): New procedure. * tests/home-services.scm: New file. * Makefile.am (SCM_TESTS): Add it. Ludovic Courtès 2022-04-08home: Add home-xdg-data-files-service-type....* gnu/home/services.scm (home-xdg-data-files-service-type): New variable. * gnu/home/services/symlink-manager.scm (update-symlinks-script): Add a proper handling for XDG_DATA_HOME value. * gnu/home/services/xdg.scm (home-xdg-mime-applications-service-type): Use home-xdg-data-files service. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Andrew Tropin 2022-04-08home: symlink-manager: Remove appending of leading dot....* gnu/home/services.scm (xdg-configuration-files-directory): Add leading dot. * gnu/home/services.scm (xdg-configuration-files-service-type): Change name. * gnu/home/services/shells.scm (add-shell-profile-file, zsh-get-configuration-files, add-zsh-dot-configuration, add-zsh-xdg-configuration, add-bash-configuration): Add leading dots. * gnu/home/services/symlink-manager.scm (update-symlinks-script): Remove leading dot. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Andrew Tropin 2022-03-20home: Add home-xdg-configuration-files service....* gnu/home/services.scm (home-xdg-configuration-files): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Andrew Tropin 2022-03-20home: Explicitly connect home-file and symlink-manager services....* gnu/home/services.scm (home-files-directory): New variable. * gnu/home/symlink-manager.scm (update-symlinks-script): Use home-files-directory variable from (gnu home services). Signed-off-by: Ludovic Courtès <ludo@gnu.org> Andrew Tropin 2022-02-05home: services: import i18n module....Fixes <https://issues.guix.gnu.org/53701>. Reported by Roland Everaert <r.everaert@protonmail.com> and Holger Peters <holger.peters@posteo.de>. * gnu/home/services.scm (%initialize-gettext): remove setlocale for guile scripts. (compute-on-first-login-script): add module import for i18n. (compute-on-change-gexp): add module import for i18n. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Justin Martin 2022-01-28home: 'reconfigure' checks for potential downgrades....* guix/scripts/home.scm (show-help, %options): Add "--allow-downgrades". (%default-options): Remove 'build-mode'; add 'validate-reconfigure'. (perform-action): Add #:validate-reconfigure. Call 'check-forward-update' when ACTION is 'reconfigure. (process-action): Pass #:validate-reconfigure to 'perform-action'. * gnu/home/services.scm (home-provenance): Export. * doc/guix.texi (Invoking guix home): Document '--allow-downgrades'. Ludovic Courtès 2022-01-03home: services: Make strings in Gexps translateble....* gnu/home/services.scm (%initialize-gettext): New variable. (compute-on-first-login-script): Use it. (compute-on-change-gexp): Likewise. * gnu/home/services/symlink-manager.scm (update-symlinks-script): Likewise. * po/guix/POTFILES.in: Add gnu/home-services.scm and gnu/home/services/symlink-manager.scm. Suggested-by: Ludovic Courtès <ludo@gnu.org> Link: <https://yhetil.org/guix-bugs/87sfvy8k1u.fsf@gnu.org> Signed-off-by: Ludovic Courtès <ludo@gnu.org> Xinglu Chen 2021-11-17gnu: home: services: Fix typo....* gnu/home/services.scm (compute-on-first-login-script): Fix spelling of "appropriate". Vagrant Cascadian 2021-11-16home: services: Fix typo....Reinstates 4dcec60fa6a93dbc93bef2cdb91e3633c705579e, minus the regression it introduced. * gnu/home/services.scm (compute-on-first-login-script): Use 'program-file', not 'gexp->script'. Ludovic Courtès 2021-11-16Revert "home-services: Demonadify 'on-first-login' handling."...This commit breaks building guix home guix home: error: reference to invalid output 'out' of derivation \ '/gnu/store/86zc4rijsswmfqnaq8rwixcxjl2zyl1c-on-first-login.drv' This reverts commit 4dcec60fa6a93dbc93bef2cdb91e3633c705579e. Efraim Flashner 2021-11-14home: services: Typo fix....* gnu/home/services.scm: Fix spelling of "directory". Vagrant Cascadian 2021-11-14home-services: Demonadify 'on-first-login' handling....* gnu/home/services.scm (compute-on-first-login-script): Use 'computed-file' instead of' gexp->script'. (on-first-login-script-entry): Expect a regular value rather than a monadic value and remove 'mlet'. Ludovic Courtès 2021-11-14home-services: on-first-login: Check if XDG_RUNTIME_DIR exists....Fixes <https://issues.guix.gnu.org/50945>. Reported by Jan Nieuwenhuizen <janneke@gnu.org>. * gnu/home-services.scm (on-first-login): on-first-login won't execute anything if XDG_RUNTIME_DIR doesn't exists. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Andrew Tropin 2021-10-09scripts: home: Make sure profile directory exists....* guix/scripts/home.scm (process-action): Make sure profile directory exists. Oleg Pykhalov 2021-10-09Move (gnu home-services) to (gnu home services)....* gnu/home-services.scm (%guix-home-root-directory): Replace gnu/home-services.scm with "gnu/home/services.scm". Rename to gnu/home/services.scm. * gnu/local.mk (GNU_SYSTEM_MODULES): Rename gnu/home-services.scm to gnu/home/services.scm. * doc/he-config-bare-bones.scm: Replace (gnu home-services) with (gnu home services). * gnu/home.scm: Same. * gnu/home/services/fontutils.scm: Same. * gnu/home/services/mcron.scm: Same. * gnu/home/services/shells.scm: Same. * gnu/home/services/shepherd.scm: Same. * gnu/home/services/symlink-manager.scm: Same. * gnu/home/services/xdg.scm: Same. * guix/scripts/home.scm: Same. * guix/self.scm: Same. Oleg Pykhalov