summary refs log tree commit diff
path: root/pkgs/desktops/deepin/apps
diff options
context:
space:
mode:
authorrewine <luhongxu@deepin.org>2023-01-12 17:58:51 +0800
committerrewine <lhongxu@outlook.com>2023-02-22 10:28:36 +0800
commitb21e6f2c580921f71d2194421a29c3abe3e715cd (patch)
treead16759dc584270513005850b8ac3e880c346a84 /pkgs/desktops/deepin/apps
parent1f9748835ce2b81a8ee14e5caa7c0cca062d9619 (diff)
downloadnixpkgs-b21e6f2c580921f71d2194421a29c3abe3e715cd.tar
nixpkgs-b21e6f2c580921f71d2194421a29c3abe3e715cd.tar.gz
nixpkgs-b21e6f2c580921f71d2194421a29c3abe3e715cd.tar.bz2
nixpkgs-b21e6f2c580921f71d2194421a29c3abe3e715cd.tar.lz
nixpkgs-b21e6f2c580921f71d2194421a29c3abe3e715cd.tar.xz
nixpkgs-b21e6f2c580921f71d2194421a29c3abe3e715cd.tar.zst
nixpkgs-b21e6f2c580921f71d2194421a29c3abe3e715cd.zip
deepin-camera: init at 1.4.8
Diffstat (limited to 'pkgs/desktops/deepin/apps')
-rw-r--r--pkgs/desktops/deepin/apps/deepin-camera/default.nix95
-rw-r--r--pkgs/desktops/deepin/apps/deepin-camera/dont_use_libPath.diff25
2 files changed, 120 insertions, 0 deletions
diff --git a/pkgs/desktops/deepin/apps/deepin-camera/default.nix b/pkgs/desktops/deepin/apps/deepin-camera/default.nix
new file mode 100644
index 00000000000..27556ed73e0
--- /dev/null
+++ b/pkgs/desktops/deepin/apps/deepin-camera/default.nix
@@ -0,0 +1,95 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, pkg-config
+, qttools
+, wrapQtAppsHook
+, dtkwidget
+, qt5integration
+, qt5platform-plugins
+, image-editor
+, qtbase
+, qtmultimedia
+, ffmpeg
+, ffmpegthumbnailer
+, libusb1
+, portaudio
+, libv4l
+, gst_all_1
+, systemd
+}:
+
+stdenv.mkDerivation rec {
+  pname = "deepin-camera";
+  version = "1.4.8";
+
+  src = fetchFromGitHub {
+    owner = "linuxdeepin";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-p2RCetx1lgLonXZaC3umE+nDgZnp64o3iR2MgQhbisM=";
+  };
+
+  # QLibrary and dlopen work with LD_LIBRARY_PATH
+  patches = [ ./dont_use_libPath.diff ];
+
+  postPatch = ''
+    substituteInPlace src/CMakeLists.txt \
+      --replace "/usr/share/libimagevisualresult/filter_cube" "${image-editor}/share/libimagevisualresult/filter_cube" \
+      --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/applications/deepin-camera.desktop" "$out/share/applications/deepin-camera.desktop"
+  '';
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    qttools
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    dtkwidget
+    qt5platform-plugins
+    image-editor
+    qtbase
+    qtmultimedia
+    ffmpeg
+    ffmpegthumbnailer
+    libusb1
+    portaudio
+    libv4l
+  ] ++ (with gst_all_1 ; [
+    gstreamer
+    gst-plugins-base
+    gst-plugins-good
+    gst-plugins-bad
+  ]);
+
+  cmakeFlags = [ "-DVERSION=${version}" ];
+
+  NIX_CFLAGS_COMPILE = [
+    "-I${gst_all_1.gstreamer.dev}/include/gstreamer-1.0"
+    "-I${gst_all_1.gst-plugins-base.dev}/include/gstreamer-1.0"
+  ];
+
+  # qt5integration must be placed before qtsvg in QT_PLUGIN_PATH
+  qtWrapperArgs = [
+    "--prefix QT_PLUGIN_PATH : ${qt5integration}/${qtbase.qtPluginPrefix}"
+    "--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/pkgs/desktops/deepin/apps/deepin-camera/dont_use_libPath.diff b/pkgs/desktops/deepin/apps/deepin-camera/dont_use_libPath.diff
new file mode 100644
index 00000000000..b4ef86f79b3
--- /dev/null
+++ b/pkgs/desktops/deepin/apps/deepin-camera/dont_use_libPath.diff
@@ -0,0 +1,25 @@
+diff --git a/src/src/mainwindow.cpp b/src/src/mainwindow.cpp
+index d3c6f5c..4817446 100644
+--- a/src/src/mainwindow.cpp
++++ b/src/src/mainwindow.cpp
+@@ -781,19 +781,7 @@ void CMainWindow::slotPopupSettingsDialog()
+ 
+ QString CMainWindow::libPath(const QString &strlib)
+ {
+-    QDir  dir;
+-    QString path  = QLibraryInfo::location(QLibraryInfo::LibrariesPath);
+-    dir.setPath(path);
+-    QStringList list = dir.entryList(QStringList() << (strlib + "*"), QDir::NoDotAndDotDot | QDir::Files); //filter name with strlib
+-
+-    if (list.contains(strlib))
+-        return strlib;
+-
+-    list.sort();
+-    if (list.size() > 0)
+-        return list.last();
+-
+-    return "";
++    return strlib;
+ }
+ 
+ void CMainWindow::reflushSnapshotLabel()