{ stdenv , buildGoPackage , fetchFromGitHub , pkgconfig , alsaLib , coreutils , 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 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 ]; }; }