You are not logged in.

#1 2020-07-26 20:28:22

rbh
Member
From: Sweden/Vasterbotten/Rusfors
Registered: 2016-08-11
Posts: 563

Menu => System 2 errors

Lenovo T440 installed with latest BL 64 bit iso.
Just updated/upgraded. Installed 44 upgrades.

1. Testing BL-menu > System > Printers > Install Printer support

	Reading package lists... Done
  
  There were problems during the update.
  
  Press "d" for details (q to quit) d


ERROR MESSAGE:
Sorry, try again.
------------------------------------
  
  Would you like to quit now, or continue anyway?
  (Be careful!)
  Enter "q" to quit, "c" to continue:

Choosing d, shows no helpfull error message, instead of details. 
"Fat fingers", aborted instead of continuing.

Next run ok.
Nothing in ../log/apt/ to shed light over what happened previous.

2. Menu [...] Install selected packages [...] Install Mhwaveedit
Console windows pops up and disapears before I have a chans to see any text.

"apt install mhwaveedit" works ok and the alternativ to install is gone from the menu.

No more errors in Meny > System found.


// Regards rbh

Offline

#2 2020-07-27 00:31:07

johnraff
nullglob
From: Nagoya, Japan
Registered: 2015-09-09
Posts: 7,149
Website

Re: Menu => System 2 errors

Thanks for the feedback!
At first, I could not reproduce these errors. Both those installations from the System menu went OK on my Lithium VM.

The first "Sorry, try again" looks to me very much like what sudo returns after a wrong password input, and because it came after "There were problems during the update" I think it happened when safeUpdate() (in /usr/lib/bunsen/bl-includes) was called by promptInstall() (same file) from /usr/bin/bl-printing-pipemenu.

What seems to be happening is that if a user mistypes their password, while they are reprompted by apt, the message "Sorry, try again" is treated as an error message, stored up (not displayed to user) and triggers an error exit of the whole function, even if they get the pasword right the second time. This will need some thought to fix...
And thank you for discovering it!

---
As for mhwaveedit, if you have time, I wonder if you could uninstall it, and try installing from the menu one more time?


...elevator in the Brain Hotel, broken down but just as well...
( a boring Japan blog (currently paused), idle Twitterings and GitStuff )

Introduction to the Bunsenlabs Lithium Desktop

Offline

#3 2020-07-27 01:18:11

rbh
Member
From: Sweden/Vasterbotten/Rusfors
Registered: 2016-08-11
Posts: 563

Re: Menu => System 2 errors

If I typed wrong password apt would not start read package lists. It would ask again, three times:

  Updating sources...
[sudo] password for rbh: 
[sudo] password for rbh: 
[sudo] password for rbh: 
  
  There were problems during the update.
  
  Press "d" for details (q to quit) s  Press "d" for details (q to quit) d


ERROR MESSAGE:
Sorry, try again.
Sorry, try again.
sudo: 3 incorrect password attempts
------------------------------------
  
  Would you like to quit now, or continue anyway?
  (Be careful!)
  Enter "q" to quit, "c" to continue:

After removing mhwaveedit, I again have an terminal window that popups and disapere.

What script is the menu calling. what to type in terminal instead?


// Regards rbh

Offline

#4 2020-07-27 02:22:34

johnraff
nullglob
From: Nagoya, Japan
Registered: 2015-09-09
Posts: 7,149
Website

Re: Menu => System 2 errors

^Yes, the wrong-password error is a bit of missing logic in the script. If you feel like testing it, you could paste the code below into /usr/lib/bunsen/common/bl-includes which I think/hope fixes the apt functions.

---
But, mhwaveedit... Does the terminal disappear the same way when trying to install other apps from the same menu?
The pipemenu is /usr/bin/bl-install-pipemenu, so first, you could try

bash -x /usr/bin/bl-install-pipemenu --install mhwaveedit > install-log 2>&1

and have a look at the end of the "install-log" file for hints.

BTW what terminal emulator are you using?

------------------
Here's the proposed new code for bl-includes:

#    bl-includes - Variables and functions commonly used in custom scripts
#    for Bunsen Labs Linux.
#    Copyright (C) 2012 Philip Newborough <corenominal@corenominal.org>
#    Copyright (C) 2013 Aleks-Daniel Jakimenko
#    Copyright (C) 2016  xaos52 <xaos52@gmail.com>
#    Copyright (C) 2015-2020  John Crawley <john@bunsenlabs.org>
#
#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, either version 3 of the License, or
#    (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.

# These functions can be used in user scripts too, by first sourcing this file, eg:
# BL_COMMON_LIBDIR='/usr/lib/bunsen/common'
# if ! . "$BL_COMMON_LIBDIR/bl-includes" 2> /dev/null; then
#     echo $"Error: Failed to locate bl-includes in $BL_COMMON_LIBDIR" >&2
#     exit 1
# fi

# NOTE: Do not source this file in non-Bash shell scripts.
# It uses some "bashisms".

######## jgmenu versions of OB menu creation functions #################

# Associative array menu_content is generated.
# Submenu content is stored under index of its tag,
# 'root' indexes the root menu.

# Put an item in the root menu or any submenu.
# Usage: jgmenuItem tag label command
# Tag 'root' indicates root menu item.
jgmenuItem() {
    _jgmenuSetHeader "$1"
    menu_content[$1]+="\"\"\"$(pangoEscape "${2}")\"\"\"","\"\"\"${3}\"\"\""$'\n'
}

# Add a separator.
# Usage: jgmenuSeparator tag [label]
jgmenuSeparator() {
    _jgmenuSetHeader "$1"
    menu_content[$1]+="^sep($(pangoEscape "${2-}"))"$'\n'
}

# Put a checkout() for a submenu in the root menu or any submenu.
# Usage jgmenuSubmenu tag(parentmenu) tag(submenu) label
jgmenuSubmenu() {
    _jgmenuSetHeader "$1"
    menu_content[$1]+="\"\"\"$(pangoEscape "${3}")\"\"\",^checkout($2)"$'\n'
}

# Print root menu, then submenus.
jgmenuEnd() {
    printf '%b\n' "${menu_content[root]}"
    unset 'menu_content[root]'
    for i in "${!menu_content[@]}"
    do
        printf '%b\n' "${menu_content[$i]}"
    done
    unset 'menu_content'
}

# Initiates array and sets header for submenu when first content is added.
# Do not call this function directly.
# Usage: _jgmenuSetHeader tag
_jgmenuSetHeader(){
    declare -Ag menu_content
    [[ $1 != root && -z ${menu_content[$1]} ]] && {
        menu_content[$1]="^tag($1)"$'\nBack,^back()\n'
    }
}

pangoEscape() {
    local string="${1//&/&amp;}"
    string="${string//</&lt;}"
    string="${string//>/&gt;}"
    printf '%s' "$string"
}

########## end jgmenu functions ################

####### Functions to generate Openbox menus. ###########################

menuStart() {
    echo '    <openbox_pipe_menu>'
}


# Usage: menuItem label command
menuItem() {
    echo "        <item label=\"$(OBlabelEscape "$1")\">
            <action name=\"Execute\">
                <command>
                    $(XMLescape "$2")
                </command>
            </action>
        </item>"
}

