diff options
Diffstat (limited to 'nixpkgs/pkgs/desktops/deepin/core/dde-control-center/default.nix')
-rw-r--r-- | nixpkgs/pkgs/desktops/deepin/core/dde-control-center/default.nix | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-control-center/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-control-center/default.nix new file mode 100644 index 000000000000..a8625084ba12 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/core/dde-control-center/default.nix @@ -0,0 +1,139 @@ +{ stdenv +, lib +, fetchFromGitHub +, dtkwidget +, qt5integration +, qt5platform-plugins +, dde-qt-dbus-factory +, deepin-pw-check +, udisks2-qt5 +, cmake +, qttools +, qtbase +, pkg-config +, qtx11extras +, qtmultimedia +, wrapQtAppsHook +, wrapGAppsHook +, gsettings-qt +, wayland +, kwayland +, qtwayland +, polkit-qt +, pcre +, xorg +, libselinux +, libsepol +, libxcrypt +, librsvg +, networkmanager-qt +, glib +, runtimeShell +, tzdata +, dbus +, gtest +}: + +stdenv.mkDerivation rec { + pname = "dde-control-center"; + version = "5.6.3"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-/gzS+IbopIDRpufsa9cEfFBOqehPUnF4IozvwW8UEbY="; + }; + + patches = [ + # UserExperienceProgramLicenseAgreement comes from a non-open source component(deepin-deepinid-client) + # If we don't block it, only an empty page will be displayed here + # Remove this patch when dde-control-center is upgraded to 6.0.0 + ./dont-show-endUserLicenseAgreement-for-deepinos.patch + ]; + + postPatch = '' + substituteInPlace src/frame/window/{mainwindow.cpp,insertplugin.cpp} com.deepin.controlcenter.develop.policy \ + --replace "/usr/lib/dde-control-center" "/run/current-system/sw/lib/dde-control-center" + + substituteInPlace src/frame/modules/datetime/timezone_dialog/timezone.cpp \ + --replace "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo" + + substituteInPlace src/frame/modules/accounts/accountsworker.cpp \ + --replace "/bin/bash" "${runtimeShell}" + + substituteInPlace dde-control-center-autostart.desktop \ + --replace "/usr" "$out" + + substituteInPlace com.deepin.dde.ControlCenter.service \ + --replace "/usr/bin/dbus-send" "${dbus}/bin/dbus-send" \ + --replace "/usr/share" "$out/share" + + substituteInPlace include/widgets/utils.h src/{reboot-reminder-dialog/main.cpp,frame/main.cpp,reset-password-dialog/main.cpp} \ + --replace "/usr/share/dde-control-center" "$out/share/dde-control-center" + + substituteInPlace dde-control-center-wapper \ + --replace "qdbus" "${qttools.bin}/bin/qdbus" \ + --replace "/usr/share" "$out/share" + ''; + + nativeBuildInputs = [ + cmake + qttools + pkg-config + wrapQtAppsHook + wrapGAppsHook + ]; + dontWrapGApps = true; + + buildInputs = [ + dtkwidget + qt5platform-plugins + dde-qt-dbus-factory + deepin-pw-check + qtbase + qtx11extras + qtmultimedia + gsettings-qt + udisks2-qt5 + wayland + kwayland + qtwayland + polkit-qt + pcre + xorg.libXdmcp + libselinux + libsepol + libxcrypt + librsvg + networkmanager-qt + gtest + ]; + + cmakeFlags = [ + "-DCVERSION=${version}" + "-DDISABLE_AUTHENTICATION=YES" + "-DDISABLE_ACTIVATOR=YES" + "-DDISABLE_SYS_UPDATE=YES" + "-DDISABLE_RECOVERY=YES" + ]; + + # qt5integration must be placed before qtsvg in QT_PLUGIN_PATH + qtWrapperArgs = [ + "--prefix QT_PLUGIN_PATH : ${qt5integration}/${qtbase.qtPluginPrefix}" + "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ librsvg ]}" + ]; + + preFixup = '' + glib-compile-schemas ${glib.makeSchemaPath "$out" "${pname}-${version}"} + qtWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; + + meta = with lib; { + description = "Control panel of Deepin Desktop Environment"; + homepage = "https://github.com/linuxdeepin/dde-control-center"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} |