WelcomeWelcome | FAQFAQ | DownloadsDownloads | WikiWiki

Author Topic: Firefox - Extension to install the latest version  (Read 31218 times)

Offline coreplayer2

  • Hero Member
  • *****
  • Posts: 3020
Re: Firefox - Extension to install the latest version
« Reply #60 on: March 18, 2016, 10:39:57 AM »
Exactly, firefox has most likely not been installed correctly. 
Also remember that you can not have both firefoxESR and firefox installed at the same time.  firefox_getLatest will attempt to remove old versions if installed, however if you've manually downloaded firefoxESR afterwards then there may be a conflict.

firefox_getLatest is setup to be almost fool proof, but as always you can interfere with the install process if you're not that familiar with how TC installs applications.  firefox_getLatest iirc will not install firefox.tcz to the onboot list unless an older variant was previously installed there.

As Gerald suggested firefox hasn't been allowed to install correctly along with it's deps.  So to fix that please use "Apps" to remove any previously installed firefoxESR editions, then proceed to install firefox.tcz correctly to your "onboot.lst"   Or manually install for this session.   Either way, attempting to launch firefox without the correct path will most likely fail, as you've experienced using the file manager probably will not work as desired.

If you prefer to use the commandline, then use

tce-load -i firefox

remember to add firefox.tcz to your onboot.lst using Apps if you choose to have firefox loaded after each bootup.

good luck
« Last Edit: March 18, 2016, 10:42:36 AM by coreplayer2 »

Offline tp4web

  • WikiUser
  • *
  • Posts: 6
Re: Firefox - Extension to install the latest version
« Reply #61 on: March 18, 2016, 12:33:44 PM »
Sorry, I did not make it clear. This is on TinyCorePure64-7.0. Right after booting from ISO, I goto Apps -> Select fastest Mirror -> search for firefox. I select firefox_getLatest.tcz. I select  "Download + Load" option and click Go. TCE: path shows as /tmp/tce/optional. After it says OK, I open terminal and type firefox_getLatest.sh. The output of this is what I attached in my previous post.

I am not adding firefox.tcz to OnBoot.lst as I guess should not matter as I am using this machine for just one boot cycle. In the sense, boot and load TinyCore from any computer, go to website, do something, shutdown computer.

I just repeated the same steps now, and I get this new message (I sweat I had not seen that before):
grep: /etc/sysconfig/tcedir/onboot.lst: No such file or directory

Doing: tce-load -i firefox shows firefox is already installed!

Offline gerald_clark

  • TinyCore Moderator
  • Hero Member
  • *****
  • Posts: 4254
Re: Firefox - Extension to install the latest version
« Reply #62 on: March 18, 2016, 02:26:27 PM »
The ISO is not writable.  Use a standard disk based installation.

Offline coreplayer2

  • Hero Member
  • *****
  • Posts: 3020
Re: Firefox - Extension to install the latest version
« Reply #63 on: March 18, 2016, 04:35:22 PM »
so..

I found that in this scenario booting to a tinycore64.iso (burned to a cd) the symlink required by Firefox is not being created.    though it works fine if installed to a USB drive (last time i checked).
 at the terminal, type
Code: [Select]
ln -s /lib /lib64then launch firefox


normally you would launch firefox_getLatest from the desktop menu, then after installing the latest (now 45.0.1) launch firefox from the wbar icon


I'm typing this from tinycore64 cd from where I installed firefox_getLatest, then created the symlink and launched firefox from the firefox icon
« Last Edit: March 18, 2016, 04:40:12 PM by coreplayer2 »

Offline tp4web

  • WikiUser
  • *
  • Posts: 6
Re: Firefox - Extension to install the latest version
« Reply #64 on: March 18, 2016, 04:54:46 PM »
Thanks, I tried it again now using my USB drive and firefox_getLatest.sh was able to install firefox 45.0.1 and after reboot, firefox is working fine.

Offline coreplayer2

  • Hero Member
  • *****
  • Posts: 3020
Re: Firefox - Extension to install the latest version
« Reply #65 on: March 18, 2016, 05:13:39 PM »
Your welcome

It should work from a cd as I've tested the script from many scenarios.  Maybe it is related to the file system, however now that I'm looking at the startup file I see where this needs work and will fix it ASAP


Sent from my iPhone using Tapatalk

