aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rwxr-xr-xtools/blobs-discover/blobs-discover60
-rwxr-xr-xtools/boot-keys/boot-keys28
-rwxr-xr-xtools/boot-keys/boot-keys-helper16
-rw-r--r--tools/dependencies/configs/parabola/i386/README24
-rw-r--r--tools/dependencies/configs/parabola/i386/deps-bucts4
-rw-r--r--tools/dependencies/configs/parabola/i386/deps-coreboot11
-rw-r--r--tools/dependencies/configs/parabola/i386/deps-crossgcc-arm1
-rw-r--r--tools/dependencies/configs/parabola/i386/deps-dejavu-fonts3
-rw-r--r--tools/dependencies/configs/parabola/i386/deps-documentation1
-rw-r--r--tools/dependencies/configs/parabola/i386/deps-download2
-rw-r--r--tools/dependencies/configs/parabola/i386/deps-flashrom7
-rw-r--r--tools/dependencies/configs/parabola/i386/deps-generic10
-rw-r--r--tools/dependencies/configs/parabola/i386/deps-grub17
-rw-r--r--tools/dependencies/configs/parabola/i386/deps-i945-pwm5
-rw-r--r--tools/dependencies/configs/parabola/i386/deps-memtest86plus2
l---------tools/dependencies/configs/parabola/i6861
-rw-r--r--tools/dependencies/configs/parabola/x86_64/README24
-rw-r--r--tools/dependencies/configs/parabola/x86_64/deps-bucts4
-rw-r--r--tools/dependencies/configs/parabola/x86_64/deps-coreboot11
-rw-r--r--tools/dependencies/configs/parabola/x86_64/deps-crossgcc-arm1
-rw-r--r--tools/dependencies/configs/parabola/x86_64/deps-crossgcc-i3869
-rw-r--r--tools/dependencies/configs/parabola/x86_64/deps-dejavu-fonts3
-rw-r--r--tools/dependencies/configs/parabola/x86_64/deps-documentation1
-rw-r--r--tools/dependencies/configs/parabola/x86_64/deps-download2
-rw-r--r--tools/dependencies/configs/parabola/x86_64/deps-flashrom7
-rw-r--r--tools/dependencies/configs/parabola/x86_64/deps-generic10
-rw-r--r--tools/dependencies/configs/parabola/x86_64/deps-grub17
-rw-r--r--tools/dependencies/configs/parabola/x86_64/deps-i945-pwm5
-rw-r--r--tools/dependencies/configs/parabola/x86_64/deps-memtest86plus2
-rw-r--r--tools/dependencies/configs/targets2
-rw-r--r--tools/dependencies/configs/trisquel7/i386/README24
-rw-r--r--tools/dependencies/configs/trisquel7/i386/deps-bucts6
-rw-r--r--tools/dependencies/configs/trisquel7/i386/deps-coreboot13
-rw-r--r--tools/dependencies/configs/trisquel7/i386/deps-crossgcc-arm1
-rw-r--r--tools/dependencies/configs/trisquel7/i386/deps-dejavu-fonts2
-rw-r--r--tools/dependencies/configs/trisquel7/i386/deps-documentation1
-rw-r--r--tools/dependencies/configs/trisquel7/i386/deps-download2
-rw-r--r--tools/dependencies/configs/trisquel7/i386/deps-flashrom10
-rw-r--r--tools/dependencies/configs/trisquel7/i386/deps-generic17
-rw-r--r--tools/dependencies/configs/trisquel7/i386/deps-grub17
-rw-r--r--tools/dependencies/configs/trisquel7/i386/deps-i945-pwm6
-rw-r--r--tools/dependencies/configs/trisquel7/i386/deps-memtest86plus2
l---------tools/dependencies/configs/trisquel7/i6861
-rw-r--r--tools/dependencies/configs/trisquel7/x86_64/README24
-rw-r--r--tools/dependencies/configs/trisquel7/x86_64/deps-bucts6
-rw-r--r--tools/dependencies/configs/trisquel7/x86_64/deps-coreboot13
-rw-r--r--tools/dependencies/configs/trisquel7/x86_64/deps-crossgcc-arm1
-rw-r--r--tools/dependencies/configs/trisquel7/x86_64/deps-crossgcc-i38610
-rw-r--r--tools/dependencies/configs/trisquel7/x86_64/deps-dejavu-fonts2
-rw-r--r--tools/dependencies/configs/trisquel7/x86_64/deps-documentation1
-rw-r--r--tools/dependencies/configs/trisquel7/x86_64/deps-download2
-rw-r--r--tools/dependencies/configs/trisquel7/x86_64/deps-flashrom10
-rw-r--r--tools/dependencies/configs/trisquel7/x86_64/deps-generic17
-rw-r--r--tools/dependencies/configs/trisquel7/x86_64/deps-grub17
-rw-r--r--tools/dependencies/configs/trisquel7/x86_64/deps-i945-pwm6
-rw-r--r--tools/dependencies/configs/trisquel7/x86_64/deps-memtest86plus2
-rwxr-xr-xtools/dependencies/dependencies57
-rwxr-xr-xtools/dependencies/dependencies-helper73
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
+}