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

Side by Side Diff: chrome/installer/linux/sysroot_scripts/sysroot-creator-debian.wheezy.sh

Issue 101033002: Add sysroot script for armhf linux. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 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 | Annotate | Revision Log
« no previous file with comments | « chrome/installer/linux/sysroot_scripts/packagelist.debian.wheezy.i386 ('k') | 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/sh 1 #!/bin/sh
2 # 2 #
3 # Copyright (c) 2013 The Chromium Authors. All rights reserved. 3 # Copyright (c) 2013 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 builds a Debian Wheezy sysroot for building Google Chrome. 7 #@ This script builds a Debian Wheezy sysroot for building Google Chrome.
8 #@ 8 #@
9 #@ Generally this script is invoked as: 9 #@ Generally this script is invoked as:
10 #@ sysroot-creator-debian.wheezy.sh <mode> <args>* 10 #@ sysroot-creator-debian.wheezy.sh <mode> <args>*
11 #@ Available modes are shown below. 11 #@ Available modes are shown below.
12 #@ 12 #@
13 #@ List of modes: 13 #@ List of modes:
14 14
15 ###################################################################### 15 ######################################################################
16 # Config 16 # Config
17 ###################################################################### 17 ######################################################################
18 18
19 set -o nounset 19 set -o nounset
20 set -o errexit 20 set -o errexit
21 21
22 readonly SCRIPT_DIR=$(dirname $0) 22 readonly SCRIPT_DIR=$(dirname $0)
23 23
24 # This is where the staging sysroot is. 24 # This is where the staging sysroot is.
25 readonly INSTALL_ROOT_AMD64=$(pwd)/debian_wheezy_amd64_staging 25 readonly INSTALL_ROOT_AMD64=$(pwd)/debian_wheezy_amd64_staging
26 readonly INSTALL_ROOT_I386=$(pwd)/debian_wheezy_i386_staging 26 readonly INSTALL_ROOT_I386=$(pwd)/debian_wheezy_i386_staging
27 readonly INSTALL_ROOT_ARM=$(pwd)/debian_wheezy_arm_staging
27 28
28 readonly REQUIRED_TOOLS="wget" 29 readonly REQUIRED_TOOLS="wget"
29 30
30 ###################################################################### 31 ######################################################################
31 # Package Config 32 # Package Config
32 ###################################################################### 33 ######################################################################
33 34
34 # This is where we get all the debian packages from. 35 # This is where we get all the debian packages from.
35 readonly DEBIAN_REPO=http://http.us.debian.org/debian 36 readonly DEBIAN_REPO=http://http.us.debian.org/debian
36 readonly REPO_BASEDIR="${DEBIAN_REPO}/dists/wheezy" 37 readonly REPO_BASEDIR="${DEBIAN_REPO}/dists/wheezy"
37 38
38 readonly RELEASE_FILE="Release" 39 readonly RELEASE_FILE="Release"
39 readonly RELEASE_FILE_GPG="Release.gpg" 40 readonly RELEASE_FILE_GPG="Release.gpg"
40 readonly RELEASE_LIST="${REPO_BASEDIR}/${RELEASE_FILE}" 41 readonly RELEASE_LIST="${REPO_BASEDIR}/${RELEASE_FILE}"
41 readonly RELEASE_LIST_GPG="${REPO_BASEDIR}/${RELEASE_FILE_GPG}" 42 readonly RELEASE_LIST_GPG="${REPO_BASEDIR}/${RELEASE_FILE_GPG}"
42 readonly PACKAGE_FILE_AMD64="main/binary-amd64/Packages.bz2" 43 readonly PACKAGE_FILE_AMD64="main/binary-amd64/Packages.bz2"
43 readonly PACKAGE_FILE_I386="main/binary-i386/Packages.bz2" 44 readonly PACKAGE_FILE_I386="main/binary-i386/Packages.bz2"
45 readonly PACKAGE_FILE_ARM="main/binary-armhf/Packages.bz2"
44 readonly PACKAGE_LIST_AMD64="${REPO_BASEDIR}/${PACKAGE_FILE_AMD64}" 46 readonly PACKAGE_LIST_AMD64="${REPO_BASEDIR}/${PACKAGE_FILE_AMD64}"
45 readonly PACKAGE_LIST_I386="${REPO_BASEDIR}/${PACKAGE_FILE_I386}" 47 readonly PACKAGE_LIST_I386="${REPO_BASEDIR}/${PACKAGE_FILE_I386}"
48 readonly PACKAGE_LIST_ARM="${REPO_BASEDIR}/${PACKAGE_FILE_ARM}"
46 49
47 # Sysroot packages: these are the packages needed to build chrome. 50 # Sysroot packages: these are the packages needed to build chrome.
48 # NOTE: When DEBIAN_PACKAGES is modified, the packagelist files must be updated 51 # NOTE: When DEBIAN_PACKAGES is modified, the packagelist files must be updated
49 # by running this script in GeneratePackageList mode. 52 # by running this script in GeneratePackageList mode.
50 readonly DEBIAN_PACKAGES="\ 53 readonly DEBIAN_PACKAGES="\
51 comerr-dev \ 54 comerr-dev \
52 gcc-4.6 \ 55 gcc-4.6 \
53 krb5-multidev \ 56 krb5-multidev \
54 libasound2 \ 57 libasound2 \
55 libasound2-dev \ 58 libasound2-dev \
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
135 libpcre3 \ 138 libpcre3 \
136 libpcre3-dev \ 139 libpcre3-dev \
137 libpcrecpp0 \ 140 libpcrecpp0 \
138 libpixman-1-0 \ 141 libpixman-1-0 \
139 libpixman-1-dev \ 142 libpixman-1-dev \
140 libpng12-0 \ 143 libpng12-0 \
141 libpng12-dev \ 144 libpng12-dev \
142 libpulse0 \ 145 libpulse0 \
143 libpulse-dev \ 146 libpulse-dev \
144 libpulse-mainloop-glib0 \ 147 libpulse-mainloop-glib0 \
145 libquadmath0 \
146 libselinux1 \ 148 libselinux1 \
147 libspeechd2 \ 149 libspeechd2 \
148 libspeechd-dev \ 150 libspeechd-dev \
149 libssl1.0.0 \ 151 libssl1.0.0 \
150 libssl-dev \ 152 libssl-dev \
151 libstdc++6 \ 153 libstdc++6 \
152 libstdc++6-4.6-dev \ 154 libstdc++6-4.6-dev \
153 libtasn1-3 \ 155 libtasn1-3 \
154 libudev0 \ 156 libudev0 \
155 libudev-dev \ 157 libudev-dev \
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
201 x11proto-input-dev \ 203 x11proto-input-dev \
202 x11proto-kb-dev \ 204 x11proto-kb-dev \
203 x11proto-randr-dev \ 205 x11proto-randr-dev \
204 x11proto-record-dev \ 206 x11proto-record-dev \
205 x11proto-render-dev \ 207 x11proto-render-dev \
206 x11proto-scrnsaver-dev \ 208 x11proto-scrnsaver-dev \
207 x11proto-xext-dev \ 209 x11proto-xext-dev \
208 zlib1g \ 210 zlib1g \
209 zlib1g-dev" 211 zlib1g-dev"
210 212
211 readonly DEBIAN_DEP_LIST_AMD64="${SCRIPT_DIR}/packagelist.debian.wheezy.amd64" 213 DEBIAN_PACKAGES_X86="libquadmath0"
212 readonly DEBIAN_DEP_LIST_I386="${SCRIPT_DIR}/packagelist.debian.wheezy.i386" 214
215 readonly DEBIAN_DEP_LIST_AMD64="packagelist.debian.wheezy.amd64"
216 readonly DEBIAN_DEP_LIST_I386="packagelist.debian.wheezy.i386"
217 readonly DEBIAN_DEP_LIST_ARM="packagelist.debian.wheezy.arm"
213 218
214 ###################################################################### 219 ######################################################################
215 # Helper 220 # Helper
216 ###################################################################### 221 ######################################################################
217 222
218 Banner() { 223 Banner() {
219 echo "######################################################################" 224 echo "######################################################################"
220 echo $* 225 echo $*
221 echo "######################################################################" 226 echo "######################################################################"
222 } 227 }
(...skipping 28 matching lines...) Expand all
251 fi 256 fi
252 } 257 }
253 258
254 259
255 SetEnvironmentVariables() { 260 SetEnvironmentVariables() {
256 ARCH="" 261 ARCH=""
257 echo $1 | grep -qs Amd64$ && ARCH=AMD64 262 echo $1 | grep -qs Amd64$ && ARCH=AMD64
258 if [ -z "$ARCH" ]; then 263 if [ -z "$ARCH" ]; then
259 echo $1 | grep -qs I386$ && ARCH=I386 264 echo $1 | grep -qs I386$ && ARCH=I386
260 fi 265 fi
266 if [ -z "$ARCH" ]; then
267 echo $1 | grep -qs ARM$ && ARCH=ARM
268 fi
261 case "$ARCH" in 269 case "$ARCH" in
270 ARM)
271 INSTALL_ROOT="$INSTALL_ROOT_ARM";
272 ;;
262 AMD64) 273 AMD64)
263 INSTALL_ROOT="$INSTALL_ROOT_AMD64"; 274 INSTALL_ROOT="$INSTALL_ROOT_AMD64";
264 ;; 275 ;;
265 I386) 276 I386)
266 INSTALL_ROOT="$INSTALL_ROOT_I386"; 277 INSTALL_ROOT="$INSTALL_ROOT_I386";
267 ;; 278 ;;
268 *) 279 *)
269 echo "ERROR: Unexpected bad architecture." 280 echo "ERROR: Unexpected bad architecture."
270 exit 1 281 exit 1
271 ;; 282 ;;
272 esac 283 esac
273 } 284 }
274 285
275 Cleanup() { 286 Cleanup() {
287 echo "Cleaning: $TMP"
276 rm -rf "$TMP" 288 rm -rf "$TMP"
277 } 289 }
278 290
279 # some sanity checks to make sure this script is run from the right place 291 # some sanity checks to make sure this script is run from the right place
280 # with the right tools 292 # with the right tools
281 SanityCheck() { 293 SanityCheck() {
282 Banner "Sanity Checks" 294 Banner "Sanity Checks"
283 295
284 if [ "$(basename $(pwd))" != "sysroot_scripts" ] ; then 296 if [ "$(basename $(pwd))" != "sysroot_scripts" ] ; then
285 echo -n "ERROR: run this script from " 297 echo -n "ERROR: run this script from "
(...skipping 18 matching lines...) Expand all
304 echo "Required binary $tool not found." 316 echo "Required binary $tool not found."
305 echo "Exiting." 317 echo "Exiting."
306 exit 1 318 exit 1
307 fi 319 fi
308 done 320 done
309 } 321 }
310 322
311 323
312 ChangeDirectory() { 324 ChangeDirectory() {
313 # Change directory to where this script is. 325 # Change directory to where this script is.
314 cd $(dirname "$0") 326 cd ${SCRIPT_DIR}
315 } 327 }
316 328
317 329
318 ClearInstallDir() { 330 ClearInstallDir() {
319 Banner "Clearing dirs in ${INSTALL_ROOT}" 331 Banner "Clearing dirs in ${INSTALL_ROOT}"
320 rm -rf ${INSTALL_ROOT}/* 332 rm -rf ${INSTALL_ROOT}/*
321 } 333 }
322 334
323 335
324 CreateTarBall() { 336 CreateTarBall() {
(...skipping 14 matching lines...) Expand all
339 fi 351 fi
340 } 352 }
341 353
342 ExtractPackageBz2() { 354 ExtractPackageBz2() {
343 bzcat "$1" | egrep '^(Package:|Filename:|SHA256:) ' > "$2" 355 bzcat "$1" | egrep '^(Package:|Filename:|SHA256:) ' > "$2"
344 } 356 }
345 357
346 GeneratePackageListAmd64() { 358 GeneratePackageListAmd64() {
347 local output_file="$1" 359 local output_file="$1"
348 local package_list="${TMP}/Packages.wheezy_amd64.bz2" 360 local package_list="${TMP}/Packages.wheezy_amd64.bz2"
349 DownloadOrCopy ${PACKAGE_LIST_AMD64} ${package_list} 361 local tmp_package_list="${TMP}/Packages.wheezy_amd64"
350 VerifyPackageListing ${PACKAGE_FILE_AMD64} ${package_list} 362 DownloadOrCopy "${PACKAGE_LIST_AMD64}" "${package_list}"
351 ExtractPackageBz2 "$package_list" "${TMP}/Packages" 363 VerifyPackageListing "${PACKAGE_FILE_AMD64}" "${package_list}"
364 ExtractPackageBz2 "$package_list" "$tmp_package_list"
352 365
353 GeneratePackageList "$output_file" "${DEBIAN_PACKAGES}" 366 GeneratePackageList "$tmp_package_list" "$output_file" "${DEBIAN_PACKAGES}
367 ${DEBIAN_PACKAGES_X86}"
354 } 368 }
355 369
356 GeneratePackageListI386() { 370 GeneratePackageListI386() {
357 local output_file="$1" 371 local output_file="$1"
358 local package_list="${TMP}/Packages.wheezy_i386.bz2" 372 local package_list="${TMP}/Packages.wheezy_i386.bz2"
359 DownloadOrCopy ${PACKAGE_LIST_I386} ${package_list} 373 local tmp_package_list="${TMP}/Packages.wheezy_amd64"
360 VerifyPackageListing ${PACKAGE_FILE_I386} ${package_list} 374 DownloadOrCopy "${PACKAGE_LIST_I386}" "${package_list}"
361 ExtractPackageBz2 "$package_list" "${TMP}/Packages" 375 VerifyPackageListing "${PACKAGE_FILE_I386}" "${package_list}"
376 ExtractPackageBz2 "$package_list" "$tmp_package_list"
362 377
363 GeneratePackageList "$output_file" "${DEBIAN_PACKAGES}" 378 GeneratePackageList "$tmp_package_list" "$output_file" "${DEBIAN_PACKAGES}
379 ${DEBIAN_PACKAGES_X86}"
380 }
381
382 GeneratePackageListARM() {
383 local output_file="$1"
384 local package_list="${TMP}/Packages.wheezy_arm.bz2"
385 local tmp_package_list="${TMP}/Packages.wheezy_arm"
386 DownloadOrCopy "${PACKAGE_LIST_ARM}" "${package_list}"
387 VerifyPackageListing "${PACKAGE_FILE_ARM}" "${package_list}"
388 ExtractPackageBz2 "$package_list" "$tmp_package_list"
389
390 GeneratePackageList "$tmp_package_list" "$output_file" "${DEBIAN_PACKAGES}"
364 } 391 }
365 392
366 StripChecksumsFromPackageList() { 393 StripChecksumsFromPackageList() {
367 local package_file="$1" 394 local package_file="$1"
368 sed -i 's/ [a-f0-9]\{64\}$//' "$package_file" 395 sed -i 's/ [a-f0-9]\{64\}$//' "$package_file"
369 } 396 }
370 397
371 VerifyPackageFilesMatch() { 398 VerifyPackageFilesMatch() {
372 local downloaded_package_file="$1" 399 local downloaded_package_file="$1"
373 local stored_package_file="$2" 400 local stored_package_file="$2"
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
424 mkdir -p ${INSTALL_ROOT}/usr/share 451 mkdir -p ${INSTALL_ROOT}/usr/share
425 ln -s ../lib/i386-linux-gnu/pkgconfig ${INSTALL_ROOT}/usr/share/pkgconfig 452 ln -s ../lib/i386-linux-gnu/pkgconfig ${INSTALL_ROOT}/usr/share/pkgconfig
426 453
427 SubBanner "Adding an additional ld.conf include" 454 SubBanner "Adding an additional ld.conf include"
428 LD_SO_HACK_CONF="${INSTALL_ROOT}/etc/ld.so.conf.d/zz_hack.conf" 455 LD_SO_HACK_CONF="${INSTALL_ROOT}/etc/ld.so.conf.d/zz_hack.conf"
429 echo /usr/lib/gcc/i486-linux-gnu/4.6 > "$LD_SO_HACK_CONF" 456 echo /usr/lib/gcc/i486-linux-gnu/4.6 > "$LD_SO_HACK_CONF"
430 echo /usr/lib >> "$LD_SO_HACK_CONF" 457 echo /usr/lib >> "$LD_SO_HACK_CONF"
431 } 458 }
432 459
433 460
461 HacksAndPatchesARM() {
462 Banner "Misc Hacks & Patches"
463 # these are linker scripts with absolute pathnames in them
464 # which we rewrite here
465 lscripts="${INSTALL_ROOT}/usr/lib/arm-linux-gnueabihf/libpthread.so \
466 ${INSTALL_ROOT}/usr/lib/arm-linux-gnueabihf/libc.so"
467
468 #SubBanner "Rewriting Linker Scripts"
469 sed -i -e 's|/usr/lib/arm-linux-gnueabihf/||g' ${lscripts}
470 sed -i -e 's|/lib/arm-linux-gnueabihf/||g' ${lscripts}
471
472 # This is for chrome's ./build/linux/pkg-config-wrapper
473 # which overwrites PKG_CONFIG_PATH internally
474 SubBanner "Package Configs Symlink"
475 mkdir -p ${INSTALL_ROOT}/usr/share
476 ln -s ../lib/arm-linux-gnueabihf/pkgconfig ${INSTALL_ROOT}/usr/share/pkgconfig
477 }
478
479
434 InstallIntoSysroot() { 480 InstallIntoSysroot() {
435 Banner "Install Libs And Headers Into Jail" 481 Banner "Install Libs And Headers Into Jail"
436 482
437 mkdir -p ${TMP}/debian-packages 483 mkdir -p ${TMP}/debian-packages
438 mkdir -p ${INSTALL_ROOT} 484 mkdir -p ${INSTALL_ROOT}
439 while (( "$#" )); do 485 while (( "$#" )); do
440 local file="$1" 486 local file="$1"
441 local package="${TMP}/debian-packages/${file##*/}" 487 local package="${TMP}/debian-packages/${file##*/}"
442 shift 488 shift
443 local sha256sum="$1" 489 local sha256sum="$1"
(...skipping 22 matching lines...) Expand all
466 CleanupJailSymlinks() { 512 CleanupJailSymlinks() {
467 Banner "Jail symlink cleanup" 513 Banner "Jail symlink cleanup"
468 514
469 SAVEDPWD=$(pwd) 515 SAVEDPWD=$(pwd)
470 cd ${INSTALL_ROOT} 516 cd ${INSTALL_ROOT}
471 find lib lib64 usr/lib -type l -printf '%p %l\n' | while read link target; do 517 find lib lib64 usr/lib -type l -printf '%p %l\n' | while read link target; do
472 # skip links with non-absolute paths 518 # skip links with non-absolute paths
473 echo "${target}" | grep -qs ^/ || continue 519 echo "${target}" | grep -qs ^/ || continue
474 echo "${link}: ${target}" 520 echo "${link}: ${target}"
475 case "${link}" in 521 case "${link}" in
476 usr/lib/gcc/x86_64-linux-gnu/4.*/* | usr/lib/gcc/i486-linux-gnu/4.*/*) 522 usr/lib/gcc/x86_64-linux-gnu/4.*/* | usr/lib/gcc/i486-linux-gnu/4.*/* | \
523 usr/lib/gcc/arm-linux-gnueabihf/4.*/*)
477 # Relativize the symlink. 524 # Relativize the symlink.
478 ln -snfv "../../../../..${target}" "${link}" 525 ln -snfv "../../../../..${target}" "${link}"
479 ;; 526 ;;
480 usr/lib/x86_64-linux-gnu/* | usr/lib/i386-linux-gnu/*) 527 usr/lib/x86_64-linux-gnu/* | usr/lib/i386-linux-gnu/* | \
528 usr/lib/arm-linux-gnueabihf/*)
481 # Relativize the symlink. 529 # Relativize the symlink.
482 ln -snfv "../../..${target}" "${link}" 530 ln -snfv "../../..${target}" "${link}"
483 ;; 531 ;;
484 usr/lib/*) 532 usr/lib/*)
485 # Relativize the symlink. 533 # Relativize the symlink.
486 ln -snfv "../..${target}" "${link}" 534 ln -snfv "../..${target}" "${link}"
487 ;; 535 ;;
488 lib64/* | lib/*) 536 lib64/* | lib/*)
489 # Relativize the symlink. 537 # Relativize the symlink.
490 ln -snfv "..${target}" "${link}" 538 ln -snfv "..${target}" "${link}"
(...skipping 17 matching lines...) Expand all
508 #@ 556 #@
509 #@ Build everything and package it 557 #@ Build everything and package it
510 BuildSysrootAmd64() { 558 BuildSysrootAmd64() {
511 CheckBuildSysrootArgs $@ 559 CheckBuildSysrootArgs $@
512 ClearInstallDir 560 ClearInstallDir
513 local package_file="$TMP/package_with_sha256sum_amd64" 561 local package_file="$TMP/package_with_sha256sum_amd64"
514 GeneratePackageListAmd64 "$package_file" 562 GeneratePackageListAmd64 "$package_file"
515 local files_and_sha256sums="$(cat ${package_file})" 563 local files_and_sha256sums="$(cat ${package_file})"
516 StripChecksumsFromPackageList "$package_file" 564 StripChecksumsFromPackageList "$package_file"
517 VerifyPackageFilesMatch "$package_file" "$DEBIAN_DEP_LIST_AMD64" 565 VerifyPackageFilesMatch "$package_file" "$DEBIAN_DEP_LIST_AMD64"
518 InstallIntoSysroot ${files_and_sha256sums} 566 InstallIntoSysroot "${files_and_sha256sums}"
519 CleanupJailSymlinks 567 CleanupJailSymlinks
520 HacksAndPatchesAmd64 568 HacksAndPatchesAmd64
521 CreateTarBall "$1" 569 CreateTarBall "$1"
522 } 570 }
523 571
524 #@ 572 #@
525 #@ BuildSysrootI386 <tarball-name> 573 #@ BuildSysrootI386 <tarball-name>
526 #@ 574 #@
527 #@ Build everything and package it 575 #@ Build everything and package it
528 BuildSysrootI386() { 576 BuildSysrootI386() {
529 CheckBuildSysrootArgs $@ 577 CheckBuildSysrootArgs $@
530 ClearInstallDir 578 ClearInstallDir
531 local package_file="$TMP/package_with_sha256sum_amd64" 579 local package_file="$TMP/package_with_sha256sum_i386"
532 GeneratePackageListI386 "$package_file" 580 GeneratePackageListI386 "$package_file"
533 local files_and_sha256sums="$(cat ${package_file})" 581 local files_and_sha256sums="$(cat ${package_file})"
534 StripChecksumsFromPackageList "$package_file" 582 StripChecksumsFromPackageList "$package_file"
535 VerifyPackageFilesMatch "$package_file" "$DEBIAN_DEP_LIST_I386" 583 VerifyPackageFilesMatch "$package_file" "$DEBIAN_DEP_LIST_I386"
536 InstallIntoSysroot ${files_and_sha256sums} 584 InstallIntoSysroot "${files_and_sha256sums}"
537 CleanupJailSymlinks 585 CleanupJailSymlinks
538 HacksAndPatchesI386 586 HacksAndPatchesI386
539 CreateTarBall "$1" 587 CreateTarBall "$1"
540 } 588 }
541 589
590 #@
591 #@ BuildSysrootARM <tarball-name>
592 #@
593 #@ Build everything and package it
594 BuildSysrootARM() {
595 CheckBuildSysrootArgs $@
596 ClearInstallDir
597 local package_file="$TMP/package_with_sha256sum_arm"
598 GeneratePackageListARM "$package_file"
599 local files_and_sha256sums="$(cat ${package_file})"
600 StripChecksumsFromPackageList "$package_file"
601 VerifyPackageFilesMatch "$package_file" "$DEBIAN_DEP_LIST_ARM"
602 InstallIntoSysroot "${files_and_sha256sums}"
603 CleanupJailSymlinks
604 HacksAndPatchesARM
605 CreateTarBall "$1"
606 }
607
542 # 608 #
543 # CheckForDebianGPGKeys 609 # CheckForDebianGPGKeyring
544 # 610 #
545 # Make sure the Debian GPG keys exist. Otherwise print a helpful message. 611 # Make sure the Debian GPG keys exist. Otherwise print a helpful message.
546 # 612 #
547 CheckForDebianGPGKeys() { 613 CheckForDebianGPGKeyring() {
548 if [ ! -e "/etc/apt/trusted.gpg.d/debian-archive-wheezy-automatic.gpg" ] || 614 if [ ! -e "/usr/share/keyrings/debian-archive-keyring.gpg" ]; then
549 [ ! -e "/etc/apt/trusted.gpg.d/debian-archive-wheezy-stable.gpg" ]; then
550 echo "Debian GPG keys missing. Install the debian-archive-keyring package." 615 echo "Debian GPG keys missing. Install the debian-archive-keyring package."
551 exit 1 616 exit 1
552 fi 617 fi
553 } 618 }
554 619
555 # 620 #
556 # VerifyPackageListing 621 # VerifyPackageListing
557 # 622 #
558 # Verifies the downloaded Packages.bz2 file has the right checksums. 623 # Verifies the downloaded Packages.bz2 file has the right checksums.
559 # 624 #
560 VerifyPackageListing() { 625 VerifyPackageListing() {
561 local file_path=$1 626 local file_path=$1
562 local output_file=$2 627 local output_file=$2
563 local release_file="${TMP}/${RELEASE_FILE}" 628 local release_file="${TMP}/${RELEASE_FILE}"
564 local release_file_gpg="${TMP}/${RELEASE_FILE_GPG}" 629 local release_file_gpg="${TMP}/${RELEASE_FILE_GPG}"
565 630
566 CheckForDebianGPGKeys 631 CheckForDebianGPGKeyring
567 632
568 DownloadOrCopy ${RELEASE_LIST} ${release_file} 633 DownloadOrCopy ${RELEASE_LIST} ${release_file}
569 DownloadOrCopy ${RELEASE_LIST_GPG} ${release_file_gpg} 634 DownloadOrCopy ${RELEASE_LIST_GPG} ${release_file_gpg}
570 echo "Verifying: ${release_file} with ${release_file_gpg}" 635 echo "Verifying: ${release_file} with ${release_file_gpg}"
571 gpgv --keyring /etc/apt/trusted.gpg.d/debian-archive-wheezy-automatic.gpg \ 636 gpgv --keyring /usr/share/keyrings/debian-archive-keyring.gpg \
572 --keyring /etc/apt/trusted.gpg.d/debian-archive-wheezy-stable.gpg \
573 ${release_file_gpg} ${release_file} 637 ${release_file_gpg} ${release_file}
574 638
575 echo "Verifying: ${output_file}" 639 echo "Verifying: ${output_file}"
576 local checksums=$(grep ${file_path} ${release_file} | cut -d " " -f 2) 640 local checksums=$(grep ${file_path} ${release_file} | cut -d " " -f 2)
577 local sha256sum=$(echo ${checksums} | cut -d " " -f 3) 641 local sha256sum=$(echo ${checksums} | cut -d " " -f 3)
578 642
579 if [ "${#sha256sum}" -ne "64" ]; then 643 if [ "${#sha256sum}" -ne "64" ]; then
580 echo "Bad sha256sum from ${RELEASE_LIST}" 644 echo "Bad sha256sum from ${RELEASE_LIST}"
581 exit 1 645 exit 1
582 fi 646 fi
583 647
584 echo "${sha256sum} ${output_file}" | sha256sum --quiet -c 648 echo "${sha256sum} ${output_file}" | sha256sum --quiet -c
585 } 649 }
586 650
587 # 651 #
588 # GeneratePackageList 652 # GeneratePackageList
589 # 653 #
590 # Looks up package names in ${TMP}/Packages and write list of URLs 654 # Looks up package names in ${TMP}/Packages and write list of URLs
591 # to output file. 655 # to output file.
592 # 656 #
593 GeneratePackageList() { 657 GeneratePackageList() {
594 local output_file="$1" 658 local input_file="$1"
595 echo "Updating: ${output_file}" 659 local output_file="$2"
660 echo "Updating: ${output_file} from ${input_file}"
596 /bin/rm -f "${output_file}" 661 /bin/rm -f "${output_file}"
597 shift 662 shift
663 shift
598 for pkg in $@ ; do 664 for pkg in $@ ; do
599 local pkg_full=$(grep -A 1 " ${pkg}\$" "${TMP}/Packages" | \ 665 local pkg_full=$(grep -A 1 " ${pkg}\$" "$input_file" | \
600 egrep -o "pool/.*") 666 egrep -o "pool/.*")
601 if [ -z "${pkg_full}" ]; then 667 if [ -z "${pkg_full}" ]; then
602 echo "ERROR: missing package: $pkg" 668 echo "ERROR: missing package: $pkg"
603 exit 1 669 exit 1
604 fi 670 fi
605 local pkg_nopool=$(echo "$pkg_full" | sed "s/^pool\///") 671 local pkg_nopool=$(echo "$pkg_full" | sed "s/^pool\///")
606 local sha256sum=$(grep -A 4 " ${pkg}\$" "${TMP}/Packages" | \ 672 local sha256sum=$(grep -A 4 " ${pkg}\$" "$input_file" | \
607 grep ^SHA256: | sed 's/^SHA256: //') 673 grep ^SHA256: | sed 's/^SHA256: //')
608 if [ "${#sha256sum}" -ne "64" ]; then 674 if [ "${#sha256sum}" -ne "64" ]; then
609 echo "Bad sha256sum from Packages" 675 echo "Bad sha256sum from Packages"
610 exit 1 676 exit 1
611 fi 677 fi
612 echo $pkg_nopool $sha256sum >> "$output_file" 678 echo $pkg_nopool $sha256sum >> "$output_file"
613 done 679 done
614 # sort -o does an in-place sort of this file 680 # sort -o does an in-place sort of this file
615 sort "$output_file" -o "$output_file" 681 sort "$output_file" -o "$output_file"
616 } 682 }
(...skipping 11 matching lines...) Expand all
628 #@ 694 #@
629 #@ UpdatePackageListsI386 695 #@ UpdatePackageListsI386
630 #@ 696 #@
631 #@ Regenerate the package lists such that they contain an up-to-date 697 #@ Regenerate the package lists such that they contain an up-to-date
632 #@ list of URLs within the Debian archive. (For i386) 698 #@ list of URLs within the Debian archive. (For i386)
633 UpdatePackageListsI386() { 699 UpdatePackageListsI386() {
634 GeneratePackageListI386 "$DEBIAN_DEP_LIST_I386" 700 GeneratePackageListI386 "$DEBIAN_DEP_LIST_I386"
635 StripChecksumsFromPackageList "$DEBIAN_DEP_LIST_I386" 701 StripChecksumsFromPackageList "$DEBIAN_DEP_LIST_I386"
636 } 702 }
637 703
704 #@
705 #@ UpdatePackageListsARM
706 #@
707 #@ Regenerate the package lists such that they contain an up-to-date
708 #@ list of URLs within the Debian archive. (For arm)
709 UpdatePackageListsARM() {
710 GeneratePackageListARM "$DEBIAN_DEP_LIST_ARM"
711 StripChecksumsFromPackageList "$DEBIAN_DEP_LIST_ARM"
712 }
713
638 if [ $# -eq 0 ] ; then 714 if [ $# -eq 0 ] ; then
639 echo "ERROR: you must specify a mode on the commandline" 715 echo "ERROR: you must specify a mode on the commandline"
640 echo 716 echo
641 Usage 717 Usage
642 exit 1 718 exit 1
643 elif [ "$(type -t $1)" != "function" ]; then 719 elif [ "$(type -t $1)" != "function" ]; then
644 echo "ERROR: unknown function '$1'." >&2 720 echo "ERROR: unknown function '$1'." >&2
645 echo "For help, try:" 721 echo "For help, try:"
646 echo " $0 help" 722 echo " $0 help"
647 exit 1 723 exit 1
648 else 724 else
649 ChangeDirectory 725 ChangeDirectory
650 SetEnvironmentVariables "$1" 726 SetEnvironmentVariables "$1"
651 SanityCheck 727 SanityCheck
652 "$@" 728 "$@"
653 fi 729 fi
OLDNEW
« no previous file with comments | « chrome/installer/linux/sysroot_scripts/packagelist.debian.wheezy.i386 ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698