Skip to content

Commit

Permalink
ci: enhancements and updates (#3685)
Browse files Browse the repository at this point in the history
* ci: update transferwee from upstream

* chore: separate RPM spec into two files

* ci: enhancements and updates

- move to quay from dockerhub due to pull rate limit
- add debian 12, ubuntu 24.04, fedora 39/40, opensue leap 15.5/15.6
- the building envrinments of appimage/snap/flatpak update to ubuntu 22.04
  • Loading branch information
holazt authored Feb 3, 2025
1 parent a1e5d2e commit 54644df
Show file tree
Hide file tree
Showing 4 changed files with 591 additions and 193 deletions.
49 changes: 35 additions & 14 deletions .github/workflows/Linux-pack.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,17 +20,17 @@ env:
PRODUCT: flameshot
RELEASE: 1
# dockerfiles, see https://github.com/flameshot-org/flameshot-dockerfiles
# docker images, see https://hub.docker.com/r/flameshotorg/ci-building-images
# flameshotorg/ci-building-images or packpack/packpack
# docker images, see https://quay.io/repository/flameshot-org/ci-building
DOCKER_REPO: quay.io/flameshot-org/ci-building
# building tool: https://github.com/flameshot-org/packpack
PACKPACK_REPO: flameshot-org/packpack
# available upload services: wetransfer.com, file.io, 0x0.st
UPLOAD_SERVICE: wetransfer.com

jobs:
deb-pack:
name: Build deb on ${{ matrix.dist.name }} ${{ matrix.dist.arch }}
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
Expand Down Expand Up @@ -175,6 +175,7 @@ jobs:
repository: ${{ env.PACKPACK_REPO }}
path: tools
ref: multiarch
set-safe-directory: $GITHUB_WORKSPACE/tools
- name: Packaging on ${{ matrix.dist.name }} ${{ matrix.dist.arch }}
env:
OS: ${{ matrix.dist.os }}
Expand Down Expand Up @@ -242,7 +243,7 @@ jobs:

rpm-pack:
name: Build rpm on ${{ matrix.dist.name }} ${{ matrix.dist.arch }}
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
Expand All @@ -259,6 +260,12 @@ jobs:
symbol: 40,
arch: x86_64
}
- {
name: opensuse-leap-15.5,
os: opensuse-leap,
symbol: 15.5,
arch: x86_64
}
- {
name: opensuse-leap-15.6,
os: opensuse-leap,
Expand Down Expand Up @@ -295,9 +302,21 @@ jobs:
repository: ${{ env.PACKPACK_REPO }}
path: tools
ref: master
set-safe-directory: $GITHUB_WORKSPACE/tools
- name: Packaging on ${{ matrix.dist.name }} ${{ matrix.dist.arch }}
if: matrix.dist.os == 'fedora'
run: |
cp -r $GITHUB_WORKSPACE/packaging/rpm $GITHUB_WORKSPACE
mkdir $GITHUB_WORKSPACE/rpm
cp $GITHUB_WORKSPACE/packaging/rpm/fedora/flameshot.spec $GITHUB_WORKSPACE/rpm
bash $GITHUB_WORKSPACE/tools/packpack
env:
OS: ${{ matrix.dist.os }}
DIST: ${{ matrix.dist.symbol }}
- name: Packaging on ${{ matrix.dist.name }} ${{ matrix.dist.arch }}
if: matrix.dist.os == 'opensuse-leap'
run: |
mkdir $GITHUB_WORKSPACE/rpm
cp $GITHUB_WORKSPACE/packaging/rpm/opensuse/flameshot.spec $GITHUB_WORKSPACE/rpm
bash $GITHUB_WORKSPACE/tools/packpack
env:
OS: ${{ matrix.dist.os }}
Expand Down Expand Up @@ -359,17 +378,17 @@ jobs:

appimage-pack:
name: Build appimage on ${{ matrix.config.name }}
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
config:
- {
name: ubuntu-20.04,
name: ubuntu-22.04,
os: ubuntu,
symbol: focal,
symbol: jammy,
arch: amd64,
image_repo: flameshotorg/ci-building-images
image_repo: quay.io/flameshot-org/ci-building
}
container:
image: ${{ matrix.config.image_repo }}:${{ matrix.config.os }}-${{ matrix.config.symbol }}
Expand Down Expand Up @@ -414,7 +433,9 @@ jobs:
cmake \
extra-cmake-modules \
build-essential \
qt5-default \
qt5-qmake \
qtbase5-dev \
qtbase5-dev-tools \
qttools5-dev-tools \
qttools5-dev \
libqt5dbus5 \
Expand Down Expand Up @@ -494,8 +515,8 @@ jobs:
overwrite: true

flatpak-pack:
name: Build flatpak on ubuntu-20.04
runs-on: ubuntu-20.04
name: Build flatpak on ubuntu 22.04
runs-on: ubuntu-22.04
steps:
- name: Checkout Source code
if: github.event_name == 'push'
Expand Down Expand Up @@ -561,8 +582,8 @@ jobs:
overwrite: true

snap-pack:
name: Build snap on ubuntu-20.04
runs-on: ubuntu-20.04
name: Build snap on ubuntu 22.04
runs-on: ubuntu-22.04
steps:
- name: Checkout Source code
if: github.event_name == 'push'
Expand Down
Original file line number Diff line number Diff line change
@@ -1,20 +1,9 @@
#
# spec file for package flameshot on fedora, rehl, opensuse leap 15.x
# spec file for package flameshot on fedora, rehl
#

# fedora >= 30, rhel >=7
%define is_rhel_or_fedora (0%{?fedora} && 0%{?fedora} >= 30) || (0%{?rhel} && 0%{?rhel} >= 7)
# openSUSE Leap >= 15.2
%define is_suse_leap (0%{?is_opensuse} && 0%{?sle_version} >= 150200)

Name: flameshot
Version: 12.1.0
%if %{is_rhel_or_fedora}
Release: 1%{?dist}
%endif
%if %{is_suse_leap}
Release: 1
%endif
License: GPLv3+ and ASL 2.0 and GPLv2 and LGPLv3 and Free Art
Summary: Powerful yet simple to use screenshot software
URL: https://github.com/flameshot-org/flameshot
Expand All @@ -23,20 +12,12 @@ Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
BuildRequires: cmake >= 3.13.0
BuildRequires: gcc-c++ >= 7
BuildRequires: fdupes
%if %{is_suse_leap}
BuildRequires: update-desktop-files
BuildRequires: appstream-glib
%endif
%if %{is_rhel_or_fedora}
BuildRequires: libappstream-glib
BuildRequires: ninja-build
%endif
BuildRequires: desktop-file-utils

BuildRequires: cmake(Qt5Core) >= 5.9.0
%if %{is_rhel_or_fedora}
BuildRequires: cmake(KF5GuiAddons) >= 5.89.0
%endif
BuildRequires: cmake(Qt5DBus) >= 5.9.0
BuildRequires: cmake(Qt5Gui) >= 5.9.0
BuildRequires: cmake(Qt5LinguistTools) >= 5.9.0
Expand All @@ -46,16 +27,10 @@ BuildRequires: cmake(Qt5Widgets) >= 5.9.0


Requires: hicolor-icon-theme
%if %{is_rhel_or_fedora}
Requires: qt5-qtbase >= 5.9.0
Requires: qt5-qttools >= 5.9.0
Requires: qt5-qtsvg%{?_isa} >= 5.9.0
%endif
%if %{is_suse_leap}
Requires: libQt5Core5 >= 5.9.0
Requires: libqt5-qttools >= 5.9.0
Requires: libQt5Svg5 >= 5.9.0
%endif

Recommends: xdg-desktop-portal%{?_isa}
Recommends: (xdg-desktop-portal-gnome%{?_isa} if gnome-shell%{?_isa})
Recommends: (xdg-desktop-portal-kde%{?_isa} if plasma-workspace-wayland%{?_isa})
Expand All @@ -77,33 +52,19 @@ Features:
%autosetup -p1

%build
%if %{is_suse_leap}
%cmake -DCMAKE_BUILD_TYPE=Release
%endif
%if %{is_rhel_or_fedora}

%cmake -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DUSE_WAYLAND_CLIPBOARD:BOOL=ON \
%endif
%cmake_build

%install
%cmake_install
# https://fedoraproject.org/wiki/PackagingDrafts/find_lang
%find_lang Internationalization --with-qt
%if %{is_suse_leap}
%suse_update_desktop_file -r org.flameshot.Flameshot Utility X-SuSE-DesktopUtility
%endif
%fdupes %{buildroot}%{_datadir}/icons

%check
%if %{is_rhel_or_fedora}
appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.metainfo.xml
%endif
%if %{is_suse_leap}
appstream-util validate-relax --nonet %{buildroot}%{_datadir}/metainfo/*.metainfo.xml
%endif
desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop

%files -f Internationalization.lang
Expand All @@ -116,12 +77,7 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop
%dir %{_datadir}/zsh/site-functions
%{_bindir}/%{name}
%{_datadir}/applications/org.flameshot.Flameshot.desktop
%if %{is_suse_leap}
%{_datadir}/metainfo/org.flameshot.Flameshot.metainfo.xml
%endif
%if %{is_rhel_or_fedora}
%{_metainfodir}/org.flameshot.Flameshot.metainfo.xml
%endif
%{_datadir}/bash-completion/completions/%{name}
%{_datadir}/zsh/site-functions/_%{name}
%{_datadir}/fish/vendor_completions.d/%{name}.fish
Expand Down
126 changes: 126 additions & 0 deletions packaging/rpm/opensuse/flameshot.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
#
# spec file for package flameshot on opensuse leap 15.x
#
Name: flameshot
Version: 12.1.0
Release: 1
License: GPLv3+ and ASL 2.0 and GPLv2 and LGPLv3 and Free Art
Summary: Powerful yet simple to use screenshot software
URL: https://github.com/flameshot-org/flameshot
Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz

BuildRequires: cmake >= 3.13.0
BuildRequires: gcc-c++ >= 7
BuildRequires: fdupes
BuildRequires: update-desktop-files
BuildRequires: appstream-glib
BuildRequires: desktop-file-utils

BuildRequires: cmake(Qt5Core) >= 5.9.0
BuildRequires: cmake(Qt5DBus) >= 5.9.0
BuildRequires: cmake(Qt5Gui) >= 5.9.0
BuildRequires: cmake(Qt5LinguistTools) >= 5.9.0
BuildRequires: cmake(Qt5Network) >= 5.9.0
BuildRequires: cmake(Qt5Svg) >= 5.9.0
BuildRequires: cmake(Qt5Widgets) >= 5.9.0


Requires: hicolor-icon-theme
Requires: libQt5Core5 >= 5.9.0
Requires: libqt5-qttools >= 5.9.0
Requires: libQt5Svg5 >= 5.9.0

Recommends: xdg-desktop-portal%{?_isa}
Recommends: (xdg-desktop-portal-gnome%{?_isa} if gnome-shell%{?_isa})
Recommends: (xdg-desktop-portal-kde%{?_isa} if plasma-workspace-wayland%{?_isa})
Recommends: (xdg-desktop-portal-wlr%{?_isa} if wlroots%{?_isa})

%description
Powerful and simple to use screenshot software with built-in
editor with advanced features.

Features:

* Customizable appearance.
* Easy to use.
* In-app screenshot edition.
* DBus interface.
* Upload to Imgur

%prep
%autosetup -p1

%build
%cmake -DCMAKE_BUILD_TYPE=Release
%cmake_build

%install
%cmake_install
# https://fedoraproject.org/wiki/PackagingDrafts/find_lang
%find_lang Internationalization --with-qt
%suse_update_desktop_file -r org.flameshot.Flameshot Utility X-SuSE-DesktopUtility
%fdupes %{buildroot}%{_datadir}/icons

%check
appstream-util validate-relax --nonet %{buildroot}%{_datadir}/metainfo/*.metainfo.xml
desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop

%files -f Internationalization.lang
%{_datadir}/%{name}/translations/Internationalization_grc.qm
%doc README.md
%license LICENSE
%dir %{_datadir}/%{name}
%dir %{_datadir}/%{name}/translations
%dir %{_datadir}/bash-completion/completions
%dir %{_datadir}/zsh/site-functions
%{_bindir}/%{name}
%{_datadir}/applications/org.flameshot.Flameshot.desktop
%{_datadir}/metainfo/org.flameshot.Flameshot.metainfo.xml
%{_datadir}/bash-completion/completions/%{name}
%{_datadir}/zsh/site-functions/_%{name}
%{_datadir}/fish/vendor_completions.d/%{name}.fish
%{_datadir}/dbus-1/interfaces/org.flameshot.Flameshot.xml
%{_datadir}/dbus-1/services/org.flameshot.Flameshot.service
%{_datadir}/icons/hicolor/*/apps/*.png
%{_datadir}/icons/hicolor/scalable/apps/*.svg
%{_mandir}/man1/%{name}.1*

%changelog
* Wed Jun 21 2022 Jeremy Borgman <[email protected]> - 12.0.0-1
- Update for 12.0 release.

* Fri Jan 14 2022 Jeremy Borgman <[email protected]> - 11.0.0-1
- Update for 11.0 release.

* Sun Aug 29 2021 Zetao Yang <[email protected]> - 0.10.1-2
- Minor SPEC fixes.

* Sun Jul 25 2021 Jeremy Borgman <[email protected]> - 0.10.1-1
- Updated for flameshot 0.10.1

* Mon May 17 2021 Jeremy Borgman <[email protected]> - 0.10.0-1
- Updated for flameshot 0.10.0

* Sat Feb 27 2021 Jeremy Borgman <[email protected]> - 0.9.0-1
- Updated for flameshot 0.9.0

* Wed Oct 14 2020 Jeremy Borgman <[email protected]> - 0.8.5-1
- Updated for flameshot 0.8.5

* Sat Oct 10 2020 Jeremy Borgman <[email protected]> - 0.8.4-1
- Updated for flameshot 0.8.4

* Sat Sep 19 2020 Jeremy Borgman <[email protected]> - 0.8.3-1
- Updated for flameshot 0.8.3

* Mon Sep 07 2020 Zetao Yang <[email protected]> - 0.8.0-1
- Updated for flameshot 0.8.0
- More details, please see https://flameshot.org/changelog/#v080

* Sat Aug 18 2018 Zetao Yang <[email protected]> - 0.6.0-1
- Updated for flameshot 0.6.0
- More details, please see https://flameshot.org/changelog/#v060

* Tue Jan 09 2018 Zetao Yang <[email protected]> - 0.5.0-1
- Initial package for flameshot 0.5.0
- More details, please see https://flameshot.org/changelog/#v050
Loading

0 comments on commit 54644df

Please sign in to comment.