diff options
-rw-r--r-- | .SRCINFO | 28 | ||||
-rw-r--r-- | PKGBUILD | 101 | ||||
-rw-r--r-- | depot_tools.install | 19 | ||||
-rwxr-xr-x | depot_tools.sh | 1 | ||||
-rwxr-xr-x | repo_fix.sh | 32 |
5 files changed, 181 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..41f6d706fed5 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,28 @@ +pkgbase = depot-tools-git + pkgdesc = Build tools for working with Chromium development, include gclient + pkgver = r2379.05fb911 + pkgrel = 1 + url = http://dev.chromium.org/developers/how-tos/install-depot-tools + install = depot_tools.install + arch = any + license = Custom + makedepends = git + makedepends = scons + makedepends = setconf + depends = python2 + depends = python2-colorama + depends = python2-pylint + provides = depot_tools + provides = gclient + conflicts = gclient-svn + conflicts = depot_tools-svn + options = !strip + source = depot-tools-git::git+https://chromium.googlesource.com/chromium/tools/depot_tools.git + source = depot_tools.sh + source = repo_fix.sh + md5sums = SKIP + md5sums = 39d5d3e78fa7456a1d8dd5ac10a1c8bb + md5sums = fb0c546a078c312aa64c1f2a31599557 + +pkgname = depot-tools-git + diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..8c4caef44249 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,101 @@ +# Maintainer: Adrian Perez <aperez@igalia.com> +# Contributor: rway <rway07@gmail.com> +# Contributor: wabi <aschrafl@jetnet.ch> +# Contributor: Alexander Rødseth <rodseth@gmail.com> +# Contributor: Andreas Schrafl <aschrafl@gmail.com> +# Contributor: piojo <aur@zwell.net> +# Contributor: hack.augusto <hack.augusto@gmail.com> + +pkgname=depot-tools-git +pkgver=r2379.05fb911 +pkgrel=1 +pkgdesc='Build tools for working with Chromium development, include gclient' +arch=('any') +url='http://dev.chromium.org/developers/how-tos/install-depot-tools' +source=("${pkgname}::git+https://chromium.googlesource.com/chromium/tools/depot_tools.git" + 'depot_tools.sh' 'repo_fix.sh') +license=('Custom') +depends=('python2' 'python2-colorama' 'python2-pylint') +makedepends=('git' 'scons' 'setconf') +provides=('depot_tools' 'gclient') +conflicts=('gclient-svn' 'depot_tools-svn') +options=('!strip') +md5sums=('SKIP' + '39d5d3e78fa7456a1d8dd5ac10a1c8bb' + 'fb0c546a078c312aa64c1f2a31599557') +install="depot_tools.install" + +pkgver () { + cd "${pkgname}" + printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +prepare () { + cd "${pkgname}" + + # This tools work with python2, but ArchLinux default is python3. Fix it. + # pylint is in extra, ninja is an executable and it does not need any change. + # gclient.py require a fix for work correctly with python2-colorama + # Another way is make default python2, but I don't think is a good idea! + # Fixing python scripts. + msg "Patching script for python2 usage..." + for script in *.py + do + sed -i -r -e 's/#!(.*)python.*/#!\1python2/' "${script}" + done + + # Fixing gclient.py + sed -i -r -e 's/#!(.*)python.*/#!\1python2/' \ + -e 's/from third_party import colorama/import colorama/' \ + -e 's/from third_party.colorama import Fore/from colorama import Fore/' \ + gclient.py + + # Fixing repo + sed -r -i -e 's/"exec" python/"exec" python2/' repo + + # Fixing scripts in root folder + for script in {apply_issue,drover,gcl,git-cl,git-gs,git-try,hammer,weekly,wtf,update_depot_tools} + do + sed -r -i -e 's/exec python/exec python2/' \ + -e 's/#!(.*)python.*/#!\1python2/' \ + "${script}" + done + + # Fixing scripts in other folders + # Is it safe remove those folders?? I don't now, further tests required. For now fix it and include all tools. + sed -r -i -e 's/python/python2/' git-cl-upload-hook + + for script in {git_utils/git-tree-prune,support/chromite_wrapper,tests/sample_pre_commit_hook,third_party/pylint/epylint.py} + do + sed -r -i -e 's/env python/env python2/' "${script}" + done + + for folder in {testing_support,tests,third_party} + do + cd "${folder}" + for script in *.py + do + sed -r -i -e 's/env python/env python2/' "${script}" + done + cd .. + done +} + +package() +{ + # Creating directories + install -d "${pkgdir}/opt" + + cp -r "${srcdir}/${pkgname}" "${pkgdir}/opt/" + + # Export PATH + install -Dm755 "${srcdir}/depot_tools.sh" "${pkgdir}/etc/profile.d/depot_tools.sh" + + # Install repo_fix.sh script + install -Dm 755 "${srcdir}/repo_fix.sh" "${pkgdir}/opt/${pkgname}" + + # Install License + install -Dm644 "${pkgdir}/opt/${pkgname}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" + + rm -rf "${pkgdir}/opt/${pkgname}/.git" +} diff --git a/depot_tools.install b/depot_tools.install new file mode 100644 index 000000000000..7f8d306c794e --- /dev/null +++ b/depot_tools.install @@ -0,0 +1,19 @@ +#!/bin/bash + +post_install() +{ + source /etc/profile + + echo ">>>> Please note that this tools and some related projects (for example ChromeOS) use python2." + echo ">>>> They assume that python2 is the default python interpreter. ArchLinux default is python3, so be prepared to fix python references in your works." + echo ">>>> This package contains a repo_fix.sh script. Use it to fix python2 references in python's script created after 'repo init' command" + echo ">>>> For getting started with depot_tools, visit this page: http://dev.chromium.org/developers/how-tos/depottools" + echo ">>>> Run 'source /etc/profile' if you don't find any depot_tools related commands." +} + +post_upgrade() +{ + source /etc/profile + + echo ">>>> Run 'source /etc/profile' if you don't find any depot_tools related commands." +} diff --git a/depot_tools.sh b/depot_tools.sh new file mode 100755 index 000000000000..9fcd6abb09a8 --- /dev/null +++ b/depot_tools.sh @@ -0,0 +1 @@ +export PATH="${PATH}:/opt/depot-tools-git" diff --git a/repo_fix.sh b/repo_fix.sh new file mode 100755 index 000000000000..a6d720ee794f --- /dev/null +++ b/repo_fix.sh @@ -0,0 +1,32 @@ +#!/bin/bash +# usage: repo_fix.sh directory +# Fix python2 references in .repo/repo folder created after 'repo init' command +# Needed for work in ArchLinux! Or fix it by yourself! + +# Check for a valid parameter +if [ -z $1 ]; then + echo "Usage: repo_fix.sh repo_dir" +else + # Check for a valid directory + if [ -d $1 ]; then + # Check for a valid repo repository + if [ -d $1/.repo ]; then + echo "repo repository found (maybe). Proced with patching." + cd $1/.repo/repo + # Patching all python scripts. + # In my test with Android and ChromeOS repository, only main.py requires a patch, but I don't know if this thing will change in the future. + # So we will patch every python script! + for file in *.py + do + echo "Patching $file" + sed 's/"exec" python /"exec" python2 /' $file > $file.tmp + install -Dm 755 $file.tmp $file + rm $file.tmp + done + else + echo "This directory does not contain a valid repo repository!" + fi + else + echo "Invalid directory!" + fi +fi |