# Usage: menuSeparator [label]
menuSeparator() {
    if [[ ${1-} ]]; then
        echo "        <separator label=\"$(OBlabelEscape "$1")\"/>"
    else
        echo '        <separator/>'
    fi
}

# Usage menuSubmenu id label # http://openbox.org/wiki/Help:Menus
menuSubmenu() {
    echo "    <menu id=\"$(XMLescape "$1")\" label=\"$(OBlabelEscape "$2")\">"
}

menuSubmenuEnd() {
    echo '    </menu>'
}

menuEnd() {
    echo '    </openbox_pipe_menu>'
}

# escape special characters
XMLescape() {
    local string="${1//&/&amp;}"
    string="${string//</&lt;}"
    string="${string//>/&gt;}"
    string="${string//\"/&quot;}"
    string="${string//\'/&apos;}"
    printf '%s' "$string"
}
OBlabelEscape() {
    local string="$(XMLescape "$1")"
    printf '%s' "${string//_/__}"
}

########################################################################

# rerun the calling script in terminal if necessary
# Usage: terminalCheck [ -T title ] [arguments...]
terminalCheck() {
    if ! [[ -t 0 && -t 1 && -t 2 ]]; then # not attached to terminal
        if [[ -n $DISPLAY ]]; then # running X
            local -a termcmd args
            local termname
            if [[ ${1-} = '-T' ]];then
                local title=${2-}
                shift 2
            fi
            termname=$( readlink /etc/alternatives/x-terminal-emulator )
            termname=${termname##*/}
            badterm_msg="$0: $termname is not supported.
Please choose a different x-terminal-emulator."
            case $termname # cope with terminal inconsistencies
            in
                lxterminal)
                    termcmd=(lxterminal --no-remote) # otherwise lxterminal does not start a new process
                    [[ -n $title ]] && termcmd+=(-T "$title")
                    args=(-e)
                    ;;
                mate-terminal.wrapper)
                    termcmd=(mate-terminal --disable-factory) # mate-terminal.wrapper does not support --disable-factory
                    [[ -n $title ]] && termcmd+=(-t "$title") # but mate-terminal needs -t for -T option
                    args=(-x)
                    ;;
                gnome-terminal.wrapper)
                    termcmd=(gnome-terminal --wait) # gnome-terminal.wrapper does not support --wait
                    [[ -n $title ]] && termcmd+=(-t "$title") # but gnome-terminal needs -t for -T option
                    args=(--) # -x is deprecated
                    ;;
                tilix.wrapper)
                    termcmd=(tilix --new-process) # tilix.wrapper does not support --new-process
                    [[ -n $title ]] && termcmd+=(-t "$title") # but tilix needs -t for -T option
                    args=(-e)
                    ;;
                qterminal|terminology)
                    echo "$badterm_msg" >&2
                    exit 1
                    ;;
                *)
                    termcmd=(x-terminal-emulator) # the normal case
                    [[ -n $title ]] && termcmd+=(-T "$title")
                    args=(-e)
                    ;;
            esac
            args+=("$0" "$@")
            exec "${termcmd[@]}" "${args[@]}"
        else
            echo "$0: no terminal" >&2
            exit 1
        fi
    fi
}

# Usage: createFlag filename
createFlag() {
    mkdir -p "$HOME/.config/bunsen"
    touch "$HOME/.config/bunsen/$1"
}

# Check the connection by downloading a file from ftp.debian.org. No disk space used.
# Usage: connectiontest [attempts]
# If attempt count is not specified or 0, then it will loop forever and exit(!) your main program with 1 exit status.
connectiontest() {
    local TEXT_CHECKING='Checking internet connection...'
    local TEXT_FAILED='Internet connection test failed!'
    local TEXT_ASK_RETRY=$'\n\nThis script requires a working internet connection. Please configure your internet connection, then hit "Enter" to continue, else hit "q" to quit.'
    local TEXT_ABORT='Script aborted.'
    local TEXT_OK='Internet connection test passed!'

    local -i i attempts=${1-0}
    for (( i=0; i < attempts || attempts == 0; i++ )); do
        say "$TEXT_CHECKING"
        if wget -O - 'http://ftp.debian.org/debian/README' &> /dev/null; then
            say "$TEXT_OK" 1
            return 0
        fi
        say "$TEXT_FAILED"
        if (( i == attempts - 1 )); then # if last attempt
            return 1
        elif prompt "$TEXT_ASK_RETRY" Q; then # if user wants to quit
            say "$TEXT_ABORT" 2
            (( attempts == 0 )) && exit 1 || return 1
        fi
        tput clear
    done
}

# Check for availability of commands used in script.
# Usage: declareDependencies command [command...]
declareDependencies(){
    local missing_commands=() i=
    for i in "$@"
    do
        hash "$i" 2>/dev/null || missing_commands+=(" $i")
    done
    [[ ${missing_commands[0]} ]] && errorExit "This script requires the following commands: ${missing_commands[*]}
Please install the packages containing the missing commands
and rerun the script."
}

########################################################################
# User interface functions.

# Usage: say text [delayAfterText|pause]
say() {
    local width=$(tput cols 2>/dev/tty)
    fold -s -w $((width - 3)) <<< "${1-}" | sed 's/^/  /' # wraps text nicely and adds two leading spaces
    if [[ ${2-} = 'pause' ]]
    then
        echo $'\nPress any key to continue.'
        read -srn1
    else
        sleep "${2:-0}"
    fi
}

# Usage errorExit message [details]
errorExit() {
    say $'\n'"$1"$'\n' '1' >&2
    [[ ${2-} ]] && {
        while true
        do
            local REPLY
            read -rn1 -p '  Press "d" for details (q to quit) '
            [[ ${REPLY^} = Q ]] && exit 1
            [[ ${REPLY^} = D ]] && {
                echo $'\n\n'
                #tput setaf 1
                echo "ERROR MESSAGE:
$2
------------------------------------" >&2
                #tput sgr0
                say "
Would you like to quit now, or continue anyway?
(Be careful!)
Enter \"q\" to quit, \"c\" to continue:
"
                read -r
                [[ ${REPLY^} = Q ]] && exit 1
                [[ ${REPLY^} = C ]] && return 0
            }
        done
    }
    say 'Press any key to exit.'
    read -srn1
    exit 1
}

# Usage: prompt text [ Y | N | Q | <string> ]
prompt() {
    local answer prompt default
    if [[ ${2-} && ${2^} = Q ]]; then
        while true; do
            read -srn1 -p "$1" answer
            echo
            [[ ${answer^} = Q ]] && return 0
            [[ ! $answer ]] && return 1
        done
    fi

    if [[ ! ${2-} || ${2^} = Y ]]; then
        prompt='Y/n'
        default='Y'
    elif [[ ${2^} = N ]]; then
        prompt='y/N'
        default='N'
    else
        prompt=
        default=
    fi

    while true; do
        read -r -p "$1 ${prompt:+[$prompt] }" answer

        if [[ ! $prompt && ! $default ]]; then
            if [[ $answer = "${2-}" ]]; then
                echo
                return 0
            elif [[ ${answer^} = Q ]]; then
                echo
                return 1
            else
                continue
            fi
        fi

        [[ ! $answer ]] &&
            answer=$default

        if [[ ${answer^} = Y || ${answer^^} = YES ]]; then
            echo
            return 0
        elif [[ ${answer^} = N || ${answer^^} = NO ]]; then
            echo
            return 1
        fi
    done
}

