diff --git a/longhornio/longhorn-engine/1.6.2/0001-port-to-loong64.patch b/longhornio/longhorn-engine/1.6.2/0001-port-to-loong64.patch new file mode 100644 index 00000000..c5aefbdf --- /dev/null +++ b/longhornio/longhorn-engine/1.6.2/0001-port-to-loong64.patch @@ -0,0 +1,130 @@ +diff --git a/go.mod b/go.mod +index 317bc51..dfac060 100644 +--- a/go.mod ++++ b/go.mod +@@ -1,8 +1,6 @@ + module github.com/longhorn/longhorn-engine + +-go 1.22.0 +- +-toolchain go1.22.3 ++go 1.22 + + require ( + github.com/docker/go-units v0.3.3 +diff --git a/package/Dockerfile b/package/Dockerfile +index 7d9dd93..d32e88a 100644 +--- a/package/Dockerfile ++++ b/package/Dockerfile +@@ -1,17 +1,14 @@ +-FROM registry.suse.com/bci/bci-base:15.5 AS builder ++FROM cr.loongnix.cn/openanolis/anolisos:8.9 AS builder + +-ARG ARCH=amd64 +- +-RUN zypper -n addrepo --refresh https://download.opensuse.org/repositories/system:/snappy/SLE_15/system:snappy.repo && \ +- zypper -n addrepo --refresh https://download.opensuse.org/repositories/network:/utilities/SLE_15_SP5/network:utilities.repo && \ +- zypper --gpg-auto-import-keys ref ++ARG ARCH=loongarch64 + +-RUN zypper -n install cmake curl git gcc wget xsltproc docbook-xsl-stylesheets && \ +- rm -rf /var/cache/zypp/* ++#RUN yum install -y cmake curl git gcc wget xsltproc docbook-xsl-stylesheets ++RUN yum install -y cmake curl git gcc wget libxslt-devel docbook-style-xsl + + # Build liblonghorn + ENV LIBLONGHORN_COMMIT_ID 53d1c063b95efc8d949b095bd4bf04637230265f +-RUN cd /usr/src && \ ++RUN mkdir -p /usr/src && \ ++ cd /usr/src && \ + git clone https://github.com/rancher/liblonghorn.git && \ + cd liblonghorn && \ + git checkout ${LIBLONGHORN_COMMIT_ID} && \ +@@ -28,20 +25,16 @@ RUN cd /usr/src && \ + make install + + # Install grpc_health_probe +-RUN wget https://github.com/grpc-ecosystem/grpc-health-probe/releases/download/v0.4.24/grpc_health_probe-linux-${ARCH} -O /usr/local/bin/grpc_health_probe && \ ++RUN wget https://github.com/Loongson-Cloud-Community/grpc-health-probe/releases/download/v0.4.24/grpc_health_probe-linux-loongarch64 -O /usr/local/bin/grpc_health_probe && \ + chmod +x /usr/local/bin/grpc_health_probe + +-FROM registry.suse.com/bci/bci-base:15.5 AS release ++FROM cr.loongnix.cn/openanolis/anolisos:8.9 AS release + + ARG ARCH=amd64 + +-RUN zypper -n addrepo --refresh https://download.opensuse.org/repositories/system:/snappy/SLE_15/system:snappy.repo && \ +- zypper -n addrepo --refresh https://download.opensuse.org/repositories/network:/utilities/SLE_15_SP5/network:utilities.repo && \ +- zypper --gpg-auto-import-keys ref + +-RUN zypper -n install nfs-client nfs4-acl-tools cifs-utils libaio1 sg3_utils \ +- iputils iproute2 qemu-tools e2fsprogs && \ +- rm -rf /var/cache/zypp/* ++RUN yum install -y nfs-utils nfs4-acl-tools cifs-utils libaio-devel sg3_utils \ ++ iputils iproute qemu-kvm e2fsprogs + + # Copy pre-built binaries from builder + COPY --from=builder \ +@@ -61,7 +54,8 @@ VOLUME /usr/local/bin + + # Add Tini + ENV TINI_VERSION v0.19.0 +-ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-${ARCH} /tini ++#ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-${ARCH} /tini ++ADD https://github.com/Loongson-Cloud-Community/tini/releases/download/v0.19.0/tini-static /tini + RUN chmod +x /tini + ENTRYPOINT ["/tini", "--"] + +diff --git a/scripts/build b/scripts/build +index 21106ff..4d02565 100755 +--- a/scripts/build ++++ b/scripts/build +@@ -20,3 +20,4 @@ cd $(dirname $0)/.. + + mkdir -p bin + go build -o bin/longhorn -tags netgo -ldflags "$LINKFLAGS" $COVER $COVERPKG ++#go build -o bin/longhorn -ldflags "$LINKFLAGS" $COVER $COVERPKG +diff --git a/scripts/package b/scripts/package +index ec3d882..577e796 100755 +--- a/scripts/package ++++ b/scripts/package +@@ -8,8 +8,8 @@ cd $(dirname $0)/.. + PROJECT=`basename "$PWD"` + + TAG=${TAG:-${VERSION}} +-REPO=${REPO:-longhornio} +-IMAGE=${REPO}/${PROJECT}:${TAG} ++REPO=${REPO:-cr.loongnix.cn/longhornio} ++IMAGE=${REPO}/${PROJECT}:1.6.2 + + case $(uname -m) in + aarch64 | arm64) +@@ -20,6 +20,9 @@ case $(uname -m) in + ;; + s390x) + ARCH=s390x ++ ;; ++ loongarch64) ++ ARCH=loong64 + ;; + *) + echo "$(uname -a): unsupported architecture" +@@ -30,13 +33,14 @@ if [ ! -x ./bin/longhorn ]; then + ./scripts/build + fi + +-cp /usr/local/bin/longhorn-instance-manager ./bin/ ++wget https://github.com/Loongson-Cloud-Community/longhorn-instance-manager/releases/download/v1.6.2/longhorn-instance-manager -O ./bin/longhorn-instance-manager ++#cp /usr/local/bin/longhorn-instance-manager ./bin/ + + # update base image to get latest changes + grep FROM package/Dockerfile | awk '{print $2}' | while read -r BASE_IMAGE +-do +- docker pull "$BASE_IMAGE" +-done ++#do ++# docker pull "$BASE_IMAGE" ++#done + + docker build --build-arg ARCH=${ARCH} -t ${IMAGE} -f package/Dockerfile . + diff --git a/longhornio/longhorn-engine/1.6.2/Makefile b/longhornio/longhorn-engine/1.6.2/Makefile new file mode 100644 index 00000000..26b7e3f8 --- /dev/null +++ b/longhornio/longhorn-engine/1.6.2/Makefile @@ -0,0 +1,57 @@ +# This file is generated by the template. + +REGISTRY?=cr.loongnix.cn +ORGANIZATION?=longhornio +REPOSITORY?=longhorn-engine +TAG?=1.6.2 +LATEST?=true + +IMAGE=$(REGISTRY)/$(ORGANIZATION)/$(REPOSITORY):$(TAG) +LATEST_IMAGE=$(REGISTRY)/$(ORGANIZATION)/$(REPOSITORY):latest + +# SOURCE_URL is a url to download source, such as https://github.com/merore/merore.git. +# SOURCE is project sources, its located at src/$(SORUCE). +# PATCH is a patch that supports loong64 to $(SOURCE). +# Be sure to fill in the follows!!! +SOURCE_URL=https://github.com/longhorn/$(REPOSITORY) +SOURCE=$(shell echo $(SOURCE_URL) | awk -F '/' '{print $$NF}' | awk -F '.' '{print $$1}') +PATCH=0001-port-to-loong64.patch + +default: image + +image: go-env src/$(SOURCE) + cd src/$(SOURCE) && \ + wget https://github.com/Loongson-Cloud-Community/longhorn-engine/releases/download/v1.6.2/longhorn && \ + chmod +x longhorn && mkdir bin && mv longhorn bin/ && \ + bash scripts/package + +go-env: + cd /usr/local && \ + wget http://ftp.loongnix.cn/toolchain/golang/go-1.22/abi1.0/go1.22.4.linux-loong64.tar.gz && tar xf go1.22.4.linux-loong64.tar.gz && \ + export PATH=/usr/local/go/bin:$(PATH) + +src/$(SOURCE): libqcow + git clone -b v$(TAG) --depth=1 $(SOURCE_URL) $@ + cd $@ && \ + git apply ../../$(PATCH) + +libqcow: + wget https://s3-us-west-1.amazonaws.com/rancher-longhorn/libqcow-alpha-20181117.tar.gz && tar xf libqcow-alpha-20181117.tar.gz && \ + cd libqcow-20181117 && \ + wget -O config.guess 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD' && \ + wget -O config.sub 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD' && \ + ./configure && \ + make -j$(nproc) && \ + make install && \ + ldconfig + +push: + docker push $(IMAGE) + @if [ $(LATEST) = "true" ]; \ + then\ + docker tag $(IMAGE) $(LATEST_IMAGE); \ + docker push $(LATEST_IMAGE); \ + fi + +clean: + rm -rf src libqcow* /usr/local/go1.22.4.linux-loong64.tar.gz /usr/local/go diff --git a/longhornio/longhorn-manager/1.6.2/0001-port-to-loong64.patch b/longhornio/longhorn-manager/1.6.2/0001-port-to-loong64.patch index bc3b348f..405eac0f 100644 --- a/longhornio/longhorn-manager/1.6.2/0001-port-to-loong64.patch +++ b/longhornio/longhorn-manager/1.6.2/0001-port-to-loong64.patch @@ -12,6 +12,18 @@ index 78839b9..2200d04 100644 @@chmod +x .dapper.tmp @./.dapper.tmp -v @mv .dapper.tmp .dapper +diff --git a/go.mod b/go.mod +index c53c513..96347c9 100644 +--- a/go.mod ++++ b/go.mod +@@ -1,6 +1,6 @@ + module github.com/longhorn/longhorn-manager + +-go 1.22.2 ++go 1.22 + + toolchain go1.22.3 + diff --git a/package/Dockerfile b/package/Dockerfile index 53a7649..3573173 100644 --- a/package/Dockerfile @@ -27,7 +39,7 @@ index 53a7649..3573173 100644 COPY bin package/launch-manager package/nsmounter /usr/local/sbin/ diff --git a/scripts/package b/scripts/package -index f276177..475e420 100755 +index f276177..1131a6a 100755 --- a/scripts/package +++ b/scripts/package @@ -10,8 +10,8 @@ SUFFIX="" @@ -41,3 +53,12 @@ index f276177..475e420 100755 if [ ! -e ./bin/longhorn-manager ]; then ./scripts/build +@@ -21,7 +21,7 @@ trap 'rm -rf ./package/bin' exit + + # update base image to get latest changes + BASE_IMAGE=`grep FROM package/Dockerfile | awk '{print $2}'` +-docker pull ${BASE_IMAGE} ++#docker pull ${BASE_IMAGE} + + docker build -t ${IMAGE} -f package/Dockerfile . + diff --git a/longhornio/longhorn-manager/1.6.2/Makefile b/longhornio/longhorn-manager/1.6.2/Makefile index 158e5153..42114da8 100644 --- a/longhornio/longhorn-manager/1.6.2/Makefile +++ b/longhornio/longhorn-manager/1.6.2/Makefile @@ -4,7 +4,7 @@ REGISTRY?=cr.loongnix.cn ORGANIZATION?=longhornio REPOSITORY?=longhorn-manager TAG?=1.6.2 -LATEST?=true +LATEST?=false IMAGE=$(REGISTRY)/$(ORGANIZATION)/$(REPOSITORY):$(TAG) LATEST_IMAGE=$(REGISTRY)/$(ORGANIZATION)/$(REPOSITORY):latest @@ -19,9 +19,16 @@ PATCH=0001-port-to-loong64.patch default: image -image: src/$(SOURCE) -# Commands for building. - cd src/$(SOURCE) && bash scripts/package +image: go-env src/$(SOURCE) + cd src/$(SOURCE) && \ + wget https://github.com/Loongson-Cloud-Community/longhorn-manager/releases/download/v1.6.2/longhorn-manager && \ + chmod +x longhorn-manager && mkdir bin && mv longhorn-manager bin/ && \ + bash scripts/package + +go-env: + cd /usr/local && \ + wget http://ftp.loongnix.cn/toolchain/golang/go-1.22/abi1.0/go1.22.4.linux-loong64.tar.gz && tar xf go1.22.4.linux-loong64.tar.gz && \ + export PATH=/usr/local/go/bin:$(PATH) src/$(SOURCE): git clone -q -b v$(TAG) --depth=1 $(SOURCE_URL) $@ @@ -37,4 +44,4 @@ push: fi clean: - rm -rf src + rm -rf src /usr/local/go1.22.4.linux-loong64.tar.gz /usr/local/go