File qlcplus-git.spec of Package qlcplus-git
#
# spec file for package qlcplus-git
#
# Copyright (c) 2026 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
# disable debuginfo packages for all target repos (some don't obey repo setup)
%global debug_package %{nil}
Name: qlcplus-git
Version: 4.14.5.20260317.5c447d2
Release: 0
Summary: Q Light Controller Plus - The free DMX lighting console
License: Apache-2.0
Group: Productivity/Multimedia/Other
URL: http://www.qlcplus.org/
Source0: %{name}-%{version}.tar.xz
Patch0: %{name}-udev.patch
%if 0%{?suse_version}
# in openSUSE lrelease-qt6 binary (actually the symlink to it in /usr/bin) is named lrelease6
Patch2: %{name}-lrelease.patch
%endif
BuildRequires: desktop-file-utils
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: cmake
BuildRequires: pkgconfig
BuildRequires: cmake(Qt6)
BuildRequires: cmake(Qt6MultimediaWidgets)
BuildRequires: cmake(Qt6Quick)
BuildRequires: cmake(Qt6Qml)
BuildRequires: cmake(Qt6Test)
BuildRequires: cmake(Qt6Widgets)
BuildRequires: cmake(Qt6PrintSupport)
BuildRequires: cmake(Qt6SerialPort)
BuildRequires: cmake(Qt6Svg)
BuildRequires: cmake(Qt6WebSockets)
BuildRequires: cmake(Qt6LinguistTools)
BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(fftw3)
BuildRequires: pkgconfig(libftdi1)
BuildRequires: pkgconfig(libudev)
BuildRequires: pkgconfig(libusb)
%if %{defined fedora}
BuildRequires: qt6-linguist
BuildRequires: pkgconfig(sndfile)
%else
BuildRequires: cmake(SndFile)
BuildRequires: pkgconfig(libola)
# disable post-build-checks
BuildRequires: -post-build-checks
Requires(post): /sbin/ldconfig
Requires(post): shared-mime-info
Requires(postun): /sbin/ldconfig
Requires(postun): shared-mime-info
%endif
# old package names used in OBS
Conflicts: qlcplus-qt5 qlcplus-qt5-git qlcplus-qt6 qlcplus-qt6-git qlcplus5-git
# current package names used in OBS
Conflicts: qlcplus qlcplus5-git qlcplus5
%description
QLC+ is a fork of the great QLC project written
by Heikki Junnila. This project aims to continue
the development of QLC and to introduce new features.
The primary goal is to bring QLC+ at the level
of other lighting control commercial softwares.
#############################################################################
# Plugins sub-package
#############################################################################
%package -n %{name}-olaplugin
Summary: OLA Plugin for QLC+
Group: Productivity/Multimedia/Other
Requires: %{name}
Requires: ola
%description olaplugin
QLC+ I/O plugin for the OLA (Open Light Architecture) server
#############################################################################
# Preparation
#############################################################################
%prep
%autosetup -p1
#############################################################################
# Remove Unneeded Files/Dirs
#############################################################################
rm -rf debian
rm -rf create-*.sh
rm -rf *.bat
#############################################################################
# Build
#############################################################################
%build
export QTDIR=/usr/lib64/qt6
%cmake -DCMAKE_PREFIX_PATH=%{_libdir}/cmake/Qt6 -DCMAKE_INSTALL_LIBDIR="%_lib"
%cmake_build
#############################################################################
# Install
#############################################################################
%install
%cmake_install
mkdir -p %{buildroot}%{_udevrulesdir}
mv -v %{buildroot}%{_sysconfdir}/udev/rules.d/* %{buildroot}%{_udevrulesdir}
%fdupes %{buildroot}
%post
/sbin/ldconfig
%mime_database_post
%postun
/sbin/ldconfig
%mime_database_post
#############################################################################
# Files
#############################################################################
%files
%license COPYING
%{_bindir}/*
%{_datadir}/qlcplus/translations/*
%{_datadir}/applications/*
%{_datadir}/pixmaps/*
%{_datadir}/qlcplus/fixtures/*
%{_datadir}/qlcplus/inputprofiles/*
%{_datadir}/qlcplus/rgbscripts/*
%{_datadir}/qlcplus/Sample.qxw
%{_datadir}/qlcplus/gobos/*
%{_datadir}/qlcplus/miditemplates/*
%{_datadir}/qlcplus/modifierstemplates/*
%{_datadir}/qlcplus/web/*
%{_datadir}/mime/packages/qlcplus.xml
%{_datadir}/metainfo/*
%{_libdir}/libqlcplusengine.so
%{_libdir}/libqlcpluswebaccess.so
%{_libdir}/libqlcplusui.so
%{_libdir}/qt6/plugins/qlcplus/audio/libsndfileplugin.so
%{_libdir}/qt6/plugins/qlcplus/libenttecwing.so
%{_libdir}/qt6/plugins/qlcplus/libhidplugin.so
%{_libdir}/qt6/plugins/qlcplus/libdmx4linux.so
%{_libdir}/qt6/plugins/qlcplus/libmidiplugin.so
%{_libdir}/qt6/plugins/qlcplus/libdmxusb.so
%{_libdir}/qt6/plugins/qlcplus/libpeperoni.so
%{_libdir}/qt6/plugins/qlcplus/libudmx.so
%{_libdir}/qt6/plugins/qlcplus/libosc.so
%{_libdir}/qt6/plugins/qlcplus/libos2l.so
%{_libdir}/qt6/plugins/qlcplus/libartnet.so
%{_libdir}/qt6/plugins/qlcplus/libe131.so
%{_libdir}/qt6/plugins/qlcplus/libspi.so
%{_libdir}/qt6/plugins/qlcplus/libloopback.so
%{_mandir}/*/*
%{_udevrulesdir}/*
# exclude, as current ola doesn't exist for Fedora nor build for it in OBS
%if 0%{?suse_version}
%files -n %{name}-olaplugin
%{_libdir}/qt6/plugins/qlcplus/libolaio.so
%endif
##############################################################################
# Change Log
##############################################################################
%changelog