# Usage: promptInstall name description [--apt-get-option] package [package...]
# To have some defined function - functionname - run first, use:
# promptInstall --setup functionname name desc...
promptInstall() {
    local setupFunction=
    if [[ $1 = '--setup' ]]; then
        if [[ -n ${2-} && $(type -t "$2") = 'function'  ]]; then
            setupFunction="$2"
            shift 2
        else
            say "Error: ${2-} is not a function."
            return 1
        fi
    fi

    tput clear
    local title="INSTALL ${1^^}"
    say "
$title
${title//?/-}

$2
"

    prompt '  Run the installer now?' || return 1

    tput clear
    connectiontest || return 1

    if [[ -n $setupFunction ]]; then
        "$setupFunction" || return 1 # run setup function if it exists
    fi

    tput clear
    say 'Updating sources...' 1
    safeUpdate || say 'Continuing in spite of update problems...' 3

    tput clear
    say 'Installing package...' 1
    safeInstall "${@:3}" || return 1

    tput clear
    say "
$1 has been installed successfully.

Hit any key to exit..."
    read -srn1
    return 0
}

########################################################################

# Package handling functions.

# outputs pin value and origin repo url if package is installed.
# returns 1 if package is not installed
# Usage: checkOrigin package
checkOrigin() {
    apt-cache policy "$1" | sed -nr '/\*\*\*/ {n;s/^[ \t]*([0-9]+[ \t]+[^ \t]+).*$/\1/p;q0};${q1}'
}

# outputs version of installed package
# returns 1 if package is not installed
# Usage: checkVersion package
checkVersion() {
    #apt-cache policy $1 | sed -nr '/\*\*\*/ {s/^[ \t]*\*\*\*[ \t]+([0-9a-z:.+~-]+)[ \t]+.*$/\1/p;q0};${q1}'
    dpkg-query --show --showformat='${Version}' "$1" 2>/dev/null
    }

# returns success if all packages are already installed
# Usage: allInstalled package [package...]
allInstalled() {
    local pkg=
    for pkg in "$@"
    do
        [[ $(dpkg-query --show --showformat='${db:Status-Abbrev;2}' "$pkg" 2>/dev/null) = ii ]] || return 1
        # fast but returns false positive if files remain in /etc
        #[[ -f /var/lib/dpkg/info/${pkg}.list ]] || return 1
    done
    return 0
}

# Apt-get functions.

# apt-get update, exit if error message.
# safeUpdate --ignore 'string' to ignore certain error message
safeUpdate() {
    local ignore_string=
    local ignore_string_pw='Sorry, try again.' # message if password mistyped
    [[ ${1-} = '--ignore' ]] && {
        ignore_string="${2-}"
    }
    local apt_error
    if exec 3>&1; apt_error=$(LC_MESSAGES=C sudo apt-get update 2>&1 1>&3) && {
            [[ -z "$apt_error" ]] || ! grep -iqEv "(${ignore_string_pw:-$^}|${ignore_string:-$^}|^$)" <<<"$apt_error"
            }
    then
        exec 3>&-
        say 'Finished update' 1
        return 0
    else
        exec 3>&-
        errorExit 'There were problems during the update.' "$apt_error"
        return 1
    fi
}

# apt-get upgrade, exit if error message.
# safeUpgrade [--dist-upgrade (for dist-upgrade)] [--apt-get-option]
safeUpgrade() {
    local cmd='upgrade'
    [[ ${1-} = '--dist-upgrade' ]] && {
        cmd='dist-upgrade'
        shift
    }
    local ignore_string_pw='Sorry, try again.' # message if password mistyped
    local ignore_string1='Extracting templates from packages: 100%' # apt sends this to stderr!
    local ignore_string2='Retrieving bug reports... Done' # apt-listbugs sends this to stderr!
    local ignore_string3='Parsing Found/Fixed information... Done' # apt-listbugs sends this to stderr!
    local apt_error
    if exec 3>&1; apt_error=$(LC_MESSAGES=C sudo apt-get $cmd "${@}" 2>&1 1>&3) && {
            [[ -z "$apt_error" ]] || ! grep -iqEv "(${ignore_string_pw:-$^}|${ignore_string1:-$^}|${ignore_string2:-$^}|${ignore_string3:-$^}|^$)" <<<"$apt_error"
            }
    then
        exec 3>&-
        say 'Finished upgrade.' 1
        return 0
    else
        exec 3>&-
        errorExit 'There were problems during the upgrade.' "${apt_error:-Upgrade Aborted}"
        return 1
    fi
}

# Usage safeInstall [--apt-get-option] package [package...]
safeInstall() {
    local ignore_string_pw='Sorry, try again.' # message if password mistyped
    local ignore_string1='Extracting templates from packages: 100%' # apt sends this to stderr!
    local ignore_string2='Retrieving bug reports... Done' # apt-listbugs sends this to stderr!
    local ignore_string3='Parsing Found/Fixed information... Done' # apt-listbugs sends this to stderr!
    local apt_error
    if exec 3>&1; apt_error=$(LC_MESSAGES=C sudo apt-get install "${@}" 2>&1 1>&3) && {
            [[ -z "$apt_error" ]] || ! grep -iqEv "(${ignore_string_pw:-$^}|${ignore_string1:-$^}|${ignore_string2:-$^}|${ignore_string3:-$^}|^$)" <<<"$apt_error"
            }
    then
        exec 3>&-
        say 'Installation finished sucessfully.' 1
        return 0
    else
        exec 3>&-
        errorExit "There were problems installing ${*}" "${apt_error:-Install Aborted}"
        return 1
    fi
}

# Usage safeRemove [--apt-get-option] package [package...]
safeRemove() {
    local ignore_string_pw='Sorry, try again.' # message if password mistyped
    local ignore_string1='Extracting templates from packages: 100%' # apt sends this to stderr!
    local ignore_string2='Retrieving bug reports... Done' # apt-listbugs sends this to stderr!
    local ignore_string3='Parsing Found/Fixed information... Done' # apt-listbugs sends this to stderr!
    local apt_error
    if exec 3>&1; apt_error=$(LC_MESSAGES=C sudo apt-get remove "${@}" 2>&1 1>&3) && {
            [[ -z "$apt_error" ]] || ! grep -iqEv "(${ignore_string_pw:-$^}|${ignore_string1}|${ignore_string2}|${ignore_string3}|^$)" <<<"$apt_error"
            }
    then
        exec 3>&-
        say "Successfully removed ${*}" 1
        return 0
    else
        exec 3>&-
        errorExit "There were problems removing ${*}" "${apt_error:-Remove Aborted}"
        return 1
    fi
}

...elevator in the Brain Hotel, broken down but just as well...
( a boring Japan blog (currently paused), idle Twitterings and GitStuff )

Introduction to the Bunsenlabs Lithium Desktop

Offline

#5 2020-07-27 08:45:23

rbh
Member
From: Sweden/Vasterbotten/Rusfors
Registered: 2016-08-11
Posts: 563

Re: Menu => System 2 errors

On an Lenovo L440:

I pasted the code and as user run "bash -x /usr/bin/bl-install-pipemenu --install mhwaveedit > install-log 2>&1".

Got error "bash: install-log: Permission denied"
Touching install-log first, made the command continue and install. That code was only for the password check. I have not got the install-error again without the code change...

On this L440, when runing "bash -x /usr/bin/bl-install-pipemenu --install mhwaveedit > install-log 2>&1" in terminal, it updates sources, ask for pasword and install, without any error!
After removing mhwaveedit and  installing from the menu, the terminal pops up and disapear immedeatley.

I do not think it matters which terminal i use. On this L440, terminator is default, On the T440, it is urxvt-unicode.

I have some more hw/virtuls, I will test on also, but I expect the will behave the same.


// Regards rbh

Offline

#6 2020-07-27 21:39:46

Naik
Member
From: Lipsia
Registered: 2015-10-03
Posts: 257

Re: Menu => System 2 errors

^ I get the same "pop-up and disapear" terminal window here, when I use the menu and when I run the command provided in terminator.
The log:

+ [[ un = ii ]]
+ return 1
+ AppStatus[$curApp]=
+ [[ --install = --install ]]
+ setup_args=()
+ packageName=mhwaveedit
+ appName=Mhwaveedit
+ setupFunctionName=setupMhwaveedit
++ type -t setupMhwaveedit
+ [[ '' = \f\u\n\c\t\i\o\n ]]
+ case "$packageName" in
+ desc='This script will install Mhwaveedit.'
+ args=("$packageName")
+ bl-install --name Mhwaveedit --message 'This script will install Mhwaveedit.' mhwaveedit
+ exit 0

The terminal emulator:

┌─[naik@GerryTSSD ~]
└──$ export LANG=C && update-alternatives --display x-terminal-emulator
x-terminal-emulator - manual mode
  link best version is /usr/local/bin/termite
  link currently points to /usr/bin/terminator
  link x-terminal-emulator is /usr/bin/x-terminal-emulator
  slave x-terminal-emulator.1.gz is /usr/share/man/man1/x-terminal-emulator.1.gz
/usr/bin/gnome-terminal.wrapper - priority 40
  slave x-terminal-emulator.1.gz: /usr/share/man/man1/gnome-terminal.1.gz
/usr/bin/koi8rxterm - priority 20
  slave x-terminal-emulator.1.gz: /usr/share/man/man1/koi8rxterm.1.gz
/usr/bin/lxterm - priority 30
  slave x-terminal-emulator.1.gz: /usr/share/man/man1/lxterm.1.gz
/usr/bin/terminator - priority 50
  slave x-terminal-emulator.1.gz: /usr/share/man/man1/terminator.1.gz
/usr/bin/urxvt - priority 20
  slave x-terminal-emulator.1.gz: /usr/share/man/man1/urxvt.1.gz
/usr/bin/uxterm - priority 20
  slave x-terminal-emulator.1.gz: /usr/share/man/man1/uxterm.1.gz
/usr/bin/xterm - priority 20
  slave x-terminal-emulator.1.gz: /usr/share/man/man1/xterm.1.gz
/usr/local/bin/termite - priority 60

I hope this helps..

naik --greetz


"Kaum macht [Mensch]* es richtig, funktioniert es sofort!"
BL-Kitchen on GitHub

Offline

#7 2020-07-28 06:18:29

johnraff
nullglob
From: Nagoya, Japan
Registered: 2015-09-09
Posts: 7,149
Website

Re: Menu => System 2 errors

Thanks to both of you for the feedback. I still can't reproduce this, but there's clearly a problem here.

First - the code I posted to replace /usr/lib/bunsen/common/bl-includes was intended to fix the issue where if you type a wrong password any script apt function fails with an error, even if you get it right the second time. That issue is OK now?

rbh wrote:

I do not think it matters which terminal i use.

Actually, it does. That's why I asked the question. smile

It might surprise you to hear that different terminal emulators behave differently in subtle ways. In particular, for scripts like this which are choosing whether to pop up a new terminal or not, depending on whether there is a controlling terminal or not, there have been some subtle errors in the past when switching between lxterminal, terminator and rxvt-unicode. Not all terminals properly follow the x-terminal-emulator standards. Some install a <terminal-name>.wrapper script to work round that, but which disables some other function, like starting a new terminal process, not a fork. (This was needed.)

There is a function terminalCheck() which opens a new terminal and runs the current script in it, but only if the script isn't already running in a terminal.
Here:
https://github.com/BunsenLabs/bunsen-co … ludes#L147
You can see that it's testing for different terminal emulators and sending them different command line options. This function started off very simple, and it's a pity it had to grow like this, but if all terminal emulators followed the standards it wouldn't be necessary.

But... terminator is supposed to be OK (and tested OK for me just now). And rxvt-unicode has always behaved well for me.

Can I ask a few more questions to either/both of you?

1) Does the 'instant popup then disappear' issue occur if x-terminal-emulator is changed to a different terminal emulator? (eg urxvt)
2) Does the same issue occur for other entries in the install menu? (Try something small like dillo.)
3) The command which bl-install-pipemenu is using is a script called bl-install (/usr/bin/bl-install).
What happens if you run this code:

