diff options
author | John Ericson <John.Ericson@Obsidian.Systems> | 2018-05-18 17:48:37 -0400 |
---|---|---|
committer | John Ericson <John.Ericson@Obsidian.Systems> | 2018-05-18 17:48:37 -0400 |
commit | 5ccb99e372e0b811c330788fdc863937db020079 (patch) | |
tree | c09b9db67eb14b7adb38580e6972a142c032c636 /pkgs/desktops/enlightenment/enlightenment.nix | |
parent | e1a538c0da9107c67dabb5b649b21d575fa1d812 (diff) | |
parent | 974fa94fd81204645150f03543288ddb481a8b67 (diff) | |
download | nixlib-5ccb99e372e0b811c330788fdc863937db020079.tar nixlib-5ccb99e372e0b811c330788fdc863937db020079.tar.gz nixlib-5ccb99e372e0b811c330788fdc863937db020079.tar.bz2 nixlib-5ccb99e372e0b811c330788fdc863937db020079.tar.lz nixlib-5ccb99e372e0b811c330788fdc863937db020079.tar.xz nixlib-5ccb99e372e0b811c330788fdc863937db020079.tar.zst nixlib-5ccb99e372e0b811c330788fdc863937db020079.zip |
Merge remote-tracking branch 'upstream/master' into staging
Diffstat (limited to 'pkgs/desktops/enlightenment/enlightenment.nix')
-rw-r--r-- | pkgs/desktops/enlightenment/enlightenment.nix | 41 |
1 files changed, 35 insertions, 6 deletions
diff --git a/pkgs/desktops/enlightenment/enlightenment.nix b/pkgs/desktops/enlightenment/enlightenment.nix index b0fd5f3db2b2..dc538625bf09 100644 --- a/pkgs/desktops/enlightenment/enlightenment.nix +++ b/pkgs/desktops/enlightenment/enlightenment.nix @@ -35,15 +35,44 @@ stdenv.mkDerivation rec { gdbm pcre mesa_noglu + xkeyboard_config ] ++ stdenv.lib.optionals stdenv.isLinux [ libcap ]; - # Instead of setting owner to root and permissions to setuid/setgid - # (which is not allowed for files in /nix/store) of some - # enlightenment programs, the file $out/e-wrappers.nix is created, - # containing the needed configuration for that purpose. It can be - # used in the enlightenment module. - patches = [ ./enlightenment.suid-exes.patch ]; + patches = [ + # Some programs installed by enlightenment (to set the cpu frequency, + # for instance) need root ownership and setuid/setgid permissions, which + # are not allowed for files in /nix/store. Instead of allowing the + # installer to try to do this, the file $out/e-wrappers.nix is created, + # containing the needed configuration for wrapping those programs. It + # can be used in the enlightenment module. The idea is: + # + # 1) rename the original binary adding the extension .orig + # 2) wrap the renamed binary at /run/wrappers/bin/ + # 3) create a new symbolic link using the original binary name (in the + # original directory where enlightenment wants it) pointing to the + # wrapper + + ./enlightenment.suid-exes.patch + ]; + + postPatch = '' + # In order to get the available keyboard layouts Enlightenment looks for + # the file xorg.lst, that should be provided by xkeyboard-config (when + # configured with option --with-xkb-rules-symlink=xorg). Currently + # xkeyboard-config is not configured with this option in + # NixOS. Therefore it is needed to add base.lst (which xorg.lst would be + # a symbolic link to) explicitly as an alternative. + + sed "/#ifdef XKB_BASE/a XKB_BASE \"\/rules\/base.lst\"," \ + -i src/modules/wizard/page_011.c src/modules/xkbswitch/e_mod_parse.c + + # edge_cc is a binary provided by efl and cannot be found at the directory + # given by e_prefix_bin_get(), which is $out/bin + + substituteInPlace src/bin/e_import_config_dialog.c \ + --replace "e_prefix_bin_get()" "\"${efl}/bin\"" + ''; mesonFlags = [ "-Dsystemdunitdir=lib/systemd/user" ]; |