Skip to content

Commit d16b0ce

Browse files
committed
feat(packaging): refactor snapx RPM into sub packages
- `snapx-core` now has ownership of shared assets and %{_prefix}/lib/%{name}. - `snapx-ui` now owns its rendering libraries (Skia/HarfBuzz)
1 parent 0bfac99 commit d16b0ce

File tree

1 file changed

+39
-3
lines changed

1 file changed

+39
-3
lines changed

packaging/snapx.spec

Lines changed: 39 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,15 +79,22 @@ Recommends: /usr/bin/xrandr
7979
Requires: fontconfig, freetype, openssl, glibc, libicu, at, sudo, libXrandr, libxcb, dbus
8080
# Required for opening browser tabs across Linux desktops
8181
Requires: xdg-utils
82+
Requires: snapx-core = %{version}-%{release}
8283

8384
%description
8485
This is a port of the original ShareX application to Linux.
8586
It is not an official release and is not affiliated with the original ShareX project.
8687
Specifically, it is the CLI tool.
8788

89+
%package core
90+
Summary: Shared libraries and core logic for SnapX
91+
%description core
92+
This package contains the heavy dependencies and shared libraries used by both
93+
the CLI and the UI.
94+
8895
%package ui
8996
Summary: SnapX Avalonia-based UI
90-
Requires: snapx
97+
Requires: snapx-core = %{version}-%{release}
9198

9299

93100
%description ui
@@ -155,15 +162,44 @@ done
155162
%check
156163
Output/snapx-ui/snapx-ui --version
157164

158-
%files
159-
%{_bindir}/%{name}
165+
166+
# This message will only show on first install, not upgrades/removals
167+
# Additionally, it will be removed once SnapX's CLI is mature.
168+
%post
169+
if [ "$1" -eq 1 ]; then
170+
echo "--------------------------------------------------------------"
171+
echo " Welcome to SnapX! Thank you so much for testing the app. "
172+
echo "--------------------------------------------------------------"
173+
echo " NOTE: The 'snapx' CLI is still under active development. "
174+
echo " For the best experience right now, please use 'snapx-ui'. "
175+
echo ""
176+
echo " If you enjoy the project, please consider: "
177+
echo " ⭐ Starring on GitHub: https://github.com/%{github_path}"
178+
echo " 🚲 Donating to help me fund my bus fare and keep my scooter charged!"
179+
echo " https://liberapay.com/BrycensRanch"
180+
echo "--------------------------------------------------------------"
181+
fi
182+
183+
%files core
160184
%{_prefix}/lib/%{name}
161185
%{_datadir}/SnapX
162186
%{_docdir}/%{name}
187+
%exclude %{_prefix}/lib/%{name}/%{name}
188+
%exclude %{_prefix}/lib/%{name}/%{name}-ui
189+
%exclude %{_prefix}/lib/%{name}/libHarfBuzzSharp.so
190+
%exclude %{_prefix}/lib/%{name}/libSkiaSharp.so
191+
%license LICENSE.md
192+
193+
%files
194+
%{_prefix}/lib/%{name}/%{name}
195+
%{_bindir}/%{name}
163196
%license LICENSE.md
164197

165198
%files ui
199+
%{_prefix}/lib/%{name}/%{name}-ui
166200
%{_bindir}/%{name}-ui
201+
%{_prefix}/lib/%{name}/libHarfBuzzSharp.so
202+
%{_prefix}/lib/%{name}/libSkiaSharp.so
167203
%{_datadir}/applications/io.github.SnapXL.SnapX.desktop
168204
%{_datadir}/metainfo/io.github.SnapXL.SnapX.metainfo.xml
169205
%{_datadir}/icons/hicolor/48x48/apps/io.github.SnapXL.SnapX.png

0 commit comments

Comments
 (0)