forked from mirrors/nixpkgs
Merge pull request #3369 from matejc/fixcpufreqmodule
fix e18 cpufreq module: set setuid to freqset
This commit is contained in:
commit
cbb6948b4e
|
@ -6,6 +6,7 @@ let
|
|||
|
||||
xcfg = config.services.xserver;
|
||||
cfg = xcfg.desktopManager.e18;
|
||||
e18_enlightenment = pkgs.e18.enlightenment.override { set_freqset_setuid = true; };
|
||||
|
||||
in
|
||||
|
||||
|
@ -23,18 +24,20 @@ in
|
|||
config = mkIf (xcfg.enable && cfg.enable) {
|
||||
|
||||
environment.systemPackages = [
|
||||
pkgs.e18.efl pkgs.e18.evas pkgs.e18.emotion pkgs.e18.elementary pkgs.e18.enlightenment
|
||||
pkgs.e18.efl pkgs.e18.evas pkgs.e18.emotion pkgs.e18.elementary e18_enlightenment
|
||||
pkgs.e18.terminology pkgs.e18.econnman
|
||||
];
|
||||
|
||||
services.xserver.desktopManager.session = [
|
||||
{ name = "E18";
|
||||
start = ''
|
||||
${pkgs.e18.enlightenment}/bin/enlightenment_start
|
||||
${e18_enlightenment}/bin/enlightenment_start
|
||||
waitPID=$!
|
||||
'';
|
||||
}];
|
||||
|
||||
security.setuidPrograms = [ "e18_freqset" ];
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ stdenv, fetchurl, pkgconfig, e18, xlibs, libffi, pam, alsaLib, luajit }:
|
||||
{ stdenv, fetchurl, pkgconfig, e18, xlibs, libffi, pam, alsaLib, luajit, set_freqset_setuid ? false }:
|
||||
stdenv.mkDerivation rec {
|
||||
name = "enlightenment-${version}";
|
||||
version = "0.18.8";
|
||||
|
@ -10,6 +10,20 @@ stdenv.mkDerivation rec {
|
|||
preConfigure = ''
|
||||
export NIX_CFLAGS_COMPILE="-I${e18.efl}/include/eo-1 -I${e18.efl}/include/ecore-imf-1 -I${e18.efl}/include/ethumb-client-1 -I${e18.efl}/include/ethumb-1 $NIX_CFLAGS_COMPILE"
|
||||
'';
|
||||
|
||||
# this is a hack and without this cpufreq module is not working:
|
||||
# when set_freqset_setuid is true and "e18_freqset" is set in setuidPrograms (this is taken care of in e18 NixOS module),
|
||||
# then this postInstall does the folowing:
|
||||
# 1. moves the "freqset" binary to "e18_freqset",
|
||||
# 2. linkes "e18_freqset" to enlightenment/bin so that,
|
||||
# 3. setuidPrograms detects it and makes appropriate stuff to /var/setuid-wrappers/e18_freqset,
|
||||
# 4. and finaly, linkes /var/setuid-wrappers/e18_freqset to original destination where enlightenment wants it
|
||||
postInstall = if set_freqset_setuid then ''
|
||||
export CPUFREQ_DIRPATH=`readlink -f $out/lib/enlightenment/modules/cpufreq/linux-gnu-*`;
|
||||
mv $CPUFREQ_DIRPATH/freqset $CPUFREQ_DIRPATH/e18_freqset
|
||||
ln -sv $CPUFREQ_DIRPATH/e18_freqset $out/bin/e18_freqset
|
||||
ln -sv /var/setuid-wrappers/e18_freqset $CPUFREQ_DIRPATH/freqset
|
||||
'' else "";
|
||||
meta = {
|
||||
description = "The Compositing Window Manager and Desktop Shell";
|
||||
homepage = http://enlightenment.org/;
|
||||
|
|
Loading…
Reference in a new issue