Add support for `navigator.requestCookieConsent()` behind a disabled feature flag
[WebKit-https.git] / Tools / gtk / install-dependencies
1 #!/usr/bin/env bash
2
3 # On Linux systems, this script needs to be run with root rights.
4 if [ `uname` != "Darwin" ] && [ $UID -ne 0 ]; then
5     sudo $0
6     exit 0
7 fi
8
9 declare -ga PACKAGES
10
11 function printNotSupportedMessageAndExit() {
12     echo
13     echo "Currently this script only works for distributions supporting apt-get, dnf, pacman and brew."
14     echo "Please add support for your distribution: http://webkit.org/b/110693"
15     echo
16     exit 1
17 }
18
19 function guessPackageManager() {
20     local ret
21
22     if apt-get --version &>/dev/null; then
23         # apt-get - Debian based distributions
24         ret="apt"
25     elif [[ $(uname) == "Darwin" ]]; then
26         if brew &>/dev/null; then
27             echo "Please install HomeBrew. Instructions on http://brew.sh"
28             exit 1
29         fi
30         ret="brew"
31     elif dnf --version &>/dev/null; then
32         # dnf - Fedora
33         ret="dnf"
34     elif pacman -Ss &>/dev/null; then
35         # pacman - Arch Linux
36         # pacman --version and pacman --help both return non-0
37         ret="pacman"
38     else
39         printNotSupportedMessageAndExit
40     fi
41
42     echo $ret
43 }
44
45 function installDependencies {
46     local packageManager
47
48     packageManager=$(guessPackageManager)
49     source "$(dirname "$0")/dependencies/$packageManager"
50     installDependenciesWith${packageManager^}
51 }
52
53 function installDependenciesWithApt {
54     apt-get install -y --no-install-recommends ${PACKAGES[@]}
55
56     # Ubuntu Bionic doesn't ship pipenv. So fallback to the pip3 install path.
57     if apt-cache show pipenv &>/dev/null; then
58         apt-get install -y --no-install-recommends pipenv
59     else
60         apt-get install -y --no-install-recommends python3-pip
61         pip3 install pipenv
62     fi
63 }
64
65 function installDependenciesWithBrew {
66     brew install ${PACKAGES[@]}
67 }
68
69 function installDependenciesWithDnf {
70     dnf install ${PACKAGES[@]}
71 }
72
73 function installDependenciesWithPacman {
74     pacman -S --needed ${PACKAGES[@]}
75
76     cat <<-EOF
77
78 The following packages are available from AUR, and needed for running tests:
79
80     ruby-json ruby-highline
81
82 Instructions on how to use the AUR can be found on the Arch Wiki:
83
84     https://wiki.archlinux.org/index.php/Arch_User_Repository
85
86 You will also need to follow the instructions on the wiki to make 'python'
87 call python2 in the WebKit folder:
88
89     https://wiki.archlinux.org/index.php/Python#Dealing_with_version_problem_in_build_scripts
90
91 Alternatively, you may use a Python 2.x virtualenv while hacking on WebKitGTK:
92
93     https://wiki.archlinux.org/index.php/Python/Virtual_environment
94
95 EOF
96 }
97
98 installDependencies