LINUX LITE 7.2 FINAL RELEASED - SEE RELEASE ANNOUNCEMENTS SECTION FOR DETAILS


Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Updates via GUI - no indicator
#21
I can't replicate it, and there's no record of zenity behaving in this way that I can see, therefore there's not a lot to go on.

Try this Yad version next time:

Code:
#!/bin/bash
#-----------------------------------------------------------------------------------------
# Name: Linux Lite Updates
# Description: A GUI tool to easily install Updates in Linux Lite.
# Authors: Misko_2083, Jerry Bezencon, gerito1, Ralphy
# Website: https://www.freecinema2022.gq
#-----------------------------------------------------------------------------------------

_APPNAME="Linux Lite Updates"                # Application name variable
_MYUPDUSER=$(whoami)
_ICON="/usr/share/icons/Faenza/apps/scalable/synaptic.svg"     # Linux Lite icon variable
_UPDATES=$(mktemp /tmp/updateslist.XXXXXX)   # Updates log variable
_DATE=$(date +"%A-%d-%B-%Y-%T")              # Date variable
_TMPU="/tmp/_updusr"
_PLAIN="/tmp/updateslist.txt"
_LLUPDATES="/var/log/llupdates.log"
if [ ! -f "$_TMPU" ]; then echo "$_MYUPDUSER" > "$_TMPU"; chmod 600 "$_TMPU"; fi
_SVUSER=$(cat "$_TMPU")

# function remove temp files
rm_temp_files() {
rm -f $_SVUSER
rm -f $_TMPU
rm -f $_UPDATES
rm -f $_PLAIN
rm -f /tmp/updateslist.*
}

# function view, save update log
view_save_log() {
  _ANS=$(yad --center --borders=15 --question --image=logviewer --text-info --width="780" --height="400" --window-icon="$_ICON" --title=" $_APPNAME Error log" \
                --button=gtk-cancel:1 --button="Save":0 --filename="$_LLUPDATES" 2>/dev/null); _OPT=$(echo $?)

    if [[ "$_ANS" =~ "Copy to clipboard" ]]; then
      sudo -u ${SUDO_USER:-$_SVUSER} xclip -selection c "$_LLUPDATES"
      xhost local:$_SVUSER > /dev/null 2>&1
      export DISPLAY=:0
      _NTFYICON="/usr/share/icons/Faenza/places/48/distributor-logo-ubuntu.png"
      notify-send -i "$_NTFYICON" 'Updates Log copied to clipboard' "Go to www.freecinema2022.gq/forums and paste the log into a new or existing thread." -t 10000
      xhost - >/dev/null 2>&1; rm_temp_files; exit 0
    fi
    case $_OPT in
       0) szSavePath=$(yad --center --image=logviewer --borders=15 --title="    Save Updates Log" --width="600" --height="400" --file-selection --filename="/home/$_SVUSER/llupdates.log" \
                              --window-icon="$_ICON" --file-filter='*.log' --file-filter='All files | *' --save --confirm-overwrite 2>/dev/null)
           if [ "$?" -eq "0" ]; then sudo -u ${SUDO_USER:-$_SVUSER} cp "$_LLUPDATES" "$szSavePath"; rm_temp_files; else rm_temp_files; exit 0 ; fi ;;
       1) rm_temp_files; exit 0 ;;
    esac
}

# Check Internet access
if eval "curl -sk google.com" >> /dev/null 2>&1; then :; else # Prompt ERROR internet connection check failed and exit
  yad --center --borders=15 --info --width="320" --height="120" --window-icon="$_ICON" --button=gtk-ok:1 --title="$_APPNAME" \
         --text="\n<b>Your computer is not connected to the Internet.</b> \n \nLinux Lite cannot check for Updates.\nPlease check your internet connection and try again.\n" --text-align center 2>/dev/null
  rm_temp_files; exit 0
fi

