diff options
author | Christian Breunig <christian@breunig.cc> | 2024-06-27 16:44:28 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-27 16:44:28 +0200 |
commit | 057db80447b3dd31d093092036ffa7f4c875f88a (patch) | |
tree | bf162ada96a46e9a2b9c06de1f771bf5a1973da7 /scripts/list-build-dependencies | |
parent | b90a73b304a05fb9088c388a21ccfcb0f9116fdb (diff) | |
parent | 6e0f62a0ca9c2eb028eca360c0b08535a9dee778 (diff) | |
download | vyos-build-057db80447b3dd31d093092036ffa7f4c875f88a.tar.gz vyos-build-057db80447b3dd31d093092036ffa7f4c875f88a.zip |
Merge pull request #667 from c-po/T6507-drop-vyos-world
T6507: remove references to vyos-world package
Diffstat (limited to 'scripts/list-build-dependencies')
-rwxr-xr-x | scripts/list-build-dependencies | 120 |
1 files changed, 0 insertions, 120 deletions
diff --git a/scripts/list-build-dependencies b/scripts/list-build-dependencies deleted file mode 100755 index e13651f3..00000000 --- a/scripts/list-build-dependencies +++ /dev/null @@ -1,120 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2020 VyOS maintainers and contributors -# -# This program is free software; you can redistribute it and/or modify -# in order to easy exprort images built to "external" world -# it under the terms of the GNU General Public License version 2 or later as -# published by the Free Software Foundation. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -# Parse debian/control like content and extract packages required by the -# Build-Depends statement. Return a string with all required packages. -# -# Code below copied from https://stackoverflow.com/a/47707412 - Thank You! -get_build_depends () { - echo $(awk ' - /^Build-Depends:/ || /^ / && deps { - sub(/^[^ ]+: /, "") - deps = 1 - dep_str = dep_str ", " $0 - next - } - { deps=0 } - END { - split(dep_str, dep_array, /, */) - for (d in dep_array) { - dep = dep_array[d] - gsub(/[^a-z0-9_.-].*$/, "", dep) - if (dep && !seen[dep]++) print dep - } - }' $1) -} - -get_runtime_depends () { - echo $(awk ' - /^Depends:/ || /^ / && deps { - sub(/^[^ ]+: /, "") - deps = 1 - dep_str = dep_str ", " $0 - next - } - { deps=0 } - END { - split(dep_str, dep_array, /, */) - for (d in dep_array) { - dep = dep_array[d] - gsub(/[^a-z0-9_.-].*$/, "", dep) - if (dep && !seen[dep]++) print dep - } - }' $1) -} - -# Some packages are required prior to running this script -BOOTSTRAP_PACKAGES="devscripts curl equivs" -for pkg in $BOOTSTRAP_PACKAGES -do - dpkg -s $pkg >/dev/null 2>&1 - if [ $? -ne 0 ]; then - echo "Required package \"$pkg\" not installed" - exit 1 - fi -done - -echo "" -echo "Below you can find a list of packages that are required as build time" -echo "dependency for the individual package" -echo "" -echo "The generated content can be used to populate a file to provision" -echo "e.g. a native build host or a Docker container" -echo "" -echo "" - -GIT_BRANCH=$(git rev-parse --abbrev-ref HEAD) - -# First we need to get vyos-world so we know all individual packages for VyOS -curl -L https://github.com/vyos/vyos-world/raw/$GIT_BRANCH/debian/control \ - --output /tmp/vyos-world.control --retry 100 --retry-delay 1 --silent - -VYOS_PACKAGES=$(get_runtime_depends /tmp/vyos-world.control) -rm -f /tmp/vyos-world.control -for pkg in $VYOS_PACKAGES -do - # Check if repo exists - res=$(curl -o /dev/null --silent -Iw '%{http_code}' https://github.com/vyos/$pkg) - if [[ $res -ne 200 ]]; then - continue - fi - - CTRLFILE=/tmp/$pkg.control - curl -L https://github.com/vyos/$pkg/raw/$GIT_BRANCH/debian/control \ - --output $CTRLFILE --retry 100 --retry-delay 1 --silent - - declare -a array - declare -i length cnt - - array=($(get_build_depends $CTRLFILE)) - length=${#array[@]} - cnt=0 - - echo "# Packages needed to build '$pkg' from https://github.com/vyos/$pkg" - echo "apt-get install -y \\" - for name in "${array[@]}"; do - cnt=$((cnt + 1)) - if [[ "$cnt" -eq "$length" ]]; then - echo " $name" - else - echo " $name \\" - fi - done - rm -f $CTRLFILE - echo "" -done - |