diff options
Diffstat (limited to 'nixpkgs/pkgs/desktops/deepin')
98 files changed, 5868 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..59fa2c8c7bdf --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-album/default.nix @@ -0,0 +1,64 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, pkg-config +, qttools +, wrapQtAppsHook +, dtkwidget +, dtkdeclarative +, qt5integration +, qt5platform-plugins +, qtbase +, qtsvg +, udisks2-qt5 +, gio-qt +, freeimage +, ffmpeg +, ffmpegthumbnailer +}: + +stdenv.mkDerivation rec { + pname = "deepin-album"; + version = "6.0.2"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-kRQiH6LvXDpQOgBQiFHM+YQzQFSupOj98aEPbcUumZ8="; + }; + + nativeBuildInputs = [ + cmake + pkg-config + qttools + wrapQtAppsHook + ]; + + buildInputs = [ + dtkwidget + dtkdeclarative + qt5integration + qt5platform-plugins + qtbase + qtsvg + udisks2-qt5 + gio-qt + freeimage + 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..c8915e3f354c --- /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.24"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "sha256-Gv4X1vT3w3kd1FN6BBpUeG2VBz/e+OWLBQyBL7r3BrI="; + }; + + 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..d62e8a6c91f1 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-camera/default.nix @@ -0,0 +1,101 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, pkg-config +, qttools +, wrapQtAppsHook +, dtkwidget +, wayland +, dwayland +, qt5integration +, qt5platform-plugins +, image-editor +, qtbase +, qtmultimedia +, ffmpeg +, ffmpegthumbnailer +, libusb1 +, libpciaccess +, portaudio +, libv4l +, gst_all_1 +, systemd +}: + +stdenv.mkDerivation rec { + pname = "deepin-camera"; + version = "unstable-2023-09-26"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = "8ad3b6ad2a4f5f0b22a216496a0187a69a1e1bcc"; + hash = "sha256-/8ddplHJzeu7lrRzN66KhJGkFou4FcXc+BzYFK5YVeE="; + }; + + # 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 + wayland + dwayland + qt5integration + qt5platform-plugins + image-editor + qtbase + qtmultimedia + ffmpeg + ffmpegthumbnailer + libusb1 + libpciaccess + portaudio + libv4l + ] ++ (with gst_all_1 ; [ + gstreamer + gst-plugins-base + gst-plugins-good + ]); + + 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..f8e005f577a3 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-camera/dont_use_libPath.diff @@ -0,0 +1,24 @@ +diff --git a/src/src/gstvideowriter.cpp b/src/src/gstvideowriter.cpp +index c96c8b0..fcc11da 100644 +--- a/src/src/gstvideowriter.cpp ++++ b/src/src/gstvideowriter.cpp +@@ -282,6 +282,7 @@ void GstVideoWriter::loadAppSrcCaps() + + QString GstVideoWriter::libPath(const QString &strlib) + { ++ return strlib; + QDir dir; + QString path = QLibraryInfo::location(QLibraryInfo::LibrariesPath); + dir.setPath(path); +diff --git a/src/src/mainwindow.cpp b/src/src/mainwindow.cpp +index d3c6c24..6d313a6 100644 +--- a/src/src/mainwindow.cpp ++++ b/src/src/mainwindow.cpp +@@ -784,6 +784,7 @@ void CMainWindow::slotPopupSettingsDialog() + + QString CMainWindow::libPath(const QString &strlib) + { ++ return strlib; + QDir dir; + QString path = QLibraryInfo::location(QLibraryInfo::LibrariesPath); + dir.setPath(path); 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..0f6cc03e48db --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-clone/default.nix @@ -0,0 +1,74 @@ +{ 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.15"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-yxYmRSiw/pjgHftu75S9yx0ZXrWRz0VbU8jPjl4baqQ="; + }; + + postPatch = '' + substituteInPlace app/{deepin-clone-ionice,deepin-clone-pkexec,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; + broken = true; + }; +} + 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..393c51e4ac64 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-compressor/default.nix @@ -0,0 +1,73 @@ +{ stdenv +, lib +, fetchFromGitHub +, dtkwidget +, qt5integration +, qt5platform-plugins +, udisks2-qt5 +, cmake +, qtbase +, qttools +, pkg-config +, kcodecs +, karchive +, wrapQtAppsHook +, minizip +, libzip +, libuuid +, libarchive +}: + +stdenv.mkDerivation rec { + pname = "deepin-compressor"; + version = "5.12.23"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-8qfpNM2rci4subdodxfJZLP3OvAxXl7QRl4MHGr15nA="; + }; + + 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 + libuuid + 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..6c02844c0ad5 --- /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.15"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-17loD7FNy5PwSxIyXk313yiMxO10rOeP94q08tm76gw="; + }; + + 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/default.nix b/nixpkgs/pkgs/desktops/deepin/apps/deepin-image-viewer/default.nix new file mode 100644 index 000000000000..7d7df4494a3a --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-image-viewer/default.nix @@ -0,0 +1,68 @@ +{ stdenv +, lib +, fetchFromGitHub +, fetchpatch +, cmake +, pkg-config +, qttools +, wrapQtAppsHook +, qt5platform-plugins +, qtbase +, dtkwidget +, dtkdeclarative +, deepin-ocr-plugin-manager +, gio-qt +, udisks2-qt5 +, image-editor +, libraw +, libexif +, freeimage +}: + +stdenv.mkDerivation rec { + pname = "deepin-image-viewer"; + version = "6.0.2"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-YT3wK+ELXjgtsXbkiCjQF0zczQi89tF1kyIQtl9/mMA="; + }; + + patches = [ + (fetchpatch { + name = "fix-build-with-libraw-0_21.patch"; + url = "https://raw.githubusercontent.com/archlinux/svntogit-community/2ff11979704dd7156a7e7c3bae9b30f08894063d/trunk/libraw-0.21.patch"; + hash = "sha256-I/w4uiANT8Z8ud/F9WCd3iRHOfplu3fpqnu8ZIs4C+w="; + }) + ]; + + nativeBuildInputs = [ + cmake + pkg-config + qttools + wrapQtAppsHook + ]; + + buildInputs = [ + qt5platform-plugins + dtkwidget + dtkdeclarative + deepin-ocr-plugin-manager + libraw + freeimage + ]; + + 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..7794d5b50d0b --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-movie-reborn/default.nix @@ -0,0 +1,131 @@ +{ stdenv +, lib +, fetchFromGitHub +, fetchpatch +, 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 +, runtimeShell +}: + +stdenv.mkDerivation rec { + pname = "deepin-movie-reborn"; + version = "6.0.5"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-dWN2IVVpwYwzEuLtT3JvhzKiBwaBq4lzmaEhA9S1hjE="; + }; + + patches = [ + ./dont_use_libPath.diff + ]; + + postPatch = '' + # https://github.com/linuxdeepin/deepin-movie-reborn/pull/198 + substituteInPlace src/common/diskcheckthread.cpp \ + --replace "/usr/include/linux/cdrom.h" "linux/cdrom.h" + # https://github.com/linuxdeepin/deepin-movie-reborn/pull/337 + substituteInPlace src/libdmr/playlist_model.cpp \ + --replace "DGuiApplicationHelper" "Dtk::Gui::DGuiApplicationHelper" + ''; + + outputs = [ "out" "dev" ]; + + nativeBuildInputs = [ + cmake + pkg-config + qttools + wrapQtAppsHook + ]; + + buildInputs = [ + dtkwidget + qt5integration + qt5platform-plugins + qtx11extras + qtmultimedia + qtdbusextended + qtmpris + gsettings-qt + elfutils + ffmpeg + ffmpegthumbnailer + xorg.libXtst + xorg.libXdmcp + xorg.xcbproto + pcre.dev + libdvdread + libdvdnav + libunwind + libva + zstd + mpv + gtest + libpulseaudio + ] ++ (with gst_all_1; [ + gstreamer + gst-plugins-base + ]); + + propagatedBuildInputs = [ + qtmultimedia + qtx11extras + ffmpegthumbnailer + ]; + + 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-movie-reborn/dont_use_libPath.diff b/nixpkgs/pkgs/desktops/deepin/apps/deepin-movie-reborn/dont_use_libPath.diff new file mode 100644 index 000000000000..7ea1f0da1b23 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-movie-reborn/dont_use_libPath.diff @@ -0,0 +1,108 @@ +diff --git a/src/backends/mpv/mpv_proxy.h b/src/backends/mpv/mpv_proxy.h +index 1256a06..d76d1c0 100644 +--- a/src/backends/mpv/mpv_proxy.h ++++ b/src/backends/mpv/mpv_proxy.h +@@ -38,6 +38,7 @@ typedef void (*mpv_terminateDestroy)(mpv_handle *ctx); + + static QString libPath(const QString &sLib) + { ++ return sLib; + QDir dir; + QString path = QLibraryInfo::location(QLibraryInfo::LibrariesPath); + dir.setPath(path); +diff --git a/src/common/hwdec_probe.cpp b/src/common/hwdec_probe.cpp +index d70ed0c..ac2516d 100644 +--- a/src/common/hwdec_probe.cpp ++++ b/src/common/hwdec_probe.cpp +@@ -83,6 +83,7 @@ bool HwdecProbe::isFileCanHwdec(const QUrl& url, QList<QString>& hwList) + + static QString libPath(const QString &sLib) + { ++ return sLib; + QDir dir; + QString path = QLibraryInfo::location(QLibraryInfo::LibrariesPath); + dir.setPath(path); +diff --git a/src/common/platform/platform_thumbnail_worker.cpp b/src/common/platform/platform_thumbnail_worker.cpp +index 17b2bdd..82db2b9 100644 +--- a/src/common/platform/platform_thumbnail_worker.cpp ++++ b/src/common/platform/platform_thumbnail_worker.cpp +@@ -88,6 +88,7 @@ Platform_ThumbnailWorker::Platform_ThumbnailWorker() + + QString Platform_ThumbnailWorker::libPath(const QString &strlib) + { ++ return strlib; + QDir dir; + QString lib_path = QLibraryInfo::location(QLibraryInfo::LibrariesPath); + dir.setPath(lib_path); +diff --git a/src/common/thumbnail_worker.cpp b/src/common/thumbnail_worker.cpp +index 2ba2888..c34841e 100644 +--- a/src/common/thumbnail_worker.cpp ++++ b/src/common/thumbnail_worker.cpp +@@ -88,6 +88,7 @@ ThumbnailWorker::ThumbnailWorker() + + QString ThumbnailWorker::libPath(const QString &strlib) + { ++ return strlib; + QDir dir; + QString lib_path = QLibraryInfo::location(QLibraryInfo::LibrariesPath); + dir.setPath(lib_path); +diff --git a/src/libdmr/compositing_manager.cpp b/src/libdmr/compositing_manager.cpp +index 9b117fc..28a11ec 100644 +--- a/src/libdmr/compositing_manager.cpp ++++ b/src/libdmr/compositing_manager.cpp +@@ -237,6 +237,7 @@ bool CompositingManager::isCanHwdec() + + QString CompositingManager::libPath(const QString &sLib) + { ++ return sLib; + QDir dir; + QString path = QLibraryInfo::location(QLibraryInfo::LibrariesPath); + dir.setPath(path); +diff --git a/src/libdmr/filefilter.cpp b/src/libdmr/filefilter.cpp +index 6691df0..b620a62 100644 +--- a/src/libdmr/filefilter.cpp ++++ b/src/libdmr/filefilter.cpp +@@ -72,6 +72,7 @@ FileFilter::FileFilter() + + QString FileFilter::libPath(const QString &strlib) + { ++ return strlib; + QDir dir; + QString path = QLibraryInfo::location(QLibraryInfo::LibrariesPath); + dir.setPath(path); +diff --git a/src/libdmr/playlist_model.cpp b/src/libdmr/playlist_model.cpp +index 18a8095..9ea4abf 100644 +--- a/src/libdmr/playlist_model.cpp ++++ b/src/libdmr/playlist_model.cpp +@@ -449,6 +449,7 @@ PlaylistModel::PlaylistModel(PlayerEngine *e) + + QString PlaylistModel::libPath(const QString &strlib) + { ++ return strlib; + QDir dir; + QString path = QLibraryInfo::location(QLibraryInfo::LibrariesPath); + dir.setPath(path); +diff --git a/src/widgets/platform/platform_toolbox_proxy.cpp b/src/widgets/platform/platform_toolbox_proxy.cpp +index 570acac..9da0f97 100644 +--- a/src/widgets/platform/platform_toolbox_proxy.cpp ++++ b/src/widgets/platform/platform_toolbox_proxy.cpp +@@ -709,6 +709,7 @@ private: + + static QString libPath(const QString &strlib) + { ++ return strlib; + QDir dir; + QString path = QLibraryInfo::location(QLibraryInfo::LibrariesPath); + dir.setPath(path); +diff --git a/src/widgets/toolbox_proxy.cpp b/src/widgets/toolbox_proxy.cpp +index 05cbc2c..54731bf 100644 +--- a/src/widgets/toolbox_proxy.cpp ++++ b/src/widgets/toolbox_proxy.cpp +@@ -760,6 +760,7 @@ private: + + static QString libPath(const QString &strlib) + { ++ return strlib; + QDir dir; + QString path = QLibraryInfo::location(QLibraryInfo::LibrariesPath); + dir.setPath(path); 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..64e5ee857745 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-music/default.nix @@ -0,0 +1,87 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, pkg-config +, qttools +, wrapQtAppsHook +, dtkwidget +, dtkdeclarative +, qt5integration +, qt5platform-plugins +, udisks2-qt5 +, qtmpris +, qtmultimedia +, kcodecs +, ffmpeg +, libvlc +, taglib +, SDL2 +, qtbase +, gst_all_1 +}: + +stdenv.mkDerivation rec { + pname = "deepin-music"; + version = "7.0.3"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-MLfkSO8ru8MKiwgiQ0mPO3zGlnIeSHPc0Op5jjzJ6PE="; + }; + + patches = [ + "${src}/patches/fix-library-path.patch" + ]; + + nativeBuildInputs = [ + cmake + pkg-config + qttools + wrapQtAppsHook + ]; + + buildInputs = [ + dtkwidget + dtkdeclarative + qt5integration + qt5platform-plugins + udisks2-qt5 + qtmpris + qtmultimedia + kcodecs + ffmpeg + libvlc + taglib + SDL2 + ] ++ (with gst_all_1; [ + gstreamer + gst-plugins-base + gst-plugins-good + ]); + + cmakeFlags = [ + "-DVERSION=${version}" + ]; + + env.NIX_CFLAGS_COMPILE = toString [ + "-I${libvlc}/include/vlc/plugins" + "-I${libvlc}/include/vlc" + ]; + + 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..cafd235fc9f4 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-picker/default.nix @@ -0,0 +1,59 @@ +{ stdenv +, lib +, fetchFromGitHub +, qmake +, qttools +, pkg-config +, wrapQtAppsHook +, dtkwidget +, qtbase +, qtsvg +, xorg +}: + +stdenv.mkDerivation rec { + pname = "deepin-picker"; + version = "6.0.0"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-DkSgeMALhwGeU5sDHuerpPpiN3/3m19jmwtwOjZvOVo="; + }; + + nativeBuildInputs = [ + qmake + qttools + pkg-config + wrapQtAppsHook + ]; + + buildInputs = [ + qtbase + 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/0001-build-tests-with-cpp-14.patch b/nixpkgs/pkgs/desktops/deepin/apps/deepin-reader/0001-build-tests-with-cpp-14.patch new file mode 100644 index 000000000000..cf88eb6db074 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-reader/0001-build-tests-with-cpp-14.patch @@ -0,0 +1,13 @@ +diff --git a/tests/tests.pro b/tests/tests2.pro +index 314cad227646..48f1c66ee3f7 100644 +--- a/tests/tests.pro ++++ b/tests/tests.pro +@@ -6,7 +6,7 @@ QT += core gui sql printsupport dbus testlib widgets + #QMAKE_CXXFLAGS += -g -fsanitize=undefined,address -O2 + #QMAKE_LFLAGS += -g -fsanitize=undefined,address -O2 + +-CONFIG += c++11 link_pkgconfig resources_big testcase no_testcase_installs ++CONFIG += c++14 link_pkgconfig resources_big testcase no_testcase_installs + + #访问私有方法 -fno-access-control + QMAKE_CXXFLAGS += -g -Wall -fprofile-arcs -ftest-coverage -fno-access-control -O0 -fno-inline 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..0d95349bf56e --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-reader/default.nix @@ -0,0 +1,77 @@ +{ stdenv +, lib +, fetchFromGitHub +, qmake +, pkg-config +, qttools +, wrapQtAppsHook +, dtkwidget +, qt5integration +, qt5platform-plugins +, dde-qt-dbus-factory +, qtwebengine +, karchive +, poppler +, libchardet +, libspectre +, openjpeg +, djvulibre +, qtbase +, gtest +}: + +stdenv.mkDerivation rec { + pname = "deepin-reader"; + version = "6.0.5"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-G5UZ8lBrUo5G3jMae70p/zi9kOVqHWMNCedOy45L1PA="; + }; + + patches = [ ./0001-build-tests-with-cpp-14.patch ]; + + # don't use vendored htmltopdf + postPatch = '' + substituteInPlace deepin_reader.pro \ + --replace "SUBDIRS += htmltopdf" " " + substituteInPlace reader/document/Model.cpp \ + --replace "/usr/lib/deepin-reader/htmltopdf" "htmltopdf" + ''; + + nativeBuildInputs = [ + qmake + pkg-config + qttools + wrapQtAppsHook + ]; + + buildInputs = [ + dtkwidget + qt5integration + qt5platform-plugins + dde-qt-dbus-factory + qtwebengine + karchive + poppler + libchardet + libspectre + djvulibre + openjpeg + gtest + ]; + + 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..a0f83e7eb438 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-screen-recorder/default.nix @@ -0,0 +1,98 @@ +{ 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 = "unstable-2023-07-10"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = "e8ee1e8330e2f3923e22acc952a0bd01bee94ad1"; + hash = "sha256-QHV3hSALXI4e31YBDXRSRgT8b/J8gwm024bzlPWu2FA="; + }; + + patches = [ ./dont_use_libPath.diff ]; + + postPatch = '' + ( + shopt -s globstar + substituteInPlace **/*.pro **/*.service **/*.desktop \ + --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 ffmpeg ffmpegthumbnailer ]}" + ]; + + 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..be3ba3267cbf --- /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 165a7ce..e1574a5 100644 +--- a/src/gstrecord/gstinterface.cpp ++++ b/src/gstrecord/gstinterface.cpp +@@ -49,6 +49,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 e0f6bc5..757abad 100755 +--- a/src/main_window.cpp ++++ b/src/main_window.cpp +@@ -559,6 +559,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 b4145fa..97a3f5c 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; + QDir dir; + QString path = QLibraryInfo::location(QLibraryInfo::LibrariesPath); + dir.setPath(path); 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..544e8e32b249 --- /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.18"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-7lyHPE/x7rmwh7FtCPkuA8JgYpy90jRXhUWoaeZpVag="; + }; + + 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=true" + ]; + + 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..581eb1fa3580 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-system-monitor/default.nix @@ -0,0 +1,96 @@ +{ 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 +, wayland +, dwayland +}: + +stdenv.mkDerivation rec { + pname = "deepin-system-monitor"; + version = "6.0.9"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-ompsCTPmmF7S0UHNNU0YDQiTdvcFglpEoS4o+XMZ7jg="; + }; + + 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" "${lib.getBin util-linux}/bin/kill" \ + --replace "/usr/bin/renice" "${lib.getBin 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 + wayland + dwayland + ]; + + cmakeFlags = [ + "-DVERSION=${version}" + ]; + + 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..7356d6342c4d --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-terminal/default.nix @@ -0,0 +1,63 @@ +{ stdenv +, lib +, fetchFromGitHub +, nixosTests +, dtkwidget +, qt5integration +, qt5platform-plugins +, cmake +, qtbase +, qtsvg +, qttools +, qtx11extras +, pkg-config +, wrapQtAppsHook +, libsecret +, chrpath +, lxqt +}: + +stdenv.mkDerivation rec { + pname = "deepin-terminal"; + version = "6.0.9"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-QdODR4zmbMuzSVy6eJhwJHNPXkAn6oCLHq+YZEOmtIU="; + }; + + cmakeFlags = [ "-DVERSION=${version}" ]; + + nativeBuildInputs = [ + cmake + qttools + pkg-config + wrapQtAppsHook + lxqt.lxqt-build-tools + ]; + + buildInputs = [ + qt5integration + qt5platform-plugins + qtbase + qtsvg + dtkwidget + qtx11extras + libsecret + chrpath + ]; + + strictDeps = true; + + passthru.tests.test = nixosTests.terminal-emulators.deepin-terminal; + + 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..13124f82b7aa --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-voice-note/default.nix @@ -0,0 +1,86 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, pkg-config +, qttools +, wrapQtAppsHook +, qtbase +, dtkwidget +, qt5integration +, qt5platform-plugins +, qtsvg +, dde-qt-dbus-factory +, qtmultimedia +, qtwebengine +, libvlc +, gst_all_1 +, gtest +}: + +stdenv.mkDerivation rec { + pname = "deepin-voice-note"; + version = "6.0.15"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-k6LFMs2/OQQyeGI5WXBGWkAAY4GeP8LaA8hTXFwbaCM="; + }; + + patches = [ + ./use_v23_dbus_interface.diff + ]; + + postPatch = '' + substituteInPlace CMakeLists.txt \ + --replace "/usr" "$out" + substituteInPlace src/common/audiowatcher.cpp \ + --replace "/usr/share" "$out/share" + ''; + + nativeBuildInputs = [ + cmake + pkg-config + qttools + wrapQtAppsHook + ]; + + buildInputs = [ + qtbase + qtsvg + dtkwidget + 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}" ]; + + # qt5integration must be placed before qtsvg in QT_PLUGIN_PATH + qtWrapperArgs = [ + "--prefix QT_PLUGIN_PATH : ${qt5integration}/${qtbase.qtPluginPrefix}" + ]; + + 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/apps/deepin-voice-note/use_v23_dbus_interface.diff b/nixpkgs/pkgs/desktops/deepin/apps/deepin-voice-note/use_v23_dbus_interface.diff new file mode 100644 index 000000000000..213b73e36b41 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-voice-note/use_v23_dbus_interface.diff @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index e7bfb81..f56f11a 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -103,7 +103,7 @@ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fstack-protector-all") + execute_process(COMMAND cat /etc/os-version OUTPUT_VARIABLE OS_INFO_STR) + string(REGEX MATCHALL "MajorVersion=[0-9]+" MAJOR_STR "${OS_INFO_STR}") + string(REGEX MATCH "[0-9]+" MAJOR_VERSION "${MAJOR_STR}") +-if (MAJOR_VERSION MATCHES "23") ++if (TRUE) + message("--------------------- OS_BUILD_V23 on") + add_definitions(-DOS_BUILD_V23) + endif() 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..63db25d8dbc8 --- /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.15"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-/eTGy+9fcYmGrh09RdCIZ2Cn12gTaGtg4Tluv25n5r0="; + }; + + 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-desktop-theme/default.nix b/nixpkgs/pkgs/desktops/deepin/artwork/deepin-desktop-theme/default.nix new file mode 100644 index 000000000000..a8c94910ccfc --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/artwork/deepin-desktop-theme/default.nix @@ -0,0 +1,54 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, gtk3 +, xcursorgen +, papirus-icon-theme +, breeze-icons +, hicolor-icon-theme +, deepin-icon-theme +}: + +stdenv.mkDerivation rec { + pname = "deepin-desktop-theme"; + version = "1.0.9"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-rhbxqKT9yrtW4JJ8jCUSpsIh0JeEIttkS414vBhD9vs="; + }; + + makeFlags = [ "PREFIX=${placeholder "out"}" ]; + + nativeBuildInputs = [ + cmake + gtk3 + xcursorgen + ]; + + propagatedBuildInputs = [ + breeze-icons + papirus-icon-theme + hicolor-icon-theme + deepin-icon-theme + ]; + + dontDropIconThemeCache = true; + + preFixup = '' + for theme in $out/share/icons/*; do + gtk-update-icon-cache $theme + done + ''; + + meta = with lib; { + description = "Provides a variety of well-designed theme resources"; + homepage = "https://github.com/linuxdeepin/deepin-desktop-theme"; + license = with licenses; [ gpl3Plus cc-by-sa-40 ]; + 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..80ec8c50449d --- /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 = "23.11.23"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = "deepin-gtk-theme"; + rev = version; + hash = "sha256-2B2BtbPeg3cEbnEIgdGFzy8MjCMWlbP/Sq4jzG5cjmc="; + }; + + 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..95e715e4d375 --- /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 = "2023.11.28"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-kCWJAmJa0VmhnuegE+acj82Ojl4Z5D8g7/q2PzppJwg="; + }; + + makeFlags = [ "PREFIX=${placeholder "out"}" ]; + + nativeBuildInputs = [ + gtk3 + xcursorgen + ]; + + propagatedBuildInputs = [ + papirus-icon-theme + ]; + + dontDropIconThemeCache = true; + + preFixup = '' + for theme in $out/share/icons/*; do + gtk-update-icon-cache $theme + done + ''; + + meta = with lib; { + description = "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..c0aa13f16a6d --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/artwork/deepin-wallpapers/default.nix @@ -0,0 +1,43 @@ +{ stdenv +, lib +, fetchFromGitHub +, dde-api +}: + +stdenv.mkDerivation rec { + pname = "deepin-wallpapers"; + version = "1.7.16"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-o5rg1l8N6Ch+BdBLp+HMbVBBvrTdRtn8NSgH/9AnB2Q="; + }; + + nativeBuildInputs = [ dde-api ]; + + postPatch = '' + substituteInPlace Makefile \ + --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..4c27ced09d56 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/core/dde-app-services/default.nix @@ -0,0 +1,71 @@ +{ stdenv +, lib +, fetchFromGitHub +, dtkwidget +, qt5integration +, qt5platform-plugins +, cmake +, wrapQtAppsHook +, qtbase +, qttools +, doxygen +}: + +stdenv.mkDerivation rec { + pname = "dde-app-services"; + version = "1.0.23"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-INxbRDpG3MqPW6IMTqEagDCGo7vwxkR6D1+lcWdjO3w="; + }; + + 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")' " " + + substituteInPlace dconfig-center/dde-dconfig-daemon/services/dde-dconfig-daemon.service \ + --replace "/usr/bin" "$out/bin" \ + --replace "/usr/share" "/run/current-system/sw/share" + ''; + + nativeBuildInputs = [ + cmake + qttools + doxygen + wrapQtAppsHook + ]; + + buildInputs = [ + dtkwidget + qt5integration + qt5platform-plugins + ]; + + cmakeFlags = [ + "-DDVERSION=${version}" + "-DDSG_DATA_DIR=/run/current-system/sw/share/dsg" + "-DQCH_INSTALL_DESTINATION=${placeholder "out"}/${qtbase.qtDocPrefix}" + ]; + + 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 = "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-appearance/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-appearance/default.nix new file mode 100644 index 000000000000..fef56b3978f7 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/core/dde-appearance/default.nix @@ -0,0 +1,82 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, pkg-config +, wrapQtAppsHook +, qtbase +, dtkgui +, gsettings-qt +, gtk3 +, kconfig +, kwindowsystem +, kglobalaccel +, xorg +, iconv +}: + +stdenv.mkDerivation rec { + pname = "dde-appearance"; + version = "1.1.6"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-7oRbydLXw8yRzi9L1GH/q0cjMY/DLyWbj4RUSyNpVNM="; + }; + + patches = [ + ./fix-custom-wallpapers-path.diff + ]; + + postPatch = '' + substituteInPlace src/service/impl/appearancemanager.cpp \ + src/service/modules/api/compatibleengine.cpp \ + src/service/modules/subthemes/customtheme.cpp \ + --replace "/usr/share" "/run/current-system/sw/share" + + for file in $(grep -rl "/usr/bin/dde-appearance"); do + substituteInPlace $file --replace "/usr/bin/dde-appearance" "$out/bin/dde-appearance" + done + + substituteInPlace src/service/modules/api/themethumb.cpp \ + --replace "/usr/lib/deepin-api" "/run/current-system/sw/lib/deepin-api" + + substituteInPlace src/service/dbus/deepinwmfaker.cpp \ + --replace "/usr/lib/deepin-daemon" "/run/current-system/sw/lib/deepin-daemon" + + substituteInPlace src/service/modules/api/locale.cpp \ + --replace "/usr/share/locale/locale.alias" "${iconv}/share/locale/locale.alias" + ''; + + nativeBuildInputs = [ + cmake + pkg-config + wrapQtAppsHook + ]; + + buildInputs = [ + dtkgui + gsettings-qt + gtk3 + kconfig + kwindowsystem + kglobalaccel + xorg.libXcursor + xorg.xcbutilcursor + ]; + + cmakeFlags = [ + "-DDSG_DATA_DIR=/run/current-system/sw/share/dsg" + "-DSYSTEMD_USER_UNIT_DIR=${placeholder "out"}/lib/systemd/user" + ]; + + meta = with lib; { + description = "A program used to set the theme and appearance of deepin desktop"; + homepage = "https://github.com/linuxdeepin/dde-appearance"; + license = licenses.lgpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-appearance/fix-custom-wallpapers-path.diff b/nixpkgs/pkgs/desktops/deepin/core/dde-appearance/fix-custom-wallpapers-path.diff new file mode 100644 index 000000000000..14fb527c7ef4 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/core/dde-appearance/fix-custom-wallpapers-path.diff @@ -0,0 +1,68 @@ +diff --git a/misc/dconfig/org.deepin.dde.appearance.json b/misc/dconfig/org.deepin.dde.appearance.json +index b612e6e..371f966 100644 +--- a/misc/dconfig/org.deepin.dde.appearance.json ++++ b/misc/dconfig/org.deepin.dde.appearance.json +@@ -143,7 +143,7 @@ + "visibility": "private" + }, + "Background_Uris": { +- "value": ["file:///usr/share/backgrounds/default_background.jpg"], ++ "value": ["file:///run/current-system/sw/share/backgrounds/default_background.jpg"], + "serial": 0, + "flags": [], + "name": "Background_Uris", +diff --git a/src/service/dbus/deepinwmfaker.cpp b/src/service/dbus/deepinwmfaker.cpp +index 5d455fa..40ec608 100644 +--- a/src/service/dbus/deepinwmfaker.cpp ++++ b/src/service/dbus/deepinwmfaker.cpp +@@ -54,13 +54,13 @@ Q_GLOBAL_STATIC_WITH_ARGS(QGSettings, _gsettings_dde_zone, ("com.deepin.dde.zone + + #define KWinDBusCompositorInterface "org.kde.kwin.Compositing" + #define KWinDBusCompositorPath "/Compositor" +-const char defaultFirstBackgroundUri[] = "file:///usr/share/wallpapers/deepin/desktop.jpg"; ++const char defaultFirstBackgroundUri[] = "file:///run/current-system/sw/share/wallpapers/deepin/desktop.jpg"; + const char defaultSecondBackgroundUri[] = "francesco-ungaro-1fzbUyzsHV8-unsplash"; + + //default cursor size :24 + #define DEFAULTCURSORSIZE 24 + +-const char fallback_background_name[] = "file:///usr/share/backgrounds/default_background.jpg"; ++const char fallback_background_name[] = "file:///run/current-system/sw/share/backgrounds/default_background.jpg"; + + //using org::kde::KWin; + +diff --git a/src/service/impl/appearancemanager.cpp b/src/service/impl/appearancemanager.cpp +index 360ca6f..6db93ab 100644 +--- a/src/service/impl/appearancemanager.cpp ++++ b/src/service/impl/appearancemanager.cpp +@@ -821,7 +821,7 @@ void AppearanceManager::doUpdateWallpaperURIs() + } + + // 如果是用户自己设置的桌面壁纸, 需要将主题更新为自定义 +- if (!monitorWallpaperUris.first().startsWith("/usr/share/wallpapers/deepin")) { ++ if (!monitorWallpaperUris.first().startsWith("/run/current-system/sw/share/wallpapers/deepin")) { + updateCustomTheme(TYPEWALLPAPER, monitorWallpaperUris.first()); + } + } +@@ -1689,7 +1689,7 @@ QString AppearanceManager::getWallpaperUri(const QString &index, const QString & + const Background &bg = backgroudlist.at(QRandomGenerator::global()->generate() % backgroudlist.size()); + wallpaper = bg.getId(); + } else { +- wallpaper = "file:///usr/share/wallpapers/deepin/desktop.jpg"; ++ wallpaper = "file:///run/current-system/sw/share/wallpapers/deepin/desktop.jpg"; + } + + PhaseWallPaper::setWallpaperUri(index, monitorName, wallpaper); +diff --git a/src/service/modules/background/backgrounds.cpp b/src/service/modules/background/backgrounds.cpp +index bf739a5..1076d59 100644 +--- a/src/service/modules/background/backgrounds.cpp ++++ b/src/service/modules/background/backgrounds.cpp +@@ -11,7 +11,7 @@ + #include <pwd.h> + #include <QDBusReply> + +-QStringList Backgrounds::systemWallpapersDir = { "/usr/share/wallpapers/deepin" }; ++QStringList Backgrounds::systemWallpapersDir = { "/run/current-system/sw/share/wallpapers/deepin" }; + QStringList Backgrounds::uiSupportedFormats = { "jpeg", "png", "bmp", "tiff", "gif" }; + + Backgrounds::Backgrounds(QObject *parent) diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-application-manager/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-application-manager/default.nix new file mode 100644 index 000000000000..0949bc6e4993 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/core/dde-application-manager/default.nix @@ -0,0 +1,64 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, pkg-config +, wrapQtAppsHook +, qtbase +, dtkwidget +, dde-polkit-agent +, gsettings-qt +, libcap +, jemalloc +, xorg +, iconv +}: + +stdenv.mkDerivation rec { + pname = "dde-application-manager"; + version = "1.0.19"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-1P265xqlL/wML66nKdfTgkRx6MCpLwrt5rXu+CyeShU="; + }; + + # remove this patch after next release + postPatch = '' + substituteInPlace src/modules/mimeapp/mime_app.cpp src/modules/launcher/common.h src/service/main.cpp \ + misc/dconf/com.deepin.dde.appearance.json \ + --replace "/usr/share" "/run/current-system/sw/share" + + substituteInPlace src/lib/dlocale.cpp --replace "/usr/share/locale/locale.alias" "${iconv}/share/locale/locale.alias" + + for file in $(grep -rl "/usr/bin"); do + substituteInPlace $file --replace "/usr/bin/" "/run/current-system/sw/bin/" + done + ''; + + nativeBuildInputs = [ + cmake + pkg-config + wrapQtAppsHook + ]; + + buildInputs = [ + qtbase + dtkwidget + gsettings-qt + libcap + jemalloc + xorg.libXdmcp + xorg.libXres + ]; + + meta = with lib; { + description = "Application manager for DDE"; + homepage = "https://github.com/linuxdeepin/dde-application-manager"; + license = licenses.gpl3Plus; + 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..a9a3af0adee1 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/core/dde-calendar/default.nix @@ -0,0 +1,70 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, qttools +, pkg-config +, wrapQtAppsHook +, dtkwidget +, qt5integration +, qt5platform-plugins +, dde-qt-dbus-factory +, qtbase +, qtsvg +, libical +, sqlite +, runtimeShell +}: + +stdenv.mkDerivation rec { + pname = "dde-calendar"; + version = "5.11.1"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-EQcB+a0dK2c6NdvGFbyp65a8nN2PmOpZLWx61UDOTJg="; + }; + + patches = [ + ./fix-wrapped-name-not-in-whitelist.diff + ]; + + postPatch = '' + for file in $(grep -rl "/bin/bash"); do + substituteInPlace $file --replace "/bin/bash" "${runtimeShell}" + done + ''; + + nativeBuildInputs = [ + cmake + qttools + pkg-config + wrapQtAppsHook + ]; + + buildInputs = [ + qt5integration + qt5platform-plugins + dtkwidget + qtbase + qtsvg + dde-qt-dbus-factory + libical + sqlite + ]; + + cmakeFlags = [ "-DVERSION=${version}" ]; + + strictDeps = true; + + 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-calendar/fix-wrapped-name-not-in-whitelist.diff b/nixpkgs/pkgs/desktops/deepin/core/dde-calendar/fix-wrapped-name-not-in-whitelist.diff new file mode 100644 index 000000000000..a139c4690a89 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/core/dde-calendar/fix-wrapped-name-not-in-whitelist.diff @@ -0,0 +1,13 @@ +diff --git a/calendar-service/src/dbusservice/dservicebase.cpp b/calendar-service/src/dbusservice/dservicebase.cpp +index ac182881..93a9c2d8 100644 +--- a/calendar-service/src/dbusservice/dservicebase.cpp ++++ b/calendar-service/src/dbusservice/dservicebase.cpp +@@ -52,6 +52,8 @@ bool DServiceBase::clientWhite(const int index) + return true; + } + } ++ if (getClientName().contains("dde-calendar")) ++ return true; + return false; + #else + Q_UNUSED(index) 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..78f2fd0da6a2 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/core/dde-clipboard/default.nix @@ -0,0 +1,58 @@ +{ stdenv +, lib +, fetchFromGitHub +, dtkwidget +, gio-qt +, cmake +, extra-cmake-modules +, qttools +, wayland +, kwayland +, dwayland +, pkg-config +, wrapQtAppsHook +, glibmm +, gtest +}: + +stdenv.mkDerivation rec { + pname = "dde-clipboard"; + version = "6.0.7"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-6CbCor0vgVMsMt8KY2uWrNqOsBEIaz7s2nViiHz+m1g="; + }; + + nativeBuildInputs = [ + cmake + extra-cmake-modules + pkg-config + qttools + wrapQtAppsHook + ]; + + buildInputs = [ + dtkwidget + gio-qt + wayland + kwayland + dwayland + glibmm + gtest + ]; + + cmakeFlags = [ + "-DSYSTEMD_USER_UNIT_DIR=${placeholder "out"}/lib/systemd/user" + ]; + + 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..f397e9ca2837 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/core/dde-control-center/default.nix @@ -0,0 +1,97 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, pkg-config +, qttools +, doxygen +, wrapQtAppsHook +, wrapGAppsHook +, dtkwidget +, qt5integration +, qt5platform-plugins +, deepin-pw-check +, qtbase +, qtx11extras +, qtmultimedia +, polkit-qt +, libxcrypt +, librsvg +, runtimeShell +, dbus +}: + +stdenv.mkDerivation rec { + pname = "dde-control-center"; + version = "6.0.28"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-kgQ4ySiYtaklOqER56QtKD9lk1CnRSEAU4QPHycl9eI="; + }; + + postPatch = '' + substituteInPlace src/plugin-accounts/operation/accountsworker.cpp \ + --replace "/bin/bash" "${runtimeShell}" + ''; + + nativeBuildInputs = [ + cmake + pkg-config + qttools + doxygen + wrapQtAppsHook + wrapGAppsHook + ]; + dontWrapGApps = true; + + buildInputs = [ + dtkwidget + qt5platform-plugins + deepin-pw-check + qtbase + qtx11extras + qtmultimedia + polkit-qt + libxcrypt + librsvg + ]; + + cmakeFlags = [ + "-DCVERSION=${version}" + "-DDISABLE_AUTHENTICATION=YES" + "-DDISABLE_UPDATE=YES" + "-DDISABLE_LANGUAGE=YES" + "-DBUILD_DOCS=OFF" + "-DMODULE_READ_DIR=/run/current-system/sw/lib/dde-control-center/modules" + "-DLOCALSTATE_READ_DIR=/var" + ]; + + 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} + ''; + + # 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 = '' + qtWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; + + outputs = [ "out" "dev" ]; + + 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-dock/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-dock/default.nix new file mode 100644 index 000000000000..5ea7da4ed201 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/core/dde-dock/default.nix @@ -0,0 +1,89 @@ +{ stdenv +, lib +, fetchpatch +, fetchFromGitHub +, cmake +, extra-cmake-modules +, qttools +, pkg-config +, wrapQtAppsHook +, wrapGAppsHook +, qtbase +, dtkwidget +, qt5integration +, qt5platform-plugins +, dwayland +, qtx11extras +, gsettings-qt +, libdbusmenu +, xorg +}: + +stdenv.mkDerivation rec { + pname = "dde-dock"; + version = "6.0.22"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-fhc2faiPH35ZKw6SCoGTz+6mgxabNpCFQeY2p68Ba5w="; + }; + + postPatch = '' + substituteInPlace plugins/pluginmanager/pluginmanager.cpp frame/controller/quicksettingcontroller.cpp \ + --replace "/usr/lib/dde-dock" "/run/current-system/sw/lib/dde-dock" + + substituteInPlace configs/com.deepin.dde.dock.json frame/util/common.h \ + --replace "/usr" "/run/current-system/sw" + + for file in $(grep -rl "/usr/lib/deepin-daemon"); do + substituteInPlace $file --replace "/usr/lib/deepin-daemon" "/run/current-system/sw/lib/deepin-daemon" + done + ''; + + nativeBuildInputs = [ + cmake + extra-cmake-modules + qttools + pkg-config + wrapQtAppsHook + wrapGAppsHook + ]; + dontWrapGApps = true; + + buildInputs = [ + qtbase + dtkwidget + qt5platform-plugins + dwayland + qtx11extras + gsettings-qt + libdbusmenu + xorg.libXcursor + xorg.libXtst + xorg.libXdmcp + xorg.libXres + ]; + + 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..a197980c8d74 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/core/dde-file-manager/default.nix @@ -0,0 +1,156 @@ +{ stdenv +, lib +, fetchFromGitHub +, fetchpatch +, 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 +, gsettings-qt +}: + +stdenv.mkDerivation rec { + pname = "dde-file-manager"; + version = "6.0.31"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-mc2HcoLrwMXKU8w34KUEh62ZfEIfbJLVzz4JGnUE5EM="; + }; + + nativeBuildInputs = [ + cmake + qttools + pkg-config + wrapQtAppsHook + wrapGAppsHook + ]; + dontWrapGApps = true; + + patches = [ + ./use_v23_dbus_interface.diff + + (fetchpatch { + name = "use-pkgconfig-to-check-mount.patch"; + url = "https://github.com/linuxdeepin/dde-file-manager/commit/b6c210057d991591df45b80607a614e7a57a9dc0.patch"; + hash = "sha256-k0ZYlOVN3hHs1qvvRaJ3i6okOhDE+DoUKGs9AhSFBGU="; + }) + ]; + + 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 + gsettings-qt + ]; + + cmakeFlags = [ + "-DVERSION=${version}" + ]; + + 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-file-manager/use_v23_dbus_interface.diff b/nixpkgs/pkgs/desktops/deepin/core/dde-file-manager/use_v23_dbus_interface.diff new file mode 100644 index 000000000000..5a42ecd4a1f5 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/core/dde-file-manager/use_v23_dbus_interface.diff @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index e93d3ad..94e3eca 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -30,7 +30,7 @@ if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + endif() + + #Indentify the version +-if (${DEEPIN_OS_VERSION} MATCHES "23") ++if (TRUE) + add_definitions(-DCOMPILE_ON_V23) + set(COMPLIE_ON_V23 TRUE) + message("COMPILE ON v23") 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..c1a26e100a29 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/core/dde-gsettings-schemas/default.nix @@ -0,0 +1,50 @@ +{ lib +, stdenv +, runCommand +, glib +, gtk3 +, dde-dock +, startdde +, dde-session-shell +, dde-file-manager +, deepin-desktop-schemas +, deepin-movie-reborn +, deepin-system-monitor +, gsettings-desktop-schemas +, extraGSettingsOverrides ? "" +, extraGSettingsOverridePackages ? [ ] +}: + +let + gsettingsOverridePackages = [ + dde-dock + startdde + dde-session-shell + dde-file-manager + deepin-desktop-schemas + deepin-movie-reborn + deepin-system-monitor + gsettings-desktop-schemas # dde-appearance need org.gnome.desktop.background + ] ++ extraGSettingsOverridePackages; + +in +with lib; + +# TODO: Having https://github.com/NixOS/nixpkgs/issues/54150 would supersede this +runCommand "nixos-gsettings-desktop-schemas" { preferLocalBuild = true; } +'' + data_dir="$out/share/gsettings-schemas/nixos-gsettings-overrides" + schema_dir="$data_dir/glib-2.0/schemas" + + mkdir -p $schema_dir + + ${concatMapStringsSep "\n" (pkg: "cp -rf \"${glib.getSchemaPath pkg}\"/*.xml \"$schema_dir\"") gsettingsOverridePackages} + + chmod -R a+w "$data_dir" + + 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-launchpad/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-launchpad/default.nix new file mode 100644 index 000000000000..a6104d61c922 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/core/dde-launchpad/default.nix @@ -0,0 +1,58 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, qttools +, pkg-config +, wrapQtAppsHook +, dtkwidget +, dtkdeclarative +, qtbase +, appstream-qt +, kitemmodels +, qt5integration +}: + +stdenv.mkDerivation rec { + pname = "dde-launchpad"; + version = "0.3.0"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-8m0DjQYih3hB/n2VHuJgUYBe8tpGwBU0NdkLxr1OsFc="; + }; + + nativeBuildInputs = [ + cmake + qttools + pkg-config + wrapQtAppsHook + ]; + + buildInputs = [ + dtkwidget + dtkdeclarative + qtbase + appstream-qt + kitemmodels + ]; + + cmakeFlags = [ + "-DSYSTEMD_USER_UNIT_DIR=${placeholder "out"}/lib/systemd/user" + ]; + + # qt5integration must be placed before qtsvg in QT_PLUGIN_PATH + qtWrapperArgs = [ + "--prefix QT_PLUGIN_PATH : ${qt5integration}/${qtbase.qtPluginPrefix}" + ]; + + meta = with lib; { + description = "The 'launcher' or 'start menu' component for DDE"; + homepage = "https://github.com/linuxdeepin/dde-launchpad"; + 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..24d46698765e --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/core/dde-network-core/default.nix @@ -0,0 +1,62 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, qttools +, pkg-config +, wrapQtAppsHook +, qtbase +, qtsvg +, dtkwidget +, dde-dock +, dde-control-center +, dde-session-shell +, networkmanager-qt +, glib +, gtest +}: + +stdenv.mkDerivation rec { + pname = "dde-network-core"; + version = "2.0.15"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-AMuWEz3Eyw0tG0srLWpqS7MO7Z4ZzIay4z59cZQZU0o="; + }; + + nativeBuildInputs = [ + cmake + qttools + pkg-config + wrapQtAppsHook + ]; + + buildInputs = [ + qtbase + qtsvg + dtkwidget + dde-dock + dde-control-center + dde-session-shell + networkmanager-qt + glib + gtest + ]; + + cmakeFlags = [ + "-DVERSION=${version}" + ]; + + strictDeps = true; + + 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..f3f93be7f30e --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/core/dde-polkit-agent/default.nix @@ -0,0 +1,57 @@ +{ 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 = "6.0.5"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-NSMwNL4ttCaqo0h0sF11bOJ20FhOB+SG27K4k8F4O/o="; + }; + + 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..48479c6893ea --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/core/dde-session-shell/default.nix @@ -0,0 +1,111 @@ +{ stdenv +, lib +, fetchFromGitHub +, linkFarm +, cmake +, pkg-config +, qttools +, wrapQtAppsHook +, wrapGAppsHook +, qtbase +, dtkwidget +, qt5integration +, qt5platform-plugins +, deepin-pw-check +, gsettings-qt +, lightdm_qt +, qtx11extras +, linux-pam +, xorg +, gtest +, xkeyboard_config +, dbus +, dde-session-shell +}: + +stdenv.mkDerivation rec { + pname = "dde-session-shell"; + version = "6.0.10"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-h4X3RZe7+CxVeFmk/7+7K4d/2D1+jhECKQaxl4TsuvM="; + }; + + postPatch = '' + 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/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/{org.deepin.dde.ShutdownFront1.service,org.deepin.dde.LockFront1.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 = [ + qtbase + dtkwidget + qt5platform-plugins + deepin-pw-check + gsettings-qt + lightdm_qt + qtx11extras + linux-pam + xorg.libXcursor + xorg.libXtst + xorg.libXrandr + xorg.libXdmcp + gtest + ]; + + outputs = [ "out" "dev" ]; + + # 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..a732589d7ea1 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/core/dde-session-ui/default.nix @@ -0,0 +1,84 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, pkg-config +, qttools +, wrapQtAppsHook +, qtbase +, dtkwidget +, qt5integration +, qt5platform-plugins +, dde-dock +, gsettings-qt +, qtx11extras +, gtest +}: + +stdenv.mkDerivation rec { + pname = "dde-session-ui"; + version = "6.0.10"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-JwktVbwWdfqURhZuEFdB5oaKMsBZu5DekpZ2WGpcL4Q="; + }; + + 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 dde-warning-dialog/src/org.deepin.dde.WarningDialog1.service dde-welcome/src/org.deepin.dde.Welcome1.service \ + --replace "/usr/lib/deepin-daemon" "/run/current-system/sw/lib/deepin-daemon" + + substituteInPlace dmemory-warning-dialog/src/org.deepin.dde.MemoryWarningDialog1.service \ + --replace "/usr" "$out" + ''; + + nativeBuildInputs = [ + cmake + pkg-config + qttools + wrapQtAppsHook + ]; + + buildInputs = [ + qtbase + dtkwidget + qt5platform-plugins + dde-dock + gsettings-qt + qtx11extras + gtest + ]; + + cmakeFlags = [ + "-DDISABLE_SYS_UPDATE=ON" + ]; + + # 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/dde-session/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-session/default.nix new file mode 100644 index 000000000000..72ae99f8c843 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/core/dde-session/default.nix @@ -0,0 +1,69 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, pkg-config +, wrapQtAppsHook +, qtbase +, dtkcore +, gsettings-qt +, libsecret +, xorg +, systemd +, dde-polkit-agent +}: + +stdenv.mkDerivation rec { + pname = "dde-session"; + version = "1.1.9"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-CyHvvNALXe4fOMjD48By/iaU6/xNUhH9yG19Ob3bHy0="; + }; + + postPatch = '' + # Avoid using absolute path to distinguish applications + substituteInPlace src/dde-session/impl/sessionmanager.cpp \ + --replace 'file.readAll().startsWith("/usr/bin/dde-lock")' 'file.readAll().contains("dde-lock")' \ + + substituteInPlace systemd/dde-session-initialized.target.wants/dde-polkit-agent.service \ + --replace "/usr/lib/polkit-1-dde" "${dde-polkit-agent}/lib/polkit-1-dde" + + for file in $(grep -rl "/usr/lib/deepin-daemon"); do + substituteInPlace $file --replace "/usr/lib/deepin-daemon" "/run/current-system/sw/lib/deepin-daemon" + done + + for file in $(grep -rl "/usr/bin"); do + substituteInPlace $file --replace "/usr/bin/" "/run/current-system/sw/bin/" + done + ''; + + nativeBuildInputs = [ + cmake + pkg-config + wrapQtAppsHook + ]; + + buildInputs = [ + qtbase + dtkcore + gsettings-qt + libsecret + xorg.libXcursor + systemd + ]; + + # FIXME: dde-wayland always exits abnormally + passthru.providedSessions = [ "dde-x11" ]; + + meta = with lib; { + description = "New deepin session based on systemd and existing projects"; + homepage = "https://github.com/linuxdeepin/dde-session"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-widgets/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-widgets/default.nix new file mode 100644 index 000000000000..975cb978e7a7 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/core/dde-widgets/default.nix @@ -0,0 +1,48 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, pkg-config +, dde-qt-dbus-factory +, wrapQtAppsHook +, qtbase +, qtx11extras +, dtkwidget +, qt5integration +, gtest +}: + +stdenv.mkDerivation rec { + pname = "dde-widgets"; + version = "6.0.14"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-bmhT7UhMXtC5wlRtwlVnGjoq8rUQcDSk4rGQ0Xrz9ZI="; + }; + + nativeBuildInputs = [ + cmake + pkg-config + dde-qt-dbus-factory + wrapQtAppsHook + ]; + + buildInputs = [ + qtbase + qtx11extras + dtkwidget + qt5integration + gtest + ]; + + meta = with lib; { + description = "Desktop widgets service/implementation for DDE"; + homepage = "https://github.com/linuxdeepin/dde-widgets"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/core/deepin-kwin/0001-hardcode-fallback-background.diff b/nixpkgs/pkgs/desktops/deepin/core/deepin-kwin/0001-hardcode-fallback-background.diff new file mode 100644 index 000000000000..872fa26c5e55 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/core/deepin-kwin/0001-hardcode-fallback-background.diff @@ -0,0 +1,15 @@ +diff --git a/src/effects/multitaskview/multitaskview.cpp b/src/effects/multitaskview/multitaskview.cpp +index 268bc42..d41f7bf 100644 +--- a/src/effects/multitaskview/multitaskview.cpp ++++ b/src/effects/multitaskview/multitaskview.cpp +@@ -50,8 +50,8 @@ + #define SCISSOR_HOFFD 400 + + const char screen_recorder[] = "deepin-screen-recorder deepin-screen-recorder"; +-const char fallback_background_name[] = "file:///usr/share/wallpapers/deepin/desktop.jpg"; +-const char previous_default_background_name[] = "file:///usr/share/backgrounds/default_background.jpg"; ++const char fallback_background_name[] = "file:///run/current-system/sw/share/wallpapers/deepin/desktop.jpg"; ++const char previous_default_background_name[] = "file:///run/current-system/sw/share/backgrounds/default_background.jpg"; + const char add_workspace_png[] = ":/effects/multitaskview/buttons/add-light.png";//":/resources/themes/add-light.svg"; + const char delete_workspace_png[] = ":/effects/multitaskview/buttons/workspace_delete.png"; + 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..03e40357317c --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/core/deepin-kwin/default.nix @@ -0,0 +1,117 @@ +{ 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.25.11"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-J92T1hsRmmtkjF9OPsrikRtd7bQSEG88UOYu+BHUSx0="; + }; + + patches = [ + ./0001-hardcode-fallback-background.diff + ]; + + # 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 + xorg.libXScrnSaver + ]; + + 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/deepin-service-manager/default.nix b/nixpkgs/pkgs/desktops/deepin/core/deepin-service-manager/default.nix new file mode 100644 index 000000000000..3d657ef33869 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/core/deepin-service-manager/default.nix @@ -0,0 +1,39 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, pkg-config +, wrapQtAppsHook +}: + +stdenv.mkDerivation rec { + pname = "deepin-service-manager"; + version = "1.0.3"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-gTzyQHFPyn2+A+o+4VYySDBCZftfG2WnTXuqzeF+QhA="; + }; + + postPatch = '' + for file in $(grep -rl "/usr/bin/deepin-service-manager"); do + substituteInPlace $file --replace "/usr/bin/deepin-service-manager" "$out/bin/deepin-service-manager" + done + ''; + + nativeBuildInputs = [ + cmake + pkg-config + wrapQtAppsHook + ]; + + meta = with lib; { + description = "Manage DBus service on Deepin"; + homepage = "https://github.com/linuxdeepin/deepin-service-manager"; + license = licenses.gpl3Plus; + 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..febfa41711e0 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/core/dpa-ext-gnomekeyring/default.nix @@ -0,0 +1,53 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, pkg-config +, qttools +, wrapQtAppsHook +, dtkwidget +, dde-polkit-agent +, qt5integration +, libsecret +, libgnome-keyring +}: + +stdenv.mkDerivation rec { + pname = "dpa-ext-gnomekeyring"; + version = "6.0.1"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-SyoahSdGPkWitDek4RD5M2hTR78GFpuijryteKVAx6k="; + }; + + 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 + qt5integration + 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..0361a13142cb --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/default.nix @@ -0,0 +1,98 @@ +{ lib, pkgs, config, 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 { }; + dtkdeclarative = callPackage ./library/dtkdeclarative { }; + deepin-pdfium = callPackage ./library/deepin-pdfium { }; + qt5platform-plugins = callPackage ./library/qt5platform-plugins { }; + qt5integration = callPackage ./library/qt5integration { }; + deepin-wayland-protocols = callPackage ./library/deepin-wayland-protocols { }; + deepin-ocr-plugin-manager = callPackage ./library/deepin-ocr-plugin-manager { }; + 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 + deepin-kwin = callPackage ./core/deepin-kwin { }; + dde-appearance = callPackage ./core/dde-appearance { }; + dde-app-services = callPackage ./core/dde-app-services { }; + dde-application-manager = callPackage ./core/dde-application-manager { }; + 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-launchpad = callPackage ./core/dde-launchpad { }; + dde-network-core = callPackage ./core/dde-network-core { }; + dde-session = callPackage ./core/dde-session { }; + dde-session-shell = callPackage ./core/dde-session-shell { }; + dde-session-ui = callPackage ./core/dde-session-ui { }; + deepin-service-manager = callPackage ./core/deepin-service-manager { }; + dde-polkit-agent = callPackage ./core/dde-polkit-agent { }; + dpa-ext-gnomekeyring = callPackage ./core/dpa-ext-gnomekeyring { }; + dde-gsettings-schemas = callPackage ./core/dde-gsettings-schemas { }; + dde-widgets = callPackage ./core/dde-widgets { }; + + #### 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 { }; + deepin-desktop-theme = callPackage ./artwork/deepin-desktop-theme { }; + + #### MISC + deepin-desktop-base = callPackage ./misc/deepin-desktop-base { }; + deepin-turbo = callPackage ./misc/deepin-turbo { }; + } // lib.optionalAttrs config.allowAliases { + dde-kwin = throw "The 'deepin.dde-kwin' package was removed as it is outdated and no longer relevant."; # added 2023-09-27 + dde-launcher = throw "The 'deepin.dde-launcher' is no longer maintained. Please use 'deepin.dde-launchpad' instead."; # added 2023-11-23 + }; +in +lib.makeScope libsForQt5.newScope packages 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..11aa986124b2 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/go-package/dde-api/default.nix @@ -0,0 +1,115 @@ +{ stdenv +, lib +, fetchFromGitHub +, fetchpatch +, buildGoModule +, pkg-config +, deepin-gettext-tools +, wrapQtAppsHook +, wrapGAppsHook +, alsa-lib +, gtk3 +, libcanberra +, libgudev +, librsvg +, poppler +, pulseaudio +, gdk-pixbuf-xlib +, coreutils +, dbus +}: + +buildGoModule rec { + pname = "dde-api"; + version = "6.0.7"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-kdf1CoZUyda6bOTW0WJTgaXYhocrjRU9ptj7i+k8aaQ="; + }; + + patches = [ + (fetchpatch { + name = "modify_PKGBUILD_to_support_OBS.patch"; + url = "https://github.com/linuxdeepin/dde-api/commit/1399522d032c6c649db79a33348cdb1a233bc23a.patch"; + hash = "sha256-kSHnYaOxIvv7lAJnvxpSwyRDPyDxpAq9x+gJcBdU3T8="; + }) + ]; + + vendorHash = "sha256-4Yscw3QjWG1rlju6sMRHGn3dSe65b1nx10B3KeyAzBM="; + + postPatch = '' + 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,systemd/system/deepin-login-sound.service} \ + --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 + ''; + + nativeBuildInputs = [ + pkg-config + deepin-gettext-tools + wrapQtAppsHook + wrapGAppsHook + ]; + dontWrapGApps = true; + + buildInputs = [ + alsa-lib + gtk3 + libcanberra + libgudev + librsvg + poppler + pulseaudio + gdk-pixbuf-xlib + ]; + + buildPhase = '' + runHook preBuild + make GOBUILD_OPTIONS="$GOFLAGS" + runHook postBuild + ''; + + doCheck = false; + + installPhase = '' + runHook preInstall + make install DESTDIR="$out" PREFIX="/" + 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-daemon/0001-dont-set-PATH.diff b/nixpkgs/pkgs/desktops/deepin/go-package/dde-daemon/0001-dont-set-PATH.diff new file mode 100644 index 000000000000..f1d9f8017af6 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/go-package/dde-daemon/0001-dont-set-PATH.diff @@ -0,0 +1,15 @@ +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/0002-fix-custom-wallpapers-path.diff b/nixpkgs/pkgs/desktops/deepin/go-package/dde-daemon/0002-fix-custom-wallpapers-path.diff new file mode 100644 index 000000000000..5d4bddd08009 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/go-package/dde-daemon/0002-fix-custom-wallpapers-path.diff @@ -0,0 +1,25 @@ +diff --git a/bin/dde-system-daemon/wallpaper.go b/bin/dde-system-daemon/wallpaper.go +index 6ee26e27..67dc77dc 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, +-- +2.40.1 + diff --git a/nixpkgs/pkgs/desktops/deepin/go-package/dde-daemon/0003-aviod-use-hardcode-path.diff b/nixpkgs/pkgs/desktops/deepin/go-package/dde-daemon/0003-aviod-use-hardcode-path.diff new file mode 100644 index 000000000000..c9505d9563a5 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/go-package/dde-daemon/0003-aviod-use-hardcode-path.diff @@ -0,0 +1,116 @@ +diff --git a/accounts1/user.go b/accounts1/user.go +index 8101d9c6..16c7f15f 100644 +--- a/accounts1/user.go ++++ b/accounts1/user.go +@@ -482,7 +482,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/accounts1/user_chpwd_union_id.go b/accounts1/user_chpwd_union_id.go +index 61a691d9..47d2163e 100644 +--- a/accounts1/user_chpwd_union_id.go ++++ b/accounts1/user_chpwd_union_id.go +@@ -89,14 +89,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/dde-authority/fprint_transaction.go b/bin/dde-authority/fprint_transaction.go +index ca2951a0..3223ad25 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/grub2/grub2.go b/grub2/grub2.go +index 085b7157..10cb8256 100644 +--- a/grub2/grub2.go ++++ b/grub2/grub2.go +@@ -603,7 +603,7 @@ func checkInvokePermission(service *dbusutil.Service, sender dbus.Sender) error + if err != nil { + return err + } +- if cmd == "/usr/bin/dde-control-center" { ++ if strings.Contains(cmd, "dde-control-center") { + return nil + } + uid, err := service.GetConnUID(string(sender)) +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 7063a40c..c4c6103a 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=org.deepin.dde.Fprintd1 --print-reply /org/deepin/dde/Fprintd1 org.deepin.dde.Fprintd1.TriggerUDevEvent" ++SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_interface", ACTION=="add|remove", ENV{LIBFPRINT_DRIVER}!="", RUN+="@dbus@/bin/dbus-send --system --dest=org.deepin.dde.Fprintd1 --print-reply /org/deepin/dde/Fprintd1 org.deepin.dde.Fprintd1.TriggerUDevEvent" +diff --git a/system/display/displaycfg.go b/system/display/displaycfg.go +index cda69a77..e394ae07 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/power1/manager_lmt.go b/system/power1/manager_lmt.go +index 87556893..f67cb5b0 100644 +--- a/system/power1/manager_lmt.go ++++ b/system/power1/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 + } + +-- +2.40.1 + diff --git a/nixpkgs/pkgs/desktops/deepin/go-package/dde-daemon/0004-fix-build-with-ddcutil-2.patch b/nixpkgs/pkgs/desktops/deepin/go-package/dde-daemon/0004-fix-build-with-ddcutil-2.patch new file mode 100644 index 000000000000..76729d488b3c --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/go-package/dde-daemon/0004-fix-build-with-ddcutil-2.patch @@ -0,0 +1,17 @@ +diff --git a/bin/backlight_helper/ddcci/ddcci.go b/bin/backlight_helper/ddcci/ddcci.go +index 679beea3..ccbfc508 100644 +--- a/bin/backlight_helper/ddcci/ddcci.go ++++ b/bin/backlight_helper/ddcci/ddcci.go +@@ -103,11 +103,6 @@ func newDDCCI() (*ddcci, error) { + displayHandleMap: make(map[string]*displayHandle), + } + +- status := C.ddca_set_max_tries(C.DDCA_MULTI_PART_TRIES, 5) +- if status < C.int(0) { +- return nil, fmt.Errorf("brightness: Error setting retries: %d", status) +- } +- + err := ddc.RefreshDisplays() + if err != nil { + return nil, err + 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..0f322505be2f --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/go-package/dde-daemon/default.nix @@ -0,0 +1,154 @@ +{ stdenv +, lib +, fetchFromGitHub +, substituteAll +, buildGoModule +, pkg-config +, deepin-gettext-tools +, gettext +, python3 +, wrapGAppsHook +, 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 +, util-linux +, dde-session-ui +, coreutils +, lshw +, dmidecode +, systemd +}: + +buildGoModule rec { + pname = "dde-daemon"; + version = "6.0.22"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-D7s6wWZeZHYl/aP/0qLYNn+lZEwGJAjFNbO0whKymck="; + }; + + vendorHash = "sha256-U+G5CELpor34RgFzHpxfvJ/jBfWfE4ShjY2b2Z61BhE="; + + patches = [ + ./0001-dont-set-PATH.diff + (substituteAll { + src = ./0002-fix-custom-wallpapers-path.diff; + inherit coreutils; + }) + (substituteAll { + src = ./0003-aviod-use-hardcode-path.diff; + inherit dbus; + }) + ./0004-fix-build-with-ddcutil-2.patch + ]; + + postPatch = '' + substituteInPlace session/eventlog/{app_event.go,login_event.go} \ + --replace "/bin/bash" "${runtimeShell}" + + substituteInPlace inputdevices/layout_list.go \ + --replace "/usr/share/X11/xkb" "${xkeyboard_config}/share/X11/xkb" + + substituteInPlace bin/dde-system-daemon/wallpaper.go accounts1/user.go \ + --replace "/usr/share/wallpapers" "/run/current-system/sw/share/wallpapers" + + substituteInPlace timedate1/zoneinfo/zone.go \ + --replace "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo" + + substituteInPlace accounts1/image_blur.go grub2/modify_manger.go \ + --replace "/usr/lib/deepin-api" "/run/current-system/sw/lib/deepin-api" + + substituteInPlace accounts1/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 . + ''; + + nativeBuildInputs = [ + pkg-config + deepin-gettext-tools + gettext + python3 + wrapGAppsHook + ]; + + buildInputs = [ + ddcutil + linux-pam + libxcrypt + alsa-lib + glib + libgudev + gtk3 + gdk-pixbuf-xlib + networkmanager + libinput + libnl + librsvg + pulseaudio + tzdata + xkeyboard_config + ]; + + buildPhase = '' + runHook preBuild + make GOBUILD_OPTIONS="$GOFLAGS" + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + make install DESTDIR="$out" PREFIX="/" + runHook postInstall + ''; + + doCheck = false; + + preFixup = '' + gappsWrapperArgs+=( + --prefix PATH : "${lib.makeBinPath [ util-linux dde-session-ui glib lshw dmidecode systemd ]}" + ) + ''; + + postFixup = '' + for binary in $out/lib/deepin-daemon/*; do + if [ "$binary" == "$out/lib/deepin-daemon/service-trigger" ] ; then + continue; + fi + wrapGApp $binary + done + ''; + + 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/deepin-desktop-schemas/default.nix b/nixpkgs/pkgs/desktops/deepin/go-package/deepin-desktop-schemas/default.nix new file mode 100644 index 000000000000..4dab20303d8c --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/go-package/deepin-desktop-schemas/default.nix @@ -0,0 +1,56 @@ +{ stdenv +, lib +, buildGoModule +, fetchFromGitHub +, glib +}: + +buildGoModule rec { + pname = "deepin-desktop-schemas"; + version = "6.0.5"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-lvAY0CJ+EohMK16fwIkB7Jq7gTpMhDimPYs9b/IklA4="; + }; + + vendorHash = "sha256-q6ugetchJLv2JjZ9+nevUI0ptizh2V+6SByoY/eFJJQ="; + + 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 + make ARCH=${stdenv.hostPlatform.linuxArch} + runHook postBuild + ''; + + nativeCheckInputs = [ glib ]; + checkPhase = '' + runHook preCheck + make test + runHook postCheck + ''; + + installPhase = '' + runHook preInstall + make install DESTDIR="$out" PREFIX="/" + runHook postInstall + ''; + + 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..f745c8d942be --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/go-package/deepin-pw-check/default.nix @@ -0,0 +1,70 @@ +{ lib +, fetchFromGitHub +, buildGoModule +, pkg-config +, deepin-gettext-tools +, gtk3 +, glib +, libxcrypt +, gettext +, iniparser +, cracklib +, linux-pam +}: + +buildGoModule rec { + pname = "deepin-pw-check"; + version = "6.0.2"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-kBrkcB0IWGUV4ZrkFzwdPglRgDcnVvYDFhTXS20pKOk="; + }; + + vendorHash = "sha256-L0vUEkUN70Hrx5roIvTfaZBHbbq7mf3WpQJeFAMU5HY="; + + nativeBuildInputs = [ + pkg-config + gettext + deepin-gettext-tools + ]; + + buildInputs = [ + glib + libxcrypt + gtk3 + iniparser + cracklib + linux-pam + ]; + + postPatch = '' + sed -i 's|iniparser/||' */*.c + substituteInPlace misc/{pkgconfig/libdeepin_pw_check.pc,system-services/org.deepin.dde.PasswdConf1.service} \ + --replace "/usr" "$out" + ''; + + buildPhase = '' + runHook preBuild + make + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + make install PREFIX="$out" PKG_FILE_DIR=$out/lib/pkgconfig PAM_MODULE_DIR=$out/etc/pam.d + # 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/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..eecdbeb990ba --- /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 + gobject-introspection + ]; + + buildInputs = [ + libgudev + ]; + + 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..69e4c8aba56d --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/go-package/startdde/0001-avoid-use-hardcode-path.patch @@ -0,0 +1,61 @@ +diff --git a/misc/auto_launch/chinese.json b/misc/auto_launch/chinese.json +index 14b8bff..2b2c412 100644 +--- a/misc/auto_launch/chinese.json ++++ b/misc/auto_launch/chinese.json +@@ -3,7 +3,7 @@ + "Priority": 9, + "Group": [ + { +- "Command": "/usr/bin/dde-file-manager", ++ "Command": "dde-file-manager", + "Wait": false, + "Args": [ + "-d" +@@ -25,7 +25,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 da76626..bf9a2c4 100644 +--- a/session.go ++++ b/session.go +@@ -14,6 +14,7 @@ import ( + "sync" + "syscall" + "time" ++ "strings" + + "github.com/adrg/xdg" + "github.com/godbus/dbus/v5" +@@ -85,7 +86,7 @@ type SessionManager struct { + } + + const ( +- cmdShutdown = "/usr/bin/dde-shutdown" ++ cmdShutdown = "dde-shutdown" + lockFrontDest = "org.deepin.dde.LockFront1" + lockFrontIfc = lockFrontDest + lockFrontObjPath = "/org/deepin/dde/LockFront1" +@@ -458,7 +459,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 + } +@@ -478,7 +479,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)) + } + 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..8ad13e1156d7 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/go-package/startdde/default.nix @@ -0,0 +1,86 @@ +{ stdenv +, lib +, buildGoModule +, fetchFromGitHub +, gettext +, pkg-config +, jq +, wrapGAppsHook +, glib +, libgnome-keyring +, gtk3 +, alsa-lib +, pulseaudio +, libgudev +, libsecret +, runtimeShell +, dbus +}: + +buildGoModule rec { + pname = "startdde"; + version = "6.0.10"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-B2B8QlA1Ps/ybVzionngtwDwTLd7H02RKJwcXymGlJM="; + }; + + patches = [ + ./0001-avoid-use-hardcode-path.patch + ]; + + vendorHash = "sha256-5BEOazAygYL1N+CaGAbUwdpHZ1EiHr6yNW27/bXNdZg="; + + postPatch = '' + substituteInPlace display/manager.go session.go \ + --replace "/bin/bash" "${runtimeShell}" + + substituteInPlace misc/systemd_task/dde-display-task-refresh-brightness.service \ + --replace "/usr/bin/dbus-send" "${dbus}/bin/dbus-send" + + substituteInPlace display/manager.go utils.go session.go \ + --replace "/usr/lib/deepin-daemon" "/run/current-system/sw/lib/deepin-daemon" + + substituteInPlace misc/lightdm.conf --replace "/usr" "$out" + ''; + + nativeBuildInputs = [ + gettext + pkg-config + jq + wrapGAppsHook + glib + ]; + + buildInputs = [ + libgnome-keyring + gtk3 + alsa-lib + pulseaudio + libgudev + libsecret + ]; + + buildPhase = '' + runHook preBuild + make GO_BUILD_FLAGS="$GOFLAGS" + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + make install DESTDIR="$out" PREFIX="/" + runHook postInstall + ''; + + meta = with lib; { + description = "Starter of deepin desktop environment"; + homepage = "https://github.com/linuxdeepin/startdde"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} 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..323a37cac79f --- /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 = "6.0.0"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-9r5thJJjEZAuDT0N/m1gcr0Faa8WpZOtGKDYuZEvJis="; + }; + + 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-ocr-plugin-manager/default.nix b/nixpkgs/pkgs/desktops/deepin/library/deepin-ocr-plugin-manager/default.nix new file mode 100644 index 000000000000..3db5f0a0bd34 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/library/deepin-ocr-plugin-manager/default.nix @@ -0,0 +1,60 @@ +{ stdenv +, lib +, fetchFromGitHub +, pkg-config +, cmake +, qttools +, wrapQtAppsHook +, libisoburn +, ncnn +, opencv +, vulkan-headers +}: + +stdenv.mkDerivation rec { + pname = "deepin-ocr-plugin-manager"; + version = "unstable-2023-07-10"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = "9b5c9e57c83b5adde383ed404b73f9dcbf5e6a48"; + hash = "sha256-U5lxAKTaQvvlqbqRezPIcBGg+DpF1hZ204Y1+8dt14U="; + }; + + # don't use vendored opencv + postPatch = '' + substituteInPlace src/CMakeLists.txt \ + --replace "opencv_mobile" "opencv4" + substituteInPlace src/paddleocr-ncnn/paddleocr.cpp \ + --replace "/usr" "$out" + ''; + + nativeBuildInputs = [ + cmake + qttools + pkg-config + wrapQtAppsHook + ]; + + buildInputs = [ + ncnn + opencv + vulkan-headers + ]; + + strictDeps = true; + + cmakeFlags = [ + "-DCMAKE_INSTALL_LIBDIR=lib" + "-DCMAKE_INSTALL_INCLUDEDIR=include" + ]; + + meta = with lib; { + description = "Plugin manager of optical character recognition for DDE"; + homepage = "https://github.com/linuxdeepin/deepin-ocr-plugin-manager"; + 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..a4912eabe5f3 --- /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.2"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-ymJSTAccwRumXrh4VjwarKYgaqadMBrtXM1rjWNfe8o="; + }; + + 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..b3aa4481c9b8 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/library/dtkcommon/default.nix @@ -0,0 +1,31 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +}: + +stdenv.mkDerivation rec { + pname = "dtkcommon"; + version = "5.6.17"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-mquBuF+Gzq5txxCczeS+gI8LshdKnK5WnpOCytNki+w="; + }; + + nativeBuildInputs = [ + cmake + ]; + + dontWrapQtApps = true; + + 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..f13715535e09 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/library/dtkcore/default.nix @@ -0,0 +1,83 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, pkg-config +, qttools +, doxygen +, wrapQtAppsHook +, qtbase +, gsettings-qt +, lshw +, libuchardet +, spdlog +, dtkcommon +, systemd +, withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd +}: + +stdenv.mkDerivation rec { + pname = "dtkcore"; + version = "5.6.17"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-/MGSvT8tPn+KqqlM6FY2iFsArmAkYMW5Q3Sl4g4zvH0="; + }; + + patches = [ + ./fix-pkgconfig-path.patch + ./fix-pri-path.patch + ]; + + nativeBuildInputs = [ + cmake + pkg-config + qttools + doxygen + wrapQtAppsHook + ]; + + dontWrapQtApps = true; + + buildInputs = [ + qtbase + gsettings-qt + lshw + libuchardet + spdlog + ] + ++ lib.optional withSystemd systemd; + + propagatedBuildInputs = [ dtkcommon ]; + + cmakeFlags = [ + "-DDTK_VERSION=${version}" + "-DBUILD_DOCS=ON" + "-DBUILD_EXAMPLES=OFF" + "-DQCH_INSTALL_DESTINATION=${placeholder "doc"}/${qtbase.qtDocPrefix}" + "-DDSG_PREFIX_PATH='/run/current-system/sw'" + "-DMKSPECS_INSTALL_DIR=${placeholder "out"}/mkspecs/modules" + "-DCMAKE_INSTALL_LIBEXECDIR=${placeholder "dev"}/libexec" + "-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} + ''; + + outputs = [ "out" "dev" "doc" ]; + + 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/dtkcore/fix-pkgconfig-path.patch b/nixpkgs/pkgs/desktops/deepin/library/dtkcore/fix-pkgconfig-path.patch new file mode 100644 index 000000000000..570e34c06147 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/library/dtkcore/fix-pkgconfig-path.patch @@ -0,0 +1,14 @@ +diff --git a/misc/dtkcore.pc.in b/misc/dtkcore.pc.in +index 83eecb7..da24ce8 100644 +--- a/misc/dtkcore.pc.in ++++ b/misc/dtkcore.pc.in +@@ -1,7 +1,7 @@ + prefix=@CMAKE_INSTALL_PREFIX@ + exec_prefix=${prefix} +-libdir=${prefix}/@LIBRARY_INSTALL_DIR@ +-includedir=${prefix}/@INCLUDE_INSTALL_DIR@ ++libdir=@LIBRARY_INSTALL_DIR@ ++includedir=@INCLUDE_INSTALL_DIR@ + + Name: dtk@DTK_VERSION_MAJOR@core + Description: Deepin Tool Kit dtkcore header files diff --git a/nixpkgs/pkgs/desktops/deepin/library/dtkcore/fix-pri-path.patch b/nixpkgs/pkgs/desktops/deepin/library/dtkcore/fix-pri-path.patch new file mode 100644 index 000000000000..19953ed1733d --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/library/dtkcore/fix-pri-path.patch @@ -0,0 +1,17 @@ +diff --git a/misc/qt_lib_dtkcore.pri.in b/misc/qt_lib_dtkcore.pri.in +index a331f52..ce01dc0 100644 +--- a/misc/qt_lib_dtkcore.pri.in ++++ b/misc/qt_lib_dtkcore.pri.in +@@ -4,9 +4,9 @@ QT.dtkcore.MINOR_VERSION = @PROJECT_VERSION_MINOR@ + QT.dtkcore.PATCH_VERSION = @PROJECT_VERSION_PATCH@ + QT.dtkcore.name = dtkcore + QT.dtkcore.module = dtk@DTK_VERSION_MAJOR@core +-QT.dtkcore.tools = @CMAKE_INSTALL_PREFIX@/@TOOL_INSTALL_DIR@ +-QT.dtkcore.libs = @CMAKE_INSTALL_PREFIX@/@LIBRARY_INSTALL_DIR@ +-QT.dtkcore.includes = @CMAKE_INSTALL_PREFIX@/@INCLUDE_INSTALL_DIR@ ++QT.dtkcore.tools = @TOOL_INSTALL_DIR@ ++QT.dtkcore.libs = @LIBRARY_INSTALL_DIR@ ++QT.dtkcore.includes = @INCLUDE_INSTALL_DIR@ + QT.dtkcore.frameworks = + QT.dtkcore.depends = core dbus xml + QT.dtkcore.module_config = v2 ltcg diff --git a/nixpkgs/pkgs/desktops/deepin/library/dtkdeclarative/default.nix b/nixpkgs/pkgs/desktops/deepin/library/dtkdeclarative/default.nix new file mode 100644 index 000000000000..511a3950842e --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/library/dtkdeclarative/default.nix @@ -0,0 +1,72 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, pkg-config +, qttools +, doxygen +, wrapQtAppsHook +, qtbase +, dtkgui +, qtdeclarative +, qtquickcontrols2 +, qtgraphicaleffects +}: + +stdenv.mkDerivation rec { + pname = "dtkdeclarative"; + version = "5.6.17"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-P0F6GidGp+CkNplKnLiaYVtcxs6N66gGIx6UcplEt08="; + }; + + patches = [ + ./fix-pkgconfig-path.patch + ./fix-pri-path.patch + ]; + + nativeBuildInputs = [ + cmake + pkg-config + doxygen + qttools + wrapQtAppsHook + ]; + + propagatedBuildInputs = [ + dtkgui + qtdeclarative + qtquickcontrols2 + qtgraphicaleffects + ]; + + cmakeFlags = [ + "-DDTK_VERSION=${version}" + "-DBUILD_DOCS=ON" + "-DBUILD_EXAMPLES=ON" + "-DMKSPECS_INSTALL_DIR=${placeholder "dev"}/mkspecs/modules" + "-DQCH_INSTALL_DESTINATION=${placeholder "doc"}/${qtbase.qtDocPrefix}" + "-DQML_INSTALL_DIR=${placeholder "out"}/${qtbase.qtQmlPrefix}" + ]; + + 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} + export QML2_IMPORT_PATH=${qtdeclarative.bin}/${qtbase.qtQmlPrefix} + ''; + + outputs = [ "out" "dev" "doc" ]; + + meta = with lib; { + description = "A widget development toolkit based on QtQuick/QtQml"; + homepage = "https://github.com/linuxdeepin/dtkdeclarative"; + license = licenses.lgpl3Plus; + platforms = platforms.linux; + maintainers = teams.deepin.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/deepin/library/dtkdeclarative/fix-pkgconfig-path.patch b/nixpkgs/pkgs/desktops/deepin/library/dtkdeclarative/fix-pkgconfig-path.patch new file mode 100644 index 000000000000..e15ee2f7a0b8 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/library/dtkdeclarative/fix-pkgconfig-path.patch @@ -0,0 +1,14 @@ +diff --git a/misc/dtkdeclarative.pc.in b/misc/dtkdeclarative.pc.in +index dc3827f..fd0949e 100644 +--- a/misc/dtkdeclarative.pc.in ++++ b/misc/dtkdeclarative.pc.in +@@ -1,7 +1,7 @@ + prefix=@CMAKE_INSTALL_PREFIX@ + exec_prefix=${prefix} +-libdir=${prefix}/@LIB_INSTALL_DIR@ +-includedir=${prefix}/@INCLUDE_INSTALL_DIR@ ++libdir=@LIB_INSTALL_DIR@ ++includedir=@INCLUDE_INSTALL_DIR@ + + Name: DtkDeclarative + Description: Deepin Tool Kit DtkDeclarative header files diff --git a/nixpkgs/pkgs/desktops/deepin/library/dtkdeclarative/fix-pri-path.patch b/nixpkgs/pkgs/desktops/deepin/library/dtkdeclarative/fix-pri-path.patch new file mode 100644 index 000000000000..e622809c3936 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/library/dtkdeclarative/fix-pri-path.patch @@ -0,0 +1,15 @@ +diff --git a/misc/qt_lib_dtkdeclarative.pri.in b/misc/qt_lib_dtkdeclarative.pri.in +index 8797802..44e32a3 100644 +--- a/misc/qt_lib_dtkdeclarative.pri.in ++++ b/misc/qt_lib_dtkdeclarative.pri.in +@@ -4,8 +4,8 @@ QT.dtkdeclarative.MINOR_VERSION = @PROJECT_VERSION_MINOR@ + QT.dtkdeclarative.PATCH_VERSION = @PROJECT_VERSION_PATCH@ + QT.dtkdeclarative.name = dtkdeclarative + QT.dtkdeclarative.module = dtk@DTK_VERSION_MAJOR@declarative +-QT.dtkdeclarative.libs = @CMAKE_INSTALL_PREFIX@/@LIB_INSTALL_DIR@ +-QT.dtkdeclarative.includes = @CMAKE_INSTALL_PREFIX@/@INCLUDE_INSTALL_DIR@ ++QT.dtkdeclarative.libs = @LIB_INSTALL_DIR@ ++QT.dtkdeclarative.includes = @INCLUDE_INSTALL_DIR@ + QT.dtkdeclarative.frameworks = + QT.dtkdeclarative.depends = core dbus xml gui dtkcore dtkgui quick quick_private + QT.dtkdeclarative.module_config = v2 ltcg 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..0094f5a305f8 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/library/dtkgui/default.nix @@ -0,0 +1,81 @@ +{ stdenv +, lib +, fetchFromGitHub +, fetchpatch +, pkg-config +, cmake +, qttools +, doxygen +, wrapQtAppsHook +, qtbase +, dtkcore +, qtimageformats +, lxqt +, librsvg +}: + +stdenv.mkDerivation rec { + pname = "dtkgui"; + version = "5.6.17"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-ssCVMFCE1vhucYMxXkEZV5YlFxT1JdYGqrzILhWX1XI="; + }; + + patches = [ + ./fix-pkgconfig-path.patch + ./fix-pri-path.patch + + (fetchpatch { + name = "fix_svg_with_filter_attribute_rendering_exception.patch"; + url = "https://github.com/linuxdeepin/dtkgui/commit/f2c9327eb4989ab8ea96af7560c67d1cada794de.patch"; + hash = "sha256-lfg09tgS4vPuYachRbHdaMYKWdZZ0lP0Hxakkr9JKGs="; + }) + ]; + + nativeBuildInputs = [ + cmake + qttools + doxygen + pkg-config + wrapQtAppsHook + ]; + + buildInputs = [ + qtbase + lxqt.libqtxdg + librsvg + ]; + + propagatedBuildInputs = [ + dtkcore + qtimageformats + ]; + + cmakeFlags = [ + "-DDTK_VERSION=${version}" + "-DBUILD_DOCS=ON" + "-DMKSPECS_INSTALL_DIR=${placeholder "out"}/mkspecs/modules" + "-DQCH_INSTALL_DESTINATION=${placeholder "doc"}/${qtbase.qtDocPrefix}" + "-DCMAKE_INSTALL_LIBEXECDIR=${placeholder "dev"}/libexec" + ]; + + 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} + ''; + + outputs = [ "out" "dev" "doc" ]; + + 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/dtkgui/fix-pkgconfig-path.patch b/nixpkgs/pkgs/desktops/deepin/library/dtkgui/fix-pkgconfig-path.patch new file mode 100644 index 000000000000..1485baccc204 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/library/dtkgui/fix-pkgconfig-path.patch @@ -0,0 +1,16 @@ +diff --git a/misc/dtkgui.pc.in b/misc/dtkgui.pc.in +index 89fdbbf..ad817c4 100644 +--- a/misc/dtkgui.pc.in ++++ b/misc/dtkgui.pc.in +@@ -1,8 +1,8 @@ + prefix=@CMAKE_INSTALL_PREFIX@ + exec_prefix=${prefix} +-libdir=${prefix}/@LIBRARY_INSTALL_DIR@ +-includedir=${prefix}/@INCLUDE_INSTALL_DIR@ +-tooldir=${prefix}/@PACKAGE_TOOL_INSTALL_DIR@ ++libdir=@LIBRARY_INSTALL_DIR@ ++includedir=@INCLUDE_INSTALL_DIR@ ++tooldir=@PACKAGE_TOOL_INSTALL_DIR@ + + Name: dtk@DTK_VERSION_MAJOR@gui + Description: Deepin Tool Kit dtkgui header files diff --git a/nixpkgs/pkgs/desktops/deepin/library/dtkgui/fix-pri-path.patch b/nixpkgs/pkgs/desktops/deepin/library/dtkgui/fix-pri-path.patch new file mode 100644 index 000000000000..b746d34b1c79 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/library/dtkgui/fix-pri-path.patch @@ -0,0 +1,17 @@ +diff --git a/misc/qt_lib_dtkgui.pri.in b/misc/qt_lib_dtkgui.pri.in +index 28308ee..9fb25e6 100644 +--- a/misc/qt_lib_dtkgui.pri.in ++++ b/misc/qt_lib_dtkgui.pri.in +@@ -4,9 +4,9 @@ QT.dtkgui.MINOR_VERSION = @PROJECT_VERSION_MINOR@ + QT.dtkgui.PATCH_VERSION = @PROJECT_VERSION_PATCH@ + QT.dtkgui.name = dtkgui + QT.dtkgui.module = dtk@DTK_VERSION_MAJOR@gui +-QT.dtkgui.tools = @CMAKE_INSTALL_PREFIX@/@TOOL_INSTALL_DIR@ +-QT.dtkgui.libs = @CMAKE_INSTALL_PREFIX@/@LIBRARY_INSTALL_DIR@ +-QT.dtkgui.includes = @CMAKE_INSTALL_PREFIX@/@INCLUDE_INSTALL_DIR@ ++QT.dtkgui.tools = @TOOL_INSTALL_DIR@ ++QT.dtkgui.libs = @LIBRARY_INSTALL_DIR@ ++QT.dtkgui.includes = @INCLUDE_INSTALL_DIR@ + QT.dtkgui.frameworks = + QT.dtkgui.depends = core gui dtkcore gui_private dbus network + QT.dtkgui.module_config = v2 internal_module ltcg 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..b646baa48c3c --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/library/dtkwidget/default.nix @@ -0,0 +1,87 @@ +{ stdenv +, lib +, fetchFromGitHub +, fetchpatch +, 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.17"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-oFmM0e7ht3lCL50pwS/v/BLFmT2jymQaUZ4SmLdxvMo="; + }; + + patches = [ + ./fix-pkgconfig-path.patch + ./fix-pri-path.patch + ]; + + 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 = [ + "-DDTK_VERSION=${version}" + "-DBUILD_DOCS=ON" + "-DMKSPECS_INSTALL_DIR=${placeholder "dev"}/mkspecs/modules" + "-DQCH_INSTALL_DESTINATION=${placeholder "doc"}/${qtbase.qtDocPrefix}" + "-DCMAKE_INSTALL_LIBEXECDIR=${placeholder "dev"}/libexec" + ]; + + 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} + ''; + + outputs = [ "out" "dev" "doc" ]; + + 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/dtkwidget/fix-pkgconfig-path.patch b/nixpkgs/pkgs/desktops/deepin/library/dtkwidget/fix-pkgconfig-path.patch new file mode 100644 index 000000000000..df4452259580 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/library/dtkwidget/fix-pkgconfig-path.patch @@ -0,0 +1,14 @@ +diff --git a/misc/DtkWidget.pc.in b/misc/DtkWidget.pc.in +index 3c610669..b6ed04ca 100644 +--- a/misc/DtkWidget.pc.in ++++ b/misc/DtkWidget.pc.in +@@ -1,7 +1,7 @@ + prefix=@CMAKE_INSTALL_PREFIX@ + exec_prefix=${prefix} +-libdir=${prefix}/@LIBRARY_INSTALL_DIR@ +-includedir=${prefix}/@INCLUDE_INSTALL_DIR@ ++libdir=@LIBRARY_INSTALL_DIR@ ++includedir=@INCLUDE_INSTALL_DIR@ + + Name: dtk@DTK_VERSION_MAJOR@widget + Description: Deepin Tool Kit dtkwidget header files diff --git a/nixpkgs/pkgs/desktops/deepin/library/dtkwidget/fix-pri-path.patch b/nixpkgs/pkgs/desktops/deepin/library/dtkwidget/fix-pri-path.patch new file mode 100644 index 000000000000..cf2faac94855 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/library/dtkwidget/fix-pri-path.patch @@ -0,0 +1,17 @@ +diff --git a/misc/qt_lib_DtkWidget.pri.in b/misc/qt_lib_DtkWidget.pri.in +index 623878d3..561f5186 100644 +--- a/misc/qt_lib_DtkWidget.pri.in ++++ b/misc/qt_lib_DtkWidget.pri.in +@@ -4,9 +4,9 @@ QT.dtkwidget.MINOR_VERSION = @PROJECT_VERSION_MINOR@ + QT.dtkwidget.PATCH_VERSION = @PROJECT_VERSION_PATCH@ + QT.dtkwidget.name = dtkwidget + QT.dtkwidget.module = dtk@DTK_VERSION_MAJOR@widget +-QT.dtkwidget.tools = @CMAKE_INSTALL_PREFIX@/@TOOL_INSTALL_DIR@ +-QT.dtkwidget.libs = @CMAKE_INSTALL_PREFIX@/@LIBRARY_INSTALL_DIR@ +-QT.dtkwidget.includes = @CMAKE_INSTALL_PREFIX@/@INCLUDE_INSTALL_DIR@ ++QT.dtkwidget.tools = @TOOL_INSTALL_DIR@ ++QT.dtkwidget.libs = @LIBRARY_INSTALL_DIR@ ++QT.dtkwidget.includes = @INCLUDE_INSTALL_DIR@ + QT.dtkwidget.frameworks = + QT.dtkwidget.depends = core gui dtkcore network concurrent dtkgui printsupport printsupport_private widgets widgets_private gui_private x11extras dbus + QT.dtkwidget.module_config = v2 internal_module ltcg 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..7de7292a4a05 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/library/dwayland/default.nix @@ -0,0 +1,53 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, qtbase +, qtwayland +, wayland +, wayland-protocols +, extra-cmake-modules +, deepin-wayland-protocols +, qttools +}: + +stdenv.mkDerivation rec { + pname = "dwayland"; + version = "5.25.0"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-XZvL3lauVW5D3r3kybpS3SiitvwEScqgYe2h9c1DuCs="; + }; + + nativeBuildInputs = [ + cmake + extra-cmake-modules + qttools + ]; + + buildInputs = [ + qtbase + qtwayland + wayland + wayland-protocols + deepin-wayland-protocols + ]; + + dontWrapQtApps = true; + + # cmake requires that the kf5 directory must not empty + postInstall = '' + mkdir $out/include/KF5 + ''; + + 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..e969c2137ef1 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/library/image-editor/default.nix @@ -0,0 +1,54 @@ +{ stdenv +, lib +, fetchFromGitHub +, dtkwidget +, cmake +, qttools +, pkg-config +, wrapQtAppsHook +, opencv +, freeimage +, libmediainfo +, ffmpegthumbnailer +, pcre +}: + +stdenv.mkDerivation rec { + pname = "image-editor"; + version = "1.0.35"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-Xr4tueipQbRHyKLStTWeUcVbX7Baiz0YooaaVk65Y+U="; + }; + + postPatch = '' + 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 = [ + "-DCMAKE_INSTALL_LIBDIR=lib" + ]; + + 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..f5962e7760e4 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/library/qt5integration/default.nix @@ -0,0 +1,56 @@ +{ stdenv +, lib +, fetchFromGitHub +, dtkwidget +, cmake +, pkg-config +, qtbase +, qtsvg +, qtx11extras +, lxqt +, mtdev +, xorg +, gtest +}: + +stdenv.mkDerivation rec { + pname = "qt5integration"; + version = "5.6.17"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-8ag/cFkjp5u/0/71xKR6z6dXp2NGRIYNNbzzEmgsDmc="; + }; + + nativeBuildInputs = [ + cmake + pkg-config + ]; + + buildInputs = [ + dtkwidget + qtbase + qtsvg + qtx11extras + mtdev + lxqt.libqtxdg + xorg.xcbutilrenderutil + gtest + ]; + + cmakeFlags = [ + "-DPLUGIN_INSTALL_BASE_DIR=${placeholder "out"}/${qtbase.qtPluginPrefix}" + ]; + + dontWrapQtApps = true; + + 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..87d570ac011e --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/library/qt5platform-plugins/default.nix @@ -0,0 +1,70 @@ +{ stdenv +, lib +, fetchFromGitHub +, fetchpatch +, cmake +, extra-cmake-modules +, pkg-config +, dtkcommon +, qtbase +, qtx11extras +, mtdev +, cairo +, xorg +, wayland +, dwayland +, qtwayland +}: + +stdenv.mkDerivation rec { + pname = "qt5platform-plugins"; + version = "5.6.16"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-1/biT8wR44+sdOMhBW/8KMUSBDK/UxuEqsyjTZyjBT4="; + }; + + nativeBuildInputs = [ + cmake + extra-cmake-modules + pkg-config + ]; + + buildInputs = [ + dtkcommon + mtdev + cairo + qtbase + qtx11extras + xorg.libSM + wayland + dwayland + qtwayland + ]; + + patches = [ + (fetchpatch { + name = "use-ECM-to-help-dwayland-find-wayland.patch"; + url = "https://github.com/linuxdeepin/qt5platform-plugins/commit/d7f6230716a0ff5ce34fc7d292ec0af5bbac30e4.patch"; + hash = "sha256-RY2+QBR3OjUGBX4Y9oVvIRY90IH9rTOCg8dCddkB2WE="; + }) + ]; + + cmakeFlags = [ + "-DINSTALL_PATH=${placeholder "out"}/${qtbase.qtPluginPrefix}/platforms" + "-DQT_XCB_PRIVATE_HEADERS=${qtbase.src}/src/plugins/platforms/xcb" + ]; + + dontWrapQtApps = true; + + 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..0d9bda407861 --- /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.16"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-o5ubfCpgAHJXqihGyapq7Dj9eQlw2q6VoER/e37tM6w="; + }; + + 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..50fa2c6e72e7 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/misc/deepin-desktop-base/default.nix @@ -0,0 +1,46 @@ +{ stdenvNoCC +, lib +, fetchFromGitHub +, nixos-icons +}: +stdenvNoCC.mkDerivation rec { + pname = "deepin-desktop-base"; + version = "2023.09.05"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-Gqp56TbkuTOI3aT7UmRuYBjUwRiOoIUHiRf0DaY0yew="; + }; + + 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 + cat > $out/share/deepin/distribution.info <<EOF + [Distribution] + Name=NixOS + WebsiteName=www.nixos.org + Website=https://www.nixos.org + Logo=${nixos-icons}/share/icons/hicolor/96x96/apps/nix-snowflake.png + LogoLight=${nixos-icons}/share/icons/hicolor/32x32/apps/nix-snowflake.png + LogoTransparent=$out/share/pixmaps/distribution_logo_transparent.svg + EOF + ''; + + 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..7bc12672472d --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/tools/dde-device-formatter/default.nix @@ -0,0 +1,63 @@ +{ stdenv +, lib +, fetchFromGitHub +, dtkwidget +, deepin-gettext-tools +, qt5integration +, qmake +, qtbase +, qttools +, qtx11extras +, pkg-config +, wrapQtAppsHook +, udisks2-qt5 +}: + +stdenv.mkDerivation rec { + pname = "dde-device-formatter"; + version = "0.0.1.15"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + hash = "sha256-M0XKvo/Qph09GIlqXTdYyPWilWyQhvFAF3c9Yf1Z9m0="; + }; + + postPatch = '' + substituteInPlace translate_desktop2ts.sh translate_ts2desktop.sh \ + --replace "/usr/bin/deepin-desktop-ts-convert" "deepin-desktop-ts-convert" + substituteInPlace dde-device-formatter.pro dde-device-formatter.desktop \ + --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; + }; +} |