Offline coreplayer2

  • Hero Member
  • *****
  • Posts: 3020
Re: Firefox - Extension to install the latest version
« Reply #66 on: May 28, 2016, 11:58:02 PM »
Updated "firefox_getLatest.tcz" extension submitted to x86 and x86_64 repo's.

Updates dep files for for addition of GTK3 and contains "lib64" fix for corepure64.



Script v2.2 is attached for your perusal or if preferred to update firefox.tcz (rather than wait for extension submission process)
« Last Edit: May 29, 2016, 12:00:50 AM by coreplayer2 »

Offline coreplayer2

  • Hero Member
  • *****
  • Posts: 3020
Re: Firefox - Extension to install the latest version
« Reply #67 on: August 03, 2017, 03:57:36 PM »
Updated "firefox_getLatest" extension submitted to x86 and x86_64 repo's

To comply with latest busybox changes.


In case anyone has difficulty with the current extension no longer completing the connection check, an updated script has been attached to this post

Offline coreplayer2

  • Hero Member
  • *****
  • Posts: 3020
Re: Firefox - Extension to install the latest version
« Reply #68 on: December 18, 2018, 09:07:24 AM »
Updated "firefox_getLatest.tcz" extension posted to x86 and x86_64 repo's.

Updates include addition of run time dependencies (one is critical for firefox v64.0)

gcc_libs.tcz
gdk-pixbuf2.tcz
 


Offline xor

  • Sr. Member
  • ****
  • Posts: 259
Re: Firefox - Extension to install the latest version
« Reply #69 on: August 22, 2019, 09:33:09 PM »
Updated "firefox_getLatest.tcz" extension posted to x86 and x86_64 repo's.

Updates include addition of run time dependencies (one is critical for firefox v64.0)

gcc_libs.tcz
gdk-pixbuf2.tcz

can you add the current code to the forum!?

Code: [Select]
#!/bin/sh
#author coreplayer2
# version 2.4
#Aug 03 2017

###################################
# firefox_getLatest is a script to
# download and install the latest
# version of Firefox with locale
# support
# May be run with options, eg:
# firefox_getLatest.sh -h
# firefox_getLatest.sh -m
###################################


. /etc/init.d/tc-functions
useBusybox

trap 'f_cleanup ; trap 2 ; kill -2 $$' 1 2 3 13 15

if [ "$USER" = root ] ; then
   echo "Don't run as root please, exiting."
   sleep 2
   exit 1
fi

OIFS=$IFS
IFS=' '

##******************************************************************************************************************
##***************************************************Functions******************************************************

##draw at full screen width a line in blue ( use xy=(line#) for row position )
f_line() {
wide=$(stty size | cut -d" " -f2)
printf "\033["$xy";0H${BLUE}"
printf '%*s\n' "$(( wide-1 ))" '' | tr ' ' =
printf "${NORMAL}"
}

f_cleanup (){
find /tmp/firefox* -type d -exec sudo chown tc:staff {} +
find /tmp/firefox* -type f -exec sudo chown tc:staff {} +

clean1ist="/tmp/firefox.* /tmp/ff*"
for clean in ${clean1ist}; do
   rm -fr $clean
done

if [ -f ${tczStore}/test_file ]; then
  rm -f ${tczStore}/test_file
fi

IFS=$OIFS
}

f_location (){
getMirror
echo " ${MAGENTA}Repo ${WHITE}in use: ${CYAN}$MIRROR${NORMAL} "
echo " ${MAGENTA}TCE ${WHITE}directory in use: ${CYAN}${tczStore}${NORMAL} "
}

f_connchk (){
echo " ${MAGENTA}Verifying connection to server, please wait...${NORMAL}"
wget --spider -q -T 20 ${address}
case $? in
0)
   echo " ${GREEN}connection ok${NORMAL}"
;;
1)
   echo " ${MAGENTA}Using alternative web address...${NORMAL}"
   wget --spider -q -T 20 ${address2}
   case $? in
     0)
echo " ${GREEN}connection ok${NORMAL}"
     ;;
     1)
echo " ${YELLOW}${message}${NORMAL}"
sleep 5
exit
     ;;
   esac
;;
esac
}

