From f1c46e08731bee4807ed5e43f76bd30c2acc4f49 Mon Sep 17 00:00:00 2001 From: Teddysun Date: Fri, 26 Apr 2024 23:39:03 +0900 Subject: [PATCH] Added xray-plugin rpm and deb source Signed-off-by: Teddysun --- deb/xray-plugin/Makefile | 99 ++++++++++++++++++ deb/xray-plugin/build-deb | 74 +++++++++++++ deb/xray-plugin/checkout.sh | 39 +++++++ deb/xray-plugin/common/control | 29 ++++++ deb/xray-plugin/common/docs | 1 + deb/xray-plugin/common/rules | 28 +++++ deb/xray-plugin/common/source/format | 1 + deb/xray-plugin/debian-bookworm/Dockerfile | 40 +++++++ deb/xray-plugin/debian-bullseye/Dockerfile | 40 +++++++ deb/xray-plugin/debian-buster/Dockerfile | 40 +++++++ deb/xray-plugin/ubuntu-focal/Dockerfile | 46 +++++++++ deb/xray-plugin/ubuntu-jammy/Dockerfile | 46 +++++++++ deb/xray-plugin/ubuntu-noble/Dockerfile | 46 +++++++++ rpm/xray-plugin/xray-plugin.spec | 115 +++++++++++++++++++++ 14 files changed, 644 insertions(+) create mode 100644 deb/xray-plugin/Makefile create mode 100644 deb/xray-plugin/build-deb create mode 100644 deb/xray-plugin/checkout.sh create mode 100644 deb/xray-plugin/common/control create mode 100644 deb/xray-plugin/common/docs create mode 100644 deb/xray-plugin/common/rules create mode 100644 deb/xray-plugin/common/source/format create mode 100644 deb/xray-plugin/debian-bookworm/Dockerfile create mode 100644 deb/xray-plugin/debian-bullseye/Dockerfile create mode 100644 deb/xray-plugin/debian-buster/Dockerfile create mode 100644 deb/xray-plugin/ubuntu-focal/Dockerfile create mode 100644 deb/xray-plugin/ubuntu-jammy/Dockerfile create mode 100644 deb/xray-plugin/ubuntu-noble/Dockerfile create mode 100644 rpm/xray-plugin/xray-plugin.spec diff --git a/deb/xray-plugin/Makefile b/deb/xray-plugin/Makefile new file mode 100644 index 0000000..43a2d5b --- /dev/null +++ b/deb/xray-plugin/Makefile @@ -0,0 +1,99 @@ +ARCH=$(shell uname -m) +VERSION?=1.8.11 +GO_VERSION:=1.22.2 +SHELL:=/bin/bash +GO_BASE_IMAGE=golang +GO_IMAGE?=$(GO_BASE_IMAGE):$(GO_VERSION)-bookworm +EPOCH?= +REPO?=https://github.com/teddysun/xray-plugin.git +REF?=v1.8.11 +CHOWN:=docker run --rm -v $(CURDIR):/v -w /v alpine chown + +ifdef BUILD_IMAGE + BUILD_IMAGE_FLAG=--build-arg $(BUILD_IMAGE) +endif + +COMMON_FILES=common +BUILD?=DOCKER_BUILDKIT=1 \ + docker build \ + $(BUILD_IMAGE_FLAG) \ + --build-arg GO_IMAGE=$(GO_IMAGE) \ + --build-arg COMMON_FILES=$(COMMON_FILES) \ + -t debbuild-$@/$(ARCH) \ + -f $@/Dockerfile \ + . + +# Additional flags may be necessary at some point +RUN_FLAGS= +RUN?=docker run --rm -h buildbot \ + -e PLATFORM \ + -e EPOCH='$(EPOCH)' \ + -e DEB_VERSION=$(VERSION) \ + -e VERSION=$(VERSION) \ + -v $(CURDIR)/debbuild/$@:/build \ + $(RUN_FLAGS) \ + debbuild-$@/$(ARCH) + +DEBIAN_VERSIONS ?= debian-buster debian-bullseye debian-bookworm +UBUNTU_VERSIONS ?= ubuntu-focal ubuntu-jammy ubuntu-noble +DISTROS := $(DEBIAN_VERSIONS) $(UBUNTU_VERSIONS) + +# Taken from: https://www.cmcrossroads.com/article/printing-value-makefile-variable +print-% : ; @echo $($*) + +.PHONY: help +help: ## show make targets + @awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {sub("\\\\n",sprintf("\n%22c"," "), $$2);printf " \033[36m%-20s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST) + +.PHONY: checkout-src +checkout-src: src/github.com/teddysun/xray-plugin + ./checkout.sh src/github.com/teddysun/xray-plugin "$(REF)" + +src/github.com/teddysun/xray-plugin: + git init $@ + git -C $@ remote add origin "$(REPO)" + +.PHONY: checkout +checkout: checkout-src ## checkout source at the given reference(s) + +.PHONY: clean +clean: ## remove build artifacts + [ ! -d debbuild ] || $(CHOWN) -R $(shell id -u):$(shell id -g) debbuild + $(RM) -r debbuild + [ ! -d sources ] || $(CHOWN) -R $(shell id -u):$(shell id -g) sources + $(RM) -r sources + -docker builder prune -f --filter until=24h + +.PHONY: deb +deb: ubuntu debian ## build all deb packages + +.PHONY: ubuntu +ubuntu: $(UBUNTU_VERSIONS) ## build all ubuntu deb packages + +.PHONY: debian +debian: $(DEBIAN_VERSIONS) ## build all debian deb packages + +.PHONY: $(DISTROS) +$(DISTROS): sources + @echo "== Building packages for $@ ==" + mkdir -p "debbuild/$@" + $(BUILD) + $(RUN) + $(CHOWN) -R $(shell id -u):$(shell id -g) "debbuild/$@" + +.PHONY: sources +sources: sources/xray-plugin.tgz + +sources/xray-plugin.tgz: + mkdir -p $(@D) + docker run --rm -w /v \ + -v $(realpath $(CURDIR)/src/github.com/teddysun/xray-plugin):/xray-plugin \ + -v $(CURDIR)/$(@D):/v \ + alpine \ + tar -C / -c -z -f /v/xray-plugin.tgz --exclude .git xray-plugin + +# See ARCHES in common.mk. Could not figure out how to match both distro and arch. +BUNDLES:=$(addsuffix .tar.gz,$(addprefix debbuild/bundles-%-,$(ARCHES))) + +$(BUNDLES): % + tar czf $@ --transform="s|^debbuild/\(.*\)|bundles/$(VERSION)/build-deb/\1|" debbuild/$* diff --git a/deb/xray-plugin/build-deb b/deb/xray-plugin/build-deb new file mode 100644 index 0000000..61ef6dc --- /dev/null +++ b/deb/xray-plugin/build-deb @@ -0,0 +1,74 @@ +#!/usr/bin/env bash +set -x +set -e + +# untar sources +mkdir -p /root/build-deb/xray-plugin +tar -C /root/build-deb -xzf /sources/xray-plugin.tgz + +# link them to their canonical path +mkdir -p /go/src/github.com/teddysun +ln -snf /root/build-deb/xray-plugin /go/src/github.com/teddysun/xray-plugin + +EPOCH="${EPOCH:-}" +EPOCH_SEP="" +if [[ -n "$EPOCH" ]]; then + EPOCH_SEP=":" +fi + +if [[ -z "${DEB_VERSION}" ]]; then + echo "DEB_VERSION is required to build deb packages" + exit 1 +fi + +echo VERSION AAA ${VERSION} + +VERSION=${VERSION:-$(cat VERSION)} + +debSource="$(awk -F ': ' '$1 == "Source" { print $2; exit }' debian/control)" +debMaintainer="$(awk -F ': ' '$1 == "Maintainer" { print $2; exit }' debian/control)" +debDate="$(date --rfc-2822)" + +# Include an extra `1` in the version, in case we ever would have to re-build an +# already published release with a packaging-only change. +pkgRevision=1 + +# Generate changelog. The version/name of the generated packages are based on this. +# +# Resulting packages are formatted as; +# +# - name of the package (e.g., "docker-ce") +# - version (e.g., "23.0.0~beta.0") +# - pkgRevision (usually "-0", see above), which allows updating packages with +# packaging-only changes (without a corresponding release of the software +# that's packaged). +# - distro (e.g., "ubuntu") +# - VERSION_ID (e.g. "22.04" or "11") this must be "sortable" to make sure that +# packages are upgraded when upgrading to a newer distro version ("codename" +# cannot be used for this, as they're not sorted) +# - SUITE ("codename"), e.g. "jammy" or "bullseye". This is mostly for convenience, +# because some places refer to distro versions by codename, others by version. +# we prefix the codename with a tilde (~), which effectively excludes it from +# version comparison. +# +# Note that while the `${EPOCH}${EPOCH_SEP}` is part of the version, it is not +# included in the package's *filename*. (And if you're wondering: we needed the +# EPOCH because of our use of CalVer, which made version comparing not work in +# some cases). +# +# Examples: +# +# docker-ce_23.0.0~beta.0-1~debian.11~bullseye_amd64.deb +# docker-ce_23.0.0~beta.0-1~ubuntu.22.04~jammy_amd64.deb +cat > "debian/changelog" <<-EOF +$debSource (${EPOCH}${EPOCH_SEP}${DEB_VERSION}-${pkgRevision}~${DISTRO}.${VERSION_ID}~${SUITE}) $SUITE; urgency=low + * Version: ${VERSION} + -- $debMaintainer $debDate +EOF +# The space above at the start of the line for the debMaintainer is very important + +echo VERSION BBB ${VERSION} +dpkg-buildpackage -uc -us -I.git +destination="/build" +mkdir -p "$destination" +mv -v /root/xray-plugin* "$destination" diff --git a/deb/xray-plugin/checkout.sh b/deb/xray-plugin/checkout.sh new file mode 100644 index 0000000..6bc1847 --- /dev/null +++ b/deb/xray-plugin/checkout.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env sh + +# Copyright 2018-2020 Docker Inc. + +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at + +# http://www.apache.org/licenses/LICENSE-2.0 + +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +checkout() ( + set -ex + SRC="$1" + REF="$2" + REF_FETCH="$REF" + # if ref is branch or tag, retrieve its canonical form + REF=$(git -C "$SRC" ls-remote --refs --heads --tags origin "$REF" | awk '{print $2}') + if [ -n "$REF" ]; then + # if branch or tag then create it locally too + REF_FETCH="$REF:$REF" + else + REF="FETCH_HEAD" + fi + git -C "$SRC" fetch --update-head-ok --depth 1 origin "$REF_FETCH" + git -C "$SRC" checkout -q "$REF" +) + + +# Only execute checkout function above if this file is executed, not sourced from another script +prog=checkout.sh # needs to be in sync with this file's name +if [ "$(basename -- $0)" = "$prog" ]; then + checkout $* +fi diff --git a/deb/xray-plugin/common/control b/deb/xray-plugin/common/control new file mode 100644 index 0000000..9352a0c --- /dev/null +++ b/deb/xray-plugin/common/control @@ -0,0 +1,29 @@ +Source: xray-plugin +Section: devel +Priority: optional +Maintainer: Teddysun +Build-Depends: bash, + cmake, + dh-apparmor, + debhelper-compat (= 12), + gcc, + git, + libc-dev, + libltdl-dev, + libseccomp-dev, + libseccomp2, + libsystemd-dev, + libtool, + make, + pkg-config +Standards-Version: 3.9.6 +Homepage: https://github.com/teddysun/xray-plugin +Vcs-Browser: https://github.com/teddysun/xray-plugin +Vcs-Git: git://github.com/teddysun/xray-plugin.git + +Package: xray-plugin +Architecture: linux-any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: Xray plugin for shadowsocks + Yet another SIP003 plugin for shadowsocks, based on xray-core. + It should be used with shadowsocks. diff --git a/deb/xray-plugin/common/docs b/deb/xray-plugin/common/docs new file mode 100644 index 0000000..638c067 --- /dev/null +++ b/deb/xray-plugin/common/docs @@ -0,0 +1 @@ +xray-plugin/README.md diff --git a/deb/xray-plugin/common/rules b/deb/xray-plugin/common/rules new file mode 100644 index 0000000..2709e05 --- /dev/null +++ b/deb/xray-plugin/common/rules @@ -0,0 +1,28 @@ +#!/usr/bin/make -f + +VERSION?=$(shell cat VERSION) + +# force packages to be built with xz compression, as Ubuntu 21.10 and up use +# zstd compression, which is non-standard, and breaks 'dpkg-sig --verify' +override_dh_builddeb: + dh_builddeb -- -Zxz + +override_dh_auto_build: + cd xray-plugin \ + && GO111MODULE=on \ + env CGO_ENABLED=0 go build -v -trimpath -ldflags "-X main.VERSION=v$(VERSION) -s -w -buildid=" -o "xray-plugin" + +# http://manpages.debian.org/dh_dwz +override_dh_dwz: + # dh_dwz in debhelper versions less than 13 has issues with files that are missing debug symbols (once we update to debhelper-compat 13+ this can be removed) + @# https://packages.debian.org/debhelper + @# https://packages.ubuntu.com/debhelper + +override_dh_auto_install: + install -D -m 0755 xray-plugin/xray-plugin debian/xray-plugin/usr/bin/xray-plugin + +override_dh_shlibdeps: + dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info + +%: + dh $@ diff --git a/deb/xray-plugin/common/source/format b/deb/xray-plugin/common/source/format new file mode 100644 index 0000000..d3827e7 --- /dev/null +++ b/deb/xray-plugin/common/source/format @@ -0,0 +1 @@ +1.0 diff --git a/deb/xray-plugin/debian-bookworm/Dockerfile b/deb/xray-plugin/debian-bookworm/Dockerfile new file mode 100644 index 0000000..779baad --- /dev/null +++ b/deb/xray-plugin/debian-bookworm/Dockerfile @@ -0,0 +1,40 @@ +# syntax=docker/dockerfile:1 + +ARG GO_IMAGE +ARG DISTRO=debian +ARG SUITE=bookworm +ARG VERSION_ID=12 +ARG BUILD_IMAGE=${DISTRO}:${SUITE} + +FROM ${GO_IMAGE} AS golang + +FROM ${BUILD_IMAGE} + +ARG DEBIAN_FRONTEND=noninteractive +RUN apt-get update && apt-get install -y curl devscripts equivs git + +ENV GOPROXY=https://proxy.golang.org|direct +ENV GO111MODULE=off +ENV GOPATH /go +ENV GOTOOLCHAIN=local +ENV PATH $PATH:/usr/local/go/bin:$GOPATH/bin + +ARG COMMON_FILES +COPY --link ${COMMON_FILES} /root/build-deb/debian +RUN apt-get update \ + && mk-build-deps -t "apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends -y" -i /root/build-deb/debian/control + +COPY --link sources/ /sources +ARG DISTRO +ARG SUITE +ARG VERSION_ID +ENV DISTRO=${DISTRO} +ENV SUITE=${SUITE} +ENV VERSION_ID=${VERSION_ID} + +COPY --link --from=golang /usr/local/go /usr/local/go + +WORKDIR /root/build-deb +COPY build-deb /root/build-deb/build-deb + +ENTRYPOINT ["/root/build-deb/build-deb"] diff --git a/deb/xray-plugin/debian-bullseye/Dockerfile b/deb/xray-plugin/debian-bullseye/Dockerfile new file mode 100644 index 0000000..8c8fce7 --- /dev/null +++ b/deb/xray-plugin/debian-bullseye/Dockerfile @@ -0,0 +1,40 @@ +# syntax=docker/dockerfile:1 + +ARG GO_IMAGE +ARG DISTRO=debian +ARG SUITE=bullseye +ARG VERSION_ID=11 +ARG BUILD_IMAGE=${DISTRO}:${SUITE} + +FROM ${GO_IMAGE} AS golang + +FROM ${BUILD_IMAGE} + +ARG DEBIAN_FRONTEND=noninteractive +RUN apt-get update && apt-get install -y curl devscripts equivs git + +ENV GOPROXY=https://proxy.golang.org|direct +ENV GO111MODULE=off +ENV GOPATH /go +ENV GOTOOLCHAIN=local +ENV PATH $PATH:/usr/local/go/bin:$GOPATH/bin + +ARG COMMON_FILES +COPY --link ${COMMON_FILES} /root/build-deb/debian +RUN apt-get update \ + && mk-build-deps -t "apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends -y" -i /root/build-deb/debian/control + +COPY --link sources/ /sources +ARG DISTRO +ARG SUITE +ARG VERSION_ID +ENV DISTRO=${DISTRO} +ENV SUITE=${SUITE} +ENV VERSION_ID=${VERSION_ID} + +COPY --link --from=golang /usr/local/go /usr/local/go + +WORKDIR /root/build-deb +COPY build-deb /root/build-deb/build-deb + +ENTRYPOINT ["/root/build-deb/build-deb"] diff --git a/deb/xray-plugin/debian-buster/Dockerfile b/deb/xray-plugin/debian-buster/Dockerfile new file mode 100644 index 0000000..1ee621a --- /dev/null +++ b/deb/xray-plugin/debian-buster/Dockerfile @@ -0,0 +1,40 @@ +# syntax=docker/dockerfile:1 + +ARG GO_IMAGE +ARG DISTRO=debian +ARG SUITE=buster +ARG VERSION_ID=10 +ARG BUILD_IMAGE=${DISTRO}:${SUITE} + +FROM ${GO_IMAGE} AS golang + +FROM ${BUILD_IMAGE} + +ARG DEBIAN_FRONTEND=noninteractive +RUN apt-get update && apt-get install -y curl devscripts equivs git + +ENV GOPROXY=https://proxy.golang.org|direct +ENV GO111MODULE=off +ENV GOPATH /go +ENV GOTOOLCHAIN=local +ENV PATH $PATH:/usr/local/go/bin:$GOPATH/bin + +ARG COMMON_FILES +COPY --link ${COMMON_FILES} /root/build-deb/debian +RUN apt-get update \ + && mk-build-deps -t "apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends -y" -i /root/build-deb/debian/control + +COPY --link sources/ /sources +ARG DISTRO +ARG SUITE +ARG VERSION_ID +ENV DISTRO=${DISTRO} +ENV SUITE=${SUITE} +ENV VERSION_ID=${VERSION_ID} + +COPY --link --from=golang /usr/local/go /usr/local/go + +WORKDIR /root/build-deb +COPY build-deb /root/build-deb/build-deb + +ENTRYPOINT ["/root/build-deb/build-deb"] diff --git a/deb/xray-plugin/ubuntu-focal/Dockerfile b/deb/xray-plugin/ubuntu-focal/Dockerfile new file mode 100644 index 0000000..0d55c5f --- /dev/null +++ b/deb/xray-plugin/ubuntu-focal/Dockerfile @@ -0,0 +1,46 @@ +# syntax=docker/dockerfile:1 + +ARG GO_IMAGE +ARG DISTRO=ubuntu +ARG SUITE=focal +ARG VERSION_ID=20.04 +ARG BUILD_IMAGE=${DISTRO}:${SUITE} + +FROM ${GO_IMAGE} AS golang + +FROM ${BUILD_IMAGE} + +# Remove diverted man binary to prevent man-pages being replaced with "minimized" message. See docker/for-linux#639 +RUN if [ "$(dpkg-divert --truename /usr/bin/man)" = "/usr/bin/man.REAL" ]; then \ + rm -f /usr/bin/man; \ + dpkg-divert --quiet --remove --rename /usr/bin/man; \ + fi + +ARG DEBIAN_FRONTEND=noninteractive +RUN apt-get update && apt-get install -y curl devscripts equivs git + +ENV GOPROXY=https://proxy.golang.org|direct +ENV GO111MODULE=off +ENV GOPATH /go +ENV GOTOOLCHAIN=local +ENV PATH $PATH:/usr/local/go/bin:$GOPATH/bin + +ARG COMMON_FILES +COPY --link ${COMMON_FILES} /root/build-deb/debian +RUN apt-get update \ + && mk-build-deps -t "apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends -y" -i /root/build-deb/debian/control + +COPY --link sources/ /sources +ARG DISTRO +ARG SUITE +ARG VERSION_ID +ENV DISTRO=${DISTRO} +ENV SUITE=${SUITE} +ENV VERSION_ID=${VERSION_ID} + +COPY --link --from=golang /usr/local/go /usr/local/go + +WORKDIR /root/build-deb +COPY build-deb /root/build-deb/build-deb + +ENTRYPOINT ["/root/build-deb/build-deb"] diff --git a/deb/xray-plugin/ubuntu-jammy/Dockerfile b/deb/xray-plugin/ubuntu-jammy/Dockerfile new file mode 100644 index 0000000..4e63f4f --- /dev/null +++ b/deb/xray-plugin/ubuntu-jammy/Dockerfile @@ -0,0 +1,46 @@ +# syntax=docker/dockerfile:1 + +ARG GO_IMAGE +ARG DISTRO=ubuntu +ARG SUITE=jammy +ARG VERSION_ID=22.04 +ARG BUILD_IMAGE=${DISTRO}:${SUITE} + +FROM ${GO_IMAGE} AS golang + +FROM ${BUILD_IMAGE} + +# Remove diverted man binary to prevent man-pages being replaced with "minimized" message. See docker/for-linux#639 +RUN if [ "$(dpkg-divert --truename /usr/bin/man)" = "/usr/bin/man.REAL" ]; then \ + rm -f /usr/bin/man; \ + dpkg-divert --quiet --remove --rename /usr/bin/man; \ + fi + +ARG DEBIAN_FRONTEND=noninteractive +RUN apt-get update && apt-get install -y curl devscripts equivs git + +ENV GOPROXY=https://proxy.golang.org|direct +ENV GO111MODULE=off +ENV GOPATH /go +ENV GOTOOLCHAIN=local +ENV PATH $PATH:/usr/local/go/bin:$GOPATH/bin + +ARG COMMON_FILES +COPY --link ${COMMON_FILES} /root/build-deb/debian +RUN apt-get update \ + && mk-build-deps -t "apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends -y" -i /root/build-deb/debian/control + +COPY --link sources/ /sources +ARG DISTRO +ARG SUITE +ARG VERSION_ID +ENV DISTRO=${DISTRO} +ENV SUITE=${SUITE} +ENV VERSION_ID=${VERSION_ID} + +COPY --link --from=golang /usr/local/go /usr/local/go + +WORKDIR /root/build-deb +COPY build-deb /root/build-deb/build-deb + +ENTRYPOINT ["/root/build-deb/build-deb"] diff --git a/deb/xray-plugin/ubuntu-noble/Dockerfile b/deb/xray-plugin/ubuntu-noble/Dockerfile new file mode 100644 index 0000000..63f45bf --- /dev/null +++ b/deb/xray-plugin/ubuntu-noble/Dockerfile @@ -0,0 +1,46 @@ +# syntax=docker/dockerfile:1 + +ARG GO_IMAGE +ARG DISTRO=ubuntu +ARG SUITE=noble +ARG VERSION_ID=24.04 +ARG BUILD_IMAGE=${DISTRO}:${SUITE} + +FROM ${GO_IMAGE} AS golang + +FROM ${BUILD_IMAGE} + +# Remove diverted man binary to prevent man-pages being replaced with "minimized" message. See docker/for-linux#639 +RUN if [ "$(dpkg-divert --truename /usr/bin/man)" = "/usr/bin/man.REAL" ]; then \ + rm -f /usr/bin/man; \ + dpkg-divert --quiet --remove --rename /usr/bin/man; \ + fi + +ARG DEBIAN_FRONTEND=noninteractive +RUN apt-get update && apt-get install -y curl devscripts equivs git + +ENV GOPROXY=https://proxy.golang.org|direct +ENV GO111MODULE=off +ENV GOPATH /go +ENV GOTOOLCHAIN=local +ENV PATH $PATH:/usr/local/go/bin:$GOPATH/bin + +ARG COMMON_FILES +COPY --link ${COMMON_FILES} /root/build-deb/debian +RUN apt-get update \ + && mk-build-deps -t "apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends -y" -i /root/build-deb/debian/control + +COPY --link sources/ /sources +ARG DISTRO +ARG SUITE +ARG VERSION_ID +ENV DISTRO=${DISTRO} +ENV SUITE=${SUITE} +ENV VERSION_ID=${VERSION_ID} + +COPY --link --from=golang /usr/local/go /usr/local/go + +WORKDIR /root/build-deb +COPY build-deb /root/build-deb/build-deb + +ENTRYPOINT ["/root/build-deb/build-deb"] diff --git a/rpm/xray-plugin/xray-plugin.spec b/rpm/xray-plugin/xray-plugin.spec new file mode 100644 index 0000000..3a385cf --- /dev/null +++ b/rpm/xray-plugin/xray-plugin.spec @@ -0,0 +1,115 @@ +# +# spec file for package xray-plugin +# +Name: xray-plugin +Version: 1.8.11 +Release: 1%{?dist} +Summary: A SIP003 plugin for shadowsocks +License: MIT +Group: Productivity/Networking/Security +URL: https://github.com/teddysun/xray-plugin +Source0: %{name}-%{version}.tar.gz +BuildRequires: bash + +%global debug_package %{nil} +%global _missing_build_ids_terminate_build 0 + +%description +Yet another SIP003 plugin for shadowsocks, based on xray-core + +%prep +%setup -q + +%build + +export CGO_ENABLED=0 +go build -v -trimpath -ldflags "-X main.VERSION=v%{version} -s -w -buildid=" -o xray-plugin + +%install +# install binary +install -D -p -m 0755 xray-plugin %{buildroot}%{_bindir}/xray-plugin + +%files +%defattr(-,root,root) +%doc README.md +%{_bindir}/xray-plugin +%license LICENSE + +%changelog +* Fri Apr 26 2024 Teddysun - 1.8.11-1 +- Update to version 1.8.11 + +* Sat Mar 30 2024 Teddysun - 1.8.10-1 +- Update to version 1.8.10 + +* Mon Mar 11 2024 Teddysun - 1.8.9-1 +- Update to version 1.8.9 + +* Mon Feb 26 2024 Teddysun - 1.8.8-1 +- Update to version 1.8.8 + +* Mon Jan 08 2024 Teddysun - 1.8.7-1 +- Update to version 1.8.7 + +* Sat Nov 18 2023 Teddysun - 1.8.6-1 +- Update to version 1.8.6 + +* Tue Nov 14 2023 Teddysun - 1.8.5-1 +- Update to version 1.8.5 + +* Tue Aug 29 2023 Teddysun - 1.8.4-1 +- Update version to 1.8.4 + +* Mon Jun 19 2023 Teddysun - 1.8.3-1 +- Update version to 1.8.3 + +* Tue Apr 18 2023 Teddysun - 1.8.1-1 +- Update version to 1.8.1 + +* Sat Mar 11 2023 Teddysun - 1.8.0-1 +- Update version to 1.8.0 + +* Thu Feb 09 2023 Teddysun - 1.7.5-1 +- Update version to 1.7.5 + +* Thu Feb 02 2023 Teddysun - 1.7.3-1 +- Update version to 1.7.3 + +* Sun Jan 08 2023 Teddysun - 1.7.2-1 +- Update version to 1.7.2 + +* Mon Dec 26 2022 Teddysun - 1.7.0-1 +- Update version to 1.7.0 + +* Mon Dec 12 2022 Teddysun - 1.6.6-1 +- Update version to 1.6.6 + +* Mon Nov 28 2022 Teddysun - 1.6.5-1 +- Update version to 1.6.5 + +* Mon Nov 14 2022 Teddysun - 1.6.4-1 +- Update version to 1.6.4 + +* Mon Nov 07 2022 Teddysun - 1.6.3-1 +- Update version to 1.6.3 + +* Sat Oct 29 2022 Teddysun - 1.6.2-1 +- Update version to 1.6.2 + +* Sat Oct 22 2022 Teddysun - 1.6.1-1 +- Update version to 1.6.1 + +* Tue Sep 20 2022 Teddysun - 1.6.0-1 +- Update version to 1.6.0 + +* Mon Aug 29 2022 Teddysun - 1.5.10-1 +- Update version to 1.5.10 + +* Sat Jul 16 2022 Teddysun - 1.5.9-1 +- Update version to 1.5.9 + +* Mon Jun 20 2022 Teddysun - 1.5.8-1 +- Update version to 1.5.8 + +* Thu Jun 16 2022 Teddysun - 1.5.7-1 +- Update version to 1.5.7