uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead
https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948 this can do it nicely. Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
commit
56de2bcd43
30691 changed files with 3076956 additions and 0 deletions
65
pkgs/applications/video/clipgrab/default.nix
Normal file
65
pkgs/applications/video/clipgrab/default.nix
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
{ lib, fetchurl, makeDesktopItem, ffmpeg
|
||||
, qmake, qttools, mkDerivation
|
||||
, qtbase, qtdeclarative, qtlocation, qtquickcontrols2, qtwebchannel, qtwebengine
|
||||
, yt-dlp
|
||||
}:
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "clipgrab";
|
||||
version = "3.9.7";
|
||||
|
||||
src = fetchurl {
|
||||
sha256 = "sha256-9H8raJd6MyyFICY8WUZQGLJ4teKPJUiQfqbu1HWAVIw=";
|
||||
# The .tar.bz2 "Download" link is a binary blob, the source is the .tar.gz!
|
||||
url = "https://download.clipgrab.org/${pname}-${version}.tar.gz";
|
||||
};
|
||||
|
||||
buildInputs = [ ffmpeg qtbase qtdeclarative qtlocation qtquickcontrols2 qtwebchannel qtwebengine ];
|
||||
nativeBuildInputs = [ qmake qttools ];
|
||||
|
||||
patches = [
|
||||
./yt-dlp-path.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace youtube_dl.cpp \
|
||||
--replace 'QString YoutubeDl::path = QString();' \
|
||||
'QString YoutubeDl::path = QString("${yt-dlp}/bin/yt-dlp");'
|
||||
'' + lib.optionalString (ffmpeg != null) ''
|
||||
substituteInPlace converter_ffmpeg.cpp \
|
||||
--replace '"ffmpeg"' '"${ffmpeg.bin}/bin/ffmpeg"' \
|
||||
--replace '"ffmpeg ' '"${ffmpeg.bin}/bin/ffmpeg '
|
||||
'';
|
||||
|
||||
qmakeFlags = [ "clipgrab.pro" ];
|
||||
|
||||
desktopItem = makeDesktopItem rec {
|
||||
name = "clipgrab";
|
||||
exec = name;
|
||||
icon = name;
|
||||
desktopName = "ClipGrab";
|
||||
comment = meta.description;
|
||||
genericName = "Web video downloader";
|
||||
categories = [ "Qt" "AudioVideo" "Audio" "Video" ];
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
install -Dm755 clipgrab $out/bin/clipgrab
|
||||
install -Dm644 icon.png $out/share/pixmaps/clipgrab.png
|
||||
cp -r ${desktopItem}/share/applications $out/share
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Video downloader for YouTube and other sites";
|
||||
longDescription = ''
|
||||
ClipGrab is a free downloader and converter for YouTube, Vimeo, Metacafe,
|
||||
Dailymotion and many other online video sites. It converts downloaded
|
||||
videos to MPEG4, MP3 or other formats in just one easy step.
|
||||
'';
|
||||
homepage = "https://clipgrab.org/";
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
86
pkgs/applications/video/clipgrab/yt-dlp-path.patch
Normal file
86
pkgs/applications/video/clipgrab/yt-dlp-path.patch
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
--- a/main.cpp
|
||||
+++ b/main.cpp
|
||||
@@ -91,14 +91,5 @@ int main(int argc, char *argv[])
|
||||
w.show();
|
||||
}
|
||||
|
||||
- QTimer::singleShot(0, [=] {
|
||||
- cg->getUpdateInfo();
|
||||
- QObject::connect(cg, &ClipGrab::updateInfoProcessed, [cg] {
|
||||
- bool force = QSettings().value("forceYoutubeDlDownload", false).toBool();
|
||||
- if (force) QSettings().setValue("forceYoutubeDlDownload", false);
|
||||
- cg->downloadYoutubeDl(force);
|
||||
- });
|
||||
- });
|
||||
-
|
||||
return app.exec();
|
||||
}
|
||||
--- a/youtube_dl.cpp
|
||||
+++ b/youtube_dl.cpp
|
||||
@@ -8,52 +8,16 @@ YoutubeDl::YoutubeDl()
|
||||
QString YoutubeDl::path = QString();
|
||||
|
||||
QString YoutubeDl::find(bool force) {
|
||||
- if (!force && !path.isEmpty()) return path;
|
||||
-
|
||||
- // Prefer downloaded youtube-dl
|
||||
- QString localPath = QStandardPaths::locate(QStandardPaths::AppDataLocation, "yt-dlp");
|
||||
- QProcess* process = instance(localPath, QStringList() << "--version");
|
||||
- process->start();
|
||||
- process->waitForFinished();
|
||||
- process->deleteLater();
|
||||
- if (process->state() != QProcess::NotRunning) process->kill();
|
||||
- if (process->exitCode() == QProcess::ExitStatus::NormalExit) {
|
||||
- path = localPath;
|
||||
- return path;
|
||||
- }
|
||||
-
|
||||
- // Try system-wide youtube-dlp installation
|
||||
- QString globalPath = QStandardPaths::findExecutable("yt-dlp");
|
||||
- process = instance(globalPath, QStringList() << "--version");
|
||||
- process->start();
|
||||
- process->waitForFinished();
|
||||
- process->deleteLater();
|
||||
- if (process->state() != QProcess::NotRunning) process->kill();
|
||||
- if (process->exitCode() == QProcess::ExitStatus::NormalExit) {
|
||||
- path = globalPath;
|
||||
- return path;
|
||||
- }
|
||||
-
|
||||
- return "";
|
||||
+ // We supply yt-dlp from nixpkgs, so the downloading
|
||||
+ // machinery is not needed anymore.
|
||||
+ (void)force;
|
||||
+ return path;
|
||||
}
|
||||
|
||||
QProcess* YoutubeDl::instance(QStringList arguments) {
|
||||
- return instance(find(), arguments);
|
||||
-}
|
||||
-
|
||||
-QProcess* YoutubeDl::instance(QString path, QStringList arguments) {
|
||||
QProcess *process = new QProcess();
|
||||
|
||||
- QString execPath = QCoreApplication::applicationDirPath();
|
||||
- QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
|
||||
- env.insert("PATH", execPath + ":" + env.value("PATH"));
|
||||
- process->setEnvironment(env.toStringList());
|
||||
-
|
||||
- #if defined Q_OS_WIN
|
||||
- process->setProgram(execPath + "/python/python.exe");
|
||||
- #else
|
||||
- process->setProgram(QStandardPaths::findExecutable("python3"));
|
||||
- #endif
|
||||
+ process->setProgram(path);
|
||||
|
||||
QSettings settings;
|
||||
QStringList proxyArguments;
|
||||
@@ -81,7 +45,7 @@ QProcess* YoutubeDl::instance(QString path, QStringList arguments) {
|
||||
networkArguments << "--force-ipv4";
|
||||
}
|
||||
|
||||
- process->setArguments(QStringList() << path << arguments << proxyArguments << networkArguments);
|
||||
+ process->setArguments(QStringList() << arguments << proxyArguments << networkArguments);
|
||||
return process;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue