From b3cbb87fe27e0305ec2bd69ef215454bd8a39bb6 Mon Sep 17 00:00:00 2001 From: Raboneko <119771935+raboneko@users.noreply.github.com> Date: Mon, 1 Sep 2025 10:26:49 -0700 Subject: [PATCH] feat: move nekoray to throne (#6108) (#6243) * feat: move nekoray to throne * wat * funny aur * Update throne.spec * a * Update throne.spec * Add Throne.png to package files --------- (cherry picked from commit 659777283b8c5ce0fa6a877905cefba1ada65efb) Signed-off-by: madomado Co-authored-by: madomado --- anda/apps/nekoray/pre.rhai | 5 -- anda/apps/nekoray/pre.sh | 10 --- anda/apps/nekoray/update.rhai | 3 - anda/apps/throne/.gitignore | 2 + .../Sagernet.SingBox.Version.txt | 0 anda/apps/{nekoray => throne}/anda.hcl | 2 +- .../nekoray.desktop => throne/throne.desktop} | 0 .../{nekoray/nekoray.sh => throne/throne.sh} | 0 .../nekoray.spec => throne/throne.spec} | 61 +++++++++++-------- anda/apps/throne/update.rhai | 3 + 10 files changed, 42 insertions(+), 44 deletions(-) delete mode 100644 anda/apps/nekoray/pre.rhai delete mode 100644 anda/apps/nekoray/pre.sh delete mode 100644 anda/apps/nekoray/update.rhai create mode 100644 anda/apps/throne/.gitignore rename anda/apps/{nekoray => throne}/Sagernet.SingBox.Version.txt (100%) rename anda/apps/{nekoray => throne}/anda.hcl (52%) rename anda/apps/{nekoray/nekoray.desktop => throne/throne.desktop} (100%) rename anda/apps/{nekoray/nekoray.sh => throne/throne.sh} (100%) rename anda/apps/{nekoray/nekoray.spec => throne/throne.spec} (51%) create mode 100644 anda/apps/throne/update.rhai diff --git a/anda/apps/nekoray/pre.rhai b/anda/apps/nekoray/pre.rhai deleted file mode 100644 index 8ad379de32..0000000000 --- a/anda/apps/nekoray/pre.rhai +++ /dev/null @@ -1,5 +0,0 @@ -let sourcedir = "anda/apps/nekoray"; - -sh(`dnf in -y golang rpmdevtools tar rpm-build coreutils`, #{}); -sh(`pushd ${sourcedir}; bash -x pre.sh; popd`, #{}); - diff --git a/anda/apps/nekoray/pre.sh b/anda/apps/nekoray/pre.sh deleted file mode 100644 index 02bf04d16b..0000000000 --- a/anda/apps/nekoray/pre.sh +++ /dev/null @@ -1,10 +0,0 @@ -export sourcedir="$PWD" -rpmdev-spectool --all --get-files nekoray.spec -version=$(rpmspec --query --queryformat "%{VERSION}\n" nekoray.spec | uniq) - -tar -xzf "nekoray-${version}.tar.gz" -pushd "nekoray-${version}/core/server" - go mod download github.com/stretchr/testify - go mod vendor - tar -czf "${sourcedir}/vendor-${version}.tar.gz" vendor -popd diff --git a/anda/apps/nekoray/update.rhai b/anda/apps/nekoray/update.rhai deleted file mode 100644 index 4f1929a65f..0000000000 --- a/anda/apps/nekoray/update.rhai +++ /dev/null @@ -1,3 +0,0 @@ -rpm.version(find(`([\d.]+)-\d+-\d+-\d+`, gh_rawfile("Mahdi-zarei/nekoray", "dev", "nekoray_version.txt"), 1)); - -open_file("anda/apps/nekoray/Sagernet.SingBox.Version.txt", "w").write(gh("sagernet/sing-box")); diff --git a/anda/apps/throne/.gitignore b/anda/apps/throne/.gitignore new file mode 100644 index 0000000000..5905086069 --- /dev/null +++ b/anda/apps/throne/.gitignore @@ -0,0 +1,2 @@ +Throne-* +*.tar.gz diff --git a/anda/apps/nekoray/Sagernet.SingBox.Version.txt b/anda/apps/throne/Sagernet.SingBox.Version.txt similarity index 100% rename from anda/apps/nekoray/Sagernet.SingBox.Version.txt rename to anda/apps/throne/Sagernet.SingBox.Version.txt diff --git a/anda/apps/nekoray/anda.hcl b/anda/apps/throne/anda.hcl similarity index 52% rename from anda/apps/nekoray/anda.hcl rename to anda/apps/throne/anda.hcl index b122b1135d..443d6eedde 100644 --- a/anda/apps/nekoray/anda.hcl +++ b/anda/apps/throne/anda.hcl @@ -1,5 +1,5 @@ project pkg { rpm { - spec = "nekoray.spec" + spec = "throne.spec" } } diff --git a/anda/apps/nekoray/nekoray.desktop b/anda/apps/throne/throne.desktop similarity index 100% rename from anda/apps/nekoray/nekoray.desktop rename to anda/apps/throne/throne.desktop diff --git a/anda/apps/nekoray/nekoray.sh b/anda/apps/throne/throne.sh similarity index 100% rename from anda/apps/nekoray/nekoray.sh rename to anda/apps/throne/throne.sh diff --git a/anda/apps/nekoray/nekoray.spec b/anda/apps/throne/throne.spec similarity index 51% rename from anda/apps/nekoray/nekoray.spec rename to anda/apps/throne/throne.spec index f9303c1c3c..3e891d37fa 100644 --- a/anda/apps/nekoray/nekoray.spec +++ b/anda/apps/throne/throne.spec @@ -1,15 +1,16 @@ -%global gomodulesmode GO111MODULE=on -Name: nekoray -Version: 4.3.7 +#? https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=throne-git + +Name: throne +Version: 1.0.5 Release: 1%?dist Summary: Qt based cross-platform GUI proxy configuration manager (backend: sing-box) -URL: https://github.com/Mahdi-zarei/nekoray +URL: https://github.com/throneproj/Throne License: GPLv3 -Source0: https://github.com/Mahdi-zarei/nekoray/archive/refs/tags/%{version}.tar.gz#/nekoray-%{version}.tar.gz +Obsoletes: nekoray < 4.3.7-2 + +Source0: https://github.com/throneproj/Throne/archive/refs/tags/%{version}.tar.gz#/throne-%{version}.tar.gz Packager: bunzuhbu -Source1: vendor-%{version}.tar.gz -%define fetch_vendor %{_rpmconfigdir}/rpmuncompress -xv %{SOURCE1} Source2: Sagernet.SingBox.Version.txt %define singbox_version $(cat %{SOURCE2}) @@ -36,8 +37,9 @@ BuildRequires: patchelf BuildRequires: sed BuildRequires: golang BuildRequires: rpm_macro(gobuildflags) +BuildRequires: protobuf-compiler Requires: %{name}-core -%define core nekobox_core +%define core throne_core %package core Summary: %{summary} @@ -49,43 +51,52 @@ Summary: %{summary} %{summary} %prep -%autosetup -p1 -n %{name}-%{version} +%autosetup -p1 -n Throne-%{version} sed -i 's~find_package(Protobuf CONFIG REQUIRED)~find_package(Protobuf REQUIRED)~' cmake/myproto.cmake sed -i 's~add_library(qhotkey 3rdparty/QHotkey/qhotkey.cpp)~add_library(qhotkey STATIC 3rdparty/QHotkey/qhotkey.cpp)~' cmake/QHotkey.cmake # sed -i 's~ImageFormat::BGRA~ImageFormat::BGR~' 3rdparty/ZxingQtReader.hpp pushd core/server -%{fetch_vendor} -popd +export GOBIN=$(pwd)/gobin +export PATH="${PATH}:${GOBIN}" +go install google.golang.org/protobuf/cmd/protoc-gen-go@latest +go install github.com/chai2010/protorpc/protoc-gen-protorpc@latest + +cd gen +protoc -I . --go_out=. --protorpc_out=. libcore.proto %build %cmake %cmake_build DEST=$PWD/%{__cmake_builddir}/%{core} pushd core/server -go build %{gobuildflags} -o $DEST -trimpath -ldflags "-B 0x$(echo "%{name}-%{version}-%{release}-${SOURCE_DATE_EPOCH:-}" | sha1sum | cut -d ' ' -f1) -w -s -X 'github.com/sagernet/sing-box/constant.Version=%{singbox_version}'" -tags "with_clash_api,with_gvisor,with_quic,with_wireguard,with_utls,with_ech,with_dhcp" +export GOBIN=$(pwd)/gobin +export PATH="${PATH}:${GOBIN}" +%define currentgoldflags -w -s -X github.com/sagernet/sing-box/constant.Version=%{singbox_version} +%define gomodulesmode GO111MODULE=on +%define build_ldflags %nil +export GO_LDFLAGS=' ' +export GO_BUILDTAGS="with_clash_api with_gvisor with_quic with_wireguard with_utls with_dhcp with_tailscale" +%gobuild -o $DEST -mod=readonly -modcacherw popd %install -mkdir -p %{buildroot}%{_libdir}/%{name} -mkdir -p %{buildroot}%{_bindir} -mkdir -p %{buildroot}%{_datadir}/applications -mkdir -p %{buildroot}%{_datadir}/icons - -cp %{SOURCE4} %{buildroot}%{_bindir}/%{name} -cp %{SOURCE3} %{buildroot}%{_datadir}/applications/%{name}.desktop -sed -i 's~/bin~%{_bindir}~g;s~/usr/share~%{_datadir}~g;s~nekoray~%{name}~g' %{buildroot}%{_datadir}/applications/%{name}.desktop -sed -i 's~/bin~%{_bindir}~g;s~/lib64~%{_libdir}~g;s~nekoray~%{name}~g' %{buildroot}%{_bindir}/%{name} -cp %{__cmake_builddir}/%{name} %{buildroot}%{_libdir}/%{name}/%{name} -cp %{__cmake_builddir}/%{core} %{buildroot}%{_libdir}/%{name}/%{core} -cp res/nekoray.ico %{buildroot}%{_datadir}/icons/%{name}.ico +install -Dm755 %__cmake_builddir/Throne %buildroot%_libdir/%name/%name +install -Dm755 %__cmake_builddir/%core %buildroot%_libdir/%name/%core +install -Dpm755 %{SOURCE4} %{buildroot}%{_bindir}/%{name} +install -Dpm644 %{SOURCE3} %{buildroot}%{_datadir}/applications/%{name}.desktop +sed -i 's~/bin~%{_bindir}~g' %{buildroot}%{_datadir}/applications/%{name}.desktop +sed -i 's~/bin~%{_bindir}~g;s~/lib64~%{_libdir}~g' %{buildroot}%{_bindir}/%{name} +install -Dpm644 res/Throne.ico -t %buildroot%_iconsdir/ +install -Dpm644 res/public/Throne.png -t %buildroot%_datadir/pixmaps/ patchelf --remove-rpath %{buildroot}%{_libdir}/%{name}/%{name} patchelf --remove-rpath %{buildroot}%{_libdir}/%{name}/%{core} %files %attr(0755, -, -) %{_bindir}/%{name} %attr(0755, -, -) %{_libdir}/%{name}/%{name} -%attr(0644, -, -) %{_datadir}/icons/%{name}.ico +%attr(0644, -, -) %{_datadir}/icons/Throne.ico %attr(0644, -, -) %{_datadir}/applications/%{name}.desktop +%_datadir/pixmaps/Throne.png %files core %dir %{_libdir}/%{name} diff --git a/anda/apps/throne/update.rhai b/anda/apps/throne/update.rhai new file mode 100644 index 0000000000..0ca9d5a1a7 --- /dev/null +++ b/anda/apps/throne/update.rhai @@ -0,0 +1,3 @@ +rpm.version(find(`([\d.]+)-\d+-\d+-\d+`, gh_rawfile("throneproj/Throne", "dev", "throne_version.txt"), 1)); + +open_file("anda/apps/throne/Sagernet.SingBox.Version.txt", "w").write(gh("sagernet/sing-box"));