bl-install --name Mhwaveedit --message 'This script will install Mhwaveedit.' mhwaveedit

in a terminal?
4) What happens if you open gmrun (Alt+F2) and paste the same code in there? (The difference is that in the latter case there's no controlling terminal, so one should pop up.)
5) How about in a terminal trying

bash -x /usr/bin/bl-install --name Mhwaveedit --message 'This script will install Mhwaveedit.' mhwaveedit

Any hints?

rbh wrote:

Got error "bash: install-log: Permission denied"

Where are you running this command? If in your home directory then you should have permission to create and write to a file.


...elevator in the Brain Hotel, broken down but just as well...
( a boring Japan blog (currently paused), idle Twitterings and GitStuff )

Introduction to the Bunsenlabs Lithium Desktop

Offline

#8 2020-07-29 20:41:00

Naik
Member
From: Lipsia
Registered: 2015-10-03
Posts: 257

Re: Menu => System 2 errors

1) setting x-terminal emulator to:
      termite -> nothing happens at all
      rxvt-unicode -> works well
      termiantor -> instant popup then disappear
      lxterminal -> works well
2) trying to install Dillo looks the same (instant popup then disappear with terminator)
3) running smooth in terminator
4) instant popup then disappear with terminator
5) terminator:

+ local 'title=INSTALL MHWAVEEDIT'
+ say '
INSTALL MHWAVEEDIT
------------------

This script will install Mhwaveedit.
'
++ tput cols
+ local width=96
+ fold -s -w 93
+ sed 's/^/  /'
  
  INSTALL MHWAVEEDIT
  ------------------
  
  This script will install Mhwaveedit.
  
