1 #!/bin/sh 2 # 3 # Copyright (c) 1996-2007, Adobe Systems Incorporated 4 # All Rights Reserved 5 # 6 7 set_lang_ENU() 8 { 9 ST_ER_AR02="ERROR: Cannot find installation directory." 10 ST_LANG="ENU" 11 ST_SMALL_N="n" 12 ST_ER_AR01="ERROR: Cannot determine current directory." 13 ST_ICE_INFO_03="The website presented the following Certificate" 14 ST_ER_AR04="ERROR: The environment variable TMPDIR points to an invalid path." 15 ST_ICE_INFO_05="Certificate successfully installed." 16 ST_ER_DIR="ERROR: Cannot make directory %s." 17 ST_YES="yes" 18 ST_ER_AR03="ERROR: Cannot find %s." 19 ST_ICE_INFO_07="Unable to find openssl, please make sure the openssl binary is in the PATH" 20 ST_INFO_AR04="Installed platform(s) include the following:" 21 ST_VERSION="version" 22 ST_INFO_AR01="The OS named %s is currently not installed." 23 ST_ICE_INFO_04="Do you want to accept and install it (y|n)? " 24 ST_CAPS_Y="Y" 25 ST_ICE_INFO_01="Fetching certificate from website...." 26 ST_ICE_INFO_02="Processing ...." 27 ST_ICE_INFO_08="Not installing the certificate." 28 ST_INFO_AR03="Try running on an installed platform and connecting to your display." 29 ST_ICE_INFO_06="There was a problem installing the certificate" 30 ST_SMALL_Y="y" 31 ST_ER_AR05="%s not installed for this configuration, %s." 32 } 33 34 35 set_lang_JPN() 36 { 37 ST_ER_AR02=" : " 38 ST_LANG="JPN" 39 ST_SMALL_N="n" 40 ST_ER_AR01=" : " 41 ST_ICE_INFO_03="Web " 42 ST_ER_AR04=" : TMPDIR " 43 ST_ICE_INFO_05="" 44 ST_ER_DIR=" : %s " 45 ST_YES="yes" 46 ST_ER_AR03=" : %s " 47 ST_ICE_INFO_07="openssl openssl PATH " 48 ST_INFO_AR04=" : " 49 ST_VERSION="" 50 ST_INFO_AR01="%s OS " 51 ST_ICE_INFO_04=" (y|n) " 52 ST_CAPS_Y="Y" 53 ST_ICE_INFO_01="Web ...." 54 ST_ICE_INFO_02="...." 55 ST_ICE_INFO_08="" 56 ST_INFO_AR03="" 57 ST_ICE_INFO_06="" 58 ST_SMALL_Y="y" 59 ST_ER_AR05="%s %s " 60 } 61 62 63 set_lang_JPN_utf() 64 { 65 ST_ER_AR02=" : " 66 ST_LANG="JPN" 67 ST_SMALL_N="n" 68 ST_ER_AR01=" : " 69 ST_ICE_INFO_03="Web " 70 ST_ER_AR04=" : TMPDIR " 71 ST_ICE_INFO_05="" 72 ST_ER_DIR=" : %s " 73 ST_YES="yes" 74 ST_ER_AR03=" : %s " 75 ST_ICE_INFO_07="openssl openssl PATH " 76 ST_INFO_AR04=" : " 77 ST_VERSION="" 78 ST_INFO_AR01="%s OS " 79 ST_CAPS_Y="Y" 80 ST_ICE_INFO_04=" (y|n) " 81 ST_ICE_INFO_01="Web ...." 82 ST_ICE_INFO_02="...." 83 ST_ICE_INFO_08="" 84 ST_INFO_AR03="" 85 ST_ICE_INFO_06="" 86 ST_SMALL_Y="y" 87 ST_ER_AR05="%s %s " 88 } 89 90 91 # Determine default language based on current system language. 92 # Defaults to English (ENU). 93 LING=`echo $LC_ALL` 94 LING=${LING:-$LANG} 95 LING=${LING:-$LC_MESSAGES} 96 # check if it's a UTF-8 locale 97 MYUTF8="" 98 echo $LING | grep -i utf > /dev/null 99 100 if [ $? -eq 0 ]; then 101 MYUTF8="_utf" 102 fi 103 104 LING=`echo $LING | sed 's/\(.*\)\.\(.*\)/\1/'` 105 106 case $LING in 107 ja*) MYLANG=JPN;; 108 *) MYLANG=ENU;; 109 esac 110 111 if [ $MYLANG != "ENU" ]; then 112 MYLANG="$MYLANG$MYUTF8" 113 fi 114 115 set_lang_${MYLANG} 116 117 ver="8.1.7" 118 119 if [ "$1" = "-version" ]; then 120 echo "$ver" 121 exit 122 fi 123 124 125 LaunchBinary() 126 { 127 if [ "`uname -s`" = "Linux" ] && [ ! -x /lib/ld-lsb.so.3 ]; then 128 exec /lib/ld-linux.so.2 ${1+"$@"} 129 else 130 exec ${1+"$@"} 131 fi 132 } 133 134 135 MkTempInternal() 136 { 137 if [ "${mktemp_count+set}" != "set" ]; then 138 mktemp_count="0" 139 fi 140 141 mktemp_file="/tmp/acrobat.$$.${mktemp_count}" 142 143 while /usr/bin/test -e "$mktemp_file" 144 do 145 mktemp_count="`expr $mktemp_count + 1`" 146 mktemp_file="/tmp/acrobat.$$.${mktemp_count}" 147 done 148 149 touch "$mktemp_file" && chmod 600 "$mktemp_file" && echo "$mktemp_file" 150 } 151 152 MkTemp() 153 { 154 MKTEMP="`which mktemp 2>/dev/null`"; 155 if [ "$MKTEMP" != "" ]; then 156 : 157 else 158 MKTEMP="MkTempInternal"; 159 fi 160 161 $MKTEMP /tmp/acrobat.$1 162 } 163 164 readlink() 165 { 166 OLDPWD="`/bin/pwd`" 167 lfile="$1" 168 169 while [ -h "$lfile" -a -f "$lfile" ]; do 170 CWD="`dirname "$lfile"`" 171 if [ "`expr "${CWD}" : "\.\."`" = "2" ]; then 172 CWD="`/bin/pwd`/$CWD" 173 fi 174 lfile="`basename "$lfile"`" 175 cd "$CWD" 176 lfile="`/bin/ls -l "$lfile"|sed 's/^.*-> *\(.*\) *$/\1/'`" 177 done 178 179 if [ -f "$lfile" ]; then 180 CWD="`dirname "$lfile"`" 181 lfile="`basename "$lfile"`" 182 if [ "`expr "${CWD}" : "\.\."`" = "2" ]; then 183 CWD="`/bin/pwd`/$CWD" 184 fi 185 cd "$CWD" 186 echo `/bin/pwd`/$lfile 187 cd "$OLDPWD" 188 return 0 189 fi 190 191 cd "$OLDPWD" 192 return 1 193 } 194 195 196 majorRelease="`echo $ver | cut -d. -f1`.0" 197 cwd="`/bin/pwd 2> /dev/null`" 198 199 if [ -h "$0" ]; then 200 ScriptVariable=`readlink $0` 201 ScriptDirectory=`dirname "$ScriptVariable"` 202 else 203 ScriptDirectory=`dirname "$0"` 204 cd "$ScriptDirectory" 205 ScriptDirectory="`/bin/pwd 2> /dev/null`" 206 cd "$cwd" 207 fi 208 install_dir="`dirname "$ScriptDirectory"`/Reader" 209 210 211 # 212 # Prepend a colon separated environment variable 213 # $1 string to be prepended 214 # $2 environment variable 215 # 216 prepend() 217 { 218 if [ -z "$2" -o "$2" = "$1" ] ; then 219 echo "$1" 220 else 221 first="`expr "$2" : '\([^:]*\):'`" 222 if [ "$first" = "$1" ] ; then 223 echo "$2" 224 else 225 echo "${1}:${2}" 226 fi 227 fi 228 } 229 230 231 # 232 # Tests the version file in an installation directory. 233 # 234 test_install_dir() 235 { 236 if [ "`cat "$1"/AcroVersion 2>/dev/null`" = "$ver" ] ; then 237 return 0 238 else 239 return 1 240 fi 241 } 242 243 244 # 245 # Check a given file in given path 246 # 247 248 Which() 249 { 250 OLD_IFS="$IFS" 251 IFS=":" 252 status=1 253 254 for i in $PATH; do 255 if [ -x "$i/$1" ]; then 256 echo "$i/$1" 257 status=0 258 break 259 fi 260 done 261 262 IFS="$OLD_IFS" 263 return $status 264 } 265 266 yesno() 267 { 268 msg="$1" 269 def="$2" 270 while : ; do 271 printf "\n%s" "$msg" 272 read answer 273 if [ "$answer" ] ; then 274 case "$answer" in 275 "$ST_SMALL_Y" | "$ST_CAPS_Y" | "$ST_YES") 276 return 0 277 ;; 278 *) 279 return 1 280 ;; 281 esac 282 else 283 return $def 284 fi 285 done 286 } 287 288 InstallCertificate() 289 { 290 #$1 is install_dir 291 #$2 is URL 292 #$3 is port 293 RETVAL=0 294 INSTALL_DIR="$1" 295 LOGFILE="`MkTemp ssl_logXXXXXX`" 296 CERTNAME="`MkTemp certi.cerXXXXXX`" 297 CERTDATA="`MkTemp certDataXXXXXX`" 298 299 CertificateInstallDirectory="$HOME/.adobe/Acrobat/$majorRelease/Cert" 300 301 if Which openssl >/dev/null 302 then 303 : 304 else 305 printf "%s\n" "$ST_ICE_INFO_07" 306 exit 1 307 fi 308 309 printf "%s\n" "$ST_ICE_INFO_01" 310 printf "%s\n" "QUIT" | openssl s_client -connect $2:$3 >$LOGFILE 311 312 if [ $? -ne 0 ] 313 then 314 exit 1 315 else 316 printf "%s\n" "$ST_ICE_INFO_02" 317 fi 318 319 320 beginCert=`cat $LOGFILE |grep -n "BEGIN CERTIFICATE---" |cut -f1 -d":"` 321 endCert=`cat $LOGFILE |grep -n "END CERTIFICATE---" |cut -f1 -d":"` 322 323 head -$endCert $LOGFILE | tail -`expr $endCert - $beginCert + 1` >$CERTNAME 324 325 openssl x509 -inform PEM -in $CERTNAME -text -out $CERTDATA 326 HASH=`openssl x509 -hash -noout -in $CERTNAME` 327 328 printf "%s\n\n" "$ST_ICE_INFO_03" 329 more "$CERTDATA" 330 331 if yesno "$ST_ICE_INFO_04[$ST_SMALL_N] " 1 332 then 333 if [ ! -d "$CertificateInstallDirectory" ] 334 then 335 mkdir -p "$CertificateInstallDirectory" 336 if [ $? -ne 0 ] 337 then 338 printf "$ST_ER_DIR\n" "$CertificateInstallDirectory" 339 rm -f "$CERTNAME" 340 rm -f "$CERTDATA" 341 rm -f "$LOGFILE" 342 exit 1 343 fi 344 fi 345 346 cp $CERTNAME "$CertificateInstallDirectory"/${HASH}.0 347 if [ $? -eq 0 ] 348 then 349 printf "%s\n" "$ST_ICE_INFO_05" 350 else 351 printf "%s\n" "$ST_ICE_INFO_06" 352 RETVAL=1 353 fi 354 else 355 printf "%s\n" "$ST_ICE_INFO_08" 356 RETVAL=2 357 fi 358 359 360 rm -f $CERTNAME 361 rm -f $CERTDATA 362 rm -f $LOGFILE 363 return $RETVAL 364 } 365 366 367 # 368 # Get the current working directory. 369 # Try to avoid automounter directories by checking 370 # if $HOME or $PWD is the same directory as pwd, 371 # and removing the automount directory component. 372 # 373 if [ -z "$cwd" -o ! -d "$cwd" ] ; then 374 printf "%s\n" "$ST_ER_AR01" 375 exit 1 376 fi 377 378 if [ "$HOME" -a -d "$HOME" ] && [ "`cd / ; cd "$HOME" ; /bin/pwd`" = "$cwd" ] ; then 379 cwd="$HOME" 380 elif [ "$PWD" -a -d "$PWD" ] && [ "`cd / ; cd "$PWD" ; /bin/pwd`" = "$cwd" ] ; then 381 cwd="$PWD" 382 fi 383 384 385 PWD="$cwd" 386 export PWD 387 388 389 # 390 # Setup ACRO_ARG0 to this script 391 # 392 arg0="$0" 393 if [ "$arg0" ] ; then 394 case "$arg0" in 395 /*) ;; 396 ./*) arg0="$cwd/`expr "$arg0" : '\./\(.*\)'`" ;; 397 *) arg0="$cwd/$arg0" ;; 398 esac 399 400 ACRO_ARG0="$arg0" 401 export ACRO_ARG0 402 fi 403 404 405 # 406 # Try to find the installation directory 407 # 408 if ( test_install_dir "$install_dir" ) ; then 409 ACRO_INSTALL_DIR="$install_dir" 410 export ACRO_INSTALL_DIR 411 412 else 413 script="$arg0" 414 while [ "$script" ] ; do 415 install_dir="`dirname "$script"`" 416 if ( test_install_dir "$install_dir/Reader" ) ; then 417 ACRO_INSTALL_DIR="$install_dir/Reader" 418 export ACRO_INSTALL_DIR 419 break 420 fi 421 422 install_dir="`dirname "$install_dir"`" 423 if ( test_install_dir "$install_dir/Reader" ) ; then 424 ACRO_INSTALL_DIR="$install_dir/Reader" 425 export ACRO_INSTALL_DIR 426 break 427 fi 428 429 if [ -h "$script" ] ; then 430 new_script=`readlink "$script"` 431 if [ "$new_script" -a "`expr "$new_script" : '/.*'`" = 0 ] ; then 432 new_script="`dirname "$script"`/$new_script" 433 fi 434 script="$new_script" 435 else 436 break 437 fi 438 done 439 440 if ( test_install_dir "$ACRO_INSTALL_DIR" ) ; then 441 : 442 elif ( test_install_dir "$ACRO_HOME" ) ; then 443 ACRO_INSTALL_DIR="$ACRO_HOME" 444 export ACRO_INSTALL_DIR 445 else 446 printf "%s\n" "$ST_ER_AR02" 447 exit 1 448 fi 449 fi 450 451 452 # 453 # setup the configuration from uname 454 # 455 os_name=`uname -s` 456 os_release=`uname -r` 457 458 case "$os_name" in 459 SunOS) 460 case "$os_release" in 461 4.1.3*|4.1.4*|4.1C) 462 ACRO_CONFIG=sparcsun 463 export ACRO_CONFIG 464 ;; 465 5.*) 466 machine_type=`uname -p` 467 case "$machine_type" in 468 sparc) 469 ACRO_CONFIG=sparcsolaris 470 export ACRO_CONFIG 471 ;; 472 intel|i386) 473 ACRO_CONFIG=intelsolaris 474 export ACRO_CONFIG 475 ;; 476 ppc) 477 ACRO_CONFIG=ppcsolaris 478 export ACRO_CONFIG 479 ;; 480 esac 481 ;; 482 esac 483 ;; 484 Linux) 485 ACRO_CONFIG=intellinux 486 export ACRO_CONFIG 487 ;; 488 AIX) 489 ACRO_CONFIG=rs6000aix 490 export ACRO_CONFIG 491 ;; 492 HP-UX) 493 ACRO_CONFIG=hppahpux 494 export ACRO_CONFIG 495 esac 496 497 if [ -z "$ACRO_CONFIG" ] ; then 498 printf "$ST_INFO_AR01" "$os_name $ST_VERSION $os_release" 499 printf "%s\n%s\n" "$ST_INFO_AR03" "$ST_INFO_AR04" 500 501 if [ -d "$ACRO_INSTALL_DIR"/sparcsolaris ] ; then 502 printf " SPARC/Solaris version 2.x\n" 503 fi 504 if [ -d "$ACRO_INSTALL_DIR"/intellinux ] ; then 505 printf " Intel/Linux\n" 506 fi 507 exit 1 508 fi 509 510 # Enable this if you want Adobe Reader to cache Font-config fonts 511 # ACRO_ENABLE_FONT_CONFIG=1 512 # export ACRO_ENABLE_FONT_CONFIG 513 514 515 516 # Enable this if you want to set the MOZILLA_COMP_PATH globally (for all the users) 517 #if [ -f "$ACRO_INSTALL_DIR/GlobalPrefs/mozilla_config" ]; then 518 # . "$ACRO_INSTALL_DIR/GlobalPrefs/mozilla_config" 519 # export MOZILLA_COMP_PATH 520 #fi 521 522 greConfigFile="${HOME}/.adobe/Acrobat/$majorRelease/Preferences/acrogre.conf" 523 524 if [ -f "$greConfigFile" ]; then 525 mozillaPath="`cat "$greConfigFile"`" 526 if [ -n "$mozillaPath" ]; then 527 MOZILLA_COMP_PATH="$mozillaPath" 528 export MOZILLA_COMP_PATH 529 fi 530 else 531 for i in /etc/gre.d/gre.conf /etc/gre.d/firefox.conf /etc/gre.d/mozilla.conf /etc/gre.d/*.conf /etc/gre.conf 532 do 533 if [ -f "$i" ]; then 534 mozillaPath="`grep "^GRE_PATH=" "$i" | cut -d= -f2 | sed -e 's/^[ ]*//g' -e 's/[ ]*$//g'`" 535 if [ -n "$mozillaPath" ]; then 536 MOZILLA_COMP_PATH="$mozillaPath" 537 export MOZILLA_COMP_PATH 538 break 539 fi 540 fi 541 done 542 fi 543 544 ADOBE_USER_PREFERENCES="$HOME/.adobe/Acrobat/$majorRelease/Preferences" 545 export ADOBE_USER_PREFERENCES 546 547 MOZILLA_FIVE_HOME="$MOZILLA_COMP_PATH" 548 export MOZILLA_FIVE_HOME 549 550 # 551 # Setup configuration specific environment variables 552 # 553 ACRO_LD_LIBRARY_PATH="$LD_LIBRARY_PATH" 554 export ACRO_LD_LIBRARY_PATH 555 556 case "$ACRO_CONFIG" in 557 sparcsolaris) 558 LD_LIBRARY_PATH="`prepend "$ACRO_INSTALL_DIR/$ACRO_CONFIG/lib:$ACRO_INSTALL_DIR/$ACRO_CONFIG/sidecars:${MOZILLA_COMP_PATH}" "${LD_LIBRARY_PATH}"`" 559 export LD_LIBRARY_PATH 560 ;; 561 intellinux) 562 LD_LIBRARY_PATH="`prepend "$ACRO_INSTALL_DIR/$ACRO_CONFIG/lib:$ACRO_INSTALL_DIR/$ACRO_CONFIG/sidecars:${MOZILLA_COMP_PATH}" "${LD_LIBRARY_PATH}"`" 563 export LD_LIBRARY_PATH 564 ;; 565 rs6000aix) 566 LIBPATH="`prepend "$ACRO_INSTALL_DIR/$ACRO_CONFIG/lib:$ACRO_INSTALL_DIR/$ACRO_CONFIG/sidecars:/opt/freeware/lib" "$LIBPATH"`" 567 export LIBPATH 568 ;; 569 hppahpux) 570 SHLIB_PATH="`prepend "$ACRO_INSTALL_DIR/$ACRO_CONFIG/lib:$ACRO_INSTALL_DIR/$ACRO_CONFIG/sidecars:/opt/graphics/OpenGL/lib" "$SHLIB_PATH"`" 571 LD_PRELOAD=/opt/graphics/OpenGL/lib/libGL.sl 572 export SHLIB_PATH 573 export LD_PRELOAD 574 ;; 575 esac 576 577 578 directory="`basename \"$ACRO_INSTALL_DIR\"`" 579 580 if [ "$directory" = "Reader" ]; then 581 cmd="acroread" 582 prod="Adobe Reader" 583 else 584 if [ "$directory" = "Acrobat" ]; then 585 cmd="acroexch" 586 prod="Adobe Acrobat" 587 fi 588 fi 589 590 # 591 # Set the command. Process any debug flags and exec. 592 # 593 ACRO_EXEC_CMD="$ACRO_INSTALL_DIR/$ACRO_CONFIG/bin/$cmd" 594 SYNCAPP_EXEC_CMD="$ACRO_INSTALL_DIR/$ACRO_CONFIG/bin/SynchronizerApp" 595 export SYNCAPP_EXEC_CMD 596 export ACRO_EXEC_CMD 597 598 ACRO_RES_DIR=$ACRO_INSTALL_DIR/../Resource 599 export ACRO_RES_DIR 600 601 ACRO_LANG="$ST_LANG" 602 export ACRO_LANG 603 604 ADOBE_HELP_PATH="$ACRO_INSTALL_DIR/../../.." 605 export ADOBE_HELP_PATH 606 607 #Checking if TMPDIR points to a valid directory 608 if [ -n "$TMPDIR" ] && [ ! -d "$TMPDIR" -o ! -w "$TMPDIR" ] 609 then 610 printf "%s\n" "$ST_ER_AR04" 611 exit 1 612 fi 613 # Adobe Reader/Acrobat uses gconftool-2 to check whether accessibility support is enabled. Please refer to the Readme file to work around this. 614 615 if Which gconftool-2 >/dev/null 616 then 617 ACRO_AT_ACTIVE=`gconftool-2 -g /desktop/gnome/interface/accessibility 2>/dev/null` 618 else 619 # gconftool-2 is not there on system, turn off AT support 620 ACRO_AT_ACTIVE="false" 621 fi 622 623 export ACRO_AT_ACTIVE 624 625 # Required for Multimedia plugin 626 # look for installed realplayer 627 628 if [ "$ACRO_CONFIG" = "intellinux" ]; then 629 if ARG0="`which realplay 2> /dev/null`"; then 630 if [ -d "$REALPLAYER_HOME" ] ; then 631 true 632 elif [ "$REALPLAYER_HOME" = "" -a -L ${ARG0} ] ; then 633 REALPLAYER_HOME=`readlink ${ARG0} 2> /dev/null` 634 REALPLAYER_HOME=`dirname ${REALPLAYER_HOME} 2> /dev/null` # Delete trailing file name. 635 export REALPLAYER_HOME 636 elif [ "$REALPLAYER_HOME" = "" -a -f ${ARG0} ] ; then 637 REALPLAYER_HOME=$ARG0 638 REALPLAYER_HOME=`dirname ${REALPLAYER_HOME} 2> /dev/null` # Delete trailing file name. 639 REALPLAYER_HOME=`cd $REALPLAYER_HOME; pwd;` 640 export REALPLAYER_HOME 641 fi 642 fi 643 fi 644 645 if [ "$ACRO_AT_ACTIVE" = "true" ]; then 646 GTK_MODULES=gail:atk-bridge 647 export GTK_MODULES 648 fi 649 650 if [ "$1" = "-installCertificate" ] 651 then 652 InstallCertificate $ACRO_INSTALL_DIR $2 $3 653 exit $? 654 fi 655 656 PATH="$PATH:$ACRO_INSTALL_DIR/$ACRO_CONFIG/bin" 657 export PATH 658 659 rm -rf "${HOME}/.adobe/Acrobat/$majorRelease/Preferences/mozilla" 660 mkdir -p "${HOME}/.adobe/Acrobat/$majorRelease/Preferences/mozilla" 661 cp -f "$ACRO_INSTALL_DIR/$ACRO_CONFIG/mozilla/prefs.js" "${HOME}/.adobe/Acrobat/$majorRelease/Preferences/mozilla/prefs.js" 662 663 if [ "$1" = "-DEBUG" ] ; then 664 ACRODEBUG=1 665 ACRO_CRASHLOG=1 666 export ACRODEBUG ACRO_CRASHLOG 667 668 if [ "`ulimit -c 2>/dev/null`" = "0" ] 669 then 670 ulimit -c 1000000 >/dev/null 2>&1 671 fi 672 673 if [ $# = 1 ] ; then 674 export ACRO_EXEC_CMD 675 exec "$SHELL" 676 else 677 shift 678 exec ${1+"$@"} "$ACRO_EXEC_CMD" 679 fi 680 fi 681 682 if [ -f "$ACRO_EXEC_CMD" ] ; then 683 LaunchBinary "$ACRO_EXEC_CMD" ${1+"$@"} 684 else 685 printf "$ST_ER_AR03\n" "$ACRO_EXEC_CMD" 686 printf "$ST_ER_AR05\n" "$prod" "\"$ACRO_CONFIG\"" 687 exit 1 688 fi 689