├── .buildkite ├── darwin_amd64.yaml ├── darwin_arm64.yaml ├── test.cmd ├── test.sh ├── testbot_maintenance.sh └── windows_amd64.yml ├── .circleci ├── circle_vm_setup.sh ├── config.yml └── trigger_build.sh ├── .gitignore ├── COPYING ├── DRUPAL_MAINTAINER_README.md ├── README.md ├── example.gitignore ├── install.sh ├── licenses ├── LICENSE-docker-desktop.txt ├── LICENSE-drud-ddev.txt ├── LICENSE-drud-dev-router.txt ├── LICENSE-drud-docker-phpmyadmin.txt ├── LICENSE-drud-mariadb-local.txt ├── LICENSE-drud-nginx-php-fpm-local.txt ├── LICENSE-git.txt └── LICENSE-mailhog-mailhog.txt ├── package_drupal_script.sh ├── sprint ├── Readme.txt └── switch_branch.sh ├── start_sprint.sh └── tests ├── installation.bats ├── sanetestbot.sh └── test_drupal_quicksprint.sh /.buildkite/darwin_amd64.yaml: -------------------------------------------------------------------------------- 1 | steps: 2 | - command: ".buildkite/test.sh" 3 | label: "package and test amd64" 4 | agents: 5 | - "os=macos" 6 | - "architecture=amd64" 7 | -------------------------------------------------------------------------------- /.buildkite/darwin_arm64.yaml: -------------------------------------------------------------------------------- 1 | steps: 2 | - command: ".buildkite/test.sh" 3 | label: "package and test arm64" 4 | agents: 5 | - "os=macos" 6 | - "architecture=arm64" 7 | -------------------------------------------------------------------------------- /.buildkite/test.cmd: -------------------------------------------------------------------------------- 1 | @echo "Building using bash and build.sh" 2 | "C:\Program Files\git\bin\bash" .buildkite/test.sh 3 | 4 | if %ERRORLEVEL% EQU 0 ( 5 | @echo Successful build 6 | ) else ( 7 | @echo Failure Reason Given is %errorlevel% 8 | exit /b %errorlevel% 9 | ) 10 | -------------------------------------------------------------------------------- /.buildkite/test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "--- buildkite building at $(date) on $(hostname) for OS=$(go env GOOS) in $PWD with golang=$(go version) docker=$(docker version --format '{{.Server.Version}}') and docker-compose $(docker-compose version --short) ddev version=$(ddev --version)" 4 | 5 | set -o errexit 6 | set -o pipefail 7 | set -o nounset 8 | export DDEV_NO_INSTRUMENTATION=true 9 | 10 | # Run any testbot maintenance that may need to be done 11 | echo "--- running testbot_maintenance.sh" 12 | bash $(dirname $0)/testbot_maintenance.sh 13 | 14 | echo "--- package_drupal_script.sh" 15 | rm -f ~/tmp/quicksprint_thirdparty*gz ~/tmp/drupal_sprint_package*gz ~/tmp/drupal_sprint_package*zip 16 | echo "n" | ./package_drupal_script.sh 17 | echo "--- test_drupal_quicksprint.sh" 18 | tests/test_drupal_quicksprint.sh 19 | echo "--- cleanup" 20 | rm -f ~/tmp/*$(cat .quicksprint_release.txt)*.tar.gz 21 | -------------------------------------------------------------------------------- /.buildkite/testbot_maintenance.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -eu 4 | 5 | os=$(go env GOOS) 6 | 7 | # Upgrade darwin and windows packages 8 | case $os in 9 | darwin) 10 | brew upgrade mkcert || brew install mkcert || true 11 | brew upgrade composer || brew install composer || true 12 | rm /usr/local/bin/ddev && brew unlink ddev && (brew upgrade ddev || brew install ddev || true) 13 | brew link ddev 14 | 15 | ;; 16 | windows) 17 | choco upgrade -y mkcert ddev 18 | composer self-update 19 | ;; 20 | esac 21 | -------------------------------------------------------------------------------- /.buildkite/windows_amd64.yml: -------------------------------------------------------------------------------- 1 | steps: 2 | - command: ".buildkite/test.cmd" 3 | label: "package and test" 4 | agents: 5 | - "os=windows" 6 | - "dockertype=dockerforwindows" 7 | - "architecture=amd64" 8 | -------------------------------------------------------------------------------- /.circleci/circle_vm_setup.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -o errexit 4 | set -x 5 | 6 | # Basic tools 7 | 8 | v=php7.4 9 | sudo add-apt-repository -y ppa:ondrej/php 10 | sudo apt-get update -qq 11 | sudo apt-get install -y -qq coreutils jq zip ${v} ${v}-bcmath ${v}-curl ${v}-cgi ${v}-cli ${v}-common ${v}-fpm ${v}-gd ${v}-intl ${v}-json ${v}-mysql ${v}-mbstring ${v}-opcache ${v}-soap ${v}-readline ${v}-xdebug ${v}-xml ${v}-xmlrpc ${v}-zip; 12 | 13 | sudo php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" 14 | sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer 15 | sudo php -r "unlink('composer-setup.php');" 16 | 17 | if [ ! -d /home/linuxbrew/.linuxbrew/bin ] ; then 18 | sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)" 19 | fi 20 | 21 | echo "export PATH=/home/linuxbrew/.linuxbrew/bin:$PATH" >>~/.bashrc 22 | 23 | . ~/.bashrc 24 | 25 | brew update 26 | brew install mkcert drud/ddev/ddev 27 | 28 | # install recent bats bash testing framework 29 | BATS_TAG=v1.1.0 30 | sudo rm -f /usr/local/bin/bats 31 | cd /tmp && git clone https://github.com/bats-core/bats-core.git && cd bats-core && git checkout ${BATS_TAG} && sudo ./install.sh /usr/local 32 | -------------------------------------------------------------------------------- /.circleci/config.yml: -------------------------------------------------------------------------------- 1 | version: 2.0 2 | 3 | jobs: 4 | "package_build": 5 | machine: 6 | image: ubuntu-2004:202101-01 7 | working_directory: ~/quicksprint 8 | environment: 9 | TERM: vt100 10 | DDEV_NO_INSTRUMENTATION: true 11 | steps: 12 | - checkout 13 | - run: 14 | command: ./.circleci/circle_vm_setup.sh 15 | name: NORMAL Circle VM setup - tools, docker 16 | - run: 17 | command: source ~/.bashrc && echo "y" | ./package_drupal_script.sh 18 | name: Run the package_drupal_script.sh 19 | no_output_timeout: "20m" 20 | - persist_to_workspace: 21 | root: ~/ 22 | paths: 23 | - quicksprint 24 | - tmp 25 | "test_package": 26 | machine: 27 | image: ubuntu-2004:202101-01 28 | working_directory: ~/quicksprint 29 | environment: 30 | TERM: vt100 31 | DDEV_NO_INSTRUMENTATION: true 32 | steps: 33 | - attach_workspace: 34 | at: ~/ 35 | - run: 36 | command: ./.circleci/circle_vm_setup.sh 37 | name: NORMAL Circle VM setup - tools, docker 38 | - run: source ~/.bashrc && tests/test_drupal_quicksprint.sh 39 | 40 | 41 | "artifacts": 42 | machine: 43 | image: ubuntu-2004:202101-01 44 | working_directory: ~/quicksprint 45 | environment: 46 | ARTIFACTS: /home/circleci/artifacts 47 | DDEV_NO_INSTRUMENTATION: true 48 | steps: 49 | - attach_workspace: 50 | at: ~/ 51 | - run: 52 | command: ./.circleci/circle_vm_setup.sh 53 | name: NORMAL Circle VM setup - tools, docker 54 | - run: 55 | command: | 56 | mkdir /home/circleci/artifacts && cd /home/circleci/artifacts && cp ~/tmp/*$(cat .quicksprint_release.txt)*.{tar.gz,zip} . 57 | for item in *.tar.gz *.zip; do 58 | sha256sum $item > $item.sha256.txt 59 | done 60 | name: make artifacts tarball downloads 61 | no_output_timeout: "20m" 62 | - store_artifacts: 63 | path: /home/circleci/artifacts 64 | name: Artifact storage 65 | - persist_to_workspace: 66 | root: ~/ 67 | paths: 68 | - quicksprint 69 | - tmp 70 | - artifacts 71 | 72 | publish-github-release: 73 | environment: 74 | ARTIFACTS: /root/artifacts 75 | docker: 76 | - image: cibuilds/github:0.10 77 | steps: 78 | - attach_workspace: 79 | at: ~/ 80 | - run: 81 | name: "Publish Release on GitHub" 82 | command: | 83 | ghr -t ${GITHUB_TOKEN} -u ${CIRCLE_PROJECT_USERNAME} -r ${CIRCLE_PROJECT_REPONAME} -c ${CIRCLE_SHA1} ${CIRCLE_TAG} $ARTIFACTS 84 | 85 | workflows: 86 | version: 2 87 | normal_build_and_test: 88 | jobs: 89 | - package_build 90 | - test_package: 91 | requires: 92 | - package_build 93 | - artifacts: 94 | requires: 95 | - package_build 96 | 97 | nightly_build: 98 | triggers: 99 | - schedule: 100 | cron: "0 3 * * 1-5" 101 | filters: 102 | branches: 103 | only: 104 | - master 105 | jobs: 106 | - package_build 107 | - test_package: 108 | requires: 109 | - package_build 110 | - artifacts: 111 | requires: 112 | - package_build 113 | 114 | tag_build: 115 | jobs: 116 | - package_build: 117 | filters: 118 | tags: 119 | only: 120 | - "/.*/" 121 | branches: 122 | ignore: /.*/ 123 | 124 | - test_package: 125 | requires: 126 | - package_build 127 | filters: 128 | tags: 129 | only: 130 | - "/.*/" 131 | branches: 132 | ignore: /.*/ 133 | - artifacts: 134 | requires: 135 | - package_build 136 | filters: 137 | tags: 138 | only: 139 | - "/.*/" 140 | branches: 141 | ignore: /.*/ 142 | - publish-github-release: 143 | requires: 144 | - artifacts 145 | - test_package 146 | filters: 147 | tags: 148 | only: 149 | - "/.*/" 150 | branches: 151 | ignore: /.*/ 152 | 153 | -------------------------------------------------------------------------------- /.circleci/trigger_build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # from https://circleci.com/docs/1.0/nightly-builds/ 4 | # See also https://circleci.com/docs/2.0/defining-multiple-jobs/ 5 | 6 | # trigger_build.sh $circle_token $project_optional $branch_optional 7 | 8 | CIRCLE_TOKEN=$1 9 | JOB=${2:-nightly_build} 10 | PROJECT=${3:-drud/ddev} 11 | BRANCH=${4:-master} 12 | 13 | trigger_build_url=https://circleci.com/api/v1.1/project/github/${PROJECT}/tree/${BRANCH}?circle-token=${CIRCLE_TOKEN} 14 | 15 | curl --data "build_parameters[CIRCLE_JOB]=$JOB" ${trigger_build_url} -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .ddev_version.txt 2 | .quicksprint_release.txt 3 | /env/ 4 | -------------------------------------------------------------------------------- /COPYING: -------------------------------------------------------------------------------- 1 | This Software is distributed in a compressed archive with the following third-party software and Docker images under other copyright notices. 2 | 3 | ddev is included in the distributable release as a software artifact, and is distributed under the Apache 2.0 license: 4 | 5 | ddev - (c) Copyright 2018 DRUD Technology, LLC. 6 | 7 | Docker™ images are included in the distributable release as software artifacts and distributed according to the provisions of the MIT license: 8 | 9 | mailhog/mailhog - (c) Copyright 2014 - 2018 Ian Kent (http://iankent.uk). 10 | 11 | Docker images are included in the distributable release as software artifacts and distributed according to the provisions of the Apache 2.0 license: 12 | 13 | drud/ddev-router - (c) Copyright 2018 DRUD Technology, LLC. 14 | drud/phpmyadmin - (c) Copyright 2018 DRUD Technology, LLC. 15 | drud/ddev-dbserver - (c) Copyright 2018 DRUD Technology, LLC. 16 | drud/ddev-webserver - (c) Copyright 2018 DRUD Technology, LLC. 17 | 18 | Drupal™ is included in the distributable release as a software artifact, and is distributed under the GPL license: 19 | 20 | Drupal - (c) Copyright 2001 - 2018 by the original authors 21 | See drupal/core/COPYRIGHT.txt for more details. 22 | The trademark "Drupal" belongs to Dries Buytaert. 23 | 24 | This Software may be distributed alongside the following third-party software under other copyright notices. 25 | 26 | Docker Community Edition, or otherwise known as "Docker open source", is distributed under the Apache 2.0 license under the following copyright: 27 | 28 | Docker open source - (c) 2013 - 2018 Docker, Inc. 29 | See https://www.docker.com/components-licenses for more details. 30 | The trademark "Docker" belongs to Docker, Inc. 31 | 32 | 7-Zip is distributed under the GNU Lesser General Public License 2.1 license under the following copyright: 33 | 34 | 7-Zip Copyright (C) 1999-2018 Igor Pavlov. 35 | 36 | git is distributed under the GNU GENERAL PUBLIC LICENSE v2. 37 | -------------------------------------------------------------------------------- /DRUPAL_MAINTAINER_README.md: -------------------------------------------------------------------------------- 1 | # Drupal Quicksprint Maintainer Notes 2 | 3 | Quicksprint is a basic toolkit to get people started with ddev and a Drupal codebase. This is intended for contribution events where lots of people need to get started with the same environment in a short period of time. 4 | 5 | There are two parts to this project: 6 | 7 | 1. A build of the tarball that a contribution event attendee needs (done by a maintainer using Linux or Mac OS, who should be reading this right now). The maintainer uses `package_drupal_script.sh` to create a tarball/zipball for sprint attendees to use. 8 | 2. A released tarball/zipball that has everything ready for an ordinary contributor to get set up fast. It includes a README.md to help them know what to do. 9 | 10 | 11 | ## Distributing a Sprint Package 12 | 13 | There are several ways to distribute your package such as through a peer-to-peer tool such as ResilioSync, USB flash drives or downloading from the releases page. This will depend on the size of your sprint. 14 | 15 | You must provide both the contents of the `drupal_sprint_package` *and* the `installs` tarball. (The installs package grew too big for github releases.) 16 | 17 | Method | Sprint Size | Bandwidth | Other Considerations 18 | ---------- | ----------- | --------- | ---------------------- 19 | ResilioSync | 100+ users | N/A | ResilioSync is not screen reader friendly and may be conflict with Firewall/Access Point security settings. Theoretically everyone would be able to get the files at the same time. 20 | USB drives | varies | N/A | 30+ USB flash drives will work for large events, but people will be waiting in line. 21 | Download | 25 users | 5 m/s | Sprint venue may not be able to support large number of users pulling releases from github. 22 | 23 | #### USB Flash Drives 24 | 25 | There are some better tools to automate USB flash drive imaging, but your mileage may vary. The following is a no frills method of doing so. 26 | 27 | 1. Download the latest release(s) locally. 28 | 2. Add the files to a flash drive. 29 | * (MacOS only) Remove hidden directories added by Spotlight and Finder. 30 | 3. Determine the total file size used on the device: `du /path/to/volume` so you know what the count parameter should be in the dd command below. 31 | * **⚠️ Warning** If you are _overwriting_ an existing package on a flash drive then this number **must** be greater than the previous size! 32 | 4. Create a disk image using `dd if=/dev/DEVICE` of=~/sprint-package.img bs=1m count=2700`. 33 | * (MacOS only) Check the disk device with `diskutil list`. 34 | 5. Eject/Umount the flash drive. 35 | 6. Insert a new flash drive. 36 | * (MacOS/Automount only) Unmount the flash drive if automounted - `diskutil unmount /dev/DEVICE`. 37 | 7. Reformat the flash drive (if the flash drive has files greater than the size of the disk image). 38 | 8. Write the image to the flash drive using `dd if=~/sprint-package.img of=/dew/DEVICE bs=1m`. 39 | 9. Eject and repeat 6. as necessary. 40 | 41 | ### Using your Sprint Package 42 | 43 | * Your users will download and unarchive the tarball or zipball. 44 | * Run install.sh from the unarchived directory; (Windows users must work in git-bash). 45 | * After installation, users can start up an instance by cd-ing to ~/sprint and running ./start_sprint.sh. 46 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Archived! 2 | 3 | 2022-03-10: This project is not currently under active development, because Drupal events are typically using [DrupalPod](https://github.com/shaal/DrupalPod) instead. 4 | 5 | If it's needed, it can be resurrected. 6 | 7 | # Drupal Contribution Package 8 | 9 | This package contains tools to get you started contributing to Drupal: 10 | 11 | * Drupal, already cloned with git 12 | * Docker Desktop for Mac or Windows 13 | * DDEV-Local (ddev) development environment 14 | * Additional tools including git for Windows 15 | 16 | ## Prerequisites 17 | 18 | * A computer with 6gb memory or greater. 19 | * Windows 10 or higher (with WSL2 and/or Hyper-V support), MacOS High Sierra or higher or a recent/stable Linux distribution. 20 | * A robust code editor such as Visual Studio Code, Atom, PhpStorm or Netbeans (this may be provided as part of this package). 21 | 22 | **⚠️ If your computer does not match a requirement, try the [Drupal quick-start](https://www.drupal.org/docs/8/install/quick-start-launch-a-local-demo-version-of-drupal-8-using-4-brief-steps)**! Now skip the steps below. 23 | 24 | ## Getting Started 25 | 26 | 1. [Get The Files](#get-the-files) 27 | 2. [Extract drupal_sprint_package](#extract-files) 28 | 3. [Install Docker and Other Requirements](#install) 29 | 4. [Open Terminal](#open-terminal) 30 | 5. [Install Contribution Tools](#install-tools) 31 | 32 | 33 | ### 1. Get The Files 34 | 35 | Use one of the options below to get the files. 36 | 37 | * GitHub - Download `drupal_sprint_package..zip` from https://github.com/drud/quicksprint/releases. Also download `quicksprint_thirdparty_installs.>.zip` if you need Docker and/or Git. 38 | * USB Drive (available at some conferences) - Copy drupal_sprint_package.RELEASE.zip and Docker installer for your Operating System from the USB drive to your Desktop. 39 | * ResilioSync (available at some conferences) - Find the folder/directory that was downloaded and copy its contents to your Desktop. 40 | 41 | 42 | 43 | ### 2. drupal_sprint_package directory 44 | 45 | Extract the `drupal_sprint_package..zip` file, and open or browse the contents. This is the sprint package directory. 46 | 47 | Extract the `quicksprint_thirdparty_installs..zip` if downloaded, and open or browse the contents and find the /installs folder. This is the third party installs directory. 48 | 49 | 50 | ### 3. Install Docker and Other Requirements 51 | 52 | #### 3.1 Docker Desktop 53 | 54 | * **Windows users install git:** First, install Git For Windows from the **third party installs** directory. The version here is newer than you might have on your computer if you already have it, so install if you don't have Git for Windows or have a version less than 2.21.0. 55 | * **All users:** Find the Docker installer for your Operating System underneath the **third party installs** directory. It is important to install the version of Docker provided for compatibility with the tools. 56 | 57 | Operating System | Docker Version | Installer 58 | ---------------- | -------------------------- | ----------------- 59 | Windows 10 | Docker Desktop for Windows | "Docker for Windows Installer.exe" 60 | MacOS | Docker Desktop for Mac | Docker.dmg 61 | Linux | Docker CE, docker-compose | See [Linux instructions](https://docs.docker.com/engine/install/#server) 62 | 63 | **⚠️Docker Desktop for Windows**: Docker Desktop prompts you to enable WSL 2 during installation. 64 | 65 | **⚠️All users** Additional Docker **installation** troubleshooting and installation documentation is available at [ddev docker instructions](https://ddev.readthedocs.io/en/stable/users/docker_installation/). 66 | 67 | -**⚠️Linux users:** You'll probably need the [ddev docker instructions](https://ddev.readthedocs.io/en/stable/users/docker_installation/) to confirm your versions of docker ce and docker-compose to get docker properly setup. 68 | 69 | **⚠️All users:** Now start the Docker application you installed. Docker may ask you to create a DockerHub user account, and you may ignore this prompt safely and continue on below. 70 | 71 | 72 | ### 4. Open Terminal 73 | 74 | Open your Terminal application. If you already had a window open, **close it and open another one**. 75 | 76 | Operating System | Docker Version | Program 77 | ---------------- | -------------------------- | ---------------- 78 | Windows 10 | Docker Desktop | Git Bash 79 | MacOS | Docker Desktop | Terminal.app or your preferred terminal application 80 | Linux | Docker CE, docker-compose | Your preferred terminal application 81 | 82 | 83 | ### 5. Install Contribution Tools 84 | 85 | 1. Change directory to the `drupal_sprint_package` directory using the `cd` command: 86 | * Example: Run `cd ~/Desktop/drupal_sprint_package` 87 | 2. Run the `install.sh` command and follow the prompts. 88 | * Example: `./install.sh` 89 | 3. Follow the instructions that print out at the end of the previous command to create a sprint instance. 90 | * Example: `cd ~/sprint` and `./start_sprint.sh`. 91 | 92 | This may take a few minutes and will provide you with a set of URLs and further instructions for using your contribution environment. 93 | 94 | -------------------------------------------------------------------------------- /example.gitignore: -------------------------------------------------------------------------------- 1 | # This file contains default .gitignore rules. To use it, copy it to .gitignore, 2 | # and it will cause files like your settings.php and user-uploaded files to be 3 | # excluded from Git version control. This is a common strategy to avoid 4 | # accidentally including private information in public repositories and patch 5 | # files. 6 | # 7 | # Because .gitignore can be specific to your site, this file has a different 8 | # name; updating Drupal core will not override your custom .gitignore file. 9 | 10 | # Ignore core when managing all of a project's dependencies with Composer 11 | # including Drupal core. 12 | # core 13 | 14 | # IDEs 15 | .idea/ 16 | .c9/ 17 | nbproject/ 18 | .vs/ 19 | .vscode/ 20 | .project 21 | .metadata 22 | .settings/ 23 | *.swp 24 | *.bak 25 | *.tmproj 26 | *.tmproject 27 | tmtags 28 | *.sublime-workspace 29 | *.sublime-project 30 | 31 | # Ignores .gitignore file (for core development). 32 | .gitignore 33 | 34 | # Ignore dependencies that are managed with Composer. 35 | # Generally you should only ignore the root vendor directory. It's important 36 | # that core/assets/vendor and any other vendor directories within contrib or 37 | # custom module, theme, etc., are not ignored unless you purposely do so. 38 | /vendor/ 39 | 40 | # Ignore configuration files that may contain sensitive information. 41 | sites/*/settings*.php 42 | sites/*/services*.yml 43 | 44 | # Ignore paths that contain user-generated content. 45 | sites/*/files 46 | sites/*/private 47 | 48 | # Ignore SimpleTest multi-site environment. 49 | sites/simpletest 50 | 51 | # If you prefer to store your .gitignore file in the sites/ folder, comment 52 | # or delete the previous settings and uncomment the following ones, instead. 53 | 54 | # Ignore configuration files that may contain sensitive information. 55 | # */settings*.php 56 | 57 | # Ignore paths that contain user-generated content. 58 | # */files 59 | # */private 60 | 61 | # Ignore SimpleTest multi-site environment. 62 | # simpletest 63 | 64 | # Sprint tools 65 | .ddev/ 66 | .db_dumps/ 67 | .phantomjs/ 68 | 69 | -------------------------------------------------------------------------------- /install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -o errexit 4 | set -o pipefail 5 | set -o nounset 6 | 7 | # Install provided ddev release 8 | RED='\033[31m' 9 | GREEN='\033[32m' 10 | YELLOW='\033[33m' 11 | RESET='\033[0m' 12 | OS=$(uname) 13 | ARCH=$(arch) 14 | if [ ${ARCH} = "i386" ] || [ ${ARCH} = "x86_64" ]; then ARCH=amd64; fi 15 | USER=$(whoami) 16 | SHACMD="" 17 | FILEBASE="" 18 | CURRENT_DIR=$PWD 19 | DDEV_VERSION=$(cat ./.ddev_version.txt) 20 | 21 | # Check Docker is running 22 | if docker run --rm -t busybox:latest ls >/dev/null 23 | then 24 | printf "docker is running, continuing." 25 | else 26 | printf "${RED}Docker is not running and is required for this script, exiting.\n${RESET}" 27 | exit 1 28 | fi 29 | 30 | # Explain what the script does 31 | printf " 32 | ${GREEN} 33 | #### 34 | # This script will install everything you need to participate in this 35 | # contribution event. 36 | # 37 | # Feel free to first inspect the script before continuing if you like. 38 | # -To do this just open it with a text editor 39 | # 40 | # It does the following: 41 | # -Install the DDEV-Local development tool 42 | # -Copy required components to ~/sprint 43 | # -Pre-loads docker images for the toolkit: 44 | # 45 | #### 46 | ${RESET}" 47 | 48 | echo "" 49 | printf "Installing docker images for ddev to use...\n" 50 | 51 | # Allow faster turnaround on testing by export QUICKSPRINT_SKIP_IMAGE_INSTALL=true 52 | if [ -z "${QUICKSPRINT_SKIP_IMAGE_INSTALL:-}" ]; then 53 | if command -v xzcat >/dev/null; then 54 | xzcat ddev_tarballs/ddev_docker_images.${ARCH}.*.tar.xz | docker load 55 | elif [[ "$OS" == "Darwin" ]]; then 56 | gzip -dc ddev_tarballs/ddev_docker_images.${ARCH}.*.tar.xz | docker load 57 | else 58 | printf "${YELLOW}Unable to load ddev_docker_images. They will load at first 'ddev start'.${RESET}\n" 59 | fi 60 | fi 61 | 62 | TARBALL="" 63 | case "${OS}/${ARCH}" in 64 | Linux/amd64) 65 | TARBALL=ddev_tarballs/ddev_linux-amd64.${DDEV_VERSION}.tar.gz 66 | ;; 67 | Linux/arm64) 68 | TARBALL=ddev_tarballs/ddev_linux-arm64.${DDEV_VERSION}.tar.gz 69 | ;; 70 | Darwin/amd64) 71 | TARBALL=ddev_tarballs/ddev_macos-amd64.${DDEV_VERSION}.tar.gz 72 | ;; 73 | Darwin/arm64) 74 | TARBALL=ddev_tarballs/ddev_macos-arm64.${DDEV_VERSION}.tar.gz 75 | ;; 76 | MINGW64_NT*) 77 | echo "" 78 | # Assume if DDEV_INSTALL_DIR is set that we *do* need ddev on Windows, install it. 79 | # Otherwise, we'll do the install using the installer below. 80 | if [ ! -z "${DDEV_INSTALL_DIR:-}" ]; then 81 | TARBALL=ddev_tarballs/ddev_windows-amd64.${DDEV_VERSION}.tar.gz 82 | fi 83 | ;; 84 | *) 85 | printf "${RED}No ddev binary is available for ${OS}/${ARCH}${RESET}\n" 86 | exit 2 87 | ;; 88 | 89 | esac 90 | 91 | if [ ! -z "$TARBALL" ] ; then 92 | tar -xzf ${TARBALL} -C /tmp 93 | chmod ugo+x /tmp/ddev 94 | 95 | if command -v ddev >/dev/null && [ -z "${DDEV_INSTALL_DIR:-}" ] ; then 96 | printf "\n${RED}A version of ddev already exists in $(command -v ddev); You may upgrade it using your normal upgrade technique. Not installing a new version.${RESET}\n" 97 | else 98 | # Calling script may have already set DDEV_INSTALL_DIR, otherwise we respect and use it. 99 | if [ ! -z "${DDEV_INSTALL_DIR:-}" ]; then 100 | # It's the responsibility of the caller to have created the directory 101 | # and to have added the directory to $PATH 102 | echo "Installing for tests into DDEV_INSTALL_DIR='${DDEV_INSTALL_DIR:-}'" 103 | fi 104 | DDEV_INSTALL_DIR=${DDEV_INSTALL_DIR:-/usr/local/bin} 105 | if [ ! -d ${DDEV_INSTALL_DIR:-} ] ; then 106 | echo "DDEV_INSTALL_DIR '${DDEV_INSTALL_DIR:-}' does not exist" 107 | exit 3 108 | fi 109 | printf "Ready to place ddev in directory ${DDEV_INSTALL_DIR:-}.\n" 110 | BINOWNER=$(ls -ld ${DDEV_INSTALL_DIR:-} | awk '{print $3}') 111 | 112 | if [[ "$BINOWNER" == "$USER" ]]; then 113 | mv -f /tmp/ddev /tmp/mkcert ${DDEV_INSTALL_DIR:-} 114 | else 115 | printf "${YELLOW}Running \"sudo mv /tmp/ddev $DDEV_INSTALL_DIR\" Please enter your password if prompted.${RESET}\n" 116 | sudo mv /tmp/ddev /tmp/mkcert ${DDEV_INSTALL_DIR:-} 117 | fi 118 | fi 119 | fi 120 | if ! command -v ddev >/dev/null && [[ "$OS" =~ "MINGW64" ]] ; then 121 | printf "${YELLOW}Running the ddev_windows_installer. Please allow privileges as requested${RESET}\n" 122 | # Silent install of ddev for windows 123 | cmd //c $PWD/ddev_tarballs/ddev_windows_installer.${DDEV_VERSION}.exe //S 124 | printf "${GREEN}Installed ddev using the ddev_windows_installer. It may not be in your PATH until you open a new window.${RESET}\n" 125 | fi 126 | 127 | mkdir -p ~/sprint 128 | cp start_sprint.sh ~/sprint 129 | cp sprint.tar.xz ~/sprint 130 | 131 | printf " 132 | ${GREEN} 133 | ###### 134 | # 135 | # Your ddev and the contribution event kit are now ready to use, 136 | # Please open a NEW WINDOW to make sure you have any additional PATHs 137 | # and execute the following commands to start: 138 | # 139 | # IN A NEW WINDOW: 140 | # 141 | # ${YELLOW}mkcert -install${GREEN} 142 | # ${YELLOW}cd ~/sprint${GREEN} 143 | # ${YELLOW}./start_sprint.sh${GREEN} 144 | # 145 | ###### 146 | ${RESET} 147 | " 148 | 149 | -------------------------------------------------------------------------------- /licenses/LICENSE-docker-desktop.txt: -------------------------------------------------------------------------------- 1 | 2 | Apache License 3 | Version 2.0, January 2004 4 | https://www.apache.org/licenses/ 5 | 6 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 7 | 8 | 1. Definitions. 9 | 10 | "License" shall mean the terms and conditions for use, reproduction, 11 | and distribution as defined by Sections 1 through 9 of this document. 12 | 13 | "Licensor" shall mean the copyright owner or entity authorized by 14 | the copyright owner that is granting the License. 15 | 16 | "Legal Entity" shall mean the union of the acting entity and all 17 | other entities that control, are controlled by, or are under common 18 | control with that entity. For the purposes of this definition, 19 | "control" means (i) the power, direct or indirect, to cause the 20 | direction or management of such entity, whether by contract or 21 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 22 | outstanding shares, or (iii) beneficial ownership of such entity. 23 | 24 | "You" (or "Your") shall mean an individual or Legal Entity 25 | exercising permissions granted by this License. 26 | 27 | "Source" form shall mean the preferred form for making modifications, 28 | including but not limited to software source code, documentation 29 | source, and configuration files. 30 | 31 | "Object" form shall mean any form resulting from mechanical 32 | transformation or translation of a Source form, including but 33 | not limited to compiled object code, generated documentation, 34 | and conversions to other media types. 35 | 36 | "Work" shall mean the work of authorship, whether in Source or 37 | Object form, made available under the License, as indicated by a 38 | copyright notice that is included in or attached to the work 39 | (an example is provided in the Appendix below). 40 | 41 | "Derivative Works" shall mean any work, whether in Source or Object 42 | form, that is based on (or derived from) the Work and for which the 43 | editorial revisions, annotations, elaborations, or other modifications 44 | represent, as a whole, an original work of authorship. For the purposes 45 | of this License, Derivative Works shall not include works that remain 46 | separable from, or merely link (or bind by name) to the interfaces of, 47 | the Work and Derivative Works thereof. 48 | 49 | "Contribution" shall mean any work of authorship, including 50 | the original version of the Work and any modifications or additions 51 | to that Work or Derivative Works thereof, that is intentionally 52 | submitted to Licensor for inclusion in the Work by the copyright owner 53 | or by an individual or Legal Entity authorized to submit on behalf of 54 | the copyright owner. For the purposes of this definition, "submitted" 55 | means any form of electronic, verbal, or written communication sent 56 | to the Licensor or its representatives, including but not limited to 57 | communication on electronic mailing lists, source code control systems, 58 | and issue tracking systems that are managed by, or on behalf of, the 59 | Licensor for the purpose of discussing and improving the Work, but 60 | excluding communication that is conspicuously marked or otherwise 61 | designated in writing by the copyright owner as "Not a Contribution." 62 | 63 | "Contributor" shall mean Licensor and any individual or Legal Entity 64 | on behalf of whom a Contribution has been received by Licensor and 65 | subsequently incorporated within the Work. 66 | 67 | 2. Grant of Copyright License. Subject to the terms and conditions of 68 | this License, each Contributor hereby grants to You a perpetual, 69 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 70 | copyright license to reproduce, prepare Derivative Works of, 71 | publicly display, publicly perform, sublicense, and distribute the 72 | Work and such Derivative Works in Source or Object form. 73 | 74 | 3. Grant of Patent License. Subject to the terms and conditions of 75 | this License, each Contributor hereby grants to You a perpetual, 76 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 77 | (except as stated in this section) patent license to make, have made, 78 | use, offer to sell, sell, import, and otherwise transfer the Work, 79 | where such license applies only to those patent claims licensable 80 | by such Contributor that are necessarily infringed by their 81 | Contribution(s) alone or by combination of their Contribution(s) 82 | with the Work to which such Contribution(s) was submitted. If You 83 | institute patent litigation against any entity (including a 84 | cross-claim or counterclaim in a lawsuit) alleging that the Work 85 | or a Contribution incorporated within the Work constitutes direct 86 | or contributory patent infringement, then any patent licenses 87 | granted to You under this License for that Work shall terminate 88 | as of the date such litigation is filed. 89 | 90 | 4. Redistribution. You may reproduce and distribute copies of the 91 | Work or Derivative Works thereof in any medium, with or without 92 | modifications, and in Source or Object form, provided that You 93 | meet the following conditions: 94 | 95 | (a) You must give any other recipients of the Work or 96 | Derivative Works a copy of this License; and 97 | 98 | (b) You must cause any modified files to carry prominent notices 99 | stating that You changed the files; and 100 | 101 | (c) You must retain, in the Source form of any Derivative Works 102 | that You distribute, all copyright, patent, trademark, and 103 | attribution notices from the Source form of the Work, 104 | excluding those notices that do not pertain to any part of 105 | the Derivative Works; and 106 | 107 | (d) If the Work includes a "NOTICE" text file as part of its 108 | distribution, then any Derivative Works that You distribute must 109 | include a readable copy of the attribution notices contained 110 | within such NOTICE file, excluding those notices that do not 111 | pertain to any part of the Derivative Works, in at least one 112 | of the following places: within a NOTICE text file distributed 113 | as part of the Derivative Works; within the Source form or 114 | documentation, if provided along with the Derivative Works; or, 115 | within a display generated by the Derivative Works, if and 116 | wherever such third-party notices normally appear. The contents 117 | of the NOTICE file are for informational purposes only and 118 | do not modify the License. You may add Your own attribution 119 | notices within Derivative Works that You distribute, alongside 120 | or as an addendum to the NOTICE text from the Work, provided 121 | that such additional attribution notices cannot be construed 122 | as modifying the License. 123 | 124 | You may add Your own copyright statement to Your modifications and 125 | may provide additional or different license terms and conditions 126 | for use, reproduction, or distribution of Your modifications, or 127 | for any such Derivative Works as a whole, provided Your use, 128 | reproduction, and distribution of the Work otherwise complies with 129 | the conditions stated in this License. 130 | 131 | 5. Submission of Contributions. Unless You explicitly state otherwise, 132 | any Contribution intentionally submitted for inclusion in the Work 133 | by You to the Licensor shall be under the terms and conditions of 134 | this License, without any additional terms or conditions. 135 | Notwithstanding the above, nothing herein shall supersede or modify 136 | the terms of any separate license agreement you may have executed 137 | with Licensor regarding such Contributions. 138 | 139 | 6. Trademarks. This License does not grant permission to use the trade 140 | names, trademarks, service marks, or product names of the Licensor, 141 | except as required for reasonable and customary use in describing the 142 | origin of the Work and reproducing the content of the NOTICE file. 143 | 144 | 7. Disclaimer of Warranty. Unless required by applicable law or 145 | agreed to in writing, Licensor provides the Work (and each 146 | Contributor provides its Contributions) on an "AS IS" BASIS, 147 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 148 | implied, including, without limitation, any warranties or conditions 149 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 150 | PARTICULAR PURPOSE. You are solely responsible for determining the 151 | appropriateness of using or redistributing the Work and assume any 152 | risks associated with Your exercise of permissions under this License. 153 | 154 | 8. Limitation of Liability. In no event and under no legal theory, 155 | whether in tort (including negligence), contract, or otherwise, 156 | unless required by applicable law (such as deliberate and grossly 157 | negligent acts) or agreed to in writing, shall any Contributor be 158 | liable to You for damages, including any direct, indirect, special, 159 | incidental, or consequential damages of any character arising as a 160 | result of this License or out of the use or inability to use the 161 | Work (including but not limited to damages for loss of goodwill, 162 | work stoppage, computer failure or malfunction, or any and all 163 | other commercial damages or losses), even if such Contributor 164 | has been advised of the possibility of such damages. 165 | 166 | 9. Accepting Warranty or Additional Liability. While redistributing 167 | the Work or Derivative Works thereof, You may choose to offer, 168 | and charge a fee for, acceptance of support, warranty, indemnity, 169 | or other liability obligations and/or rights consistent with this 170 | License. However, in accepting such obligations, You may act only 171 | on Your own behalf and on Your sole responsibility, not on behalf 172 | of any other Contributor, and only if You agree to indemnify, 173 | defend, and hold each Contributor harmless for any liability 174 | incurred by, or claims asserted against, such Contributor by reason 175 | of your accepting any such warranty or additional liability. 176 | 177 | END OF TERMS AND CONDITIONS 178 | 179 | Copyright 2013-2017 Docker, Inc. 180 | 181 | Licensed under the Apache License, Version 2.0 (the "License"); 182 | you may not use this file except in compliance with the License. 183 | You may obtain a copy of the License at 184 | 185 | https://www.apache.org/licenses/LICENSE-2.0 186 | 187 | Unless required by applicable law or agreed to in writing, software 188 | distributed under the License is distributed on an "AS IS" BASIS, 189 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 190 | See the License for the specific language governing permissions and 191 | limitations under the License. 192 | -------------------------------------------------------------------------------- /licenses/LICENSE-drud-ddev.txt: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "{}" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright {yyyy} {name of copyright owner} 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /licenses/LICENSE-drud-dev-router.txt: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "{}" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright {yyyy} {name of copyright owner} 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /licenses/LICENSE-drud-docker-phpmyadmin.txt: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | 6 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 7 | 8 | 9 | 1. Definitions. 10 | 11 | 12 | "License" shall mean the terms and conditions for use, reproduction, 13 | and distribution as defined by Sections 1 through 9 of this document. 14 | 15 | 16 | "Licensor" shall mean the copyright owner or entity authorized by 17 | the copyright owner that is granting the License. 18 | 19 | 20 | "Legal Entity" shall mean the union of the acting entity and all 21 | other entities that control, are controlled by, or are under common 22 | control with that entity. For the purposes of this definition, 23 | "control" means (i) the power, direct or indirect, to cause the 24 | direction or management of such entity, whether by contract or 25 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 26 | outstanding shares, or (iii) beneficial ownership of such entity. 27 | 28 | 29 | "You" (or "Your") shall mean an individual or Legal Entity 30 | exercising permissions granted by this License. 31 | 32 | 33 | "Source" form shall mean the preferred form for making modifications, 34 | including but not limited to software source code, documentation 35 | source, and configuration files. 36 | 37 | 38 | "Object" form shall mean any form resulting from mechanical 39 | transformation or translation of a Source form, including but 40 | not limited to compiled object code, generated documentation, 41 | and conversions to other media types. 42 | 43 | 44 | "Work" shall mean the work of authorship, whether in Source or 45 | Object form, made available under the License, as indicated by a 46 | copyright notice that is included in or attached to the work 47 | (an example is provided in the Appendix below). 48 | 49 | 50 | "Derivative Works" shall mean any work, whether in Source or Object 51 | form, that is based on (or derived from) the Work and for which the 52 | editorial revisions, annotations, elaborations, or other modifications 53 | represent, as a whole, an original work of authorship. For the purposes 54 | of this License, Derivative Works shall not include works that remain 55 | separable from, or merely link (or bind by name) to the interfaces of, 56 | the Work and Derivative Works thereof. 57 | 58 | 59 | "Contribution" shall mean any work of authorship, including 60 | the original version of the Work and any modifications or additions 61 | to that Work or Derivative Works thereof, that is intentionally 62 | submitted to Licensor for inclusion in the Work by the copyright owner 63 | or by an individual or Legal Entity authorized to submit on behalf of 64 | the copyright owner. For the purposes of this definition, "submitted" 65 | means any form of electronic, verbal, or written communication sent 66 | to the Licensor or its representatives, including but not limited to 67 | communication on electronic mailing lists, source code control systems, 68 | and issue tracking systems that are managed by, or on behalf of, the 69 | Licensor for the purpose of discussing and improving the Work, but 70 | excluding communication that is conspicuously marked or otherwise 71 | designated in writing by the copyright owner as "Not a Contribution." 72 | 73 | 74 | "Contributor" shall mean Licensor and any individual or Legal Entity 75 | on behalf of whom a Contribution has been received by Licensor and 76 | subsequently incorporated within the Work. 77 | 78 | 79 | 2. Grant of Copyright License. Subject to the terms and conditions of 80 | this License, each Contributor hereby grants to You a perpetual, 81 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 82 | copyright license to reproduce, prepare Derivative Works of, 83 | publicly display, publicly perform, sublicense, and distribute the 84 | Work and such Derivative Works in Source or Object form. 85 | 86 | 87 | 3. Grant of Patent License. Subject to the terms and conditions of 88 | this License, each Contributor hereby grants to You a perpetual, 89 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 90 | (except as stated in this section) patent license to make, have made, 91 | use, offer to sell, sell, import, and otherwise transfer the Work, 92 | where such license applies only to those patent claims licensable 93 | by such Contributor that are necessarily infringed by their 94 | Contribution(s) alone or by combination of their Contribution(s) 95 | with the Work to which such Contribution(s) was submitted. If You 96 | institute patent litigation against any entity (including a 97 | cross-claim or counterclaim in a lawsuit) alleging that the Work 98 | or a Contribution incorporated within the Work constitutes direct 99 | or contributory patent infringement, then any patent licenses 100 | granted to You under this License for that Work shall terminate 101 | as of the date such litigation is filed. 102 | 103 | 104 | 4. Redistribution. You may reproduce and distribute copies of the 105 | Work or Derivative Works thereof in any medium, with or without 106 | modifications, and in Source or Object form, provided that You 107 | meet the following conditions: 108 | 109 | 110 | (a) You must give any other recipients of the Work or 111 | Derivative Works a copy of this License; and 112 | 113 | 114 | (b) You must cause any modified files to carry prominent notices 115 | stating that You changed the files; and 116 | 117 | 118 | (c) You must retain, in the Source form of any Derivative Works 119 | that You distribute, all copyright, patent, trademark, and 120 | attribution notices from the Source form of the Work, 121 | excluding those notices that do not pertain to any part of 122 | the Derivative Works; and 123 | 124 | 125 | (d) If the Work includes a "NOTICE" text file as part of its 126 | distribution, then any Derivative Works that You distribute must 127 | include a readable copy of the attribution notices contained 128 | within such NOTICE file, excluding those notices that do not 129 | pertain to any part of the Derivative Works, in at least one 130 | of the following places: within a NOTICE text file distributed 131 | as part of the Derivative Works; within the Source form or 132 | documentation, if provided along with the Derivative Works; or, 133 | within a display generated by the Derivative Works, if and 134 | wherever such third-party notices normally appear. The contents 135 | of the NOTICE file are for informational purposes only and 136 | do not modify the License. You may add Your own attribution 137 | notices within Derivative Works that You distribute, alongside 138 | or as an addendum to the NOTICE text from the Work, provided 139 | that such additional attribution notices cannot be construed 140 | as modifying the License. 141 | 142 | 143 | You may add Your own copyright statement to Your modifications and 144 | may provide additional or different license terms and conditions 145 | for use, reproduction, or distribution of Your modifications, or 146 | for any such Derivative Works as a whole, provided Your use, 147 | reproduction, and distribution of the Work otherwise complies with 148 | the conditions stated in this License. 149 | 150 | 151 | 5. Submission of Contributions. Unless You explicitly state otherwise, 152 | any Contribution intentionally submitted for inclusion in the Work 153 | by You to the Licensor shall be under the terms and conditions of 154 | this License, without any additional terms or conditions. 155 | Notwithstanding the above, nothing herein shall supersede or modify 156 | the terms of any separate license agreement you may have executed 157 | with Licensor regarding such Contributions. 158 | 159 | 160 | 6. Trademarks. This License does not grant permission to use the trade 161 | names, trademarks, service marks, or product names of the Licensor, 162 | except as required for reasonable and customary use in describing the 163 | origin of the Work and reproducing the content of the NOTICE file. 164 | 165 | 166 | 7. Disclaimer of Warranty. Unless required by applicable law or 167 | agreed to in writing, Licensor provides the Work (and each 168 | Contributor provides its Contributions) on an "AS IS" BASIS, 169 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 170 | implied, including, without limitation, any warranties or conditions 171 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 172 | PARTICULAR PURPOSE. You are solely responsible for determining the 173 | appropriateness of using or redistributing the Work and assume any 174 | risks associated with Your exercise of permissions under this License. 175 | 176 | 177 | 8. Limitation of Liability. In no event and under no legal theory, 178 | whether in tort (including negligence), contract, or otherwise, 179 | unless required by applicable law (such as deliberate and grossly 180 | negligent acts) or agreed to in writing, shall any Contributor be 181 | liable to You for damages, including any direct, indirect, special, 182 | incidental, or consequential damages of any character arising as a 183 | result of this License or out of the use or inability to use the 184 | Work (including but not limited to damages for loss of goodwill, 185 | work stoppage, computer failure or malfunction, or any and all 186 | other commercial damages or losses), even if such Contributor 187 | has been advised of the possibility of such damages. 188 | 189 | 190 | 9. Accepting Warranty or Additional Liability. While redistributing 191 | the Work or Derivative Works thereof, You may choose to offer, 192 | and charge a fee for, acceptance of support, warranty, indemnity, 193 | or other liability obligations and/or rights consistent with this 194 | License. However, in accepting such obligations, You may act only 195 | on Your own behalf and on Your sole responsibility, not on behalf 196 | of any other Contributor, and only if You agree to indemnify, 197 | defend, and hold each Contributor harmless for any liability 198 | incurred by, or claims asserted against, such Contributor by reason 199 | of your accepting any such warranty or additional liability. 200 | 201 | 202 | END OF TERMS AND CONDITIONS 203 | 204 | 205 | APPENDIX: How to apply the Apache License to your work. 206 | 207 | 208 | To apply the Apache License to your work, attach the following 209 | boilerplate notice, with the fields enclosed by brackets "{}" 210 | replaced with your own identifying information. (Don't include 211 | the brackets!) The text should be enclosed in the appropriate 212 | comment syntax for the file format. We also recommend that a 213 | file or class name and description of purpose be included on the 214 | same "printed page" as the copyright notice for easier 215 | identification within third-party archives. 216 | 217 | 218 | Copyright {yyyy} {name of copyright owner} 219 | 220 | 221 | Licensed under the Apache License, Version 2.0 (the "License"); 222 | you may not use this file except in compliance with the License. 223 | You may obtain a copy of the License at 224 | 225 | 226 | http://www.apache.org/licenses/LICENSE-2.0 227 | 228 | 229 | Unless required by applicable law or agreed to in writing, software 230 | distributed under the License is distributed on an "AS IS" BASIS, 231 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 232 | See the License for the specific language governing permissions and 233 | limitations under the License. -------------------------------------------------------------------------------- /licenses/LICENSE-drud-mariadb-local.txt: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "{}" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright {yyyy} {name of copyright owner} 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /licenses/LICENSE-drud-nginx-php-fpm-local.txt: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | 6 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 7 | 8 | 9 | 1. Definitions. 10 | 11 | 12 | "License" shall mean the terms and conditions for use, reproduction, 13 | and distribution as defined by Sections 1 through 9 of this document. 14 | 15 | 16 | "Licensor" shall mean the copyright owner or entity authorized by 17 | the copyright owner that is granting the License. 18 | 19 | 20 | "Legal Entity" shall mean the union of the acting entity and all 21 | other entities that control, are controlled by, or are under common 22 | control with that entity. For the purposes of this definition, 23 | "control" means (i) the power, direct or indirect, to cause the 24 | direction or management of such entity, whether by contract or 25 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 26 | outstanding shares, or (iii) beneficial ownership of such entity. 27 | 28 | 29 | "You" (or "Your") shall mean an individual or Legal Entity 30 | exercising permissions granted by this License. 31 | 32 | 33 | "Source" form shall mean the preferred form for making modifications, 34 | including but not limited to software source code, documentation 35 | source, and configuration files. 36 | 37 | 38 | "Object" form shall mean any form resulting from mechanical 39 | transformation or translation of a Source form, including but 40 | not limited to compiled object code, generated documentation, 41 | and conversions to other media types. 42 | 43 | 44 | "Work" shall mean the work of authorship, whether in Source or 45 | Object form, made available under the License, as indicated by a 46 | copyright notice that is included in or attached to the work 47 | (an example is provided in the Appendix below). 48 | 49 | 50 | "Derivative Works" shall mean any work, whether in Source or Object 51 | form, that is based on (or derived from) the Work and for which the 52 | editorial revisions, annotations, elaborations, or other modifications 53 | represent, as a whole, an original work of authorship. For the purposes 54 | of this License, Derivative Works shall not include works that remain 55 | separable from, or merely link (or bind by name) to the interfaces of, 56 | the Work and Derivative Works thereof. 57 | 58 | 59 | "Contribution" shall mean any work of authorship, including 60 | the original version of the Work and any modifications or additions 61 | to that Work or Derivative Works thereof, that is intentionally 62 | submitted to Licensor for inclusion in the Work by the copyright owner 63 | or by an individual or Legal Entity authorized to submit on behalf of 64 | the copyright owner. For the purposes of this definition, "submitted" 65 | means any form of electronic, verbal, or written communication sent 66 | to the Licensor or its representatives, including but not limited to 67 | communication on electronic mailing lists, source code control systems, 68 | and issue tracking systems that are managed by, or on behalf of, the 69 | Licensor for the purpose of discussing and improving the Work, but 70 | excluding communication that is conspicuously marked or otherwise 71 | designated in writing by the copyright owner as "Not a Contribution." 72 | 73 | 74 | "Contributor" shall mean Licensor and any individual or Legal Entity 75 | on behalf of whom a Contribution has been received by Licensor and 76 | subsequently incorporated within the Work. 77 | 78 | 79 | 2. Grant of Copyright License. Subject to the terms and conditions of 80 | this License, each Contributor hereby grants to You a perpetual, 81 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 82 | copyright license to reproduce, prepare Derivative Works of, 83 | publicly display, publicly perform, sublicense, and distribute the 84 | Work and such Derivative Works in Source or Object form. 85 | 86 | 87 | 3. Grant of Patent License. Subject to the terms and conditions of 88 | this License, each Contributor hereby grants to You a perpetual, 89 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 90 | (except as stated in this section) patent license to make, have made, 91 | use, offer to sell, sell, import, and otherwise transfer the Work, 92 | where such license applies only to those patent claims licensable 93 | by such Contributor that are necessarily infringed by their 94 | Contribution(s) alone or by combination of their Contribution(s) 95 | with the Work to which such Contribution(s) was submitted. If You 96 | institute patent litigation against any entity (including a 97 | cross-claim or counterclaim in a lawsuit) alleging that the Work 98 | or a Contribution incorporated within the Work constitutes direct 99 | or contributory patent infringement, then any patent licenses 100 | granted to You under this License for that Work shall terminate 101 | as of the date such litigation is filed. 102 | 103 | 104 | 4. Redistribution. You may reproduce and distribute copies of the 105 | Work or Derivative Works thereof in any medium, with or without 106 | modifications, and in Source or Object form, provided that You 107 | meet the following conditions: 108 | 109 | 110 | (a) You must give any other recipients of the Work or 111 | Derivative Works a copy of this License; and 112 | 113 | 114 | (b) You must cause any modified files to carry prominent notices 115 | stating that You changed the files; and 116 | 117 | 118 | (c) You must retain, in the Source form of any Derivative Works 119 | that You distribute, all copyright, patent, trademark, and 120 | attribution notices from the Source form of the Work, 121 | excluding those notices that do not pertain to any part of 122 | the Derivative Works; and 123 | 124 | 125 | (d) If the Work includes a "NOTICE" text file as part of its 126 | distribution, then any Derivative Works that You distribute must 127 | include a readable copy of the attribution notices contained 128 | within such NOTICE file, excluding those notices that do not 129 | pertain to any part of the Derivative Works, in at least one 130 | of the following places: within a NOTICE text file distributed 131 | as part of the Derivative Works; within the Source form or 132 | documentation, if provided along with the Derivative Works; or, 133 | within a display generated by the Derivative Works, if and 134 | wherever such third-party notices normally appear. The contents 135 | of the NOTICE file are for informational purposes only and 136 | do not modify the License. You may add Your own attribution 137 | notices within Derivative Works that You distribute, alongside 138 | or as an addendum to the NOTICE text from the Work, provided 139 | that such additional attribution notices cannot be construed 140 | as modifying the License. 141 | 142 | 143 | You may add Your own copyright statement to Your modifications and 144 | may provide additional or different license terms and conditions 145 | for use, reproduction, or distribution of Your modifications, or 146 | for any such Derivative Works as a whole, provided Your use, 147 | reproduction, and distribution of the Work otherwise complies with 148 | the conditions stated in this License. 149 | 150 | 151 | 5. Submission of Contributions. Unless You explicitly state otherwise, 152 | any Contribution intentionally submitted for inclusion in the Work 153 | by You to the Licensor shall be under the terms and conditions of 154 | this License, without any additional terms or conditions. 155 | Notwithstanding the above, nothing herein shall supersede or modify 156 | the terms of any separate license agreement you may have executed 157 | with Licensor regarding such Contributions. 158 | 159 | 160 | 6. Trademarks. This License does not grant permission to use the trade 161 | names, trademarks, service marks, or product names of the Licensor, 162 | except as required for reasonable and customary use in describing the 163 | origin of the Work and reproducing the content of the NOTICE file. 164 | 165 | 166 | 7. Disclaimer of Warranty. Unless required by applicable law or 167 | agreed to in writing, Licensor provides the Work (and each 168 | Contributor provides its Contributions) on an "AS IS" BASIS, 169 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 170 | implied, including, without limitation, any warranties or conditions 171 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 172 | PARTICULAR PURPOSE. You are solely responsible for determining the 173 | appropriateness of using or redistributing the Work and assume any 174 | risks associated with Your exercise of permissions under this License. 175 | 176 | 177 | 8. Limitation of Liability. In no event and under no legal theory, 178 | whether in tort (including negligence), contract, or otherwise, 179 | unless required by applicable law (such as deliberate and grossly 180 | negligent acts) or agreed to in writing, shall any Contributor be 181 | liable to You for damages, including any direct, indirect, special, 182 | incidental, or consequential damages of any character arising as a 183 | result of this License or out of the use or inability to use the 184 | Work (including but not limited to damages for loss of goodwill, 185 | work stoppage, computer failure or malfunction, or any and all 186 | other commercial damages or losses), even if such Contributor 187 | has been advised of the possibility of such damages. 188 | 189 | 190 | 9. Accepting Warranty or Additional Liability. While redistributing 191 | the Work or Derivative Works thereof, You may choose to offer, 192 | and charge a fee for, acceptance of support, warranty, indemnity, 193 | or other liability obligations and/or rights consistent with this 194 | License. However, in accepting such obligations, You may act only 195 | on Your own behalf and on Your sole responsibility, not on behalf 196 | of any other Contributor, and only if You agree to indemnify, 197 | defend, and hold each Contributor harmless for any liability 198 | incurred by, or claims asserted against, such Contributor by reason 199 | of your accepting any such warranty or additional liability. 200 | 201 | 202 | END OF TERMS AND CONDITIONS 203 | 204 | 205 | APPENDIX: How to apply the Apache License to your work. 206 | 207 | 208 | To apply the Apache License to your work, attach the following 209 | boilerplate notice, with the fields enclosed by brackets "{}" 210 | replaced with your own identifying information. (Don't include 211 | the brackets!) The text should be enclosed in the appropriate 212 | comment syntax for the file format. We also recommend that a 213 | file or class name and description of purpose be included on the 214 | same "printed page" as the copyright notice for easier 215 | identification within third-party archives. 216 | 217 | 218 | Copyright {yyyy} {name of copyright owner} 219 | 220 | 221 | Licensed under the Apache License, Version 2.0 (the "License"); 222 | you may not use this file except in compliance with the License. 223 | You may obtain a copy of the License at 224 | 225 | 226 | http://www.apache.org/licenses/LICENSE-2.0 227 | 228 | 229 | Unless required by applicable law or agreed to in writing, software 230 | distributed under the License is distributed on an "AS IS" BASIS, 231 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 232 | See the License for the specific language governing permissions and 233 | limitations under the License. -------------------------------------------------------------------------------- /licenses/LICENSE-git.txt: -------------------------------------------------------------------------------- 1 | 2 | Note that the only valid version of the GPL as far as this project 3 | is concerned is _this_ particular version of the license (ie v2, not 4 | v2.2 or v3.x or whatever), unless explicitly otherwise stated. 5 | 6 | HOWEVER, in order to allow a migration to GPLv3 if that seems like 7 | a good idea, I also ask that people involved with the project make 8 | their preferences known. In particular, if you trust me to make that 9 | decision, you might note so in your copyright message, ie something 10 | like 11 | 12 | This file is licensed under the GPL v2, or a later version 13 | at the discretion of Linus. 14 | 15 | might avoid issues. But we can also just decide to synchronize and 16 | contact all copyright holders on record if/when the occasion arises. 17 | 18 | Linus Torvalds 19 | 20 | ---------------------------------------- 21 | 22 | GNU GENERAL PUBLIC LICENSE 23 | Version 2, June 1991 24 | 25 | Copyright (C) 1989, 1991 Free Software Foundation, Inc., 26 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 27 | Everyone is permitted to copy and distribute verbatim copies 28 | of this license document, but changing it is not allowed. 29 | 30 | Preamble 31 | 32 | The licenses for most software are designed to take away your 33 | freedom to share and change it. By contrast, the GNU General Public 34 | License is intended to guarantee your freedom to share and change free 35 | software--to make sure the software is free for all its users. This 36 | General Public License applies to most of the Free Software 37 | Foundation's software and to any other program whose authors commit to 38 | using it. (Some other Free Software Foundation software is covered by 39 | the GNU Lesser General Public License instead.) You can apply it to 40 | your programs, too. 41 | 42 | When we speak of free software, we are referring to freedom, not 43 | price. Our General Public Licenses are designed to make sure that you 44 | have the freedom to distribute copies of free software (and charge for 45 | this service if you wish), that you receive source code or can get it 46 | if you want it, that you can change the software or use pieces of it 47 | in new free programs; and that you know you can do these things. 48 | 49 | To protect your rights, we need to make restrictions that forbid 50 | anyone to deny you these rights or to ask you to surrender the rights. 51 | These restrictions translate to certain responsibilities for you if you 52 | distribute copies of the software, or if you modify it. 53 | 54 | For example, if you distribute copies of such a program, whether 55 | gratis or for a fee, you must give the recipients all the rights that 56 | you have. You must make sure that they, too, receive or can get the 57 | source code. And you must show them these terms so they know their 58 | rights. 59 | 60 | We protect your rights with two steps: (1) copyright the software, and 61 | (2) offer you this license which gives you legal permission to copy, 62 | distribute and/or modify the software. 63 | 64 | Also, for each author's protection and ours, we want to make certain 65 | that everyone understands that there is no warranty for this free 66 | software. If the software is modified by someone else and passed on, we 67 | want its recipients to know that what they have is not the original, so 68 | that any problems introduced by others will not reflect on the original 69 | authors' reputations. 70 | 71 | Finally, any free program is threatened constantly by software 72 | patents. We wish to avoid the danger that redistributors of a free 73 | program will individually obtain patent licenses, in effect making the 74 | program proprietary. To prevent this, we have made it clear that any 75 | patent must be licensed for everyone's free use or not licensed at all. 76 | 77 | The precise terms and conditions for copying, distribution and 78 | modification follow. 79 | 80 | GNU GENERAL PUBLIC LICENSE 81 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 82 | 83 | 0. This License applies to any program or other work which contains 84 | a notice placed by the copyright holder saying it may be distributed 85 | under the terms of this General Public License. The "Program", below, 86 | refers to any such program or work, and a "work based on the Program" 87 | means either the Program or any derivative work under copyright law: 88 | that is to say, a work containing the Program or a portion of it, 89 | either verbatim or with modifications and/or translated into another 90 | language. (Hereinafter, translation is included without limitation in 91 | the term "modification".) Each licensee is addressed as "you". 92 | 93 | Activities other than copying, distribution and modification are not 94 | covered by this License; they are outside its scope. The act of 95 | running the Program is not restricted, and the output from the Program 96 | is covered only if its contents constitute a work based on the 97 | Program (independent of having been made by running the Program). 98 | Whether that is true depends on what the Program does. 99 | 100 | 1. You may copy and distribute verbatim copies of the Program's 101 | source code as you receive it, in any medium, provided that you 102 | conspicuously and appropriately publish on each copy an appropriate 103 | copyright notice and disclaimer of warranty; keep intact all the 104 | notices that refer to this License and to the absence of any warranty; 105 | and give any other recipients of the Program a copy of this License 106 | along with the Program. 107 | 108 | You may charge a fee for the physical act of transferring a copy, and 109 | you may at your option offer warranty protection in exchange for a fee. 110 | 111 | 2. You may modify your copy or copies of the Program or any portion 112 | of it, thus forming a work based on the Program, and copy and 113 | distribute such modifications or work under the terms of Section 1 114 | above, provided that you also meet all of these conditions: 115 | 116 | a) You must cause the modified files to carry prominent notices 117 | stating that you changed the files and the date of any change. 118 | 119 | b) You must cause any work that you distribute or publish, that in 120 | whole or in part contains or is derived from the Program or any 121 | part thereof, to be licensed as a whole at no charge to all third 122 | parties under the terms of this License. 123 | 124 | c) If the modified program normally reads commands interactively 125 | when run, you must cause it, when started running for such 126 | interactive use in the most ordinary way, to print or display an 127 | announcement including an appropriate copyright notice and a 128 | notice that there is no warranty (or else, saying that you provide 129 | a warranty) and that users may redistribute the program under 130 | these conditions, and telling the user how to view a copy of this 131 | License. (Exception: if the Program itself is interactive but 132 | does not normally print such an announcement, your work based on 133 | the Program is not required to print an announcement.) 134 | 135 | These requirements apply to the modified work as a whole. If 136 | identifiable sections of that work are not derived from the Program, 137 | and can be reasonably considered independent and separate works in 138 | themselves, then this License, and its terms, do not apply to those 139 | sections when you distribute them as separate works. But when you 140 | distribute the same sections as part of a whole which is a work based 141 | on the Program, the distribution of the whole must be on the terms of 142 | this License, whose permissions for other licensees extend to the 143 | entire whole, and thus to each and every part regardless of who wrote it. 144 | 145 | Thus, it is not the intent of this section to claim rights or contest 146 | your rights to work written entirely by you; rather, the intent is to 147 | exercise the right to control the distribution of derivative or 148 | collective works based on the Program. 149 | 150 | In addition, mere aggregation of another work not based on the Program 151 | with the Program (or with a work based on the Program) on a volume of 152 | a storage or distribution medium does not bring the other work under 153 | the scope of this License. 154 | 155 | 3. You may copy and distribute the Program (or a work based on it, 156 | under Section 2) in object code or executable form under the terms of 157 | Sections 1 and 2 above provided that you also do one of the following: 158 | 159 | a) Accompany it with the complete corresponding machine-readable 160 | source code, which must be distributed under the terms of Sections 161 | 1 and 2 above on a medium customarily used for software interchange; or, 162 | 163 | b) Accompany it with a written offer, valid for at least three 164 | years, to give any third party, for a charge no more than your 165 | cost of physically performing source distribution, a complete 166 | machine-readable copy of the corresponding source code, to be 167 | distributed under the terms of Sections 1 and 2 above on a medium 168 | customarily used for software interchange; or, 169 | 170 | c) Accompany it with the information you received as to the offer 171 | to distribute corresponding source code. (This alternative is 172 | allowed only for noncommercial distribution and only if you 173 | received the program in object code or executable form with such 174 | an offer, in accord with Subsection b above.) 175 | 176 | The source code for a work means the preferred form of the work for 177 | making modifications to it. For an executable work, complete source 178 | code means all the source code for all modules it contains, plus any 179 | associated interface definition files, plus the scripts used to 180 | control compilation and installation of the executable. However, as a 181 | special exception, the source code distributed need not include 182 | anything that is normally distributed (in either source or binary 183 | form) with the major components (compiler, kernel, and so on) of the 184 | operating system on which the executable runs, unless that component 185 | itself accompanies the executable. 186 | 187 | If distribution of executable or object code is made by offering 188 | access to copy from a designated place, then offering equivalent 189 | access to copy the source code from the same place counts as 190 | distribution of the source code, even though third parties are not 191 | compelled to copy the source along with the object code. 192 | 193 | 4. You may not copy, modify, sublicense, or distribute the Program 194 | except as expressly provided under this License. Any attempt 195 | otherwise to copy, modify, sublicense or distribute the Program is 196 | void, and will automatically terminate your rights under this License. 197 | However, parties who have received copies, or rights, from you under 198 | this License will not have their licenses terminated so long as such 199 | parties remain in full compliance. 200 | 201 | 5. You are not required to accept this License, since you have not 202 | signed it. However, nothing else grants you permission to modify or 203 | distribute the Program or its derivative works. These actions are 204 | prohibited by law if you do not accept this License. Therefore, by 205 | modifying or distributing the Program (or any work based on the 206 | Program), you indicate your acceptance of this License to do so, and 207 | all its terms and conditions for copying, distributing or modifying 208 | the Program or works based on it. 209 | 210 | 6. Each time you redistribute the Program (or any work based on the 211 | Program), the recipient automatically receives a license from the 212 | original licensor to copy, distribute or modify the Program subject to 213 | these terms and conditions. You may not impose any further 214 | restrictions on the recipients' exercise of the rights granted herein. 215 | You are not responsible for enforcing compliance by third parties to 216 | this License. 217 | 218 | 7. If, as a consequence of a court judgment or allegation of patent 219 | infringement or for any other reason (not limited to patent issues), 220 | conditions are imposed on you (whether by court order, agreement or 221 | otherwise) that contradict the conditions of this License, they do not 222 | excuse you from the conditions of this License. If you cannot 223 | distribute so as to satisfy simultaneously your obligations under this 224 | License and any other pertinent obligations, then as a consequence you 225 | may not distribute the Program at all. For example, if a patent 226 | license would not permit royalty-free redistribution of the Program by 227 | all those who receive copies directly or indirectly through you, then 228 | the only way you could satisfy both it and this License would be to 229 | refrain entirely from distribution of the Program. 230 | 231 | If any portion of this section is held invalid or unenforceable under 232 | any particular circumstance, the balance of the section is intended to 233 | apply and the section as a whole is intended to apply in other 234 | circumstances. 235 | 236 | It is not the purpose of this section to induce you to infringe any 237 | patents or other property right claims or to contest validity of any 238 | such claims; this section has the sole purpose of protecting the 239 | integrity of the free software distribution system, which is 240 | implemented by public license practices. Many people have made 241 | generous contributions to the wide range of software distributed 242 | through that system in reliance on consistent application of that 243 | system; it is up to the author/donor to decide if he or she is willing 244 | to distribute software through any other system and a licensee cannot 245 | impose that choice. 246 | 247 | This section is intended to make thoroughly clear what is believed to 248 | be a consequence of the rest of this License. 249 | 250 | 8. If the distribution and/or use of the Program is restricted in 251 | certain countries either by patents or by copyrighted interfaces, the 252 | original copyright holder who places the Program under this License 253 | may add an explicit geographical distribution limitation excluding 254 | those countries, so that distribution is permitted only in or among 255 | countries not thus excluded. In such case, this License incorporates 256 | the limitation as if written in the body of this License. 257 | 258 | 9. The Free Software Foundation may publish revised and/or new versions 259 | of the General Public License from time to time. Such new versions will 260 | be similar in spirit to the present version, but may differ in detail to 261 | address new problems or concerns. 262 | 263 | Each version is given a distinguishing version number. If the Program 264 | specifies a version number of this License which applies to it and "any 265 | later version", you have the option of following the terms and conditions 266 | either of that version or of any later version published by the Free 267 | Software Foundation. If the Program does not specify a version number of 268 | this License, you may choose any version ever published by the Free Software 269 | Foundation. 270 | 271 | 10. If you wish to incorporate parts of the Program into other free 272 | programs whose distribution conditions are different, write to the author 273 | to ask for permission. For software which is copyrighted by the Free 274 | Software Foundation, write to the Free Software Foundation; we sometimes 275 | make exceptions for this. Our decision will be guided by the two goals 276 | of preserving the free status of all derivatives of our free software and 277 | of promoting the sharing and reuse of software generally. 278 | 279 | NO WARRANTY 280 | 281 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 282 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN 283 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES 284 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED 285 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 286 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS 287 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE 288 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, 289 | REPAIR OR CORRECTION. 290 | 291 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 292 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR 293 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, 294 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING 295 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED 296 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY 297 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER 298 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE 299 | POSSIBILITY OF SUCH DAMAGES. 300 | 301 | END OF TERMS AND CONDITIONS 302 | 303 | How to Apply These Terms to Your New Programs 304 | 305 | If you develop a new program, and you want it to be of the greatest 306 | possible use to the public, the best way to achieve this is to make it 307 | free software which everyone can redistribute and change under these terms. 308 | 309 | To do so, attach the following notices to the program. It is safest 310 | to attach them to the start of each source file to most effectively 311 | convey the exclusion of warranty; and each file should have at least 312 | the "copyright" line and a pointer to where the full notice is found. 313 | 314 | 315 | Copyright (C) 316 | 317 | This program is free software; you can redistribute it and/or modify 318 | it under the terms of the GNU General Public License as published by 319 | the Free Software Foundation; either version 2 of the License, or 320 | (at your option) any later version. 321 | 322 | This program is distributed in the hope that it will be useful, 323 | but WITHOUT ANY WARRANTY; without even the implied warranty of 324 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 325 | GNU General Public License for more details. 326 | 327 | You should have received a copy of the GNU General Public License along 328 | with this program; if not, write to the Free Software Foundation, Inc., 329 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 330 | 331 | Also add information on how to contact you by electronic and paper mail. 332 | 333 | If the program is interactive, make it output a short notice like this 334 | when it starts in an interactive mode: 335 | 336 | Gnomovision version 69, Copyright (C) year name of author 337 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 338 | This is free software, and you are welcome to redistribute it 339 | under certain conditions; type `show c' for details. 340 | 341 | The hypothetical commands `show w' and `show c' should show the appropriate 342 | parts of the General Public License. Of course, the commands you use may 343 | be called something other than `show w' and `show c'; they could even be 344 | mouse-clicks or menu items--whatever suits your program. 345 | 346 | You should also get your employer (if you work as a programmer) or your 347 | school, if any, to sign a "copyright disclaimer" for the program, if 348 | necessary. Here is a sample; alter the names: 349 | 350 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program 351 | `Gnomovision' (which makes passes at compilers) written by James Hacker. 352 | 353 | , 1 April 1989 354 | Ty Coon, President of Vice 355 | 356 | This General Public License does not permit incorporating your program into 357 | proprietary programs. If your program is a subroutine library, you may 358 | consider it more useful to permit linking proprietary applications with the 359 | library. If this is what you want to do, use the GNU Lesser General 360 | Public License instead of this License. 361 | -------------------------------------------------------------------------------- /licenses/LICENSE-mailhog-mailhog.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 - 2016 Ian Kent 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /package_drupal_script.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -o errexit 4 | set -o pipefail 5 | set -o nounset 6 | 7 | # Base checkout should be latest major-minor version branch 8 | SPRINT_BRANCH=9.3.x 9 | 10 | # This makes git-bash actually try to create symlinks. 11 | # Use developer mode in Windows 10 so this doesn't require admin privs. 12 | export MSYS=winsymlinks:nativestrict 13 | 14 | # Maximise compression 15 | export XZ_OPT=-9e 16 | 17 | # This script creates a package of artifacts that can then be used at a contribution event working on Drupal 8. 18 | # It assumes it's being run in the repository root. 19 | 20 | STAGING_DIR_NAME=drupal_sprint_package 21 | STAGING_DIR_BASE=~/tmp 22 | STAGING_DIR="$STAGING_DIR_BASE/$STAGING_DIR_NAME" 23 | REPO_DIR=$PWD 24 | QUICKSPRINT_RELEASE=$(git describe --tags --always --dirty) 25 | 26 | echo "$QUICKSPRINT_RELEASE" >.quicksprint_release.txt 27 | 28 | GIT_TAG_NAME=$(curl -L -s -H 'Accept: application/json' https://github.com/git-for-windows/git/releases/latest | jq -r .tag_name) 29 | GIT_LATEST_RELEASE="$(echo $GIT_TAG_NAME | sed 's/^v//; s/\.windows//')" 30 | GIT_DOWNLOAD_URL="https://github.com/git-for-windows/git/releases/download/${GIT_TAG_NAME}/Git-${GIT_LATEST_RELEASE}-64-bit.exe" 31 | DOWNLOAD_URLS="${GIT_DOWNLOAD_URL}" 32 | 33 | RED='\033[31m' 34 | GREEN='\033[32m' 35 | YELLOW='\033[33m' 36 | RESET='\033[0m' 37 | OS=$(uname) 38 | USER=$(whoami) 39 | 40 | # Ensure zcat is installed 41 | command -v zcat >/dev/null 2>&1 || { printf >&2 "${RED}zcat command is required but it's not installed. ('brew install xz' on macOS, 'apt-get install xz-utils' on Debian/Ubuntu) Aborting.${RESET}\n"; exit 1; } 42 | # Check Docker is running 43 | if docker run --rm -t busybox:latest ls >/dev/null 44 | then 45 | echo "docker is running, continuing." 46 | else 47 | echo "docker is not running and is required for this script, exiting." 48 | exit 1 49 | fi 50 | 51 | SHACMD="sha256sum" 52 | LATEST_RELEASE=$(curl -L -s -H 'Accept: application/json' https://github.com/drud/ddev/releases/latest) 53 | # The releases are returned in the format {"id":3622206,"tag_name":"hello-1.0.0.11",...}, we have to extract the tag_name. 54 | LATEST_VERSION="$(echo ${LATEST_RELEASE} | jq -r .tag_name)" 55 | RELEASE_URL="https://github.com/drud/ddev/releases/download/$LATEST_VERSION" 56 | 57 | echo "$LATEST_VERSION" >.ddev_version.txt 58 | 59 | # Remove anything in the ddev_tarballs directory that don't match current version. 60 | ddev_tarballs="${STAGING_DIR}/ddev_tarballs" 61 | mkdir -p ${ddev_tarballs} 62 | 63 | # Remove anything in staging directory except ddev_tarballs. 64 | # Chmod as on Windows read-only stuff is often unremoveable 65 | chmod -R u+w ${STAGING_DIR}/{*.md,install.sh,sprint,start_sprint.sh} 2>/dev/null || true 66 | rm -rf ${STAGING_DIR}/{*.md,install.sh,sprint,start_sprint.sh} 67 | # Remove anything in ddev_tarballs that is not the latest version 68 | if [ -d "${ddev_tarballs}" ]; then 69 | find "${ddev_tarballs}" -type f -not -name "*${LATEST_VERSION}*" -exec rm '{}' \; 70 | fi 71 | 72 | # Install the beginning items we need in the kit. 73 | cp -r .ddev_version.txt .quicksprint_release.txt sprint start_sprint.* *.md install.sh ${STAGING_DIR} 74 | 75 | 76 | # macOS/Darwin has a oneoff/weird shasum command. 77 | if [ "$OS" = "Darwin" ]; then 78 | SHACMD="shasum -a 256" 79 | fi 80 | 81 | if ! docker --version >/dev/null 2>&1; then 82 | printf "${YELLOW}Docker is required to create package. Please install docker before attempting to use ddev.${RESET}\n" 83 | fi 84 | 85 | cd ${STAGING_DIR} 86 | 87 | printf " 88 | ${GREEN} 89 | #### 90 | # Package docker and other installers (Git For Windows, etc)? 91 | #### \n${RESET}" 92 | 93 | while true; do 94 | read -p "Create installer tarball? (y/n): " INSTALL 95 | case ${INSTALL} in 96 | [Yy]* ) printf "${GREEN}# Downloading installers. \n#### \n${RESET}"; 97 | mkdir -p installs 98 | pushd installs >/dev/null 99 | for download_url in ${DOWNLOAD_URLS}; do 100 | echo "Downloading ${download_url##*/} from ${download_url}..." 101 | curl -sSL -O ${download_url} 102 | done 103 | for arch in amd64 arm64; do 104 | echo "Downloading Docker desktop (macOS ${arch})..." 105 | curl -sSL -o docker_desktop_${arch}.dmg https://desktop.docker.com/mac/main/${arch}/Docker.dmg 106 | done 107 | echo "Downloading Docker desktop (Windows)..." 108 | curl -sSL -O https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe 109 | popd >/dev/null 110 | break;; 111 | 112 | [Nn]* ) printf "${GREEN}# Continuing script without downloading installers. \n### \n${RESET}"; 113 | break;; 114 | 115 | * ) echo "Please answer y or n.";; 116 | 117 | esac 118 | done 119 | 120 | pushd ${ddev_tarballs} >/dev/null 121 | # Download the ddev tarballs if necessary; check to make sure they all have correct sha256. 122 | for tarball in ddev_macos-amd64.$LATEST_VERSION.tar.gz ddev_macos-arm64.$LATEST_VERSION.tar.gz ddev_linux-amd64.$LATEST_VERSION.tar.gz ddev_linux-arm64.$LATEST_VERSION.tar.gz ddev_windows-amd64.$LATEST_VERSION.tar.gz ddev_windows_installer.$LATEST_VERSION.exe ddev_docker_images.arm64.$LATEST_VERSION.tar.xz ddev_docker_images.amd64.$LATEST_VERSION.tar.xz; do 123 | shafile="${tarball}.sha256.txt" 124 | 125 | if ! [ -f "${tarball}" -a -f "${shafile}" ] ; then 126 | echo "Downloading ${tarball} ..." 127 | curl --fail -sSL "$RELEASE_URL/${tarball}" -o "${tarball}" 128 | curl --fail -sSL "$RELEASE_URL/$shafile" -o "${shafile}" 129 | fi 130 | ${SHACMD} -c "${shafile}" 131 | done 132 | popd >/dev/null 133 | 134 | # clone or refresh drupal clone 135 | mkdir -p sprint 136 | git clone --config core.autocrlf=false --config core.eol=lf --config core.filemode=false --quiet https://git.drupalcode.org/project/drupal.git ${STAGING_DIR}/sprint/drupal -b ${SPRINT_BRANCH} 137 | pushd ${STAGING_DIR}/sprint/drupal >/dev/null 138 | cp ${REPO_DIR}/example.gitignore ${STAGING_DIR}/sprint/drupal/.gitignore 139 | 140 | set -x 141 | composer install --quiet 142 | set +x 143 | 144 | popd >/dev/null 145 | 146 | # Copy licenses and COPYING notice. 147 | cp -r ${REPO_DIR}/licenses ${REPO_DIR}/COPYING "$STAGING_DIR/" 148 | cp ${REPO_DIR}/.quicksprint_release.txt $REPO_DIR/.ddev_version.txt "$STAGING_DIR/sprint" 149 | 150 | cd ${STAGING_DIR} 151 | 152 | echo "Creating sprint.tar.xz..." 153 | # Create tar.xz archive using xz command, so we can work on all platforms 154 | # Use --dereference to NOT use symlinks and not break windows tar. 155 | pushd sprint >/dev/null && tar -cJf ../sprint.tar.xz --dereference . && popd >/dev/null 156 | if [ -f ${STAGING_DIR}/sprint} ] ; then chmod -R u+w ${STAGING_DIR}/sprint; fi 157 | rm -rf ${STAGING_DIR}/sprint 158 | 159 | cd ${STAGING_DIR_BASE} 160 | if [ "$INSTALL" != "n" ] ; then 161 | echo "Creating install tarball..." 162 | tar -cf - ${STAGING_DIR_NAME}/installs | gzip -9 >quicksprint_thirdparty_installs.${QUICKSPRINT_RELEASE}.tar.gz 163 | zip -9 -r -q quicksprint_thirdparty_installs.${QUICKSPRINT_RELEASE}.zip ${STAGING_DIR_NAME}/installs 164 | fi 165 | if [ -f ${STAGING_DIR_NAME}/installs ]; then chmod -R u+w ${STAGING_DIR_NAME}/installs; fi 166 | rm -rf ${STAGING_DIR_NAME}/installs 167 | echo "Creating sprint package..." 168 | tar -cf - ${STAGING_DIR_NAME} | gzip -9 > drupal_sprint_package.${QUICKSPRINT_RELEASE}.tar.gz 169 | zip -9 -r -q drupal_sprint_package.${QUICKSPRINT_RELEASE}.zip ${STAGING_DIR_NAME} 170 | 171 | packages=$(ls ${STAGING_DIR_BASE}/drupal_sprint_package*${QUICKSPRINT_RELEASE}*) 172 | printf "${GREEN}#### 173 | # The built sprint tarballs and optional install tarballs are now in ${YELLOW}$STAGING_DIR_BASE${GREEN}: 174 | # ${packages:-} 175 | # 176 | # Package is built, staging directory remains in ${STAGING_DIR}. 177 | ####${RESET}\n" 178 | -------------------------------------------------------------------------------- /sprint/Readme.txt: -------------------------------------------------------------------------------- 1 | To access 2 | Website: http://sprint-[ts].ddev.site:8080/ 3 | https://sprint-[ts].ddev.site:8443/ 4 | (User:admin Pass:admin) 5 | 6 | Mailhog: http://sprint-[ts].ddev.site:8025/ 7 | phpMyAdmin: http://sprint-[ts].ddev.site:8036/ 8 | Chat: https://drupal.org/chat to join Drupal Slack or drupalchat.eu! 9 | 10 | 11 | Common ddev commands to know: 12 | 13 | ddev start (-h) [start project] 14 | ddev stop (-h) [stop project, nothing lost] 15 | ddev poweroff [stop all projects and resources, nothing lost] 16 | ddev import-db --src=[path to db] (-h) [import database] 17 | ddev help 18 | 19 | For full ddev documentation see https://ddev.readthedocs.io/ 20 | And support on Stack Overflow: https://stackoverflow.com/tags/ddev 21 | 22 | If you need to switch Drupal branches, for example to 9.0.x, you can 23 | use the utility switch_branch.sh. Although the script stashes changes to 24 | avoid losing your changes, you're best to save them away yourself first. 25 | switch_branch.sh also drops your existing database, so after running it 26 | you'll need to do a manual web-based install. 27 | 28 | Example: 29 | ./switch_branch.sh 9.2.x 30 | -------------------------------------------------------------------------------- /sprint/switch_branch.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # This script allows switching drupal branch, for example, from 9.0.x to 8.9.x 4 | # or back 5 | 6 | set -o errexit -o pipefail -o nounset 7 | 8 | if [[ $# != 1 ]]; then 9 | echo "Please provide a branch to switch to. For example './switch_branch.sh 9.2.x'" 10 | exit 1 11 | fi 12 | 13 | 14 | target_branch=$1 15 | 16 | pushd drupal 17 | STASHNAME=switch-branch-${RANDOM} 18 | set -x 19 | ddev start 20 | ddev exec "git fetch && git stash save ${STASHNAME} && git checkout origin/${target_branch}" 21 | # Silly coder always breaks composer install if there's contents in it, because 22 | # the package uses git instead of a zipball. Temporarily change composer.json to 23 | # ignore, gets turned back by checkout of composer.json below. 24 | ddev composer config discard-changes true 25 | ddev composer install --no-interaction 26 | ddev exec "( git checkout composer.json && (git stash show ${STASHNAME} 2>/dev/null && git stash apply ${STASHNAME} || true) )" 27 | ddev exec drush8 si --yes standard --account-pass=admin --db-url=mysql://db:db@db/db --site-name='Drupal Contribution Time!' 28 | set +x 29 | popd >/dev/null 30 | echo "Switched to ${target_branch}" 31 | ddev list 32 | -------------------------------------------------------------------------------- /start_sprint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # This script creates a new drupal instance in the current directory. 4 | 5 | set -o errexit 6 | set -o pipefail 7 | set -o nounset 8 | 9 | SPRINT_BRANCH=9.3.x 10 | 11 | RED='\033[31m' 12 | GREEN='\033[32m' 13 | YELLOW='\033[33m' 14 | RESET='\033[0m' 15 | OS=$(uname) 16 | TIMESTAMP=$(date +"%Y%m%d-%H%M") 17 | SPRINTNAME="sprint-${TIMESTAMP}" 18 | echo ${SPRINTNAME} > .test_sprint_name.txt 19 | 20 | # Extract a new ddev D9 core instance to $CWD/sprint-$TIMESTAMP 21 | mkdir -p ${SPRINTNAME} 22 | echo "Untarring sprint.tar.xz" >&2 23 | tar -xpf sprint.tar.xz -C ${SPRINTNAME} 24 | 25 | # Check Docker is running 26 | if docker run --rm -t busybox:latest ls >/dev/null 27 | then 28 | printf "docker is running, continuing." 29 | else 30 | printf "${RED}Docker is not running and is required for this script, exiting.\n${RESET}" 31 | exit 1 32 | fi 33 | 34 | cd "${SPRINTNAME}/drupal" 35 | echo "Using ddev version $(ddev version| awk '/^cli/ { print $2}') from $(which ddev)" 36 | 37 | ddev config --docroot . --project-type drupal9 --php-version=7.4 --composer-version=2 --mariadb-version=10.3 --http-port=8080 --https-port=8443 --project-name="sprint-${TIMESTAMP}" 38 | 39 | ddev config global --instrumentation-opt-in=false >/dev/null 40 | printf "${YELLOW}Configuring your fresh Drupal instance. This takes a few minutes.${RESET}\n" 41 | printf "${YELLOW}Running ddev start...YOU MAY BE ASKED for your sudo password to add a hostname to /etc/hosts${RESET}\n" 42 | ddev start || (printf "${RED}ddev start failed.${RESET}" && exit 101) 43 | printf "${YELLOW}Running git fetch && git checkout origin/${SPRINT_BRANCH}.${RESET}...\n" 44 | ddev exec "(git fetch && git checkout 'origin/${SPRINT_BRANCH}') || (echo 'ddev exec...git checkout failed' && exit 102)" 45 | printf "${YELLOW}Running 'ddev composer install'${RESET}...\n" 46 | ddev composer install 47 | ddev exec "git checkout /var/www/html/composer.*" 48 | 49 | printf "${YELLOW}Running 'drush8 si' to install drupal.${RESET}...\n" 50 | ddev exec "drush8 si --yes standard --account-pass=admin --db-url=mysql://db:db@db/db --site-name='Drupal Contribution Time'" 51 | printf "${RESET}" 52 | ddev describe 53 | 54 | printf " 55 | ${GREEN} 56 | #### 57 | # Use the following URL's to access your site: 58 | # 59 | # Website: ${YELLOW}http://sprint-${TIMESTAMP}.ddev.site:8080/${GREEN} 60 | # ${YELLOW}https://sprint-${TIMESTAMP}.ddev.site:8443/${GREEN} 61 | # ${YELLOW}(U:admin P:admin)${GREEN} 62 | # 63 | # ${GREEN}Mailhog: ${YELLOW}http://sprint-${TIMESTAMP}.ddev.site:8025/${GREEN} 64 | # 65 | # phpMyAdmin: ${YELLOW}http://sprint-${TIMESTAMP}.ddev.site:8036/${GREEN} 66 | # 67 | # Chat: ${YELLOW}https://drupal.org/chat to join Drupal Slack or https://drupalchat.me${GREEN} 68 | # 69 | # See ${YELLOW}Readme.txt${GREEN} for more information. 70 | #### 71 | ${RESET} 72 | " 73 | -------------------------------------------------------------------------------- /tests/installation.bats: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bats 2 | 3 | # Run these tests from the repo root directory, for example 4 | # bats tests 5 | 6 | function setup { 7 | echo "# setup beginning" >&3 8 | export SPRINT_BRANCH=9.3.x 9 | 10 | ddev poweroff 11 | 12 | export SPRINTDIR=~/sprint 13 | # DRUD_NONINTERACTIVE causes ddev not to try to use sudo and add the hostname 14 | export DRUD_NONINTERACTIVE=true 15 | # Provide DHOST to figure out the docker host addr for curl 16 | DHOST=127.0.0.1 17 | # Extract the IP address we need from DOCKER_HOST, which is formatted like tcp://192.168.99.100:2376 18 | if [ ! -z "${DOCKER_HOST:-}" ]; then DHOST="$(echo ${DOCKER_HOST} | perl -p -e 's/(tcp:\/\/|:[0-9]+$)//g')"; fi 19 | cd ${SPRINTDIR} && ./start_sprint.sh 20 | export SPRINT_NAME=$(cat "${SPRINTDIR}/.test_sprint_name.txt") 21 | echo "# setup complete" >&3 22 | } 23 | 24 | function teardown { 25 | echo "# teardown beginning" >&3 26 | export SPRINT_NAME=$(cat "${SPRINTDIR}/.test_sprint_name.txt") 27 | 28 | ddev delete -O -y ${SPRINT_NAME} 29 | if [ ! -z "${SPRINTDIR}" -a ! -z "${SPRINT_NAME}" -a -d ${SPRINTDIR}/${SPRINT_NAME} ] ; then 30 | chmod -R u+w ${SPRINTDIR}/${SPRINT_NAME} 31 | rm -rf ${SPRINTDIR}/${SPRINT_NAME} 32 | fi 33 | echo "# teardown complete" >&3 34 | } 35 | 36 | @test "check git configuration" { 37 | export SPRINT_NAME=$(cat "${SPRINTDIR}/.test_sprint_name.txt") 38 | cd ${SPRINTDIR}/${SPRINT_NAME}/drupal 39 | [ "$(git config core.eol)" = "lf" ] 40 | [ "$(git config core.autocrlf)" = "false" ] 41 | git log -n 1 --pretty=%d HEAD | grep "origin/${SPRINT_BRANCH}" 42 | } 43 | 44 | @test "check ddev project status and router status, check http status" { 45 | export SPRINT_NAME=$(cat "${SPRINTDIR}/.test_sprint_name.txt") 46 | cd ${SPRINTDIR}/${SPRINT_NAME}/drupal 47 | DESCRIBE=$(ddev describe -j) 48 | 49 | ROUTER_STATUS=$(echo "${DESCRIBE}" | jq -r ".raw.router_status" ) 50 | echo "# Test router status (${ROUTER_STATUS})" >&3 51 | if [ "$ROUTER_STATUS" != "healthy" ] ; then 52 | echo "# Router status not healthy (${ROUTER_STATUS})" >&3 53 | echo "# Full DESCRIBE=${DESCRIBE}" >&3 54 | ddev list >&3; 55 | return 101 56 | fi 57 | 58 | echo "# Testing project status" >&3 59 | STATUS=$(echo ${DESCRIBE} | jq -r ".raw.status") 60 | [ "$STATUS" = "running" ] 61 | 62 | echo "# Testing curl reachability for ${NAME}.ddev.site" >&3 63 | NAME=$(echo ${DESCRIBE} | jq -r ".raw.name") 64 | HTTP_PORT=$(echo ${DESCRIBE} | jq -r ".raw.router_http_port") 65 | URL="http://${DHOST}:${HTTP_PORT}" 66 | curl -I -H "Host: ${NAME}.ddev.site" http://127.0.0.1:8080 | tee /tmp/quicksprint_test_base_curl.out | grep 'HTTP/1.1 200' 67 | 68 | echo "# Testing switch_branch.sh" 69 | cd ${SPRINTDIR}/${SPRINT_NAME} 70 | ./switch_branch.sh "9.2.x" 71 | echo "# Testing curl reachability for switch_branch ${NAME}.ddev.site" >&3 72 | curl -I -H "Host: ${NAME}.ddev.site" http://127.0.0.1:8080 | tee /tmp/quicksprint_test_switch_branch_curl.out | grep 'HTTP/1.1 200' 73 | 74 | } 75 | 76 | @test "verify correct architecture for macOS ddev binary" { 77 | if [ "$(uname -s)" != "Darwin" ]; then skip "Skipping because not on macOS"; fi 78 | 79 | arch=$(arch) 80 | case ${arch} in 81 | arm64) 82 | file $(which ddev) | grep arm64 83 | ;; 84 | i386) 85 | file $(which ddev) | grep x86_64 86 | ;; 87 | default) 88 | false 89 | esac 90 | } 91 | 92 | @test "verify correct architecture for macOS pulled images" { 93 | if [ "$(uname -s)" != "Darwin" ]; then skip "Skipping because not on macOS"; fi 94 | 95 | webimage="$(ddev version | awk '/ddev-webserver/ { print $2}')" 96 | image_arch="$(docker image inspect --format "{{json .Architecture }}" ${webimage})" 97 | arch=$(arch) 98 | case ${arch} in 99 | arm64) 100 | [ ${image_arch} = '"arm64"' ] 101 | ;; 102 | i386) 103 | [ ${image_arch} = '"amd64"' ] 104 | ;; 105 | default) 106 | false 107 | ;; 108 | esac 109 | } -------------------------------------------------------------------------------- /tests/sanetestbot.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Check a testbot or test environment to make sure it's likely to be sane. 4 | # We should add to this script whenever a testbot fails and we can figure out why. 5 | 6 | MIN_DDEV_VERSION=v1.11.0 7 | 8 | set -o errexit 9 | set -o pipefail 10 | set -o nounset 11 | 12 | # thanks to https://stackoverflow.com/a/24067243/215713 13 | function version_gt() { test "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1"; } 14 | 15 | DISK_AVAIL=$(df -k . | awk '/[0-9]%/ { gsub(/%/, ""); print $5}') 16 | if [ ${DISK_AVAIL} -ge 95 ] ; then 17 | echo "Disk usage is ${DISK_AVAIL}% on $(hostname), not usable"; 18 | exit 1; 19 | else 20 | echo "Disk usage is ${DISK_AVAIL}% on $(hostname)."; 21 | fi 22 | 23 | # Test to make sure docker is installed and working. 24 | # If it doesn't become ready then we just keep this testbot occupied :) 25 | docker ps >/dev/null 26 | while ! docker ps >/dev/null 2>&1 ; do 27 | echo "Waiting for docker to be ready $(date)" 28 | sleep 60 29 | done 30 | 31 | # Test that docker can allocate 80 and 443, get get busybox 32 | docker pull busybox:latest >/dev/null 33 | # Try the docker run command twice because of the really annoying mkdir /c: file exists bug 34 | # Apparently https://github.com/docker/for-win/issues/1560 35 | (sleep 1 && (docker run --rm -t -p 80:80 -p 443:443 -p 1081:1081 -p 1082:1082 -v /$HOME:/tmp/junker99 busybox:latest ls //tmp/junker99 >/dev/null) || (sleep 1 && docker run --rm -t -p 80:80 -p 443:443 -p 1081:1081 -p 1082:1082 -v /$HOME:/tmp/junker99 busybox:latest ls //tmp/junker99 >/dev/null )) 36 | 37 | # Check that required commands are available. 38 | for command in curl jq zcat perl zip bats composer php; do 39 | command -v $command >/dev/null || ( echo "Did not find command installed '$command'" && exit 2 ) 40 | done 41 | 42 | if [ "$(go env GOOS)" = "windows" -a "$(git config core.autocrlf)" != "false" ] ; then 43 | echo "git config core.autocrlf is not set to false on windows" 44 | exit 3 45 | fi 46 | 47 | CURRENT_DDEV_VERSION=$(ddev --version | awk '{ print $3 }') 48 | if version_gt ${MIN_DDEV_VERSION} ${CURRENT_DDEV_VERSION} ; then 49 | echo "ddev version in $(command -v ddev) is inadequate: $(ddev --version)" 50 | exit 4 51 | fi 52 | 53 | echo "=== testbot $HOSTNAME seems to be set up OK ===" 54 | -------------------------------------------------------------------------------- /tests/test_drupal_quicksprint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -o errexit 4 | set -o pipefail 5 | set -o nounset 6 | 7 | # This test script should be run from the repo root 8 | UNTAR_LOCATION=/tmp 9 | UNTARRED_PACKAGE=$UNTAR_LOCATION/drupal_sprint_package 10 | export SPRINTDIR=~/sprint 11 | export QUICKSPRINT_RELEASE=$(cat .quicksprint_release.txt) 12 | 13 | # For testing, use a custom version of ddev, ignore one that might otherwise be in path. 14 | export DDEV_INSTALL_DIR=~/tmp/quicksprint_ddev_tmp 15 | mkdir -p "$DDEV_INSTALL_DIR" 16 | export PATH="$DDEV_INSTALL_DIR:$PATH" 17 | 18 | # Add /usr/local/bin to path for git-bash, where it may not exist. 19 | export PATH="$PATH:/usr/local/bin" 20 | 21 | tests/sanetestbot.sh || ( echo "sanetestbot.sh failed, test machine is not ready for duty" && exit 1 ) 22 | 23 | function cleanup { 24 | ddev poweroff 25 | rm -rf /tmp/drupal_sprint_package "$DDEV_INSTALL_DIR" 26 | if [ ! -z "${SOURCE_TARBALL_LOCATION:-}" ] ; then rm -f ${SOURCE_TARBALL_LOCATION:-nopedontrm}; fi 27 | } 28 | trap cleanup EXIT 29 | 30 | 31 | # Clean up any previous existing stuff 32 | (mkdir -p "${SPRINTDIR}" && chmod -R ugo+w "${SPRINTDIR}" && rm -rf ${SPRINTDIR}/sprint-2* ) || true 33 | rm -rf "$UNTARRED_PACKAGE" 34 | 35 | echo n | ./package_drupal_script.sh || ( echo "package_drupal_script.sh failed" && exit 2 ) 36 | # SOURCE_TARBALL_LOCATION isn't valid until package_drupal_script has run. 37 | SOURCE_TARBALL_LOCATION=~/tmp/drupal_sprint_package.${QUICKSPRINT_RELEASE}.tar.gz 38 | 39 | # Untar source tarball 40 | tar -C "$UNTAR_LOCATION" -zxf ${SOURCE_TARBALL_LOCATION:-} 41 | 42 | if [ ! -f "$UNTARRED_PACKAGE/README.md" -o ! -f "$UNTARRED_PACKAGE/COPYING" -o ! -d "$UNTARRED_PACKAGE/licenses" ]; then 43 | echo "Packaged documents are missing from package (in $UNTARRED_PACKAGE)" 44 | exit 3 45 | fi 46 | 47 | # Run install.sh 48 | (cd "$UNTARRED_PACKAGE" && printf 'y\ny\n' | ./install.sh) || ( echo "Failed to install.sh" && exit 4 ) 49 | 50 | # /usr/local/bin is added for git-bash, where it may not be in the $PATH. 51 | export PATH="/usr/local/bin:$PATH" 52 | bats tests || ( echo "bats tests failed" && exit 5 ) 53 | 54 | echo "Test successful" 55 | --------------------------------------------------------------------------------