+ [[ '' = \p\a\u\s\e ]]
+ sleep 0
+ prompt '  Run the installer now?'
+ local answer prompt default
+ [[ -n '' ]]
+ [[ ! -n '' ]]
+ prompt=Y/n
+ default=Y
+ true
+ read -r -p '  Run the installer now? [Y/n] ' answer
  Run the installer now? [Y/n] 

running your commands directly in term works for any I tested (as listed above) running it with gmrun gives the same as opening it from the menu (eg. nothing for termite)


"Kaum macht [Mensch]* es richtig, funktioniert es sofort!"
BL-Kitchen on GitHub

Offline

#9 2020-07-30 01:49:04

johnraff
nullglob
From: Nagoya, Japan
Registered: 2015-09-09
Posts: 7,149
Website

Re: Menu => System 2 errors

Thanks Naik, that's very helpful. It looks as if Terminator is at least one of the problem zones. I'll do a bit more poking around and try to reproduce the issue.

(Termite - that's not available as a Debian Package, so let's hold it for later, if at all...)


...elevator in the Brain Hotel, broken down but just as well...
( a boring Japan blog (currently paused), idle Twitterings and GitStuff )

Introduction to the Bunsenlabs Lithium Desktop

Offline

#10 2020-07-30 06:58:35

johnraff
nullglob
From: Nagoya, Japan
Registered: 2015-09-09
Posts: 7,149
Website

Re: Menu => System 2 errors

Anyway, I think the easiest way to test for this might be to open gmrun with Alt+F2 and type in:

bl-install dillo

(or any other package).
If the popup appears, it's working.
(If the package is already installed the terminal popup should show a message and close after a couple of seconds.)

Try this with x-terminal-emulator set to various terminals on your system.

Even with Terminator it works OK on my 32bit laptop and all my VMs... vyJoYBP.gif
But with Terminator I do see a brief white flash as if some window had opened and quickly closed, just before the popup appears. That might be a hint...


...elevator in the Brain Hotel, broken down but just as well...
( a boring Japan blog (currently paused), idle Twitterings and GitStuff )

Introduction to the Bunsenlabs Lithium Desktop

Offline

#11 2020-07-30 21:12:35

hhh
Meep!
Registered: 2015-09-17
Posts: 10,242
Website

Re: Menu => System 2 errors

I'm not seeing a problem using the Lithium 64 bit ISO from here...

https://forums.bunsenlabs.org/viewtopic … 85#p101985

Fresh install, fully updated. lxterminal is the only Debian Alternative OOTB. Install terminator, it automatically is set as the default terminal in Alternatives, S+t and Menu>Terminal work fine. 'Menu>Settings>Install Selected Packages>...' opens the install scripts in terminator as expected.

I can't confirm this bug.

Offline

#12 2020-07-31 05:35:04

johnraff
nullglob
From: Nagoya, Japan
Registered: 2015-09-09
Posts: 7,149
Website

Re: Menu => System 2 errors

It's still mysterious, but if two users are getting it, there must be something going on.
@Naik and @rbh, what version of terminator are you using?


...elevator in the Brain Hotel, broken down but just as well...
( a boring Japan blog (currently paused), idle Twitterings and GitStuff )

Introduction to the Bunsenlabs Lithium Desktop

Offline

#13 2020-07-31 09:03:22

rbh
Member
From: Sweden/Vasterbotten/Rusfors
Registered: 2016-08-11
Posts: 563

Re: Menu => System 2 errors

johnraff wrote:

It's still mysterious, but if two users are getting it, there must be something going on.
@Naik and @rbh, what version of terminator are you using?

I'm mostly using three pc's. One desktop; Wassus (with many VM's) and two lenovos, L440 (som VM's) and T440.

I have until some moths ago only used terminator. Are still evaluating LX-terminal and rxvt-unicode.

I have tried using the menu alternative with all thre as default terminal (BTW, would be nice if seting/listing termninal also was included bl-alternatives).

Runing menuslternativ Install Dillo, works for me on L440 with al thre terminals as default.

Running "bl-install dillo" in terminal does not pop up new terminal, simple run the installation in sam terminal it was started.

I'm getting handimen home to help lay new roof next week and has al lot of work to do outside  before. On top of that, my back started to ache and heavy work has to be done very slov.
  Will not have time to do more extensive debugging just now. Sorry.

Last edited by rbh (2020-07-31 09:04:12)


// Regards rbh

Offline

#14 2020-07-31 11:16:32

johnraff
nullglob
From: Nagoya, Japan
Registered: 2015-09-09
Posts: 7,149
Website

Re: Menu => System 2 errors

@rbh don't worry, if we ever get to the bottom of this it will be a post-release fix anyway, so there's no hurry. Take it easy and don't make your back any worse!

rbh wrote:

BTW, would be nice if seting/listing termninal also was included bl-alternatives

It's not necessary because the Debian alternative x-terminal-emulator already exists - the bl-alternatives are just an addition to the Debian mechanism. See Menu>System>Edit Debian Alternatives.


...elevator in the Brain Hotel, broken down but just as well...
( a boring Japan blog (currently paused), idle Twitterings and GitStuff )

Introduction to the Bunsenlabs Lithium Desktop

Offline

#15 2020-07-31 19:38:25

Naik
Member
From: Lipsia
Registered: 2015-10-03
Posts: 257

Re: Menu => System 2 errors

┌─[naik@GerryTSSD ~]
└──$ terminator -v
terminator 1.91

"Kaum macht [Mensch]* es richtig, funktioniert es sofort!"
BL-Kitchen on GitHub

Offline

#16 2020-08-01 08:34:28

rbh
Member
From: Sweden/Vasterbotten/Rusfors
Registered: 2016-08-11
Posts: 563

Re: Menu => System 2 errors

johnraff wrote:
rbh wrote:

BTW, would be nice if seting/listing termninal also was included bl-alternatives

It's not necessary because the Debian alternative x-terminal-emulator already exists - the bl-alternatives are just an addition to the Debian mechanism. See Menu>System>Edit Debian Alternatives.

No, it is not necessary, but nice to include terminal ap in bl-alternatives. Yes, galternatives can be used. It can be used instead of bl-alternatives. I've understodd that bl-alternatives, is used to easy switch default app among the most common apps.

It would be nice if terminal was included.


// Regards rbh

Offline

#17 2020-08-04 01:36:47

johnraff
nullglob
From: Nagoya, Japan
Registered: 2015-09-09
Posts: 7,149
Website

Re: Menu => System 2 errors

^Sorry, I could have explained it more clearly.

bl-alternatives is not a separate thing, it just adds four extra app aliases to the Debian alternatives system. Because the "real" Debian apps automatically add themselves to the system, apps that could belong to a bl-* group have to replicate a bit of the work of detecting when new potential members of eg bl-file-manager are added to the system. The bl-alternative script checks for such apps and does that work, if necessary.

In the case of x-terminal-emulator, terminal emulators that could be added are already registering themselves with the Debian alternative system, along with a (quite arbitarily chosen) priority number. There's no further work for the bl-alternatives script to do in this case.