# Kill off any package managers that may be running
if [ "$(pidof synaptic)" ]; then killall -9 synaptic; fi
if [ ! -z "$(pgrep gdebi-gtk)" ]; then killall -9 gdebi-gtk; fi

# start dialog - Ask for elevation, else exit
if [ $EUID -ne 0 ]; then
  yad --center --borders=15 --image=system-software-install --question --width="320" --height="120" --window-icon="$_ICON" --button=gtk-cancel:1 --button="Continue":0 --title="$_APPNAME" \
       --text="\nLinux Lite will now fetch the Updates list.\n\nClick <b>Cancel</b> to exit now or <b>Continue</b> to proceed.\n" --text-align center 2>/dev/null
   case $? in
      0) pkexec "$0"; if [ "${PIPESTATUS[@]}" -eq "126" ]; then rm_temp_files; fi; exit 0 ;;
      1) rm_temp_files; exit 0 ;;
   esac
fi

if [ "$?" -eq "0" ];then
  # xclip check/ install
  if [ -z  "$(dpkg -l | grep -E '^ii' | grep xclip)" ]; then
    apt-get install xclip -y | yad --center --borders=15 --image=system-software-install --progress --pulsate --window-icon="$_ICON" --auto-close --no-cancel --width="320" --height="80" --title="$_APPNAME" \
                                       --text="Preparing... please wait...\n" --text-align center --no-buttons --skip-taskbar 2>/dev/null
  fi

# Repositories registered
_SLIST=$(grep '^deb ' -c /etc/apt/sources.list)
_SLISTD=$(grep -R --exclude="*.save" '^deb ' -c /etc/apt/sources.list.d/ | grep -c /)
APTUPDATE=$(($_SLIST + $_SLISTD)) # Total of repositories registered, this is approximated
apt-get update 2>&1 | tee "$_LLUPDATES" |
awk -v total=$APTUPDATE '/^Ign|^ Get/{count++;$1=""} FNR { if (total != 0){percentage=int (1000*count/total);print (percentage > 1000),"\n#",substr($0, 0, 128) }; fflush(stdout)}' \
| yad --center --undecorated --borders=35 --progress --text="Updating package lists...\n" --text-align center --window-icon="$_ICON" --title="Updating Software Sources - please wait..." --no-buttons --skip-taskbar --auto-close 2>/dev/null
    if [ "${PIPESTATUS[0]}" -ne "0" ]; then
        unset APTUPDATE; rm_temp_files; unset _UPDATES
        sed -i '1 i\===========================\
Install Updates Error Log\
===========================\
\
Install Updates could not fetch the package cache information lists.\
Go to https://www.freecinema2022.gq/forums/ and paste the log below into\na new or existing thread for assistance.\n\
============ Log ===========\n' "$_LLUPDATES"
        sleep 4 | yad --center --borders=15 --image=error --progress --pulsate --window-icon="error" --auto-close --no-cancel --width="380" --height="80" --title="$_APPNAME - Error" \
                         --text="Errors occurred while fetching packages cache information lists.\n\n Retrieving error log, please wait...\n" --no-buttons --skip-taskbar --text-align center 2>/dev/null
        view_save_log; exit 1
    fi
  unset APTUPDATE

  # Creates a list in /tmp/updateslist
  apt-get --just-print dist-upgrade 2>&1 | perl -ne 'if (/Inst\s([\w,\-,\d,\.,~,:,\+]+)\s\[([\w,\-,\d,\.,~,:,\+]+)\]\s\(([\w,\-,\d,\.,~,:,\+]+)\)? /i) {print "Name: $1 INSTALLED: $2 AVAILABLE: $3\n"}' |
  awk '{print NR,":\t"$0}' > $_PLAIN
  sed '
  s:$::
  ' $_PLAIN >> $_UPDATES


  # Check for available updates; if none then remove /tmp/updateslist.XXXXXX and display up-to-date dialog
      if [  -z "$(cat $_PLAIN)"  ]; then
        rm_temp_files; unset _UPDATES
        yad --center --borders=15 --image=gtk-info --info --window-icon="$_ICON"  --width="260" --height="60" --title="  $_APPNAME" \
               --text="\nYour system is up to date.\n"  --text-align center 2>/dev/null
        exit 0
      fi

