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:
Anton Arapov 2021-04-03 12:58:10 +02:00 committed by Alan Daniels
commit 56de2bcd43
30691 changed files with 3076956 additions and 0 deletions

View file

@ -0,0 +1,43 @@
{ lib, mkDerivation, fetchFromGitHub, fetchpatch, qmake
, qtbase, qtscript, qtwebkit, qtserialport, qtsvg, qtdeclarative, qtquickcontrols2
, alsa-lib, libsndfile, flite, openssl, udev, SDL2
}:
mkDerivation rec {
pname = "apmplanner2";
version = "2.0.28";
src = fetchFromGitHub {
owner = "ArduPilot";
repo = "apm_planner";
rev = version;
sha256 = "0wvbfjnnf7sh6fpgw8gimh5hgzywj3nwrgr80r782f5gayd3v2l1";
};
buildInputs = [
alsa-lib libsndfile flite openssl udev SDL2
qtbase qtscript qtwebkit qtserialport qtsvg qtdeclarative qtquickcontrols2
];
nativeBuildInputs = [ qmake ];
qmakeFlags = [ "apm_planner.pro" ];
# this ugly hack is necessary, as `bin/apmplanner2` needs the contents of `share/APMPlanner2` inside of `bin/`
preFixup = ''
ln --relative --symbolic $out/share/APMPlanner2/* $out/bin/
substituteInPlace $out/share/applications/apmplanner2.desktop \
--replace /usr $out
'';
meta = {
description = "Ground station software for autonomous vehicles";
longDescription = ''
A GUI ground control station for autonomous vehicles using the MAVLink protocol.
Includes support for the APM and PX4 based controllers.
'';
homepage = "https://ardupilot.org/planner2/";
license = lib.licenses.gpl3;
maintainers = with lib.maintainers; [ wucke13 ];
};
}

View file

@ -0,0 +1,49 @@
{lib, stdenv, fetchurl, unzip, makeDesktopItem, nwjs, wrapGAppsHook, gsettings-desktop-schemas, gtk3 }:
let
pname = "betaflight-configurator";
desktopItem = makeDesktopItem {
name = pname;
exec = pname;
icon = pname;
comment = "Betaflight configuration tool";
desktopName = "Betaflight Configurator";
genericName = "Flight controller configuration tool";
};
in
stdenv.mkDerivation rec {
inherit pname;
version = "10.7.2";
src = fetchurl {
url = "https://github.com/betaflight/${pname}/releases/download/${version}/${pname}_${version}_linux64.zip";
sha256 = "sha256-FDmtFRUupPKiHeF3Xvh/VagqMo+FJi8I7mhTz0VDs3o=";
};
nativeBuildInputs = [ wrapGAppsHook unzip ];
buildInputs = [ gsettings-desktop-schemas gtk3 ];
installPhase = ''
mkdir -p $out/bin \
$out/opt/${pname}
cp -r . $out/opt/${pname}/
install -m 444 -D icon/bf_icon_128.png $out/share/icons/hicolor/128x128/apps/${pname}.png
cp -r ${desktopItem}/share/applications $out/share/
makeWrapper ${nwjs}/bin/nw $out/bin/${pname} --add-flags $out/opt/${pname}
'';
meta = with lib; {
description = "The Betaflight flight control system configuration tool";
longDescription = ''
A crossplatform configuration tool for the Betaflight flight control system.
Various types of aircraft are supported by the tool and by Betaflight, e.g.
quadcopters, hexacopters, octocopters and fixed-wing aircraft.
'';
homepage = "https://github.com/betaflight/betaflight/wiki";
license = licenses.gpl3;
maintainers = with maintainers; [ wucke13 ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,50 @@
{lib, stdenv, fetchurl, unzip, makeDesktopItem, copyDesktopItems, nwjs
, wrapGAppsHook, gsettings-desktop-schemas, gtk3 }:
stdenv.mkDerivation rec {
pname = "emuflight-configurator";
version = "0.4.0";
src = fetchurl {
url = "https://github.com/emuflight/EmuConfigurator/releases/download/${version}/emuflight-configurator_${version}_linux64.zip";
sha256 = "sha256-s5AE+r9Fw6S7IG2cDW2T7vctcYIAY8al7eCFIDjD5oI=";
};
nativeBuildInputs = [ wrapGAppsHook unzip copyDesktopItems ];
buildInputs = [ gsettings-desktop-schemas gtk3 ];
installPhase = ''
mkdir -p $out/bin $out/share/${pname}
cp -r . $out/share/${pname}/
install -m 444 -D icon/emu_icon_128.png $out/share/icons/hicolor/128x128/apps/${pname}.png
makeWrapper ${nwjs}/bin/nw $out/bin/${pname} --add-flags $out/share/${pname}
'';
desktopItems = [
(makeDesktopItem {
name = pname;
exec = pname;
icon = pname;
comment = "Emuflight configuration tool";
desktopName = "Emuflight Configurator";
genericName = "Flight controller configuration tool";
})
];
meta = with lib; {
description = "The Emuflight flight control system configuration tool";
longDescription = ''
A crossplatform configuration tool for the Emuflight flight control system.
Various types of aircraft are supported by the tool and by Emuflight, e.g.
quadcopters, hexacopters, octocopters and fixed-wing aircraft.
The application allows you to configure the Emuflight software running on any supported Emuflight target.
'';
homepage = "https://github.com/emuflight/EmuConfigurator";
license = licenses.gpl3Only;
maintainers = with maintainers; [ beezow ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,57 @@
{ lib, stdenv, fetchurl, makeDesktopItem, copyDesktopItems, nwjs, wrapGAppsHook, gsettings-desktop-schemas, gtk3 }:
stdenv.mkDerivation rec {
pname = "inav-configurator";
version = "4.1.0";
src = fetchurl {
url = "https://github.com/iNavFlight/inav-configurator/releases/download/${version}/INAV-Configurator_linux64_${version}.tar.gz";
sha256 = "sha256-+rPzytnAQcNGbISFBHb4JS9Nqy0C2i36k+EPBvq/mso=";
};
icon = fetchurl {
url = "https://raw.githubusercontent.com/iNavFlight/inav-configurator/bf3fc89e6df51ecb83a386cd000eebf16859879e/images/inav_icon_128.png";
sha256 = "1i844dzzc5s5cr4vfpi6k2kdn8jiqq2n6c0fjqvsp4wdidwjahzw";
};
nativeBuildInputs = [ copyDesktopItems wrapGAppsHook ];
buildInputs = [ gsettings-desktop-schemas gtk3 ];
installPhase = ''
runHook preInstall
mkdir -p $out/bin \
$out/opt/${pname}
cp -r inav-configurator $out/opt/inav-configurator/
install -m 444 -D $icon $out/share/icons/hicolor/128x128/apps/${pname}.png
chmod +x $out/opt/inav-configurator/inav-configurator
makeWrapper ${nwjs}/bin/nw $out/bin/${pname} --add-flags $out/opt/inav-configurator/inav-configurator
runHook postInstall
'';
desktopItems = makeDesktopItem {
name = pname;
exec = pname;
icon = pname;
comment = "iNavFlight configuration tool";
desktopName = "iNav Configurator";
genericName = "Flight controller configuration tool";
};
meta = with lib; {
description = "The iNav flight control system configuration tool";
longDescription = ''
A crossplatform configuration tool for the iNav flight control system.
Various types of aircraft are supported by the tool and by iNav, e.g.
quadcopters, hexacopters, octocopters and fixed-wing aircraft.
'';
homepage = "https://github.com/iNavFlight/inav/wiki";
license = licenses.gpl3Only;
maintainers = with maintainers; [ tilcreator wucke13 ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,36 @@
{ stdenv, lib, buildPythonApplication, fetchPypi, matplotlib, numpy, pymavlink, pyserial
, setuptools, wxPython_4_0, billiard, gnureadline }:
buildPythonApplication rec {
pname = "MAVProxy";
version = "1.8.50";
src = fetchPypi {
inherit pname version;
sha256 = "sha256-dTdXmhm6sWZphLhcoKRDQ2Ir0hcu0ev0xCul2O9hAXg=";
};
postPatch = ''
substituteInPlace setup.py \
--replace "opencv-python" ""
'';
propagatedBuildInputs = [
matplotlib
numpy
pymavlink
pyserial
setuptools
wxPython_4_0
] ++ lib.optionals stdenv.isDarwin [ billiard gnureadline ];
# No tests
doCheck = false;
meta = with lib; {
description = "MAVLink proxy and command line ground station";
homepage = "https://github.com/ArduPilot/MAVProxy";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ lopsided98 ];
};
}

View file

@ -0,0 +1,59 @@
{ lib, stdenv, fetchurl, makeDesktopItem, makeWrapper, unzip, mono }:
let
pname = "mission-planner";
desktopItem = makeDesktopItem {
name = pname;
exec = pname;
icon = pname;
comment = "MissionPlanner GCS & Ardupilot configuration tool";
desktopName = "MissionPlanner";
genericName = "Ground Control Station";
};
in stdenv.mkDerivation rec {
inherit pname;
version = "1.3.76";
src = fetchurl {
url = "https://firmware.ardupilot.org/Tools/MissionPlanner/MissionPlanner-${version}.zip";
sha256 = "sha256-vdunUGwLjDKf1LDhtyTQAExddecyWc1TdZOyuu0qMlk=";
};
nativeBuildInputs = [ makeWrapper mono unzip ];
sourceRoot = ".";
AOT_FILES = [ "MissionPlanner.exe" "MissionPlanner.*.dll" ];
buildPhase = ''
runHook preBuild
for file in $AOT_FILES
do
mono --aot $file
done
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,opt/mission-planner}
install -m 444 -D mpdesktop150.png $out/share/icons/mission-planner.png
cp -r ${desktopItem}/share/applications $out/share/
mv * $out/opt/mission-planner
makeWrapper ${mono}/bin/mono $out/bin/mission-planner \
--add-flags $out/opt/mission-planner/MissionPlanner.exe
runHook postInstall
'';
meta = with lib; {
description = "An ArduPilot ground station";
longDescription = ''
Full-featured ground station application for the ArduPilot open source
autopilot project. Lets you both flash, configure and control ArduPilot
Plane, Copter and Rover targets.
'';
homepage = "https://ardupilot.org/planner/";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ wucke13 ];
platforms = platforms.all;
};
}

View file

@ -0,0 +1,84 @@
{ lib, mkDerivation, fetchFromGitHub, SDL2
, qtbase, qtcharts, qtlocation, qtserialport, qtsvg, qtquickcontrols2
, qtgraphicaleffects, qtspeech, qtx11extras, qmake, qttools
, gst_all_1, wayland, pkg-config
}:
mkDerivation rec {
pname = "qgroundcontrol";
version = "4.2.1";
qtInputs = [
qtbase qtcharts qtlocation qtserialport qtsvg qtquickcontrols2
qtgraphicaleffects qtspeech qtx11extras
];
gstInputs = with gst_all_1; [
gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad wayland
];
buildInputs = [ SDL2 ] ++ gstInputs ++ qtInputs;
nativeBuildInputs = [ pkg-config qmake qttools ];
preConfigure = ''
mkdir build
cd build
'';
qmakeFlags = [
"CONFIG+=StableBuild"
# Default install tries to copy Qt files into package
"CONFIG+=QGC_DISABLE_BUILD_SETUP"
# Tries to download x86_64-only prebuilt binaries
"DEFINES+=DISABLE_AIRMAP"
"../qgroundcontrol.pro"
];
installPhase = ''
runHook preInstall
cd ..
mkdir -p $out/share/applications
sed 's/Exec=.*$/Exec=QGroundControl/g' --in-place deploy/qgroundcontrol.desktop
cp -v deploy/qgroundcontrol.desktop $out/share/applications
mkdir -p $out/bin
cp -v build/staging/QGroundControl "$out/bin/"
mkdir -p $out/share/qgroundcontrol
cp -rv resources/ $out/share/qgroundcontrol
mkdir -p $out/share/pixmaps
cp -v resources/icons/qgroundcontrol.png $out/share/pixmaps
runHook postInstall
'';
postInstall = ''
qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0")
'';
# TODO: package mavlink so we can build from a normal source tarball
src = fetchFromGitHub {
owner = "mavlink";
repo = pname;
rev = "v${version}";
sha256 = "sha256-7POrc6RUm3GVx3KuPUBNbKRUvUmA2UkEL7ezQVQt/yo=";
fetchSubmodules = true;
};
patches = [
# fix build problems caused by https://github.com/mavlink/qgroundcontrol/pull/10132
# remove once updated past 4.2.0
./fix-10132.patch
];
meta = with lib; {
description = "Provides full ground station support and configuration for the PX4 and APM Flight Stacks";
homepage = "http://qgroundcontrol.com/";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ lopsided98 ];
};
}

View file

@ -0,0 +1,62 @@
diff --git a/libs/qmlglsink/gst-plugins-good/ext/qt/gstqsgtexture.cc b/libs/qmlglsink/gst-plugins-good/ext/qt/gstqsgtexture.cc
index 2b314e0..ad1425e 100644
--- a/libs/qmlglsink/gst-plugins-good/ext/qt/gstqsgtexture.cc
+++ b/libs/qmlglsink/gst-plugins-good/ext/qt/gstqsgtexture.cc
@@ -35,7 +35,7 @@ GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
GstQSGTexture::GstQSGTexture ()
{
- static volatile gsize _debug;
+ static gsize _debug;
initializeOpenGLFunctions();
diff --git a/libs/qmlglsink/gst-plugins-good/ext/qt/gstqtglutility.cc b/libs/qmlglsink/gst-plugins-good/ext/qt/gstqtglutility.cc
index 3a68576..5203d13 100644
--- a/libs/qmlglsink/gst-plugins-good/ext/qt/gstqtglutility.cc
+++ b/libs/qmlglsink/gst-plugins-good/ext/qt/gstqtglutility.cc
@@ -58,7 +58,7 @@ gst_qt_get_gl_display ()
{
GstGLDisplay *display = NULL;
QGuiApplication *app = static_cast<QGuiApplication *> (QCoreApplication::instance ());
- static volatile gsize _debug;
+ static gsize _debug;
g_assert (app != NULL);
diff --git a/libs/qmlglsink/gst-plugins-good/ext/qt/qtitem.cc b/libs/qmlglsink/gst-plugins-good/ext/qt/qtitem.cc
index f031b36..3c6722a 100644
--- a/libs/qmlglsink/gst-plugins-good/ext/qt/qtitem.cc
+++ b/libs/qmlglsink/gst-plugins-good/ext/qt/qtitem.cc
@@ -106,7 +106,7 @@ void InitializeSceneGraph::run()
QtGLVideoItem::QtGLVideoItem()
{
- static volatile gsize _debug;
+ static gsize _debug;
if (g_once_init_enter (&_debug)) {
GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "qtglwidget", 0, "Qt GL Widget");
diff --git a/libs/qmlglsink/gst-plugins-good/ext/qt/qtwindow.cc b/libs/qmlglsink/gst-plugins-good/ext/qt/qtwindow.cc
index 8bf14ae..2f88aa9 100644
--- a/libs/qmlglsink/gst-plugins-good/ext/qt/qtwindow.cc
+++ b/libs/qmlglsink/gst-plugins-good/ext/qt/qtwindow.cc
@@ -107,7 +107,7 @@ QtGLWindow::QtGLWindow ( QWindow * parent, QQuickWindow *src ) :
QQuickWindow( parent ), source (src)
{
QGuiApplication *app = static_cast<QGuiApplication *> (QCoreApplication::instance ());
- static volatile gsize _debug;
+ static gsize _debug;
g_assert (app != NULL);
@@ -156,7 +156,7 @@ QtGLWindow::beforeRendering()
g_mutex_lock (&this->priv->lock);
- static volatile gsize once = 0;
+ static gsize once = 0;
if (g_once_init_enter(&once)) {
this->priv->start = QDateTime::currentDateTime().toMSecsSinceEpoch();
g_once_init_leave(&once,1);

View file

@ -0,0 +1,44 @@
{ lib, stdenv, python3, qt5, fetchFromGitHub, wrapPython, pyqt5, pyserial, dos2unix }:
stdenv.mkDerivation rec {
pname = "sumorobot-manager";
version = "1.0.0";
src = fetchFromGitHub {
owner = "robokoding";
repo = pname;
rev = "v${version}";
sha256 = "07snhwmqqp52vdgr66vx50zxx0nmpmns5cdjgh50hzlhji2z1fl9";
};
buildInputs = [ python3 ];
pythonPath = [
pyqt5.dev pyserial
];
nativeBuildInputs = [ wrapPython qt5.wrapQtAppsHook dos2unix ];
buildPhase = "true";
installPhase = ''
mkdir -p $out/opt/sumorobot-manager
cp -r main.py lib res $out/opt/sumorobot-manager
chmod -R 644 $out/opt/sumorobot-manager/lib/*
mkdir $out/bin
dos2unix $out/opt/sumorobot-manager/main.py
makeQtWrapper $out/opt/sumorobot-manager/main.py $out/bin/sumorobot-manager \
--chdir "$out/opt/sumorobot-manager"
'';
preFixup = ''
patchShebangs $out/opt/sumorobot-manager/main.py
wrapPythonProgramsIn "$out/opt" "$pythonPath"
'';
meta = with lib; {
description = "Desktop App for managing SumoRobots";
homepage = "https://www.robokoding.com/kits/sumorobot/sumomanager/";
license = licenses.mit;
maintainers = with maintainers; [ abbradar ];
};
}

View file

@ -0,0 +1,36 @@
{ lib, stdenv, fetchFromGitHub, cmake, ace
}:
stdenv.mkDerivation rec {
pname = "yarp";
version = "2.3.70.2";
src = fetchFromGitHub {
owner = "robotology";
repo = "yarp";
rev = "v${version}";
sha256 = "0mphh899niy30xbjjwi9xpsliq8mladfldbbbjfngdrqfhiray1a";
};
nativeBuildInputs = [ cmake ];
buildInputs = [ ace ];
cmakeFlags = [
"-DYARP_COMPILE_UNMAINTAINED:BOOL=ON"
"-DCREATE_YARPC:BOOL=ON"
"-DCREATE_YARPCXX:BOOL=ON"
];
# since we cant expand $out in cmakeFlags
preConfigure = ''cmakeFlags="$cmakeFlags -DCMAKE_INSTALL_LIBDIR=$out/lib"'';
postInstall = "mv ./$out/lib/*.so $out/lib/";
meta = {
description = "Yet Another Robot Platform";
homepage = "http://yarp.it";
license = lib.licenses.lgpl21;
platforms = lib.platforms.linux;
maintainers = [ lib.maintainers.nico202 ];
};
}