aboutsummaryrefslogtreecommitdiff
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2024 Dariqq <dariqq@posteo.net>
;;;
;;; 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 services pm)
  #:use-module (guix gexp)
  #:use-module (guix packages)
  #:use-module (guix records)
  #:use-module (gnu packages admin)
  #:use-module (gnu packages freedesktop)
  #:use-module (gnu packages linux)
  #:use-module (gnu services)
  #:use-module (gnu services base)
  #:use-module (gnu services configuration)
  #:use-module (gnu services dbus)
  #:use-module (gnu services shepherd)
  #:use-module (gnu system shadow)
  #:export (power-profiles-daemon-service-type
            power-profiles-daemon-configuration

            tlp-service-type
            tlp-configuration

            thermald-configuration
            thermald-service-type))

;;;
;;; power-profiles-daemon
;;;

(define-configuration/no-serialization power-profiles-daemon-configuration
  (power-profiles-daemon
   (file-like power-profiles-daemon)
   "The power-profiles-daemon package."))

(define (power-profiles-daemon-shepherd-service config)
  (match-record
      config <power-profiles-daemon-configuration>
      (power-profiles-daemon)
    (list (shepherd-service
           (provision '(power-profiles-daemon))
           (requirement '(dbus-system))
           (documentation "Run the power-profiles-daemon.")
           (start #~(make-forkexec-constructor
                     (list #$(file-append power-profiles-daemon
                                          "/libexec/power-profiles-daemon"))))
           (stop #~(make-kill-destructor))))))

(define %power-profiles-daemon-activation
  #~(begin
      (use-modules (guix build utils))
      (mkdir-p "/var/lib/power-profiles-daemon")))

(define power-profiles-daemon-service-type
  (let ((config->package
         (compose list power-profiles-daemon-configuration-power-profiles-daemon)))
    (service-type
     (name 'power-profiles-daemon)
     (extensions (list
                  (service-extension shepherd-root-service-type
                                     power-profiles-daemon-shepherd-service)
                  (service-extension dbus-root-service-type
                                     config->package)
                  (service-extension polkit-service-type
                                     config->package)
                  (service-extension profile-service-type
                                     config->package)
                  (service-extension activation-service-type
                                     (const %power-profiles-daemon-activation))))
     (default-value (power-profiles-daemon-configuration))
     (description "Run the power-profiles-daemon"))))



;;;
;;; tlp
;;;

(define (uglify-field-name field-name)
  (let ((str (symbol->string field-name)))
    (string-join (string-split
                  (string-upcase
                   (if (string-suffix? "?" str)
                       (substring str 0 (1- (string-length str)))
                       str))
                  #\-)
                 "_")))

(define (serialize-field field-name val)
  (format #t "~a=~a\n" (uglify-field-name field-name) val))

(define (serialize-boolean field-name val)
  (serialize-field field-name (if val "1" "0")))
(define-maybe boolean)

(define (serialize-string field-name val)
  (serialize-field field-name val))
(define-maybe string)

(define (space-separated-string-list? val)
  (and (list? val)
       (and-map (lambda (x)
                  (and (string? x) (not (string-index x #\space))))
                val)))
(define (serialize-space-separated-string-list field-name val)
  (serialize-field field-name
                   (format #f "~s"
                           (string-join val " "))))
(define-maybe space-separated-string-list)

(define (non-negative-integer? val)
  (and (exact-integer? val) (not (negative? val))))
(define (serialize-non-negative-integer field-name val)
  (serialize-field field-name val))
(define-maybe non-negative-integer)

(define (on-off-boolean? val)
  (boolean? val))
(define (serialize-on-off-boolean field-name val)
  (serialize-field field-name (if val "on" "off")))
(define-maybe on-off-boolean)

(define (y-n-boolean? val)
  (boolean? val))
(define (serialize-y-n-boolean field-name val)
  (serialize-field field-name (if val "Y" "N")))

(define-configuration tlp-configuration
  (tlp
   (file-like tlp)
   "The TLP package.")

  (tlp-enable?
   (boolean #t)
   "Set to true if you wish to enable TLP.")

  (tlp-default-mode
   (string "AC")
   "Default mode when no power supply can be detected.  Alternatives are
AC and BAT.")

  (disk-idle-secs-on-ac
   (non-negative-integer 0)
   "Number of seconds Linux kernel has to wait after the disk goes idle,
before syncing on AC.")

  (disk-idle-secs-on-bat
   (non-negative-integer 2)
   "Same as @code{disk-idle-ac} but on BAT mode.")

  (max-lost-work-secs-on-ac
   (non-negative-integer 15)
   "Dirty pages flushing periodicity, expressed in seconds.")

  (max-lost-work-secs-on-bat
   (non-negative-integer 60)
   "Same as @code{max-lost-work-secs-on-ac} but on BAT mode.")

  (cpu-scaling-governor-on-ac
   maybe-space-separated-string-list
   "CPU frequency scaling governor on AC mode.  With intel_pstate
driver, alternatives are powersave and performance.  With acpi-cpufreq driver,
alternatives are ondemand, powersave, performance and conservative.")

  (cpu-scaling-governor-on-bat
   maybe-space-separated-string-list
   "Same as @code{cpu-scaling-governor-on-ac} but on BAT mode.")

  (cpu-scaling-min-freq-on-ac
   maybe-non-negative-integer
   "Set the min available frequency for the scaling governor on AC.")

  (cpu-scaling-max-freq-on-ac
   maybe-non-negative-integer
   "Set the max available frequency for the scaling governor on AC.")

  (cpu-scaling-min-freq-on-bat
   maybe-non-negative-integer
   "Set the min available frequency for the scaling governor on BAT.")

  (cpu-scaling-max-freq-on-bat
   maybe-non-negative-integer
   "Set the max available frequency for the scaling governor on BAT.")

  (cpu-min-perf-on-ac
   maybe-non-negative-integer
   "Limit the min P-state to control the power dissipation of the CPU,
in AC mode.  Values are stated as a percentage of the available performance.")

  (cpu-max-perf-on-ac
   maybe-non-negative-integer
   "Limit the max P-state to control the power dissipation of the CPU,
in AC mode.  Values are stated as a percentage of the available performance.")

  (cpu-min-perf-on-bat
   maybe-non-negative-integer
   "Same as @code{cpu-min-perf-on-ac} on BAT mode.")

  (cpu-max-perf-on-bat
   maybe-non-negative-integer
   "Same as @code{cpu-max-perf-on-ac} on BAT mode.")

  (cpu-boost-on-ac?
   maybe-boolean
   "Enable CPU turbo boost feature on AC mode.")

  (cpu-boost-on-bat?
   maybe-boolean
   "Same as @code{cpu-boost-on-ac?} on BAT mode.")

  (sched-powersave-on-ac?
   (boolean #f)
   "Allow Linux kernel to minimize the number of CPU cores/hyper-threads
used under light load conditions.")

  (sched-powersave-on-bat?
   (boolean #t)
   "Same as @code{sched-powersave-on-ac?} but on BAT mode.")

  (nmi-watchdog?
   (boolean #f)
   "Enable Linux kernel NMI watchdog.")

  (phc-controls
   maybe-string
   "For Linux kernels with PHC patch applied, change CPU voltages.
An example value would be @samp{\"F:V F:V F:V F:V\"}.")

  (energy-perf-policy-on-ac
   (string "performance")
   "Set CPU performance versus energy saving policy on AC.  Alternatives are
performance, normal, powersave.")

  (energy-perf-policy-on-bat
   (string "powersave")
   "Same as @code{energy-perf-policy-ac} but on BAT mode.")

  (disks-devices
   (space-separated-string-list '("sda"))
   "Hard disk devices.")

  (disk-apm-level-on-ac
   (space-separated-string-list '("254" "254"))
   "Hard disk advanced power management level.")

  (disk-apm-level-on-bat
   (space-separated-string-list '("128" "128"))
   "Same as @code{disk-apm-bat} but on BAT mode.")

  (disk-spindown-timeout-on-ac
   maybe-space-separated-string-list
   "Hard disk spin down timeout.  One value has to be specified for
each declared hard disk.")

  (disk-spindown-timeout-on-bat
   maybe-space-separated-string-list
   "Same as @code{disk-spindown-timeout-on-ac} but on BAT mode.")

  (disk-iosched
   maybe-space-separated-string-list
   "Select IO scheduler for disk devices.  One value has to be specified
for each declared hard disk.  Example alternatives are cfq, deadline and noop.")

  (sata-linkpwr-on-ac
   (string "max_performance")
   "SATA aggressive link power management (ALPM) level.  Alternatives are
min_power, medium_power, max_performance.")

  (sata-linkpwr-on-bat
   (string "min_power")
   "Same as @code{sata-linkpwr-ac} but on BAT mode.")

  (sata-linkpwr-blacklist
   maybe-string
   "Exclude specified SATA host devices for link power management.")

  (ahci-runtime-pm-on-ac?
   maybe-on-off-boolean
   "Enable Runtime Power Management for AHCI controller and disks
on AC mode.")

  (ahci-runtime-pm-on-bat?
   maybe-on-off-boolean
   "Same as @code{ahci-runtime-pm-on-ac} on BAT mode.")

  (ahci-runtime-pm-timeout
   (non-negative-integer 15)
   "Seconds of inactivity before disk is suspended.")

  (pcie-aspm-on-ac
   (string "performance")
   "PCI Express Active State Power Management level.  Alternatives are
default, performance, powersave.")

  (pcie-aspm-on-bat
   (string "powersave")
   "Same as @code{pcie-aspm-ac} but on BAT mode.")

  (start-charge-thresh-bat0
   maybe-non-negative-integer
   "Percentage when battery 0 should begin charging.")

  (stop-charge-thresh-bat0
   maybe-non-negative-integer
   "Percentage when battery 0 should stop charging.")

  (start-charge-thresh-bat1
   maybe-non-negative-integer
   "Percentage when battery 1 should begin charging.")

  (stop-charge-thresh-bat1
   maybe-non-negative-integer
   "Percentage when battery 1 should stop charging.")

  (radeon-power-profile-on-ac
   (string "high")
   "Radeon graphics clock speed level.  Alternatives are
low, mid, high, auto, default.")

  (radeon-power-profile-on-bat
   (string "low")
   "Same as @code{radeon-power-ac} but on BAT mode.")

  (radeon-dpm-state-on-ac
   (string "performance")
   "Radeon dynamic power management method (DPM).  Alternatives are
battery, performance.")

  (radeon-dpm-state-on-bat
   (string "battery")
   "Same as @code{radeon-dpm-state-ac} but on BAT mode.")

  (radeon-dpm-perf-level-on-ac
   (string "auto")
   "Radeon DPM performance level.  Alternatives are
auto, low, high.")

  (radeon-dpm-perf-level-on-bat
   (string "auto")
   "Same as @code{radeon-dpm-perf-ac} but on BAT mode.")

  (wifi-pwr-on-ac?
   (on-off-boolean #f)
   "Wifi power saving mode.")

  (wifi-pwr-on-bat?
   (on-off-boolean #t)
   "Same as @code{wifi-power-ac?} but on BAT mode.")

  (wol-disable?
   (y-n-boolean #t)
   "Disable wake on LAN.")

  (sound-power-save-on-ac
   (non-negative-integer 0)
   "Timeout duration in seconds before activating audio power saving
 on Intel HDA and AC97 devices.  A value of 0 disables power saving.")

  (sound-power-save-on-bat
   (non-negative-integer 1)
   "Same as @code{sound-powersave-ac} but on BAT mode.")

  (sound-power-save-controller?
   (y-n-boolean #t)
   "Disable controller in powersaving mode on Intel HDA devices.")

  (bay-poweroff-on-bat?
   (boolean #f)
   "Enable optical drive in UltraBay/MediaBay on BAT mode.
Drive can be powered on again by releasing (and reinserting) the eject lever
or by pressing the disc eject button on newer models.")

  (bay-device
   (string "sr0")
   "Name of the optical drive device to power off.")

  (runtime-pm-on-ac
   (string "on")
   "Runtime Power Management for PCI(e) bus devices.  Alternatives are
on and auto.")

  (runtime-pm-on-bat
   (string "auto")
   "Same as @code{runtime-pm-ac} but on BAT mode.")

  (runtime-pm-all?
   (boolean #t)
   "Runtime Power Management for all PCI(e) bus devices, except
blacklisted ones.")

  (runtime-pm-blacklist
   maybe-space-separated-string-list
   "Exclude specified PCI(e) device addresses from Runtime Power Management.")

  (runtime-pm-driver-blacklist
   (space-separated-string-list '("radeon" "nouveau"))
   "Exclude PCI(e) devices assigned to the specified drivers from
Runtime Power Management.")

  (usb-autosuspend?
   (boolean #t)
   "Enable USB autosuspend feature.")

  (usb-blacklist
   maybe-string
   "Exclude specified devices from USB autosuspend.")

  (usb-blacklist-wwan?
   (boolean #t)
   "Exclude WWAN devices from USB autosuspend.")

  (usb-whitelist
   maybe-string
   "Include specified devices into USB autosuspend, even if they are
already excluded by the driver or via @code{usb-blacklist-wwan?}.")

  (usb-autosuspend-disable-on-shutdown?
   maybe-boolean
   "Enable USB autosuspend before shutdown.")

  (restore-device-state-on-startup?
   (boolean #f)
   "Restore radio device state (bluetooth, wifi, wwan) from previous
shutdown on system startup."))


(define (tlp-shepherd-service config)
  (let* ((tlp-bin (file-append
                   (tlp-configuration-tlp config) "/bin/tlp"))
         (tlp-action (lambda args
                       #~(lambda _
                           (zero? (system* #$tlp-bin #$@args))))))
    (list (shepherd-service
           (documentation "Run TLP script.")
           (provision '(tlp))
           (requirement '(user-processes))
           (start (tlp-action "init" "start"))
           (stop  (tlp-action "init" "stop"))))))

(define (tlp-activation config)
  (let* ((config-str (with-output-to-string
                       (lambda ()
                         (serialize-configuration
                          config
                          tlp-configuration-fields))))
         (config-file (plain-file "tlp" config-str)))
    (with-imported-modules '((guix build utils))
      #~(begin
          (use-modules (guix build utils))
          (copy-file #$config-file "/etc/tlp.conf")))))

(define tlp-service-type
  (service-type
   (name 'tlp)
   (extensions
    (list
     (service-extension shepherd-root-service-type
                        tlp-shepherd-service)
     (service-extension udev-service-type
                        (compose list tlp-configuration-tlp))
     (service-extension activation-service-type
                        tlp-activation)))
   (default-value (tlp-configuration))
   (description "Run TLP, a power management tool.")))

(define (generate-tlp-documentation)
  (generate-documentation
   `((tlp-configuration ,tlp-configuration-fields))
   'tlp-configuration))



;;;
;;; thermald
;;;
;;; This service implements cpu scaling.  Helps prevent overheating!

(define-record-type* <thermald-configuration>
  thermald-configuration make-thermald-configuration
  thermald-configuration?
  (adaptive?           thermald-adaptive?              ;boolean
                       (default #f))
  (ignore-cpuid-check? thermald-ignore-cpuid-check?    ;boolean
                       (default #f))
  (thermald            thermald-thermald               ;file-like
                       (default thermald)))

(define (thermald-shepherd-service config)
  (list
   (shepherd-service
    (provision '(thermald))
    (documentation "Run thermald cpu frequency scaling.")
    (start #~(make-forkexec-constructor
              '(#$(file-append (thermald-thermald config) "/sbin/thermald")
                "--no-daemon"
                #$@(if (thermald-adaptive? config)
                       '("--adaptive")
                       '())
                #$@(if (thermald-ignore-cpuid-check? config)
                       '("--ignore-cpuid-check")
                       '()))))
    (stop #~(make-kill-destructor)))))

(define thermald-service-type
  (service-type
   (name 'thermald)
   (extensions (list (service-extension shepherd-root-service-type
                                        thermald-shepherd-service)))
   (default-value (thermald-configuration))
   (description "Run thermald, a CPU frequency scaling service that helps
prevent overheating.")))
ext: Add harfbuzz (text shaping engine) to inputs....* gnu/packages/emacs.scm (emacs-next)[inputs]: Add harfbuzz. [arguments]: Enable harfbuzz in #:configure-flags. Signed-off-by: Marius Bakke <mbakke@fastmail.com> Alexey Abramov 2020-03-28Update email address and Savannah handle for Amin Bandali....* .mailmap, gnu/local.mk, gnu/packages/emacs-xyz.scm, gnu/packages/emacs.scm, gnu/packages/fonts.scm, gnu/packages/fpga.scm, gnu/packages/lean.scm, gnu/packages/maths.scm, gnu/packages/pulseaudio.scm: Update my email address. * build-aux/git-authenticate.scm: Update my Savannah handle. Amin Bandali 2020-03-27gnu: emacs: Fix format strings for compatibility with Guile 3....* gnu/packages/emacs.scm (emacs)[arguments]: In the 'patch-program-file-names' and 'install-site-start' phases, specify port in the calls to FORMAT. Marius Bakke 2020-03-27Merge branch 'master' into core-updates... Conflicts: gnu/packages/icu4c.scm gnu/packages/man.scm gnu/packages/python-xyz.scm guix/scripts/environment.scm guix/scripts/pack.scm guix/scripts/package.scm guix/scripts/pull.scm guix/store.scm Marius Bakke 2020-03-22gnu: emacs: Patch references to /bin/sh....When attempting to run ert-runner in the build side environment where /bin/sh doesn't exist as part of the emacs-elpy test suite, Emacs was throwing the error "Searching for program: No such file or directory, /bin/sh". This is because the default shell when SHELL is not set was "/bin/sh", as can be seen in callproc.c: sh = getenv ("SHELL"); Vshell_file_name = build_string (sh ? sh : "/bin/sh"); Thus, patch the occurrences of "/bin/sh" in the source files of Emacs to refer to their correct store location. * gnu/packages/emacs.scm (emacs)[phases]{patch-program-file-names}: Add phase. Maxim Cournoyer 2020-03-22gnu: emacs-minimal: Install the custom site-start file....This makes the EMACS-MINIMAL package more generally useful, by adding support to load autoload definitions. Note that this doesn't negatively impact the performance of the emacs-build-system, because at that time the --quick option is used, which disables loading site-start.el (which is the one calling GUIX-EMACS-AUTOLOAD-PACKAGES). * gnu/packages/emacs.scm (emacs-minimal)[phases]: Do not delete the 'install-site-start phase. [inputs]: Add the emacs/guix-emacs.el auxiliary file. Maxim Cournoyer 2020-03-22gnu: emacs: Re-indent....* gnu/packages/emacs.scm (emacs): Fix indentation. Maxim Cournoyer 2020-03-22gnu: emacs: Byte compile the site-lisp directory, without coupling....This re-instates what the previously reverted commit did, but without adding a dependency on the (guix build emacs-utils) module. * gnu/packages/emacs.scm (emacs)[phases]{install-site-start}: Define a EMACS-BYTE-COMPILE-DIRECTORY procedure, and use it. Maxim Cournoyer 2020-03-22Revert "gnu: emacs: Byte compile the site-lisp directory."...This reverts commit 4714d0fc1a96eb6d421b64b0b585fe8043dcd07b. Rational: Having to rebuild Emacs every time (guix build emacs-utils) changes is not great. Maxim Cournoyer 2020-03-04Merge branch 'master' into core-updatesMarius Bakke 2020-02-27gnu: emacs: Fix comment....* gnu/packages/emacs.scm (emacs): Fix comment. Maxim Cournoyer 2020-02-27gnu: emacs: Byte compile the site-lisp directory....* gnu/packages/emacs.scm (emacs): Use the (gnu build emacs-utils) module. Byte compile the site-lisp directory as part of the 'install-site-start' phase. (emacs-minimal, emacs-xwidgets, emacs-no-x, emacs-no-x-toolkit): Reset modules to those of the gnu-build-system. Maxim Cournoyer 2020-01-22gnu: Replace uses of 'libjpeg' with 'libjpeg-turbo'....* gnu/packages/abiword.scm (abiword)[inputs]: Change from LIBJPEG to LIBJPEG-TURBO. * gnu/packages/admin.scm (testdisk)[inputs]: Likewise. * gnu/packages/algebra.scm (giac)[inputs]: Likewise. * gnu/packages/animation.scm (synfig)[inputs]: Likewise. * gnu/packages/astronomy.scm (gnuastro, celestia)[inputs]: Likewise. * gnu/packages/cdrom.scm (dvdstyler)[inputs]: Likewise. * gnu/packages/cran.scm (r-jpeg, r-tiff, r-readbitmap)[inputs]: Likewise. * gnu/packages/cups.scm (cups-filters, hplip)[inputs]: Likewise. * gnu/packages/display-managers.scm (slim)[inputs]: Likewise. * gnu/packages/ebook.scm (fbreader)[inputs]: Likewise. * gnu/packages/emacs.scm (emacs)[inputs]: Likewise. * gnu/packages/enlightenment.scm (efl)[propagated-inputs]: Likewise. * gnu/packages/fltk.scm (fltk, ntk)[inputs]: Likewise. * gnu/packages/fontutils.scm (fontforge)[inputs]: Likewise. * gnu/packages/freedesktop.scm (weston)[inputs]: Likewise. * gnu/packages/game-development.scm (sfml, allegro, aseprite, python-pygame, eureka, ioquake3)[inputs]: Likewise. * gnu/packages/games.scm (adanaxisgpl, freedroidrpg, irrlicht, minetest, fizmo, supertuxkart, gzdoom, xmoto, xonotic)[inputs]: Likewise. * gnu/packages/gd.scm (gd, perl-gd)[inputs]: Likewise. * gnu/packages/ghostscript.scm (lcms)[inputs]: Likewise. (ghostscript)[inputs, native-inputs]: Likewise. * gnu/packages/gimp.scm (gegl, gimp)[inputs]: Likewise. * gnu/packages/gnome.scm (libgnomeui, eog, tracker-miners, gthumb)[inputs]: Likewise. * gnu/packages/gnunet.scm (libextractor)[inputs]: Likewise. * gnu/packages/gnustep.scm (windowmaker)[inputs]: Likewise. * gnu/packages/graphics.scm (blender, blender-2.79, openimageio, openscenegraph, openscenegraph-3.4, povray, fgallery)[inputs]: Likewise. * gnu/packages/graphviz.scm (graphviz)[inputs]: Likewise. * gnu/packages/gstreamer.scm (gst-plugins-good)[inputs]: Likewise. * gnu/packages/gtk.scm (gdk-pixbuf)[inputs]: Likewise. * gnu/packages/image-processing.scm (dcmtk, mia, vtk, opencv, vips, nip2, vxl, insight-toolkit)[inputs]: Likewise. * gnu/packages/image-viewers.scm (gpicview, luminance-hdr)[inputs]: Likewise. * gnu/packages/image.scm (jpegoptim, libtiff, leptonica, imlib2, freeimage, vigra, libwebp, libmng, jasper, steghide, jp2a)[inputs]: Likewise. * gnu/packages/imagemagick.scm (imagemagick, graphicsmagick)[inputs]: Likewise. * gnu/packages/java.scm (icedtea-6, icedtea-7, openjdk9, openjdk11, openjdk12)[inputs]: Likewise. * gnu/packages/kde-frameworks.scm (khtml)[inputs]: Likewise. * gnu/packages/kodi.scm (kodi)[inputs]: Likewise. * gnu/packages/machine-learning.scm (dlib, tensorflow)[inputs]: Likewise. * gnu/packages/mate.scm (atril, eom)[inputs]: Likewise. * gnu/packages/maths.scm (hdf4, hdf-java, hdf-eos2, netcdf)[inputs]: Likewise. * gnu/packages/netpbm.scm (netpbm)[inputs]: Likewise. * gnu/packages/pdf.scm (zathura-pdf-mupdf, podofo, mupdf, fbida)[inputs]: Likewise. * gnu/packages/photo.scm (libraw, libpano13, enblend-enfuse, darktable, hugin, rawtherapee)[inputs]: Likewise. * gnu/packages/prolog.scm (swi-prolog)[native-inputs]: Likewise. * gnu/packages/python-xyz.scm (python-hdf4, python-pillow)[inputs]: Likewise. * gnu/packages/qt.scm (qtbase, qtwebkit)[inputs]: Likewise. * gnu/packages/rdesktop.scm (freerdp)[inputs]: Likewise. * gnu/packages/scanner.scm (sane-backends, xsane)[inputs]: Likewise. * gnu/packages/scheme.scm (racket)[inputs]: Likewise. * gnu/packages/scribus.scm (scribus)[inputs]: Likewise. * gnu/packages/sdl.scm (sdl-image)[propagated-inputs]: Likewise. (guile-sdl)[native-inputs]: Likewise. * gnu/packages/spice.scm (spice-gtk)[inputs]: Likewise. * gnu/packages/statistics.scm (r-with-tests)[inputs]: Likewise. * gnu/packages/tcl.scm (perl-tk)[inputs]: Likewise. * gnu/packages/upnp.scm (readymedia)[inputs]: Likewise. * gnu/packages/video.scm (mplayer, mpv, v4l-utils, motion)[inputs]: Likewise. * gnu/packages/web-browsers.scm (dillo, links)[inputs]: Likewise. * gnu/packages/web.scm (netsurf)[inputs]: Likewise. * gnu/packages/webkit.scm (webkitgtk)[inputs]: Likewise. * gnu/packages/wine.scm (wine)[inputs]: Likewise. * gnu/packages/wv.scm (wv)[inputs]: Likewise. * gnu/packages/wxwidgets.scm (wxwidgets, wxwidgets-2)[inputs]: Likewise. * gnu/packages/xdisorg.scm (xscreensaver)[inputs]: Likewise. * gnu/packages/xfce.scm (tumbler)[inputs]: Likewise. * gnu/packages/xfig.scm (xfig, transfig)[inputs]: Likewise. * gnu/packages/xorg.scm (xpra)[inputs]: Likewise. Marius Bakke 2020-01-17Update email address for Amin Bandali....* .mailmap: Add name and email addresses for Amin Bandali. * gnu/local.mk, gnu/packages/emacs-xyz.scm, gnu/packages/emacs.scm, gnu/packages/fpga.scm, gnu/packages/lean.scm, gnu/packages/maths.scm: Update email address for Amin Bandali. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr> Amin Bandali 2019-12-23gnu: Add emacs-next....Add `emacs-next' for building latest Emacs from git. * gnu/packages/emacs.scm (emacs-next): New variable. (emacs): make the autoload deletion snippet not fail when eshell/esh-groups.el does not exist. This enables reuse of the entire snippet field of `emacs' for `emacs-next'. * gnu/packages/patches/emacs27-exec-path.patch: New file. * gnu/local.mk (dist_patch_DATA): Add the above patch file to it. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Amin Bandali 2019-12-09gnu: emacs: Delete the subdirs.el file under the site-lisp directory....This fixes bug #38533 (see: https://bugs.gnu.org/38533). * gnu/packages/emacs.scm (emacs)[phases]{install-site-start}: Delete the subdirs.el file. Reported-by: Diego Nicola Barbato <dnbarbato@posteo.de> Maxim Cournoyer 2019-12-07gnu: emacs: Reorder EMACSLOADPATH search path specification....Move Guix profiles' site-lisp before Emacs' own in the search path specification, so that user installed packages can override Emacs' builtin versions. Fixes issue #38399 (see: https://bugs.gnu.org/38399). Reported-by: Diego Nicola Barbato <dnbarbato@posteo.de> * gnu/packages/emacs.scm (emacs): Move the Emacs builtin library directory suffix to the end of the search path. Maxim Cournoyer 2019-12-04gnu: emacs: Simplify the EMACSLOADPATH search path specification....The EMACSLOADPATH can be greatly simplified by relying on a subdirs.el file that causes Emacs to search recursively a directory found in EMACSLOADPATH. * gnu/packages/emacs.scm (emacs)[native-search-paths]: Remove the match-all file pattern regexp. Remove the versioned site-lisp directory from searched files, as it appears unused by Emacs. Reported-by: Leo Prikler <leo.prikler@student.tugraz.at> Signed-off-by: Clément Lassieur <clement@lassieur.org> Maxim Cournoyer 2019-11-18gnu: emacs: Locate Elisp libraries via EMACSLOADPATH....* gnu/packages/emacs.scm (emacs): Add a search path specification for EMACSLOADPATH. Maxim Cournoyer 2019-10-12gnu: emacs: Add mailutils to inputs....* gnu/packages/emacs.scm (emacs)[inputs]: Add mailutils. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr> wednesday 2019-08-30gnu: emacs: Update to 26.3....* gnu/packages/emacs.scm (emacs): Update to 26.3. Tobias Geerinckx-Rice 2019-05-22gnu: emacs-minimal, emacs-xwidgets: Build with "--disable-build-details"....* gnu/packages/emacs.scm (emacs-minimal)[arguments]: Use 'substitute-keyword-arguments' for #:configure-flags, and pass "--disable-build-details". (emacs-xwidgets)[arguments]: Likewise. Ludovic Courtès 2019-05-22gnu: emacs: Make build more reproducible...* gnu/packages/emacs.scm (emacs)[arguments]: Add configure-flag to omit build information in binary. Signed-off-by: Ludovic Courtès <ludo@gnu.org> wednesday