From a997e53d8bd56b75ea85819195cb815c7ab070e7 Mon Sep 17 00:00:00 2001 From: Jonas Kvinge Date: Wed, 9 Dec 2020 00:27:37 +0100 Subject: [PATCH] Update RPM spec for Qt 6 --- .github/workflows/ccpp.yml | 106 ++++++++++++++++++++++++++++++++--- CMakeLists.txt | 3 +- cmake/Deb.cmake | 3 +- cmake/Rpm.cmake | 2 +- dist/CMakeLists.txt | 6 ++ dist/unix/strawberry.spec.in | 52 ++++++++++------- 6 files changed, 142 insertions(+), 30 deletions(-) diff --git a/.github/workflows/ccpp.yml b/.github/workflows/ccpp.yml index 5dd28ac82..821355712 100644 --- a/.github/workflows/ccpp.yml +++ b/.github/workflows/ccpp.yml @@ -223,8 +223,8 @@ jobs: run: rpmbuild -ba ../dist/unix/strawberry.spec - build_opensuse_tumbleweed: - name: Build openSUSE Tumbleweed + build_opensuse_tumbleweed_qt5: + name: Build openSUSE Tumbleweed Qt 5 runs-on: ubuntu-latest container: image: opensuse/tumbleweed @@ -287,7 +287,7 @@ jobs: - name: Configure CMake shell: bash working-directory: build - run: cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE + run: cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBUILD_WITH_QT5=ON - name: Create source tarball working-directory: build run: ../dist/scripts/maketarball.sh @@ -301,8 +301,8 @@ jobs: run: rpmbuild -ba ../dist/unix/strawberry.spec - build_opensuse_qt6: - name: Build openSUSE Qt 6 + build_opensuse_tumbleweed_qt6: + name: Build openSUSE Tumbleweed Qt 6 runs-on: ubuntu-latest container: image: opensuse/tumbleweed @@ -352,6 +352,7 @@ jobs: qt6-x11extras-devel qt6-base-common-devel qt6-sql-sqlite + qt6-linguist-devel libcdio-devel libgpod-devel libmtp-devel @@ -367,9 +368,17 @@ jobs: shell: bash working-directory: build run: cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBUILD_WITH_QT6=ON - - name: Build + - name: Create source tarball working-directory: build - run: cmake --build . --config $BUILD_TYPE + run: ../dist/scripts/maketarball.sh + - name: Create RPM build sources directories + run: mkdir -p ~/rpmbuild/SOURCES /usr/src/packages/SOURCES + - name: Copy source tarball + working-directory: build + run: cp strawberry-*.tar.xz /usr/src/packages/SOURCES/ + - name: Build RPM + working-directory: build + run: rpmbuild -ba ../dist/unix/strawberry.spec build_fedora_32: @@ -604,6 +613,89 @@ jobs: run: rpmbuild -ba ../dist/unix/strawberry.spec + build_mageia_7: + name: Build Mageia 7 + runs-on: ubuntu-latest + container: + image: mageia:7 + steps: + - uses: actions/checkout@v1.2.0 + + - name: Update packages + run: urpmi.update --auto -a + + - name: Configure auto update + run: urpmi --auto --auto-update + + - name: Install Mageia dependencies + run: > + urpmi --auto --force + urpmi-debuginfo-install + git + tar + rpmdevtools + make + cmake + glibc + binutils + gcc-c++ + man + gettext + notification-daemon + dbus-devel + libgnutls-devel + lib64boost-devel + lib64protobuf-devel + protobuf-compiler + lib64sqlite3-devel + lib64alsa2-devel + lib64pulseaudio-devel + lib64notify-devel + lib64qt5core-devel + lib64qt5gui-devel + lib64qt5widgets-devel + lib64qt5network-devel + lib64qt5concurrent-devel + lib64qt5sql-devel + lib64qt5dbus-devel + lib64qt5x11extras-devel + lib64qt5help-devel + libqt5test-devel + lib64gstreamer1.0-devel + lib64gstreamer-plugins-base1.0-devel + lib64cdio-devel + lib64gpod-devel + lib64mtp-devel + lib64raw1394-devel + lib64chromaprint-devel + libfftw-devel + desktop-file-utils + appstream-util + libappstream-glib8 + hicolor-icon-theme + qt5ct + lib64mesaegl1 + - name: Create Build Environment + shell: bash + run: cmake -E make_directory build + - name: Configure CMake + shell: bash + working-directory: build + run: cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE + - name: Create source tarball + working-directory: build + run: ../dist/scripts/maketarball.sh + - name: Create RPM build sources directories + working-directory: build + run: mkdir -p ~/rpmbuild/SOURCES /usr/src/packages/SOURCES + - name: Copy source tarball + working-directory: build + run: cp strawberry-*.tar.xz ~/rpmbuild/SOURCES/ + - name: Build RPM + working-directory: build + run: rpmbuild -ba ../dist/unix/strawberry.spec + + build_debian_buster: name: Build Debian Buster runs-on: ubuntu-latest diff --git a/CMakeLists.txt b/CMakeLists.txt index 1e369d937..b46afc90c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -180,10 +180,11 @@ endif(OPTIONAL_COMPONENTS) set(QtCore_LIBRARIES Qt${QT_MAJOR_VERSION}::Core) set(QtConcurrent_LIBRARIES Qt${QT_MAJOR_VERSION}::Concurrent) +set(QtGui_LIBRARIES Qt${QT_MAJOR_VERSION}::Gui) set(QtWidgets_LIBRARIES Qt${QT_MAJOR_VERSION}::Widgets) set(QtNetwork_LIBRARIES Qt${QT_MAJOR_VERSION}::Network) set(QtSql_LIBRARIES Qt${QT_MAJOR_VERSION}::Sql) -set(QT_LIBRARIES Qt${QT_MAJOR_VERSION}::Core Qt${QT_MAJOR_VERSION}::Concurrent Qt${QT_MAJOR_VERSION}::Widgets Qt${QT_MAJOR_VERSION}::Network Qt${QT_MAJOR_VERSION}::Sql) +set(QT_LIBRARIES Qt${QT_MAJOR_VERSION}::Core Qt${QT_MAJOR_VERSION}::Concurrent Qt${QT_MAJOR_VERSION}::Gui Qt${QT_MAJOR_VERSION}::Widgets Qt${QT_MAJOR_VERSION}::Network Qt${QT_MAJOR_VERSION}::Sql) if(Qt${QT_MAJOR_VERSION}DBus_FOUND) set(QtDBus_LIBRARIES Qt${QT_MAJOR_VERSION}::DBus) list(APPEND QT_LIBRARIES Qt${QT_MAJOR_VERSION}::DBus) diff --git a/cmake/Deb.cmake b/cmake/Deb.cmake index 9b8c85e8e..8056b7d65 100644 --- a/cmake/Deb.cmake +++ b/cmake/Deb.cmake @@ -9,8 +9,7 @@ if (LSB_RELEASE_EXEC AND DPKG_BUILDPACKAGE) OUTPUT_STRIP_TRAILING_WHITESPACE ) - if (DEB_CODENAME) - configure_file(${CMAKE_SOURCE_DIR}/debian/changelog.in ${CMAKE_SOURCE_DIR}/debian/changelog) + if (DEB_CODENAME AND DEB_DATE) add_custom_target(deb WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} COMMAND ${DPKG_BUILDPACKAGE} -b -d -uc -us diff --git a/cmake/Rpm.cmake b/cmake/Rpm.cmake index 032b61c0d..c160eae9f 100644 --- a/cmake/Rpm.cmake +++ b/cmake/Rpm.cmake @@ -57,7 +57,7 @@ if (LSB_RELEASE_EXEC AND RPMBUILD_EXEC) set(RPM_DISTRO ${DIST_NAME} CACHE STRING "Suffix of the rpm file") endif() message(STATUS "RPM Suffix: ${RPM_DISTRO}") - configure_file(${CMAKE_SOURCE_DIR}/dist/unix/strawberry.spec.in ${CMAKE_SOURCE_DIR}/dist/unix/strawberry.spec @ONLY) + add_custom_target(rpm COMMAND ${CMAKE_SOURCE_DIR}/dist/scripts/maketarball.sh COMMAND ${CMAKE_COMMAND} -E copy strawberry-${STRAWBERRY_VERSION_PACKAGE}.tar.xz ${RPMBUILD_DIR}/SOURCES/ diff --git a/dist/CMakeLists.txt b/dist/CMakeLists.txt index 764b9e9ee..754aa4f07 100644 --- a/dist/CMakeLists.txt +++ b/dist/CMakeLists.txt @@ -1,4 +1,10 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/maketarball.sh.in ${CMAKE_CURRENT_SOURCE_DIR}/scripts/maketarball.sh @ONLY) +if(RPM_DISTRO AND RPM_DATE) + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/unix/strawberry.spec.in ${CMAKE_CURRENT_SOURCE_DIR}/unix/strawberry.spec @ONLY) +endif(RPM_DISTRO AND RPM_DATE) +if(DEB_CODENAME AND DEB_DATE) + configure_file(${CMAKE_SOURCE_DIR}/debian/changelog.in ${CMAKE_SOURCE_DIR}/debian/changelog) +endif(DEB_CODENAME AND DEB_DATE) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/unix/PKGBUILD.in ${CMAKE_CURRENT_SOURCE_DIR}/unix/PKGBUILD @ONLY) if (APPLE) diff --git a/dist/unix/strawberry.spec.in b/dist/unix/strawberry.spec.in index ed78d9a69..60858d0be 100644 --- a/dist/unix/strawberry.spec.in +++ b/dist/unix/strawberry.spec.in @@ -26,14 +26,11 @@ BuildRequires: update-desktop-files %if 0%{?suse_version} BuildRequires: appstream-glib %else -%if 0%{?fedora} || 0%{?rhel_version} || 0%{?centos} + %if 0%{?fedora} || 0%{?rhel_version} || 0%{?centos} BuildRequires: libappstream-glib -%else + %else BuildRequires: appstream-util -%endif -%endif -%if 0%{?suse_version} || 0%{?fedora_version} || 0%{?mageia} -BuildRequires: cmake(Qt5LinguistTools) + %endif %endif BuildRequires: pkgconfig BuildRequires: pkgconfig(glib-2.0) @@ -49,15 +46,29 @@ BuildRequires: pkgconfig(sqlite3) >= 3.9 BuildRequires: pkgconfig(taglib) %endif BuildRequires: pkgconfig(fftw3) -BuildRequires: pkgconfig(Qt5Core) -BuildRequires: pkgconfig(Qt5Gui) -BuildRequires: pkgconfig(Qt5Widgets) -BuildRequires: pkgconfig(Qt5Concurrent) -BuildRequires: pkgconfig(Qt5Network) -BuildRequires: pkgconfig(Qt5Sql) -BuildRequires: pkgconfig(Qt5X11Extras) -BuildRequires: pkgconfig(Qt5DBus) -BuildRequires: pkgconfig(Qt5Test) +%if "@QT_MAJOR_VERSION@" == "5" && ( 0%{?fedora} || 0%{?rhel_version} || 0%{?centos} ) +BuildRequires: pkgconfig(Qt@QT_MAJOR_VERSION@Core) +BuildRequires: pkgconfig(Qt@QT_MAJOR_VERSION@Gui) +BuildRequires: pkgconfig(Qt@QT_MAJOR_VERSION@Widgets) +BuildRequires: pkgconfig(Qt@QT_MAJOR_VERSION@Concurrent) +BuildRequires: pkgconfig(Qt@QT_MAJOR_VERSION@Network) +BuildRequires: pkgconfig(Qt@QT_MAJOR_VERSION@Sql) +BuildRequires: pkgconfig(Qt@QT_MAJOR_VERSION@X11Extras) +BuildRequires: pkgconfig(Qt@QT_MAJOR_VERSION@DBus) +BuildRequires: pkgconfig(Qt@QT_MAJOR_VERSION@Test) +%else +BuildRequires: cmake(Qt@QT_MAJOR_VERSION@Core) +BuildRequires: cmake(Qt@QT_MAJOR_VERSION@Gui) +BuildRequires: cmake(Qt@QT_MAJOR_VERSION@Widgets) +BuildRequires: cmake(Qt@QT_MAJOR_VERSION@Concurrent) +BuildRequires: cmake(Qt@QT_MAJOR_VERSION@Network) +BuildRequires: cmake(Qt@QT_MAJOR_VERSION@Sql) +BuildRequires: cmake(Qt@QT_MAJOR_VERSION@DBus) +BuildRequires: cmake(Qt@QT_MAJOR_VERSION@Test) +%endif +%if 0%{?suse_version} || 0%{?fedora_version} || 0%{?mageia} +BuildRequires: cmake(Qt@QT_MAJOR_VERSION@LinguistTools) +%endif BuildRequires: pkgconfig(gstreamer-1.0) BuildRequires: pkgconfig(gstreamer-app-1.0) BuildRequires: pkgconfig(gstreamer-audio-1.0) @@ -70,14 +81,17 @@ BuildRequires: pkgconfig(libpulse) BuildRequires: pkgconfig(libcdio) BuildRequires: pkgconfig(libgpod-1.0) BuildRequires: pkgconfig(libmtp) -BuildRequires: pkgconfig(libnotify) -BuildRequires: pkgconfig(libudf) %if 0%{?suse_version} || 0%{?fedora_version} BuildRequires: pkgconfig(libvlc) %endif %if 0%{?suse_version} -Requires: libQt5Sql5-sqlite + %if "@QT_MAJOR_VERSION@" == "6" +Requires: qt6-sql-sqlite + %endif + %if "@QT_MAJOR_VERSION@" == "5" +Requires: libQt5Sql5-sqlite + %endif %endif %description @@ -110,7 +124,7 @@ Features: %if 0%{?fedora} || 0%{?rhel_version} || 0%{?centos} export CXXFLAGS="-fPIC $RPM_OPT_FLAGS" %endif -%{cmake} -DCMAKE_BUILD_TYPE:STRING=Release +%{cmake} -DCMAKE_BUILD_TYPE:STRING=Release -DQT_MAJOR_VERSION=@QT_MAJOR_VERSION@ %if 0%{?centos} || 0%{?mageia} %make_build %else