Users can manage bl-alternatives along with all the regular Debian alternatives like x-terminal-emulator with the cli app 'update-alternatives'.

galternatives is a GUI tool for managing Debian alternatives, including the four bl-* additions. (It's not a BL creation btw.)


...elevator in the Brain Hotel, broken down but just as well...
( a boring Japan blog (currently paused), idle Twitterings and GitStuff )

Introduction to the Bunsenlabs Lithium Desktop

Offline

#18 Yesterday 22:26:40

rbh
Member
From: Sweden/Vasterbotten/Rusfors
Registered: 2016-08-11
Posts: 563

Re: Menu => System 2 errors

Following commands, in terminal, both rxvt-unicode and lxterminal, gives the same error, on several computers, both totaly freshly installed and boxes that have been used some time:

$ bash -x /usr/bin/bl-install --name Mhwaveedit --message 'This script will install Mhwaveedit.' mhwaveedit
$ bl-install --name Mhwaveedit --message 'This script will install Mhwaveedit.' mhwaveedit
$ bl-install-pipemenu --install mhwaveedit
$ bl-install --install mhwaveedit

  mhwaveedit is not a valid Debian package name
  
bl-install: a wrapper round the promptInstall() function in bl-includes

Usage:  bl-install -n "name of app(s)" -m "message text" -f "/path/to/file" --setup "function_name" [apt option] package [package...]

    -h --help                   show this message and exit
    -n --name       <string>    descriptive name of package(s) to be installed
    -m --message    <string>    message to display to user before installing
    -f --file       <filepath>  file to hold return value of script on exit
    --setup         <function_name>  function to run before installation

Specified options may be provided in any order.
If -n, -m or -f are used, they must be followed by an argument.
If -n or -m are absent they will be generated automatically.
If -f is set, the script will write its exit return value there,
so a calling script can test for success.
If --setup is used, <function_name> must exist as a function in the
environment, so will probably have to be exported by the calling script.

All other arguments are taken as apt-get options or package names to install.

This script will open a terminal window to run the installer,
and write the return value to a temporary file. (This is needed because
there is no other way to query the return value of a process which
was run in a new terminal.)
This is useful if launching from a GUI, but in a script known to be
already running in a terminal, it is not needed;
the promptInstall() function from bl-includes is enough.

Command with logging. Note, that I with this output, tested to put mhwaedidiror last instead of first on line 39 in bl-install-pipemenu. It did no difference:

$ bash -x /usr/bin/bl-install-pipemenu --install mhwaveedit > install-log 2>&1
+ HELP='    bl-install-pipemenu a jgmenu Pipe Menu for installing applications
    It should normally be called from a jgmenu menu.

Options (usually passed from the menu):
    -h --help   show this message
    --install   install a package
    (the package must be in one of the app lists in this file)

    If bl-install-pipemenu is called with no options (the usual method),
    it will output a csv jgmenu pipemenu for installing applications.

'
+ BROWSERS=('firefox-esr' 'chromium' 'dillo')
+ TERMS=('rxvt-unicode' 'terminator' 'mate-terminal' 'gnome-terminal' 'xfce4-terminal' 'lxterminal')
+ MM_APPS=('mpv' 'vlc' 'audacious' 'smplayer' 'gnome-mpv')
+ MM_EDITORS=('audacity' 'openshot' 'mhwaveedit')
+ MM_UTILS=('xfburn' 'brasero' 'k3b' 'gtk-recordmydesktop')
+ GRAPHICS_APPS=('mirage' 'viewnior' 'gpicview' 'ristretto' 'geeqie' 'gthumb' 'gimp' 'inkscape')
+ GRAPHICS_SCROTS=('xfce4-screenshooter' 'scrot')
+ LO_APPS=('libreoffice-writer' 'libreoffice-calc' 'libreoffice-impress' 'libreoffice-draw' 'libreoffice-base' 'libreoffice')
+ declare -A pkg_cmd
+ pkg_cmd[rxvt-unicode]=urxvt
+ for i in "$@"
+ case "$i" in
+ for i in "$@"
+ case "$i" in
+ BL_COMMON_LIBDIR=/usr/lib/bunsen/common
+ . /usr/lib/bunsen/common/bl-includes
+ declare -A AppName AppStatus
+ for curApp in "${BROWSERS[@]}" "${TERMS[@]}" "${MM_APPS[@]}" "${MM_EDITORS[@]}" "${MM_UTILS[@]}" "${GRAPHICS_APPS[@]}" "${GRAPHICS_SCROTS[@]}"
+ words=(${curApp//-/ })
+ AppName[$curApp]='Firefox Esr'
+ command=firefox-esr
+ hash firefox-esr
+ AppStatus[$curApp]=installed
+ for curApp in "${BROWSERS[@]}" "${TERMS[@]}" "${MM_APPS[@]}" "${MM_EDITORS[@]}" "${MM_UTILS[@]}" "${GRAPHICS_APPS[@]}" "${GRAPHICS_SCROTS[@]}"
+ words=(${curApp//-/ })
+ AppName[$curApp]=Chromium
+ command=chromium
+ hash chromium
+ AppStatus[$curApp]=installed
+ for curApp in "${BROWSERS[@]}" "${TERMS[@]}" "${MM_APPS[@]}" "${MM_EDITORS[@]}" "${MM_UTILS[@]}" "${GRAPHICS_APPS[@]}" "${GRAPHICS_SCROTS[@]}"
+ words=(${curApp//-/ })
+ AppName[$curApp]=Dillo
+ command=dillo
+ hash dillo
+ AppStatus[$curApp]=installed
+ for curApp in "${BROWSERS[@]}" "${TERMS[@]}" "${MM_APPS[@]}" "${MM_EDITORS[@]}" "${MM_UTILS[@]}" "${GRAPHICS_APPS[@]}" "${GRAPHICS_SCROTS[@]}"
+ words=(${curApp//-/ })
+ AppName[$curApp]='Rxvt Unicode'
+ command=urxvt
+ hash urxvt
+ AppStatus[$curApp]=installed
+ for curApp in "${BROWSERS[@]}" "${TERMS[@]}" "${MM_APPS[@]}" "${MM_EDITORS[@]}" "${MM_UTILS[@]}" "${GRAPHICS_APPS[@]}" "${GRAPHICS_SCROTS[@]}"
+ words=(${curApp//-/ })
+ AppName[$curApp]=Terminator
+ command=terminator
+ hash terminator
+ AppStatus[$curApp]=installed
+ for curApp in "${BROWSERS[@]}" "${TERMS[@]}" "${MM_APPS[@]}" "${MM_EDITORS[@]}" "${MM_UTILS[@]}" "${GRAPHICS_APPS[@]}" "${GRAPHICS_SCROTS[@]}"
+ words=(${curApp//-/ })
+ AppName[$curApp]='Mate Terminal'
+ command=mate-terminal
+ hash mate-terminal
+ AppStatus[$curApp]=
+ for curApp in "${BROWSERS[@]}" "${TERMS[@]}" "${MM_APPS[@]}" "${MM_EDITORS[@]}" "${MM_UTILS[@]}" "${GRAPHICS_APPS[@]}" "${GRAPHICS_SCROTS[@]}"
+ words=(${curApp//-/ })
+ AppName[$curApp]='Gnome Terminal'
+ command=gnome-terminal
+ hash gnome-terminal
+ AppStatus[$curApp]=
+ for curApp in "${BROWSERS[@]}" "${TERMS[@]}" "${MM_APPS[@]}" "${MM_EDITORS[@]}" "${MM_UTILS[@]}" "${GRAPHICS_APPS[@]}" "${GRAPHICS_SCROTS[@]}"
+ words=(${curApp//-/ })
+ AppName[$curApp]='Xfce4 Terminal'
+ command=xfce4-terminal
+ hash xfce4-terminal
+ AppStatus[$curApp]=installed
+ for curApp in "${BROWSERS[@]}" "${TERMS[@]}" "${MM_APPS[@]}" "${MM_EDITORS[@]}" "${MM_UTILS[@]}" "${GRAPHICS_APPS[@]}" "${GRAPHICS_SCROTS[@]}"
+ words=(${curApp//-/ })
+ AppName[$curApp]=Lxterminal
+ command=lxterminal
+ hash lxterminal
+ AppStatus[$curApp]=installed
+ for curApp in "${BROWSERS[@]}" "${TERMS[@]}" "${MM_APPS[@]}" "${MM_EDITORS[@]}" "${MM_UTILS[@]}" "${GRAPHICS_APPS[@]}" "${GRAPHICS_SCROTS[@]}"
+ words=(${curApp//-/ })
+ AppName[$curApp]=Mpv
+ command=mpv
+ hash mpv
+ AppStatus[$curApp]=installed
+ for curApp in "${BROWSERS[@]}" "${TERMS[@]}" "${MM_APPS[@]}" "${MM_EDITORS[@]}" "${MM_UTILS[@]}" "${GRAPHICS_APPS[@]}" "${GRAPHICS_SCROTS[@]}"
+ words=(${curApp//-/ })
+ AppName[$curApp]=Vlc
+ command=vlc
+ hash vlc
+ AppStatus[$curApp]=installed
+ for curApp in "${BROWSERS[@]}" "${TERMS[@]}" "${MM_APPS[@]}" "${MM_EDITORS[@]}" "${MM_UTILS[@]}" "${GRAPHICS_APPS[@]}" "${GRAPHICS_SCROTS[@]}"
+ words=(${curApp//-/ })
+ AppName[$curApp]=Audacious
+ command=audacious
+ hash audacious
+ AppStatus[$curApp]=installed
+ for curApp in "${BROWSERS[@]}" "${TERMS[@]}" "${MM_APPS[@]}" "${MM_EDITORS[@]}" "${MM_UTILS[@]}" "${GRAPHICS_APPS[@]}" "${GRAPHICS_SCROTS[@]}"
+ words=(${curApp//-/ })
+ AppName[$curApp]=Smplayer
+ command=smplayer
+ hash smplayer
+ AppStatus[$curApp]=
+ for curApp in "${BROWSERS[@]}" "${TERMS[@]}" "${MM_APPS[@]}" "${MM_EDITORS[@]}" "${MM_UTILS[@]}" "${GRAPHICS_APPS[@]}" "${GRAPHICS_SCROTS[@]}"
+ words=(${curApp//-/ })
+ AppName[$curApp]='Gnome Mpv'
+ command=gnome-mpv
+ hash gnome-mpv
+ AppStatus[$curApp]=installed
+ for curApp in "${BROWSERS[@]}" "${TERMS[@]}" "${MM_APPS[@]}" "${MM_EDITORS[@]}" "${MM_UTILS[@]}" "${GRAPHICS_APPS[@]}" "${GRAPHICS_SCROTS[@]}"
+ words=(${curApp//-/ })
+ AppName[$curApp]=Audacity
+ command=audacity
+ hash audacity
+ AppStatus[$curApp]=installed
+ for curApp in "${BROWSERS[@]}" "${TERMS[@]}" "${MM_APPS[@]}" "${MM_EDITORS[@]}" "${MM_UTILS[@]}" "${GRAPHICS_APPS[@]}" "${GRAPHICS_SCROTS[@]}"
+ words=(${curApp//-/ })
+ AppName[$curApp]=Openshot
+ command=openshot
+ hash openshot
+ AppStatus[$curApp]=
+ for curApp in "${BROWSERS[@]}" "${TERMS[@]}" "${MM_APPS[@]}" "${MM_EDITORS[@]}" "${MM_UTILS[@]}" "${GRAPHICS_APPS[@]}" "${GRAPHICS_SCROTS[@]}"
+ words=(${curApp//-/ })
+ AppName[$curApp]=Mhwaveedit
+ command=mhwaveedit
+ hash mhwaveedit
+ AppStatus[$curApp]=
+ for curApp in "${BROWSERS[@]}" "${TERMS[@]}" "${MM_APPS[@]}" "${MM_EDITORS[@]}" "${MM_UTILS[@]}" "${GRAPHICS_APPS[@]}" "${GRAPHICS_SCROTS[@]}"
+ words=(${curApp//-/ })
+ AppName[$curApp]=Xfburn
+ command=xfburn
+ hash xfburn
+ AppStatus[$curApp]=installed
+ for curApp in "${BROWSERS[@]}" "${TERMS[@]}" "${MM_APPS[@]}" "${MM_EDITORS[@]}" "${MM_UTILS[@]}" "${GRAPHICS_APPS[@]}" "${GRAPHICS_SCROTS[@]}"
+ words=(${curApp//-/ })
+ AppName[$curApp]=Brasero
+ command=brasero
+ hash brasero
+ AppStatus[$curApp]=installed
+ for curApp in "${BROWSERS[@]}" "${TERMS[@]}" "${MM_APPS[@]}" "${MM_EDITORS[@]}" "${MM_UTILS[@]}" "${GRAPHICS_APPS[@]}" "${GRAPHICS_SCROTS[@]}"
+ words=(${curApp//-/ })
+ AppName[$curApp]=K3b
+ command=k3b
+ hash k3b
+ AppStatus[$curApp]=
+ for curApp in "${BROWSERS[@]}" "${TERMS[@]}" "${MM_APPS[@]}" "${MM_EDITORS[@]}" "${MM_UTILS[@]}" "${GRAPHICS_APPS[@]}" "${GRAPHICS_SCROTS[@]}"
+ words=(${curApp//-/ })
+ AppName[$curApp]='Gtk Recordmydesktop'
+ command=gtk-recordmydesktop
+ hash gtk-recordmydesktop
+ AppStatus[$curApp]=installed
+ for curApp in "${BROWSERS[@]}" "${TERMS[@]}" "${MM_APPS[@]}" "${MM_EDITORS[@]}" "${MM_UTILS[@]}" "${GRAPHICS_APPS[@]}" "${GRAPHICS_SCROTS[@]}"
+ words=(${curApp//-/ })
+ AppName[$curApp]=Mirage
+ command=mirage
+ hash mirage
+ AppStatus[$curApp]=
+ for curApp in "${BROWSERS[@]}" "${TERMS[@]}" "${MM_APPS[@]}" "${MM_EDITORS[@]}" "${MM_UTILS[@]}" "${GRAPHICS_APPS[@]}" "${GRAPHICS_SCROTS[@]}"
+ words=(${curApp//-/ })
+ AppName[$curApp]=Viewnior
+ command=viewnior
+ hash viewnior
+ AppStatus[$curApp]=installed
+ for curApp in "${BROWSERS[@]}" "${TERMS[@]}" "${MM_APPS[@]}" "${MM_EDITORS[@]}" "${MM_UTILS[@]}" "${GRAPHICS_APPS[@]}" "${GRAPHICS_SCROTS[@]}"
+ words=(${curApp//-/ })
+ AppName[$curApp]=Gpicview
+ command=gpicview
+ hash gpicview
+ AppStatus[$curApp]=installed
+ for curApp in "${BROWSERS[@]}" "${TERMS[@]}" "${MM_APPS[@]}" "${MM_EDITORS[@]}" "${MM_UTILS[@]}" "${GRAPHICS_APPS[@]}" "${GRAPHICS_SCROTS[@]}"
+ words=(${curApp//-/ })
+ AppName[$curApp]=Ristretto
+ command=ristretto
+ hash ristretto
+ AppStatus[$curApp]=installed
+ for curApp in "${BROWSERS[@]}" "${TERMS[@]}" "${MM_APPS[@]}" "${MM_EDITORS[@]}" "${MM_UTILS[@]}" "${GRAPHICS_APPS[@]}" "${GRAPHICS_SCROTS[@]}"
+ words=(${curApp//-/ })
+ AppName[$curApp]=Geeqie
+ command=geeqie
+ hash geeqie
+ AppStatus[$curApp]=installed
+ for curApp in "${BROWSERS[@]}" "${TERMS[@]}" "${MM_APPS[@]}" "${MM_EDITORS[@]}" "${MM_UTILS[@]}" "${GRAPHICS_APPS[@]}" "${GRAPHICS_SCROTS[@]}"
+ words=(${curApp//-/ })
+ AppName[$curApp]=Gthumb
+ command=gthumb
+ hash gthumb
+ AppStatus[$curApp]=
+ for curApp in "${BROWSERS[@]}" "${TERMS[@]}" "${MM_APPS[@]}" "${MM_EDITORS[@]}" "${MM_UTILS[@]}" "${GRAPHICS_APPS[@]}" "${GRAPHICS_SCROTS[@]}"
+ words=(${curApp//-/ })
+ AppName[$curApp]=Gimp
+ command=gimp
+ hash gimp
+ AppStatus[$curApp]=installed
+ for curApp in "${BROWSERS[@]}" "${TERMS[@]}" "${MM_APPS[@]}" "${MM_EDITORS[@]}" "${MM_UTILS[@]}" "${GRAPHICS_APPS[@]}" "${GRAPHICS_SCROTS[@]}"
+ words=(${curApp//-/ })
+ AppName[$curApp]=Inkscape
+ command=inkscape
+ hash inkscape
+ AppStatus[$curApp]=installed
+ for curApp in "${BROWSERS[@]}" "${TERMS[@]}" "${MM_APPS[@]}" "${MM_EDITORS[@]}" "${MM_UTILS[@]}" "${GRAPHICS_APPS[@]}" "${GRAPHICS_SCROTS[@]}"
+ words=(${curApp//-/ })
+ AppName[$curApp]='Xfce4 Screenshooter'
+ command=xfce4-screenshooter
+ hash xfce4-screenshooter
+ AppStatus[$curApp]=installed
+ for curApp in "${BROWSERS[@]}" "${TERMS[@]}" "${MM_APPS[@]}" "${MM_EDITORS[@]}" "${MM_UTILS[@]}" "${GRAPHICS_APPS[@]}" "${GRAPHICS_SCROTS[@]}"
+ words=(${curApp//-/ })
+ AppName[$curApp]=Scrot
+ command=scrot
+ hash scrot
+ AppStatus[$curApp]=installed
+ for curApp in "${LO_APPS[@]}"
+ [[ libreoffice-writer = libreoffice ]]
+ name=writer
+ AppName[$curApp]='LibreOffice Writer'
+ hash lowriter
+ AppStatus[$curApp]=installed
+ for curApp in "${LO_APPS[@]}"
+ [[ libreoffice-calc = libreoffice ]]
+ name=calc
+ AppName[$curApp]='LibreOffice Calc'
+ hash localc
+ AppStatus[$curApp]=installed
+ for curApp in "${LO_APPS[@]}"
+ [[ libreoffice-impress = libreoffice ]]
+ name=impress
+ AppName[$curApp]='LibreOffice Impress'
+ hash loimpress
+ AppStatus[$curApp]=installed
+ for curApp in "${LO_APPS[@]}"
+ [[ libreoffice-draw = libreoffice ]]
+ name=draw
+ AppName[$curApp]='LibreOffice Draw'
+ hash lodraw
+ AppStatus[$curApp]=installed
+ for curApp in "${LO_APPS[@]}"
+ [[ libreoffice-base = libreoffice ]]
+ name=base
+ AppName[$curApp]='LibreOffice Base'
+ hash lobase
+ AppStatus[$curApp]=installed
+ for curApp in "${LO_APPS[@]}"
+ [[ libreoffice = libreoffice ]]
+ AppName[$curApp]='LIBREOFFICE FULL SUITE'
+ allInstalled libreoffice
+ local pkg=
+ for pkg in "$@"
++ dpkg-query --show '--showformat=${db:Status-Abbrev;2}' libreoffice
+ [[ ii = ii ]]
+ return 0
+ AppStatus[$curApp]=installed
+ [[ --install = --install ]]
+ setup_args=()
+ packageName=mhwaveedit
+ appName=Mhwaveedit
+ setupFunctionName=setupMhwaveedit
++ type -t setupMhwaveedit
+ [[ '' = \f\u\n\c\t\i\o\n ]]
+ case "$packageName" in
+ desc='This script will install Mhwaveedit.'
+ args=("$packageName")
+ bl-install --name Mhwaveedit --message 'This script will install Mhwaveedit.' mhwaveedit
+ exit 0

Last edited by rbh (Yesterday 22:31:58)


// Regards rbh

Offline

#19 Today 02:21:15

johnraff
nullglob
From: Nagoya, Japan
Registered: 2015-09-09
Posts: 7,149
Website

Re: Menu => System 2 errors

@rbh thank you for following this up! Hopefully we can get to the bottom of it.

Anyway, first I'll replicate those commands on my new Lithium system and see how it compares.

One thing:

rbh wrote:

$ bl-install --install mhwaveedit

--install is not a viable option for bl-install, as the --help output showed. ( --install is for bl-install-pipemenu. )

But it's looking to me as if the problem lies with bl-install, and not the pipemenu which calls it.


...elevator in the Brain Hotel, broken down but just as well...
( a boring Japan blog (currently paused), idle Twitterings and GitStuff )

Introduction to the Bunsenlabs Lithium Desktop

Offline

Board footer

Powered by FluxBB