nixpkgs/pkgs/applications/misc/qlcplus/default.nix
Sergei Trofimovich 3f37e3f041 qlcplus: fix gcc-13 build (drop -Werror)
Without the change build fails as
https://hydra.nixos.org/build/250969590:

    chaserrunner.cpp: In member function 'bool ChaserRunner::write(MasterTimer*, QList<Universe*>)':
    chaserrunner.cpp:765:36: error: pointer used after 'void operator delete(void*, std::size_t)' [-Werror=use-after-free]
      765 |             m_runnerSteps.removeOne(step);
          |             ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
2024-02-25 20:17:06 +00:00

58 lines
1.7 KiB
Nix

{ lib, mkDerivation, fetchFromGitHub, fetchpatch, qmake, pkg-config, udev
, qtmultimedia, qtscript, alsa-lib, ola, libftdi1, libusb-compat-0_1
, libsndfile, libmad
}:
mkDerivation rec {
pname = "qlcplus";
version = "4.12.3";
src = fetchFromGitHub {
owner = "mcallegari";
repo = "qlcplus";
rev = "QLC+_${version}";
sha256 = "PB1Y8N1TrJMcS7A2e1nKjsUlAxOYjdJqBhbyuDCAbGs=";
};
patches = [
(fetchpatch {
name = "qt5.15-deprecation-fixes.patch";
url = "https://github.com/mcallegari/qlcplus/commit/e4ce4b0226715876e8e9e3b23785d43689b2bb64.patch";
sha256 = "1zhrg6ava1nyc97xcx75r02zzkxmar0973w4jwkm5ch3iqa8bqnh";
})
];
nativeBuildInputs = [ qmake pkg-config ];
buildInputs = [
udev qtmultimedia qtscript alsa-lib ola libftdi1 libusb-compat-0_1 libsndfile libmad
];
qmakeFlags = [ "INSTALLROOT=$(out)" ];
postPatch = ''
patchShebangs .
sed -i -e '/unix:!macx:INSTALLROOT += \/usr/d' \
-e "s@\$\$LIBSDIR/qt4/plugins@''${qtPluginPrefix}@" \
-e "s@/etc/udev/rules.d@''${out}/lib/udev/rules.d@" \
variables.pri
# Fix gcc-13 build failure by removing blanket -Werror.
fgrep Werror variables.pri
substituteInPlace variables.pri --replace-fail "QMAKE_CXXFLAGS += -Werror" ""
'';
enableParallelBuilding = true;
postInstall = ''
ln -sf $out/lib/*/libqlcplus* $out/lib
'';
meta = with lib; {
description = "A free and cross-platform software to control DMX or analog lighting systems like moving heads, dimmers, scanners etc";
maintainers = [ ];
license = licenses.asl20;
platforms = platforms.all;
homepage = "https://www.qlcplus.org/";
};
}