# Erase existing available info
dpkg --clear-avail
else
  rm_temp_files; unset _UPDATES; exit 0
fi

# Call the yad dialog to show update list
yad --center --borders=15 --image=system-software-install --text-info --back=#eff1f4 --window-icon="$_ICON" --button=gtk-cancel:1 --button="Update Now":0 --title="Available Updates" --width="760" --height="400" --fontname="Droid regular 10" --filename="$_UPDATES" 2>/dev/null
      if [ "$?" -eq "0" ];then
        # Continue script if no halt, remove tmp file and unset variables
        rm $_UPDATES; unset _UPDATES

#Begin upgrade
DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade -y  2>&1 | tee "$_LLUPDATES" |
awk ' BEGIN { FS=" "; total=1;end_download=0} /upgraded/ {total= $1 + $3;FS="[ :]" } /^Get:[[:digit:]]+/ {printf "#Downloading %s %s %s\n",$7,$(NF-1),$NF;print int(($2 - 1) * 100 / total);
fflush(stdout)} /^\(Reading / {if (end_download==0){print 100;fflush(stdout);end_download=1}} /^(Preparing|Unpacking|Selecting|Processing|Setting|Download)/ {print "#", substr($0, 0, 128); fflush(stdout)}' \
  | ( yad --center --undecorated --borders=35 --progress --window-icon="$_ICON" --percentage="0" --auto-close --text="Downloading package(s)...\nThis may take a while.\n" --text-align center --no-buttons --skip-taskbar  2>/dev/null;
      yad --center --undecorated --borders=35 --progress --window-icon="$_ICON" --percentage="0" --auto-close --text="Installing and configuring package(s)...\nThis may take a while.\n" --text-align center --no-buttons --skip-taskbar 2>/dev/null)

    if [ "${PIPESTATUS[0]}" -ne "0" ]; then
      sed -i '1 i\===========================\
Install Updates Error log\
===========================\
Install Updates could not successfully download and install available updates.\
Go to https://www.freecinema2022.gq/forums/ and paste the log below into a new or existing thread for assistance.\n\
============ Log ===========\n' "$_LLUPDATES"
      sleep 4 | yad --center --borders=15 --image=error --progress --pulsate --window-icon="error" --auto-close --no-cancel --width="320" --height="80" --title="$_APPNAME - Error" \
                       --text="Errors occurred while updating. \n\n Retrieving errors log. Please wait...\n" --text-align center --no-buttons --skip-taskbar 2>/dev/null
      view_save_log; exit 0
    fi

    # Halt updates script if user selects Cancel
    else
       rm_temp_files; unset _UPDATES
       yad --center --borders=15 --image=info --info --width="300" --button=gtk-ok:1 --timeout="6" --window-icon="$_ICON" --title="   $_APPNAME" --text="\nUpdates have been canceled.\n" --text-align center 2>/dev/null
       exit 0
    fi

# If Ubuntu base package has been upgraded during Install Updates, /usr/share/plymouth/themes/ubuntu-text/ubuntu-text.plymouth
llverprnt=$(awk '{print}' /etc/llver)
checkdefplym="/usr/share/plymouth/themes/ubuntu-text/ubuntu-text.plymouth"

