%global rel_ver 1.4.2 %global rel_cnt 1 #global git_ver git0470381 %global git_rel_cnt 0.1 %define debug_package %{nil} %bcond_with latest Name: xray Version: %{rel_ver} Release: %{?git_ver:%{git_rel_cnt}.%{git_ver}}%{!?git_ver:%{rel_cnt}}%{?dist} Summary: Project X originates from XTLS protocol, provides a set of network tools such as Xray-core and Xray-flutter. License: MIT URL: https://github.com/XTLS/Xray-core Source0: Xray-core-%{?git_ver:%{rel_ver}.%{git_ver}.tar.xz}%{!?git_ver:%{rel_ver}.tar.gz} Source1: xray@.service Patch0001: 0001-Ignore-Invalid-Domain.patch Patch0002: 0002-Set-Unix-Domain-Socket-File-Permissions-To-0777.patch Patch0003: 0003-DNS-Matcher-return-regexp-before-domains.patch BuildRequires: curl BuildRequires: go-srpm-macros BuildRequires: golang >= 1.15.0 %if 0%{?el7} #Provided by https://repo.ius.io/7/x86_64 BuildRequires: git224-core %else BuildRequires: git-core >= 2.0 %endif %if 0%{?fedora} <= 30 || 0%{?el7} BuildRequires: go-compilers-golang-compiler %else BuildRequires: go-rpm-macros %endif %if 0%{?fedora} < 30 || 0%{?el7} BuildRequires: systemd %else BuildRequires: systemd-rpm-macros %endif %description Project V is a set of network tools that help you to build your own computer network %prep rm -rf %{name}-%{rel_ver}%{?git_ver:.%{git_ver}} %setup -q -D -T -c -n %{name}-%{rel_ver}%{?git_ver:.%{git_ver}} -a 0 mv Xray-core-%{rel_ver}%{?git_ver:.%{git_ver}} xray-core sed -i -e 's|\(^.*version.*=\).*$|\1 \"%{version}%{?git_ver:.%{git_ver}}\"|g' xray-core/core/core.go pushd xray-core %patch0001 -p1 %patch0002 -p1 %patch0003 -p1 popd %build %global goipath github.com/xtls %if 0%{?fedora} <= 30 || 0%{?el7} %global build_folder $GO_BUILD_PATH %gobuildroot %else %global build_folder %{gobuilddir} %global extractdir0 %{name}-%{rel_ver}%{?git_ver:.%{git_ver}} %goprep -v -e %{name}-%{rel_ver}%{?git_ver:.%{git_ver}} %endif %undefine version curl -L https://github.com/Loyalsoldier/v2ray-rules-dat/raw/release/geoip.dat -o geoip.dat curl -L https://github.com/Loyalsoldier/v2ray-rules-dat/raw/release/geosite.dat -o geosite.dat curl -L https://github.com/ToutyRater/V2Ray-SiteDAT/raw/master/geofiles/h2y.dat -o h2y.dat %if %{with latest} env GOPATH=%{build_folder} go get -insecure -v -d -t github.com/xtls/xray-core/main env GOPATH=%{build_folder} go get -insecure -v -d -t github.com/xtls/xray-core/core %gobuild -o _bin/xray github.com/xtls/xray-core/main %else pushd xray-core %define gomodulesmode GO111MODULE=on export GOPATH=%{build_folder} go mod download -x %gobuild -o ../_bin/xray ./main popd %endif %install mkdir -p %{buildroot}%{_bindir} install -s -m 755 _bin/xray %{buildroot}%{_bindir} install -d %{buildroot}%{_sysconfdir}/%{name} install -d %{buildroot}%{_var}/log/%{name} install -d %{buildroot}%{_datadir}/%{name} install -d %{buildroot}%{_unitdir} install -d %{buildroot}%{_sysconfdir}/%{name} install -d %{buildroot}%{_localstatedir}/log/%{name} install -m644 %{SOURCE1} %{buildroot}%{_unitdir}/xray@.service install -m644 geoip.dat %{buildroot}%{_datadir}/%{name}/geoip.dat install -m644 geosite.dat %{buildroot}%{_datadir}/%{name}/geosite.dat install -m644 h2y.dat %{buildroot}%{_datadir}/%{name}/h2y.dat mkdir -p %{buildroot}%{_tmpfilesdir} echo "d /run/xray 0755 root root -" > %{buildroot}%{_tmpfilesdir}/%{name}.conf %files %license xray-core/LICENSE %doc xray-core/README.md %{_bindir}/xray %attr(0755, root, root) %dir %{_sysconfdir}/%{name} %attr(0755, root, root) %dir %{_var}/log/%{name} %attr(0644, root, root) %{_datadir}/%{name}/geoip.dat %attr(0644, root, root) %{_datadir}/%{name}/geosite.dat %attr(0644, root, root) %{_datadir}/%{name}/h2y.dat %attr(0644, root, root) %{_tmpfilesdir}/%{name}.conf %attr(-, root, root) %{_localstatedir}/log/%{name} %attr(-, root, root) %{_unitdir}/%{name}@.service %changelog * Tue Apr 06 2021 Tomas Chang - 1.4.2-1 - Update to 1.4.2 * Sun Mar 21 2021 Tomas Chang - 1.4.1.git0470381-0.1 - Update to latest git on Mar 21 2021 * Mon Mar 15 2021 Tomas Chang - 1.4.0-1 - Update to 1.4.0 * Sun Mar 14 2021 Tomas Chang - 1.3.2.gite0526c2-0.2 - Update to latest git on Mar 14 2021 * Mon Mar 08 2021 Tomas Chang - 1.3.2.gitd7cd71b7-0.1 - Update to latest git on Mar 08 2021 * Tue Mar 02 2021 Tomas Chang - 1.3.1.gitc345d481-0.2 - Update to latest git on Mar 02 2021 * Wed Feb 24 2021 Tomas Chang - 1.3.1.git48fab4d3-0.1 - Update to latest git on Feb 24 2021 * Sun Feb 14 2021 Tomas Chang - 1.3.0-1 - Update to 1.3.0 * Wed Feb 03 2021 Tomas Chang - 1.2.4-1 - Update to 1.2.4 * Fri Jan 22 2021 Tomas Chang - 1.2.3-1 - Update to 1.2.3 * Fri Jan 15 2021 Tomas Chang - 1.2.2-1 - Update to 1.2.2 * Tue Jan 12 2021 Tomas Chang - 1.2.1-2 - Apply upstream patches - Add config dir - Add runtime folder * Mon Jan 11 2021 Tomas Chang - 1.2.1-1 - Update to 1.2.1 * Mon Jan 04 2021 Tomas Chang - 1.2.0-1 - Initial build