diff options
author | rewine <luhongxu@deepin.org> | 2023-01-12 17:58:51 +0800 |
---|---|---|
committer | rewine <lhongxu@outlook.com> | 2023-02-22 10:28:36 +0800 |
commit | b21e6f2c580921f71d2194421a29c3abe3e715cd (patch) | |
tree | ad16759dc584270513005850b8ac3e880c346a84 /pkgs/desktops/deepin/apps | |
parent | 1f9748835ce2b81a8ee14e5caa7c0cca062d9619 (diff) | |
download | nixpkgs-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.nix | 95 | ||||
-rw-r--r-- | pkgs/desktops/deepin/apps/deepin-camera/dont_use_libPath.diff | 25 |
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() |