Qv2ray/makespec/qv2ray.spec.in
sixg0000d 32d4269b62
Optimize rpm spec file template (#1029)
* Optimize "BuildRequires"

* Update qv2ray.spec.in

1. Minor optimize "%description"
2. Optimize spec structure
3. Disable TLO and optimize cmake macros
4. Append "%check" phase

* Update qv2ray.spec.in

1. Fix package meta macro for qv2ray-plugin-builtin-protocol-support
2. Append qv2ray-plugin-builtin-subscription-support

* Fix "BuildRequires" for check phase

* Update qv2ray.spec.in

Fix a little typo

* Update qv2ray.spec.in

Fix 2 typo for rpmlint

* Update qv2ray.spec.in

Fix typo for rpmlint

* Maybe this summary is better?

* Update qv2ray.spec.in

Fix a missing dir
2020-10-15 09:58:29 +08:00

116 lines
3.2 KiB
RPMSpec

%bcond_with test
Name: @NAME@
Version: @VERSION@
Release: @RELEASE@
Summary: A full-featured cross-platform GUI for V2Ray
License: GPLv3
URL: https://github.com/Qv2ray/Qv2ray
Source0: @SOURCE0@
%if 0%{?rhel}
BuildRequires: epel-rpm-macros
%endif
BuildRequires: cmake >= 3.10.1
BuildRequires: cmake(Qt5)
BuildRequires: cmake(Qt5LinguistTools)
BuildRequires: cmake(Qt5Svg)
BuildRequires: pkgconfig(libcurl)
BuildRequires: gcc-c++
BuildRequires: grpc-devel
BuildRequires: grpc-plugins
BuildRequires: desktop-file-utils
BuildRequires: libappstream-glib
Requires: openssl
Requires: grpc
Recommends: %{name}-plugin-builtin-protocol-support%{?_isa} = %{version}-%{release}
Recommends: %{name}-plugin-builtin-subscription-support%{?_isa} = %{version}-%{release}
%package plugin-builtin-protocol-support
Summary: Qv2ray Builtin Protocol Support
Requires: %{name}%{?_isa} = %{version}-%{release}
%package plugin-builtin-subscription-support
Summary: Qv2ray Builtin Subscription Support
Requires: %{name}%{?_isa} = %{version}-%{release}
%description
Qv2ray is a cross-platform v2ray graphical front-end written in Qt.
Features:
* Cross-platform, multi-distribution support
* Versatile Host Importing
* Subscriptions
* Built-in Host Editors
* (Almost) Full Functionality Support
* Real-time Speed & Data Usage Monitoring
* Latency Testing (TCP)
More detail Please check https://qv2ray.net/
%description plugin-builtin-protocol-support
VMess, VLESS, SOCKS, HTTP, Shadowsocks, DNS, Dokodemo-door editor support.
%description plugin-builtin-subscription-support
Basic subscription support for Qv2ray.
%prep
%setup -q -n @NAME_VERSION@
%build
# build info
export _QV2RAY_BUILD_INFO_="Qv2ray built by Fedora Copr"
export _QV2RAY_BUILD_EXTRA_INFO_="(Unofficial Build) $(uname -a | cut -d ' ' -f3,13), Qt $(pkg-config --modversion Qt5Core)"
# build
# Like https://bugzilla.redhat.com/show_bug.cgi?id=1873903
# And https://src.fedoraproject.org/rpms/clementine/c/adc754c0da013db875db9d8f8934f31403cbf624
# But can't fix by -fPIC, so disable LTO is the only way
%define _lto_cflags %{nil}
%cmake -DQV2RAY_DEFAULT_VCORE_PATH="/usr/bin/v2ray" \
-DQV2RAY_DEFAULT_VASSETS_PATH="/usr/share/v2ray/" \
-DQV2RAY_DISABLE_AUTO_UPDATE=ON \
-DCMAKE_BUILD_TYPE=Release \
%if %{with test}
-DBUILD_TESTING=ON
%endif
%cmake_build
%install
rm -rf "$RPM_BUILD_ROOT"
%cmake_install
%find_lang %{name} --with-qt --all-name
%check
desktop-file-validate %{buildroot}%{_datadir}/applications/qv2ray.desktop
appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/qv2ray.metainfo.xml
%if %{with test}
%ctest
%endif
%files -f %{name}.lang
%license LICENSE
%doc README.md
%{_bindir}/qv2ray
%{_datadir}/applications/qv2ray.desktop
%{_metainfodir}/qv2ray.metainfo.xml
%{_datadir}/icons/*
%dir %{_datadir}/qv2ray/
%dir %{_datadir}/qv2ray/lang/
%dir %{_datadir}/qv2ray/plugins/
%files plugin-builtin-protocol-support
%{_datadir}/qv2ray/plugins/libQvPlugin-BuiltinProtocolSupport.so
%files plugin-builtin-subscription-support
%{_datadir}/qv2ray/plugins/libQvPlugin-BuiltinSubscriptionSupport.so
%changelog