f_freespace (){
free=$(df -m /dev/$tcz_partition | grep dev | awk '{ printf "%d\n",$4 }')
if [ ! -z $free ]; then
    if [ $free -lt $required ]; then
echo -e " ${YELLOW}Caution, ${WHITE}$tcz_partition ${YELLOW}has less than ${WHITE}${required} MB ${YELLOW}free space remaining ${NORMAL}"
xy=4
f_line
echo -e " Please free up space to continue\n exiting... "
sleep 10
exit 2
    fi
    if [ $free -gt 200 ]; then
echo -e " ${MAGENTA}$tcz_partition ${WHITE}has: ${CYAN}${free} MB ${WHITE}free space remaining${NORMAL} "
xy=4
f_line
    fi
fi
if [ -z $free ]; then
echo -e " ${YELLOW}Caution, unable to determine free space remaining ${NORMAL}"
sleep 4
fi
}


##******************************************************************************************************************
##*****************************************************Main*********************************************************

unset l
unset free
unset ans
unset VER
unset VX
unset ffdownload
unset installdir
unset rebootToInstall

required=100
ff=firefox
tce_dir=/etc/sysconfig/tcedir
op=${tce_dir}/optional
tczStore=$(readlink -f $op)
part1=${tczStore#/mnt/}
tcz_partition=${part1%%/*}
tczup=${tczStore}/upgrade
ffBuild=firefox.${RANDOM}$RANDOM
ffBuildPath=/tmp/$ffBuild
ffdirpath=${ffBuildPath}/firefox/usr/local
addressX='https://download.mozilla.org/?product=firefox-latest'
addressY="https://dl.dropboxusercontent.com/u/35323031/TC_FIREFOX_VERSION/ffAltVersion"
ffdownload="http://download.cdn.mozilla.net/pub/mozilla.org/firefox/releases/34.0.5/linux-i686/en-US/firefox-34.0.5.tar.bz2"
message1="check internet connection, then try again"
message2="verify connection, perhaps a typo? then try again"
lib=0
xy=0


#Options
while getopts amh option
do
case "$option" in
a ) mode=1 ; break;;
m ) mode=2 ; break;;
h ) help=1 ; break;;
esac
done
unset option


clear
f_location
[ -z "$tcz_partition" ] || f_freespace
xy=4
f_line


##Help
if [ "x$help" == x1 ]; then
  clear
  cat <<-helpinfo
================================================================
 Default:       firefox_getLatest.sh -a  (auto detect mode)

================================================================
 Manual:        firefox_getLatest.sh -m  (manually enter version)
                 
                Specify exact firefox version to install
                perhaps the latest or an earlier version
                eg: 38.0 || 39.0.3 || 40.0 || 40.0.2
                or 52.1.2esr (for ESR version)
                or 42.0b9 (sample for a beta version)

 note: you can find available valid versions from
 http://download.cdn.mozilla.net/pub/mozilla.org/firefox/releases/
================================================================
 help:          firefox_getLatest.sh -h  (this help menu)

================================================================
helpinfo
exit 3
fi

f_cleanup >/dev/null 2>&1
IFS=' '
##test for writable tce dir
if [ ! -f "${tczStore}/test_file" ]; then
  touch ${tczStore}/test_file
  if [ "x$?" != x0 ]; then
      echo "${RED} tce directory not writable${NORMAL} "
      f_cleanup >/dev/null 2>&1
      exit 4
  fi
fi


echo -e "\n ${BLUE}Fetching dependencies${NORMAL}.. "
unset address
unset message
address="http://tinycorelinux.net/index.html"
address2="http://forum.tinycorelinux.net/index.php"
message=$message1
f_connchk

#load dependencies
#check for old versions of squashfs-tools
toolsOld=squashfs-tools-4.x
toolsNew=squashfs-tools
tcVer=$(version)
tcMajorVer=${tcVer%%.*}
case $tcMajorVer in
  [45]) [ -f /lib/ld-linux-x86-64.so.2 ] && sqfsTools=$toolsNew || sqfsTools=$toolsOld ;;
     *) sqfsTools=$toolsNew ;;
esac

deps1="$sqfsTools \
curl \
wget \
bzip2 \
file \
gtk3 \
libasound \
dbus-glib \
hicolor-icon-theme \
cairo \
gamin \
libGLESv2 \
ca-certificates"

for Z in $deps1
do
tce-load -w $Z 1>/dev/null
tce-load -i $Z 1>/dev/null
  if [ ! -e /usr/local/tce.installed/$Z ]; then
      echo "${RED}  Dependency install failed${NORMAL} "
      f_cleanup >/dev/null 2>&1
      exit 5
  fi
done


#check for cirtificates install
[ -e /etc/ssl ] || sudo ln -s /usr/local/etc/ssl /etc/ssl


##discover firefox arch
ARCH=$(uname -m)
case $ARCH in
  x86_64) [ -f /lib/ld-linux-x86-64.so.2 ] && ffdownload=${ffdownload/linux-i686/linux-x86_64}; lib=x86_64 ;;
esac


#LANG=ew_ES.ISO-8859-15 #uncomment for testing
##firefox multilanguage support
for l in $(echo ${LANG%.*}); do
case $l in
C) l=en-US ;; #English
en_GB*) l=en-GB ;;
en_ZA*) l=en-ZA ;;
en*) l=en-US ;;
es_ES*) l=es-ES ;; #Spanish
es_MX*) l=es-MX ;;
es_CL*) l=es-CL ;;
es_AR*) l=es-AR ;;
es*) l=es-ES ;;
fr*) l=fr ;; #French
de*) l=de ;; #German
af*) l=af ;; #Afrikaans
sq*) l=sq ;; #Albanian
ar*) l=ar ;; #Arabic
an*) l=an ;; #Aragonese
hy_AM*) l=hy-AM ;; #Armenian
ast*) l=ast ;; #Asturian
as*) l=as ;; #Assamese
az*) l=az ;; #Azerbaijani
eu*) l=eu ;; #Basque
be*) l=be ;; #Belarusian
bn_BD*) l=bn-BD ;; #Bengali (Bangladesh)
bn_IN*) l=bn-IN ;; #Bengali (India)
bs*) l=bs ;; #Bosnian
br*) l=br ;; #Breton
bg*) l=bg ;; #Bulgarian
ca*) l=ca ;; #Catalan
zh_CN*) l=zh-CN ;; #Chinese (Simplified)
zh*) l=zh-TW ;; #Chinese (Traditional)
hr*) l=hr ;; #Croatian
cs*) l=cs ;; #Czech
da*) l=da ;; #Danish
nl*) l=nl ;; #Dutch
et*) l=et ;; #Estonian
fi*) l=fi ;; #Finnish
fy*) l=fy-NL ;; #Frisian
ff*) l=ff ;; #Fulah
gd*) l=gd ;; #Gaelic (Scotland)
gl*) l=gl ;; #Galician
el*) l=el ;; #Greek
gu*) l=gu-IN ;; #Gujarati (India)
he*) l=he ;; #Hebrew
hi_IN*) l=hi-IN ;; #Hindi (India)
hu*) l=hu ;; #Hungarian
is*) l=is ;; #Icelandic
id*) l=id ;; #Indonesian
ga_IE*) l=ga-IE ;; #Irish
it*) l=it ;; #Italian
ja*) l=ja ;; #Japanese
kn*) l=kn ;; #Kannada
kk*) l=kk ;; #Kazakh
km*) l=km ;; #Khmer
ko*) l=ko ;; #Korean
lv*) l=lv ;; #Latvian
lt*) l=lt ;; #Lithuanian
mk*) l=mk ;; #Macedonian
ms*) l=ms ;; #Malay
ml*) l=ml ;; #Malayalam
mr*) l=mr ;; #Marathi
nb_NO*) l=nb-NO ;; #Norwegian (Bokmal)
nn_NO*) l=nn-NO ;; #Norwegian (Nynorsk)
or*) l=or ;; #Oriya
fa*) l=fa ;; #Persian
pl*) l=pl ;; #Polish
pt_BR*) l=pt-BR ;; #Portuguese (Brazilian)
pt_PT*) l=pt-PT ;; #Portuguese (Portugal)
ro*) l=ro ;; #Romanian
ru*) l=ru ;; #Russian
sr*) l=sr ;; #Serbian
si*) l=si ;; #Sinhala
sk*) l=sk ;; #Slovak
sl*) l=sl ;; #Slovenian
sv_SE*) l=sv-SE ;; #Swedish
ta*) l=ta ;; #Tamil
te*) l=te ;; #Telugu
th*) l=th ;; #Thai
tr*) l=tr ;; #Turkish
uk*) l=uk ;; #Ukrainian
hsb*) l=hsb ;; #Upper Sorbian
uz*) l=uz ;; #Uzbek
vi*) l=vi ;; #Vietnamese
cy*) l=cy ;; #Welsh
xh*) l=xh ;; #Xhosa
*) l=en-US ; echo -e "\n ${YELLOW}Error. Check locale bootcode, \
using defualt${NORMAL}.\n " ;; #fallback defualt
esac
done
ffdownload=${ffdownload/en-US/$l}


##**********************************************download selection**************************************************

case ${mode:=1} in
1 )
#auto discover version
echo -e "\n ${BLUE}Acquiring latest version${NORMAL}.. "
cd /tmp

curl -s $addressX 2>/dev/null | grep -o '[[:digit:]]*\.[[:digit:]]' 2>/dev/null | sort -u | tail -1 >/tmp/ffversion
curl -s $addressX 2>/dev/null | grep -o '[[:digit:]]*\.[[:digit:]]*\.[[:digit:]]' 2>/dev/null | sort -u | tail -1 >>/tmp/ffversion
VER=$(cat /tmp/ffversion | sort -u | tail -1)

if [ -n "$VER" ]; then
  echo -e "\n ${GREEN}The Latest version ${WHITE}is ${CYAN}${VER}${NORMAL} \n "
echo -e " ${BLUE}Downloading Firefox${NORMAL}.. \n "
  /usr/local/bin/wget -c -t 20 ${ffdownload//34.0.5/$VER} -O /tmp/firefox.tar.bz2
else
echo -e "${YELLOW} Version not found, \n ${BLUE}attempting alternate method${NORMAL}.."
f_cleanup >/dev/null 2>&1
wget $addressY >/dev/null 2>&1
VER=$(cat /tmp/ffAltVersion)
if [ -n "$VER" ]; then
  echo -e "\n ${GREEN}The Latest version ${WHITE}is ${CYAN}${VER}${NORMAL} \n "
  echo -e " ${BLUE}Downloading Firefox${NORMAL}.. \n "
  /usr/local/bin/wget -c -t 20 ${ffdownload//34.0.5/$VER} -O /tmp/firefox.tar.bz2
fi
fi
if [ ! -n "$VER" ]; then
  echo -e "\n ${YELLOW}Error acquiring latest version${NORMAL},\n \
suggest using the manual option \n \
see \"firefox_getLatest.sh -h\" for more "
read -p " Press Enter to exit"
exit 6
fi
;;

2 )
#specify version
echo -e "\n Enter exact version requested. \n For example to download \
version 34.0.5 simply type \n\n  ${WHITE}34.0.5${NORMAL} \n"
echo -n " at the prompt, then select enter: "

read -t 300 VER

unset address
unset message
address=${ffdownload//34.0.5/$VER}
address2=${ffdownload//34.0.5/$VER}
message=$message2
f_connchk

/usr/local/bin/wget -c -t 20 ${ffdownload//34.0.5/$VER} -O /tmp/firefox.tar.bz2
;;

3 )
#modify download link (This feature to be completed soon)
if [ ! -f "/tmp/ffdownload_link.txt" ]; then
echo "$ffdownload" > /tmp/ffdownload_link.txt
echo -e " The download link has been saved in /tmp/ffdownload_link.txt
 until next reboot.  please edit the download path specifying
 version directoy, filename and language as desired.
 save the file and restart this update script selecting option ${WHITE}(${MAGENTA}3${WHITE})${NORMAL}
 again to use the modified address\n\n "
sleep 30
exit 7
fi

ffpath=$(cat /tmp/ffdownload_link.txt)

if [ -f "/tmp/ffdownload_link.txt" ]; then

unset address
unset message
address=${ffpath}
address2=${ffpath}
message=$message2
f_connchk

/usr/local/bin/wget -c -t 20 ${ffpath} -O /tmp/firefox.tar.bz2
else
echo " ${YELLOW} No path file found, please try again${NORMAL}"
f_cleanup >/dev/null 2>&1
sleep 5
exit 8
fi
;;

* )
 echo -e "\n\n${YELLOW}Error key not supported\n\n${NORMAL}"
;;

esac

#End of Version selection
##******************************************************************************************************************
#Creat new extension

if [ ! -d "$ffBuildPath" ]; then
dirlist="tce.installed \
share/applications \
share/doc/${ff} \
share/pixmaps "

for d in $dirlist
do
  [ ! -f ${ffdirpath}/$d ] && mkdir -p ${ffdirpath}/$d
done
fi

if [ -f "${tczStore}/firefox.tcz" ] ; then
installdir="$tczup"
else
installdir="$tczStore"
fi

##Make support files
echo "gtk3.tcz
libasound.tcz
dbus-glib.tcz
hicolor-icon-theme.tcz
cairo.tcz
gamin.tcz
libGLESv2.tcz
" > "${ffBuildPath}/${ff}.tcz.dep"

cat > ${ffdirpath}/share/applications/${ff}.desktop << "EOF1"
[Desktop Entry]
Name=firefox
Exec=firefox
Terminal=False
Comment=Firefox Web Browser
StartupNotify=True
Type=Application
Categories=Application;Network;
Icon=firefox.png
X-FullPathIcon=/usr/local/share/pixmaps/firefox.png

EOF1

cat > ${ffdirpath}/share/applications/${ff}~1.desktop << "EOF8"
[Desktop Entry]
Name=firefox_private
GenericName=Web Browser
Exec=firefox -private-window
Terminal=False
Comment=Firefox Web Browser
StartupNotify=True
Type=Application
Categories=Application;Network;
Icon=firefox.png
X-FullPathIcon=/usr/local/share/pixmaps/firefox.png

EOF8

cat > ${ffdirpath}/share/applications/${ff}~2.desktop << "EOF9"
[Desktop Entry]
Name=firefox_safe-mode
GenericName=Web Browser
Exec=firefox -safe-mode
Terminal=False
Comment=Firefox Web Browser
StartupNotify=True
Type=Application
Categories=Application;Network;
Icon=firefox.png
X-FullPathIcon=/usr/local/share/pixmaps/firefox.png

EOF9

if [ x"$lib" != xx86_64 ]; then
cat > ${ffdirpath}/tce.installed/${ff} << "EOF2"
#!/bin/sh
[ -d /var/lib/dbus ] || mkdir -p /var/lib/dbus
[ -f /var/lib/dbus/machine-id ] || dbus-uuidgen --ensure=/var/lib/dbus/machine-id

if [ -f /usr/local/bin/firefox ] ; then 
rm -rf /usr/local/bin/firefox
ln -s /usr/local/firefox/firefox /usr/local/bin/firefox
else
ln -s /usr/local/firefox/firefox /usr/local/bin/firefox
fi

EOF2

elif [ x"$lib" == xx86_64 ]; then
cat > ${ffdirpath}/tce.installed/firefox << "EOF3"
#!/bin/sh

# ln to binary on PATH
if [ ! -h /usr/local/bin/firefox ]; then
ln -s /usr/local/firefox/firefox /usr/local/bin/firefox
fi

# ln lib64 to lib
if [ ! -e /lib64 ]; then
ln -s /lib /lib64
fi

EOF3
fi


licensefile="${ffdirpath}/share/doc/${ff}/COPYING"
while [ ! -f "$licensefile" ]; do
cat > $licensefile << "EOF5"
License information may be obtained from
about:license

EOF5
done


cd /tmp
#updating build dir with archive contents

if [ -f /tmp/firefox.tar.bz2 ] ; then
echo -e "\n ${BLUE}Unpacking Archive${NORMAL}.. "
{
tar jxvf firefox.tar.bz2 -C $ffdirpath 1>/dev/null
  if [ "x$?" != x0 ]; then
      echo "${RED} Corrupt archive, please re-start operation ${NORMAL} "
      f_cleanup >/dev/null 2>&1
      sleep 5
      exit 9
  fi
} &
rotdash $!
fi

if [ ! -f ${ffdirpath}/share/pixmaps/firefox.png ]; then
cp ${ffdirpath}/${ff}/browser/chrome/icons/default/default48.png ${ffdirpath}/share/pixmaps/${ff}.png
fi


#set permissions
if [ "$PWD" != "$ffBuildPath/${ff}" ]; then
  cd $ffBuildPath/${ff}
fi

find . -type d -exec sudo chown root:root {} +
find . -type d -exec sudo chmod 755 {} +
find . -type f -exec sudo chown root:root {} +
cd ..
find $ffdirpath -iname tce.installed -exec sudo chown root:staff {} +
find $ffdirpath -iname tce.installed -exec sudo chmod 775 {} +
find ${ffdirpath}/tce.installed -type f -exec sudo chown tc:staff {} +
find ${ffdirpath}/tce.installed -type f -exec sudo chmod 755 {} +


echo -e "\n ${BLUE}Creating extension${NORMAL}.. "
mksquashfs ${ff}/ ${ff}.tcz 1>/dev/null
md5sum ${ff}.tcz > ${ff}.tcz.md5.txt

if [ ! -d ${tczup} ]; then
  mkdir -p ${tczup}
fi

if [ -f "${tczup}/${ff}.tcz" ]; then
  rm -f ${tczup}/${ff}.tcz
fi

echo -e "\n ${BLUE}Installing firefox${NORMAL}.. "
sleep 1
copylist="firefox.tcz \
firefox.tcz.md5.txt \
firefox.tcz.dep "

for c in $copylist
do
  [ -f ${ffBuildPath}/$c ] && cp ${ffBuildPath}/$c ${installdir}/$c
done


cd "$tce_dir"
bootlist=$(getbootparam lst)
[ -n "$bootlist" ] || bootlist="onboot.lst"

#load latest firefox if no other firefox is already loaded
if [ x"$installdir" = x"$tczStore" ]; then
  if [ ! -f /usr/local/tce.installed/firefox ]; then
    if [ ! -f /usr/local/tce.installed/firefox-ESR ]; then
      if [ ! -f /usr/local/tce.installed/firefox-official ]; then
        tce-load -i -s ${tczStore}/firefox.tcz
        [ ! -f /usr/local/tce.installed/firefox ] || \
echo -e "\n ${BLUE}Firefox has been installed${NORMAL}.. "
        rebootToInstall=0
      fi
    fi
  fi
elif [ x"$installdir" = x"$tczup" ]; then
  echo -e "\n ${BLUE}Firefox has been scheduled to update an \n \
existing install on next reboot${NORMAL}.. \n"
  rebootToInstall=1
fi

#if firefox*(anyVersion) not in onboot.lst then speak out!
if [ x0 = x$(grep -c firefox-ESR.tcz ${tce_dir}/$bootlist) ]; then
  if [ x0 = x$(grep -c firefox-official.tcz ${tce_dir}/$bootlist) ]; then
    if [ x0 = x$(grep -c firefox.tcz ${tce_dir}/$bootlist) ]; then
      echo -e " ${MAGENTA}Note: ${CYAN}If you want firefox to load on each reboot, \n \
      remember to add "firefox.tcz" to your onboot.lst ${NORMAL}.. "
      rebootToInstall=2
    fi
  fi
fi

#if firefox*(oldVersion) is installed in onboot.lst then add new version to list
if [ x1 = x$(grep -c firefox-ESR.tcz ${tce_dir}/$bootlist) ] || \
[ x1 = x$(grep -c firefox-official.tcz ${tce_dir}/$bootlist) ]; then
  echo "firefox.tcz" >> ${tce_dir}/$bootlist
  rebootToInstall=1
fi

#uninstall old firefox extensions
if [ -f "${tczStore}/firefox-official.tcz" ]; then
tce-audit builddb >/dev/null 2>&1
echo -e "\n Preparing to uninstall depreciated firefox-official.tcz "
tce-audit delete /etc/sysconfig/tcedir/optional/firefox-official.tcz
rebootToInstall=1
fi
if [ -f "${tczStore}/firefox-ESR.tcz" ]; then
tce-audit builddb >/dev/null 2>&1
echo -e "\n Preparing to uninstall firefox-ESR.tcz "
tce-audit delete /etc/sysconfig/tcedir/optional/firefox-ESR.tcz
rebootToInstall=1
fi

[ ! -f "${tczup}/firefox.tcz" ] || rebootToInstall=1

f_cleanup >/dev/null 2>&1

IFS=$OIFS

case $rebootToInstall in
  0 )
     exit 0
  ;;
  1 )
     echo -e "\n${GREEN} Please reboot to complete install${NORMAL}\n"
     read -p " Press Enter to exit"
     exit 10
  ;;
  2 )
     read -p " Press Enter to exit"
     exit 0
  ;;
esac


##*******************************************************End********************************************************
##******************************************************************************************************************