Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(364)

Side by Side Diff: build/install-chroot.sh

Issue 11187019: Always reference newly created script using full path. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/bin/bash -e 1 #!/bin/bash -e
2 2
3 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 3 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 6
7 # This script installs Debian-derived distributions in a chroot environment. 7 # This script installs Debian-derived distributions in a chroot environment.
8 # It can for example be used to have an accurate 32bit build and test 8 # It can for example be used to have an accurate 32bit build and test
9 # environment when otherwise working on a 64bit machine. 9 # environment when otherwise working on a 64bit machine.
10 # N. B. it is unlikely that this script will ever work on anything other than a 10 # N. B. it is unlikely that this script will ever work on anything other than a
(...skipping 640 matching lines...) Expand 10 before | Expand all | Expand 10 after
651 echo "you now have to install the build dependencies. Do you want me to" 651 echo "you now have to install the build dependencies. Do you want me to"
652 printf "start the script that does this for you (y/n)? " 652 printf "start the script that does this for you (y/n)? "
653 read install_deps 653 read install_deps
654 case "${install_deps}" in 654 case "${install_deps}" in
655 y|Y) 655 y|Y)
656 echo 656 echo
657 # We prefer running the script in-place, but this might not be 657 # We prefer running the script in-place, but this might not be
658 # possible, if it lives on a network filesystem that denies 658 # possible, if it lives on a network filesystem that denies
659 # access to root. 659 # access to root.
660 tmp_script= 660 tmp_script=
661 if ! sudo "${target%bit}" sh -c "[ -x '${script}' ]" >&/dev/null; then 661 if ! sudo /usr/local/bin/"${target%bit}" \
662 sh -c "[ -x '${script}' ]" >&/dev/null; then
662 tmp_script="/tmp/${script##*/}" 663 tmp_script="/tmp/${script##*/}"
663 cp "${script}" "${tmp_script}" 664 cp "${script}" "${tmp_script}"
664 fi 665 fi
665 # Some distributions automatically start an instance of the system- 666 # Some distributions automatically start an instance of the system-
666 # wide dbus daemon or of the logging daemon, when installing the Chrome 667 # wide dbus daemon or of the logging daemon, when installing the Chrome
667 # build depencies. This prevents the chroot session from being closed. 668 # build depencies. This prevents the chroot session from being closed.
668 # So, we always try to shut down any running instance of dbus and 669 # So, we always try to shut down any running instance of dbus and
669 # rsyslog. 670 # rsyslog.
670 sudo "${target%bit}" sh -c "${script} --no-lib32; 671 sudo "${target%bit}" sh -c "${script} --no-lib32;
671 rc=$?; 672 rc=$?;
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
760 for i in $(list_all_chroots); do 761 for i in $(list_all_chroots); do
761 sudo "$i" mkdir -p "${dir}/chroot" 762 sudo "$i" mkdir -p "${dir}/chroot"
762 done 763 done
763 sudo sed -i "s,${HOME}/chroot,${dir}/chroot,g" /etc/schroot/mount-* 764 sudo sed -i "s,${HOME}/chroot,${dir}/chroot,g" /etc/schroot/mount-*
764 break 765 break
765 fi 766 fi
766 done 767 done
767 fi 768 fi
768 769
769 # Clean up package files 770 # Clean up package files
770 sudo schroot -c "${target%bit}" -p -- apt-get clean 771 sudo schroot -c /usr/local/bin/"${target%bit}" -p -- apt-get clean
771 sudo apt-get clean 772 sudo apt-get clean
772 773
773 trap '' INT TERM QUIT HUP 774 trap '' INT TERM QUIT HUP
774 trap '' EXIT 775 trap '' EXIT
775 776
776 # Let the user know what we did 777 # Let the user know what we did
777 cat <<EOF 778 cat <<EOF
778 779
779 780
780 Successfully installed ${distname} ${arch} 781 Successfully installed ${distname} ${arch}
781 782
782 You can run programs inside of the chroot by invoking the "${target%bit}" 783 You can run programs inside of the chroot by invoking the
783 command. 784 "/usr/local/bin/${target%bit}" command.
784 785
785 This command can be used with arguments, in order to just run a single 786 This command can be used with arguments, in order to just run a single
786 program inside of the chroot environment (e.g. "${target%bit} make chrome") 787 program inside of the chroot environment (e.g. "${target%bit} make chrome")
787 or without arguments, in order to run an interactive shell session inside 788 or without arguments, in order to run an interactive shell session inside
788 of the chroot environment. 789 of the chroot environment.
789 790
790 If you need to run things as "root", you can use "sudo" (e.g. try 791 If you need to run things as "root", you can use "sudo" (e.g. try
791 "sudo ${target%bit} apt-get update"). 792 "sudo ${target%bit} apt-get update").
792 793
793 Your home directory is shared between the host and the chroot. But I 794 Your home directory is shared between the host and the chroot. But I
794 configured "${HOME}/chroot" to be private to the chroot environment. 795 configured "${HOME}/chroot" to be private to the chroot environment.
795 You can use it for files that need to differ between environments. This 796 You can use it for files that need to differ between environments. This
796 would be a good place to store binaries that you have built from your 797 would be a good place to store binaries that you have built from your
797 source files. 798 source files.
798 799
799 For Chrome, this probably means you want to make your "out" directory a 800 For Chrome, this probably means you want to make your "out" directory a
800 symbolic link that points somewhere inside of "${HOME}/chroot". 801 symbolic link that points somewhere inside of "${HOME}/chroot".
801 802
802 You still need to run "gclient runhooks" whenever you switch from building 803 You still need to run "gclient runhooks" whenever you switch from building
803 outside of the chroot to inside of the chroot. But you will find that you 804 outside of the chroot to inside of the chroot. But you will find that you
804 don't have to repeatedly erase and then completely rebuild all your object 805 don't have to repeatedly erase and then completely rebuild all your object
805 and binary files. 806 and binary files.
806 807
807 EOF 808 EOF
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698