From 062be1a8f9c2e8fb977688e6e5fa364ac7de59d7 Mon Sep 17 00:00:00 2001 From: GuangJie1 Date: Fri, 16 May 2025 15:32:50 +0800 Subject: [PATCH] add basic applications add dhcp --- .../apr-util/1.7.6/24.03-lts-sp1/Dockerfile | 26 ++++ Others/apr-util/meta.yml | 2 + Others/bcache/1.1/24.03-lts-sp1/Dockerfile | 31 +++++ .../Export-CACHED_UUID-and-CACHED_LABEL.patch | 128 ++++++++++++++++++ Others/bcache/meta.yml | 2 + Others/dpdk/25.03/24.03-lts-sp1/Dockerfile | 25 ++++ Others/dpdk/meta.yml | 2 + Others/edk2/202502/24.03-lts-sp1/Dockerfile | 19 +++ Others/edk2/meta.yml | 2 + Others/glibc/2.41/24.03-lts-sp1/Dockerfile | 26 ++++ Others/glibc/meta.yml | 2 + Others/npmjs/20.18.2/24.03-lts-sp1/Dockerfile | 14 -- .../npmjs/20.18.2/24.03-lts-sp1/entrypoint.sh | 73 ---------- Others/npmjs/meta.yml | 2 - Others/spdk/24.09/24.03-lts-sp1/Dockerfile | 22 +++ Others/spdk/meta.yml | 2 + 16 files changed, 289 insertions(+), 89 deletions(-) create mode 100644 Others/apr-util/1.7.6/24.03-lts-sp1/Dockerfile create mode 100644 Others/apr-util/meta.yml create mode 100644 Others/bcache/1.1/24.03-lts-sp1/Dockerfile create mode 100644 Others/bcache/1.1/24.03-lts-sp1/Export-CACHED_UUID-and-CACHED_LABEL.patch create mode 100644 Others/bcache/meta.yml create mode 100644 Others/dpdk/25.03/24.03-lts-sp1/Dockerfile create mode 100644 Others/dpdk/meta.yml create mode 100644 Others/edk2/202502/24.03-lts-sp1/Dockerfile create mode 100644 Others/edk2/meta.yml create mode 100644 Others/glibc/2.41/24.03-lts-sp1/Dockerfile create mode 100644 Others/glibc/meta.yml delete mode 100644 Others/npmjs/20.18.2/24.03-lts-sp1/Dockerfile delete mode 100644 Others/npmjs/20.18.2/24.03-lts-sp1/entrypoint.sh delete mode 100644 Others/npmjs/meta.yml create mode 100644 Others/spdk/24.09/24.03-lts-sp1/Dockerfile create mode 100644 Others/spdk/meta.yml diff --git a/Others/apr-util/1.7.6/24.03-lts-sp1/Dockerfile b/Others/apr-util/1.7.6/24.03-lts-sp1/Dockerfile new file mode 100644 index 0000000..75e67ae --- /dev/null +++ b/Others/apr-util/1.7.6/24.03-lts-sp1/Dockerfile @@ -0,0 +1,26 @@ +ARG BASE=openeuler/openeuler:24.03-lts-sp1 +FROM ${BASE} as BUILDER +ARG VERSION=1.7.6 + +RUN dnf update -y && \ + dnf install -y \ + wget \ + gcc \ + make \ + libtool \ + && dnf clean all \ + && rm -rf /var/cache/dnf/* + +WORKDIR /opt + +RUN wget https://dlcdn.apache.org/apr/apr-${VERSION}.tar.gz \ + && tar -zxvf apr-${VERSION}.tar.gz \ + && rm -f apr-${VERSION}.tar.gz + +WORKDIR /opt/apr-${VERSION} + +RUN ./configure \ + && make -j$(nproc) \ + && make install + +CMD ["/usr/local/apr/bin/apr-1-config"] diff --git a/Others/apr-util/meta.yml b/Others/apr-util/meta.yml new file mode 100644 index 0000000..a67abd7 --- /dev/null +++ b/Others/apr-util/meta.yml @@ -0,0 +1,2 @@ +1.7.6-oe2403sp1: + path: 1.7.6/24.03-lts-sp1/Dockerfile diff --git a/Others/bcache/1.1/24.03-lts-sp1/Dockerfile b/Others/bcache/1.1/24.03-lts-sp1/Dockerfile new file mode 100644 index 0000000..200daf5 --- /dev/null +++ b/Others/bcache/1.1/24.03-lts-sp1/Dockerfile @@ -0,0 +1,31 @@ +ARG BASE=openeuler/openeuler:24.03-lts-sp1 +FROM ${BASE} as BUILDER +ARG VERSION=1.1 + +RUN dnf update -y && \ + dnf install -y \ + wget \ + gcc \ + make \ + patch \ + util-linux-devel \ + libuuid-devel \ + && dnf clean all \ + && rm -rf /var/cache/dnf/* + +WORKDIR /opt + +COPY Export-CACHED_UUID-and-CACHED_LABEL.patch . + +RUN wget https://git.kernel.org/pub/scm/linux/kernel/git/colyli/bcache-tools.git/snapshot/bcache-tools-${VERSION}.tar.gz \ + && tar -zxvf bcache-tools-${VERSION}.tar.gz \ + && rm -f bcache-tools-${VERSION}.tar.gz + +WORKDIR /opt/bcache-tools-${VERSION} + +RUN mkdir -p /usr/share/man/man8 \ + && patch -p1 < ../Export-CACHED_UUID-and-CACHED_LABEL.patch \ + && make -j$(nproc) \ + && make install + +CMD ["make-bcache"] diff --git a/Others/bcache/1.1/24.03-lts-sp1/Export-CACHED_UUID-and-CACHED_LABEL.patch b/Others/bcache/1.1/24.03-lts-sp1/Export-CACHED_UUID-and-CACHED_LABEL.patch new file mode 100644 index 0000000..c107e51 --- /dev/null +++ b/Others/bcache/1.1/24.03-lts-sp1/Export-CACHED_UUID-and-CACHED_LABEL.patch @@ -0,0 +1,128 @@ +From 2cfea71ab753fc65f1d97b0af327e6e9e3fa204b Mon Sep 17 00:00:00 2001 +From: Ryan Harper +Date: Wed, 19 Aug 2020 18:51:27 +0800 +Subject: [PATCH] bcache-tools: Export CACHED_UUID and CACHED_LABEL + +https://github.com/koverstreet/bcache-tools/pull/1 + +Add bcache-export-cached helper to export CACHED_UUID and CACHED_LABEL always + +Linux kernel bcache driver does not always emit a uevent[1] for when +a backing device is bound to a bcacheN device. When this happens, the udev +rule for creating /dev/bcache/by-uuid or /dev/bcache/by-label symlinks does +not fire and removes any persistent symlink to a specific backing device +since the bcache minor numbers (bcache0, 1, 2) are not guaranteed across reboots. + +This script reads the superblock of the bcache device slaves,ensuring the slave +is a backing device via sb.version check, extracts the dev.uuid and +dev.label values and exports them to udev for triggering the symlink rules in +the existing rules file. + +1. https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1729145 + +Signed-off-by: Shaoxiong Li +Signed-off-by: Coly Li +--- + 69-bcache.rules | 7 +++---- + Makefile | 2 +- + bcache-export-cached | 31 +++++++++++++++++++++++++++++++ + initcpio/install | 1 + + initramfs/hook | 1 + + 5 files changed, 37 insertions(+), 5 deletions(-) + create mode 100644 bcache-export-cached + +diff --git a/69-bcache.rules b/69-bcache.rules +index 9cc7f0d..fd25f5b 100644 +--- a/69-bcache.rules ++++ b/69-bcache.rules +@@ -23,10 +23,9 @@ RUN+="bcache-register $tempnode" + LABEL="bcache_backing_end" + + # Cached devices: symlink +-DRIVER=="bcache", ENV{CACHED_UUID}=="?*", \ +- SYMLINK+="bcache/by-uuid/$env{CACHED_UUID}" +-DRIVER=="bcache", ENV{CACHED_LABEL}=="?*", \ +- SYMLINK+="bcache/by-label/$env{CACHED_LABEL}" ++IMPORT{program}="bcache-export-cached $tempnode" ++ENV{CACHED_UUID}=="?*", SYMLINK+="bcache/by-uuid/$env{CACHED_UUID}" ++ENV{CACHED_LABEL}=="?*", SYMLINK+="bcache/by-label/$env{CACHED_LABEL}" + + LABEL="bcache_end" + +diff --git a/Makefile b/Makefile +index 8b87a67..90db951 100644 +--- a/Makefile ++++ b/Makefile +@@ -9,7 +9,7 @@ all: make-bcache probe-bcache bcache-super-show bcache-register bcache + + install: make-bcache probe-bcache bcache-super-show + $(INSTALL) -m0755 make-bcache bcache-super-show bcache $(DESTDIR)${PREFIX}/sbin/ +- $(INSTALL) -m0755 probe-bcache bcache-register $(DESTDIR)$(UDEVLIBDIR)/ ++ $(INSTALL) -m0755 probe-bcache bcache-register bcache-export-cached $(DESTDIR)$(UDEVLIBDIR)/ + $(INSTALL) -m0644 69-bcache.rules $(DESTDIR)$(UDEVLIBDIR)/rules.d/ + $(INSTALL) -m0644 -- *.8 $(DESTDIR)${PREFIX}/share/man/man8/ + $(INSTALL) -D -m0755 initramfs/hook $(DESTDIR)/usr/share/initramfs-tools/hooks/bcache +diff --git a/bcache-export-cached b/bcache-export-cached +new file mode 100644 +index 0000000..b345922 +--- /dev/null ++++ b/bcache-export-cached +@@ -0,0 +1,31 @@ ++#!/bin/sh ++# ++# This program reads the bcache superblock on bcacheX slaves to extract the ++# dev.uuid and dev.label which refer to a specific backing device. ++# ++# It integrates with udev 'import' by writing CACHED_UUID=X and optionally ++# CACHED_LABEL=X for the backing device of the provided bcache device. ++# Ignore caching devices by skipping unless sb.version=1 ++# ++# There is 1 and only 1 backing device (slaves/*) for a bcache device. ++ ++TEMPNODE=${1} # /dev/bcacheN ++DEVNAME=${TEMPNODE##*/} # /dev/bcacheN -> bcacheN ++ ++for slave in "/sys/class/block/$DEVNAME/slaves"/*; do ++ [ -d "$slave" ] || continue ++ bcache-super-show "/dev/${slave##*/}" | ++ awk '$1 == "sb.version" { sbver=$2; } ++ $1 == "dev.uuid" { uuid=$2; } ++ $1 == "dev.label" && $2 != "(empty)" { label=$2; } ++ END { ++ if (sbver == 1 && uuid) { ++ print("CACHED_UUID=" uuid) ++ if (label) print("CACHED_LABEL=" label) ++ exit(0) ++ } ++ exit(1); ++ }' ++ # awk exits 0 if it found a backing device. ++ [ $? -eq 0 ] && exit 0 ++done +diff --git a/initcpio/install b/initcpio/install +index 72d4231..c1a86fe 100755 +--- a/initcpio/install ++++ b/initcpio/install +@@ -1,6 +1,7 @@ + #!/bin/bash + build() { + add_module bcache ++ add_binary /usr/lib/udev/bcache-export-cached + add_binary /usr/lib/udev/bcache-register + add_binary /usr/lib/udev/probe-bcache + add_file /usr/lib/udev/rules.d/69-bcache.rules +diff --git a/initramfs/hook b/initramfs/hook +index a6baa24..485491d 100755 +--- a/initramfs/hook ++++ b/initramfs/hook +@@ -22,6 +22,7 @@ elif [ -e /lib/udev/rules.d/69-bcache.rules ]; then + cp -pt "${DESTDIR}/lib/udev/rules.d" /lib/udev/rules.d/69-bcache.rules + fi + ++copy_exec /lib/udev/bcache-export-cached + copy_exec /lib/udev/bcache-register + copy_exec /lib/udev/probe-bcache + manual_add_modules bcache +-- +2.33.0 + diff --git a/Others/bcache/meta.yml b/Others/bcache/meta.yml new file mode 100644 index 0000000..98ff6ed --- /dev/null +++ b/Others/bcache/meta.yml @@ -0,0 +1,2 @@ +1.1-oe2403sp1: + path: 1.1/24.03-lts-sp1/Dockerfile diff --git a/Others/dpdk/25.03/24.03-lts-sp1/Dockerfile b/Others/dpdk/25.03/24.03-lts-sp1/Dockerfile new file mode 100644 index 0000000..7b29b3f --- /dev/null +++ b/Others/dpdk/25.03/24.03-lts-sp1/Dockerfile @@ -0,0 +1,25 @@ +ARG BASE=openeuler/openeuler:24.03-lts-sp1 +FROM ${BASE} AS builder +ARG VERSION=25.03 + +RUN dnf install -y \ + git meson ninja-build gcc make \ + numactl-devel elfutils-libelf-devel \ + python3-pyelftools pkgconfig \ + && dnf clean all \ + && rm -rf /var/cache/dnf + +RUN git clone -b v${VERSION} --depth 1 https://github.com/DPDK/dpdk.git /dpdk && \ + git config --global --add safe.directory /dpdk + +WORKDIR /dpdk + +RUN meson setup build -Dplatform=generic && \ + cd build && \ + ninja && \ + meson install + +ENV PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:$PKG_CONFIG_PATH \ + LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH + +CMD ["bash"] \ No newline at end of file diff --git a/Others/dpdk/meta.yml b/Others/dpdk/meta.yml new file mode 100644 index 0000000..f565308 --- /dev/null +++ b/Others/dpdk/meta.yml @@ -0,0 +1,2 @@ +25.03-oe2403sp1: + path: 25.03/24.03-lts-sp1/Dockerfile diff --git a/Others/edk2/202502/24.03-lts-sp1/Dockerfile b/Others/edk2/202502/24.03-lts-sp1/Dockerfile new file mode 100644 index 0000000..99973b6 --- /dev/null +++ b/Others/edk2/202502/24.03-lts-sp1/Dockerfile @@ -0,0 +1,19 @@ +ARG BASE=openeuler/openeuler:24.03-lts-sp1 +FROM ${BASE} +ARG VERSION=202502 + +RUN dnf install -y git gcc-c++ make libuuid-devel python \ + && dnf clean all \ + && rm -rf /var/cache/dnf/* + +WORKDIR /opt + +RUN git clone -b edk2-stable${VERSION} https://github.com/tianocore/edk2 && \ + cd edk2 && \ + git submodule update --init --recursive + +WORKDIR /opt/edk2 + +RUN make -C BaseTools + +CMD ["bash"] diff --git a/Others/edk2/meta.yml b/Others/edk2/meta.yml new file mode 100644 index 0000000..97e62a9 --- /dev/null +++ b/Others/edk2/meta.yml @@ -0,0 +1,2 @@ +202502-oe2403sp1: + path: 202502/24.03-lts-sp1/Dockerfile diff --git a/Others/glibc/2.41/24.03-lts-sp1/Dockerfile b/Others/glibc/2.41/24.03-lts-sp1/Dockerfile new file mode 100644 index 0000000..ebca193 --- /dev/null +++ b/Others/glibc/2.41/24.03-lts-sp1/Dockerfile @@ -0,0 +1,26 @@ +ARG BASE=openeuler/openeuler:24.03-lts-sp1 +FROM ${BASE} as BUILDER +ARG VERSION=2.41 + +RUN dnf update -y && \ + dnf install -y \ + bison \ + gcc \ + gcc-c++ \ + make \ + git \ + && dnf clean all \ + && rm -rf /var/cache/dnf/* + +WORKDIR /opt +RUN git clone -b release/${VERSION}/master --depth=1 https://sourceware.org/git/glibc.git + +WORKDIR /opt/glibc/build +RUN ../configure --prefix=/opt/glibc-${VERSION} && \ + make -j$(nproc) && \ + make install + +FROM ${BASE} +ARG VERSION=2.41 +COPY --from=BUILDER /opt/glibc-${VERSION} /opt/glibc-${VERSION} +CMD ["/opt/glibc-2.41/bin/ldd", "--version"] diff --git a/Others/glibc/meta.yml b/Others/glibc/meta.yml new file mode 100644 index 0000000..4283be5 --- /dev/null +++ b/Others/glibc/meta.yml @@ -0,0 +1,2 @@ +2.41-oe2403sp1: + path: 2.41/24.03-lts-sp1/Dockerfile diff --git a/Others/npmjs/20.18.2/24.03-lts-sp1/Dockerfile b/Others/npmjs/20.18.2/24.03-lts-sp1/Dockerfile deleted file mode 100644 index a47e83b..0000000 --- a/Others/npmjs/20.18.2/24.03-lts-sp1/Dockerfile +++ /dev/null @@ -1,14 +0,0 @@ -ARG BASE=openeuler/openeuler:24.03-lts-sp1 -FROM ${BASE} - -RUN yum update -y && \ - yum install -y nodejs jq && \ - yum clean all && \ - rm -rf /var/cache/yum - -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x /entrypoint.sh - -WORKDIR /tmp - -ENTRYPOINT ["/entrypoint.sh"] \ No newline at end of file diff --git a/Others/npmjs/20.18.2/24.03-lts-sp1/entrypoint.sh b/Others/npmjs/20.18.2/24.03-lts-sp1/entrypoint.sh deleted file mode 100644 index f2a39fd..0000000 --- a/Others/npmjs/20.18.2/24.03-lts-sp1/entrypoint.sh +++ /dev/null @@ -1,73 +0,0 @@ -#!/bin/bash - -# Configuration with date-based paths -EXECUTION_TIME=$(date +%s) -NPM_ROOT_DIR="/var/run/npm" -NPM_JSON_FILE="$NPM_ROOT_DIR/result.json" -NPM_CENTRAL_URL="https://www.npmjs.com/package" - -if [ $# -eq 0 ]; then - echo "No packages specified. Nothing to do." - exit 0 -fi - -# Initialize files with execution info -mkdir -p "$NPM_ROOT_DIR" -cat > "$NPM_JSON_FILE" <> "$log" 2>&1 - local status=$? - - local version="\"\"" - local url="\"\"" - if [ $status -eq 0 ]; then - version="$(npm list --depth=0 --json | jq -r ".dependencies.\"${pkg}\".version")" - url="\"$NPM_CENTRAL_URL/$pkg\"" - fi - - local end_time=$(date +%s) - local duration=$(( end_time - start_time )) - - # Build package JSON entry - json_packages+="$(cat < "$NPM_JSON_FILE" <