Previously processes started from the window manager would have a couple
of leaked file descriptors: writable /var/log/slim.log and readable
/gnu/store/…-xinitrc.
* gnu/services/xorg.scm (xinitrc)[builder]: Add 'close-all-fdes'. Use
it in 'exec-from-login-shell'.
That makes WindowMaker the default session, by default.
* gnu/services/xorg.scm (xsessions-directory)[builder]: Prepend a number
in the file name to preserve the order of SESSIONS.
(slim-service): Augment docstring.
* doc/guix.texi (X Window): Adjust accordingly.
* gnu/services/xorg.scm (<session-type>): New record type.
(%windowmaker-session-type, %ratpoison-session-type): New variables.
(%default-xsessions): Use them.
(xsessions-directory): Expect SESSIONS to be a list of <session-type>
and rewrite accordingly.
(slim-service): Adjust docstring.
* doc/guix.texi (X Window): Update accordingly.
Includes fixes for CVE-2014-8091, CVE-2014-8092, CVE-2014-8093, CVE-2014-8094,
CVE-2014-8095, CVE-2014-8096, CVE-2014-8097, CVE-2014-8098, CVE-2014-8099,
CVE-2014-8100, CVE-2014-8101, CVE-2014-8102, and CVE-2014-8103.
See <http://www.x.org/wiki/Development/Security/Advisory-2014-12-09/>
* gnu/packages/xorg.scm (xorg-server): Update to 1.16.2.901. Move mesa,
resourceproto, scrnsaverproto, and xf86driproto from inputs to
propagated-inputs. Add dri3proto and presentproto to propagated-inputs.
Add eudev and libxshmfence to inputs. Add a 'pre-configure' phase instead
of modifying the 'configure' phase. Adapt substitution that avoids trying
to 'mkdir /var' to build system changes.
* gnu/services/xorg.scm (xserver.conf): Add xf86-input-evdev ModulePath line.
* gnu/packages/xorg.scm (xf86-video-modesetting): Remove a comment stating
that the libdrm used in this driver is incompatible with the one in mesa,
because it is no longer true.
* gnu/services/xorg.scm (xserver.conf): Uncomment 'xf86-video-modesetting'
ModulePath and remove associated comment.
This is a followup to 1d18d87, which fixes <http://bugs.gnu.org/19119>.
* gnu/services/xorg.scm (xinitrc)[builder]: Add 'exec-from-login-shell'
procedure. Use it instead of 'execl' when launching XSESSION, WMAKER,
or RATPOISON.
Fixes <http://bugs.gnu.org/19119>.
Reported by David Thompson <dthompson2@worcester.edu>.
* gnu/services/xorg.scm (xinitrc): Augment $PATH to include
~/.guix-profile/bin.
* gnu/artwork.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* gnu/services/xorg.scm: Use it.
(%artwork-repository): Remove.
* gnu/system/grub.scm: Use it.
(%artwork-repository): Remove.
* gnu/services/xorg.scm (xorg-start-command): Add #:drivers parameter.
Add 'device-section' procedure, and use it in 'xserver.conf'.
* doc/guix.texi (X Window): Document it.
* gnu/packages/xorg.scm (xf86-video-modesetting): New variable.
* gnu/services/xorg.scm (xorg-start-command)[xserver.conf]: Add
ModulePath line for XF86-VIDEO-MODESETTING, commented out.
* gnu/packages/xorg.scm (xf86-input-vmmouse): Remove. This driver
implement the mouse protocol of a proprietary emulator.
* gnu/services/xorg.scm (xorg-start-command): Remove reference.
* gnu/services/xorg.scm (xorg-start-command)[xserver.conf]: Add
'ModulePath' entries for xf86-video-{fbdev,cirrus,intel,mach64,nv} and
xf86-input-{synaptics,vmmouse}.
* gnu/system.scm (etc-directory): Change default value of #:profile.
Change contents of SHELLS. Use /run/current-system/profile/{s,}bin in
BASHRC.
(operating-system-boot-script)[%modules]: Add (guix build
linux-initrd). Add call to 'activate-current-system' in gexp.
(operating-system-initrd-file, operating-system-grub.cfg): New
procedures.
(operating-system-derivation): Don't build grub.cfg here and remove it
from the file union.
* gnu/system/vm.scm (qemu-image): Remove #:populate.
(operating-system-build-gid, operating-system-default-contents):
Remove.
(system-qemu-image): Remove call to
'operating-system-default-contents'. Use 'operating-system-grub.cfg'
to get grub.cfg. Add GRUB.CFG to #:inputs.
(system-qemu-image/shared-store): Likewise, but don't add GRUB.CFG to
#:inputs.
(system-qemu-image/shared-store-script): Pass --system kernel option.
* guix/build/activation.scm (%booted-system, %current-system): New
variables.
(boot-time-system, activate-current-system): New procedures.
* guix/build/install.scm (evaluate-populate-directive): Add case
for ('directory name uid gid mode).
(directives, populate-root-file-system): New procedures.
* guix/build/vm.scm (initialize-hard-disk): Replace calls to
'evaluate-populate-directive' by a call to
'populate-root-file-system'.
* gnu/services/dmd.scm (dmd-configuration-file): Use
/run/current-system/profile/bin.
* gnu/services/xorg.scm (slim-service): Likewise.
* gnu/services.scm (<service>)[inputs]: Remove.
* gnu/system.scm (links): Remove.
(etc-directory): Add PASSWD and SHADOW to #:inputs.
(operating-system-boot-script): Pass ETC to 'dmd-configuration-file'.
(operating-system-derivation): Remove EXTRAS from the union.
* gnu/system/linux.scm (pam-service->configuration): Rewrite in terms of
'gexp->derivation'. Compute the contents on the build side. Expect
'arguments' to contain a list of gexps.
(pam-services->directory): Rewrite in terms of 'gexp->derivation'.
(unix-pam-service): Change 'arguments' to a list of one gexp.
* gnu/system/shadow.scm (<user-account>)[inputs]: Remove.
[shell]: Change default value to a gexp.
(passwd-file): Rewrite in terms of 'gexp->derivation'. Compute
contents on the build side.
* gnu/services/base.scm (host-name-service, mingetty-service,
nscd-service, syslog-service, guix-service): Change 'start' and 'stop'
to gexps; remove 'inputs' field.
(guix-build-accounts): Change 'shell' field to a gexp.
* gnu/services/networking.scm (static-networking-service): Change
'start' and 'stop' to gexps; remove 'inputs' field.
* gnu/services/xorg.scm (slim-service): Likewise.
* gnu/services/dmd.scm (dmd-configuration-file): Expect ETC to be a
derivation. Change 'config' to a gexp. Use 'gexp->file' instead of
'text-file'.
* doc/guix.texi (Defining Services): Update nscd example with gexps, and
without 'inputs'. Add xref to "G-Expressions".