4ed5208152
deepin: redefine updateScript to use genericUpdater
164 lines
6.0 KiB
Nix
164 lines
6.0 KiB
Nix
{ stdenv
|
|
, buildGoPackage
|
|
, fetchFromGitHub
|
|
, pkgconfig
|
|
, alsaLib
|
|
, coreutils
|
|
, dbus-factory
|
|
, dde-api
|
|
, dde-daemon
|
|
, dde-dock
|
|
, dde-file-manager
|
|
, dde-polkit-agent
|
|
, dde-session-ui
|
|
, deepin
|
|
, deepin-desktop-base
|
|
, deepin-desktop-schemas
|
|
, deepin-turbo
|
|
, dde-kwin
|
|
, glib
|
|
, gnome3
|
|
, go
|
|
, go-dbus-factory
|
|
, go-gir-generator
|
|
, go-lib
|
|
, gtk3
|
|
, jq
|
|
, kmod
|
|
, libX11
|
|
, libXi
|
|
, libcgroup
|
|
, pciutils
|
|
, psmisc
|
|
, pulseaudio
|
|
, systemd
|
|
, xorg
|
|
, wrapGAppsHook
|
|
}:
|
|
|
|
buildGoPackage rec {
|
|
pname = "startdde";
|
|
version = "5.0.1";
|
|
|
|
goPackagePath = "pkg.deepin.io/dde/startdde";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "linuxdeepin";
|
|
repo = pname;
|
|
rev = version;
|
|
sha256 = "1xydmglydksy7hjlavf5pbfy0s0lndgavh8x3kg2mg7d36mbra43";
|
|
};
|
|
|
|
goDeps = ./deps.nix;
|
|
|
|
nativeBuildInputs = [
|
|
pkgconfig
|
|
dbus-factory
|
|
jq
|
|
wrapGAppsHook
|
|
deepin.setupHook
|
|
];
|
|
|
|
buildInputs = [
|
|
dde-api
|
|
go-dbus-factory
|
|
go-gir-generator
|
|
go-lib
|
|
alsaLib
|
|
dde-daemon
|
|
dde-dock
|
|
dde-file-manager
|
|
dde-kwin
|
|
dde-polkit-agent
|
|
dde-session-ui
|
|
deepin-desktop-schemas
|
|
deepin-turbo
|
|
glib
|
|
gnome3.dconf
|
|
gnome3.gnome-keyring
|
|
gnome3.libgnome-keyring
|
|
gtk3
|
|
kmod
|
|
libX11
|
|
libXi
|
|
libcgroup
|
|
pciutils
|
|
psmisc
|
|
pulseaudio
|
|
systemd
|
|
xorg.xdriinfo
|
|
];
|
|
|
|
postPatch = ''
|
|
searchHardCodedPaths # debugging
|
|
|
|
# Commented lines below indicates a doubt about how to fix the hard coded path
|
|
|
|
fixPath $out /etc/X11 Makefile
|
|
#fixPath ? /etc/xdg/autostop autostop/autostop.go
|
|
fixPath ${coreutils} /bin/ls copyfile_test.go
|
|
fixPath $out /usr/share/startdde/auto_launch.json launch_group.go
|
|
#fixPath ? /usr/bin/kwin_no_scale main.go # not found on deepin linux and archlinux
|
|
fixPath $out /usr/share/startdde/memchecker.json memchecker/config.go
|
|
fixPath $out /usr/bin/startdde misc/00deepin-dde-env
|
|
fixPath ${dde-file-manager} /usr/bin/dde-file-manager misc/auto_launch/chinese.json
|
|
fixPath ${deepin-turbo} /usr/lib/deepin-turbo/booster-dtkwidget misc/auto_launch/chinese.json
|
|
fixPath ${dde-daemon} /usr/lib/deepin-daemon/dde-session-daemon misc/auto_launch/chinese.json misc/auto_launch/default.json
|
|
fixPath ${dde-dock} /usr/bin/dde-dock misc/auto_launch/chinese.json misc/auto_launch/default.json
|
|
fixPath ${dde-file-manager} /usr/bin/dde-desktop misc/auto_launch/chinese.json misc/auto_launch/default.json
|
|
fixPath $out /usr/bin/startdde misc/deepin-session
|
|
#fixPath ? /usr/lib/lightdm/config-error-dialog.sh misc/deepin-session # provided by lightdm on deepin linux
|
|
#fixPath ? /usr/sbin/lightdm-session misc/deepin-session # provided by lightdm on deepin linux
|
|
fixPath ${dde-session-ui} /usr/bin/dde-lock session.go
|
|
fixPath ${dde-session-ui} /usr/bin/dde-shutdown session.go
|
|
fixPath ${dde-session-ui} /usr/lib/deepin-daemon/dde-osd session.go
|
|
fixPath ${deepin-desktop-base} /etc/deepin-version session.go
|
|
fixPath ${gnome3.gnome-keyring} /usr/bin/gnome-keyring-daemon session.go
|
|
fixPath ${pulseaudio} /usr/bin/pulseaudio sound_effect.go
|
|
#fixPath ? /usr/lib/UIAppSched.hooks startmanager.go # not found anything about this
|
|
fixPath ${dde-session-ui} /usr/lib/deepin-daemon/dde-welcome utils.go
|
|
fixPath ${dde-polkit-agent} /usr/lib/polkit-1-dde/dde-polkit-agent watchdog/dde_polkit_agent.go
|
|
#fixPath ? /var/log/Xorg.0.log wm/driver.go
|
|
#fixPath ? /etc/deepin-wm-switcher/config.json wm/switcher_config.go # not present on nixos, deepin linux and archlinux
|
|
|
|
substituteInPlace wm/driver.go --replace '/sbin/lsmod' "${kmod}/bin/lsmod"
|
|
|
|
substituteInPlace session.go --replace 'LookPath("cgexec"' 'LookPath("${libcgroup}/bin/cgexec"'
|
|
substituteInPlace vm.go --replace 'Command("dde-wm-chooser"' 'Command("${dde-session-ui}/bin/dde-wm-chooser"'
|
|
substituteInPlace vm.go --replace 'Command("systemd-detect-virt"' 'Command("${systemd}/bin/systemd-detect-virt"'
|
|
substituteInPlace wm/card_info.go --replace 'Command("lspci"' 'Command("${pciutils}/bin/lspci"'
|
|
substituteInPlace wm/driver.go --replace 'Command("lspci"' 'Command("${pciutils}/bin/lspci"'
|
|
substituteInPlace wm/driver.go --replace 'Command("xdriinfo"' 'Command("${xorg.xdriinfo}/bin/xdriinfo"'
|
|
substituteInPlace wm/platform.go --replace 'Command("gsettings"' 'Command("${glib}/bin/gsettings"'
|
|
substituteInPlace wm/platform.go --replace 'Command("uname"' 'Command("${coreutils}/bin/uname"'
|
|
substituteInPlace wm/switcher.go --replace 'Command("killall"' 'Command("${psmisc}/bin/killall"'
|
|
'';
|
|
|
|
buildPhase = ''
|
|
make -C go/src/${goPackagePath}
|
|
'';
|
|
|
|
installPhase = ''
|
|
make install PREFIX="$out" -C go/src/${goPackagePath}
|
|
rm -rf $out/share/lightdm # this is uselesss for NixOS
|
|
remove-references-to -t ${go} $out/sbin/*
|
|
'';
|
|
|
|
postFixup = ''
|
|
searchHardCodedPaths $out # debugging
|
|
'';
|
|
|
|
passthru = {
|
|
updateScript = deepin.updateScript { inherit pname version src; };
|
|
providedSessions = [ "deepin" ];
|
|
};
|
|
|
|
meta = with stdenv.lib; {
|
|
description = "Starter of deepin desktop environment";
|
|
homepage = "https://github.com/linuxdeepin/startdde";
|
|
license = licenses.gpl3;
|
|
platforms = platforms.linux;
|
|
maintainers = with maintainers; [ romildo ];
|
|
};
|
|
}
|