From 2fa4d88ea87f32c0831aa746b22a6a6fcd36b367 Mon Sep 17 00:00:00 2001 From: kulukami Date: Wed, 27 Dec 2023 10:07:24 +0800 Subject: [PATCH] add missing build_script --- .github/workflows/Elkeid_driver_build.yml | 86 ++++++++++++++++++ .github/workflows/Elkeid_driver_release.yml | 88 +++++++++++++++++++ driver/dockerfiles.x86_64/Dockerfile.oracle7 | 16 ++++ .../dockerfiles.x86_64/Dockerfile.oracle8_uek | 18 ++++ driver/dockerfiles.x86_64/Dockerfile.rocky8 | 4 +- driver/dockerfiles.x86_64/Dockerfile.rocky9 | 8 +- driver/tools/ubuntu12_headers.py | 35 ++++++++ driver/tools/ubuntu14_k3_headers.py | 34 +++++++ driver/tools/ubuntu14_k4_headers.py | 35 ++++++++ driver/tools/ubuntu18_k418_headers.py | 32 +++++++ 10 files changed, 352 insertions(+), 4 deletions(-) create mode 100644 driver/dockerfiles.x86_64/Dockerfile.oracle7 create mode 100644 driver/dockerfiles.x86_64/Dockerfile.oracle8_uek create mode 100644 driver/tools/ubuntu12_headers.py create mode 100644 driver/tools/ubuntu14_k3_headers.py create mode 100644 driver/tools/ubuntu14_k4_headers.py create mode 100644 driver/tools/ubuntu18_k418_headers.py diff --git a/.github/workflows/Elkeid_driver_build.yml b/.github/workflows/Elkeid_driver_build.yml index f30524245..a95fd5c12 100644 --- a/.github/workflows/Elkeid_driver_build.yml +++ b/.github/workflows/Elkeid_driver_build.yml @@ -696,6 +696,92 @@ jobs: with: name: elkeid_driver_ol8_uek_x86_64 path: ${{steps.extract-ol8_uek.outputs.destination}} + build_oracle7_x86_64: + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v3 + with: + submodules: false + - name: Login to Docker Hub + uses: docker/login-action@v2 + with: + password: ${{secrets.DOCKERHUB_TOKEN}} + username: ${{secrets.DOCKERHUB_USERNAME}} + - name: Set up Docker Buildx oracle7 + uses: docker/setup-buildx-action@v2 + - name: Build oracle7 + uses: docker/build-push-action@v3 + timeout-minutes: 300 + with: + context: . + file: driver/dockerfiles.x86_64/Dockerfile.oracle7 + load: false + push: true + tags: elkeidteam/elkeid_driver_oracle7_x86_64:latest + - name: Docker Hub Description oracle7 + uses: peter-evans/dockerhub-description@v3 + with: + password: ${{secrets.DOCKERHUB_TOKEN}} + repository: elkeidteam/elkeid_driver_oracle7_x86_64 + short-description: ${{github.event.repository.description}} + username: ${{secrets.DOCKERHUB_USERNAME}} + - name: Extract oracle7 + if: always() + id: extract-oracle7 + uses: shrink/actions-docker-extract@v2 + with: + image: elkeidteam/elkeid_driver_oracle7_x86_64:latest + path: /ko_output/. + - name: Upload oracle7 + uses: actions/upload-artifact@v3 + if: always() + with: + name: elkeid_driver_oracle7_x86_64 + path: ${{steps.extract-oracle7.outputs.destination}} + build_oracle8_uek_x86_64: + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v3 + with: + submodules: false + - name: Login to Docker Hub + uses: docker/login-action@v2 + with: + password: ${{secrets.DOCKERHUB_TOKEN}} + username: ${{secrets.DOCKERHUB_USERNAME}} + - name: Set up Docker Buildx oracle8_uek + uses: docker/setup-buildx-action@v2 + - name: Build oracle8_uek + uses: docker/build-push-action@v3 + timeout-minutes: 300 + with: + context: . + file: driver/dockerfiles.x86_64/Dockerfile.oracle8_uek + load: false + push: true + tags: elkeidteam/elkeid_driver_oracle8_uek_x86_64:latest + - name: Docker Hub Description oracle8_uek + uses: peter-evans/dockerhub-description@v3 + with: + password: ${{secrets.DOCKERHUB_TOKEN}} + repository: elkeidteam/elkeid_driver_oracle8_uek_x86_64 + short-description: ${{github.event.repository.description}} + username: ${{secrets.DOCKERHUB_USERNAME}} + - name: Extract oracle8_uek + if: always() + id: extract-oracle8_uek + uses: shrink/actions-docker-extract@v2 + with: + image: elkeidteam/elkeid_driver_oracle8_uek_x86_64:latest + path: /ko_output/. + - name: Upload oracle8_uek + uses: actions/upload-artifact@v3 + if: always() + with: + name: elkeid_driver_oracle8_uek_x86_64 + path: ${{steps.extract-oracle8_uek.outputs.destination}} build_rhel6_x86_64: runs-on: ubuntu-latest continue-on-error: true diff --git a/.github/workflows/Elkeid_driver_release.yml b/.github/workflows/Elkeid_driver_release.yml index 381b63e92..32261b8c8 100644 --- a/.github/workflows/Elkeid_driver_release.yml +++ b/.github/workflows/Elkeid_driver_release.yml @@ -686,6 +686,92 @@ jobs: with: name: elkeid_driver_ol8_uek_x86_64 path: ${{steps.extract-ol8_uek.outputs.destination}} + build_oracle7_x86_64: + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v3 + with: + submodules: false + - name: Login to Docker Hub + uses: docker/login-action@v2 + with: + password: ${{secrets.DOCKERHUB_TOKEN}} + username: ${{secrets.DOCKERHUB_USERNAME}} + - name: Set up Docker Buildx oracle7 + uses: docker/setup-buildx-action@v2 + - name: Build oracle7 + uses: docker/build-push-action@v3 + timeout-minutes: 300 + with: + context: . + file: driver/dockerfiles.x86_64/Dockerfile.oracle7 + load: false + push: true + tags: elkeidteam/elkeid_driver_oracle7_x86_64:latest + - name: Docker Hub Description oracle7 + uses: peter-evans/dockerhub-description@v3 + with: + password: ${{secrets.DOCKERHUB_TOKEN}} + repository: elkeidteam/elkeid_driver_oracle7_x86_64 + short-description: ${{github.event.repository.description}} + username: ${{secrets.DOCKERHUB_USERNAME}} + - name: Extract oracle7 + if: always() + id: extract-oracle7 + uses: shrink/actions-docker-extract@v2 + with: + image: elkeidteam/elkeid_driver_oracle7_x86_64:latest + path: /ko_output/. + - name: Upload oracle7 + uses: actions/upload-artifact@v3 + if: always() + with: + name: elkeid_driver_oracle7_x86_64 + path: ${{steps.extract-oracle7.outputs.destination}} + build_oracle8_uek_x86_64: + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v3 + with: + submodules: false + - name: Login to Docker Hub + uses: docker/login-action@v2 + with: + password: ${{secrets.DOCKERHUB_TOKEN}} + username: ${{secrets.DOCKERHUB_USERNAME}} + - name: Set up Docker Buildx oracle8_uek + uses: docker/setup-buildx-action@v2 + - name: Build oracle8_uek + uses: docker/build-push-action@v3 + timeout-minutes: 300 + with: + context: . + file: driver/dockerfiles.x86_64/Dockerfile.oracle8_uek + load: false + push: true + tags: elkeidteam/elkeid_driver_oracle8_uek_x86_64:latest + - name: Docker Hub Description oracle8_uek + uses: peter-evans/dockerhub-description@v3 + with: + password: ${{secrets.DOCKERHUB_TOKEN}} + repository: elkeidteam/elkeid_driver_oracle8_uek_x86_64 + short-description: ${{github.event.repository.description}} + username: ${{secrets.DOCKERHUB_USERNAME}} + - name: Extract oracle8_uek + if: always() + id: extract-oracle8_uek + uses: shrink/actions-docker-extract@v2 + with: + image: elkeidteam/elkeid_driver_oracle8_uek_x86_64:latest + path: /ko_output/. + - name: Upload oracle8_uek + uses: actions/upload-artifact@v3 + if: always() + with: + name: elkeid_driver_oracle8_uek_x86_64 + path: ${{steps.extract-oracle8_uek.outputs.destination}} build_rhel6_x86_64: runs-on: ubuntu-latest continue-on-error: true @@ -2518,11 +2604,13 @@ jobs: - build_rocky8_x86_64 - build_ubuntu1404_k4_x86_64 - build_ubuntu1804_x86_64 + - build_oracle8_uek_x86_64 - build_rhel8_plus_x86_64 - build_rhel7_elrepo_lt_archive_x86_64 - build_ubuntu2004_azure_x86_64 - build_debian9_x86_64 - build_rhel8_elrepo_ml_x86_64 + - build_oracle7_x86_64 - build_rhel7_elrepo_lt_x86_64 - build_ubuntu1604_k410_x86_64 - build_ubuntu1604_aws_x86_64 diff --git a/driver/dockerfiles.x86_64/Dockerfile.oracle7 b/driver/dockerfiles.x86_64/Dockerfile.oracle7 new file mode 100644 index 000000000..1bf5e2cf3 --- /dev/null +++ b/driver/dockerfiles.x86_64/Dockerfile.oracle7 @@ -0,0 +1,16 @@ +FROM oraclelinux:7 AS oracle7 + + +RUN yum update -y || true; +RUN yum install -y wget perl gcc make tree openssl-devel openssl binutils-devel elfutils-libelf-devel yumdownloader || true; +RUN yum groupinstall -y "Development Tools" || true; + +RUN mkdir /root/headers +RUN for eachversion in `yum --showduplicates list kernel-devel | grep kernel-devel.x86_64 | awk '{print $2}'` ; do yumdownloader --destdir /root/headers kernel-devel-$eachversion.x86_64 || true ; done; +RUN rpm --force -i --nodeps /root/headers/*.rpm || true +RUN rm -rf /root/headers/*.rpm + +ADD . /elkeid +WORKDIR /elkeid/driver +RUN bash ./build_script/x86_64/batch_compile.sh + diff --git a/driver/dockerfiles.x86_64/Dockerfile.oracle8_uek b/driver/dockerfiles.x86_64/Dockerfile.oracle8_uek new file mode 100644 index 000000000..86c4a6199 --- /dev/null +++ b/driver/dockerfiles.x86_64/Dockerfile.oracle8_uek @@ -0,0 +1,18 @@ +FROM oraclelinux:8 AS oracle8 + + +RUN dnf install -y wget perl gcc make tree openssl-devel openssl gcc-toolset-11 gcc-toolset-11-binutils-devel binutils-devel gcc-toolset-11-elfutils-libelf-devel; +RUN dnf groupinstall -y "Development Tools"; +RUN mkdir /root/headers +RUN dnf config-manager --set-enable ol8_UEKR7 +RUN dnf config-manager --set-enable ol8_UEKR6 +RUN for eachversion in `dnf --showduplicates list kernel-uek-devel | grep kernel-uek-devel.x86_64 | awk '{print $2}'` ; do dnf download --downloaddir=/root/headers kernel-uek-devel-$eachversion.x86_64 || true ; done; +RUN rpm --force -i /root/headers/*.rpm || true + +ADD . /elkeid +WORKDIR /elkeid/driver +RUN scl enable gcc-toolset-11 "bash ./build_script/x86_64/batch_compile_ol8_uek.sh" + +RUN rm -rf /root/headers/*.rpm + + diff --git a/driver/dockerfiles.x86_64/Dockerfile.rocky8 b/driver/dockerfiles.x86_64/Dockerfile.rocky8 index f9121544e..9a0539a4c 100644 --- a/driver/dockerfiles.x86_64/Dockerfile.rocky8 +++ b/driver/dockerfiles.x86_64/Dockerfile.rocky8 @@ -5,8 +5,10 @@ RUN yum groupinstall -y "Development Tools"; RUN mkdir /root/headers WORKDIR /root/headers -RUN wget -q -k -e robots=off -c -r -np -nd -nH -A 'kernel-devel*x86_64.rpm' 'https://mirrors.nju.edu.cn/rocky/8.8/BaseOS/x86_64/os/Packages/k/'; + +RUN wget -q -k -e robots=off -c -r -np -nd -nH -A 'kernel-devel*x86_64.rpm' 'https://mirrors.nju.edu.cn/rocky/8.9/BaseOS/x86_64/os/Packages/k/'; RUN wget -q -k -e robots=off -c -r -np -nd -nH -A 'kernel-devel*x86_64.rpm' 'https://mirrors.nju.edu.cn/rocky/8/BaseOS/x86_64/os/Packages/k/'; +RUN wget -q -k -e robots=off -c -r -np -nd -nH -A 'kernel-devel*x86_64.rpm' 'https://mirrors.nju.edu.cn/rocky-vault/8.8/BaseOS/x86_64/os/Packages/k/'; RUN wget -q -k -e robots=off -c -r -np -nd -nH -A 'kernel-devel*x86_64.rpm' 'https://mirrors.nju.edu.cn/rocky-vault/8.7/BaseOS/x86_64/os/Packages/k/'; RUN wget -q -k -e robots=off -c -r -np -nd -nH -A 'kernel-devel*x86_64.rpm' 'https://mirrors.nju.edu.cn/rocky-vault/8.6/BaseOS/x86_64/os/Packages/k/'; RUN wget -q -k -e robots=off -c -r -np -nd -nH -A 'kernel-devel*x86_64.rpm' 'https://mirrors.nju.edu.cn/rocky-vault/8.5/BaseOS/x86_64/os/Packages/k/' diff --git a/driver/dockerfiles.x86_64/Dockerfile.rocky9 b/driver/dockerfiles.x86_64/Dockerfile.rocky9 index f9edc7e4e..c0d40ff54 100644 --- a/driver/dockerfiles.x86_64/Dockerfile.rocky9 +++ b/driver/dockerfiles.x86_64/Dockerfile.rocky9 @@ -9,16 +9,18 @@ WORKDIR /root/headers RUN wget -q -k -e robots=off -c -r -np -nd -nH -A 'kernel-devel*x86_64.rpm' 'https://mirrors.nju.edu.cn/rocky/9/BaseOS/x86_64/os/Packages/k/' || true ; RUN wget -q -k -e robots=off -c -r -np -nd -nH -A 'kernel-devel*x86_64.rpm' 'https://mirrors.nju.edu.cn/rocky/9/AppStream/x86_64/os/Packages/k/' || true ; RUN wget -q -k -e robots=off -c -r -np -nd -nH -A 'kernel-devel*x86_64.rpm' 'https://mirrors.nju.edu.cn/rocky/9/devel/x86_64/os/Packages/k/' || true ; -RUN wget -q -k -e robots=off -c -r -np -nd -nH -A 'kernel-devel*x86_64.rpm' 'https://mirrors.nju.edu.cn/rocky/9.1/BaseOS/x86_64/os/Packages/k/' || true ; -RUN wget -q -k -e robots=off -c -r -np -nd -nH -A 'kernel-devel*x86_64.rpm' 'https://mirrors.nju.edu.cn/rocky/9.1/AppStream/x86_64/os/Packages/k/' || true ; -RUN wget -q -k -e robots=off -c -r -np -nd -nH -A 'kernel-devel*x86_64.rpm' 'https://mirrors.nju.edu.cn/rocky/9.1/devel/x86_64/os/Packages/k/' || true ; RUN wget -q -k -e robots=off -c -r -np -nd -nH -A 'kernel-devel*x86_64.rpm' 'https://mirrors.nju.edu.cn/rocky/9.2/BaseOS/x86_64/os/Packages/k/' || true ; RUN wget -q -k -e robots=off -c -r -np -nd -nH -A 'kernel-devel*x86_64.rpm' 'https://mirrors.nju.edu.cn/rocky/9.2/AppStream/x86_64/os/Packages/k/' || true ; RUN wget -q -k -e robots=off -c -r -np -nd -nH -A 'kernel-devel*x86_64.rpm' 'https://mirrors.nju.edu.cn/rocky/9.2/devel/x86_64/os/Packages/k/' || true ; +RUN wget -q -k -e robots=off -c -r -np -nd -nH -A 'kernel-devel*x86_64.rpm' 'https://mirrors.nju.edu.cn/rocky/9.3/BaseOS/x86_64/os/Packages/k/' || true ; +RUN wget -q -k -e robots=off -c -r -np -nd -nH -A 'kernel-devel*x86_64.rpm' 'https://mirrors.nju.edu.cn/rocky/9.3/AppStream/x86_64/os/Packages/k/' || true ; +RUN wget -q -k -e robots=off -c -r -np -nd -nH -A 'kernel-devel*x86_64.rpm' 'https://mirrors.nju.edu.cn/rocky/9.3/devel/x86_64/os/Packages/k/' || true ; RUN wget -q -k -e robots=off -c -r -np -nd -nH -A 'kernel-devel*x86_64.rpm' 'https://mirrors.nju.edu.cn/rocky-vault/9.0/devel/x86_64/os/Packages/k/' || true ; RUN wget -q -k -e robots=off -c -r -np -nd -nH -A 'kernel-devel*x86_64.rpm' 'https://mirrors.nju.edu.cn/rocky-vault/9.0/AppStream/x86_64/os/Packages/k/' || true ; RUN wget -q -k -e robots=off -c -r -np -nd -nH -A 'kernel-devel*x86_64.rpm' 'https://mirrors.nju.edu.cn/rocky-vault/9.1/devel/x86_64/os/Packages/k/' || true ; RUN wget -q -k -e robots=off -c -r -np -nd -nH -A 'kernel-devel*x86_64.rpm' 'https://mirrors.nju.edu.cn/rocky-vault/9.1/AppStream/x86_64/os/Packages/k/' || true ; +RUN wget -q -k -e robots=off -c -r -np -nd -nH -A 'kernel-devel*x86_64.rpm' 'https://mirrors.nju.edu.cn/rocky-vault/9.1/BaseOS/x86_64/os/Packages/k/' || true ; + RUN rm -f /root/headers/kernel-devel-matched* RUN rpm --force -i /root/headers/*.rpm || true diff --git a/driver/tools/ubuntu12_headers.py b/driver/tools/ubuntu12_headers.py new file mode 100644 index 000000000..eb87aef59 --- /dev/null +++ b/driver/tools/ubuntu12_headers.py @@ -0,0 +1,35 @@ +#!/usr/bin/python + +# python 2.7.3 only + +import requests +import re +import os + +version_list = [ + r"3.2.0", + r"3.5.0", + r"3.8.0", + r"3.11.0", +] + + +def find_all_childs(version_list, data): + pkgs = [each[0] for each in re.findall( + r'linux-headers', data) + ] + return pkgs + + +def download(url, filename): + os.system("wget -q --no-check-certificate "+url) + + +ubuntu_kernel_header_url = "https://old-releases.ubuntu.com/ubuntu/pool/main/l/linux/" + +response = requests.get(url=ubuntu_kernel_header_url) +page_info = str(response.content) + +all_versions = find_all_childs(version_list, page_info) +for each in all_versions: + download(ubuntu_kernel_header_url+each, each) \ No newline at end of file diff --git a/driver/tools/ubuntu14_k3_headers.py b/driver/tools/ubuntu14_k3_headers.py new file mode 100644 index 000000000..c17317d1a --- /dev/null +++ b/driver/tools/ubuntu14_k3_headers.py @@ -0,0 +1,34 @@ +#!/usr/bin/python + +# python 2.7.3 only + +import requests +import re +import os + +version_list = [ + r"3.16.0", + r"3.19.0", + r"4.2.0" +] + + +def find_all_childs(version_list, data): + pkgs = [each[0] for each in re.findall( + r'linux-headers', data) + ] + return pkgs + + +def download(url, filename): + os.system("wget -q --no-check-certificate "+url) + + +ubuntu_kernel_header_url = "https://old-releases.ubuntu.com/ubuntu/pool/main/l/linux/" + +response = requests.get(url=ubuntu_kernel_header_url, verify=False) +page_info = str(response.content) + +all_versions = find_all_childs(version_list, page_info) +for each in all_versions: + download(ubuntu_kernel_header_url+each, each) \ No newline at end of file diff --git a/driver/tools/ubuntu14_k4_headers.py b/driver/tools/ubuntu14_k4_headers.py new file mode 100644 index 000000000..790b7d099 --- /dev/null +++ b/driver/tools/ubuntu14_k4_headers.py @@ -0,0 +1,35 @@ +#!/usr/bin/python + +# python 2.7.3 only + +import requests +import re +import os + +version_list = [ + r"4.10.0" + r"4.8.0" + r"4.13.0" + r"4.18.0" +] + + +def find_all_childs(version_list, data): + pkgs = [each[0] for each in re.findall( + r'linux-headers', data) + ] + return pkgs + + +def download(url, filename): + os.system("wget -q --no-check-certificate "+url) + + +ubuntu_kernel_header_url = "https://old-releases.ubuntu.com/ubuntu/pool/main/l/linux/" + +response = requests.get(url=ubuntu_kernel_header_url, verify=False) +page_info = str(response.content) + +all_versions = find_all_childs(version_list, page_info) +for each in all_versions: + download(ubuntu_kernel_header_url+each, each) \ No newline at end of file diff --git a/driver/tools/ubuntu18_k418_headers.py b/driver/tools/ubuntu18_k418_headers.py new file mode 100644 index 000000000..76a47ee31 --- /dev/null +++ b/driver/tools/ubuntu18_k418_headers.py @@ -0,0 +1,32 @@ +#!/usr/bin/python + +# python 2.7.3 only + +import requests +import re +import os + +version_list = [ + r"4.18.0", +] + + +def find_all_childs(version_list, data): + pkgs = [each[0] for each in re.findall( + r'linux-headers', data) + ] + return pkgs + + +def download(url, filename): + os.system("wget -q --no-check-certificate "+url) + + +ubuntu_kernel_header_url = "https://old-releases.ubuntu.com/ubuntu/pool/main/l/linux/" + +response = requests.get(url=ubuntu_kernel_header_url, verify=False) +page_info = str(response.content) + +all_versions = find_all_childs(version_list, page_info) +for each in all_versions: + download(ubuntu_kernel_header_url+each, each) \ No newline at end of file