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,12 @@
{ qtModule
, qtbase
, qtdeclarative
, qtmultimedia
, assimp
}:
qtModule {
pname = "qt3d";
qtInputs = [ qtbase qtdeclarative qtmultimedia ];
propagatedBuildInputs = [ assimp ];
}

View file

@ -0,0 +1,13 @@
{ qtModule
, qtbase
, qtdeclarative
, libiconv
, icu
, openssl
}:
qtModule {
pname = "qt5compat";
qtInputs = [ qtbase qtdeclarative ];
buildInputs = [ libiconv icu openssl openssl ];
}

View file

@ -0,0 +1,222 @@
{ stdenv
, lib
, src
, patches ? [ ]
, version
, coreutils
, bison
, flex
, gdb
, gperf
, lndir
, perl
, pkg-config
, python3
, which
, cmake
, ninja
, ccache
, xmlstarlet
, libproxy
, xlibsWrapper
, xorg
, zstd
, double-conversion
, util-linux
, systemd
, libb2
, md4c
, mtdev
, lksctp-tools
, libselinux
, libsepol
, vulkan-headers
, vulkan-loader
, valgrind
, libthai
, libdrm
, libdatrie
, lttng-ust
, libepoxy
, libiconv
, dbus
, fontconfig
, freetype
, glib
, harfbuzz
, icu
, libX11
, libXcomposite
, libXcursor
, libXext
, libXi
, libXrender
, libinput
, libjpeg
, libpng
, libxcb
, libxkbcommon
, libxml2
, libxslt
, openssl
, pcre
, pcre2
, sqlite
, udev
, xcbutil
, xcbutilimage
, xcbutilkeysyms
, xcbutilrenderutil
, xcbutilwm
, zlib
, at-spi2-core
, unixODBC
, unixODBCDrivers
# optional dependencies
, cups
, libmysqlclient
, postgresql
, withGtk3 ? false
, dconf
, gtk3
# options
, libGLSupported ? true
, libGL
, debug ? false
, developerBuild ? false
}:
let
debugSymbols = debug || developerBuild;
in
stdenv.mkDerivation rec {
pname = "qtbase";
inherit src version;
debug = debugSymbols;
propagatedBuildInputs = [
libxml2
libxslt
openssl
sqlite
zlib
unixODBC
# Text rendering
harfbuzz
icu
# Image formats
libjpeg
libpng
pcre2
pcre
libproxy
xlibsWrapper
zstd
double-conversion
util-linux
systemd
libb2
md4c
mtdev
lksctp-tools
libselinux
libsepol
lttng-ust
vulkan-headers
vulkan-loader
libthai
libdrm
libdatrie
valgrind
dbus
glib
udev
# Text rendering
fontconfig
freetype
# X11 libs
libX11
libXcomposite
libXext
libXi
libXrender
libxcb
libxkbcommon
xcbutil
xcbutilimage
xcbutilkeysyms
xcbutilrenderutil
xcbutilwm
xorg.libXdmcp
xorg.libXtst
xorg.xcbutilcursor
libepoxy
] ++ (with unixODBCDrivers; [
psql
sqlite
mariadb
]) ++ lib.optional libGLSupported libGL;
buildInputs = [
python3
at-spi2-core
libinput
]
++ lib.optional withGtk3 gtk3
++ lib.optional developerBuild gdb
++ lib.optional (cups != null) cups
++ lib.optional (libmysqlclient != null) libmysqlclient
++ lib.optional (postgresql != null) postgresql;
nativeBuildInputs = [ bison flex gperf lndir perl pkg-config which cmake xmlstarlet ninja ];
propagatedNativeBuildInputs = [ lndir ];
enableParallelBuilding = true;
inherit patches;
# https://bugreports.qt.io/browse/QTBUG-97568
postPatch = ''
substituteInPlace src/corelib/CMakeLists.txt --replace /bin/ls ${coreutils}/bin/ls
'';
preConfigure = ''
export LD_LIBRARY_PATH="$PWD/build/lib:$PWD/build/plugins/platforms''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
'';
qtPluginPrefix = "lib/qt-6/plugins";
qtQmlPrefix = "lib/qt-6/qml";
cmakeFlags = [
"-DINSTALL_PLUGINSDIR=${qtPluginPrefix}"
"-DINSTALL_QMLDIR=${qtQmlPrefix}"
"-DQT_FEATURE_journald=ON"
"-DQT_FEATURE_sctp=ON"
"-DQT_FEATURE_libproxy=ON"
"-DQT_FEATURE_system_sqlite=ON"
"-DQT_FEATURE_vulkan=ON"
"-DQT_FEATURE_openssl_linked=ON"
];
outputs = [ "out" "dev" ];
postInstall = ''
mkdir -p $dev
mv $out/mkspecs $out/bin $out/libexec $dev/
'';
dontStrip = debugSymbols;
setupHook = ../hooks/qtbase-setup-hook.sh;
meta = with lib; {
homepage = "https://www.qt.io/";
description = "A cross-platform application framework for C++";
license = with licenses; [ fdl13 gpl2 lgpl21 lgpl3 ];
maintainers = with maintainers; [ milahu nickcao ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,9 @@
{ qtModule
, qtbase
, qtdeclarative
}:
qtModule {
pname = "qtcharts";
qtInputs = [ qtbase qtdeclarative ];
}

View file

@ -0,0 +1,15 @@
{ qtModule
, lib
, stdenv
, qtbase
, qtdeclarative
, bluez
, pkg-config
}:
qtModule {
pname = "qtconnectivity";
qtInputs = [ qtbase qtdeclarative ];
buildInputs = [ bluez ];
nativeBuildInputs = [ pkg-config ];
}

View file

@ -0,0 +1,9 @@
{ qtModule
, qtbase
, qtdeclarative
}:
qtModule {
pname = "qtdatavis3d";
qtInputs = [ qtbase qtdeclarative ];
}

View file

@ -0,0 +1,19 @@
{ qtModule
, qtbase
, qtshadertools
, openssl
, python3
}:
qtModule {
pname = "qtdeclarative";
qtInputs = [ qtbase qtshadertools ];
propagatedBuildInputs = [ openssl python3 ];
preConfigure = ''
export LD_LIBRARY_PATH="$PWD/build/lib''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
'';
postInstall = ''
substituteInPlace "$out/lib/cmake/Qt6Qml/Qt6QmlMacros.cmake" \
--replace ''\'''${QT6_INSTALL_PREFIX}' "$out"
'';
}

View file

@ -0,0 +1,9 @@
{ qtModule
, qtdeclarative
}:
qtModule {
pname = "qtdoc";
qtInputs = [ qtdeclarative ];
outputs = [ "out" ];
}

View file

@ -0,0 +1,13 @@
{ qtModule
, qtbase
, libwebp
, jasper
, libmng
, libtiff
}:
qtModule {
pname = "qtimageformats";
qtInputs = [ qtbase ];
buildInputs = [ libwebp jasper libmng libtiff ];
}

View file

@ -0,0 +1,8 @@
{ qtModule
, qtbase
}:
qtModule {
pname = "qtlanguageserver";
qtInputs = [ qtbase ];
}

View file

@ -0,0 +1,9 @@
{ qtModule
, qtbase
, qtdeclarative
}:
qtModule {
pname = "qtlottie";
qtInputs = [ qtbase qtdeclarative ];
}

View file

@ -0,0 +1,24 @@
{ qtModule
, lib
, stdenv
, qtbase
, qtdeclarative
, qtshadertools
, qtsvg
, pkg-config
, alsa-lib
, gstreamer
, gst-plugins-base
, libpulseaudio
, wayland
, elfutils
, libunwind
, orc
}:
qtModule {
pname = "qtmultimedia";
qtInputs = [ qtbase qtdeclarative qtsvg qtshadertools ];
nativeBuildInputs = [ pkg-config ];
buildInputs = [ gstreamer gst-plugins-base libpulseaudio elfutils libunwind alsa-lib wayland orc ];
}

View file

@ -0,0 +1,6 @@
{ qtModule, qtbase }:
qtModule {
pname = "qtnetworkauth";
qtInputs = [ qtbase ];
}

View file

@ -0,0 +1,14 @@
{ qtModule
, qtbase
, qtdeclarative
, qtserialport
, pkg-config
, openssl
}:
qtModule {
pname = "qtpositioning";
qtInputs = [ qtbase qtdeclarative qtserialport ];
nativeBuildInputs = [ pkg-config ];
buildInputs = [ openssl ];
}

View file

@ -0,0 +1,11 @@
{ qtModule
, qtbase
, qtdeclarative
, openssl
}:
qtModule {
pname = "qtquick3d";
qtInputs = [ qtbase qtdeclarative ];
buildInputs = [ openssl ];
}

View file

@ -0,0 +1,9 @@
{ qtModule
, qtbase
, qtdeclarative
}:
qtModule {
pname = "qtquicktimeline";
qtInputs = [ qtbase qtdeclarative ];
}

View file

@ -0,0 +1,9 @@
{ qtModule
, qtbase
, qtdeclarative
}:
qtModule {
pname = "qtremoteobjects";
qtInputs = [ qtbase qtdeclarative ];
}

View file

@ -0,0 +1,6 @@
{ qtModule, qtbase, qtdeclarative }:
qtModule {
pname = "qtscxml";
qtInputs = [ qtbase qtdeclarative ];
}

View file

@ -0,0 +1,10 @@
{ qtModule
, qtbase
, qtdeclarative
, qtsvg
}:
qtModule {
pname = "qtsensors";
qtInputs = [ qtbase qtdeclarative qtsvg ];
}

View file

@ -0,0 +1,6 @@
{ qtModule, qtbase, qtserialport }:
qtModule {
pname = "qtserialbus";
qtInputs = [ qtbase qtserialport ];
}

View file

@ -0,0 +1,14 @@
{ qtModule
, stdenv
, lib
, qtbase
, udev
, pkg-config
}:
qtModule {
pname = "qtserialport";
qtInputs = [ qtbase ];
nativeBuildInputs = [ pkg-config ];
propagatedBuildInputs = [ udev ];
}

View file

@ -0,0 +1,8 @@
{ qtModule
, qtbase
}:
qtModule {
pname = "qtshadertools";
qtInputs = [ qtbase ];
}

View file

@ -0,0 +1,15 @@
{ qtModule
, qtbase
, libwebp
, jasper
, libmng
, zlib
, pkg-config
}:
qtModule {
pname = "qtsvg";
qtInputs = [ qtbase ];
buildInputs = [ libwebp jasper libmng zlib ];
nativeBuildInputs = [ pkg-config ];
}

View file

@ -0,0 +1,11 @@
{ qtModule
, stdenv
, lib
, qtbase
, qtdeclarative
}:
qtModule {
pname = "qttools";
qtInputs = [ qtbase qtdeclarative ];
}

View file

@ -0,0 +1,8 @@
{ qtModule
, qttools
}:
qtModule {
pname = "qttranslations";
qtInputs = [ qttools ];
}

View file

@ -0,0 +1,15 @@
{ qtModule
, qtbase
, qtdeclarative
, qtsvg
, hunspell
, pkg-config
}:
qtModule {
pname = "qtvirtualkeyboard";
qtInputs = [ qtbase qtdeclarative qtsvg ];
propagatedBuildInputs = [ hunspell ];
nativeBuildInputs = [ pkg-config ];
outputs = [ "out" ];
}

View file

@ -0,0 +1,16 @@
{ qtModule
, qtbase
, qtquick3d
, qtdeclarative
, wayland
, pkg-config
, xlibsWrapper
, libdrm
}:
qtModule {
pname = "qtwayland";
qtInputs = [ qtbase qtdeclarative ];
buildInputs = [ wayland xlibsWrapper libdrm ];
nativeBuildInputs = [ pkg-config ];
}

View file

@ -0,0 +1,12 @@
{ qtModule
, qtbase
, qtdeclarative
, qtwebsockets
, openssl
}:
qtModule {
pname = "qtwebchannel";
qtInputs = [ qtbase qtdeclarative qtwebsockets ];
buildInputs = [ openssl ];
}

View file

@ -0,0 +1,244 @@
{ qtModule
, qtdeclarative
, qtwebchannel
, qtpositioning
, qtwebsockets
, bison
, coreutils
, flex
, git
, gperf
, ninja
, pkg-config
, python3
, which
, nodejs
, qtbase
, perl
, xorg
, libXcursor
, libXScrnSaver
, libXrandr
, libXtst
, libxshmfence
, libXi
, fontconfig
, freetype
, harfbuzz
, icu
, dbus
, libdrm
, zlib
, minizip
, libjpeg
, libpng
, libtiff
, libwebp
, libopus
, jsoncpp
, protobuf
, libvpx
, srtp
, snappy
, nss
, libevent
, openssl
, alsa-lib
, pulseaudio
, libcap
, pciutils
, systemd
, pipewire
, gn
, cups
, openbsm
, runCommand
, writeScriptBin
, ffmpeg
, lib
, stdenv
, fetchpatch
, glib
, libxml2
, libxslt
, lcms2
, re2
, libkrb5
, xkeyboard_config
, enableProprietaryCodecs ? true
}:
qtModule rec {
pname = "qtwebengine";
qtInputs = [ qtdeclarative qtwebchannel qtwebsockets qtpositioning ];
nativeBuildInputs = [
bison
coreutils
flex
git
gperf
ninja
pkg-config
(python3.withPackages (ps: with ps; [ html5lib ]))
which
gn
nodejs
];
doCheck = true;
outputs = [ "out" "dev" ];
dontUseGnConfigure = true;
# ninja builds some components with -Wno-format,
# which cannot be set at the same time as -Wformat-security
hardeningDisable = [ "format" ];
patches = [
# drop UCHAR_TYPE override to fix build with system ICU
(fetchpatch {
url = "https://code.qt.io/cgit/qt/qtwebengine-chromium.git/patch/?id=75f0f4eb";
stripLen = 1;
extraPrefix = "src/3rdparty/";
sha256 = "sha256-3aMcVXJg+v+UbsSO27g6MA6/uVkWUxyQsMD1EzlzXDs=";
})
];
postPatch = ''
# Patch Chromium build tools
(
cd src/3rdparty/chromium;
# Manually fix unsupported shebangs
substituteInPlace third_party/harfbuzz-ng/src/src/update-unicode-tables.make \
--replace "/usr/bin/env -S make -f" "/usr/bin/make -f" || true
substituteInPlace third_party/webgpu-cts/src/tools/deno \
--replace "/usr/bin/env -S deno" "/usr/bin/deno" || true
patchShebangs .
)
sed -i -e '/lib_loader.*Load/s!"\(libudev\.so\)!"${lib.getLib systemd}/lib/\1!' \
src/3rdparty/chromium/device/udev_linux/udev?_loader.cc
sed -i -e '/libpci_loader.*Load/s!"\(libpci\.so\)!"${pciutils}/lib/\1!' \
src/3rdparty/chromium/gpu/config/gpu_info_collector_linux.cc
substituteInPlace src/3rdparty/chromium/ui/events/ozone/layout/xkb/xkb_keyboard_layout_engine.cc \
--replace "/usr/share/X11/xkb" "${xkeyboard_config}/share/X11/xkb"
# Patch library paths in sources
substituteInPlace src/core/web_engine_library_info.cpp \
--replace "QLibraryInfo::path(QLibraryInfo::DataPath)" "\"$out\"" \
--replace "QLibraryInfo::path(QLibraryInfo::TranslationsPath)" "\"$out/translations\"" \
--replace "QLibraryInfo::path(QLibraryInfo::LibraryExecutablesPath)" "\"$out/libexec\""
'';
cmakeFlags = [
"-DQT_FEATURE_qtpdf_build=ON"
"-DQT_FEATURE_qtpdf_widgets_build=ON"
"-DQT_FEATURE_qtpdf_quick_build=ON"
"-DQT_FEATURE_pdf_v8=ON"
"-DQT_FEATURE_pdf_xfa=ON"
"-DQT_FEATURE_pdf_xfa_bmp=ON"
"-DQT_FEATURE_pdf_xfa_gif=ON"
"-DQT_FEATURE_pdf_xfa_png=ON"
"-DQT_FEATURE_pdf_xfa_tiff=ON"
"-DQT_FEATURE_webengine_system_icu=ON"
"-DQT_FEATURE_webengine_system_libevent=ON"
"-DQT_FEATURE_webengine_system_libxml=ON"
"-DQT_FEATURE_webengine_system_ffmpeg=ON"
# android only. https://bugreports.qt.io/browse/QTBUG-100293
# "-DQT_FEATURE_webengine_native_spellchecker=ON"
"-DQT_FEATURE_webengine_sanitizer=ON"
"-DQT_FEATURE_webengine_webrtc_pipewire=ON"
"-DQT_FEATURE_webengine_kerberos=ON"
] ++ lib.optional enableProprietaryCodecs "-DQT_FEATURE_webengine_proprietary_codecs=ON";
propagatedBuildInputs = [
# Image formats
libjpeg
libpng
libtiff
libwebp
# Video formats
srtp
libvpx
# Audio formats
libopus
# Text rendering
harfbuzz
icu
openssl
glib
libxml2
libxslt
lcms2
re2
libevent
ffmpeg
dbus
zlib
minizip
snappy
nss
protobuf
jsoncpp
# Audio formats
alsa-lib
pulseaudio
# Text rendering
fontconfig
freetype
libcap
pciutils
# X11 libs
xorg.xrandr
libXScrnSaver
libXcursor
libXrandr
xorg.libpciaccess
libXtst
xorg.libXcomposite
xorg.libXdamage
libdrm
xorg.libxkbfile
libxshmfence
libXi
xorg.libXext
# Pipewire
pipewire
libkrb5
];
buildInputs = [
cups
];
requiredSystemFeatures = [ "big-parallel" ];
postInstall = ''
# This is required at runtime
mkdir $out/libexec
mv $dev/libexec/QtWebEngineProcess $out/libexec
'';
meta = with lib; {
broken = (stdenv.isLinux && stdenv.isAarch64);
description = "A web engine based on the Chromium web browser";
platforms = platforms.linux;
# This build takes a long time; particularly on slow architectures
# 1 hour on 32x3.6GHz -> maybe 12 hours on 4x2.4GHz
timeout = 24 * 3600;
};
}

View file

@ -0,0 +1,11 @@
{ qtModule
, qtbase
, qtdeclarative
, openssl
}:
qtModule {
pname = "qtwebsockets";
qtInputs = [ qtbase qtdeclarative ];
buildInputs = [ openssl ];
}

View file

@ -0,0 +1,11 @@
{ lib
, stdenv
, qtModule
, qtdeclarative
, qtwebengine
}:
qtModule {
pname = "qtwebview";
qtInputs = [ qtdeclarative qtwebengine ];
}