diff options
author | Alyssa Ross <hi@alyssa.is> | 2023-06-16 06:56:35 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2023-06-16 06:56:35 +0000 |
commit | 99fcaeccb89621dd492203ce1f2d551c06f228ed (patch) | |
tree | 41cb730ae07383004789779b0f6e11cb3f4642a3 /nixpkgs/pkgs/desktops/deepin | |
parent | 59c5f5ac8682acc13bb22bc29c7cf02f7d75f01f (diff) | |
parent | 75a5ebf473cd60148ba9aec0d219f72e5cf52519 (diff) | |
download | nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar.gz nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar.bz2 nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar.lz nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar.xz nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar.zst nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.zip |
Merge branch 'nixos-unstable' of https://github.com/NixOS/nixpkgs
Conflicts: nixpkgs/nixos/modules/config/console.nix nixpkgs/nixos/modules/services/mail/mailman.nix nixpkgs/nixos/modules/services/mail/public-inbox.nix nixpkgs/nixos/modules/services/mail/rss2email.nix nixpkgs/nixos/modules/services/networking/ssh/sshd.nix nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix nixpkgs/pkgs/applications/networking/irc/weechat/default.nix nixpkgs/pkgs/applications/window-managers/sway/default.nix nixpkgs/pkgs/build-support/go/module.nix nixpkgs/pkgs/build-support/rust/build-rust-package/default.nix nixpkgs/pkgs/development/interpreters/python/default.nix nixpkgs/pkgs/development/node-packages/overrides.nix nixpkgs/pkgs/development/tools/b4/default.nix nixpkgs/pkgs/servers/dict/dictd-db.nix nixpkgs/pkgs/servers/mail/public-inbox/default.nix nixpkgs/pkgs/tools/security/pinentry/default.nix nixpkgs/pkgs/tools/text/unoconv/default.nix nixpkgs/pkgs/top-level/all-packages.nix
Diffstat (limited to 'nixpkgs/pkgs/desktops/deepin')
84 files changed, 6787 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/desktops/deepin/apps/deepin-album/default.nix b/nixpkgs/pkgs/desktops/deepin/apps/deepin-album/default.nix new file mode 100644 index 000000000000..49e2919c2fc0 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-album/default.nix @@ -0,0 +1,76 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, pkg-config +, qttools +, wrapQtAppsHook +, dtkwidget +, qt5integration +, qt5platform-plugins +, qtbase +, qtsvg +, udisks2-qt5 +, gio-qt +, image-editor +, glibmm +, freeimage +, opencv +, ffmpeg +, ffmpegthumbnailer +}: + +stdenv.mkDerivation rec { + pname = "deepin-album"; + version = "5.10.9"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-S/oVRD72dtpnvfGV6YfN5/syrmWA44H/1BbmAe0xjAY="; + }; + + # This patch should be removed after upgrading to 6.0.0 + postPatch = '' + substituteInPlace libUnionImage/CMakeLists.txt \ + --replace "/usr" "$out" + substituteInPlace src/CMakeLists.txt \ + --replace "/usr" "$out" + ''; + + nativeBuildInputs = [ + cmake + pkg-config + qttools + wrapQtAppsHook + ]; + + buildInputs = [ + dtkwidget + qt5integration + qt5platform-plugins + qtbase + qtsvg + udisks2-qt5 + gio-qt + image-editor + glibmm + freeimage + opencv + ffmpeg + ffmpegthumbnailer + ]; + + strictDeps = true; + + cmakeFlags = [ "-DVERSION=${version}" ]; + + meta = with lib; { + description = "A fashion photo manager for viewing and organizing pictures"; + homepage = "https://github.com/linuxdeepin/deepin-album"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/apps/deepin-calculator/default.nix b/nixpkgs/pkgs/desktops/deepin/apps/deepin-calculator/default.nix new file mode 100644 index 000000000000..af3c39a149a1 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-calculator/default.nix @@ -0,0 +1,56 @@ +{ stdenv +, lib +, fetchFromGitHub +, dtkwidget +, qt5integration +, qt5platform-plugins +, qtbase +, qtsvg +, dde-qt-dbus-factory +, cmake +, qttools +, pkg-config +, wrapQtAppsHook +, gtest +}: + +stdenv.mkDerivation rec { + pname = "deepin-calculator"; + version = "5.8.23"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-MczQWYIQfpSkyA3144y3zly66N0vgcVvTYR6B7Hq1aw="; + }; + + nativeBuildInputs = [ + cmake + qttools + pkg-config + wrapQtAppsHook + ]; + + buildInputs = [ + dtkwidget + qt5integration + qt5platform-plugins + qtbase + qtsvg + dde-qt-dbus-factory + gtest + ]; + + strictDeps = true; + + cmakeFlags = [ "-DVERSION=${version}" ]; + + meta = with lib; { + description = "An easy to use calculator for ordinary users"; + homepage = "https://github.com/linuxdeepin/deepin-calculator"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/apps/deepin-camera/default.nix b/nixpkgs/pkgs/desktops/deepin/apps/deepin-camera/default.nix new file mode 100644 index 000000000000..a80381f041d1 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-camera/default.nix @@ -0,0 +1,96 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, pkg-config +, qttools +, wrapQtAppsHook +, dtkwidget +, qt5integration +, qt5platform-plugins +, image-editor +, qtbase +, qtmultimedia +, ffmpeg +, ffmpegthumbnailer +, libusb1 +, portaudio +, libv4l +, gst_all_1 +, systemd +}: + +stdenv.mkDerivation rec { + pname = "deepin-camera"; + version = "1.4.11"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-GQQFwlJNfdsi0GvDRMIorUnlbXrgbYl9H9aBedOm+ZQ="; + }; + + # QLibrary and dlopen work with LD_LIBRARY_PATH + patches = [ ./dont_use_libPath.diff ]; + + postPatch = '' + substituteInPlace src/CMakeLists.txt \ + --replace "/usr/share/libimagevisualresult" "${image-editor}/share/libimagevisualresult" \ + --replace "/usr/include/libusb-1.0" "${lib.getDev libusb1}/include/libusb-1.0" + substituteInPlace src/com.deepin.Camera.service \ + --replace "/usr/bin/qdbus" "${lib.getBin qttools}/bin/qdbus" \ + --replace "/usr/share" "$out/share" + ''; + + nativeBuildInputs = [ + cmake + pkg-config + qttools + wrapQtAppsHook + ]; + + buildInputs = [ + dtkwidget + qt5integration + qt5platform-plugins + image-editor + qtbase + qtmultimedia + ffmpeg + ffmpegthumbnailer + libusb1 + portaudio + libv4l + ] ++ (with gst_all_1 ; [ + gstreamer + gst-plugins-base + gst-plugins-good + gst-plugins-bad + ]); + + cmakeFlags = [ "-DVERSION=${version}" ]; + + strictDeps = true; + + env.NIX_CFLAGS_COMPILE = toString [ + "-I${gst_all_1.gstreamer.dev}/include/gstreamer-1.0" + "-I${gst_all_1.gst-plugins-base.dev}/include/gstreamer-1.0" + ]; + + qtWrapperArgs = [ + "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ ffmpeg ffmpegthumbnailer gst_all_1.gstreamer gst_all_1.gst-plugins-base libusb1 libv4l portaudio systemd ]}" + ]; + + preFixup = '' + qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0") + ''; + + meta = with lib; { + description = "Tool to view camera, take photo and video"; + homepage = "https://github.com/linuxdeepin/deepin-camera"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/apps/deepin-camera/dont_use_libPath.diff b/nixpkgs/pkgs/desktops/deepin/apps/deepin-camera/dont_use_libPath.diff new file mode 100644 index 000000000000..b4ef86f79b38 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-camera/dont_use_libPath.diff @@ -0,0 +1,25 @@ +diff --git a/src/src/mainwindow.cpp b/src/src/mainwindow.cpp +index d3c6f5c..4817446 100644 +--- a/src/src/mainwindow.cpp ++++ b/src/src/mainwindow.cpp +@@ -781,19 +781,7 @@ void CMainWindow::slotPopupSettingsDialog() + + QString CMainWindow::libPath(const QString &strlib) + { +- QDir dir; +- QString path = QLibraryInfo::location(QLibraryInfo::LibrariesPath); +- dir.setPath(path); +- QStringList list = dir.entryList(QStringList() << (strlib + "*"), QDir::NoDotAndDotDot | QDir::Files); //filter name with strlib +- +- if (list.contains(strlib)) +- return strlib; +- +- list.sort(); +- if (list.size() > 0) +- return list.last(); +- +- return ""; ++ return strlib; + } + + void CMainWindow::reflushSnapshotLabel() diff --git a/nixpkgs/pkgs/desktops/deepin/apps/deepin-clone/default.nix b/nixpkgs/pkgs/desktops/deepin/apps/deepin-clone/default.nix new file mode 100644 index 000000000000..533d2562e625 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-clone/default.nix @@ -0,0 +1,73 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, qttools +, pkg-config +, qtbase +, wrapQtAppsHook +, dtkwidget +, qt5integration +, qt5platform-plugins +, libuuid +, parted +, partclone +}: + +stdenv.mkDerivation rec { + pname = "deepin-clone"; + version = "5.0.11"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-ZOJc8R82R9q87Qpf/J4CXE+xL6nvbsXRIs0boNY+2uk="; + }; + + postPatch = '' + substituteInPlace app/{deepin-clone-ionice,deepin-clone-pkexec,deepin-clone.desktop,com.deepin.pkexec.deepin-clone.policy.tmp} \ + --replace "/usr" "$out" + + substituteInPlace app/src/corelib/ddevicediskinfo.cpp \ + --replace "/sbin/blkid" "${libuuid}/bin/blkid" + + substituteInPlace app/src/corelib/helper.cpp \ + --replace "/bin/lsblk" "${libuuid}/bin/lsblk" \ + --replace "/sbin/sfdisk" "${libuuid}/bin/sfdisk" \ + --replace "/sbin/partprobe" "${parted}/bin/partprobe" \ + --replace "/usr/sbin" "${partclone}/bin" + ''; + + nativeBuildInputs = [ + cmake + qttools + pkg-config + wrapQtAppsHook + ]; + + buildInputs = [ + qtbase + dtkwidget + qt5integration + qt5platform-plugins + libuuid + parted + partclone + ]; + + cmakeFlags = [ + "-DDISABLE_DFM_PLUGIN=YES" + ]; + + strictDeps = true; + + meta = with lib; { + description = "Disk and partition backup/restore tool"; + homepage = "https://github.com/linuxdeepin/deepin-clone"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} + diff --git a/nixpkgs/pkgs/desktops/deepin/apps/deepin-compressor/default.nix b/nixpkgs/pkgs/desktops/deepin/apps/deepin-compressor/default.nix new file mode 100644 index 000000000000..55c1f4d4f293 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-compressor/default.nix @@ -0,0 +1,71 @@ +{ stdenv +, lib +, fetchFromGitHub +, dtkwidget +, qt5integration +, qt5platform-plugins +, udisks2-qt5 +, cmake +, qtbase +, qttools +, pkg-config +, kcodecs +, karchive +, wrapQtAppsHook +, minizip +, libzip +, libarchive +}: + +stdenv.mkDerivation rec { + pname = "deepin-compressor"; + version = "5.12.15"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-6grnbv9hMKntOmpVcmU5IpAbHM7r0dQWb+SoQYtc5YY="; + }; + + postPatch = '' + substituteInPlace src/source/common/pluginmanager.cpp \ + --replace "/usr/lib/" "$out/lib/" + substituteInPlace src/desktop/deepin-compressor.desktop \ + --replace "/usr" "$out" + ''; + + nativeBuildInputs = [ + cmake + qttools + pkg-config + wrapQtAppsHook + ]; + + buildInputs = [ + dtkwidget + qt5integration + qt5platform-plugins + udisks2-qt5 + kcodecs + karchive + minizip + libzip + libarchive + ]; + + cmakeFlags = [ + "-DVERSION=${version}" + "-DUSE_TEST=OFF" + ]; + + strictDeps = true; + + meta = with lib; { + description = "A fast and lightweight application for creating and extracting archives"; + homepage = "https://github.com/linuxdeepin/deepin-compressor"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/apps/deepin-draw/default.nix b/nixpkgs/pkgs/desktops/deepin/apps/deepin-draw/default.nix new file mode 100644 index 000000000000..c07ca9e0b880 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-draw/default.nix @@ -0,0 +1,57 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, qttools +, pkg-config +, wrapQtAppsHook +, qtbase +, qtsvg +, dtkwidget +, qt5integration +, qt5platform-plugins +}: + +stdenv.mkDerivation rec { + pname = "deepin-draw"; + version = "6.0.5"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-WeubXsshN4tUlIwEHTxHXv1L2dvJ2DZ6qtSPyiVtc98="; + }; + + postPatch = '' + substituteInPlace com.deepin.Draw.service \ + --replace "/usr/bin/deepin-draw" "$out/bin/deepin-draw" + ''; + + nativeBuildInputs = [ + cmake + qttools + pkg-config + wrapQtAppsHook + ]; + + buildInputs = [ + qtbase + qt5integration + qtsvg + dtkwidget + qt5platform-plugins + ]; + + cmakeFlags = [ "-DVERSION=${version}" ]; + + strictDeps = true; + + meta = with lib; { + description = "Lightweight drawing tool for users to freely draw and simply edit images"; + homepage = "https://github.com/linuxdeepin/deepin-draw"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/apps/deepin-editor/default.nix b/nixpkgs/pkgs/desktops/deepin/apps/deepin-editor/default.nix new file mode 100644 index 000000000000..8724eec96850 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-editor/default.nix @@ -0,0 +1,64 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, pkg-config +, qttools +, wrapQtAppsHook +, dtkwidget +, qt5integration +, qt5platform-plugins +, qtbase +, qtsvg +, dde-qt-dbus-factory +, kcodecs +, syntax-highlighting +, libchardet +, libuchardet +, libiconv +}: + +stdenv.mkDerivation rec { + pname = "deepin-editor"; + version = "6.0.7"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-7dHSybjoWZ1alcMsMm4BEEQJjQgNmhC7Eskeo3ZmoS8="; + }; + + nativeBuildInputs = [ + cmake + pkg-config + qttools + wrapQtAppsHook + ]; + + buildInputs = [ + dtkwidget + qt5integration + qt5platform-plugins + qtbase + qtsvg + dde-qt-dbus-factory + kcodecs + syntax-highlighting + libchardet + libuchardet + libiconv + ]; + + strictDeps = true; + + cmakeFlags = [ "-DVERSION=${version}" ]; + + meta = with lib; { + description = "A desktop text editor that supports common text editing features"; + homepage = "https://github.com/linuxdeepin/deepin-editor"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/apps/deepin-image-viewer/0001-fix-install-path-for-nix.patch b/nixpkgs/pkgs/desktops/deepin/apps/deepin-image-viewer/0001-fix-install-path-for-nix.patch new file mode 100644 index 000000000000..61d13556acb6 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-image-viewer/0001-fix-install-path-for-nix.patch @@ -0,0 +1,25 @@ +From c2fa29800c64f5bda04203bb2eb1845b29c1de3c Mon Sep 17 00:00:00 2001 +From: rewine <luhongxu@deepin.org> +Date: Fri, 25 Mar 2022 18:20:17 +0800 +Subject: [PATCH] fix install path for nix + +--- + qimage-plugins/libraw/CMakeLists.txt | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/qimage-plugins/libraw/CMakeLists.txt b/qimage-plugins/libraw/CMakeLists.txt +index 4bfd85ad..00d11bd3 100644 +--- a/qimage-plugins/libraw/CMakeLists.txt ++++ b/qimage-plugins/libraw/CMakeLists.txt +@@ -44,7 +44,6 @@ target_include_directories(xraw PUBLIC ${RAW_INCLUDE_DIRS} ${Qt5Gui_INCLUDE_DIR + + target_link_libraries(${CMD_NAME} Qt5::Core Qt5::Gui raw) + +-install(TARGETS ${CMD_NAME} DESTINATION ${Qt5Core_DIR}/../../qt5/plugins/imageformats) +- ++install(TARGETS ${CMD_NAME} DESTINATION qt5/plugins/imageformats) + + QT5_USE_MODULES(${PROJECT_NAME} Core Gui) +-- +2.35.1 + diff --git a/nixpkgs/pkgs/desktops/deepin/apps/deepin-image-viewer/default.nix b/nixpkgs/pkgs/desktops/deepin/apps/deepin-image-viewer/default.nix new file mode 100644 index 000000000000..e512dd277545 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-image-viewer/default.nix @@ -0,0 +1,82 @@ +{ stdenv +, lib +, fetchFromGitHub +, fetchpatch +, qtbase +, qtsvg +, dtkwidget +, qt5integration +, qt5platform-plugins +, gio-qt +, udisks2-qt5 +, image-editor +, cmake +, pkg-config +, qttools +, wrapQtAppsHook +, libraw +, libexif +}: + +stdenv.mkDerivation rec { + pname = "deepin-image-viewer"; + version = "5.9.11"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-IkjAW4bqQLEWF2tgccYCVnQgcEp9DJoXrEx2HDC25gs="; + }; + + patches = [ + ./0001-fix-install-path-for-nix.patch + (fetchpatch { + name = "chore-use-GNUInstallDirs-in-CmakeLists.patch"; + url = "https://github.com/linuxdeepin/deepin-image-viewer/commit/4a046e6207fea306e592fddc33c1285cf719a63d.patch"; + sha256 = "sha256-aIgYmq6WDfCE+ZcD0GshxM+QmBWZGjh9MzZcTMrhBJ0="; + }) + (fetchpatch { + name = "fix-build-with-libraw-0_21.patch"; + url = "https://raw.githubusercontent.com/archlinux/svntogit-community/2ff11979704dd7156a7e7c3bae9b30f08894063d/trunk/libraw-0.21.patch"; + sha256 = "sha256-I/w4uiANT8Z8ud/F9WCd3iRHOfplu3fpqnu8ZIs4C+w="; + }) + ]; + + postPatch = '' + substituteInPlace src/com.deepin.ImageViewer.service \ + --replace "/usr/bin/deepin-image-viewer" "$out/bin/deepin-image-viewer" + ''; + + nativeBuildInputs = [ + cmake + pkg-config + qttools + wrapQtAppsHook + ]; + + buildInputs = [ + qtbase + qtsvg + dtkwidget + qt5integration + qt5platform-plugins + gio-qt + udisks2-qt5 + image-editor + libraw + libexif + ]; + + strictDeps = true; + + cmakeFlags = [ "-DVERSION=${version}" ]; + + meta = with lib; { + description = "An image viewing tool with fashion interface and smooth performance"; + homepage = "https://github.com/linuxdeepin/deepin-image-viewer"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/apps/deepin-movie-reborn/default.nix b/nixpkgs/pkgs/desktops/deepin/apps/deepin-movie-reborn/default.nix new file mode 100644 index 000000000000..b4741fe2f9c1 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-movie-reborn/default.nix @@ -0,0 +1,140 @@ +{ stdenv +, lib +, fetchFromGitHub +, fetchpatch +, runtimeShell +, cmake +, pkg-config +, wrapQtAppsHook +, qtbase +, qttools +, qtx11extras +, qtmultimedia +, dtkwidget +, qt5integration +, qt5platform-plugins +, qtmpris +, qtdbusextended +, gsettings-qt +, elfutils +, ffmpeg +, ffmpegthumbnailer +, mpv +, xorg +, pcre +, libdvdread +, libdvdnav +, libunwind +, libva +, zstd +, glib +, gst_all_1 +, gtest +, libpulseaudio +}: + +stdenv.mkDerivation rec { + pname = "deepin-movie-reborn"; + version = "5.10.23"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-0m8wYRQGsdN4zpnHUJKCfF05SdvTauRSp6gCu2F9ZAI"; + }; + + patches = [ + (fetchpatch { + name = "feat-rewrite-libPath-to-read-LD_LIBRARY_PATH.patch"; + url = "https://github.com/linuxdeepin/deepin-movie-reborn/commit/432bf452ed244c256e99ecaf80bb6a0eef9b4a74.patch"; + sha256 = "sha256-5hRQ8D9twBKgouVpIBa1pdAGk0lI/wEdQaHBBHFCZBA"; + }) + ]; + + postPatch = '' + # https://github.com/linuxdeepin/deepin-movie-reborn/pull/198 + substituteInPlace src/common/diskcheckthread.cpp \ + --replace "/usr/include/linux/cdrom.h" "linux/cdrom.h" + substituteInPlace src/widgets/toolbox_proxy.cpp \ + --replace "/bin/bash" "${runtimeShell}" + + # libdmr always assume that these libraries exist + # otherwise it will lead to coredump + # This affects the preview plugin for dde-file-manager + + substituteInPlace src/libdmr/{filefilter.cpp,playlist_model.cpp,gstutils.cpp} \ + --replace 'LibraryLoader::libPath("libavcodec.so")' '"${lib.getLib ffmpeg}/lib/libavcodec.so"' \ + --replace 'LibraryLoader::libPath("libavformat.so")' '"${lib.getLib ffmpeg}/lib/libavformat.so"' \ + --replace 'LibraryLoader::libPath("libavutil.so")' '"${lib.getLib ffmpeg}/lib/libavutil.so"' \ + --replace 'LibraryLoader::libPath("libffmpegthumbnailer.so")' '"${lib.getLib ffmpegthumbnailer}/lib/libffmpegthumbnailer.so"' \ + --replace 'LibraryLoader::libPath("libgstreamer-1.0.so")' '"${lib.getLib gst_all_1.gstreamer}/lib/libgstreamer-1.0.so"' \ + --replace 'LibraryLoader::libPath("libgstpbutils-1.0.so")' '"${lib.getLib gst_all_1.gst-plugins-base}/lib/libgstpbutils-1.0.so"' + ''; + + outputs = [ "out" "dev" ]; + + nativeBuildInputs = [ + cmake + pkg-config + qttools + wrapQtAppsHook + ]; + + buildInputs = [ + dtkwidget + qt5integration + qt5platform-plugins + qtx11extras + qtmultimedia + qtdbusextended + qtmpris + gsettings-qt + elfutils.dev + ffmpeg + ffmpegthumbnailer + xorg.libXtst + xorg.libXdmcp + xorg.xcbproto + pcre.dev + libdvdread + libdvdnav + libunwind + libva + zstd.dev + mpv + gtest + libpulseaudio + ] ++ (with gst_all_1; [ + gstreamer + gst-plugins-base + ]); + + env.NIX_CFLAGS_COMPILE = toString [ + "-I${gst_all_1.gstreamer.dev}/include/gstreamer-1.0" + "-I${gst_all_1.gst-plugins-base.dev}/include/gstreamer-1.0" + ]; + + cmakeFlags = [ + "-DVERSION=${version}" + ]; + + strictDeps = true; + + qtWrapperArgs = [ + "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ mpv ffmpeg ffmpegthumbnailer gst_all_1.gstreamer gst_all_1.gst-plugins-base ]}" + ]; + + preFixup = '' + glib-compile-schemas ${glib.makeSchemaPath "$out" "${pname}-${version}"} + qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0") + ''; + + meta = with lib; { + description = "Full-featured video player supporting playing local and streaming media in multiple video formats"; + homepage = "https://github.com/linuxdeepin/deepin-movie-reborn"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/apps/deepin-music/default.nix b/nixpkgs/pkgs/desktops/deepin/apps/deepin-music/default.nix new file mode 100644 index 000000000000..ecd7fde5944d --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-music/default.nix @@ -0,0 +1,95 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, pkg-config +, wrapQtAppsHook +, dtkwidget +, qt5integration +, qt5platform-plugins +, dde-qt-dbus-factory +, udisks2-qt5 +, qtmpris +, qtdbusextended +, qtmultimedia +, qttools +, kcodecs +, ffmpeg +, libvlc +, libpulseaudio +, libcue +, taglib +, gsettings-qt +, SDL2 +, gtest +, qtbase +, gst_all_1 +}: + +stdenv.mkDerivation rec { + pname = "deepin-music"; + version = "6.2.27"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-0adAAQe9WG1G+JcxD4ypYyYE4MrRijfuj/VBno2WsLk="; + }; + + postPatch = '' + substituteInPlace src/music-player/CMakeLists.txt \ + --replace "/usr/include/vlc" "${libvlc}/include/vlc" + substituteInPlace src/music-player/data/deepin-music.desktop \ + --replace "/usr/bin/deepin-music" "$out/bin/deepin-music" + ''; + + nativeBuildInputs = [ + cmake + pkg-config + qttools + wrapQtAppsHook + ]; + + buildInputs = [ + dtkwidget + qt5integration + qt5platform-plugins + dde-qt-dbus-factory + udisks2-qt5 + qtmpris + qtdbusextended + qtmultimedia + kcodecs + ffmpeg + libvlc + libpulseaudio + libcue + taglib + gsettings-qt + SDL2 + gtest + ] ++ (with gst_all_1; [ + gstreamer + gst-plugins-base + gst-plugins-good + ]); + + cmakeFlags = [ + "-DVERSION=${version}" + ]; + + strictDeps = true; + + preFixup = '' + qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0") + ''; + + meta = with lib; { + description = "Awesome music player with brilliant and tweakful UI Deepin-UI based"; + homepage = "https://github.com/linuxdeepin/deepin-music"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/apps/deepin-picker/default.nix b/nixpkgs/pkgs/desktops/deepin/apps/deepin-picker/default.nix new file mode 100644 index 000000000000..0d710652e389 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-picker/default.nix @@ -0,0 +1,58 @@ +{ stdenv +, lib +, fetchFromGitHub +, qmake +, qttools +, pkg-config +, wrapQtAppsHook +, dtkwidget +, qtsvg +, xorg +, qtbase +}: + +stdenv.mkDerivation rec { + pname = "deepin-picker"; + version = "5.0.28"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-b463PqrCpt/DQqint5Xb0cRT66iHNPavj0lsTMv801k="; + }; + + nativeBuildInputs = [ + qmake + qttools + pkg-config + wrapQtAppsHook + ]; + + buildInputs = [ + dtkwidget + qtsvg + xorg.libXtst + ]; + + postPatch = '' + substituteInPlace com.deepin.Picker.service \ + --replace "/usr/bin/deepin-picker" "$out/bin/deepin-picker" + ''; + + qmakeFlags = [ + "BINDIR=${placeholder "out"}/bin" + "ICONDIR=${placeholder "out"}/share/icons/hicolor/scalable/apps" + "APPDIR=${placeholder "out"}/share/applications" + "DSRDIR=${placeholder "out"}/share/deepin-picker" + "DOCDIR=${placeholder "out"}/share/dman/deepin-picker" + ]; + + meta = with lib; { + description = "Color picker application"; + homepage = "https://github.com/linuxdeepin/deepin-picker"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/apps/deepin-reader/default.nix b/nixpkgs/pkgs/desktops/deepin/apps/deepin-reader/default.nix new file mode 100644 index 000000000000..952a626b9fb7 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-reader/default.nix @@ -0,0 +1,72 @@ +{ stdenv +, lib +, fetchFromGitHub +, qmake +, pkg-config +, qttools +, wrapQtAppsHook +, dtkwidget +, qt5integration +, qt5platform-plugins +, dde-qt-dbus-factory +, qtwebengine +, karchive +, poppler +, libchardet +, libspectre +, openjpeg +, djvulibre +, qtbase +}: + +stdenv.mkDerivation rec { + pname = "deepin-reader"; + version = "5.10.29"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-IpgmTmnrPWc9EFZVM+S2nFxdpPjbgXqEWUnK/O9FmUg="; + }; + + patches = [ ./use-pkg-config.diff ]; + + postPatch = '' + substituteInPlace reader/{reader.pro,document/Model.cpp} htmltopdf/htmltopdf.pro 3rdparty/deepin-pdfium/src/src.pro \ + --replace "/usr" "$out" + ''; + + nativeBuildInputs = [ + qmake + pkg-config + qttools + wrapQtAppsHook + ]; + + buildInputs = [ + dtkwidget + qt5integration + qt5platform-plugins + dde-qt-dbus-factory + qtwebengine + karchive + poppler + libchardet + libspectre + djvulibre + openjpeg + ]; + + qmakeFlags = [ + "DEFINES+=VERSION=${version}" + ]; + + meta = with lib; { + description = "A simple memo software with texts and voice recordings"; + homepage = "https://github.com/linuxdeepin/deepin-reader"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/apps/deepin-reader/use-pkg-config.diff b/nixpkgs/pkgs/desktops/deepin/apps/deepin-reader/use-pkg-config.diff new file mode 100644 index 000000000000..7993cecd30ad --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-reader/use-pkg-config.diff @@ -0,0 +1,46 @@ +diff --git a/3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium.pri b/3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium.pri +index 3e04f340..894b0ac7 100755 +--- a/3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium.pri ++++ b/3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium.pri +@@ -20,13 +20,8 @@ DEFINES += USE_SYSTEM_LIBJPEG \ + USE_SYSTEM_LIBOPENJPEG2 \ + USE_SYSTEM_FREETYPE + +-INCLUDEPATH += /usr/include/openjpeg-2.3 \ +- /usr/include/openjpeg-2.4 \ +- /usr/include/freetype2 \ +- /usr/include/freetype2/freetype \ +- /usr/include/freetype2/freetype/config +- +-LIBS += -lopenjp2 -llcms2 -lfreetype ++CONFIG += link_pkgconfig ++PKGCONFIG += libopenjp2 lcms2 freetype2 + + #QMAKE_CXXFLAGS += "-Wc++11-narrowing" #is_clang + #QMAKE_CXXFLAGS += "-Wno-inconsistent-missing-override" #is_clang Suppress no override warning for overridden functions. +diff --git a/3rdparty/deepin-pdfium/src/src.pro b/3rdparty/deepin-pdfium/src/src.pro +index 196b91d3..bda71ff4 100755 +--- a/3rdparty/deepin-pdfium/src/src.pro ++++ b/3rdparty/deepin-pdfium/src/src.pro +@@ -2,7 +2,9 @@ TARGET = $$PWD/../lib/deepin-pdfium + + TEMPLATE = lib + +-CONFIG += c++14 ++CONFIG += c++14 link_pkgconfig ++ ++PKGCONFIG += chardet + + ###安全漏洞检测 + #QMAKE_CXX += -g -fsanitize=undefined,address -O2 +@@ -28,10 +30,6 @@ include($$PWD/3rdparty/pdfium/pdfium.pri) + + INCLUDEPATH += $$PWD/../include + +-INCLUDEPATH += /usr/include/chardet +- +-LIBS += -lchardet +- + public_headers += \ + $$PWD/../include/dpdfglobal.h \ + $$PWD/../include/dpdfdoc.h \ diff --git a/nixpkgs/pkgs/desktops/deepin/apps/deepin-screen-recorder/default.nix b/nixpkgs/pkgs/desktops/deepin/apps/deepin-screen-recorder/default.nix new file mode 100644 index 000000000000..1e41012dfc28 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-screen-recorder/default.nix @@ -0,0 +1,97 @@ +{ stdenv +, lib +, fetchFromGitHub +, qmake +, pkg-config +, qttools +, wrapQtAppsHook +, dtkwidget +, qt5integration +, dde-qt-dbus-factory +, dde-dock +, qtbase +, qtmultimedia +, qtx11extras +, image-editor +, gsettings-qt +, xorg +, libusb1 +, libv4l +, ffmpeg +, ffmpegthumbnailer +, portaudio +, kwayland +, udev +, gst_all_1 +}: +stdenv.mkDerivation rec { + pname = "deepin-screen-recorder"; + version = "5.12.1"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-43jqgiBa77UAes0ekMES6IqVOPVXfzfQQjePdxFkNDM="; + }; + + patches = [ ./dont_use_libPath.diff ]; + + postPatch = '' + substituteInPlace screen_shot_recorder.pro deepin-screen-recorder.desktop \ + src/{src.pro,pin_screenshots/pin_screenshots.pro} \ + src/dde-dock-plugins/{shotstart/shotstart.pro,recordtime/recordtime.pro} \ + assets/com.deepin.Screenshot.service \ + --replace "/usr" "$out" + ''; + + nativeBuildInputs = [ + qmake + pkg-config + qttools + wrapQtAppsHook + ]; + + buildInputs = [ + dtkwidget + dde-qt-dbus-factory + dde-dock + qtbase + qtmultimedia + qtx11extras + image-editor + gsettings-qt + xorg.libXdmcp + xorg.libXtst + xorg.libXcursor + libusb1 + libv4l + ffmpeg + ffmpegthumbnailer + portaudio + kwayland + udev + ] ++ (with gst_all_1; [ + gstreamer + gst-plugins-base + gst-plugins-good + ]); + + # qt5integration must be placed before qtsvg in QT_PLUGIN_PATH + qtWrapperArgs = [ + "--prefix QT_PLUGIN_PATH : ${qt5integration}/${qtbase.qtPluginPrefix}" + "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ udev gst_all_1.gstreamer libv4l ]}" + ]; + + preFixup = '' + qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0") + ''; + + meta = with lib; { + description = "Screen recorder application for dde"; + homepage = "https://github.com/linuxdeepin/deepin-screen-recorder"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/apps/deepin-screen-recorder/dont_use_libPath.diff b/nixpkgs/pkgs/desktops/deepin/apps/deepin-screen-recorder/dont_use_libPath.diff new file mode 100644 index 000000000000..3707ab4c67c2 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-screen-recorder/dont_use_libPath.diff @@ -0,0 +1,36 @@ +diff --git a/src/gstrecord/gstinterface.cpp b/src/gstrecord/gstinterface.cpp +index b269b01..c075295 100644 +--- a/src/gstrecord/gstinterface.cpp ++++ b/src/gstrecord/gstinterface.cpp +@@ -48,6 +48,7 @@ gstInterface::gstInterface() + } + QString gstInterface::libPath(const QString &sLib) + { ++ return sLib; + qInfo() << "gstreamer lib name is " << sLib; + QDir dir; + QString path = QLibraryInfo::location(QLibraryInfo::LibrariesPath); +diff --git a/src/main_window.cpp b/src/main_window.cpp +index 7bfc78e..dcbbc2f 100755 +--- a/src/main_window.cpp ++++ b/src/main_window.cpp +@@ -585,6 +585,7 @@ void MainWindow::initDynamicLibPath() + } + QString MainWindow::libPath(const QString &strlib) + { ++ return strlib; + QDir dir; + QString path = QLibraryInfo::location(QLibraryInfo::LibrariesPath); + dir.setPath(path); +diff --git a/src/waylandrecord/avlibinterface.cpp b/src/waylandrecord/avlibinterface.cpp +index d7942d6..c5cfdf4 100644 +--- a/src/waylandrecord/avlibinterface.cpp ++++ b/src/waylandrecord/avlibinterface.cpp +@@ -105,6 +105,7 @@ avlibInterface::avlibInterface() + + QString avlibInterface::libPath(const QString &sLib) + { ++ return sLib; + //qDebug() << sLib; + QDir dir; + QString path = QLibraryInfo::location(QLibraryInfo::LibrariesPath); diff --git a/nixpkgs/pkgs/desktops/deepin/apps/deepin-screensaver/default.nix b/nixpkgs/pkgs/desktops/deepin/apps/deepin-screensaver/default.nix new file mode 100644 index 000000000000..27b96a23937a --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-screensaver/default.nix @@ -0,0 +1,69 @@ +{ stdenv +, lib +, fetchFromGitHub +, qmake +, qttools +, pkg-config +, wrapQtAppsHook +, qtbase +, qtx11extras +, qtdeclarative +, dtkwidget +, dde-qt-dbus-factory +, xorg +, xscreensaver +}: + +stdenv.mkDerivation rec { + pname = "deepin-screensaver"; + version = "5.0.16"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-d/BllaXZxRdJe8nH+hhQIEutpBvAWFnBHWbIjznUfQU="; + }; + + postPatch = '' + patchShebangs {src,customscreensaver/deepin-custom-screensaver}/{generate_translations.sh,update_translations.sh} + + substituteInPlace src/{dbusscreensaver.cpp,com.deepin.ScreenSaver.service,src.pro} \ + customscreensaver/deepin-custom-screensaver/deepin-custom-screensaver.pro \ + --replace "/usr" "$out" \ + --replace "/etc" "$out/etc" + + substituteInPlace tools/preview/main.cpp \ + --replace "/usr/lib/xscreensaver" "${xscreensaver}/libexec/xscreensaver" + ''; + + nativeBuildInputs = [ + qmake + qttools + pkg-config + wrapQtAppsHook + ]; + + buildInputs = [ + qtbase + qtx11extras + qtdeclarative + dtkwidget + dde-qt-dbus-factory + xorg.libXScrnSaver + ]; + + qmakeFlags = [ + "XSCREENSAVER_DATA_PATH=${xscreensaver}/libexec/xscreensaver" + "COMPILE_ON_V23=false" + ]; + + meta = with lib; { + description = "A screensaver service developed by deepin"; + homepage = "https://github.com/linuxdeepin/deepin-screensaver"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} + diff --git a/nixpkgs/pkgs/desktops/deepin/apps/deepin-shortcut-viewer/default.nix b/nixpkgs/pkgs/desktops/deepin/apps/deepin-shortcut-viewer/default.nix new file mode 100644 index 000000000000..a9e1f8d7e977 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-shortcut-viewer/default.nix @@ -0,0 +1,52 @@ +{ stdenv +, lib +, fetchFromGitHub +, dtkwidget +, qt5integration +, qt5platform-plugins +, qmake +, qtbase +, qttools +, pkg-config +, wrapQtAppsHook +}: + +stdenv.mkDerivation rec { + pname = "deepin-shortcut-viewer"; + version = "5.0.7"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-r/ZhA9yiPnJNTrBkVOvaTqfRvGO/NTod5tiQCquG5Gw="; + }; + + nativeBuildInputs = [ + qmake + qttools + pkg-config + wrapQtAppsHook + ]; + + buildInputs = [ + qtbase + dtkwidget + qt5integration + qt5platform-plugins + ]; + + qmakeFlags = [ + "VERSION=${version}" + "PREFIX=${placeholder "out"}" + ]; + + meta = with lib; { + description = "Deepin Shortcut Viewer"; + homepage = "https://github.com/linuxdeepin/deepin-shortcut-viewer"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} + diff --git a/nixpkgs/pkgs/desktops/deepin/apps/deepin-system-monitor/default.nix b/nixpkgs/pkgs/desktops/deepin/apps/deepin-system-monitor/default.nix new file mode 100644 index 000000000000..c3ff184d9197 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-system-monitor/default.nix @@ -0,0 +1,93 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, pkg-config +, qttools +, deepin-gettext-tools +, wrapQtAppsHook +, dtkwidget +, qt5integration +, qt5platform-plugins +, qtbase +, qtsvg +, qtx11extras +, dde-qt-dbus-factory +, dde-dock +, gsettings-qt +, procps +, libpcap +, libnl +, util-linux +, systemd +, polkit +}: + +stdenv.mkDerivation rec { + pname = "deepin-system-monitor"; + version = "5.9.33"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-X7/YwnJyA/HOLsOGARjsHWgL2qxW1eU1TvoWulvz0j4="; + }; + + postPatch = '' + substituteInPlace deepin-system-monitor-main/process/process_controller.cpp \ + deepin-system-monitor-main/process/priority_controller.cpp \ + deepin-system-monitor-main/service/service_manager.cpp \ + deepin-system-monitor-main/translations/policy/com.deepin.pkexec.deepin-system-monitor.policy \ + --replace "/usr/bin/kill" "${util-linux}/bin/kill" \ + --replace "/usr/bin/renice" "${util-linux}/bin/renice" \ + --replace '/usr/bin/systemctl' '${lib.getBin systemd}/systemctl' + + substituteInPlace deepin-system-monitor-main/{service/service_manager.cpp,process/{priority_controller.cpp,process_controller.cpp}} \ + --replace "/usr/bin/pkexec" "${lib.getBin polkit}/bin/pkexec" + + for file in $(grep -rl "/usr") + do + substituteInPlace $file \ + --replace "/usr" "$out" + done + ''; + + nativeBuildInputs = [ + cmake + pkg-config + qttools + deepin-gettext-tools + wrapQtAppsHook + ]; + + buildInputs = [ + dtkwidget + qt5integration + qt5platform-plugins + qtbase + qtsvg + qtx11extras + dde-qt-dbus-factory + dde-dock + gsettings-qt + procps + libpcap + libnl + ]; + + cmakeFlags = [ + "-DVERSION=${version}" + "-DUSE_DEEPIN_WAYLAND=OFF" + ]; + + strictDeps = true; + + meta = with lib; { + description = "A more user-friendly system monitor"; + homepage = "https://github.com/linuxdeepin/deepin-system-monitor"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/apps/deepin-terminal/default.nix b/nixpkgs/pkgs/desktops/deepin/apps/deepin-terminal/default.nix new file mode 100644 index 000000000000..9f27dbaab9e8 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-terminal/default.nix @@ -0,0 +1,65 @@ +{ stdenv +, lib +, fetchFromGitHub +, fetchpatch +, dtkwidget +, qt5integration +, qt5platform-plugins +, dde-qt-dbus-factory +, cmake +, qtbase +, qtsvg +, qttools +, qtx11extras +, pkg-config +, wrapQtAppsHook +, at-spi2-core +, libsecret +, chrpath +, lxqt +}: + +stdenv.mkDerivation rec { + pname = "deepin-terminal"; + version = "6.0.5"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-pRTdvR3hyiJVpi38Ex58X74ns+rSWuytsOXemvdW1Rk="; + }; + + cmakeFlags = [ "-DVERSION=${version}" ]; + + nativeBuildInputs = [ + cmake + qttools + pkg-config + wrapQtAppsHook + lxqt.lxqt-build-tools + ]; + + buildInputs = [ + qt5integration + qt5platform-plugins + qtbase + qtsvg + dtkwidget + dde-qt-dbus-factory + qtx11extras + at-spi2-core + libsecret + chrpath + ]; + + strictDeps = true; + + meta = with lib; { + description = "Terminal emulator with workspace, multiple windows, remote management, quake mode and other features"; + homepage = "https://github.com/linuxdeepin/deepin-terminal"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/apps/deepin-voice-note/default.nix b/nixpkgs/pkgs/desktops/deepin/apps/deepin-voice-note/default.nix new file mode 100644 index 000000000000..599baa24e436 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-voice-note/default.nix @@ -0,0 +1,77 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, pkg-config +, qttools +, wrapQtAppsHook +, qtbase +, dtkwidget +, qt5integration +, qt5platform-plugins +, dde-qt-dbus-factory +, qtmultimedia +, qtwebengine +, libvlc +, gst_all_1 +, gtest +}: +stdenv.mkDerivation rec { + pname = "deepin-voice-note"; + version = "5.11.1"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-JX4OuVu+5/a3IhkfnvaWVDaKl+xg/8qxlvp9hM0nHNU="; + }; + + postPatch = '' + substituteInPlace src/common/audiowatcher.cpp \ + --replace "/usr/share" "$out/share" + substituteInPlace assets/deepin-voice-note.desktop \ + --replace "/usr/bin" "$out/bin" + ''; + + nativeBuildInputs = [ + cmake + pkg-config + qttools + wrapQtAppsHook + ]; + + buildInputs = [ + qtbase + dtkwidget + qt5integration + qt5platform-plugins + dde-qt-dbus-factory + qtmultimedia + qtwebengine + libvlc + gtest + ] ++ (with gst_all_1; [ + gstreamer + gst-plugins-base + gst-plugins-good + ]); + + strictDeps = true; + + cmakeFlags = [ "-DVERSION=${version}" ]; + + env.NIX_CFLAGS_COMPILE = "-I${dde-qt-dbus-factory}/include/libdframeworkdbus-2.0"; + + preFixup = '' + qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0") + ''; + + meta = with lib; { + description = "Simple memo software with texts and voice recordings"; + homepage = "https://github.com/linuxdeepin/deepin-voice-note"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/artwork/dde-account-faces/default.nix b/nixpkgs/pkgs/desktops/deepin/artwork/dde-account-faces/default.nix new file mode 100644 index 000000000000..91438a043c0a --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/artwork/dde-account-faces/default.nix @@ -0,0 +1,26 @@ +{ stdenvNoCC +, lib +, fetchFromGitHub +}: + +stdenvNoCC.mkDerivation rec { + pname = "dde-account-faces"; + version = "1.0.12.1"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-NWjR8qxWi2IrcP0cSF+lLxBJ/GrVpk1BfTjVH0ytinY="; + }; + + makeFlags = [ "PREFIX=${placeholder "out"}/var" ]; + + meta = with lib; { + description = "Account faces of deepin desktop environment"; + homepage = "https://github.com/linuxdeepin/dde-account-faces"; + license = with licenses; [ gpl3Plus cc0 ]; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/artwork/deepin-gtk-theme/default.nix b/nixpkgs/pkgs/desktops/deepin/artwork/deepin-gtk-theme/default.nix new file mode 100644 index 000000000000..3864989196f3 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/artwork/deepin-gtk-theme/default.nix @@ -0,0 +1,31 @@ +{ stdenvNoCC +, lib +, fetchFromGitHub +, gtk-engine-murrine +}: + +stdenvNoCC.mkDerivation rec { + pname = "deepin-gtk-theme"; + version = "unstable-2022-07-26"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = "deepin-gtk-theme"; + rev = "5ac53cbdfba4e6804451605db726876a3be9fb07"; + sha256 = "sha256-NJ5URKYs4rVzddXxkwJK9ih40f8McVEbj3G1tPFAiMs"; + }; + + propagatedUserEnvPkgs = [ + gtk-engine-murrine + ]; + + makeFlags = [ "PREFIX=${placeholder "out"}" ]; + + meta = with lib; { + description = "Deepin GTK Theme"; + homepage = "https://github.com/linuxdeepin/deepin-gtk-theme"; + license = licenses.gpl3Plus; + platforms = platforms.unix; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/artwork/deepin-icon-theme/default.nix b/nixpkgs/pkgs/desktops/deepin/artwork/deepin-icon-theme/default.nix new file mode 100644 index 000000000000..0cda82fdfcf2 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/artwork/deepin-icon-theme/default.nix @@ -0,0 +1,46 @@ +{ stdenvNoCC +, lib +, fetchFromGitHub +, gtk3 +, xcursorgen +, papirus-icon-theme +}: + +stdenvNoCC.mkDerivation rec { + pname = "deepin-icon-theme"; + version = "2021.11.24"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-UC3PbqolcCbVrIEDqMovfJ4oeofMUGJag1A6u7X3Ml8="; + }; + + makeFlags = [ "PREFIX=${placeholder "out"}" ]; + + nativeBuildInputs = [ + gtk3 + xcursorgen + ]; + + propagatedBuildInputs = [ + papirus-icon-theme + ]; + + dontDropIconThemeCache = true; + + postFixup = '' + for theme in $out/share/icons/*; do + gtk-update-icon-cache $theme + done + ''; + + meta = with lib; { + description = "Deepin Icon Theme provides the base icon themes on Deepin"; + homepage = "https://github.com/linuxdeepin/deepin-icon-theme"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/artwork/deepin-sound-theme/default.nix b/nixpkgs/pkgs/desktops/deepin/artwork/deepin-sound-theme/default.nix new file mode 100644 index 000000000000..f311339b6be0 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/artwork/deepin-sound-theme/default.nix @@ -0,0 +1,26 @@ +{ stdenvNoCC +, lib +, fetchFromGitHub +}: + +stdenvNoCC.mkDerivation rec { + pname = "deepin-sound-theme"; + version = "15.10.6"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-BvG/ygZfM6sDuDSzAqwCzDXGT/bbA6Srlpg3br117OU="; + }; + + makeFlags = [ "PREFIX=${placeholder "out"}" ]; + + meta = with lib; { + description = "The freedesktop sound theme for Deepin"; + homepage = "https://github.com/linuxdeepin/deepin-sound-theme"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/artwork/deepin-wallpapers/default.nix b/nixpkgs/pkgs/desktops/deepin/artwork/deepin-wallpapers/default.nix new file mode 100644 index 000000000000..74a8786abe34 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/artwork/deepin-wallpapers/default.nix @@ -0,0 +1,45 @@ +{ stdenv +, lib +, fetchFromGitHub +, dde-api +}: + +stdenv.mkDerivation rec { + pname = "deepin-wallpapers"; + version = "1.7.10"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-D7DXyPh74VlYn5vKUzDh/P/xoskxs8N/BEg5ZemXRwk="; + }; + + nativeBuildInputs = [ dde-api ]; + + postPatch = '' + patchShebangs blur_image.sh + + substituteInPlace blur_image.sh \ + --replace /usr/lib/deepin-api/image-blur ${dde-api}/lib/deepin-api/image-blur + ''; + + installPhase = '' + runHook preInstall + mkdir -p $out/share/wallpapers/deepin + cp deepin/* $out/share/wallpapers/deepin + mkdir -p $out/share/wallpapers/image-blur + cp image-blur/* $out/share/wallpapers/image-blur + mkdir -p $out/share/backgrounds + ln -s $out/share/wallpapers/deepin/desktop.jpg $out/share/backgrounds/default_background.jpg + runHook postInstall + ''; + + meta = with lib; { + description = "deepin-wallpapers provides wallpapers of dde"; + homepage = "https://github.com/linuxdeepin/deepin-wallpapers"; + license = with licenses; [ gpl3Plus cc-by-sa-30 ]; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-app-services/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-app-services/default.nix new file mode 100644 index 000000000000..b6ab01e7c2b7 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/core/dde-app-services/default.nix @@ -0,0 +1,56 @@ +{ stdenv +, lib +, fetchFromGitHub +, dtkwidget +, qt5integration +, qt5platform-plugins +, cmake +, wrapQtAppsHook +, qtbase +}: + +stdenv.mkDerivation rec { + pname = "dde-app-services"; + version = "0.0.20"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-M9XXNV3N4CifOXitT6+UxaGsLoVuoNGqC5SO/mF+bLw="; + }; + + postPatch = '' + substituteInPlace dconfig-center/dde-dconfig-daemon/services/org.desktopspec.ConfigManager.service \ + --replace "/usr/bin/dde-dconfig-daemon" "$out/bin/dde-dconfig-daemon" + substituteInPlace dconfig-center/dde-dconfig/main.cpp \ + --replace "/bin/dde-dconfig-editor" "dde-dconfig-editor" + substituteInPlace dconfig-center/CMakeLists.txt \ + --replace 'add_subdirectory("example")' " " \ + --replace 'add_subdirectory("tests")' " " + ''; + + nativeBuildInputs = [ + cmake + wrapQtAppsHook + ]; + + buildInputs = [ + dtkwidget + qt5integration + qt5platform-plugins + ]; + + cmakeFlags = [ + "-DDVERSION=${version}" + "-DDSG_DATA_DIR=/run/current-system/sw/share/dsg" + ]; + + meta = with lib; { + description = "Provids dbus service for reading and writing DSG configuration"; + homepage = "https://github.com/linuxdeepin/dde-app-services"; + license = licenses.lgpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-calendar/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-calendar/default.nix new file mode 100644 index 000000000000..f3023c7cb9f3 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/core/dde-calendar/default.nix @@ -0,0 +1,85 @@ +{ stdenv +, lib +, fetchFromGitHub +, fetchpatch +, dtkwidget +, qt5integration +, qt5platform-plugins +, dde-qt-dbus-factory +, cmake +, qttools +, pkg-config +, wrapQtAppsHook +, runtimeShell +, qtbase +, gtest +}: + +stdenv.mkDerivation rec { + pname = "dde-calendar"; + version = "5.8.30"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-8/UXq9W3Gb1Lg/nOji6zcHJts6lgY2uDxvrBxQs3Zio="; + }; + + patches = [ + (fetchpatch { + name = "chore-use-GNUInstallDirs-in-CmakeLists.patch"; + url = "https://github.com/linuxdeepin/dde-calendar/commit/b9d9555d90a36318eeee62ece49250b4bf8acd10.patch"; + sha256 = "sha256-pvgxZPczs/lkwNjysNuVu+1AY69VZlxOn7hR9A02/3M="; + }) + ]; + + postPatch = '' + substituteInPlace calendar-service/src/dbmanager/huanglidatabase.cpp \ + --replace "/usr/share/dde-calendar/data/huangli.db" "$out/share/dde-calendar/data/huangli.db" + substituteInPlace calendar-service/src/main.cpp \ + --replace "/usr/share/dde-calendar/translations" "$out/share/dde-calendar/translations" + substituteInPlace calendar-service/assets/data/com.deepin.dataserver.Calendar.service \ + --replace "/usr/lib/deepin-daemon/dde-calendar-service" "$out/lib/deepin-daemon/dde-calendar-service" + substituteInPlace calendar-client/assets/dbus/com.deepin.Calendar.service \ + --replace "/usr/bin/dde-calendar" "$out/bin/dde-calendar" + substituteInPlace calendar-service/{src/{csystemdtimercontrol.cpp,jobremindmanager.cpp},assets/{data/com.dde.calendarserver.calendar.service,dde-calendar-service.desktop}} \ + --replace "/bin/bash" "${runtimeShell}" + + substituteInPlace CMakeLists.txt \ + --replace "ADD_SUBDIRECTORY(tests)" " " + ''; + + nativeBuildInputs = [ + cmake + qttools + pkg-config + wrapQtAppsHook + ]; + + buildInputs = [ + dtkwidget + qt5platform-plugins + dde-qt-dbus-factory + gtest + ]; + + cmakeFlags = [ "-DVERSION=${version}" ]; + + # qt5integration must be placed before qtsvg in QT_PLUGIN_PATH + qtWrapperArgs = [ + "--prefix QT_PLUGIN_PATH : ${qt5integration}/${qtbase.qtPluginPrefix}" + ]; + + postFixup = '' + wrapQtApp $out/lib/deepin-daemon/dde-calendar-service + ''; + + meta = with lib; { + description = "Calendar for Deepin Desktop Environment"; + homepage = "https://github.com/linuxdeepin/dde-calendar"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-clipboard/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-clipboard/default.nix new file mode 100644 index 000000000000..47ec1c837b13 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/core/dde-clipboard/default.nix @@ -0,0 +1,73 @@ +{ stdenv +, lib +, fetchFromGitHub +, dtkwidget +, qt5integration +, qt5platform-plugins +, dde-qt-dbus-factory +, gio-qt +, cmake +, qttools +, kwayland +, pkg-config +, wrapQtAppsHook +, glibmm +, gtest +}: + +stdenv.mkDerivation rec { + pname = "dde-clipboard"; + version = "5.4.25"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-oFATOBXf4NvGxjVMlfxwfQkBffeKut8ao+X6T9twb/I="; + }; + + postPatch = '' + substituteInPlace CMakeLists.txt \ + --replace "/etc/xdg" "$out/etc/xdg" \ + --replace "/lib/systemd/user" "$out/lib/systemd/user" \ + --replace "/usr/share" "$out/share" + + substituteInPlace misc/com.deepin.dde.Clipboard.service \ + --replace "/usr/bin/qdbus" "${lib.getBin qttools}/bin/qdbus" + + substituteInPlace misc/{dde-clipboard.desktop,dde-clipboard-daemon.service,com.deepin.dde.Clipboard.service} \ + --replace "/usr" "$out" + + patchShebangs translate_generation.sh generate_gtest_report.sh + ''; + + nativeBuildInputs = [ + cmake + pkg-config + qttools + wrapQtAppsHook + ]; + + buildInputs = [ + dtkwidget + qt5integration + qt5platform-plugins + dde-qt-dbus-factory + gio-qt + kwayland + glibmm + gtest + ]; + + cmakeFlags = [ + "-DUSE_DEEPIN_WAYLAND=OFF" + ]; + + meta = with lib; { + description = "DDE optional clipboard manager componment"; + homepage = "https://github.com/linuxdeepin/dde-clipboard"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} 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; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-control-center/dont-show-endUserLicenseAgreement-for-deepinos.patch b/nixpkgs/pkgs/desktops/deepin/core/dde-control-center/dont-show-endUserLicenseAgreement-for-deepinos.patch new file mode 100644 index 000000000000..491007ea2bf3 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/core/dde-control-center/dont-show-endUserLicenseAgreement-for-deepinos.patch @@ -0,0 +1,29 @@ +From adcc5eb58e2dcd06810a40c237bc7984c2c5af4b Mon Sep 17 00:00:00 2001 +From: rewine <luhongxu@deepin.org> +Date: Sun, 8 Jan 2023 13:46:17 +0800 +Subject: [PATCH] dont show endUserLicenseAgreement for deepinos + +--- + src/frame/window/modules/systeminfo/systeminfowidget.cpp | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/src/frame/window/modules/systeminfo/systeminfowidget.cpp b/src/frame/window/modules/systeminfo/systeminfowidget.cpp +index 8e62604fb..0f443ee20 100644 +--- a/src/frame/window/modules/systeminfo/systeminfowidget.cpp ++++ b/src/frame/window/modules/systeminfo/systeminfowidget.cpp +@@ -78,6 +78,12 @@ void SystemInfoWidget::initData() + m_listView->setRowHidden(i, true); + } + } ++ ++ if (IsNotDeepinUos) { ++ if (m.gsettingsName == "endUserLicenseAgreement") { ++ m_listView->setRowHidden(i, true); ++ } ++ } + } + + if (InsertPlugin::instance()->updatePluginInfo("systeminfo")) +-- +2.38.1 + diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-dock/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-dock/default.nix new file mode 100644 index 000000000000..32e8ca97b6d1 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/core/dde-dock/default.nix @@ -0,0 +1,89 @@ +{ stdenv +, lib +, fetchFromGitHub +, dtkwidget +, dde-qt-dbus-factory +, qt5integration +, qt5platform-plugins +, dde-control-center +, deepin-desktop-schemas +, cmake +, qttools +, qtx11extras +, pkg-config +, wrapQtAppsHook +, wrapGAppsHook +, gsettings-qt +, libdbusmenu +, xorg +, gtest +, qtbase +}: + +stdenv.mkDerivation rec { + pname = "dde-dock"; + version = "5.5.81"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-x8U5QPfIykaQLjwbErZiYbZC+JyPQQ+jd6MBjDQyUjs="; + }; + + postPatch = '' + substituteInPlace plugins/tray/system-trays/systemtrayscontroller.cpp frame/controller/dockpluginscontroller.cpp \ + --replace "/usr/lib/dde-dock/plugins" "/run/current-system/sw/lib/dde-dock/plugins" + + substituteInPlace plugins/show-desktop/showdesktopplugin.cpp frame/window/components/desktop_widget.cpp \ + --replace "/usr/lib/deepin-daemon" "/run/current-system/sw/lib/deepin-daemon" + + substituteInPlace plugins/{dcc-dock-plugin/settings_module.cpp,tray/system-trays/systemtrayscontroller.cpp} \ + --replace "/usr" "$out" + ''; + + nativeBuildInputs = [ + cmake + qttools + pkg-config + wrapQtAppsHook + wrapGAppsHook + ]; + dontWrapGApps = true; + + buildInputs = [ + dtkwidget + qt5platform-plugins + dde-qt-dbus-factory + dde-control-center + deepin-desktop-schemas + qtx11extras + gsettings-qt + libdbusmenu + xorg.libXcursor + xorg.libXtst + xorg.libXdmcp + gtest + ]; + + outputs = [ "out" "dev" ]; + + cmakeFlags = [ "-DVERSION=${version}" ]; + + # qt5integration must be placed before qtsvg in QT_PLUGIN_PATH + qtWrapperArgs = [ + "--prefix QT_PLUGIN_PATH : ${qt5integration}/${qtbase.qtPluginPrefix}" + ]; + + preFixup = '' + qtWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; + + meta = with lib; { + description = "Deepin desktop-environment - dock module"; + homepage = "https://github.com/linuxdeepin/dde-dock"; + platforms = platforms.linux; + license = licenses.lgpl3Plus; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-file-manager/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-file-manager/default.nix new file mode 100644 index 000000000000..c34e2cc4f900 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/core/dde-file-manager/default.nix @@ -0,0 +1,144 @@ +{ stdenv +, lib +, fetchFromGitHub +, runtimeShell +, dtkwidget +, qt5integration +, qt5platform-plugins +, dde-qt-dbus-factory +, docparser +, dde-dock +, cmake +, qttools +, qtx11extras +, qtmultimedia +, kcodecs +, pkg-config +, ffmpegthumbnailer +, libsecret +, libmediainfo +, mediainfo +, libzen +, poppler +, polkit-qt +, polkit +, wrapQtAppsHook +, wrapGAppsHook +, lucenepp +, boost +, taglib +, cryptsetup +, glib +, qtbase +, util-dfm +, deepin-pdfium +, libuuid +, libselinux +, glibmm +, pcre +, udisks2 +, libisoburn +}: + +stdenv.mkDerivation rec { + pname = "dde-file-manager"; + version = "6.0.15"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-tG3Wl1AvwWhHmIIHgexv3mVVrmOwNrwn8k/sD4+WZzk="; + }; + + nativeBuildInputs = [ + cmake + qttools + pkg-config + wrapQtAppsHook + wrapGAppsHook + ]; + dontWrapGApps = true; + + postPatch = '' + patchShebangs . + + substituteInPlace src/plugins/filemanager/dfmplugin-vault/utils/vaultdefine.h \ + --replace "/usr/bin/deepin-compressor" "deepin-compressor" + + substituteInPlace src/plugins/filemanager/dfmplugin-avfsbrowser/utils/avfsutils.cpp \ + --replace "/usr/bin/mountavfs" "mountavfs" \ + --replace "/usr/bin/umountavfs" "umountavfs" + + substituteInPlace src/plugins/common/core/dfmplugin-menu/{extendmenuscene/extendmenu/dcustomactionparser.cpp,oemmenuscene/oemmenu.cpp} \ + --replace "/usr" "$out" + + substituteInPlace src/tools/upgrade/dialog/processdialog.cpp \ + --replace "/usr/bin/dde-file-manager" "dde-file-manager" \ + --replace "/usr/bin/dde-desktop" "dde-desktop" + + substituteInPlace src/dfm-base/file/local/localfilehandler.cpp \ + --replace "/usr/lib/deepin-daemon" "/run/current-system/sw/lib/deepin-daemon" + + substituteInPlace src/plugins/desktop/ddplugin-background/backgroundservice.cpp \ + src/plugins/desktop/ddplugin-wallpapersetting/wallpapersettings.cpp \ + --replace "/usr/share/backgrounds" "/run/current-system/sw/share/backgrounds" + + find . -type f -regex ".*\\.\\(service\\|policy\\|desktop\\)" -exec sed -i -e "s|/usr/|$out/|g" {} \; + ''; + + buildInputs = [ + dtkwidget + qt5platform-plugins + deepin-pdfium + util-dfm + dde-qt-dbus-factory + glibmm + docparser + dde-dock + qtx11extras + qtmultimedia + kcodecs + ffmpegthumbnailer + libsecret + libmediainfo + mediainfo + poppler + polkit-qt + polkit + lucenepp + boost + taglib + cryptsetup + libuuid + libselinux + pcre + udisks2 + libisoburn + ]; + + cmakeFlags = [ + "-DVERSION=${version}" + "-DDEEPIN_OS_VERSION=20" + ]; + + enableParallelBuilding = true; + + # qt5integration must be placed before qtsvg in QT_PLUGIN_PATH + qtWrapperArgs = [ + "--prefix QT_PLUGIN_PATH : ${qt5integration}/${qtbase.qtPluginPrefix}" + ]; + + preFixup = '' + qtWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; + + meta = with lib; { + description = "File manager for deepin desktop environment"; + homepage = "https://github.com/linuxdeepin/dde-file-manager"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} + diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-gsettings-schemas/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-gsettings-schemas/default.nix new file mode 100644 index 000000000000..868f518e540f --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/core/dde-gsettings-schemas/default.nix @@ -0,0 +1,57 @@ +{ lib +, stdenv +, runCommand +, glib +, gtk3 +, dtkcommon +, dde-dock +, startdde +, dde-launcher +, dde-session-shell +, dde-session-ui +, dde-control-center +, dde-file-manager +, deepin-desktop-schemas +, deepin-movie-reborn +, deepin-screen-recorder +, deepin-system-monitor +, extraGSettingsOverrides ? "" +, extraGSettingsOverridePackages ? [ ] +}: + +let + gsettingsOverridePackages = [ + dtkcommon + dde-dock + startdde + dde-launcher + dde-session-shell + dde-session-ui + dde-control-center + dde-file-manager + deepin-desktop-schemas + deepin-movie-reborn + deepin-screen-recorder + deepin-system-monitor + ] ++ extraGSettingsOverridePackages; + +in +with lib; + +# TODO: Having https://github.com/NixOS/nixpkgs/issues/54150 would supersede this +runCommand "nixos-gsettings-desktop-schemas" { } + '' + schema_dir=$out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas + + mkdir -p $schema_dir + + ${concatMapStrings (pkg: "cp -rvf ${glib.getSchemaPath pkg}/* $schema_dir\n") gsettingsOverridePackages} + + chmod -R a+w $out/share/gsettings-schemas/nixos-gsettings-overrides + + cat - > $schema_dir/nixos-defaults.gschema.override <<- EOF + ${extraGSettingsOverrides} + EOF + + ${glib.dev}/bin/glib-compile-schemas $schema_dir + '' diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-kwin/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-kwin/default.nix new file mode 100644 index 000000000000..bf1ca7317a40 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/core/dde-kwin/default.nix @@ -0,0 +1,92 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, pkg-config +, extra-cmake-modules +, deepin-gettext-tools +, wrapQtAppsHook +, makeWrapper +, dtkcore +, qtbase +, qtx11extras +, gsettings-qt +, xorg +, libepoxy +, deepin-kwin +, kdecoration +, kconfig +, kwayland +, kwindowsystem +, kglobalaccel +}: + +stdenv.mkDerivation rec { + pname = "dde-kwin"; + version = "5.6.5"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = "b5c00527b86f773595c786c8015d60f8be3a681b"; + sha256 = "sha256-qXN9AwjLnqO5BpnrX5PaSCKZ6ff874r08ubCMM272tA="; + }; + + /* + This is the final version of dde-kwin, upstream has been archived. + We should remove this package when deepin-kwin release a new version. + */ + + postPatch = '' + substituteInPlace CMakeLists.txt \ + --replace "/usr/include/KWaylandServer" "${kwayland.dev}/include/KWaylandServer" + substituteInPlace deepin-wm-dbus/deepinwmfaker.cpp \ + --replace "/usr/lib/deepin-daemon" "/run/current-system/sw/lib/deepin-daemon" \ + --replace "/usr/share/backgrounds" "/run/current-system/sw/share/backgrounds" \ + --replace "/usr/share/wallpapers" "/run/current-system/sw/share/wallpapers" + patchShebangs . + ''; + + nativeBuildInputs = [ + cmake + pkg-config + extra-cmake-modules + deepin-gettext-tools + wrapQtAppsHook + makeWrapper + ]; + + buildInputs = [ + dtkcore + qtbase + qtx11extras + gsettings-qt + xorg.libXdmcp + libepoxy + deepin-kwin + kdecoration + kconfig + kwayland + kwindowsystem + kglobalaccel + ]; + + cmakeFlags = [ + "-DPROJECT_VERSION=${version}" + "-DQT_INSTALL_PLUGINS=${placeholder "out"}/${qtbase.qtPluginPrefix}" + ]; + + # kwin_no_scale is a shell script + postFixup = '' + wrapProgram $out/bin/kwin_no_scale \ + --set QT_QPA_PLATFORM_PLUGIN_PATH "${placeholder "out"}/${qtbase.qtPluginPrefix}" + ''; + + meta = with lib; { + description = "KWin configuration for Deepin Desktop Environment"; + homepage = "https://github.com/linuxdeepin/dde-kwin"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-launcher/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-launcher/default.nix new file mode 100644 index 000000000000..7d850c544d53 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/core/dde-launcher/default.nix @@ -0,0 +1,76 @@ +{ stdenv +, lib +, fetchFromGitHub +, dtkwidget +, dde-qt-dbus-factory +, qt5integration +, qt5platform-plugins +, cmake +, qttools +, qtx11extras +, pkg-config +, wrapQtAppsHook +, wrapGAppsHook +, gsettings-qt +, gtest +, qtbase +}: + +stdenv.mkDerivation rec { + pname = "dde-launcher"; + version = "5.6.1"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-Td8R91892tgJx7FLV2IZ/aPBzDb+o6EYKpk3D8On7Ag="; + }; + + postPatch = '' + #fix build with new dtk(https://github.com/linuxdeepin/dde-launcher/pull/369) + substituteInPlace src/windowedframe.h \ + --replace "#include <dregionmonitor.h>" " " + substituteInPlace src/boxframe/{backgroundmanager.cpp,boxframe.cpp} \ + --replace "/usr/share/backgrounds" "/run/current-system/sw/share/backgrounds" + substituteInPlace dde-launcher.desktop dde-launcher-wapper src/dbusservices/com.deepin.dde.Launcher.service \ + --replace "/usr" "$out" + ''; + + nativeBuildInputs = [ + cmake + qttools + pkg-config + wrapQtAppsHook + wrapGAppsHook + ]; + dontWrapGApps = true; + + buildInputs = [ + dtkwidget + qt5platform-plugins + dde-qt-dbus-factory + qtx11extras + gsettings-qt + gtest + ]; + + cmakeFlags = [ "-DVERSION=${version}" ]; + + # qt5integration must be placed before qtsvg in QT_PLUGIN_PATH + qtWrapperArgs = [ + "--prefix QT_PLUGIN_PATH : ${qt5integration}/${qtbase.qtPluginPrefix}" + ]; + + preFixup = '' + qtWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; + + meta = with lib; { + description = "Deepin desktop-environment - Launcher module"; + homepage = "https://github.com/linuxdeepin/dde-launcher"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-network-core/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-network-core/default.nix new file mode 100644 index 000000000000..6c192471525e --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/core/dde-network-core/default.nix @@ -0,0 +1,78 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, qttools +, pkg-config +, wrapQtAppsHook +, dtkwidget +, dde-dock +, dde-control-center +, dde-session-shell +, dde-qt-dbus-factory +, gsettings-qt +, gio-qt +, networkmanager-qt +, glib +, pcre +, util-linux +, libselinux +, libsepol +, dbus +, gtest +, qtbase +}: +stdenv.mkDerivation rec { + pname = "dde-network-core"; + version = "1.1.8"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-ysmdB9CT7mhN/0r8CRT4FQsK12HkhjbezGXwWiNScqg="; + }; + + postPatch = '' + substituteInPlace dock-network-plugin/networkplugin.cpp dcc-network-plugin/dccnetworkmodule.cpp dss-network-plugin/network_module.cpp \ + --replace "/usr/share" "$out/share" + substituteInPlace dss-network-plugin/notification/bubbletool.cpp \ + --replace "/usr/share" "/run/current-system/sw/share" + ''; + + nativeBuildInputs = [ + cmake + qttools + pkg-config + wrapQtAppsHook + ]; + + buildInputs = [ + dtkwidget + dde-dock + dde-control-center + dde-session-shell + dde-qt-dbus-factory + gsettings-qt + gio-qt + networkmanager-qt + glib + pcre + util-linux + libselinux + libsepol + gtest + ]; + + cmakeFlags = [ + "-DVERSION=${version}" + ]; + + meta = with lib; { + description = "DDE network library framework"; + homepage = "https://github.com/linuxdeepin/dde-network-core"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-polkit-agent/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-polkit-agent/default.nix new file mode 100644 index 000000000000..a1acab05cf1a --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/core/dde-polkit-agent/default.nix @@ -0,0 +1,61 @@ +{ stdenv +, lib +, fetchFromGitHub +, dtkwidget +, qt5integration +, qt5platform-plugins +, dde-qt-dbus-factory +, pkg-config +, cmake +, qttools +, wrapQtAppsHook +, polkit-qt +, qtbase +}: +stdenv.mkDerivation rec { + pname = "dde-polkit-agent"; + version = "5.5.22"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-4wAqMymLPxKXbfAx2PtkEGfwenphPxBZn+qCdcyqNc0="; + }; + + postPatch = '' + substituteInPlace AuthDialog.cpp \ + --replace "/usr/share/dde-session-shell/dde-session-shell.conf" "/etc/dde-session-shell/dde-session-shell.conf" + ''; + + nativeBuildInputs = [ + cmake + pkg-config + qttools + wrapQtAppsHook + ]; + + buildInputs = [ + dtkwidget + qt5platform-plugins + dde-qt-dbus-factory + polkit-qt + ]; + + # qt5integration must be placed before qtsvg in QT_PLUGIN_PATH + qtWrapperArgs = [ + "--prefix QT_PLUGIN_PATH : ${qt5integration}/${qtbase.qtPluginPrefix}" + ]; + + postFixup = '' + wrapQtApp $out/lib/polkit-1-dde/dde-polkit-agent + ''; + + meta = with lib; { + description = "PolicyKit agent for Deepin Desktop Environment"; + homepage = "https://github.com/linuxdeepin/dde-polkit-agent"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-session-shell/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-session-shell/default.nix new file mode 100644 index 000000000000..ac5f5fbc7ec0 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/core/dde-session-shell/default.nix @@ -0,0 +1,112 @@ +{ stdenv +, lib +, fetchFromGitHub +, linkFarm +, dtkwidget +, qt5integration +, qt5platform-plugins +, dde-qt-dbus-factory +, cmake +, pkg-config +, qttools +, qtx11extras +, wrapQtAppsHook +, wrapGAppsHook +, gsettings-qt +, lightdm_qt +, linux-pam +, xorg +, kwayland +, gtest +, xkeyboard_config +, dbus +, qtbase +, dde-session-shell +}: +stdenv.mkDerivation rec { + pname = "dde-session-shell"; + version = "5.6.4"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-mrdGu4t86d3No23IrnjypVLx1jxaySatr0xPMY9l5S4"; + }; + + postPatch = '' + substituteInPlace src/lightdm-deepin-greeter/greeterworker.cpp \ + --replace "/usr/include/shadow.h" "shadow.h" + + substituteInPlace scripts/lightdm-deepin-greeter files/wayland/lightdm-deepin-greeter-wayland \ + --replace "/usr/lib/deepin-daemon" "/run/current-system/sw/lib/deepin-daemon" + + substituteInPlace src/session-widgets/auth_module.h \ + --replace "/usr/lib/dde-control-center" "/run/current-system/sw/lib/dde-control-center" + + substituteInPlace src/global_util/plugin_manager/modules_loader.cpp \ + --replace "/usr/lib/dde-session-shell/modules" "/run/current-system/sw/lib/dde-session-shell/modules" + + substituteInPlace src/{session-widgets/{lockcontent.cpp,userinfo.cpp},widgets/fullscreenbackground.cpp} \ + --replace "/usr/share/backgrounds" "/run/current-system/sw/share/backgrounds" + + substituteInPlace src/global_util/xkbparser.h \ + --replace "/usr/share/X11/xkb/rules/base.xml" "${xkeyboard_config}/share/X11/xkb/rules/base.xml" + + substituteInPlace files/{com.deepin.dde.shutdownFront.service,com.deepin.dde.lockFront.service} \ + --replace "/usr/bin/dbus-send" "${dbus}/bin/dbus-send" \ + --replace "/usr/share" "$out/share" + + substituteInPlace src/global_util/{public_func.cpp,constants.h} scripts/lightdm-deepin-greeter files/{dde-lock.desktop,lightdm-deepin-greeter.desktop,wayland/lightdm-deepin-greeter-wayland.desktop} \ + --replace "/usr" "$out" + + patchShebangs files/deepin-greeter + ''; + + nativeBuildInputs = [ + cmake + pkg-config + qttools + wrapQtAppsHook + wrapGAppsHook + ]; + dontWrapGApps = true; + + buildInputs = [ + dtkwidget + qt5platform-plugins + dde-qt-dbus-factory + gsettings-qt + lightdm_qt + qtx11extras + linux-pam + kwayland + xorg.libXcursor + xorg.libXtst + xorg.libXrandr + xorg.libXdmcp + gtest + ]; + + # qt5integration must be placed before qtsvg in QT_PLUGIN_PATH + qtWrapperArgs = [ + "--prefix QT_PLUGIN_PATH : ${qt5integration}/${qtbase.qtPluginPrefix}" + ]; + + preFixup = '' + qtWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; + + passthru.xgreeters = linkFarm "deepin-greeter-xgreeters" [{ + path = "${dde-session-shell}/share/xgreeters/lightdm-deepin-greeter.desktop"; + name = "lightdm-deepin-greeter.desktop"; + }]; + + meta = with lib; { + description = "Deepin desktop-environment - session-shell module"; + homepage = "https://github.com/linuxdeepin/dde-session-shell"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-session-ui/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-session-ui/default.nix new file mode 100644 index 000000000000..d07389c6646e --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/core/dde-session-ui/default.nix @@ -0,0 +1,108 @@ +{ stdenv +, lib +, fetchFromGitHub +, dtkwidget +, qt5integration +, qt5platform-plugins +, pkg-config +, cmake +, dde-dock +, dde-qt-dbus-factory +, deepin-gettext-tools +, gsettings-qt +, lightdm_qt +, qttools +, qtx11extras +, util-linux +, xorg +, pcre +, libselinux +, libsepol +, wrapQtAppsHook +, gtest +, xkeyboard_config +, qtbase +, dbus +}: + +stdenv.mkDerivation rec { + pname = "dde-session-ui"; + version = "5.6.2"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-3lW/M07b6gXzGcvQYB+Ojqdq7TfJBaMIKfmfG7o3wWg="; + }; + + postPatch = '' + substituteInPlace widgets/fullscreenbackground.cpp \ + --replace "/usr/share/backgrounds" "/run/current-system/sw/share/backgrounds" \ + --replace "/usr/share/wallpapers" "/run/current-system/sw/share/wallpapers" + + substituteInPlace global_util/xkbparser.h \ + --replace "/usr/share/X11/xkb/rules/base.xml" "${xkeyboard_config}/share/X11/xkb/rules/base.xml" + + substituteInPlace dde-warning-dialog/com.deepin.dde.WarningDialog.service dde-osd/files/dde-osd.desktop dde-welcome/com.deepin.dde.welcome.service \ + --replace "/usr/lib/deepin-daemon" "/run/current-system/sw/lib/deepin-daemon" + + substituteInPlace dde-osd/notification/bubbletool.cpp \ + --replace "/usr/share" "/run/current-system/sw/share" + + substituteInPlace dde-osd/files/{com.deepin.dde.Notification.service,com.deepin.dde.freedesktop.Notification.service,com.deepin.dde.osd.service} \ + --replace "/usr/bin/dbus-send" "${dbus}/bin/dbus-send" \ + --replace "/usr/share" "$out/share" + + substituteInPlace dde-lowpower/main.cpp dmemory-warning-dialog/main.cpp dde-touchscreen-dialog/main.cpp dnetwork-secret-dialog/main.cpp dde-suspend-dialog/main.cpp \ + dde-warning-dialog/main.cpp dde-bluetooth-dialog/main.cpp dde-welcome/main.cpp dde-hints-dialog/main.cpp dde-osd/main.cpp dde-wm-chooser/main.cpp \ + dde-license-dialog/{content.cpp,main.cpp} dmemory-warning-dialog/com.deepin.dde.MemoryWarningDialog.service \ + --replace "/usr" "$out" + ''; + + nativeBuildInputs = [ + cmake + pkg-config + qttools + deepin-gettext-tools + wrapQtAppsHook + ]; + + buildInputs = [ + dtkwidget + qt5platform-plugins + dde-dock + dde-qt-dbus-factory + gsettings-qt + qtx11extras + pcre + xorg.libXdmcp + util-linux + libselinux + libsepol + gtest + ]; + + # qt5integration must be placed before qtsvg in QT_PLUGIN_PATH + qtWrapperArgs = [ + "--prefix QT_PLUGIN_PATH : ${qt5integration}/${qtbase.qtPluginPrefix}" + ]; + + preFixup = '' + qtWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; + + postFixup = '' + for binary in $out/lib/deepin-daemon/*; do + wrapProgram $binary "''${qtWrapperArgs[@]}" + done + ''; + + meta = with lib; { + description = "Deepin desktop-environment - Session UI module"; + homepage = "https://github.com/linuxdeepin/dde-session-ui"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/core/deepin-kwin/default.nix b/nixpkgs/pkgs/desktops/deepin/core/deepin-kwin/default.nix new file mode 100644 index 000000000000..456f20b51906 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/core/deepin-kwin/default.nix @@ -0,0 +1,120 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, pkg-config +, wayland +, dwayland +, qtbase +, qttools +, qtx11extras +, wrapQtAppsHook +, extra-cmake-modules +, gsettings-qt +, libepoxy +, kconfig +, kconfigwidgets +, kcoreaddons +, kcrash +, kdbusaddons +, kiconthemes +, kglobalaccel +, kidletime +, knotifications +, kpackage +, plasma-framework +, kcmutils +, knewstuff +, kdecoration +, kscreenlocker +, breeze-qt5 +, libinput +, mesa +, lcms2 +, xorg +}: + +stdenv.mkDerivation rec { + pname = "deepin-kwin"; + version = "5.24.3-deepin.1.9"; + + /* + There are no buildable tag in github: + - 5.15 tag in eagel branch is used for UOS, it's too old to compile. + - 5.25 tag in master branch only work on unreleased deepin v23. + Since deepin-kwin was not maintained on github before, we lost all + tags in master branch, this version is read from debian/changelog + */ + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = "98c9085670938937e2a1ce964f6acddc5c1d6eb5"; + sha256 = "sha256-/hgDuaDrpwAQsMIoaS8pGBJwWfJSrq6Yjic3a60ITtM="; + }; + + # Avoid using absolute path to distinguish applications + postPatch = '' + substituteInPlace src/effects/screenshot/screenshotdbusinterface1.cpp \ + --replace 'file.readAll().startsWith(DEFINE_DDE_DOCK_PATH"dde-dock")' 'file.readAll().contains("dde-dock")' + ''; + + nativeBuildInputs = [ + cmake + pkg-config + extra-cmake-modules + wrapQtAppsHook + ]; + + buildInputs = [ + qtbase + qttools + qtx11extras + wayland + dwayland + libepoxy + gsettings-qt + + kconfig + kconfigwidgets + kcoreaddons + kcrash + kdbusaddons + kiconthemes + + kglobalaccel + kidletime + knotifications + kpackage + plasma-framework + kcmutils + knewstuff + kdecoration + kscreenlocker + + breeze-qt5 + libinput + mesa + lcms2 + + xorg.libxcb + xorg.libXdmcp + xorg.libXcursor + xorg.xcbutilcursor + xorg.libXtst + ]; + + cmakeFlags = [ + "-DKWIN_BUILD_RUNNERS=OFF" + ]; + + outputs = [ "out" "dev" ]; + + meta = with lib; { + description = "Fork of kwin, an easy to use, but flexible, composited Window Manager"; + homepage = "https://github.com/linuxdeepin/deepin-kwin"; + license = licenses.lgpl21Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/core/dpa-ext-gnomekeyring/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dpa-ext-gnomekeyring/default.nix new file mode 100644 index 000000000000..f9b4e7592fb8 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/core/dpa-ext-gnomekeyring/default.nix @@ -0,0 +1,51 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, pkg-config +, qttools +, wrapQtAppsHook +, dtkwidget +, dde-polkit-agent +, libsecret +, libgnome-keyring +}: + +stdenv.mkDerivation rec { + pname = "dpa-ext-gnomekeyring"; + version = "5.0.11"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-mXaGwbtEwaqfOT0izK64zX4s3VFmsRpUGOVm6oSEhn8="; + }; + + postPatch = '' + substituteInPlace gnomekeyringextention.cpp \ + --replace "/usr/share/dpa-ext-gnomekeyring" "$out/share/dpa-ext-gnomekeyring" + ''; + + nativeBuildInputs = [ + cmake + pkg-config + qttools + wrapQtAppsHook + ]; + + buildInputs = [ + dtkwidget + dde-polkit-agent + libgnome-keyring + libsecret + ]; + + meta = with lib; { + description = "GNOME keyring extension for dde-polkit-agent"; + homepage = "https://github.com/linuxdeepin/dpa-ext-gnomekeyring"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/default.nix b/nixpkgs/pkgs/desktops/deepin/default.nix new file mode 100644 index 000000000000..524e4ee0f1f0 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/default.nix @@ -0,0 +1,88 @@ +{ lib, pkgs, libsForQt5 }: +let + packages = self: + let + inherit (self) callPackage; + in { + #### LIBRARIES + dtkcommon = callPackage ./library/dtkcommon { }; + dtkcore = callPackage ./library/dtkcore { }; + dtkgui = callPackage ./library/dtkgui { }; + dtkwidget = callPackage ./library/dtkwidget { }; + deepin-pdfium = callPackage ./library/deepin-pdfium { }; + qt5platform-plugins = callPackage ./library/qt5platform-plugins { }; + qt5integration = callPackage ./library/qt5integration { }; + deepin-wayland-protocols = callPackage ./library/deepin-wayland-protocols { }; + dwayland = callPackage ./library/dwayland { }; + dde-qt-dbus-factory = callPackage ./library/dde-qt-dbus-factory { }; + disomaster = callPackage ./library/disomaster { }; + docparser = callPackage ./library/docparser { }; + gio-qt = callPackage ./library/gio-qt { }; + image-editor = callPackage ./library/image-editor { }; + udisks2-qt5 = callPackage ./library/udisks2-qt5 { }; + util-dfm = callPackage ./library/util-dfm { }; + + #### CORE + dde-kwin = callPackage ./core/dde-kwin { }; + deepin-kwin = callPackage ./core/deepin-kwin { }; + dde-app-services = callPackage ./core/dde-app-services { }; + dde-control-center = callPackage ./core/dde-control-center { }; + dde-calendar = callPackage ./core/dde-calendar { }; + dde-clipboard = callPackage ./core/dde-clipboard { }; + dde-dock = callPackage ./core/dde-dock { }; + dde-file-manager = callPackage ./core/dde-file-manager { }; + dde-launcher = callPackage ./core/dde-launcher { }; + dde-network-core = callPackage ./core/dde-network-core { }; + dde-session-shell = callPackage ./core/dde-session-shell { }; + dde-session-ui = callPackage ./core/dde-session-ui { }; + dde-polkit-agent = callPackage ./core/dde-polkit-agent { }; + dpa-ext-gnomekeyring = callPackage ./core/dpa-ext-gnomekeyring { }; + dde-gsettings-schemas = callPackage ./core/dde-gsettings-schemas { }; + + #### Dtk Application + deepin-album = callPackage ./apps/deepin-album { }; + deepin-calculator = callPackage ./apps/deepin-calculator { }; + deepin-camera = callPackage ./apps/deepin-camera { }; + deepin-compressor = callPackage ./apps/deepin-compressor { }; + deepin-clone = callPackage ./apps/deepin-clone { }; + deepin-draw = callPackage ./apps/deepin-draw { }; + deepin-editor = callPackage ./apps/deepin-editor { }; + deepin-image-viewer = callPackage ./apps/deepin-image-viewer { }; + deepin-movie-reborn = callPackage ./apps/deepin-movie-reborn { }; + deepin-music = callPackage ./apps/deepin-music { }; + deepin-picker = callPackage ./apps/deepin-picker { }; + deepin-screen-recorder = callPackage ./apps/deepin-screen-recorder { }; + deepin-shortcut-viewer = callPackage ./apps/deepin-shortcut-viewer { }; + deepin-system-monitor = callPackage ./apps/deepin-system-monitor { }; + deepin-terminal = callPackage ./apps/deepin-terminal { }; + deepin-reader = callPackage ./apps/deepin-reader { }; + deepin-voice-note = callPackage ./apps/deepin-voice-note { }; + deepin-screensaver = callPackage ./apps/deepin-screensaver { }; + + #### Go Packages + go-lib = callPackage ./go-package/go-lib { }; + go-gir-generator = callPackage ./go-package/go-gir-generator { }; + go-dbus-factory = callPackage ./go-package/go-dbus-factory { }; + dde-api = callPackage ./go-package/dde-api { }; + dde-daemon = callPackage ./go-package/dde-daemon { }; + deepin-pw-check = callPackage ./go-package/deepin-pw-check { }; + deepin-desktop-schemas = callPackage ./go-package/deepin-desktop-schemas { }; + startdde = callPackage ./go-package/startdde { }; + + #### TOOLS + dde-device-formatter = callPackage ./tools/dde-device-formatter { }; + deepin-gettext-tools = callPackage ./tools/deepin-gettext-tools { }; + + #### ARTWORK + dde-account-faces = callPackage ./artwork/dde-account-faces { }; + deepin-icon-theme = callPackage ./artwork/deepin-icon-theme { }; + deepin-wallpapers = callPackage ./artwork/deepin-wallpapers { }; + deepin-gtk-theme = callPackage ./artwork/deepin-gtk-theme { }; + deepin-sound-theme = callPackage ./artwork/deepin-sound-theme { }; + + #### MISC + deepin-desktop-base = callPackage ./misc/deepin-desktop-base { }; + deepin-turbo = callPackage ./misc/deepin-turbo { }; + }; +in +lib.makeScope libsForQt5.newScope packages diff --git a/nixpkgs/pkgs/desktops/deepin/go-package/dde-api/0001-dont-set-PATH.patch b/nixpkgs/pkgs/desktops/deepin/go-package/dde-api/0001-dont-set-PATH.patch new file mode 100644 index 000000000000..679c343604d7 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/go-package/dde-api/0001-dont-set-PATH.patch @@ -0,0 +1,54 @@ +From 47952eb3dfeea945a070496ef6f77e8446d42f86 Mon Sep 17 00:00:00 2001 +From: rewine <lhongxu@outlook.com> +Date: Tue, 21 Mar 2023 10:36:20 +0800 +Subject: [PATCH] chore: dont set PATH env +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Log: dbus 环境缺失环境变量应该由 dbus-update-activation-environment 处理 ,不应该由 dde-api 设置 PATH +--- + device/main.go | 2 -- + locale-helper/main.go | 2 -- + 2 files changed, 4 deletions(-) + +diff --git a/device/main.go b/device/main.go +index 6c5404c..261f109 100644 +--- a/device/main.go ++++ b/device/main.go +@@ -5,7 +5,6 @@ + package main + + import ( +- "os" + "time" + + "github.com/linuxdeepin/go-lib/dbusutil" +@@ -15,7 +14,6 @@ import ( + var logger = log.NewLogger(dbusServiceName) + + func main() { +- os.Setenv("PATH", "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin") + service, err := dbusutil.NewSystemService() + if err != nil { + logger.Fatal("failed to new system service:", err) +diff --git a/locale-helper/main.go b/locale-helper/main.go +index 92e1ddb..5e3a2ff 100644 +--- a/locale-helper/main.go ++++ b/locale-helper/main.go +@@ -5,7 +5,6 @@ + package main + + import ( +- "os" + "os/exec" + "sync" + "time" +@@ -45,7 +44,6 @@ var ( + ) + + func main() { +- os.Setenv("PATH", "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin") + logger.BeginTracing() + defer logger.EndTracing() + diff --git a/nixpkgs/pkgs/desktops/deepin/go-package/dde-api/default.nix b/nixpkgs/pkgs/desktops/deepin/go-package/dde-api/default.nix new file mode 100644 index 000000000000..87038ae5e49b --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/go-package/dde-api/default.nix @@ -0,0 +1,121 @@ +{ stdenv +, lib +, fetchFromGitHub +, buildGoPackage +, wrapQtAppsHook +, wrapGAppsHook +, gtk3 +, pkg-config +, deepin-gettext-tools +, alsa-lib +, go-dbus-factory +, go-gir-generator +, go-lib +, libcanberra +, libgudev +, librsvg +, poppler +, pulseaudio +, gdk-pixbuf-xlib +, dbus +, coreutils +, deepin-desktop-base +}: + +buildGoPackage rec { + pname = "dde-api"; + version = "5.5.32"; + + goPackagePath = "github.com/linuxdeepin/dde-api"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-F+vEOSpysqVtjs8de5mCmeANuCbYUQ860ZHl5rwNYac="; + }; + + patches = [ ./0001-dont-set-PATH.patch ]; + + postPatch = '' + substituteInPlace lang_info/lang_info.go \ + --replace "/usr/share/i18n/language_info.json" "${deepin-desktop-base}/share/i18n/language_info.json" + + substituteInPlace misc/systemd/system/deepin-shutdown-sound.service \ + --replace "/usr/bin/true" "${coreutils}/bin/true" + + substituteInPlace sound-theme-player/main.go \ + --replace "/usr/sbin/alsactl" "alsactl" + + substituteInPlace misc/scripts/deepin-boot-sound.sh \ + --replace "/usr/bin/dbus-send" "${dbus}/bin/dbus-send" + + substituteInPlace lunar-calendar/huangli.go adjust-grub-theme/main.go \ + --replace "/usr/share/dde-api" "$out/share/dde-api" + + substituteInPlace themes/{theme.go,settings.go} \ + --replace "/usr/share" "/run/current-system/sw/share" + + for file in $(grep "/usr/lib/deepin-api" * -nR |awk -F: '{print $1}') + do + sed -i 's|/usr/lib/deepin-api|/run/current-system/sw/lib/deepin-api|g' $file + done + ''; + + goDeps = ./deps.nix; + + nativeBuildInputs = [ + pkg-config + deepin-gettext-tools + wrapQtAppsHook + wrapGAppsHook + ]; + dontWrapGApps = true; + + buildInputs = [ + go-dbus-factory + go-gir-generator + go-lib + gtk3 + alsa-lib + libcanberra + libgudev + librsvg + poppler + pulseaudio + gdk-pixbuf-xlib + ]; + + buildPhase = '' + runHook preBuild + addToSearchPath GOPATH "${go-dbus-factory}/share/gocode" + addToSearchPath GOPATH "${go-gir-generator}/share/gocode" + addToSearchPath GOPATH "${go-lib}/share/gocode" + make -C go/src/${goPackagePath} + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + make install DESTDIR="$out" PREFIX="/" -C go/src/${goPackagePath} + runHook postInstall + ''; + + preFixup = '' + qtWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; + + postFixup = '' + for binary in $out/lib/deepin-api/*; do + wrapProgram $binary "''${qtWrapperArgs[@]}" + done + ''; + + meta = with lib; { + description = "Dbus interfaces used for screen zone detecting, thumbnail generating, sound playing, etc"; + homepage = "https://github.com/linuxdeepin/dde-api"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/go-package/dde-api/deps.nix b/nixpkgs/pkgs/desktops/deepin/go-package/dde-api/deps.nix new file mode 100644 index 000000000000..52ee3d963cf9 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/go-package/dde-api/deps.nix @@ -0,0 +1,210 @@ +[ + { + goPackagePath = "gopkg.in/alecthomas/kingpin.v2"; + fetch = { + type = "git"; + url = "https://gopkg.in/alecthomas/kingpin.v2"; + rev = "v2.2.6"; + sha256 = "sha256-uViE2kPj7tMrGYVjjdLOl2jFDmmu+3P7GvnZBse2zVY="; + }; + } + { + goPackagePath = "github.com/disintegration/imaging"; + fetch = { + type = "git"; + url = "https://github.com/disintegration/imaging"; + rev = "v1.6.2"; + sha256 = "sha256-pSeMTPvSkxlthh65LjNYYhPLvCZDkBgVgAGYWW0Aguo="; + }; + } + { + goPackagePath = "github.com/linuxdeepin/go-x11-client"; + fetch = { + type = "git"; + url = "https://github.com/linuxdeepin/go-x11-client"; + rev = "0.6.9"; + sha256 = "sha256-xXNaXpFFHJN1fCFLoVrQFCXQ4ya+Kga55QWcJL/InkA="; + }; + } + { + goPackagePath = "github.com/mattn/go-sqlites"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-sqlite3"; + rev = "v1.14.12"; + sha256 = "sha256-SLW1FyyfJGPUid1epgmJHZGJebI77Wg5WMAPiz1GcYs="; + }; + } + { + goPackagePath = "github.com/godbus/dbus"; + fetch = { + type = "git"; + url = "https://github.com/godbus/dbus"; + rev = "v5.1.0"; + sha256 = "sha256-JSPtmkGEStBEVrKGszeLCb7P38SzQKgMiDC3eDppXs0="; + }; + } + { + goPackagePath = "github.com/fsnotify/fsnotify"; + fetch = { + type = "git"; + url = "https://github.com/fsnotify/fsnotify"; + rev = "v1.5.1"; + sha256 = "sha256-B8kZ8yiWgallT7R2j1kSRJcJkSGFVf9ise+TpXa+7XY="; + }; + } + { + goPackagePath = "golang.org/x/sys"; + fetch = { + type = "git"; + url = "https://github.com/golang/sys"; + rev = "289d7a0edf712062d9f1484b07bdf2383f48802f"; + sha256 = "sha256-AzS/J3OocI7mA0xsIfQzyskNKVija7F2yvuts+EFJBs="; + }; + } + { + goPackagePath = "github.com/stretchr/testify"; + fetch = { + type = "git"; + url = "https://github.com/stretchr/testify"; + rev = "v1.7.1"; + sha256 = "sha256-disUVIHiIDSj/go3APtJH8awSl8QwKRRFLKI7LRnl0w="; + }; + } + { + goPackagePath = "github.com/davecgh/go-spew"; + fetch = { + type = "git"; + url = "https://github.com/davecgh/go-spew"; + rev = "v1.1.1"; + sha256 = "sha256-nhzSUrE1fCkN0+RL04N4h8jWmRFPPPWbCuDc7Ss0akI="; + }; + } + { + goPackagePath = "github.com/pmezard/go-difflib"; + fetch = { + type = "git"; + url = "https://github.com/pmezard/go-difflib"; + rev = "5d4384ee4fb2527b0a1256a821ebfc92f91efefc"; + sha256 = "sha256-XA4Oj1gdmdV/F/+8kMI+DBxKPthZ768hbKsO3d9Gx90="; + }; + } + { + goPackagePath = "github.com/stretchr/objx"; + fetch = { + type = "git"; + url = "https://github.com/stretchr/objx"; + rev = "v0.3.0"; + sha256 = "sha256-T753/EiD5Cpk6H2JFhd+s1gFvpNptG2XlEHxZF6dQaw="; + }; + } + { + goPackagePath = "gopkg.in/yaml.v3"; + fetch = { + type = "git"; + url = "https://github.com/go-yaml/yaml"; + rev = "496545a6307b2a7d7a710fd516e5e16e8ab62dbc"; + sha256 = "sha256-j8yDji+vqsitpRZirpb4w/Em8nstgf28wpwkcrOlxBk="; + }; + } + { + goPackagePath = "golang.org/x/image"; + fetch = { + type = "git"; + url = "https://github.com/golang/image"; + rev = "a8550c1d254a56cf1762a2993881d2b23c0c83dd"; + sha256 = "sha256-gtRGCsCe8tKLsZWhKLL8c5whz9rCMoCHfH13rcSW/OM="; + }; + } + { + goPackagePath = "github.com/alecthomas/units"; + fetch = { + type = "git"; + url = "https://github.com/alecthomas/units"; + rev = "b94a6e3cc13755c0a75fffecbb089eb346fc4289"; + sha256 = "sha256-uriYmwxT69xbmWKO/5OAyeMa2lFBOJDrU2KtQh/+ZjY="; + }; + } + { + goPackagePath = "github.com/alecthomas/template"; + fetch = { + type = "git"; + url = "https://github.com/alecthomas/template"; + rev = "fb15b899a75114aa79cc930e33c46b577cc664b1"; + sha256 = "sha256-RsS4qxdRQ3q+GejA8D9Iu31A/mZNms4LbJ7518jWiu4="; + }; + } + { + goPackagePath = "github.com/cryptix/wav"; + fetch = { + type = "git"; + url = "https://github.com/cryptix/wav"; + rev = "8bdace674401f0bd3b63c65479b6a6ff1f9d5e44"; + sha256 = "sha256-psUCHRFGEOpN3obFbCvSfW0AGEFSI29d0q4MFsHG3qI="; + }; + } + { + goPackagePath = "github.com/fogleman/gg"; + fetch = { + type = "git"; + url = "https://github.com/fogleman/gg"; + rev = "v1.3.0"; + sha256 = "sha256-Fs2JI0FmF4N5EzXJzGAPZMxZxo6wKyebkN/iBZ9sdNo="; + }; + } + { + goPackagePath = "github.com/golang/freetype"; + fetch = { + type = "git"; + url = "https://github.com/golang/freetype"; + rev = "e2365dfdc4a05e4b8299a783240d4a7d5a65d4e4"; + sha256 = "sha256-rOOsv1sNLbYEKnwXZtUlB2CXVkFANyzZy2E7w2QbnKQ="; + }; + } + { + goPackagePath = "github.com/gosexy/gettext"; + fetch = { + type = "git"; + url = "https://github.com/gosexy/gettext"; + rev = "74466a0a0c4a62fea38f44aa161d4bbfbe79dd6b"; + sha256 = "sha256-8U2oSi446U13c3uqcbg/14okypxKmckRuvWfZlGHVys="; + }; + } + { + goPackagePath = "github.com/nfnt/resize"; + fetch = { + type = "git"; + url = "https://github.com/nfnt/resize"; + rev = "83c6a9932646f83e3267f353373d47347b6036b2"; + sha256 = "sha256-yvPV+HlDOyJsiwAcVHQkmtw8DHSXyw+cXHkigXm8rAA="; + }; + } + { + goPackagePath = "github.com/youpy/go-wav"; + fetch = { + type = "git"; + url = "https://github.com/youpy/go-wav"; + rev = "v0.3.2"; + sha256 = "sha256-jNqXW3F3fcgjT47+d2MVXauWkA7+1KfYVu3ZZpRCTkM="; + }; + } + { + goPackagePath = "github.com/zaf/g711"; + fetch = { + type = "git"; + url = "https://github.com/zaf/g711"; + rev = "v1.2"; + sha256 = "sha256-G+0cgGw/fcOUFVn32AeqUE0YjyOS82Z5MTcn6IANhCY="; + }; + } + { + goPackagePath = "github.com/youpy/go-riff"; + fetch = { + type = "git"; + url = "https://github.com/youpy/go-riff"; + rev = "v0.1.0"; + sha256 = "sha256-d/3rkxDeRTPveZblArKc61gB4LJVV08n7g0THieuhx8="; + }; + } +] + diff --git a/nixpkgs/pkgs/desktops/deepin/go-package/dde-daemon/0001-fix-wrapped-name-for-verifyExe.patch b/nixpkgs/pkgs/desktops/deepin/go-package/dde-daemon/0001-fix-wrapped-name-for-verifyExe.patch new file mode 100644 index 000000000000..6eb7ad2c362f --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/go-package/dde-daemon/0001-fix-wrapped-name-for-verifyExe.patch @@ -0,0 +1,33 @@ +From ad18742c699a08cd82f8926a31da9a19b2aef329 Mon Sep 17 00:00:00 2001 +From: rewine <lhongxu@outlook.com> +Date: Wed, 5 Apr 2023 23:37:24 +0800 +Subject: [PATCH 1/4] fix-wrapped-name-for-verifyExe + +--- + dock/process_info.go | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/dock/process_info.go b/dock/process_info.go +index 83c61d58..e2970f3a 100644 +--- a/dock/process_info.go ++++ b/dock/process_info.go +@@ -119,6 +119,16 @@ func verifyExe(exe, cwd, firstArg string) bool { + return false + } + logger.Debugf("firstArgPath: %q", firstArgPath) ++ if exe == firstArgPath { ++ return true ++ } ++ if strings.HasSuffix(exe, "-wrapped") { ++ exeBase := filepath.Base(exe) ++ if (len(exeBase) <= 9) { ++ return false ++ } ++ exe = exe[0:len(exe)-len(exeBase)] + exeBase[1:len(exeBase)-8] ++ } + return exe == firstArgPath + } + +-- +2.39.2 + diff --git a/nixpkgs/pkgs/desktops/deepin/go-package/dde-daemon/0002-dont-set-PATH.patch b/nixpkgs/pkgs/desktops/deepin/go-package/dde-daemon/0002-dont-set-PATH.patch new file mode 100644 index 000000000000..cf69496105c5 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/go-package/dde-daemon/0002-dont-set-PATH.patch @@ -0,0 +1,40 @@ +From 7fe41aac7c31f6143b5f5887dbefa41fdf4c252b Mon Sep 17 00:00:00 2001 +From: rewine <lhongxu@outlook.com> +Date: Wed, 5 Apr 2023 23:37:49 +0800 +Subject: [PATCH 2/4] dont-set-PATH + +--- + bin/dde-system-daemon/main.go | 4 ---- + grub2/modify_manger.go | 1 - + 2 files changed, 5 deletions(-) + +diff --git a/bin/dde-system-daemon/main.go b/bin/dde-system-daemon/main.go +index 03d2a415..cf92f065 100644 +--- a/bin/dde-system-daemon/main.go ++++ b/bin/dde-system-daemon/main.go +@@ -77,10 +77,6 @@ func main() { + // fix no PATH when was launched by dbus + if os.Getenv("PATH") == "" { + logger.Warning("No PATH found, manual special") +- err = os.Setenv("PATH", "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin") +- if err != nil { +- logger.Warning(err) +- } + } + + // 系统级服务,无需设置LANG和LANGUAGE,保证翻译不受到影响 +diff --git a/grub2/modify_manger.go b/grub2/modify_manger.go +index a811770b..30e9561e 100644 +--- a/grub2/modify_manger.go ++++ b/grub2/modify_manger.go +@@ -21,7 +21,6 @@ const ( + ) + + func init() { +- _ = os.Setenv("PATH", "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin") + } + + type modifyManager struct { +-- +2.39.2 + diff --git a/nixpkgs/pkgs/desktops/deepin/go-package/dde-daemon/0003-search-in-XDG-directories.patch b/nixpkgs/pkgs/desktops/deepin/go-package/dde-daemon/0003-search-in-XDG-directories.patch new file mode 100644 index 000000000000..c0a8a02558c5 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/go-package/dde-daemon/0003-search-in-XDG-directories.patch @@ -0,0 +1,254 @@ +From a0667a7e82b3176e64122f4d68c43de4fa350780 Mon Sep 17 00:00:00 2001 +From: rewine <luhongxu@deepin.org> +Date: Tue, 18 Apr 2023 17:04:36 +0800 +Subject: [PATCH 3/4] search-in-XDG-directories + +--- + accounts/manager.go | 5 ++++- + accounts/user.go | 8 +++++++- + appearance/fsnotify.go | 21 +++++++++++++++++---- + appearance/ifc.go | 3 ++- + apps/utils.go | 3 ++- + gesture/config.go | 4 ++-- + keybinding/shortcuts/system_shortcut.go | 4 +++- + mime/app_info.go | 7 ++++++- + system/gesture/config.go | 4 +++- + 9 files changed, 46 insertions(+), 13 deletions(-) + +diff --git a/accounts/manager.go b/accounts/manager.go +index 22c26ce7..009d9dd9 100644 +--- a/accounts/manager.go ++++ b/accounts/manager.go +@@ -15,6 +15,7 @@ import ( + "sync" + "syscall" + ++ "github.com/adrg/xdg" + dbus "github.com/godbus/dbus" + "github.com/linuxdeepin/dde-daemon/accounts/users" + "github.com/linuxdeepin/dde-daemon/common/sessionmsg" +@@ -35,8 +36,10 @@ const ( + actConfigFile = actConfigDir + "/accounts.ini" + actConfigGroupGroup = "Accounts" + actConfigKeyGuest = "AllowGuest" ++) + +- interfacesFile = "/usr/share/dde-daemon/accounts/dbus-udcp.json" ++var ( ++ interfacesFile, _ = xdg.SearchDataFile("dde-daemon/accounts/dbus-udcp.json") + ) + + type InterfaceConfig struct { +diff --git a/accounts/user.go b/accounts/user.go +index 900033c6..f8827fb2 100644 +--- a/accounts/user.go ++++ b/accounts/user.go +@@ -15,6 +15,7 @@ import ( + "strings" + "sync" + ++ "github.com/adrg/xdg" + dbus "github.com/godbus/dbus" + "github.com/linuxdeepin/dde-daemon/accounts/users" + authenticate "github.com/linuxdeepin/go-dbus-factory/com.deepin.daemon.authenticate" +@@ -649,7 +650,12 @@ func getUserSession(homeDir string) string { + } + + func getSessionList() []string { +- fileInfoList, err := ioutil.ReadDir("/usr/share/xsessions") ++ xsessionPath, err := xdg.SearchDataFile("xsessions") ++ if err != nil { ++ return nil; ++ } ++ ++ fileInfoList, err := ioutil.ReadDir(xsessionPath) + if err != nil { + return nil + } +diff --git a/appearance/fsnotify.go b/appearance/fsnotify.go +index a409d0ba..ff674600 100644 +--- a/appearance/fsnotify.go ++++ b/appearance/fsnotify.go +@@ -5,12 +5,15 @@ + package appearance + + import ( ++ "errors" ++ "io/fs" + "os" + "path" + "path/filepath" + "strings" + "time" + ++ "github.com/adrg/xdg" + "github.com/fsnotify/fsnotify" + "github.com/linuxdeepin/dde-daemon/appearance/background" + "github.com/linuxdeepin/dde-daemon/appearance/subthemes" +@@ -100,9 +103,14 @@ func (m *Manager) watchGtkDirs() { + gtkDirs = []string{ + path.Join(home, ".local/share/themes"), + path.Join(home, ".themes"), +- "/usr/local/share/themes", +- "/usr/share/themes", + } ++ for _, dataPath := range xdg.DataDirs { ++ gtkPath := filepath.Join(dataPath, "themes"); ++ if _, err := os.Stat(gtkPath); err != nil && errors.Is(err, fs.ErrNotExist) { ++ continue ++ } ++ gtkDirs = append(gtkDirs, gtkPath); ++ } + + m.watchDirs(gtkDirs) + } +@@ -112,9 +120,14 @@ func (m *Manager) watchIconDirs() { + iconDirs = []string{ + path.Join(home, ".local/share/icons"), + path.Join(home, ".icons"), +- "/usr/local/share/icons", +- "/usr/share/icons", + } ++ for _, dataPath := range xdg.DataDirs { ++ iconPath := filepath.Join(dataPath, "icons"); ++ if _, err := os.Stat(iconPath); err != nil && errors.Is(err, fs.ErrNotExist) { ++ continue ++ } ++ iconDirs = append(iconDirs, iconPath); ++ } + + m.watchDirs(iconDirs) + } +diff --git a/appearance/ifc.go b/appearance/ifc.go +index f0bf32a3..6d60ffe4 100644 +--- a/appearance/ifc.go ++++ b/appearance/ifc.go +@@ -10,6 +10,7 @@ import ( + "strconv" + "strings" + ++ "github.com/adrg/xdg" + "github.com/godbus/dbus" + "github.com/linuxdeepin/dde-daemon/appearance/fonts" + "github.com/linuxdeepin/dde-daemon/appearance/subthemes" +@@ -265,7 +266,7 @@ func (m *Manager) thumbnail(ty, name string) (string, error) { + case TypeGtkTheme: + fName, ok := gtkThumbnailMap[name] + if ok { +- return filepath.Join("/usr/share/dde-daemon/appearance", fName+".svg"), nil ++ return xdg.SearchDataFile(filepath.Join("dde-daemon/appearance", fName+".svg")) + } + return subthemes.GetGtkThumbnail(name) + case TypeIconTheme: +diff --git a/apps/utils.go b/apps/utils.go +index 8863d6c2..dd6f8e16 100644 +--- a/apps/utils.go ++++ b/apps/utils.go +@@ -11,6 +11,7 @@ import ( + "strconv" + "strings" + "syscall" ++ "github.com/adrg/xdg" + ) + + func intSliceContains(slice []int, a int) bool { +@@ -96,7 +97,7 @@ func removeDesktopExt(name string) string { + } + + func getSystemDataDirs() []string { +- return []string{"/usr/share", "/usr/local/share"} ++ return xdg.DataDirs + } + + // get user home +diff --git a/gesture/config.go b/gesture/config.go +index bfbd4db7..4ce9d641 100644 +--- a/gesture/config.go ++++ b/gesture/config.go +@@ -10,6 +10,7 @@ import ( + "io/ioutil" + "path/filepath" + ++ "github.com/adrg/xdg" + "github.com/linuxdeepin/go-lib/xdg/basedir" + ) + +@@ -21,11 +22,10 @@ const ( + + var ( + configUserPath = filepath.Join(basedir.GetUserConfigDir(), "deepin/dde-daemon/gesture.json") ++ configSystemPath, _ = xdg.SearchDataFile("dde-daemon/gesture.json") + ) + + const ( +- configSystemPath = "/usr/share/dde-daemon/gesture.json" +- + gestureSchemaId = "com.deepin.dde.gesture" + gsKeyTouchPadEnabled = "touch-pad-enabled" + gsKeyTouchScreenEnabled = "touch-screen-enabled" +diff --git a/keybinding/shortcuts/system_shortcut.go b/keybinding/shortcuts/system_shortcut.go +index eaec22b5..95e1b222 100644 +--- a/keybinding/shortcuts/system_shortcut.go ++++ b/keybinding/shortcuts/system_shortcut.go +@@ -10,6 +10,7 @@ import ( + "path" + "sync" + ++ "github.com/adrg/xdg" + dutils "github.com/linuxdeepin/go-lib/utils" + ) + +@@ -152,5 +153,6 @@ func getSystemActionsFile() string { + return file + } + +- return "" ++ filepath, _ := xdg.SearchDataFile(systemActionsFile) ++ return filepath; + } +diff --git a/mime/app_info.go b/mime/app_info.go +index 63fcdcc0..18436164 100644 +--- a/mime/app_info.go ++++ b/mime/app_info.go +@@ -9,6 +9,7 @@ import ( + "os" + "path" + ++ "github.com/adrg/xdg" + "github.com/linuxdeepin/go-lib/appinfo/desktopappinfo" + "github.com/linuxdeepin/go-lib/mime" + dutils "github.com/linuxdeepin/go-lib/utils" +@@ -162,5 +163,9 @@ func findFilePath(file string) string { + return data + } + +- return path.Join("/usr/share", file) ++ filepath, err := xdg.SearchDataFile(file) ++ if err != nil { ++ return path.Join("/usr/share", file) ++ } ++ return filepath; + } +diff --git a/system/gesture/config.go b/system/gesture/config.go +index d4aebaac..f3fc92c3 100644 +--- a/system/gesture/config.go ++++ b/system/gesture/config.go +@@ -8,6 +8,7 @@ import ( + "encoding/json" + "io/ioutil" + ++ "github.com/adrg/xdg" + "github.com/linuxdeepin/go-lib/utils" + ) + +@@ -35,5 +36,6 @@ func getConfigPath() string { + if utils.IsFileExist(filename) { + return filename + } +- return "/usr/share/" + suffix ++ filepath, _ := xdg.SearchDataFile(suffix) ++ return filepath; + } +-- +2.38.1 + diff --git a/nixpkgs/pkgs/desktops/deepin/go-package/dde-daemon/0004-aviod-use-hardcode-path.patch b/nixpkgs/pkgs/desktops/deepin/go-package/dde-daemon/0004-aviod-use-hardcode-path.patch new file mode 100644 index 000000000000..f47bed99b293 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/go-package/dde-daemon/0004-aviod-use-hardcode-path.patch @@ -0,0 +1,323 @@ +From 12a5ccce245f82c334e78d48354e55311c15fb0c Mon Sep 17 00:00:00 2001 +From: rewine <lhongxu@outlook.com> +Date: Wed, 5 Apr 2023 23:51:58 +0800 +Subject: [PATCH 4/4] aviod-use-hardcode-path + +--- + accounts/user.go | 2 +- + accounts/user_chpwd_union_id.go | 9 ++++----- + bin/backlight_helper/ddcci/ddcci.go | 20 +++++-------------- + bin/dde-authority/fprint_transaction.go | 2 +- + inputdevices/keyboard.go | 5 +++-- + keybinding/shortcuts/system_shortcut.go | 6 +++--- + keybinding/special_keycode.go | 2 +- + keybinding/utils.go | 2 +- + launcher/manager_ifc.go | 2 +- + .../dde-daemon/keybinding/system_actions.json | 4 ++-- + misc/etc/acpi/powerbtn.sh | 2 +- + misc/udev-rules/80-deepin-fprintd.rules | 2 +- + system/display/displaycfg.go | 2 +- + system/power/manager_lmt.go | 3 ++- + system/power_manager/utils.go | 2 +- + system/systeminfo/manager.go | 2 +- + systeminfo/utils.go | 2 +- + 17 files changed, 30 insertions(+), 39 deletions(-) + +diff --git a/accounts/user.go b/accounts/user.go +index f8827fb2..ff604f38 100644 +--- a/accounts/user.go ++++ b/accounts/user.go +@@ -450,7 +450,7 @@ func (u *User) checkIsControlCenter(sender dbus.Sender) bool { + return false + } + +- if exe == controlCenterPath { ++ if strings.Contains(exe, "dde-control-center") { + return true + } + +diff --git a/accounts/user_chpwd_union_id.go b/accounts/user_chpwd_union_id.go +index b0ba9cb9..e8aa1a1e 100644 +--- a/accounts/user_chpwd_union_id.go ++++ b/accounts/user_chpwd_union_id.go +@@ -107,14 +107,13 @@ func newCaller(service *dbusutil.Service, sender dbus.Sender) (ret *caller, err + + // 只允许来自控制中心, 锁屏和 greetter 的调用 + var app string +- switch exe { +- case "/usr/bin/dde-control-center": ++ if (strings.Contains(exe, "dde-control-center")) { + app = "control-center" +- case "/usr/bin/dde-lock": ++ } else if (strings.Contains(exe, "dde-lock")) { + app = "lock" +- case "/usr/bin/lightdm-deepin-greeter": ++ } else if (strings.Contains(exe, "lightdm-deepin-greeter")) { + app = "greeter" +- default: ++ } else { + err = fmt.Errorf("set password with Union ID called by %s, which is not allow", exe) + return + } +diff --git a/bin/backlight_helper/ddcci/ddcci.go b/bin/backlight_helper/ddcci/ddcci.go +index 21653459..01a67e91 100644 +--- a/bin/backlight_helper/ddcci/ddcci.go ++++ b/bin/backlight_helper/ddcci/ddcci.go +@@ -15,10 +15,7 @@ import ( + "bytes" + "encoding/base64" + "fmt" +- "os/exec" +- "path/filepath" + "reflect" +- "strings" + "sync" + "unsafe" + +@@ -113,18 +110,11 @@ func newDDCCI() (*ddcci, error) { + return nil, err + } + +- content, err := exec.Command("/usr/bin/dpkg-architecture", "-qDEB_HOST_MULTIARCH").Output() // TODO: arch和rpm打包需要通过patch修改获取路径的方式 +- if err != nil { +- logger.Warning(err) +- } else { +- path := filepath.Join("/usr/lib", strings.TrimSpace(string(content)), "libddcutil.so.0") +- logger.Debug("so path:", path) +- cStr := C.CString(path) +- defer C.free(unsafe.Pointer(cStr)) +- ret := C.InitDDCCISo(cStr) +- if ret == -2 { +- logger.Debug("failed to initialize ddca_free_all_displays sym") +- } ++ cStr := C.CString("libddcutil.so.0") ++ defer C.free(unsafe.Pointer(cStr)) ++ ret := C.InitDDCCISo(cStr) ++ if ret == -2 { ++ logger.Debug("failed to initialize ddca_free_all_displays sym") + } + + return ddc, nil +diff --git a/bin/dde-authority/fprint_transaction.go b/bin/dde-authority/fprint_transaction.go +index 0e460ec3..b803d1c9 100644 +--- a/bin/dde-authority/fprint_transaction.go ++++ b/bin/dde-authority/fprint_transaction.go +@@ -461,7 +461,7 @@ func (tx *FPrintTransaction) End(sender dbus.Sender) *dbus.Error { + + func killFPrintDaemon() { + logger.Debug("kill fprintd") +- err := exec.Command("pkill", "-f", "/usr/lib/fprintd/fprintd").Run() ++ err := exec.Command("pkill", "fprintd").Run() + if err != nil { + logger.Warning("failed to kill fprintd:", err) + } +diff --git a/inputdevices/keyboard.go b/inputdevices/keyboard.go +index 6d05f662..ca29cecc 100644 +--- a/inputdevices/keyboard.go ++++ b/inputdevices/keyboard.go +@@ -10,6 +10,7 @@ import ( + "fmt" + "os" + "os/user" ++ "os/exec" + "path" + "regexp" + "strings" +@@ -51,7 +52,7 @@ const ( + kbdSystemConfig = "/etc/default/keyboard" + qtDefaultConfig = ".config/Trolltech.conf" + +- cmdSetKbd = "/usr/bin/setxkbmap" ++ cmdSetKbd = "setxkbmap" + ) + + type Keyboard struct { +@@ -704,7 +705,7 @@ func (kbd *Keyboard) handlePropertyNotifyEvent(ev *x.PropertyNotifyEvent) { + } + + func (kbd *Keyboard) shouldUseDDEKwin() bool { +- _, err := os.Stat("/usr/bin/kwin_no_scale") ++ _, err := exec.LookPath("kwin_no_scale") + return err == nil + } + +diff --git a/keybinding/shortcuts/system_shortcut.go b/keybinding/shortcuts/system_shortcut.go +index 95e1b222..95d82db7 100644 +--- a/keybinding/shortcuts/system_shortcut.go ++++ b/keybinding/shortcuts/system_shortcut.go +@@ -83,10 +83,10 @@ var defaultSysActionCmdMap = map[string]string{ + "launcher": "dbus-send --print-reply --dest=com.deepin.dde.Launcher /com/deepin/dde/Launcher com.deepin.dde.Launcher.Toggle", + "terminal": "/usr/lib/deepin-daemon/default-terminal", + "terminal-quake": "deepin-terminal --quake-mode", +- "lock-screen": "originmap=$(setxkbmap -query | grep option | awk -F ' ' '{print $2}');/usr/bin/setxkbmap -option grab:break_actions&&/usr/bin/xdotool key XF86Ungrab&&dbus-send --print-reply --dest=com.deepin.dde.lockFront /com/deepin/dde/lockFront com.deepin.dde.lockFront.Show&&/usr/bin/setxkbmap -option; setxkbmap -option $originmap", ++ "lock-screen": "originmap=$(setxkbmap -query | grep option | awk -F ' ' '{print $2}');setxkbmap -option grab:break_actions&&xdotool key XF86Ungrab&&dbus-send --print-reply --dest=com.deepin.dde.lockFront /com/deepin/dde/lockFront com.deepin.dde.lockFront.Show&&/usr/bin/setxkbmap -option; setxkbmap -option $originmap", + "logout": "dbus-send --print-reply --dest=com.deepin.dde.shutdownFront /com/deepin/dde/shutdownFront com.deepin.dde.shutdownFront.Show", + "deepin-screen-recorder": "dbus-send --print-reply --dest=com.deepin.ScreenRecorder /com/deepin/ScreenRecorder com.deepin.ScreenRecorder.stopRecord", +- "system-monitor": "/usr/bin/deepin-system-monitor", ++ "system-monitor": "deepin-system-monitor", + "color-picker": "dbus-send --print-reply --dest=com.deepin.Picker /com/deepin/Picker com.deepin.Picker.Show", + // screenshot actions: + "screenshot": screenshotCmdPrefix + "StartScreenshot", +@@ -104,7 +104,7 @@ var defaultSysActionCmdMap = map[string]string{ + "global-search": "/usr/libexec/dde-daemon/keybinding/shortcut-dde-grand-search.sh", + "switch-next-kbd-layout": "dbus-send --print-reply --dest=com.deepin.daemon.Keybinding /com/deepin/daemon/InputDevice/Keyboard com.deepin.daemon.InputDevice.Keyboard.ToggleNextLayout", + // cmd +- "calculator": "/usr/bin/deepin-calculator", ++ "calculator": "deepin-calculator", + "search": "/usr/libexec/dde-daemon/keybinding/shortcut-dde-grand-search.sh", + } + +diff --git a/keybinding/special_keycode.go b/keybinding/special_keycode.go +index d18c9a66..9704b241 100644 +--- a/keybinding/special_keycode.go ++++ b/keybinding/special_keycode.go +@@ -276,7 +276,7 @@ func (m *Manager) handlePower() { + } + m.systemTurnOffScreen() + case powerActionShowUI: +- cmd := "originmap=$(setxkbmap -query | grep option | awk -F ' ' '{print $2}');/usr/bin/setxkbmap -option grab:break_actions&&/usr/bin/xdotool key XF86Ungrab&&dbus-send --print-reply --dest=com.deepin.dde.lockFront /com/deepin/dde/shutdownFront com.deepin.dde.shutdownFront.Show&&/usr/bin/setxkbmap -option; setxkbmap -option $originmap" ++ cmd := "originmap=$(setxkbmap -query | grep option | awk -F ' ' '{print $2}');setxkbmap -option grab:break_actions&&xdotool key XF86Ungrab&&dbus-send --print-reply --dest=com.deepin.dde.lockFront /com/deepin/dde/shutdownFront com.deepin.dde.shutdownFront.Show&&setxkbmap -option; setxkbmap -option $originmap" + go func() { + locked, err := m.sessionManager.Locked().Get(0) + if err != nil { +diff --git a/keybinding/utils.go b/keybinding/utils.go +index 8e531369..261c88e8 100644 +--- a/keybinding/utils.go ++++ b/keybinding/utils.go +@@ -311,7 +311,7 @@ func readTinyFile(file string) ([]byte, error) { + } + + func shouldUseDDEKwin() bool { +- _, err := os.Stat("/usr/bin/kwin_no_scale") ++ _, err := exec.LookPath("kwin_no_scale") + return err == nil + } + +diff --git a/launcher/manager_ifc.go b/launcher/manager_ifc.go +index 440aa8e5..ad74f99f 100644 +--- a/launcher/manager_ifc.go ++++ b/launcher/manager_ifc.go +@@ -24,7 +24,7 @@ const ( + dbusObjPath = "/com/deepin/dde/daemon/Launcher" + dbusInterface = dbusServiceName + desktopMainSection = "Desktop Entry" +- launcherExecPath = "/usr/bin/dde-launcher" ++ launcherExecPath = "dde-launcher" + ) + + var errorInvalidID = errors.New("invalid ID") +diff --git a/misc/dde-daemon/keybinding/system_actions.json b/misc/dde-daemon/keybinding/system_actions.json +index 8de3f111..8048048e 100644 +--- a/misc/dde-daemon/keybinding/system_actions.json ++++ b/misc/dde-daemon/keybinding/system_actions.json +@@ -13,7 +13,7 @@ + "Action": "dbus-send --print-reply --dest=com.deepin.ScreenRecorder /com/deepin/ScreenRecorder com.deepin.ScreenRecorder.stopRecord" + }, + { +- "Action": "/usr/bin/deepin-system-monitor", ++ "Action": "deepin-system-monitor", + "Key": "system-monitor" + }, + { +@@ -21,7 +21,7 @@ + "Action": "dbus-send --print-reply --dest=com.deepin.Picker /com/deepin/Picker com.deepin.Picker.Show" + }, + { +- "Action": "originmap=$(setxkbmap -query | grep option | awk -F ' ' '{print $2}');/usr/bin/setxkbmap -option grab:break_actions&&/usr/bin/xdotool key XF86Ungrab&&dbus-send --print-reply --dest=com.deepin.dde.lockFront /com/deepin/dde/lockFront com.deepin.dde.lockFront.Show&&/usr/bin/setxkbmap -option; setxkbmap -option $originmap", ++ "Action": "originmap=$(setxkbmap -query | grep option | awk -F ' ' '{print $2}');setxkbmap -option grab:break_actions&&xdotool key XF86Ungrab&&dbus-send --print-reply --dest=com.deepin.dde.lockFront /com/deepin/dde/lockFront com.deepin.dde.lockFront.Show&&setxkbmap -option; setxkbmap -option $originmap", + "Key": "lock-screen" + }, + { +diff --git a/misc/etc/acpi/powerbtn.sh b/misc/etc/acpi/powerbtn.sh +index 5c536b9e..39c28987 100755 +--- a/misc/etc/acpi/powerbtn.sh ++++ b/misc/etc/acpi/powerbtn.sh +@@ -58,4 +58,4 @@ elif test "$XUSER" != "" && test -x /usr/bin/qdbus; then + fi + + # If all else failed, just initiate a plain shutdown. +-/sbin/shutdown -h now "Power button pressed" ++shutdown -h now "Power button pressed" +diff --git a/misc/udev-rules/80-deepin-fprintd.rules b/misc/udev-rules/80-deepin-fprintd.rules +index d3d3554a..9163b91c 100644 +--- a/misc/udev-rules/80-deepin-fprintd.rules ++++ b/misc/udev-rules/80-deepin-fprintd.rules +@@ -1 +1 @@ +-SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_interface", ACTION=="add|remove", ENV{LIBFPRINT_DRIVER}!="" RUN+="/usr/bin/dbus-send --system --dest=com.deepin.daemon.Fprintd --print-reply /com/deepin/daemon/Fprintd com.deepin.daemon.Fprintd.TriggerUDevEvent" ++SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_interface", ACTION=="add|remove", ENV{LIBFPRINT_DRIVER}!="" RUN+="@dbus@/bin/dbus-send --system --dest=com.deepin.daemon.Fprintd --print-reply /com/deepin/daemon/Fprintd com.deepin.daemon.Fprintd.TriggerUDevEvent" +diff --git a/system/display/displaycfg.go b/system/display/displaycfg.go +index 57b5871a..5b7757b4 100644 +--- a/system/display/displaycfg.go ++++ b/system/display/displaycfg.go +@@ -255,7 +255,7 @@ func (d *Display) doDetectSupportWayland(sender dbus.Sender) (bool, error) { + return false, err + } + var cmd *exec.Cmd +- if execPath == "/usr/bin/lightdm-deepin-greeter" { ++ if strings.Contains(execPath, "lightdm-deepin-greeter") { + cmd = exec.Command("runuser", "-u", "lightdm", "glxinfo") // runuser -u lightdm glxinfo + } else { + cmd = exec.Command("glxinfo") +diff --git a/system/power/manager_lmt.go b/system/power/manager_lmt.go +index e2bdb2af..baf32fbd 100644 +--- a/system/power/manager_lmt.go ++++ b/system/power/manager_lmt.go +@@ -8,6 +8,7 @@ import ( + "bufio" + "io/ioutil" + "os" ++ "os/exec" + "path/filepath" + "strings" + +@@ -28,7 +29,7 @@ const ( + const lowBatteryThreshold = 20.0 + + func isLaptopModeBinOk() bool { +- _, err := os.Stat(laptopModeBin) ++ _, err := exec.LookPath("laptop_mode") + return err == nil + } + +diff --git a/system/power_manager/utils.go b/system/power_manager/utils.go +index 93f433c2..ef603c96 100644 +--- a/system/power_manager/utils.go ++++ b/system/power_manager/utils.go +@@ -33,7 +33,7 @@ func canSuspend() bool { + } + + func detectVirtualMachine() (string, error) { +- out, err := exec.Command("/usr/bin/systemd-detect-virt").Output() ++ out, err := exec.Command("systemd-detect-virt").Output() + if err != nil { + return "", err + } +diff --git a/system/systeminfo/manager.go b/system/systeminfo/manager.go +index 5525ae36..daab2c44 100644 +--- a/system/systeminfo/manager.go ++++ b/system/systeminfo/manager.go +@@ -205,7 +205,7 @@ func filterUnNumber(value string) string { + + //执行命令:/usr/bin/getconf LONG_BIT 获取系统位数 + func (m *Manager) systemBit() string { +- output, err := exec.Command("/usr/bin/getconf", "LONG_BIT").Output() ++ output, err := exec.Command("getconf", "LONG_BIT").Output() + if err != nil { + return "64" + } +diff --git a/systeminfo/utils.go b/systeminfo/utils.go +index ed17aeb8..e919fb53 100644 +--- a/systeminfo/utils.go ++++ b/systeminfo/utils.go +@@ -39,7 +39,7 @@ func getMemoryFromFile(file string) (uint64, error) { + + //执行命令:/usr/bin/getconf LONG_BIT 获取系统位数 + func systemBit() string { +- output, err := exec.Command("/usr/bin/getconf", "LONG_BIT").Output() ++ output, err := exec.Command("getconf", "LONG_BIT").Output() + if err != nil { + return "64" + } +-- +2.39.2 + diff --git a/nixpkgs/pkgs/desktops/deepin/go-package/dde-daemon/0005-fix-custom-wallpapers-path.diff b/nixpkgs/pkgs/desktops/deepin/go-package/dde-daemon/0005-fix-custom-wallpapers-path.diff new file mode 100644 index 000000000000..0dcd7366e0df --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/go-package/dde-daemon/0005-fix-custom-wallpapers-path.diff @@ -0,0 +1,22 @@ +diff --git a/bin/dde-system-daemon/wallpaper.go b/bin/dde-system-daemon/wallpaper.go +index d4af13da..1ff36f84 100644 +--- a/bin/dde-system-daemon/wallpaper.go ++++ b/bin/dde-system-daemon/wallpaper.go +@@ -24,7 +24,7 @@ import ( + + const maxCount = 5 + const maxSize = 32 * 1024 * 1024 +-const wallPaperDir = "/usr/share/wallpapers/custom-wallpapers/" ++const wallPaperDir = "/var/lib/dde-daemon/wallpapers/custom-wallpapers/" + + func GetUserDir(username string) (string, error) { + dir := filepath.Join(wallPaperDir, username) +@@ -136,7 +136,7 @@ func (d *Daemon) SaveCustomWallPaper(sender dbus.Sender, username string, file s + "-u", + username, + "--", +- "head", ++ "@coreutils@/bin/head", + "-c", + "0", + file, diff --git a/nixpkgs/pkgs/desktops/deepin/go-package/dde-daemon/default.nix b/nixpkgs/pkgs/desktops/deepin/go-package/dde-daemon/default.nix new file mode 100644 index 000000000000..b9a1da5ca2e8 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/go-package/dde-daemon/default.nix @@ -0,0 +1,170 @@ +{ stdenv +, lib +, fetchFromGitHub +, substituteAll +, buildGoPackage +, pkg-config +, deepin-gettext-tools +, gettext +, python3 +, wrapGAppsHook +, go-dbus-factory +, go-gir-generator +, go-lib +, dde-api +, ddcutil +, alsa-lib +, glib +, gtk3 +, libgudev +, libinput +, libnl +, librsvg +, linux-pam +, libxcrypt +, networkmanager +, pulseaudio +, gdk-pixbuf-xlib +, tzdata +, xkeyboard_config +, runtimeShell +, xorg +, xdotool +, getconf +, dbus +, coreutils +, util-linux +, dde-session-ui +}: + +buildGoPackage rec { + pname = "dde-daemon"; + version = "5.14.122"; + + goPackagePath = "github.com/linuxdeepin/dde-daemon"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-KoYMv4z4IGBH0O422PuFHrIgDBEkU08Vepax+00nrGE="; + }; + + patches = [ + ./0001-fix-wrapped-name-for-verifyExe.patch + ./0002-dont-set-PATH.patch + ./0003-search-in-XDG-directories.patch + (substituteAll { + src = ./0004-aviod-use-hardcode-path.patch; + inherit dbus; + }) + (substituteAll { + src = ./0005-fix-custom-wallpapers-path.diff; + inherit coreutils; + }) + ]; + + postPatch = '' + substituteInPlace dock/desktop_file_path.go \ + --replace "/usr/share" "/run/current-system/sw/share" + + substituteInPlace session/eventlog/{app_event.go,login_event.go} accounts/users/users_test.go \ + --replace "/bin/bash" "${runtimeShell}" + + substituteInPlace inputdevices/layout_list.go \ + --replace "/usr/share/X11/xkb" "${xkeyboard_config}/share/X11/xkb" + + substituteInPlace system/uadp/crypto.go \ + --replace "/usr/share/uadp" "/var/lib/dde-daemon/uadp" + + substituteInPlace appearance/background/{background.go,custom_wallpapers.go} accounts/user.go \ + --replace "/usr/share/wallpapers" "/run/current-system/sw/share/wallpapers" + + substituteInPlace appearance/manager.go timedate/zoneinfo/zone.go \ + --replace "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo" + + substituteInPlace accounts/image_blur.go grub2/modify_manger.go \ + --replace "/usr/lib/deepin-api" "/run/current-system/sw/lib/deepin-api" + + substituteInPlace accounts/user_chpwd_union_id.go \ + --replace "/usr/lib/dde-control-center" "/run/current-system/sw/lib/dde-control-center" + + for file in $(grep "/usr/lib/deepin-daemon" * -nR |awk -F: '{print $1}') + do + sed -i 's|/usr/lib/deepin-daemon|/run/current-system/sw/lib/deepin-daemon|g' $file + done + + patchShebangs . + ''; + + goDeps = ./deps.nix; + + nativeBuildInputs = [ + pkg-config + deepin-gettext-tools + gettext + python3 + wrapGAppsHook + ]; + + buildInputs = [ + go-dbus-factory + go-gir-generator + go-lib + dde-api + ddcutil + linux-pam + libxcrypt + alsa-lib + glib + libgudev + gtk3 + gdk-pixbuf-xlib + networkmanager + libinput + libnl + librsvg + pulseaudio + tzdata + xkeyboard_config + ]; + + buildPhase = '' + runHook preBuild + addToSearchPath GOPATH "${go-dbus-factory}/share/gocode" + addToSearchPath GOPATH "${go-gir-generator}/share/gocode" + addToSearchPath GOPATH "${go-lib}/share/gocode" + addToSearchPath GOPATH "${dde-api}/share/gocode" + make -C go/src/${goPackagePath} + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + make install DESTDIR="$out" PREFIX="/" -C go/src/${goPackagePath} + runHook postInstall + ''; + + preFixup = '' + gappsWrapperArgs+=( + --prefix PATH : "${lib.makeBinPath [ util-linux dde-session-ui ]}" + ) + ''; + + postFixup = '' + for f in "$out"/lib/deepin-daemon/*; do + echo "Wrapping $f" + wrapGApp "$f" + done + mv $out/run/current-system/sw/lib/deepin-daemon/service-trigger $out/lib/deepin-daemon/ + rm -r $out/run + ''; + + meta = with lib; { + description = "Daemon for handling the deepin session settings"; + homepage = "https://github.com/linuxdeepin/dde-daemon"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/go-package/dde-daemon/deps.nix b/nixpkgs/pkgs/desktops/deepin/go-package/dde-daemon/deps.nix new file mode 100644 index 000000000000..16eaa254c2ff --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/go-package/dde-daemon/deps.nix @@ -0,0 +1,290 @@ +[ + { + goPackagePath = "github.com/fsnotify/fsnotify"; + fetch = { + type = "git"; + url = "https://github.com/fsnotify/fsnotify"; + rev = "v1.5.1"; + sha256 = "sha256-B8kZ8yiWgallT7R2j1kSRJcJkSGFVf9ise+TpXa+7XY="; + }; + } + { + goPackagePath = "github.com/godbus/dbus"; + fetch = { + type = "git"; + url = "https://github.com/godbus/dbus"; + rev = "v5.1.0"; + sha256 = "sha256-JSPtmkGEStBEVrKGszeLCb7P38SzQKgMiDC3eDppXs0="; + }; + } + { + goPackagePath = "github.com/stretchr/testify"; + fetch = { + type = "git"; + url = "https://github.com/stretchr/testify"; + rev = "v1.7.1"; + sha256 = "sha256-disUVIHiIDSj/go3APtJH8awSl8QwKRRFLKI7LRnl0w="; + }; + } + { + goPackagePath = "golang.org/x/sys"; + fetch = { + type = "git"; + url = "https://github.com/golang/sys"; + rev = "289d7a0edf712062d9f1484b07bdf2383f48802f"; + sha256 = "sha256-AzS/J3OocI7mA0xsIfQzyskNKVija7F2yvuts+EFJBs="; + }; + } + { + goPackagePath = "golang.org/x/xerrors"; + fetch = { + type = "git"; + url = "https://github.com/golang/xerrors"; + rev = "2f41105eb62f341cfe208d06de4ee3bdd3a083da"; + sha256 = "sha256-yZNeG+jcarcw/aOFhrhxWWE20r0P+/VJF4i/0JQfv1c="; + }; + } + { + goPackagePath = "gopkg.in/yaml.v3"; + fetch = { + type = "git"; + url = "https://github.com/go-yaml/yaml"; + rev = "496545a6307b2a7d7a710fd516e5e16e8ab62dbc"; + sha256 = "sha256-j8yDji+vqsitpRZirpb4w/Em8nstgf28wpwkcrOlxBk="; + }; + } + { + goPackagePath = "github.com/davecgh/go-spew"; + fetch = { + type = "git"; + url = "https://github.com/davecgh/go-spew"; + rev = "v1.1.1"; + sha256 = "sha256-nhzSUrE1fCkN0+RL04N4h8jWmRFPPPWbCuDc7Ss0akI="; + }; + } + { + goPackagePath = "github.com/stretchr/objx"; + fetch = { + type = "git"; + url = "https://github.com/stretchr/objx"; + rev = "v0.3.0"; + sha256 = "sha256-T753/EiD5Cpk6H2JFhd+s1gFvpNptG2XlEHxZF6dQaw="; + }; + } + { + goPackagePath = "github.com/linuxdeepin/go-x11-client"; + fetch = { + type = "git"; + url = "https://github.com/linuxdeepin/go-x11-client"; + rev = "0.6.9"; + sha256 = "sha256-xXNaXpFFHJN1fCFLoVrQFCXQ4ya+Kga55QWcJL/InkA="; + }; + } + { + goPackagePath = "github.com/pmezard/go-difflib"; + fetch = { + type = "git"; + url = "https://github.com/pmezard/go-difflib"; + rev = "5d4384ee4fb2527b0a1256a821ebfc92f91efefc"; + sha256 = "sha256-XA4Oj1gdmdV/F/+8kMI+DBxKPthZ768hbKsO3d9Gx90="; + }; + } + { + goPackagePath = "github.com/axgle/mahonia"; + fetch = { + type = "git"; + url = "https://github.com/axgle/mahonia"; + rev = "3358181d7394e26beccfae0ffde05193ef3be33a"; + sha256 = "0b8wsrxmv8a0cqbnsg55lpf29pxy2zw8azvgh3ck664lqpcfybhq"; + }; + } + { + goPackagePath = "golang.org/x/text"; + fetch = { + type = "git"; + url = "https://github.com/golang/text"; + rev = "v0.3.7"; + sha256 = "sha256-XpIbgE6MxWwDQQcPXr2NIsE2cev2+CIabi566TYGfHY="; + }; + } + { + goPackagePath = "golang.org/x/image"; + fetch = { + type = "git"; + url = "https://github.com/golang/image"; + rev = "70e8d0d3baa9a699c3865c753cbfa8ae65bd86ce"; + sha256 = "sha256-oMbDIke/qQ6cp7JLNsMusf7EIUfuj0WavFVfI0lxTDs="; + }; + } + { + goPackagePath = "github.com/nfnt/resize"; + fetch = { + type = "git"; + url = "https://github.com/nfnt/resize"; + rev = "83c6a9932646f83e3267f353373d47347b6036b2"; + sha256 = "005cpiwq28krbjf0zjwpfh63rp4s4is58700idn24fs3g7wdbwya"; + }; + } + { + goPackagePath = "github.com/Lofanmi/pinyin-golang"; + fetch = { + type = "git"; + url = "https://github.com/Lofanmi/pinyin-golang"; + rev = "1db892057f20c56a3286cc1517e0642dacbff54c"; + sha256 = "sha256-nhO6AYZ3vc7nwgmmfTlE6m33caY9gGZoKiSYvFLqHQc="; + }; + } + { + goPackagePath = "github.com/mozillazg/go-pinyin"; + fetch = { + type = "git"; + url = "https://github.com/mozillazg/go-pinyin"; + rev = "8930bc1fcb5693689dc35d98ad2a4153662e34b1"; + sha256 = "sha256-kuMNiWpPeqsIsFgYIOsffxUfwcLPaMZWdZRBJAMDVvA="; + }; + } + { + goPackagePath = "github.com/kelvins/sunrisesunset"; + fetch = { + type = "git"; + url = "https://github.com/kelvins/sunrisesunset"; + rev = "39fa1bd816d52927b4cfcab0a1535b17eafe0a3d"; + sha256 = "sha256-awklKAW1YM3sWM21irbyu2sUMIo3kCOj12lzyVzDefw="; + }; + } + { + goPackagePath = "github.com/cryptix/wav"; + fetch = { + type = "git"; + url = "https://github.com/cryptix/wav"; + rev = "8bdace674401f0bd3b63c65479b6a6ff1f9d5e44"; + sha256 = "18nyqv0ic35fs9fny8sj84c00vbxs8mnric6vr6yl42624fh5id6"; + }; + } + { + goPackagePath = "github.com/rickb777/date"; + fetch = { + type = "git"; + url = "https://github.com/rickb777/date"; + rev = "v1.18"; + sha256 = "sha256-8r8eFOF5dKtowE3dnjpSMIXJ/yX2IjiR7nZ/EApUZbA="; + }; + } + { + goPackagePath = "github.com/rickb777/plural"; + fetch = { + type = "git"; + url = "https://github.com/rickb777/plural"; + rev = "v1.4.1"; + sha256 = "sha256-nhN+ApdfUie45L+M2OZAPtSoiIZ1pZ2UpDX/DePS6Yw="; + }; + } + { + goPackagePath = "github.com/gosexy/gettext"; + fetch = { + type = "git"; + url = "https://github.com/gosexy/gettext"; + rev = "v0.9"; + sha256 = "0asphx8nd7zmp88wk6aakk5292np7yw73akvfdvlvs9q5r5ahkgi"; + }; + } + { + goPackagePath = "github.com/msteinert/pam"; + fetch = { + type = "git"; + url = "https://github.com/msteinert/pam"; + rev = "v1.0.0"; + sha256 = "sha256-Ji13ckPyZUBAovhK2hRHgf2LB1ieglX/XrIJBxVcsXc="; + }; + } + { + goPackagePath = "github.com/youpy/go-wav"; + fetch = { + type = "git"; + url = "https://github.com/youpy/go-wav"; + rev = "v0.3.2"; + sha256 = "sha256-jNqXW3F3fcgjT47+d2MVXauWkA7+1KfYVu3ZZpRCTkM="; + }; + } + { + goPackagePath = "github.com/zaf/g711"; + fetch = { + type = "git"; + url = "https://github.com/zaf/g711"; + rev = "v1.2"; + sha256 = "sha256-G+0cgGw/fcOUFVn32AeqUE0YjyOS82Z5MTcn6IANhCY="; + }; + } + { + goPackagePath = "github.com/youpy/go-riff"; + fetch = { + type = "git"; + url = "https://github.com/youpy/go-riff"; + rev = "v0.1.0"; + sha256 = "sha256-d/3rkxDeRTPveZblArKc61gB4LJVV08n7g0THieuhx8="; + }; + } + { + goPackagePath = "google.golang.org/protobuf"; + fetch = { + type = "git"; + url = "https://github.com/protocolbuffers/protobuf-go"; + rev = "v1.28.1"; + sha256 = "sha256-7Cg7fByLR9jX3OSCqJfLw5PAHDQi/gopkjtkbobnyWM"; + }; + } + { + goPackagePath = "github.com/mdlayher/netlink"; + fetch = { + type = "git"; + url = "https://github.com/mdlayher/netlink"; + rev = "v1.6.0"; + sha256 = "sha256-3pVOXscdUVerFlRW9aGz7/5YL2OWFkvm8AJGSxygkEs="; + }; + } + { + goPackagePath = "github.com/josharian/native"; + fetch = { + type = "git"; + url = "https://github.com/josharian/native"; + rev = "a938fb150d47536d63d6bb2f0c4433091cb8c223"; + sha256 = "sha256-KYeAFKKzRt+e7Zy0sp4VW65HQL90hF/wjXP3R5dXaww="; + }; + } + { + goPackagePath = "github.com/mdlayher/socket"; + fetch = { + type = "git"; + url = "https://github.com/mdlayher/socket"; + rev = "v0.2.3"; + sha256 = "sha256-EDaSQ621SJ2OK2WycMtybuJ2KpaH86JHknqsiduuCtQ="; + }; + } + { + goPackagePath = "golang.org/x/net"; + fetch = { + type = "git"; + url = "https://github.com/golang/net"; + rev = "83b083e8dc8b4507e702ce59208711115b23ec25"; + sha256 = "sha256-50A1EeE7HxKbnLBy1vdxtrbH+7d6/mnZA0cOwHJr5XA="; + }; + } + { + goPackagePath = "golang.org/x/sync"; + fetch = { + type = "git"; + url = "https://github.com/golang/sync"; + rev = "7fc1605a5dde7535a0fc1770ca44238629ff29ac"; + sha256 = "sha256-5EOxO8FRdaLW9v/DhwBmWiT2G34A2ofxSCaC7ovvpb0="; + }; + } + { + goPackagePath = "github.com/adrg/xdg"; + fetch = { + type = "git"; + url = "https://github.com/adrg/xdg"; + rev = "v0.4.0"; + sha256 = "sha256-zGjkdUQmrVqD6rMO9oDY+TeJCpuqnHyvkPCaXDlac/U="; + }; + } +] diff --git a/nixpkgs/pkgs/desktops/deepin/go-package/deepin-desktop-schemas/default.nix b/nixpkgs/pkgs/desktops/deepin/go-package/deepin-desktop-schemas/default.nix new file mode 100644 index 000000000000..274c81bfce96 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/go-package/deepin-desktop-schemas/default.nix @@ -0,0 +1,57 @@ +{ stdenv +, lib +, fetchFromGitHub +, buildGoPackage +, go-lib +, glib +}: +buildGoPackage rec { + pname = "deepin-desktop-schemas"; + version = "5.10.11"; + + goPackagePath = "github.com/linuxdeepin/deepin-desktop-schemas"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-MboNj0zC3azavDUsmeNNafCcUa0GeoySl610+WOtNww="; + }; + + nativeBuildInputs = [ glib ]; + buildInputs = [ go-lib ]; + + postPatch = '' + # Relocate files path for backgrounds and wallpapers + for file in $(grep -rl "/usr/share") + do + substituteInPlace $file \ + --replace "/usr/share" "/run/current-system/sw/share" + done + ''; + + buildPhase = '' + runHook preBuild + addToSearchPath GOPATH "${go-lib}/share/gocode" + make ARCH=${stdenv.targetPlatform.linuxArch} -C go/src/${goPackagePath} + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + make install DESTDIR="$out" PREFIX="/" -C go/src/${goPackagePath} + runHook postInstall + ''; + + preFixup = '' + glib-compile-schemas ${glib.makeSchemaPath "$out" "${pname}-${version}"} + ''; + + meta = with lib; { + description = "GSettings deepin desktop-wide schemas"; + homepage = "https://github.com/linuxdeepin/deepin-desktop-schemas"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/go-package/deepin-pw-check/default.nix b/nixpkgs/pkgs/desktops/deepin/go-package/deepin-pw-check/default.nix new file mode 100644 index 000000000000..99a0d8eb6c2a --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/go-package/deepin-pw-check/default.nix @@ -0,0 +1,84 @@ +{ stdenv +, lib +, fetchFromGitHub +, buildGoPackage +, pkg-config +, deepin-gettext-tools +, go-dbus-factory +, go-gir-generator +, go-lib +, gtk3 +, glib +, libxcrypt +, gettext +, iniparser +, cracklib +, linux-pam +}: + +buildGoPackage rec { + pname = "deepin-pw-check"; + version = "5.1.18"; + + goPackagePath = "github.com/linuxdeepin/deepin-pw-check"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-v1Z4ArkrejjOCO1vD+BhfEl9pTfuvKgLM6Ont0IUCQk="; + }; + + goDeps = ./deps.nix; + + nativeBuildInputs = [ + pkg-config + gettext + deepin-gettext-tools + ]; + + buildInputs = [ + go-dbus-factory + go-gir-generator + go-lib + glib + libxcrypt + gtk3 + iniparser + cracklib + linux-pam + ]; + + postPatch = '' + sed -i 's|iniparser/||' */*.c + substituteInPlace misc/pkgconfig/libdeepin_pw_check.pc \ + --replace "/usr" "$out" + substituteInPlace misc/system-services/com.deepin.daemon.PasswdConf.service \ + --replace "/usr/lib/deepin-pw-check/deepin-pw-check" "$out/lib/deepin-pw-check/deepin-pw-check" + ''; + + buildPhase = '' + runHook preBuild + addToSearchPath GOPATH "${go-dbus-factory}/share/gocode" + addToSearchPath GOPATH "${go-gir-generator}/share/gocode" + addToSearchPath GOPATH "${go-lib}/share/gocode" + make -C go/src/${goPackagePath} + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + make install PREFIX="$out" PKG_FILE_DIR=$out/lib/pkg-config PAM_MODULE_DIR=$out/etc/pam.d -C go/src/${goPackagePath} + # https://github.com/linuxdeepin/deepin-pw-check/blob/d5597482678a489077a506a87f06d2b6c4e7e4ed/debian/rules#L21 + ln -s $out/lib/libdeepin_pw_check.so $out/lib/libdeepin_pw_check.so.1 + runHook postInstall + ''; + + meta = with lib; { + description = "Tool to verify the validity of the password"; + homepage = "https://github.com/linuxdeepin/deepin-pw-check"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/go-package/deepin-pw-check/deps.nix b/nixpkgs/pkgs/desktops/deepin/go-package/deepin-pw-check/deps.nix new file mode 100644 index 000000000000..509940b6d570 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/go-package/deepin-pw-check/deps.nix @@ -0,0 +1,75 @@ +[ + { + goPackagePath = "github.com/fsnotify/fsnotify"; + fetch = { + type = "git"; + url = "https://github.com/fsnotify/fsnotify"; + rev = "v1.5.1"; + sha256 = "sha256-B8kZ8yiWgallT7R2j1kSRJcJkSGFVf9ise+TpXa+7XY="; + }; + } + { + goPackagePath = "github.com/godbus/dbus"; + fetch = { + type = "git"; + url = "https://github.com/godbus/dbus"; + rev = "v5.1.0"; + sha256 = "sha256-JSPtmkGEStBEVrKGszeLCb7P38SzQKgMiDC3eDppXs0="; + }; + } + { + goPackagePath = "github.com/stretchr/testify"; + fetch = { + type = "git"; + url = "https://github.com/stretchr/testify"; + rev = "v1.7.1"; + sha256 = "sha256-disUVIHiIDSj/go3APtJH8awSl8QwKRRFLKI7LRnl0w="; + }; + } + { + goPackagePath = "golang.org/x/sys"; + fetch = { + type = "git"; + url = "https://github.com/golang/sys"; + rev = "289d7a0edf712062d9f1484b07bdf2383f48802f"; + sha256 = "sha256-AzS/J3OocI7mA0xsIfQzyskNKVija7F2yvuts+EFJBs="; + }; + } + { + goPackagePath = "gopkg.in/yaml.v3"; + fetch = { + type = "git"; + url = "https://github.com/go-yaml/yaml"; + rev = "496545a6307b2a7d7a710fd516e5e16e8ab62dbc"; + sha256 = "sha256-j8yDji+vqsitpRZirpb4w/Em8nstgf28wpwkcrOlxBk="; + }; + } + { + goPackagePath = "github.com/davecgh/go-spew"; + fetch = { + type = "git"; + url = "https://github.com/davecgh/go-spew"; + rev = "v1.1.1"; + sha256 = "sha256-nhzSUrE1fCkN0+RL04N4h8jWmRFPPPWbCuDc7Ss0akI="; + }; + } + { + goPackagePath = "github.com/stretchr/objx"; + fetch = { + type = "git"; + url = "https://github.com/stretchr/objx"; + rev = "v0.3.0"; + sha256 = "sha256-T753/EiD5Cpk6H2JFhd+s1gFvpNptG2XlEHxZF6dQaw="; + }; + } + { + goPackagePath = "github.com/pmezard/go-difflib"; + fetch = { + type = "git"; + url = "https://github.com/pmezard/go-difflib"; + rev = "5d4384ee4fb2527b0a1256a821ebfc92f91efefc"; + sha256 = "sha256-XA4Oj1gdmdV/F/+8kMI+DBxKPthZ768hbKsO3d9Gx90="; + }; + } +] + diff --git a/nixpkgs/pkgs/desktops/deepin/go-package/go-dbus-factory/default.nix b/nixpkgs/pkgs/desktops/deepin/go-package/go-dbus-factory/default.nix new file mode 100644 index 000000000000..4c12dce491d7 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/go-package/go-dbus-factory/default.nix @@ -0,0 +1,26 @@ +{ stdenv +, lib +, fetchFromGitHub +}: + +stdenv.mkDerivation rec { + pname = "go-dbus-factory"; + version = "1.10.23"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-6u9Bpoa80j/K1MipncfM378/qmSSMZAlx88jE4hHYBk="; + }; + + makeFlags = [ "PREFIX=${placeholder "out"}" ]; + + meta = with lib; { + description = "Generate go binding of D-Bus interfaces"; + homepage = "https://github.com/linuxdeepin/go-dbus-factory"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/go-package/go-gir-generator/default.nix b/nixpkgs/pkgs/desktops/deepin/go-package/go-gir-generator/default.nix new file mode 100644 index 000000000000..7f377d2a6e74 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/go-package/go-gir-generator/default.nix @@ -0,0 +1,43 @@ +{ stdenv +, lib +, fetchFromGitHub +, go +, pkg-config +, libgudev +, gobject-introspection +}: + +stdenv.mkDerivation rec { + pname = "go-gir-generator"; + version = "2.2.0"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-lFseui/M3+TyfYoa+rnS0cGhN6gdLrgpzgOwqzYcyPk="; + }; + + nativeBuildInputs = [ + pkg-config + go + ]; + + buildInputs = [ + libgudev + gobject-introspection + ]; + + makeFlags = [ + "PREFIX=${placeholder "out"}" + "GOCACHE=$(TMPDIR)/go-cache" + ]; + + meta = with lib; { + description = "Generate static golang bindings for GObject"; + homepage = "https://github.com/linuxdeepin/go-gir-generator"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/go-package/go-lib/default.nix b/nixpkgs/pkgs/desktops/deepin/go-package/go-lib/default.nix new file mode 100644 index 000000000000..751cba56ce35 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/go-package/go-lib/default.nix @@ -0,0 +1,42 @@ +{ stdenv +, lib +, fetchFromGitHub +, fetchpatch +, runtimeShell +}: + +stdenv.mkDerivation rec { + pname = "go-lib"; + version = "5.8.27"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-ZV5zWu7UvNKVcVo79/iKMhF4H09rGyDCvEL61H05lZc="; + }; + + patches = [ + (fetchpatch { + name = "fix_IsDir_for_symlink.patch"; + url = "https://github.com/linuxdeepin/go-lib/commit/79239904679dc70a11e1ac8e65670afcfdd7c122.patch"; + sha256 = "sha256-RsN9hK26i/W6P/+e1l1spCLdlgIEWTehhIW6POBOvW4="; + }) + ]; + + installPhase = '' + runHook preInstall + mkdir -p $out/share/gocode/src/github.com/linuxdeepin/go-lib + cp -a * $out/share/gocode/src/github.com/linuxdeepin/go-lib + rm -r $out/share/gocode/src/github.com/linuxdeepin/go-lib/debian + runHook postInstall + ''; + + meta = with lib; { + description = "Library containing many useful go routines for things such as glib, gettext, archive, graphic, etc"; + homepage = "https://github.com/linuxdeepin/go-lib"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/go-package/startdde/0001-avoid-use-hardcode-path.patch b/nixpkgs/pkgs/desktops/deepin/go-package/startdde/0001-avoid-use-hardcode-path.patch new file mode 100644 index 000000000000..2dac0993d590 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/go-package/startdde/0001-avoid-use-hardcode-path.patch @@ -0,0 +1,153 @@ +From 47a700c64329f76ab91ac01d83a93f43bebe638b Mon Sep 17 00:00:00 2001 +From: rewine <lhongxu@outlook.com> +Date: Sun, 9 Apr 2023 17:14:00 +0800 +Subject: [PATCH] avoid use hardcode path + +--- + display/wayland.go | 4 ++-- + main.go | 10 +++++----- + misc/auto_launch/chinese.json | 4 ++-- + session.go | 15 +++++++++------ + 4 files changed, 18 insertions(+), 15 deletions(-) + +diff --git a/display/wayland.go b/display/wayland.go +index b980425..e44342a 100644 +--- a/display/wayland.go ++++ b/display/wayland.go +@@ -556,7 +556,7 @@ func (mm *kMonitorManager) applyByWLOutput(monitorMap map[uint32]*Monitor) error + + if len(args_enable) > 0 { + ctx, cancel := context.WithTimeout(context.Background(), time.Second*5) +- cmdline := exec.CommandContext(ctx, "/usr/bin/dde_wloutput", "set") ++ cmdline := exec.CommandContext(ctx, "dde_wloutput", "set") + cmdline.Args = append(cmdline.Args, args_enable...) + logger.Info("cmd line args_enable:", cmdline.Args) + +@@ -572,7 +572,7 @@ func (mm *kMonitorManager) applyByWLOutput(monitorMap map[uint32]*Monitor) error + } + if len(args_disable) > 0 { + ctx, cancel := context.WithTimeout(context.Background(), time.Second*5) +- cmdline := exec.CommandContext(ctx, "/usr/bin/dde_wloutput", "set") ++ cmdline := exec.CommandContext(ctx, "dde_wloutput", "set") + cmdline.Args = append(cmdline.Args, args_disable...) + logger.Info("cmd line args_disable:", cmdline.Args) + +diff --git a/main.go b/main.go +index 77b4e78..30aa3fd 100644 +--- a/main.go ++++ b/main.go +@@ -96,17 +96,17 @@ func shouldUseDDEKWin() bool { + } + + end: +- _, err = os.Stat("/usr/bin/kwin_no_scale") ++ _, err = exec.LookPath("kwin_no_scale") + return err == nil + } + + const ( +- cmdKWin = "/usr/bin/kwin_no_scale" ++ cmdKWin = "kwin_no_scale" + cmdDdeSessionDaemon = "/usr/lib/deepin-daemon/dde-session-daemon" +- cmdDdeDock = "/usr/bin/dde-dock" +- cmdDdeDesktop = "/usr/bin/dde-desktop" ++ cmdDdeDock = "dde-dock" ++ cmdDdeDesktop = "dde-desktop" + cmdLoginReminderHelper = "/usr/libexec/deepin/login-reminder-helper" +- cmdDdeHintsDialog = "/usr/bin/dde-hints-dialog" ++ cmdDdeHintsDialog = "dde-hints-dialog" + + loginReminderTimeout = 5 * time.Second + loginReminderTimeFormat = "2006-01-02 15:04:05" +diff --git a/misc/auto_launch/chinese.json b/misc/auto_launch/chinese.json +index 079a521..1856ab1 100644 +--- a/misc/auto_launch/chinese.json ++++ b/misc/auto_launch/chinese.json +@@ -13,7 +13,7 @@ + "Priority": 9, + "Group": [ + { +- "Command": "/usr/bin/dde-file-manager", ++ "Command": "dde-file-manager", + "Wait": false, + "Args": [ + "-d" +@@ -39,7 +39,7 @@ + "Priority": 7, + "Group": [ + { +- "Command": "/usr/bin/dde-shutdown", ++ "Command": "dde-shutdown", + "Wait": false, + "Args": [ + "-d" +diff --git a/session.go b/session.go +index 26f89ef..f412ca4 100644 +--- a/session.go ++++ b/session.go +@@ -18,6 +18,7 @@ import ( + "syscall" + "time" + ++ "github.com/adrg/xdg" + "github.com/godbus/dbus" + "github.com/linuxdeepin/dde-api/soundutils" + daemon "github.com/linuxdeepin/go-dbus-factory/com.deepin.daemon.daemon" +@@ -53,8 +54,10 @@ const ( + + xsKeyQtFontName = "Qt/FontName" + xsKeyQtMonoFontName = "Qt/MonoFontName" ++) + +- ddeLockDesktopFile = "/usr/share/applications/dde-lock.desktop" ++var ( ++ ddeLockDesktopFile, _ = xdg.SearchDataFile("applications/dde-lock.desktop"); + ) + + type SessionManager struct { +@@ -90,7 +93,7 @@ type SessionManager struct { + } + + const ( +- cmdShutdown = "/usr/bin/dde-shutdown" ++ cmdShutdown = "dde-shutdown" + lockFrontDest = "com.deepin.dde.lockFront" + lockFrontIfc = lockFrontDest + lockFrontObjPath = "/com/deepin/dde/lockFront" +@@ -471,7 +474,7 @@ func (m *SessionManager) SetLocked(sender dbus.Sender, value bool) *dbus.Error { + return dbusutil.ToError(err) + } + +- if exe == "/usr/bin/dde-lock" { ++ if strings.Contains(exe, "dde-lock") { + m.setLocked(value) + return nil + } +@@ -491,7 +494,7 @@ func (m *SessionManager) SetLocked(sender dbus.Sender, value bool) *dbus.Error { + return dbusutil.ToError(fmt.Errorf("desktop file %q is invalid", desktopFile)) + } + exe = info.GetExecutable() +- if exe != "/usr/bin/dde-lock" { ++ if strings.Contains(exe, "dde-lock") { + return dbusutil.ToError(fmt.Errorf("exe %q of desktop file %q is invalid", exe, desktopFile)) + } + +@@ -798,7 +801,7 @@ func setupEnvironments2() { + // man gnome-keyring-daemon: + // The daemon will print out various environment variables which should be set + // in the user's environment, in order to interact with the daemon. +- gnomeKeyringOutput, err := exec.Command("/usr/bin/gnome-keyring-daemon", "--start", ++ gnomeKeyringOutput, err := exec.Command("gnome-keyring-daemon", "--start", + "--components=secrets,pkcs11,ssh").Output() + if err == nil { + lines := bytes.Split(gnomeKeyringOutput, []byte{'\n'}) +@@ -1389,4 +1392,4 @@ func initXEventMonitor() { + setDPMSMode(true) + } + }) +-} +\ No newline at end of file ++} +-- +2.39.2 + diff --git a/nixpkgs/pkgs/desktops/deepin/go-package/startdde/default.nix b/nixpkgs/pkgs/desktops/deepin/go-package/startdde/default.nix new file mode 100644 index 000000000000..e0502deaf9cf --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/go-package/startdde/default.nix @@ -0,0 +1,102 @@ +{ stdenv +, lib +, fetchFromGitHub +, buildGoPackage +, pkg-config +, go-dbus-factory +, go-gir-generator +, go-lib +, gettext +, dde-api +, libgnome-keyring +, gtk3 +, alsa-lib +, libpulseaudio +, libgudev +, libsecret +, jq +, wrapGAppsHook +, runtimeShell +, dde-polkit-agent +}: + +buildGoPackage rec { + pname = "startdde"; + version = "5.10.1"; + + goPackagePath = "github.com/linuxdeepin/startdde"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-dbTcYS7dEvT0eP45jKE8WiG9Pm4LU6jvR8hjMQv/yxU="; + }; + + patches = [ + ./0001-avoid-use-hardcode-path.patch + ]; + + postPatch = '' + substituteInPlace display/manager.go session.go \ + --replace "/bin/bash" "${runtimeShell}" + substituteInPlace display/manager.go main.go utils.go session.go \ + --replace "/usr/lib/deepin-daemon" "/run/current-system/sw/lib/deepin-daemon" + substituteInPlace misc/xsessions/deepin.desktop.in --subst-var-by PREFIX $out + substituteInPlace watchdog/dde_polkit_agent.go misc/auto_launch/{default.json,chinese.json} \ + --replace "/usr/lib/polkit-1-dde/dde-polkit-agent" "${dde-polkit-agent}/lib/polkit-1-dde/dde-polkit-agent" + substituteInPlace startmanager.go launch_group.go memchecker/config.go \ + --replace "/usr/share/startdde" "$out/share/startdde" + substituteInPlace misc/lightdm.conf --replace "/usr" "$out" + ''; + + goDeps = ./deps.nix; + + nativeBuildInputs = [ + gettext + pkg-config + jq + wrapGAppsHook + ]; + + buildInputs = [ + go-dbus-factory + go-gir-generator + go-lib + dde-api + libgnome-keyring + gtk3 + alsa-lib + libpulseaudio + libgudev + libsecret + ]; + + buildPhase = '' + runHook preBuild + addToSearchPath GOPATH "${go-dbus-factory}/share/gocode" + addToSearchPath GOPATH "${go-gir-generator}/share/gocode" + addToSearchPath GOPATH "${go-lib}/share/gocode" + addToSearchPath GOPATH "${dde-api}/share/gocode" + make -C go/src/${goPackagePath} + runHook postBuild + ''; + + installPhase = '' + make install DESTDIR="$out" PREFIX="/" -C go/src/${goPackagePath} + ''; + + passthru.providedSessions = [ "deepin" ]; + + meta = with lib; { + description = "Starter of deepin desktop environment"; + longDescription = '' + Startdde is used for launching DDE components and invoking user's + custom applications which compliant with xdg autostart specification + ''; + homepage = "https://github.com/linuxdeepin/startdde"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/go-package/startdde/deps.nix b/nixpkgs/pkgs/desktops/deepin/go-package/startdde/deps.nix new file mode 100644 index 000000000000..0a0b403ea44e --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/go-package/startdde/deps.nix @@ -0,0 +1,236 @@ +[ + { + goPackagePath = "github.com/cryptix/wav"; + fetch = { + type = "git"; + url = "https://github.com/cryptix/wav"; + rev = "8bdace674401f0bd3b63c65479b6a6ff1f9d5e44"; + sha256 = "18nyqv0ic35fs9fny8sj84c00vbxs8mnric6vr6yl42624fh5id6"; + }; + } + { + goPackagePath = "github.com/davecgh/go-spew"; + fetch = { + type = "git"; + url = "https://github.com/davecgh/go-spew"; + rev = "v1.1.1"; + sha256 = "sha256-nhzSUrE1fCkN0+RL04N4h8jWmRFPPPWbCuDc7Ss0akI="; + }; + } + { + goPackagePath = "github.com/linuxdeepin/go-x11-client"; + fetch = { + type = "git"; + url = "https://github.com/linuxdeepin/go-x11-client"; + rev = "0.6.9"; + sha256 = "sha256-xXNaXpFFHJN1fCFLoVrQFCXQ4ya+Kga55QWcJL/InkA="; + }; + } + { + goPackagePath = "golang.org/x/xerrors"; + fetch = { + type = "git"; + url = "https://github.com/golang/xerrors"; + rev = "2f41105eb62f341cfe208d06de4ee3bdd3a083da"; + sha256 = "sha256-yZNeG+jcarcw/aOFhrhxWWE20r0P+/VJF4i/0JQfv1c="; + }; + } + { + goPackagePath = "github.com/fsnotify/fsnotify"; + fetch = { + type = "git"; + url = "https://github.com/fsnotify/fsnotify"; + rev = "v1.5.1"; + sha256 = "sha256-B8kZ8yiWgallT7R2j1kSRJcJkSGFVf9ise+TpXa+7XY="; + }; + } + { + goPackagePath = "github.com/godbus/dbus"; + fetch = { + type = "git"; + url = "https://github.com/godbus/dbus"; + rev = "v5.1.0"; + sha256 = "sha256-JSPtmkGEStBEVrKGszeLCb7P38SzQKgMiDC3eDppXs0="; + }; + } + { + goPackagePath = "github.com/stretchr/testify"; + fetch = { + type = "git"; + url = "https://github.com/stretchr/testify"; + rev = "v1.7.1"; + sha256 = "sha256-disUVIHiIDSj/go3APtJH8awSl8QwKRRFLKI7LRnl0w="; + }; + } + { + goPackagePath = "golang.org/x/sys"; + fetch = { + type = "git"; + url = "https://github.com/golang/sys"; + rev = "289d7a0edf712062d9f1484b07bdf2383f48802f"; + sha256 = "sha256-AzS/J3OocI7mA0xsIfQzyskNKVija7F2yvuts+EFJBs="; + }; + } + { + goPackagePath = "gopkg.in/yaml.v3"; + fetch = { + type = "git"; + url = "https://github.com/go-yaml/yaml"; + rev = "496545a6307b2a7d7a710fd516e5e16e8ab62dbc"; + sha256 = "sha256-j8yDji+vqsitpRZirpb4w/Em8nstgf28wpwkcrOlxBk="; + }; + } + { + goPackagePath = "github.com/stretchr/objx"; + fetch = { + type = "git"; + url = "https://github.com/stretchr/objx"; + rev = "v0.3.0"; + sha256 = "sha256-T753/EiD5Cpk6H2JFhd+s1gFvpNptG2XlEHxZF6dQaw="; + }; + } + { + goPackagePath = "github.com/pmezard/go-difflib"; + fetch = { + type = "git"; + url = "https://github.com/pmezard/go-difflib"; + rev = "5d4384ee4fb2527b0a1256a821ebfc92f91efefc"; + sha256 = "sha256-XA4Oj1gdmdV/F/+8kMI+DBxKPthZ768hbKsO3d9Gx90="; + }; + } + { + goPackagePath = "github.com/axgle/mahonia"; + fetch = { + type = "git"; + url = "https://github.com/axgle/mahonia"; + rev = "3358181d7394e26beccfae0ffde05193ef3be33a"; + sha256 = "0b8wsrxmv8a0cqbnsg55lpf29pxy2zw8azvgh3ck664lqpcfybhq"; + }; + } + { + goPackagePath = "golang.org/x/text"; + fetch = { + type = "git"; + url = "https://github.com/golang/text"; + rev = "v0.3.7"; + sha256 = "sha256-XpIbgE6MxWwDQQcPXr2NIsE2cev2+CIabi566TYGfHY="; + }; + } + { + goPackagePath = "golang.org/x/image"; + fetch = { + type = "git"; + url = "https://github.com/golang/image"; + rev = "70e8d0d3baa9a699c3865c753cbfa8ae65bd86ce"; + sha256 = "sha256-oMbDIke/qQ6cp7JLNsMusf7EIUfuj0WavFVfI0lxTDs="; + }; + } + { + goPackagePath = "github.com/nfnt/resize"; + fetch = { + type = "git"; + url = "https://github.com/nfnt/resize"; + rev = "83c6a9932646f83e3267f353373d47347b6036b2"; + sha256 = "005cpiwq28krbjf0zjwpfh63rp4s4is58700idn24fs3g7wdbwya"; + }; + } + { + goPackagePath = "github.com/Lofanmi/pinyin-golang"; + fetch = { + type = "git"; + url = "https://github.com/Lofanmi/pinyin-golang"; + rev = "1db892057f20c56a3286cc1517e0642dacbff54c"; + sha256 = "sha256-nhO6AYZ3vc7nwgmmfTlE6m33caY9gGZoKiSYvFLqHQc="; + }; + } + { + goPackagePath = "github.com/mozillazg/go-pinyin"; + fetch = { + type = "git"; + url = "https://github.com/mozillazg/go-pinyin"; + rev = "8930bc1fcb5693689dc35d98ad2a4153662e34b1"; + sha256 = "sha256-kuMNiWpPeqsIsFgYIOsffxUfwcLPaMZWdZRBJAMDVvA="; + }; + } + { + goPackagePath = "github.com/kelvins/sunrisesunset"; + fetch = { + type = "git"; + url = "https://github.com/kelvins/sunrisesunset"; + rev = "39fa1bd816d52927b4cfcab0a1535b17eafe0a3d"; + sha256 = "sha256-awklKAW1YM3sWM21irbyu2sUMIo3kCOj12lzyVzDefw="; + }; + } + { + goPackagePath = "github.com/rickb777/date"; + fetch = { + type = "git"; + url = "https://github.com/rickb777/date"; + rev = "v1.18"; + sha256 = "sha256-8r8eFOF5dKtowE3dnjpSMIXJ/yX2IjiR7nZ/EApUZbA="; + }; + } + { + goPackagePath = "github.com/rickb777/plural"; + fetch = { + type = "git"; + url = "https://github.com/rickb777/plural"; + rev = "v1.4.1"; + sha256 = "sha256-nhN+ApdfUie45L+M2OZAPtSoiIZ1pZ2UpDX/DePS6Yw="; + }; + } + { + goPackagePath = "github.com/gosexy/gettext"; + fetch = { + type = "git"; + url = "https://github.com/gosexy/gettext"; + rev = "v0.9"; + sha256 = "0asphx8nd7zmp88wk6aakk5292np7yw73akvfdvlvs9q5r5ahkgi"; + }; + } + { + goPackagePath = "github.com/msteinert/pam"; + fetch = { + type = "git"; + url = "https://github.com/msteinert/pam"; + rev = "v1.0.0"; + sha256 = "sha256-Ji13ckPyZUBAovhK2hRHgf2LB1ieglX/XrIJBxVcsXc="; + }; + } + { + goPackagePath = "github.com/youpy/go-wav"; + fetch = { + type = "git"; + url = "https://github.com/youpy/go-wav"; + rev = "v0.3.2"; + sha256 = "sha256-jNqXW3F3fcgjT47+d2MVXauWkA7+1KfYVu3ZZpRCTkM="; + }; + } + { + goPackagePath = "github.com/zaf/g711"; + fetch = { + type = "git"; + url = "https://github.com/zaf/g711"; + rev = "v1.2"; + sha256 = "sha256-G+0cgGw/fcOUFVn32AeqUE0YjyOS82Z5MTcn6IANhCY="; + }; + } + { + goPackagePath = "github.com/youpy/go-riff"; + fetch = { + type = "git"; + url = "https://github.com/youpy/go-riff"; + rev = "v0.1.0"; + sha256 = "sha256-d/3rkxDeRTPveZblArKc61gB4LJVV08n7g0THieuhx8="; + }; + } + { + goPackagePath = "github.com/adrg/xdg"; + fetch = { + type = "git"; + url = "https://github.com/adrg/xdg"; + rev = "v0.4.0"; + sha256 = "sha256-zGjkdUQmrVqD6rMO9oDY+TeJCpuqnHyvkPCaXDlac/U="; + }; + } +] diff --git a/nixpkgs/pkgs/desktops/deepin/library/dde-qt-dbus-factory/default.nix b/nixpkgs/pkgs/desktops/deepin/library/dde-qt-dbus-factory/default.nix new file mode 100644 index 000000000000..ef302c5b7222 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/library/dde-qt-dbus-factory/default.nix @@ -0,0 +1,53 @@ +{ stdenv +, lib +, fetchFromGitHub +, qmake +, qtbase +, wrapQtAppsHook +, python3 +, dtkcore +}: + +stdenv.mkDerivation rec { + pname = "dde-qt-dbus-factory"; + version = "5.5.22"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-jqk04S+i3py3rVJcHmkPKHsU+eNEN1yoUBBlfXBbcwM="; + }; + + nativeBuildInputs = [ + qmake + wrapQtAppsHook + python3 + ]; + + buildInputs = [ + qtbase + dtkcore + ]; + + qmakeFlags = [ + "INSTALL_ROOT=${placeholder "out"}" + "LIB_INSTALL_DIR=${placeholder "out"}/lib" + ]; + + postPatch = '' + substituteInPlace libdframeworkdbus/libdframeworkdbus.pro \ + --replace "/usr" "" + + substituteInPlace libdframeworkdbus/DFrameworkdbusConfig.in \ + --replace "/usr/include" "$out/include" + ''; + + meta = with lib; { + description = "Repo of auto-generated D-Bus source code which DDE used"; + homepage = "https://github.com/linuxdeepin/dde-qt-dbus-factory"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/library/deepin-pdfium/default.nix b/nixpkgs/pkgs/desktops/deepin/library/deepin-pdfium/default.nix new file mode 100644 index 000000000000..ef496931bea2 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/library/deepin-pdfium/default.nix @@ -0,0 +1,42 @@ +{ stdenv +, lib +, fetchFromGitHub +, qmake +, pkg-config +, libchardet +, lcms2 +, openjpeg +}: + +stdenv.mkDerivation rec { + pname = "deepin-pdfium"; + version = "1.0.1"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-gUIQ+fZ7VaYaIj1hbzER10ceoJZbvhJlnDTFIShMrKw="; + }; + + nativeBuildInputs = [ + qmake + pkg-config + ]; + + dontWrapQtApps = true; + + buildInputs = [ + libchardet + lcms2 + openjpeg + ]; + + meta = with lib; { + description = "development library for pdf on deepin"; + homepage = "https://github.com/linuxdeepin/deepin-pdfium"; + license = licenses.lgpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/library/deepin-wayland-protocols/default.nix b/nixpkgs/pkgs/desktops/deepin/library/deepin-wayland-protocols/default.nix new file mode 100644 index 000000000000..ad3dce815c91 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/library/deepin-wayland-protocols/default.nix @@ -0,0 +1,31 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, extra-cmake-modules +}: + +stdenv.mkDerivation rec { + pname = "deepin-wayland-protocols"; + version = "1.6.0-deepin.1.2"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-8Im3CueC8sYA5mwRU/Z7z8HA4mPQvVSqcTD813QCYxo="; + }; + + nativeBuildInputs = [ + cmake + extra-cmake-modules + ]; + + meta = with lib; { + description = "XML files of the non-standard wayland protocols use in deepin"; + homepage = "https://github.com/linuxdeepin/deepin-wayland-protocols"; + license = licenses.lgpl21Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/library/disomaster/default.nix b/nixpkgs/pkgs/desktops/deepin/library/disomaster/default.nix new file mode 100644 index 000000000000..3f65505e0af5 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/library/disomaster/default.nix @@ -0,0 +1,40 @@ +{ stdenv +, lib +, fetchFromGitHub +, pkg-config +, qmake +, qttools +, wrapQtAppsHook +, libisoburn +}: + +stdenv.mkDerivation rec { + pname = "disomaster"; + version = "5.0.8"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-wN8mhddqqzYXkT6rRWsHVCWzaG2uRcF2iiFHlZx2LfY="; + }; + + nativeBuildInputs = [ + qmake + qttools + pkg-config + wrapQtAppsHook + ]; + + buildInputs = [ libisoburn ]; + + qmakeFlags = [ "VERSION=${version}" ]; + + meta = with lib; { + description = "A libisoburn wrapper class for Qt"; + homepage = "https://github.com/linuxdeepin/disomaster"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/library/docparser/default.nix b/nixpkgs/pkgs/desktops/deepin/library/docparser/default.nix new file mode 100644 index 000000000000..8605a0d214b7 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/library/docparser/default.nix @@ -0,0 +1,40 @@ +{ stdenv +, lib +, fetchFromGitHub +, pkg-config +, qmake +, qttools +, wrapQtAppsHook +, poppler +}: + +stdenv.mkDerivation rec { + pname = "docparser"; + version = "1.0.3"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-iWRWSu8fALTTLLWdQGbpunN/1tpvKxuN/ZWJg34x0mU="; + }; + + nativeBuildInputs = [ + qmake + qttools + pkg-config + wrapQtAppsHook + ]; + + buildInputs = [ poppler ]; + + qmakeFlags = [ "VERSION=${version}" ]; + + meta = with lib; { + description = "A document parser library ported from document2html"; + homepage = "https://github.com/linuxdeepin/docparser"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/library/dtkcommon/default.nix b/nixpkgs/pkgs/desktops/deepin/library/dtkcommon/default.nix new file mode 100644 index 000000000000..a0845277355e --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/library/dtkcommon/default.nix @@ -0,0 +1,45 @@ +{ stdenv +, lib +, fetchFromGitHub +, pkg-config +, cmake +, qtbase +, qttools +, wrapQtAppsHook +, glib +}: + +stdenv.mkDerivation rec { + pname = "dtkcommon"; + version = "5.6.9"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-FHXwgFTevCGTNUPlb/oeltE2//Sjwz7YVvko7QPOsRo="; + }; + + nativeBuildInputs = [ + cmake + pkg-config + qttools + wrapQtAppsHook + ]; + + buildInputs = [ qtbase ]; + + qmakeFlags = [ "PREFIX=${placeholder "out"}" ]; + + preFixup = '' + glib-compile-schemas ${glib.makeSchemaPath "$out" "${pname}-${version}"} + ''; + + meta = with lib; { + description = "A public project for building DTK Library"; + homepage = "https://github.com/linuxdeepin/dtkcommon"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/library/dtkcore/default.nix b/nixpkgs/pkgs/desktops/deepin/library/dtkcore/default.nix new file mode 100644 index 000000000000..3ca5622d197c --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/library/dtkcore/default.nix @@ -0,0 +1,78 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, pkg-config +, qttools +, doxygen +, wrapQtAppsHook +, qtbase +, gsettings-qt +, lshw +, libuchardet +, dtkcommon +, systemd +, withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd +}: + +stdenv.mkDerivation rec { + pname = "dtkcore"; + version = "5.6.10"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-ge8DiJMSaZo7GeQEgnDbi5SLsLxtOQ/P5/9aBgaG7Ds="; + }; + + postPatch = '' + substituteInPlace src/dsysinfo.cpp \ + --replace "/usr/share/deepin/distribution.info" "/etc/distribution.info" \ + ''; + + nativeBuildInputs = [ + cmake + pkg-config + qttools + doxygen + wrapQtAppsHook + ]; + + buildInputs = [ + qtbase + gsettings-qt + lshw + libuchardet + ] + ++ lib.optional withSystemd systemd; + + propagatedBuildInputs = [ dtkcommon ]; + + cmakeFlags = [ + "-DDVERSION=${version}" + "-DBUILD_EXAMPLES=OFF" + "-DBUILD_DOCS=ON" + "-DQCH_INSTALL_DESTINATION=${qtbase.qtDocPrefix}" + "-DDSG_PREFIX_PATH='/run/current-system/sw'" + "-DMKSPECS_INSTALL_DIR=${placeholder "out"}/mkspecs/modules" + "-DCMAKE_INSTALL_LIBDIR=lib" + "-DCMAKE_INSTALL_INCLUDEDIR=include" + "-DD_DSG_APP_DATA_FALLBACK=/var/dsg/appdata" + "-DBUILD_WITH_SYSTEMD=${if withSystemd then "ON" else "OFF"}" + ]; + + preConfigure = '' + # qt.qpa.plugin: Could not find the Qt platform plugin "minimal" + # A workaround is to set QT_PLUGIN_PATH explicitly + export QT_PLUGIN_PATH=${qtbase.bin}/${qtbase.qtPluginPrefix} + ''; + + meta = with lib; { + description = "Deepin tool kit core library"; + homepage = "https://github.com/linuxdeepin/dtkcore"; + license = licenses.lgpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/library/dtkgui/default.nix b/nixpkgs/pkgs/desktops/deepin/library/dtkgui/default.nix new file mode 100644 index 000000000000..5112feffd9ec --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/library/dtkgui/default.nix @@ -0,0 +1,72 @@ +{ stdenv +, lib +, fetchFromGitHub +, pkg-config +, cmake +, qttools +, doxygen +, wrapQtAppsHook +, qtbase +, dtkcore +, qtimageformats +, lxqt +, librsvg +, freeimage +, libraw +}: + +stdenv.mkDerivation rec { + pname = "dtkgui"; + version = "5.6.10"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-4NHt/hLtt99LhWvBX9e5ueB5G86SXx553G6fyHZBXcE="; + }; + + nativeBuildInputs = [ + cmake + qttools + doxygen + pkg-config + wrapQtAppsHook + ]; + + buildInputs = [ + qtbase + lxqt.libqtxdg + librsvg + freeimage + libraw + ]; + + propagatedBuildInputs = [ + dtkcore + qtimageformats + ]; + + cmakeFlags = [ + "-DDVERSION=${version}" + "-DBUILD_DOCS=ON" + "-DQCH_INSTALL_DESTINATION=${qtbase.qtDocPrefix}" + "-DMKSPECS_INSTALL_DIR=${placeholder "out"}/mkspecs/modules" + "-DCMAKE_INSTALL_LIBDIR=lib" + "-DCMAKE_INSTALL_INCLUDEDIR=include" + ]; + + preConfigure = '' + # qt.qpa.plugin: Could not find the Qt platform plugin "minimal" + # A workaround is to set QT_PLUGIN_PATH explicitly + export QT_PLUGIN_PATH=${qtbase.bin}/${qtbase.qtPluginPrefix} + ''; + + meta = with lib; { + description = "Deepin Toolkit, gui module for DDE look and feel"; + homepage = "https://github.com/linuxdeepin/dtkgui"; + license = licenses.lgpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/library/dtkwidget/default.nix b/nixpkgs/pkgs/desktops/deepin/library/dtkwidget/default.nix new file mode 100644 index 000000000000..65c556d77b74 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/library/dtkwidget/default.nix @@ -0,0 +1,80 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, pkg-config +, qttools +, doxygen +, wrapQtAppsHook +, dtkgui +, qtbase +, qtmultimedia +, qtsvg +, qtx11extras +, cups +, gsettings-qt +, libstartup_notification +, xorg +}: + +stdenv.mkDerivation rec { + pname = "dtkwidget"; + version = "5.6.10"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-PhVK/lUFrDW1bn9lUhLuKWLAVj7E7+/YC5USShrg3ds="; + }; + + postPatch = '' + substituteInPlace src/widgets/dapplication.cpp \ + --replace "auto dataDirs = DStandardPaths::standardLocations(QStandardPaths::GenericDataLocation);" \ + "auto dataDirs = DStandardPaths::standardLocations(QStandardPaths::GenericDataLocation) << \"$out/share\";" + ''; + + nativeBuildInputs = [ + cmake + qttools + doxygen + pkg-config + wrapQtAppsHook + ]; + + buildInputs = [ + qtbase + qtmultimedia + qtsvg + qtx11extras + cups + gsettings-qt + libstartup_notification + xorg.libXdmcp + ]; + + propagatedBuildInputs = [ dtkgui ]; + + cmakeFlags = [ + "-DDVERSION=${version}" + "-DBUILD_DOCS=ON" + "-DQCH_INSTALL_DESTINATION=${qtbase.qtDocPrefix}" + "-DMKSPECS_INSTALL_DIR=${placeholder "out"}/mkspecs/modules" + "-DCMAKE_INSTALL_LIBDIR=lib" + "-DCMAKE_INSTALL_INCLUDEDIR=include" + ]; + + preConfigure = '' + # qt.qpa.plugin: Could not find the Qt platform plugin "minimal" + # A workaround is to set QT_PLUGIN_PATH explicitly + export QT_PLUGIN_PATH=${qtbase.bin}/${qtbase.qtPluginPrefix} + ''; + + meta = with lib; { + description = "Deepin graphical user interface library"; + homepage = "https://github.com/linuxdeepin/dtkwidget"; + license = licenses.lgpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/library/dwayland/default.nix b/nixpkgs/pkgs/desktops/deepin/library/dwayland/default.nix new file mode 100644 index 000000000000..a1797344a0b0 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/library/dwayland/default.nix @@ -0,0 +1,48 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, qtbase +, qtwayland +, wayland +, wayland-protocols +, extra-cmake-modules +, deepin-wayland-protocols +, qttools +}: + +stdenv.mkDerivation rec { + pname = "dwayland"; + version = "5.24.3-deepin.1.4"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-/aWS4uvhxi9azxJWjRE+Bw+veURFO+mC8l9yypseclU="; + }; + + nativeBuildInputs = [ + cmake + extra-cmake-modules + qttools + ]; + + buildInputs = [ + qtbase + qtwayland + wayland + wayland-protocols + deepin-wayland-protocols + ]; + + dontWrapQtApps = true; + + meta = with lib; { + description = "Qt-style API to interact with the wayland-client and wayland-server"; + homepage = "https://github.com/linuxdeepin/dwayland"; + license = licenses.lgpl21Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/library/gio-qt/default.nix b/nixpkgs/pkgs/desktops/deepin/library/gio-qt/default.nix new file mode 100644 index 000000000000..c2ee51aaade5 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/library/gio-qt/default.nix @@ -0,0 +1,51 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, pkg-config +, wrapQtAppsHook +, glibmm +, doxygen +, qttools +, qtbase +, buildDocs ? true +}: + +stdenv.mkDerivation rec { + pname = "gio-qt"; + version = "0.0.12"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-/wLaVR31T+EcT6D5Cw0QIjZasioPWC74KNmt1tckwXk="; + }; + + nativeBuildInputs = [ + cmake + pkg-config + wrapQtAppsHook + ] ++ lib.optionals buildDocs [ doxygen qttools.dev ]; + + cmakeFlags = [ + "-DCMAKE_INSTALL_LIBDIR=lib" + "-DPROJECT_VERSION=${version}" + ] ++ lib.optionals (!buildDocs) [ "-DBUILD_DOCS=OFF" ]; + + propagatedBuildInputs = [ glibmm ]; + + preConfigure = '' + # qt.qpa.plugin: Could not find the Qt platform plugin "minimal" + # A workaround is to set QT_PLUGIN_PATH explicitly + export QT_PLUGIN_PATH=${qtbase.bin}/${qtbase.qtPluginPrefix} + ''; + + meta = with lib; { + description = "Gio wrapper for Qt applications"; + homepage = "https://github.com/linuxdeepin/gio-qt"; + license = licenses.lgpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/library/image-editor/default.nix b/nixpkgs/pkgs/desktops/deepin/library/image-editor/default.nix new file mode 100644 index 000000000000..6133d38aff22 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/library/image-editor/default.nix @@ -0,0 +1,69 @@ +{ stdenv +, lib +, fetchFromGitHub +, fetchpatch +, dtkwidget +, cmake +, qttools +, pkg-config +, wrapQtAppsHook +, opencv +, freeimage +, libmediainfo +, ffmpegthumbnailer +, pcre +}: + +stdenv.mkDerivation rec { + pname = "image-editor"; + version = "1.0.24"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-0p/aicuBfaEyvfZomnz49IJLospWIdl23ZreDe+Bzqc="; + }; + + patches = [ + (fetchpatch { + name = "feat_check_PREFIX_value_before_set.patch"; + url = "https://github.com/linuxdeepin/image-editor/commit/dae86e848cf53ba0ece879d81e8d5335d61a7473.patch"; + sha256 = "sha256-lxmR+nIrMWVyhl1jpA17x2yqJ40h5vnpqKKcjd8j9RY="; + }) + (fetchpatch { + name = "feat_use_FULL_install_path.patch"; + url = "https://github.com/linuxdeepin/image-editor/commit/855ae53a0444ac628aa0fe893932df6263b82e2e.patch"; + sha256 = "sha256-3Dynlwl/l/b6k6hOHjTdoDQ/VGBDfyRz9b8QY8FEsCc="; + }) + ]; + + postPatch = '' + substituteInPlace libimageviewer/service/ffmpegvideothumbnailer.cpp \ + --replace 'libPath("libffmpegthumbnailer.so")' 'QString("${ffmpegthumbnailer.out}/lib/libffmpegthumbnailer.so")' + + substituteInPlace libimageviewer/CMakeLists.txt --replace '/usr' '$out' + substituteInPlace libimagevisualresult/CMakeLists.txt --replace '/usr' '$out' + ''; + + nativeBuildInputs = [ cmake pkg-config qttools wrapQtAppsHook ]; + + buildInputs = [ + dtkwidget + opencv + freeimage + libmediainfo + ffmpegthumbnailer + pcre + ]; + + cmakeFlags = [ "-DVERSION=${version}" ]; + + meta = with lib; { + description = "Image editor lib for dtk"; + homepage = "https://github.com/linuxdeepin/image-editor"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/library/qt5integration/default.nix b/nixpkgs/pkgs/desktops/deepin/library/qt5integration/default.nix new file mode 100644 index 000000000000..426cb091a32c --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/library/qt5integration/default.nix @@ -0,0 +1,59 @@ +{ stdenv +, lib +, fetchFromGitHub +, dtkwidget +, qmake +, qtbase +, qtsvg +, pkg-config +, wrapQtAppsHook +, qtx11extras +, qt5platform-plugins +, lxqt +, mtdev +, xorg +, gtest +}: + +stdenv.mkDerivation rec { + pname = "qt5integration"; + version = "5.6.6"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-7b18ydyy/TIEGDkFAoium1LSx3Qs4I4pYpMfehOBZbY="; + }; + + nativeBuildInputs = [ + qmake + pkg-config + wrapQtAppsHook + ]; + + buildInputs = [ + dtkwidget + qtx11extras + qt5platform-plugins + mtdev + lxqt.libqtxdg + xorg.xcbutilrenderutil + gtest + ]; + + installPhase = '' + runHook preInstall + mkdir -p $out/${qtbase.qtPluginPrefix} + cp -r bin/plugins/* $out/${qtbase.qtPluginPrefix}/ + runHook postInstall + ''; + + meta = with lib; { + description = "Qt platform theme integration plugins for DDE"; + homepage = "https://github.com/linuxdeepin/qt5integration"; + license = licenses.lgpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/library/qt5platform-plugins/default.nix b/nixpkgs/pkgs/desktops/deepin/library/qt5platform-plugins/default.nix new file mode 100644 index 000000000000..1255bdb1534a --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/library/qt5platform-plugins/default.nix @@ -0,0 +1,60 @@ +{ stdenv +, lib +, fetchFromGitHub +, qmake +, pkg-config +, qtbase +, qtx11extras +, wrapQtAppsHook +, mtdev +, cairo +, xorg +, waylandSupport ? true +, wayland +}: + +stdenv.mkDerivation rec { + pname = "qt5platform-plugins"; + version = "5.6.9"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-EG5M4rcMK62DX4ywm2IH0lGHC510BnMqcefMlF9pyr8="; + }; + + nativeBuildInputs = [ + qmake + pkg-config + wrapQtAppsHook + ]; + + buildInputs = [ + mtdev + cairo + qtbase + qtx11extras + xorg.libSM + ] + ++ lib.optionals waylandSupport [ + wayland + ]; + + qmakeFlags = [ + "INSTALL_PATH=${placeholder "out"}/${qtbase.qtPluginPrefix}/platforms" + "QT_XCB_PRIVATE_INCLUDE=${qtbase.src}/src/plugins/platforms/xcb" + ] + ++ lib.optionals (!waylandSupport) [ "CONFIG+=DISABLE_WAYLAND" ]; + + + env.NIX_CFLAGS_COMPILE = lib.optionalString waylandSupport "-I${wayland.dev}/include"; + + meta = with lib; { + description = "Qt platform plugins for DDE"; + homepage = "https://github.com/linuxdeepin/qt5platform-plugins"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/library/udisks2-qt5/default.nix b/nixpkgs/pkgs/desktops/deepin/library/udisks2-qt5/default.nix new file mode 100644 index 000000000000..84321809ebeb --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/library/udisks2-qt5/default.nix @@ -0,0 +1,34 @@ +{ stdenv +, lib +, fetchFromGitHub +, qmake +, pkg-config +, wrapQtAppsHook +, udisks +}: + +stdenv.mkDerivation rec { + pname = "udisks2-qt5"; + version = "5.0.6"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-WS4fmqEYXi5dkn8RvyJBzy3+r+UgFcGDFFpQlbblLu4="; + }; + + nativeBuildInputs = [ qmake pkg-config wrapQtAppsHook ]; + + buildInputs = [ udisks ]; + + qmakeFlags = [ "VERSION=${version}" ]; + + meta = with lib; { + description = "UDisks2 D-Bus interfaces binding for Qt5"; + homepage = "https://github.com/linuxdeepin/udisks2-qt5"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/library/util-dfm/default.nix b/nixpkgs/pkgs/desktops/deepin/library/util-dfm/default.nix new file mode 100644 index 000000000000..37a492ccc009 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/library/util-dfm/default.nix @@ -0,0 +1,53 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, pkg-config +, qtbase +, libmediainfo +, libsecret +, libisoburn +, libuuid +, udisks +}: + +stdenv.mkDerivation rec { + pname = "util-dfm"; + version = "1.2.8"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-Mc3x0nTnEyMnruZotiT1J4BGOeNAQlCXGbO0yVJtqYM="; + }; + + nativeBuildInputs = [ + cmake + pkg-config + ]; + + dontWrapQtApps = true; + + buildInputs = [ + qtbase + libmediainfo + libsecret + libuuid + libisoburn + udisks + ]; + + cmakeFlags = [ + "-DCMAKE_INSTALL_LIBDIR=lib" + "-DPROJECT_VERSION=${version}" + ]; + + meta = with lib; { + description = "A Toolkits of libdfm-io,libdfm-mount and libdfm-burn"; + homepage = "https://github.com/linuxdeepin/util-dfm"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/misc/deepin-desktop-base/default.nix b/nixpkgs/pkgs/desktops/deepin/misc/deepin-desktop-base/default.nix new file mode 100644 index 000000000000..d82d758adf3b --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/misc/deepin-desktop-base/default.nix @@ -0,0 +1,36 @@ +{ stdenvNoCC +, lib +, fetchFromGitHub +}: +stdenvNoCC.mkDerivation rec { + pname = "deepin-desktop-base"; + version = "2022.11.15-deepin"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-GTgIHWz+x1Pl3F4zKA9V8o2oq6c53OK94q95WoMG+Qo="; + }; + + makeFlags = [ "DESTDIR=${placeholder "out"}" ]; + + # distribution_logo_transparent.svg come form nixos-artwork(https://github.com/NixOS/nixos-artwork)/logo/nixos-white.svg under CC-BY license, used for dde-lock + postInstall = '' + rm -r $out/etc + rm -r $out/usr/share/python-apt + rm -r $out/usr/share/plymouth + rm -r $out/usr/share/distro-info + mv $out/usr/* $out/ + rm -r $out/usr + install -D ${./distribution_logo_transparent.svg} $out/share/pixmaps/distribution_logo_transparent.svg + ''; + + meta = with lib; { + description = "Base assets and definitions for Deepin Desktop Environment"; + homepage = "https://github.com/linuxdeepin/deepin-desktop-base"; + license = with licenses; [ gpl3Plus cc-by-40 ]; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/misc/deepin-desktop-base/distribution_logo_transparent.svg b/nixpkgs/pkgs/desktops/deepin/misc/deepin-desktop-base/distribution_logo_transparent.svg new file mode 100644 index 000000000000..18f8d4055c39 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/misc/deepin-desktop-base/distribution_logo_transparent.svg @@ -0,0 +1,243 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="156px" + height="46px" + viewBox="0 0 156 46" + version="1.1" + id="SVGRoot" + sodipodi:docname="distribution_logo_transparent.svg" + inkscape:version="1.1 (c4e8f9e, 2021-05-24)" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <sodipodi:namedview + id="namedview12158" + pagecolor="#ffffff" + bordercolor="#ffffff" + borderopacity="0" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:document-units="px" + showgrid="false" + inkscape:zoom="0.67972082" + inkscape:cx="397.22191" + inkscape:cy="90.478323" + inkscape:window-width="1920" + inkscape:window-height="960" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="1" + inkscape:current-layer="layer1" /> + <defs + id="defs12153" /> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1"> + <g + id="g12416" + transform="matrix(0.10297744,0,0,0.10574712,-2.4660846,-2.6161481)"> + <g + id="layer7" + inkscape:label="bg" + style="display:none"> + <rect + transform="translate(-132.5822,958.04022)" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect5389" + width="1543.4287" + height="483.7439" + x="132.5822" + y="-957.77832" /> + <rect + style="fill:#000000;fill-opacity:1;stroke-width:0.529749" + id="rect6896" + width="1543.4287" + height="483.74393" + x="-9.0332054e-07" + y="0.26189968" /> + </g> + <g + id="layer5" + inkscape:label="guide" + style="display:none;opacity:0.516" + transform="translate(-132.5822,958.04022)"> + <rect + y="-957.77832" + x="132.5822" + height="483.7439" + width="1543.4283" + id="rect5350" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#d4d4d4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#9b9b9b;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect5346" + width="1496.443" + height="435.68069" + x="155.77646" + y="-933.38721" + inkscape:export-xdpi="17.971878" + inkscape:export-ydpi="17.971878" /> + <rect + y="-851.65918" + x="159.02695" + height="272.58423" + width="1492.5731" + id="rect5348" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#848484;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + </g> + <g + id="layer6" + inkscape:label="logo-guide" + style="display:none" + transform="translate(-132.5822,958.04022)"> + <rect + y="-958.02759" + x="132.65129" + height="484.30399" + width="550.41602" + id="rect5379" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5c201e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + inkscape:export-filename="/home/tim/dev/nix/homepage/logo/nix-wiki.png" + inkscape:export-xdpi="22.07" + inkscape:export-ydpi="22.07" /> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#c24a46;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect5372" + width="501.94415" + height="434.30405" + x="156.12303" + y="-933.02759" + inkscape:export-filename="/home/tim/dev/nix/homepage/logo/nixos-logo-only-hires-print.png" + inkscape:export-xdpi="212.2" + inkscape:export-ydpi="212.2" /> + <rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#d98d8a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect5381" + width="24.939611" + height="24.939611" + x="658.02826" + y="-958.04022" /> + </g> + <g + style="display:inline" + inkscape:label="text-vegur" + id="g5329" + transform="translate(-132.5822,958.04022)"> + <g + aria-label="Nix" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:395.097px;line-height:125%;font-family:Carlito;-inkscape-font-specification:Carlito;letter-spacing:0px;word-spacing:0px;display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="text5407"> + <path + d="m 969.15319,-847.11833 h -30.81755 v 139.86428 c 0,19.75484 0.79019,50.96749 1.97548,85.73601 h -1.18529 c -15.40877,-28.84207 -32.79303,-56.49884 -45.04104,-75.46349 l -96.79872,-150.1368 h -42.27536 v 267.87565 h 30.81755 v -139.86427 c 0,-19.75485 -0.79019,-56.89395 -1.97548,-91.26737 h 1.18529 c 22.91561,39.90478 36.34891,62.0302 48.99201,80.99485 l 96.79872,150.13679 h 38.32439 z" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Vegur;-inkscape-font-specification:Vegur;fill:#ffffff" + id="path4683" /> + <path + d="m 1027.8251,-579.24268 h 33.1881 v -191.22686 h -33.1881 z m 16.594,-219.27874 c 11.4578,0 20.5451,-9.08722 20.5451,-20.54503 0,-11.45781 -9.0873,-20.54504 -20.5451,-20.54504 -11.4578,0 -20.545,9.08723 -20.545,20.54504 0,11.45781 9.0872,20.54503 20.545,20.54503 z" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Vegur;-inkscape-font-specification:Vegur;fill:#ffffff" + id="path4685" /> + <path + d="m 1267.7785,-770.46954 h -37.9293 l -46.6214,70.32723 h -1.1853 l -45.0411,-70.32723 h -41.09 l 68.3517,93.24285 v 1.18529 l -70.7223,96.79872 h 37.9293 l 49.7822,-75.85859 h 1.1853 l 49.7822,75.85859 h 41.09 l -72.3027,-98.37911 v -1.18529 z" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Vegur;-inkscape-font-specification:Vegur;fill:#ffffff" + id="path4687" /> + </g> + <g + aria-label="O" + transform="scale(0.95067318,1.0518862)" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:367.487px;line-height:125%;font-family:Carlito;-inkscape-font-specification:Carlito;letter-spacing:0px;word-spacing:0px;display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="text5356"> + <path + d="m 1468.5915,-800.79725 c -66.1477,0 -120.5358,48.14083 -120.5358,128.25306 0,80.11223 54.3881,128.25306 120.5358,128.25306 66.1477,0 120.5359,-48.14083 120.5359,-128.25306 0,-80.11223 -54.3882,-128.25306 -120.5359,-128.25306 z m 0,24.98914 c 49.2433,0 86.727,36.74872 86.727,103.26392 0,66.5152 -37.4837,103.26392 -86.727,103.26392 -49.2433,0 -86.727,-36.74872 -86.727,-103.26392 0,-66.5152 37.4837,-103.26392 86.727,-103.26392 z" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Vegur;-inkscape-font-specification:Vegur;fill:#ffffff" + id="path4680" /> + </g> + <g + aria-label="S" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:386.555px;line-height:125%;font-family:Carlito;-inkscape-font-specification:Carlito;letter-spacing:0px;word-spacing:0px;display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="text5364"> + <path + d="m 1523.761,-773.88643 c 0,37.10927 19.3277,57.21012 64.1681,75.37819 34.4034,13.91598 48.3193,26.28573 48.3193,51.79835 0,30.92438 -25.126,46.38657 -58.3697,46.38657 -17.395,0 -37.1093,-2.70588 -58.7564,-10.05042 l -3.479,26.67228 c 18.9412,6.95799 39.8152,9.66387 60.6891,9.66387 51.7984,0 95.0925,-26.28573 95.0925,-79.24374 0,-36.7227 -22.4202,-54.50422 -67.6471,-72.6723 -30.1512,-11.9832 -44.8403,-24.73951 -44.8403,-51.41179 0,-25.89917 22.4202,-40.2017 50.6387,-40.2017 16.6218,0 34.7899,4.2521 47.5462,9.27732 l 3.479,-26.28573 c -14.6891,-6.18488 -32.8572,-9.27732 -52.958,-9.27732 -47.5463,0 -83.8824,27.4454 -83.8824,69.96642 z" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Vegur;-inkscape-font-specification:Vegur;fill:#ffffff" + id="path4677" /> + </g> + </g> + <g + id="layer4" + inkscape:label="white-logo" + style="display:inline"> + <g + style="display:inline;fill:#ffffff;fill-opacity:1;stroke-width:11.0512" + transform="matrix(0.09048806,0,0,0.09048806,9.7879003,109.19458)" + id="g955"> + <g + transform="matrix(11.047619,0,0,11.047619,-1572.2888,9377.7107)" + id="g869" + style="fill:#ffffff;fill-opacity:1"> + <g + transform="rotate(-60,226.35754,-449.37199)" + id="g932" + style="fill:#ffffff;fill-opacity:1;stroke-width:11.0512"> + <path + sodipodi:nodetypes="cccccccccc" + inkscape:connector-curvature="0" + id="path3336-6-3" + d="m 449.71876,-420.51322 122.19683,211.67512 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4901 -33.22946,-57.8257 z" + style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:33.1535;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + </g> + <path + sodipodi:nodetypes="cccccccccc" + inkscape:connector-curvature="0" + id="path4260-0-6" + d="m 309.54892,-710.38827 122.19683,211.67512 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4901 -33.22946,-57.8256 z" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:33.1535;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <use + x="0" + y="0" + xlink:href="#path3336-6-3" + inkscape:transform-center-x="124.43045" + inkscape:transform-center-y="151.59082" + id="use3439-6-7" + transform="rotate(60,728.23563,-692.24036)" + width="100%" + height="100%" + style="fill:#ffffff;fill-opacity:1;stroke-width:11.0512" /> + <use + x="0" + y="0" + xlink:href="#path3336-6-3" + inkscape:transform-center-x="59.669705" + inkscape:transform-center-y="-139.94592" + id="use3449-5-5" + transform="rotate(180,477.5036,-570.81898)" + width="100%" + height="100%" + style="fill:#ffffff;fill-opacity:1;stroke-width:11.0512" /> + <use + style="display:inline;fill:#ffffff;fill-opacity:1;stroke-width:11.0512" + x="0" + y="0" + xlink:href="#path4260-0-6" + id="use4354-5-3" + transform="rotate(120,407.33916,-716.08356)" + width="100%" + height="100%" /> + <use + style="display:inline;fill:#ffffff;fill-opacity:1;stroke-width:11.0512" + x="0" + y="0" + xlink:href="#path4260-0-6" + id="use4362-2-5" + transform="rotate(-120,407.28823,-715.86995)" + width="100%" + height="100%" /> + </g> + </g> + </g> + </g> + </g> +</svg> diff --git a/nixpkgs/pkgs/desktops/deepin/misc/deepin-turbo/default.nix b/nixpkgs/pkgs/desktops/deepin/misc/deepin-turbo/default.nix new file mode 100644 index 000000000000..7eaca5768607 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/misc/deepin-turbo/default.nix @@ -0,0 +1,42 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, pkg-config +, wrapQtAppsHook +, dtkwidget +}: + +stdenv.mkDerivation rec { + pname = "deepin-turbo"; + version = "0.0.6.3"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-t6/Ws/Q8DO0zBzrUr/liD61VkxbOv4W4x6VgMWr+Ozk="; + }; + + nativeBuildInputs = [ + cmake + pkg-config + wrapQtAppsHook + ]; + + buildInputs = [ + dtkwidget + ]; + + postPatch = '' + substituteInPlace src/{booster-dtkwidget/CMakeLists.txt,booster-desktop/{CMakeLists.txt,desktop.conf},booster-generic/CMakeLists.txt} --replace "/usr" "$out" + ''; + + meta = with lib; { + description = "A daemon that helps to launch dtk applications faster"; + homepage = "https://github.com/linuxdeepin/deepin-turbo"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/tools/dde-device-formatter/default.nix b/nixpkgs/pkgs/desktops/deepin/tools/dde-device-formatter/default.nix new file mode 100644 index 000000000000..66137f4d50f2 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/tools/dde-device-formatter/default.nix @@ -0,0 +1,69 @@ +{ stdenv +, lib +, fetchFromGitHub +, fetchpatch +, dtkwidget +, deepin-gettext-tools +, qt5integration +, qmake +, qtbase +, qttools +, qtx11extras +, pkg-config +, wrapQtAppsHook +, udisks2-qt5 +}: + +stdenv.mkDerivation rec { + pname = "dde-device-formatter"; + version = "unstable-2022-09-05"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = "9b8489cb2bb7c85bd62557d16a5eabc94100512e"; + sha256 = "sha256-Mi48dSDCoKhr8CGt9z64/9d7+r9QSrPPICv+R5VDuaU="; + }; + + patches = [ + (fetchpatch { + name = "chore-do-not-use-hardcode-path.patch"; + url = "https://github.com/linuxdeepin/dde-device-formatter/commit/b836a498b8e783e0dff3820302957f15ee8416eb.patch"; + sha256 = "sha256-i/VqJ6EmCyhE6weHKUB66bW6b51gLyssIAzb5li4aJM="; + }) + ]; + + postPatch = '' + substituteInPlace dde-device-formatter.pro --replace "/usr" "$out" + patchShebangs *.sh + ''; + + nativeBuildInputs = [ + qmake + qttools + pkg-config + wrapQtAppsHook + deepin-gettext-tools + ]; + + buildInputs = [ + dtkwidget + udisks2-qt5 + qtx11extras + ]; + + cmakeFlags = [ "-DVERSION=${version}" ]; + + # qt5integration must be placed before qtsvg in QT_PLUGIN_PATH + qtWrapperArgs = [ + "--prefix QT_PLUGIN_PATH : ${qt5integration}/${qtbase.qtPluginPrefix}" + ]; + + meta = with lib; { + description = "A simple graphical interface for creating file system in a block device"; + homepage = "https://github.com/linuxdeepin/dde-device-formatter"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/tools/deepin-gettext-tools/default.nix b/nixpkgs/pkgs/desktops/deepin/tools/deepin-gettext-tools/default.nix new file mode 100644 index 000000000000..d219e6d73b16 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/tools/deepin-gettext-tools/default.nix @@ -0,0 +1,50 @@ +{ stdenv +, lib +, fetchFromGitHub +, gettext +, python3Packages +, perlPackages +}: + +stdenv.mkDerivation rec { + pname = "deepin-gettext-tools"; + version = "1.0.10"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-5Dd2QU6JYwuktusssNDfA7IHa6HbFcWo9sZf5PS7NtI="; + }; + + postPatch = '' + substituteInPlace src/generate_mo.py --replace "sudo cp" "cp" + ''; + + nativeBuildInputs = [ python3Packages.wrapPython ]; + + buildInputs = [ + gettext + perlPackages.perl + perlPackages.ConfigTiny + perlPackages.XMLLibXML + ]; + + makeFlags = [ + "PREFIX=${placeholder "out"}" + ]; + + postFixup = '' + wrapPythonPrograms + wrapPythonProgramsIn "$out/lib/${pname}" + wrapProgram $out/bin/deepin-desktop-ts-convert --set PERL5LIB $PERL5LIB + ''; + + meta = with lib; { + description = "Translation file processing utils for DDE development"; + homepage = "https://github.com/linuxdeepin/deepin-gettext-tools"; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} |