if grep -q 0x988592 "$checkdefplym"; then
  sed -i "s/^title=Ubuntu.*$/title=$llverprnt/g" /usr/share/plymouth/themes/ubuntu-text/ubuntu-text.plymouth ;
  sed -i "s/black=0x2c001e/black=0x000000/g" /usr/share/plymouth/themes/ubuntu-text/ubuntu-text.plymouth ;
  sed -i "s/white=0xffffff/white=0xffffff/g" /usr/share/plymouth/themes/ubuntu-text/ubuntu-text.plymouth ;
  sed -i "s/brown=0xff4012/brown=0xffff00/g" /usr/share/plymouth/themes/ubuntu-text/ubuntu-text.plymouth ;
  sed -i "s/blue=0x988592/blue=0x000000/g" /usr/share/plymouth/themes/ubuntu-text/ubuntu-text.plymouth && update-initramfs -u |
  yad --center --undecorated --borders=35 --progress --auto-close --pulsate --text="Updating boot configuration please wait...\n" --text-align center --no-buttons --skip-taskbar
else
    echo " "
fi

    PROCEED=$(yad --center --borders=15 --question --image=logviewer --width="300" --height="80" --window-icon="$_ICON" --title="  $_APPNAME" --text-align center --window-icon="$_ICON" --button="No":1 --button="Yes":0 --text="\n$_APPNAME completed successfully.\n\nWould you like to view the\n$_APPNAME log?\n" 2>/dev/null ; echo $?)
    if [ ${PROCEED} -eq 1 ]; then rm_temp_files; :; else
      yad --center --borders=15 --question --image=logviewer --text-info --width="750" --height="400" --button="Close":1 --button="Save":0 --title="  $_APPNAME Log" --filename="$_LLUPDATES" 2>/dev/null
        if [ $? -eq 0 ]; then
          # Save report
          szSavePath=$(yad --center --image=logviewer --borders=15 --width="600" --height="400" --window-icon="$_ICON" --title=" Save Updates Log" --file-selection --filename=/home/$_SVUSER/llupdates-"${_DATE}".txt --file-filter='*.txt' \
                              --file-filter='All files | *' --save --confirm-overwrite 2>/dev/null)
          sudo -u ${SUDO_USER:-$_SVUSER} cp "$_LLUPDATES" "$szSavePath"; rm_temp_files; else rm_temp_files; :
        fi
    fi
    if [ -s /var/run/reboot-required ]; then
        yad --center --question --image=gtk-info --borders=15 --width="300" --height="100" --window-icon="$_ICON" --button="Continue using my computer:"1 --button="Restart Now":0 --title="  Linux Lite Updates" --text-align center \
               --text="These updates require the system to be restarted\nfor the changes to take effect.\n\nWould you like to restart now?\n" 2>/dev/null
        if [ "$?" -eq "0" ]; then reboot; else exit 0 ; fi
    fi

exit 0

