diff options
Diffstat (limited to 'tools')
58 files changed, 581 insertions, 52 deletions
diff --git a/tools/blobs-discover/blobs-discover b/tools/blobs-discover/blobs-discover index 6d143d02..7e383942 100755 --- a/tools/blobs-discover/blobs-discover +++ b/tools/blobs-discover/blobs-discover @@ -18,7 +18,7 @@ arguments() { local project=$1 - if [ -z "$project" ] + if [[ -z "$project" ]] then ls -A "$root/$PROJECTS/" | while read project do @@ -36,8 +36,8 @@ usage() { } update() { - local tool_path=$( tool_path "$tool" ) - local sources_path=$( tool_sources_path "$tool" ) + local tool_path=$(tool_path "$tool") + local sources_path=$(tool_sources_path "$tool") local deblob_check_path="$sources_path/deblob-check" local patches_path="$tool_path/$PATCHES/$WILDDOTPATCH" @@ -50,7 +50,7 @@ update() { path_wildcard_expand "$patches_path" | while read patch_path do - if ! [ -f "$patch_path" ] + if ! [[ -f "$patch_path" ]] then continue fi @@ -63,10 +63,10 @@ verify() { local project=$1 shift - local project_path=$( project_path "$project" ) - local project_sources_path=$( project_sources_path "$project" "$repository" "$@" ) - local project_blobs_path=$( project_blobs_path "$project" "$@" ) - local project_blobs_ignore_path=$( project_blobs_ignore_path "$project" "$@" ) + local project_path=$(project_path "$project") + local project_sources_path=$(project_sources_path "$project" "$repository" "$@") + local project_blobs_path=$(project_blobs_path "$project" "$@") + local project_blobs_ignore_path=$(project_blobs_ignore_path "$project" "$@") local project_blobs_discover_path local ifs_save @@ -75,9 +75,9 @@ verify() { requirements "sort" - if ! [ -z "$project_blobs_path" ] + if [[ -n "$project_blobs_path" ]] then - project_blobs_discover_path="$( dirname $project_blobs_path )/$BLOBS_DISCOVER" + project_blobs_discover_path="$(dirname $project_blobs_path)/$BLOBS_DISCOVER" else project_blobs_discover_path="$project_path/$CONFIGS/$BLOBS_DISCOVER" fi @@ -88,7 +88,7 @@ verify() { ifs_save=$IFS IFS=$'\n' - for file in $( cat "$project_blobs_discover_path" ) + for file in $(cat "$project_blobs_discover_path") do ( IFS=$ifs_save @@ -100,7 +100,7 @@ verify() { printf '%s' "Type \"blob\" to keep or press enter to discard: " read choice - if [ "$choice" = "blob" ] + if [[ "$choice" = "blob" ]] then printf '%s\n' "$file" >> "$project_blobs_path" else @@ -124,21 +124,21 @@ execute() { shift local repository=$project - local repository_path=$( git_project_repository_path "$repository" ) + local repository_path=$(git_project_repository_path "$repository") # This assumes that the repository is the project, which is not always the case. project_sources_directory_missing_empty_error "$project" "$repository" - local sources_path=$( tool_sources_path "$tool" ) - local project_path=$( project_path "$project" ) - local project_sources_path=$( project_sources_path "$project" "$repository" "$@" ) - local project_blobs_path=$( project_blobs_path "$project" "$@" ) - local project_blobs_ignore_path=$( project_blobs_ignore_path "$project" "$@" ) + local sources_path=$(tool_sources_path "$tool") + local project_path=$(project_path "$project") + local project_sources_path=$(project_sources_path "$project" "$repository" "$@") + local project_blobs_path=$(project_blobs_path "$project" "$@") + local project_blobs_ignore_path=$(project_blobs_ignore_path "$project" "$@") local project_blobs_directory_path - if ! [ -z "$project_blobs_path" ] + if [[ -n "$project_blobs_path" ]] then - project_blobs_discover_path="$( dirname $project_blobs_path )/$BLOBS_DISCOVER" + project_blobs_discover_path="$(dirname $project_blobs_path)/$BLOBS_DISCOVER" else project_blobs_discover_path="$project_path/$CONFIGS/$BLOBS_DISCOVER" fi @@ -153,23 +153,23 @@ execute() { printf '\n%s\n' 'Discovering new blobs, this may take a while...' - files=$( find "$project_sources_path" -type f | grep -vP "\.git/|\.tar|\.patch" ) + files=$(find "$project_sources_path" -type f | grep -vP "\.git/|\.tar|\.patch") touch "$project_blobs_discover_path" printf '%s\n' "$files" | while read file do - if ! [ -z "$project_blobs_ignore_path" ] + if [[ -n "$project_blobs_ignore_path" ]] then match=$( grep "$file" "$project_blobs_ignore_path" || true) - if [ ! -z "$match" ] + if [[ ! -z "$match" ]] then continue fi fi - match=$( "$deblob_check_path" -l -i "" "$file" || true ) - if ! [ -z "$match" ] + match=$("$deblob_check_path" -l -i "" "$file" || true) + if [[ -n "$match" ]] then printf '%s\n' "$match" >> "$project_blobs_discover_path" fi @@ -182,14 +182,14 @@ execute_check() { local project=$1 shift - local project_path=$( project_path "$project" ) - local project_blobs_path=$( project_blobs_path "$project" "$@" ) - local project_blobs_ignore_path=$( project_blobs_ignore_path "$project" "$@" ) + local project_path=$(project_path "$project") + local project_blobs_path=$(project_blobs_path "$project" "$@") + local project_blobs_ignore_path=$(project_blobs_ignore_path "$project" "$@") local project_blobs_discover_path - if ! [ -z "$project_blobs_path" ] + if [[ -n "$project_blobs_path" ]] then - project_blobs_discover_path="$( dirname $project_blobs_path )/$BLOBS_DISCOVER" + project_blobs_discover_path="$(dirname $project_blobs_path)/$BLOBS_DISCOVER" else project_blobs_discover_path="$project_path/$CONFIGS/$BLOBS_DISCOVER" fi diff --git a/tools/boot-keys/boot-keys b/tools/boot-keys/boot-keys index da56aca9..4c40bdf3 100755 --- a/tools/boot-keys/boot-keys +++ b/tools/boot-keys/boot-keys @@ -20,11 +20,11 @@ usage() { } generate() { - local type=$( boot_keys_type "$@" ) + local type=$(boot_keys_type "$@") - if [ -z "$type" ] + if [[ -z "$type" ]] then - printf '%s\n' 'Unable to determine keys type' >&2 + printf 1>&2 '%s\n' 'Unable to determine keys type' return 1 fi @@ -38,16 +38,16 @@ generate() { sign() { local project=$1 - local prepare_files=$( boot_keys_files "$@" ) - local type=$( boot_keys_type "$@" ) + local prepare_files=$(boot_keys_files "$@") + local type=$(boot_keys_type "$@") local install_path local firmware_path local kernel_path local media - if [ -z "$type" ] + if [[ -z "$type" ]] then - printf '%s\n' 'Unable to determine keys type' >&2 + printf 1>&2 '%s\n' 'Unable to determine keys type' return 1 fi @@ -60,13 +60,13 @@ sign() { boot_keys_cros "$type-prepare" "sign" "$firmware_path" ;; "cros-kernel") - media=$( project_action "media" "$@" ) + media=$(project_action "media" "$@") for medium in $media do kernel_path="$install_path/$KERNEL-$medium.$IMG" - if [ -f "$kernel_path" ] + if [[ -f "$kernel_path" ]] then boot_keys_cros "$type-prepare" "sign" "$kernel_path" else @@ -81,16 +81,16 @@ sign() { verify() { local project=$1 - local prepare_files=$( boot_keys_files "$@" ) - local type=$( boot_keys_type "$@" ) + local prepare_files=$(boot_keys_files "$@") + local type=$(boot_keys_type "$@") local install_path local firmware_path local kernel_path local media - if [ -z "$type" ] + if [[ -z "$type" ]] then - printf '%s\n' 'Unable to determine keys type' >&2 + printf 1>&2 '%s\n' 'Unable to determine keys type' return 1 fi @@ -103,7 +103,7 @@ verify() { boot_keys_cros "$type-prepare" "verify" "$firmware_path" ;; "cros-kernel") - media=$( project_action "media" "$@" ) + media=$(project_action "media" "$@") for medium in $media do diff --git a/tools/boot-keys/boot-keys-helper b/tools/boot-keys/boot-keys-helper index 31e2c16b..464638b9 100755 --- a/tools/boot-keys/boot-keys-helper +++ b/tools/boot-keys/boot-keys-helper @@ -9,13 +9,13 @@ boot_keys_cros() { local cros_script=$1 shift - local vboot_tools_path=$( project_install_path "vboot" "tools" ) - local cros_scripts_path=$( project_install_path "cros-scripts" ) + local vboot_tools_path=$(project_install_path "vboot" "tools") + local cros_scripts_path=$(project_install_path "cros-scripts") local cros_script_path="$cros_scripts_path/$cros_script" - if ! [ -x "$cros_script_path" ] + if ! [[ -x "$cros_script_path" ]] then - printf '%s' "$cros_script script missing from cros-scripts install" >&2 + printf 1>&2 '%s' "$cros_script script missing from cros-scripts install" return 1 fi @@ -34,10 +34,10 @@ boot_keys_files_install_path() { local argument local ifs_save - helper_arguments=$( project_action_helper "arguments" "$project" "$@" ) + helper_arguments=$(project_action_helper "arguments" "$project" "$@") - if [ $? -ne 0 ] || [ -z "$helper_arguments" ] + if [[ $? -ne 0 ]] || [[ -z "$helper_arguments" ]] then project_install_path "$project" "$@" else @@ -45,7 +45,7 @@ boot_keys_files_install_path() { ifs_save=$IFS IFS=$'\n' - for argument in $( printf '%s\n' "$helper_arguments" ) + for argument in $(printf '%s\n' "$helper_arguments") do ( IFS=$ifs_save @@ -63,7 +63,7 @@ boot_keys_files() { local project=$1 shift - local cros_scripts_path=$( project_install_path "cros-scripts" ) + local cros_scripts_path=$(project_install_path "cros-scripts") local cros_boot_keys="$cros_scripts_path/cros-boot-keys" project_action_arguments_verify_recursive "install" "$project" "$@" diff --git a/tools/dependencies/configs/parabola/i386/README b/tools/dependencies/configs/parabola/i386/README new file mode 100644 index 00000000..3a920465 --- /dev/null +++ b/tools/dependencies/configs/parabola/i386/README @@ -0,0 +1,24 @@ +Each file in this directory contains a list of dependencies that +should be installed before compiling the program indicated by the +filename's suffix, with a few exceptions; these exceptions being +"deps-documentation", "deps-download", and "deps-generic" for reasons +noted below: + +* "deps-documentation" contains a general list of packages that are + needed to build Libreboot documentation. +* "deps-download" contains packages necessary for downloading either + source code repositories and/or supporting files from a remote + source. +* "deps-generic" contains generic dependencies that didn't quite fit + (i.e. listed) under any of the other dependency lists but are + necessary nonetheless. + +It is expected that these files are updated whenever upstream projects +change dependency requirements. + +Any duplications between files are intentional; in order to provide a +clear picture as to which dependencies are needed by individual +programs, any attempt to consolidate these lists is dissuaded. + +This README is released under Creative Commons Zero 1.0: +https://creativecommons.org/publicdomain/zero/1.0/ diff --git a/tools/dependencies/configs/parabola/i386/deps-bucts b/tools/dependencies/configs/parabola/i386/deps-bucts new file mode 100644 index 00000000..6bce532b --- /dev/null +++ b/tools/dependencies/configs/parabola/i386/deps-bucts @@ -0,0 +1,4 @@ +gcc +make +pciutils +zlib diff --git a/tools/dependencies/configs/parabola/i386/deps-coreboot b/tools/dependencies/configs/parabola/i386/deps-coreboot new file mode 100644 index 00000000..cbfb7ddc --- /dev/null +++ b/tools/dependencies/configs/parabola/i386/deps-coreboot @@ -0,0 +1,11 @@ +bison +doxygen +flex +gcc +gdb +g++ +iasl +make +ncurses +openssl +pkg-config diff --git a/tools/dependencies/configs/parabola/i386/deps-crossgcc-arm b/tools/dependencies/configs/parabola/i386/deps-crossgcc-arm new file mode 100644 index 00000000..6e476970 --- /dev/null +++ b/tools/dependencies/configs/parabola/i386/deps-crossgcc-arm @@ -0,0 +1 @@ +arm-none-eabi-gcc diff --git a/tools/dependencies/configs/parabola/i386/deps-dejavu-fonts b/tools/dependencies/configs/parabola/i386/deps-dejavu-fonts new file mode 100644 index 00000000..1bba66d1 --- /dev/null +++ b/tools/dependencies/configs/parabola/i386/deps-dejavu-fonts @@ -0,0 +1,3 @@ +fontforge +perl-font-ttf +perl-io-string diff --git a/tools/dependencies/configs/parabola/i386/deps-documentation b/tools/dependencies/configs/parabola/i386/deps-documentation new file mode 100644 index 00000000..4a59b54c --- /dev/null +++ b/tools/dependencies/configs/parabola/i386/deps-documentation @@ -0,0 +1 @@ +pandoc diff --git a/tools/dependencies/configs/parabola/i386/deps-download b/tools/dependencies/configs/parabola/i386/deps-download new file mode 100644 index 00000000..880fb73e --- /dev/null +++ b/tools/dependencies/configs/parabola/i386/deps-download @@ -0,0 +1,2 @@ +git +wget diff --git a/tools/dependencies/configs/parabola/i386/deps-flashrom b/tools/dependencies/configs/parabola/i386/deps-flashrom new file mode 100644 index 00000000..c325a6f1 --- /dev/null +++ b/tools/dependencies/configs/parabola/i386/deps-flashrom @@ -0,0 +1,7 @@ +libftdi +libftdi-compat +libusb +make +pciutils +pkg-config +zlib diff --git a/tools/dependencies/configs/parabola/i386/deps-generic b/tools/dependencies/configs/parabola/i386/deps-generic new file mode 100644 index 00000000..162dc51d --- /dev/null +++ b/tools/dependencies/configs/parabola/i386/deps-generic @@ -0,0 +1,10 @@ +autogen +binutils +coreutils +fakeroot +gawk +help2man +libfaketime +m4 +texinfo +xz diff --git a/tools/dependencies/configs/parabola/i386/deps-grub b/tools/dependencies/configs/parabola/i386/deps-grub new file mode 100644 index 00000000..59119a22 --- /dev/null +++ b/tools/dependencies/configs/parabola/i386/deps-grub @@ -0,0 +1,17 @@ +autoconf +automake +bdf-unifont +bison +device-mapper +flex +freetype2 +gcc +gettext +glibc +libpciaccess +libusb +make +pciutils +python +qemu +sdl diff --git a/tools/dependencies/configs/parabola/i386/deps-i945-pwm b/tools/dependencies/configs/parabola/i386/deps-i945-pwm new file mode 100644 index 00000000..079b0d7d --- /dev/null +++ b/tools/dependencies/configs/parabola/i386/deps-i945-pwm @@ -0,0 +1,5 @@ +gcc +gdb +pciutils +make +zlib diff --git a/tools/dependencies/configs/parabola/i386/deps-memtest86plus b/tools/dependencies/configs/parabola/i386/deps-memtest86plus new file mode 100644 index 00000000..89ffe213 --- /dev/null +++ b/tools/dependencies/configs/parabola/i386/deps-memtest86plus @@ -0,0 +1,2 @@ +gcc +make diff --git a/tools/dependencies/configs/parabola/i686 b/tools/dependencies/configs/parabola/i686 new file mode 120000 index 00000000..fd32fa4e --- /dev/null +++ b/tools/dependencies/configs/parabola/i686 @@ -0,0 +1 @@ +i386
\ No newline at end of file diff --git a/tools/dependencies/configs/parabola/x86_64/README b/tools/dependencies/configs/parabola/x86_64/README new file mode 100644 index 00000000..3a920465 --- /dev/null +++ b/tools/dependencies/configs/parabola/x86_64/README @@ -0,0 +1,24 @@ +Each file in this directory contains a list of dependencies that +should be installed before compiling the program indicated by the +filename's suffix, with a few exceptions; these exceptions being +"deps-documentation", "deps-download", and "deps-generic" for reasons +noted below: + +* "deps-documentation" contains a general list of packages that are + needed to build Libreboot documentation. +* "deps-download" contains packages necessary for downloading either + source code repositories and/or supporting files from a remote + source. +* "deps-generic" contains generic dependencies that didn't quite fit + (i.e. listed) under any of the other dependency lists but are + necessary nonetheless. + +It is expected that these files are updated whenever upstream projects +change dependency requirements. + +Any duplications between files are intentional; in order to provide a +clear picture as to which dependencies are needed by individual +programs, any attempt to consolidate these lists is dissuaded. + +This README is released under Creative Commons Zero 1.0: +https://creativecommons.org/publicdomain/zero/1.0/ diff --git a/tools/dependencies/configs/parabola/x86_64/deps-bucts b/tools/dependencies/configs/parabola/x86_64/deps-bucts new file mode 100644 index 00000000..6bce532b --- /dev/null +++ b/tools/dependencies/configs/parabola/x86_64/deps-bucts @@ -0,0 +1,4 @@ +gcc +make +pciutils +zlib diff --git a/tools/dependencies/configs/parabola/x86_64/deps-coreboot b/tools/dependencies/configs/parabola/x86_64/deps-coreboot new file mode 100644 index 00000000..cbfb7ddc --- /dev/null +++ b/tools/dependencies/configs/parabola/x86_64/deps-coreboot @@ -0,0 +1,11 @@ +bison +doxygen +flex +gcc +gdb +g++ +iasl +make +ncurses +openssl +pkg-config diff --git a/tools/dependencies/configs/parabola/x86_64/deps-crossgcc-arm b/tools/dependencies/configs/parabola/x86_64/deps-crossgcc-arm new file mode 100644 index 00000000..6e476970 --- /dev/null +++ b/tools/dependencies/configs/parabola/x86_64/deps-crossgcc-arm @@ -0,0 +1 @@ +arm-none-eabi-gcc diff --git a/tools/dependencies/configs/parabola/x86_64/deps-crossgcc-i386 b/tools/dependencies/configs/parabola/x86_64/deps-crossgcc-i386 new file mode 100644 index 00000000..82ca6997 --- /dev/null +++ b/tools/dependencies/configs/parabola/x86_64/deps-crossgcc-i386 @@ -0,0 +1,9 @@ +gcc-libs-multilib +gcc-multilib +lib32-fakeroot +lib32-glibc +lib32-libltdl +lib32-libpciaccess +lib32-libstdc++5 +lib32-openssl +lib32-ncurses diff --git a/tools/dependencies/configs/parabola/x86_64/deps-dejavu-fonts b/tools/dependencies/configs/parabola/x86_64/deps-dejavu-fonts new file mode 100644 index 00000000..1bba66d1 --- /dev/null +++ b/tools/dependencies/configs/parabola/x86_64/deps-dejavu-fonts @@ -0,0 +1,3 @@ +fontforge +perl-font-ttf +perl-io-string diff --git a/tools/dependencies/configs/parabola/x86_64/deps-documentation b/tools/dependencies/configs/parabola/x86_64/deps-documentation new file mode 100644 index 00000000..4a59b54c --- /dev/null +++ b/tools/dependencies/configs/parabola/x86_64/deps-documentation @@ -0,0 +1 @@ +pandoc diff --git a/tools/dependencies/configs/parabola/x86_64/deps-download b/tools/dependencies/configs/parabola/x86_64/deps-download new file mode 100644 index 00000000..880fb73e --- /dev/null +++ b/tools/dependencies/configs/parabola/x86_64/deps-download @@ -0,0 +1,2 @@ +git +wget diff --git a/tools/dependencies/configs/parabola/x86_64/deps-flashrom b/tools/dependencies/configs/parabola/x86_64/deps-flashrom new file mode 100644 index 00000000..c325a6f1 --- /dev/null +++ b/tools/dependencies/configs/parabola/x86_64/deps-flashrom @@ -0,0 +1,7 @@ +libftdi +libftdi-compat +libusb +make +pciutils +pkg-config +zlib diff --git a/tools/dependencies/configs/parabola/x86_64/deps-generic b/tools/dependencies/configs/parabola/x86_64/deps-generic new file mode 100644 index 00000000..162dc51d --- /dev/null +++ b/tools/dependencies/configs/parabola/x86_64/deps-generic @@ -0,0 +1,10 @@ +autogen +binutils +coreutils +fakeroot +gawk +help2man +libfaketime +m4 +texinfo +xz diff --git a/tools/dependencies/configs/parabola/x86_64/deps-grub b/tools/dependencies/configs/parabola/x86_64/deps-grub new file mode 100644 index 00000000..59119a22 --- /dev/null +++ b/tools/dependencies/configs/parabola/x86_64/deps-grub @@ -0,0 +1,17 @@ +autoconf +automake +bdf-unifont +bison +device-mapper +flex +freetype2 +gcc +gettext +glibc +libpciaccess +libusb +make +pciutils +python +qemu +sdl diff --git a/tools/dependencies/configs/parabola/x86_64/deps-i945-pwm b/tools/dependencies/configs/parabola/x86_64/deps-i945-pwm new file mode 100644 index 00000000..079b0d7d --- /dev/null +++ b/tools/dependencies/configs/parabola/x86_64/deps-i945-pwm @@ -0,0 +1,5 @@ +gcc +gdb +pciutils +make +zlib diff --git a/tools/dependencies/configs/parabola/x86_64/deps-memtest86plus b/tools/dependencies/configs/parabola/x86_64/deps-memtest86plus new file mode 100644 index 00000000..89ffe213 --- /dev/null +++ b/tools/dependencies/configs/parabola/x86_64/deps-memtest86plus @@ -0,0 +1,2 @@ +gcc +make diff --git a/tools/dependencies/configs/targets b/tools/dependencies/configs/targets new file mode 100644 index 00000000..33794c27 --- /dev/null +++ b/tools/dependencies/configs/targets @@ -0,0 +1,2 @@ +parabola +trisquel7 diff --git a/tools/dependencies/configs/trisquel7/i386/README b/tools/dependencies/configs/trisquel7/i386/README new file mode 100644 index 00000000..3a920465 --- /dev/null +++ b/tools/dependencies/configs/trisquel7/i386/README @@ -0,0 +1,24 @@ +Each file in this directory contains a list of dependencies that +should be installed before compiling the program indicated by the +filename's suffix, with a few exceptions; these exceptions being +"deps-documentation", "deps-download", and "deps-generic" for reasons +noted below: + +* "deps-documentation" contains a general list of packages that are + needed to build Libreboot documentation. +* "deps-download" contains packages necessary for downloading either + source code repositories and/or supporting files from a remote + source. +* "deps-generic" contains generic dependencies that didn't quite fit + (i.e. listed) under any of the other dependency lists but are + necessary nonetheless. + +It is expected that these files are updated whenever upstream projects +change dependency requirements. + +Any duplications between files are intentional; in order to provide a +clear picture as to which dependencies are needed by individual +programs, any attempt to consolidate these lists is dissuaded. + +This README is released under Creative Commons Zero 1.0: +https://creativecommons.org/publicdomain/zero/1.0/ diff --git a/tools/dependencies/configs/trisquel7/i386/deps-bucts b/tools/dependencies/configs/trisquel7/i386/deps-bucts new file mode 100644 index 00000000..538d83f7 --- /dev/null +++ b/tools/dependencies/configs/trisquel7/i386/deps-bucts @@ -0,0 +1,6 @@ +gcc +libpci3 +libpci-dev +make +zlib1g +zlib1g-dev diff --git a/tools/dependencies/configs/trisquel7/i386/deps-coreboot b/tools/dependencies/configs/trisquel7/i386/deps-coreboot new file mode 100644 index 00000000..bd78c637 --- /dev/null +++ b/tools/dependencies/configs/trisquel7/i386/deps-coreboot @@ -0,0 +1,13 @@ +bison +doxygen +flex +gcc +gdb +g++ +iasl +libncurses5 +libncurses5-dev +libssl-dev +make +ncurses-base +pkg-config diff --git a/tools/dependencies/configs/trisquel7/i386/deps-crossgcc-arm b/tools/dependencies/configs/trisquel7/i386/deps-crossgcc-arm new file mode 100644 index 00000000..f4629ab5 --- /dev/null +++ b/tools/dependencies/configs/trisquel7/i386/deps-crossgcc-arm @@ -0,0 +1 @@ +gcc-arm-linux-gnueabi diff --git a/tools/dependencies/configs/trisquel7/i386/deps-dejavu-fonts b/tools/dependencies/configs/trisquel7/i386/deps-dejavu-fonts new file mode 100644 index 00000000..30157ccf --- /dev/null +++ b/tools/dependencies/configs/trisquel7/i386/deps-dejavu-fonts @@ -0,0 +1,2 @@ +fontforge +libfont-ttf-perl diff --git a/tools/dependencies/configs/trisquel7/i386/deps-documentation b/tools/dependencies/configs/trisquel7/i386/deps-documentation new file mode 100644 index 00000000..4a59b54c --- /dev/null +++ b/tools/dependencies/configs/trisquel7/i386/deps-documentation @@ -0,0 +1 @@ +pandoc diff --git a/tools/dependencies/configs/trisquel7/i386/deps-download b/tools/dependencies/configs/trisquel7/i386/deps-download new file mode 100644 index 00000000..880fb73e --- /dev/null +++ b/tools/dependencies/configs/trisquel7/i386/deps-download @@ -0,0 +1,2 @@ +git +wget diff --git a/tools/dependencies/configs/trisquel7/i386/deps-flashrom b/tools/dependencies/configs/trisquel7/i386/deps-flashrom new file mode 100644 index 00000000..e469c651 --- /dev/null +++ b/tools/dependencies/configs/trisquel7/i386/deps-flashrom @@ -0,0 +1,10 @@ +libftdi1 +libftdi-dev +libpci3 +libpci-dev +libusb-1.0-0 +libusb-1.0-0-dev +pciutils +pkg-config +zlib1g +zlib1g-dev diff --git a/tools/dependencies/configs/trisquel7/i386/deps-generic b/tools/dependencies/configs/trisquel7/i386/deps-generic new file mode 100644 index 00000000..b04512a4 --- /dev/null +++ b/tools/dependencies/configs/trisquel7/i386/deps-generic @@ -0,0 +1,17 @@ +autogen +binutils +build-essential +coreutils +fakeroot +gawk +help2man +libfakeroot +libfaketime +libltdl-dev +liblzma-dev +libopts25 +libopts25-dev +libtool +m4 +texinfo +xz-utils diff --git a/tools/dependencies/configs/trisquel7/i386/deps-grub b/tools/dependencies/configs/trisquel7/i386/deps-grub new file mode 100644 index 00000000..c54e7627 --- /dev/null +++ b/tools/dependencies/configs/trisquel7/i386/deps-grub @@ -0,0 +1,17 @@ +autoconf +automake +bison +flex +gcc +gettext +libdevmapper-dev +libfreetype6 +libfreetype6-dev +libpciaccess0 +libpciaccess-dev +libusb-1.0-0 +libusb-1.0-0-dev +python +qemu-system-x86 +ttf-unifont +xorriso diff --git a/tools/dependencies/configs/trisquel7/i386/deps-i945-pwm b/tools/dependencies/configs/trisquel7/i386/deps-i945-pwm new file mode 100644 index 00000000..538d83f7 --- /dev/null +++ b/tools/dependencies/configs/trisquel7/i386/deps-i945-pwm @@ -0,0 +1,6 @@ +gcc +libpci3 +libpci-dev +make +zlib1g +zlib1g-dev diff --git a/tools/dependencies/configs/trisquel7/i386/deps-memtest86plus b/tools/dependencies/configs/trisquel7/i386/deps-memtest86plus new file mode 100644 index 00000000..89ffe213 --- /dev/null +++ b/tools/dependencies/configs/trisquel7/i386/deps-memtest86plus @@ -0,0 +1,2 @@ +gcc +make diff --git a/tools/dependencies/configs/trisquel7/i686 b/tools/dependencies/configs/trisquel7/i686 new file mode 120000 index 00000000..fd32fa4e --- /dev/null +++ b/tools/dependencies/configs/trisquel7/i686 @@ -0,0 +1 @@ +i386
\ No newline at end of file diff --git a/tools/dependencies/configs/trisquel7/x86_64/README b/tools/dependencies/configs/trisquel7/x86_64/README new file mode 100644 index 00000000..3a920465 --- /dev/null +++ b/tools/dependencies/configs/trisquel7/x86_64/README @@ -0,0 +1,24 @@ +Each file in this directory contains a list of dependencies that +should be installed before compiling the program indicated by the +filename's suffix, with a few exceptions; these exceptions being +"deps-documentation", "deps-download", and "deps-generic" for reasons +noted below: + +* "deps-documentation" contains a general list of packages that are + needed to build Libreboot documentation. +* "deps-download" contains packages necessary for downloading either + source code repositories and/or supporting files from a remote + source. +* "deps-generic" contains generic dependencies that didn't quite fit + (i.e. listed) under any of the other dependency lists but are + necessary nonetheless. + +It is expected that these files are updated whenever upstream projects +change dependency requirements. + +Any duplications between files are intentional; in order to provide a +clear picture as to which dependencies are needed by individual +programs, any attempt to consolidate these lists is dissuaded. + +This README is released under Creative Commons Zero 1.0: +https://creativecommons.org/publicdomain/zero/1.0/ diff --git a/tools/dependencies/configs/trisquel7/x86_64/deps-bucts b/tools/dependencies/configs/trisquel7/x86_64/deps-bucts new file mode 100644 index 00000000..538d83f7 --- /dev/null +++ b/tools/dependencies/configs/trisquel7/x86_64/deps-bucts @@ -0,0 +1,6 @@ +gcc +libpci3 +libpci-dev +make +zlib1g +zlib1g-dev diff --git a/tools/dependencies/configs/trisquel7/x86_64/deps-coreboot b/tools/dependencies/configs/trisquel7/x86_64/deps-coreboot new file mode 100644 index 00000000..bd78c637 --- /dev/null +++ b/tools/dependencies/configs/trisquel7/x86_64/deps-coreboot @@ -0,0 +1,13 @@ +bison +doxygen +flex +gcc +gdb +g++ +iasl +libncurses5 +libncurses5-dev +libssl-dev +make +ncurses-base +pkg-config diff --git a/tools/dependencies/configs/trisquel7/x86_64/deps-crossgcc-arm b/tools/dependencies/configs/trisquel7/x86_64/deps-crossgcc-arm new file mode 100644 index 00000000..f4629ab5 --- /dev/null +++ b/tools/dependencies/configs/trisquel7/x86_64/deps-crossgcc-arm @@ -0,0 +1 @@ +gcc-arm-linux-gnueabi diff --git a/tools/dependencies/configs/trisquel7/x86_64/deps-crossgcc-i386 b/tools/dependencies/configs/trisquel7/x86_64/deps-crossgcc-i386 new file mode 100644 index 00000000..2fa4385b --- /dev/null +++ b/tools/dependencies/configs/trisquel7/x86_64/deps-crossgcc-i386 @@ -0,0 +1,10 @@ +gcc-multilib +lib32ncurses5 +lib32ncurses5-dev +lib32stdc++6 +lib32tinfo-dev +lib32tinfo5 +lib32z1 +lib32z1-dev +libc6-dev-i386 +libc6-i386 diff --git a/tools/dependencies/configs/trisquel7/x86_64/deps-dejavu-fonts b/tools/dependencies/configs/trisquel7/x86_64/deps-dejavu-fonts new file mode 100644 index 00000000..30157ccf --- /dev/null +++ b/tools/dependencies/configs/trisquel7/x86_64/deps-dejavu-fonts @@ -0,0 +1,2 @@ +fontforge +libfont-ttf-perl diff --git a/tools/dependencies/configs/trisquel7/x86_64/deps-documentation b/tools/dependencies/configs/trisquel7/x86_64/deps-documentation new file mode 100644 index 00000000..4a59b54c --- /dev/null +++ b/tools/dependencies/configs/trisquel7/x86_64/deps-documentation @@ -0,0 +1 @@ +pandoc diff --git a/tools/dependencies/configs/trisquel7/x86_64/deps-download b/tools/dependencies/configs/trisquel7/x86_64/deps-download new file mode 100644 index 00000000..880fb73e --- /dev/null +++ b/tools/dependencies/configs/trisquel7/x86_64/deps-download @@ -0,0 +1,2 @@ +git +wget diff --git a/tools/dependencies/configs/trisquel7/x86_64/deps-flashrom b/tools/dependencies/configs/trisquel7/x86_64/deps-flashrom new file mode 100644 index 00000000..e469c651 --- /dev/null +++ b/tools/dependencies/configs/trisquel7/x86_64/deps-flashrom @@ -0,0 +1,10 @@ +libftdi1 +libftdi-dev +libpci3 +libpci-dev +libusb-1.0-0 +libusb-1.0-0-dev +pciutils +pkg-config +zlib1g +zlib1g-dev diff --git a/tools/dependencies/configs/trisquel7/x86_64/deps-generic b/tools/dependencies/configs/trisquel7/x86_64/deps-generic new file mode 100644 index 00000000..b04512a4 --- /dev/null +++ b/tools/dependencies/configs/trisquel7/x86_64/deps-generic @@ -0,0 +1,17 @@ +autogen +binutils +build-essential +coreutils +fakeroot +gawk +help2man +libfakeroot +libfaketime +libltdl-dev +liblzma-dev +libopts25 +libopts25-dev +libtool +m4 +texinfo +xz-utils diff --git a/tools/dependencies/configs/trisquel7/x86_64/deps-grub b/tools/dependencies/configs/trisquel7/x86_64/deps-grub new file mode 100644 index 00000000..c54e7627 --- /dev/null +++ b/tools/dependencies/configs/trisquel7/x86_64/deps-grub @@ -0,0 +1,17 @@ +autoconf +automake +bison +flex +gcc +gettext +libdevmapper-dev +libfreetype6 +libfreetype6-dev +libpciaccess0 +libpciaccess-dev +libusb-1.0-0 +libusb-1.0-0-dev +python +qemu-system-x86 +ttf-unifont +xorriso diff --git a/tools/dependencies/configs/trisquel7/x86_64/deps-i945-pwm b/tools/dependencies/configs/trisquel7/x86_64/deps-i945-pwm new file mode 100644 index 00000000..538d83f7 --- /dev/null +++ b/tools/dependencies/configs/trisquel7/x86_64/deps-i945-pwm @@ -0,0 +1,6 @@ +gcc +libpci3 +libpci-dev +make +zlib1g +zlib1g-dev diff --git a/tools/dependencies/configs/trisquel7/x86_64/deps-memtest86plus b/tools/dependencies/configs/trisquel7/x86_64/deps-memtest86plus new file mode 100644 index 00000000..89ffe213 --- /dev/null +++ b/tools/dependencies/configs/trisquel7/x86_64/deps-memtest86plus @@ -0,0 +1,2 @@ +gcc +make diff --git a/tools/dependencies/dependencies b/tools/dependencies/dependencies new file mode 100755 index 00000000..cc9b2b38 --- /dev/null +++ b/tools/dependencies/dependencies @@ -0,0 +1,57 @@ +#!/usr/bin/env bash + +# Copyright (C) 2017 Andrew Robbins <contact@andrewrobbins.info> +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# 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/>. + +arguments() { + tool_arguments_targets "$tool" "$@" +} + +usage() { + tool_usage_actions "$tool" 'print' + tool_usage_arguments "$tool" "$@" +} + +print() { + local distro="$1" + + local arch="$(uname -i || uname -m)" + local tool_path="$(tool_path "$tool")" + + if [[ -z "$arch" ]]; then + printf '\n%s\n' 'uname(1) produced no output. Exiting' 1>&2 + + return 1 + fi + + dependencies_host_supported "$distro" "$arch" || return + + local -a dependencies + + for dependency_file in "$tool_path/$CONFIGS/$distro/$arch"/*; do + if [[ "${dependency_file##*/}" != 'README' ]]; then + local -i origin="${#dependencies[@]}" + + mapfile -tO "$origin" dependencies < "$dependency_file" + else + continue + fi + done + + local -a sorted + mapfile -t sorted < <(printf '%s\n' "${dependencies[@]}" | sort | uniq) + + dependencies_print "$distro" "${sorted[@]}" +} diff --git a/tools/dependencies/dependencies-helper b/tools/dependencies/dependencies-helper new file mode 100755 index 00000000..9e02ad3c --- /dev/null +++ b/tools/dependencies/dependencies-helper @@ -0,0 +1,73 @@ +#!/usr/bin/env bash + +# Copyright (C) 2017 Andrew Robbins <contact@andrewrobbins.info> +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# 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/>. + +dependencies_print() { + local distro="$1" + shift + + if [[ "$distro" == 'parabola' ]]; then + printf '\n%s\n' 'Enable the multilib repository in /etc/pacman.conf' + printf '\n%s\n' 'Then, run the following command as root:' + printf '\n%s%s\n' 'pacman -S --needed ' "$*" + else + printf '\n%s\n' 'You will need to run the following command as root:' + printf '\n%s%s\n' 'apt-get -y install ' "$*" + fi +} + +dependencies_host_supported() { + local distro="$1" + local arch="$2" + + dependencies_distro_supported "$distro" || return + dependencies_arch_supported "$distro" "$arch" || return +} + +dependencies_arch_supported() { + local distro="$1" + local arch="$2" + + local tool_path="$(tool_path "$tool")" + local distro_dir="$tool_path/$CONFIGS/$distro" + + if ! [[ -d "$distro_dir/$arch" ]]; then + printf '\n%s\n' "Architecture \"$arch\" is not supported" 1>&2 + + return 1 + fi +} + +dependencies_distro_supported() { + local distro="$1" + + local tool_path="$(tool_path "$tool")" + local targets_path="$tool_path/$CONFIGS/$TARGETS" + + local -a targets_list + mapfile -t targets_list < "$targets_path" + + # Necessary to properly format the string for extglob use below + IFS='|' eval 'local distro_list="${targets_list[*]}"' + + if [[ "$distro" != @($distro_list) ]]; then + printf '\n%s' "Argument \"$distro\" is not supported. " 1>&2 + printf '%s\n' 'Check spelling?' 1>&2 + + usage + return 1 + fi +} |