From 63cd99cd4d2a54a74300c27c90661b91bb5475be Mon Sep 17 00:00:00 2001 From: bryan Date: Thu, 24 Oct 2024 15:20:05 -0400 Subject: [PATCH] Separate dependency lock files --- openwrtbuilder | 303 +++++++++++++++++++++++++------------------------ 1 file changed, 153 insertions(+), 150 deletions(-) diff --git a/openwrtbuilder b/openwrtbuilder index b5c624c..331119c 100755 --- a/openwrtbuilder +++ b/openwrtbuilder @@ -153,161 +153,164 @@ parse_input() { install_dependencies() { debug "${FUNCNAME[0]}" - local lock_file="$BUILDROOT/.dependencies" local -a pkg_list - - # TODO please contribute your platform here + local lock_file if ((FROM_SOURCE)); then - # For building from source with make - # https://openwrt.org/docs/guide-developer/toolchain/install-buildsystem - case "$ID" in - fedora|centos) - pkg_list+=( - "bash-completion" - "bzip2" - "gcc" - "gcc-c++" - "git" - "make" - "ncurses-devel" - "patch" - "rsync" - "tar" - "unzip" - "wget" - "which" - "diffutils" - "python2" - "python3" - "python3-setuptools" - "python3-pyelftools" - "perl-base" - "perl-Data-Dumper" - "perl-File-Compare" - "perl-File-Copy" - "perl-FindBin" - "perl-IPC-Cmd" - "perl-Thread-Queue" - "perl-Time-Piece" - "perl-JSON-PP" - "swig" - "clang" # for qosify - "llvm15-libs" - "patch") - ;; - debian|ubuntu) - pkg_list+=( - "build-essential" - "clang" - "flex" - "g++" - "gawk" - "gcc-multilib" - "gettext" - "git" - "libncurses5-dev" - "libssl-dev" - "python3-distutils" - "rsync" - "unzip" - "zlib1g-dev" - "file" - "wget" - "patch") - ;; - arch) - pkg_list+=( - "base-devel" - "autoconf" - "automake" - "bash" - "binutils" - "bison" - "bzip2" - "clang" - "fakeroot" - "file" - "findutils" - "flex" - "gawk" - "gcc" - "gettext" - "git" - "grep" - "groff" - "gzip" - "libelf" - "libtool" - "libxslt" - "m4" - "make" - "ncurses" - "openssl" - "patch" - "pkgconf" - "python" - "rsync" - "sed" - "texinfo" - "time" - "unzip" - "util-linux" - "wget" - "which" - "zlib" - "patch") - ;; - *) - debug "Skipping dependency install, your OS is unsupported" - return 1 - ;; - esac + lock_file="$BUILDROOT/.dependencies_sc" else - # For Imagebuilder - case "$ID" in - fedora|centos) - pkg_list+=( - "@c-development" - "@development-tools" - "@development-libs" - "perl-FindBin" - "zlib-static" - "elfutils-libelf-devel" - "gawk" - "unzip" - "file" - "wget" - "python3" - "python2" - "axel" - "perl-IPC-Cmd") - ;; - debian|ubuntu) - pkg_list+=( - "build-essential" - "libncurses5-dev" - "libncursesw5-dev" - "zlib1g-dev" - "gawk" - "git" - "gettext" - "libssl-dev" - "xsltproc" - "wget" - "unzip" - "python" - "axel") - ;; - *) - debug "Skipping dependency install, your OS is unsupported" - return 1 - ;; - esac + lock_file="$BUILDROOT/.dependencies_ib" + fi + + if [[ ! -f $lock_file ]]; then + if ((FROM_SOURCE)); then + # For building from source code + # https://openwrt.org/docs/guide-developer/toolchain/install-buildsystem + case "$ID" in + fedora|centos) + pkg_list+=( + "bash-completion" + "bzip2" + "gcc" + "gcc-c++" + "git" + "make" + "ncurses-devel" + "patch" + "rsync" + "tar" + "unzip" + "wget" + "which" + "diffutils" + "python2" + "python3" + "python3-setuptools" + "python3-pyelftools" + "perl-base" + "perl-Data-Dumper" + "perl-File-Compare" + "perl-File-Copy" + "perl-FindBin" + "perl-IPC-Cmd" + "perl-Thread-Queue" + "perl-Time-Piece" + "perl-JSON-PP" + "swig" + "clang" # for qosify + "llvm15-libs" + "patch") + ;; + debian|ubuntu) + pkg_list+=( + "build-essential" + "clang" + "flex" + "g++" + "gawk" + "gcc-multilib" + "gettext" + "git" + "libncurses5-dev" + "libssl-dev" + "python3-distutils" + "rsync" + "unzip" + "zlib1g-dev" + "file" + "wget" + "patch") + ;; + arch) + pkg_list+=( + "base-devel" + "autoconf" + "automake" + "bash" + "binutils" + "bison" + "bzip2" + "clang" + "fakeroot" + "file" + "findutils" + "flex" + "gawk" + "gcc" + "gettext" + "git" + "grep" + "groff" + "gzip" + "libelf" + "libtool" + "libxslt" + "m4" + "make" + "ncurses" + "openssl" + "patch" + "pkgconf" + "python" + "rsync" + "sed" + "texinfo" + "time" + "unzip" + "util-linux" + "wget" + "which" + "zlib" + "patch") + ;; + *) + debug "Skipping dependency install, your OS is unsupported" + return 1 + ;; + esac + else + # For Imagebuilder + case "$ID" in + fedora|centos) + pkg_list+=( + "@c-development" + "@development-tools" + "@development-libs" + "perl-FindBin" + "zlib-static" + "elfutils-libelf-devel" + "gawk" + "unzip" + "file" + "wget" + "python3" + "python2" + "axel" + "perl-IPC-Cmd") + ;; + debian|ubuntu) + pkg_list+=( + "build-essential" + "libncurses5-dev" + "libncursesw5-dev" + "zlib1g-dev" + "gawk" + "git" + "gettext" + "libssl-dev" + "xsltproc" + "wget" + "unzip" + "python" + "axel") + ;; + *) + debug "Skipping dependency install, your OS is unsupported" + return 1 + ;; + esac + fi fi - # Skip dependency installation if lock file is present - [[ -f $lock_file ]] && return - pkg_install "${pkg_list[@]}" && echo "${pkg_list[@]}" > "$lock_file" }