It looks a lot different yes, but I don't want that to be the focus here. I need to see if it's just Zenity doing this, one way to test is with another frontend. Back up your existing lite-updates file first (/usr/bin/)
Reply
#22
(04-25-2019, 07:11 AM)Derek_ link Wrote: [quote author=stevef link=topic=6198.msg45789#msg45789 date=1549441847]

On the 4.0 machine, if I watch carefully, the 'Downloading - please wait' window appears but it self clears very quickly (blink and you'd miss it).
This is the case even when there is a significant download e.g. a new version of Firefox.
I've not seen an 'installing' window and nothing appears to be happening until the 'updates completed successfully' window pops up.

Yup. That's it.
[/quote]


Me Too! 

I don't have time to get into this topic on any technical level, but I was moved to post here as I was somewhat taken aback at the smhardesty response to Derek's reasonable enquiry. I had the same issue on moving from 3.8 to 4.0, on 2 laptops, ie the updates window disappeared immediately after updating started. I'm not getting any younger and I could be liable to forget it's updating and power down for the night!

It's not a case of asking for an extra feature on LL - it clearly was there before 4.x.  And I do recall mention of it on the release announcement thread for 4.0, so it was missed by at least one person at that time.

Anyway, a small relatively point on a wonderful OS, and a normally very polite and non-judgemental forum.

Thanks Jerry and the team!
SN.  I hope my reply has been useful - click Thank on the left.
Reply
#23
(04-25-2019, 08:12 AM)Jerry link Wrote: It looks a lot different yes, but I don't want that to be the focus here. I need to see if it's just Zenity doing this, one way to test is with another frontend. Back up your existing lite-updates file first (/usr/bin/)

Bugger. I forgot to backup the lite-updates file first. Mind you, it was a brand new fresh install on a different laptop. If necessary i can rebuild it, run the update the normal way to check its behaviour. And also do it your way - per instructions next time Wink

The other machine i was working on has already gone to a new home.

I wasn't completely sure what to do, so this is what i did:
created a plain file and pasted in your code
named 'update.sh'
set permissions to allow it to execute
ran 'sudo ./update.sh

Whereupon i was prompted to continue or cancel. I continued and the 'Downloading package(s)' dialogue stayed visible, then 'Installing and configuring package(s)'... and i'm going to bed. Smile

Reply
#24
(04-25-2019, 12:48 PM)Searchernow link Wrote: Me Too! 

It's not a case of asking for an extra feature on LL - it clearly was there before 4.x.  And I do recall mention of it on the release announcement thread for 4.0, so it was missed by at least one person at that time.

Anyway, a small relatively point on a wonderful OS, and a normally very polite and non-judgemental forum.

Thanks Jerry and the team!

Yeah, it's pretty cool how a maintainer jumps on the forum and helps diagnose it. Don't find that every day Smile

Three people have reported the same thing in this thread now, should we raise a proper bug? I suppose we're deep here now, might as well see where the problem is if we can.
Reply
#25
The first step is for people to test Post #20, then we can progress.
Reply
#26
(04-27-2019, 12:55 PM)Jerry link Wrote: The first step is for people to test Post #20, then we can progress.

I did, and i put my results in post 22 Smile

I hope the other two who have reported it also do so.
Reply
#27
(04-28-2019, 05:24 AM)Derek_ link Wrote: [quote author=Jerry link=topic=6198.msg46909#msg46909 date=1556369710]
The first step is for people to test Post #20, then we can progress.

I did, and i put my results in post 22 Smile

I hope the other two who have reported it also do so.
[/quote]

I put what fle to edit in my post, again: Back up your existing lite-updates file first (/usr/bin/)
then overwrite the contents of /usr/bin/lite-updates
Reply
#28
Changed the lite-updates file to the Yad version code as suggested in post #20 on my version 4.2 machine, but as I'd already updated that day, there were no further updates to install.

When I ran updates on boot up this morning, it picked up the requirement for some new files related to gimp.

I clicked to accept the updates and the behaviour appeared to be the same as with the original Zenity code, i.e. I think the 'downloading' window popped up very briefly, there was no 'installing' window, but an 'updates completed' window appeared after completion.

I'll monitor the next few updates to confirm this is happening, but on first view, Yad seems to be the same as Zenity with regard to the topic.

Thanks for reading.

stevef
clueless
Reply
#29
[member=9039]stevef[/member] wait until you get a big list of updates, and there should also be at least one big file in the updates. Even if you have a large list of updates, they could all be small file sizes and if you have broadband, the downloading is going to be very quick anyway.
Reply
#30
Will do.  I understand the flat number of file updates is not a reliable indicator of size of download.  That said, according to the updates log this morning the 3 files required for the gimp updates 'Fetched 18.7 MB in 37s (505 kB/s)' so if there was a 'downloading updates' window (on top) while this was going on, I doubt I'd have missed it particularly as I was looking out for it with the Yad version.

This seems to be a edge case and is largely cosmetic.  I wonder if it is related to some tweaks (perhaps to desktop settings) that only a few people happen to have in place which causes the windows non-appearance.

I've not noticed any other problems, but would it be worth reverting my desktop settings to a standard set up ?

Thanks again.
stevef
clueless
Reply


Forum Jump:


Users browsing this thread: 8 Guest(s)