Bug#832298: firefox: Setting default browser creates a new .desktop file in ~/.local/share/applications

Laurent Bigonville bigon at debian.org
Sun Jul 24 01:45:33 UTC 2016


Le 24/07/16 à 01:29, Laurent Bigonville a écrit :
> Le 24/07/16 à 00:58, Laurent Bigonville a écrit :
>> On Sun, 24 Jul 2016 00:27:04 +0200 Laurent Bigonville 
>> <bigon at debian.org> wrote:
>> >
>> > Hi,
>> >
>> > When clicking a the button in the options to set the default 
>> browser, it
>> > creates a new .desktop file in ~/.local/share/applications.
>> >
>> > This confuse gnome-control-center. Also, I don't see this happening in
>> > Fedora and this shouldn't happen in debian.
>> >
>> > What I can see is that in this .desktop file the path to the 
>> executable
>> > is /usr/lib/firefox/firefox and not just "firefox", I feel this is
>> > related.
>>
>> OK, the issue is that in debian, the MOZ_APP_LAUNCHER environment 
>> variable is not set like it is in fedora.
>>
>> In Fedora it set in a wrapper script (along with other environment 
>> variables), see [0]
>>
>> Shouldn't this wrapper script (or something similar) be added in 
>> debian too?
>
> The run-mozilla.sh script should probably be shipped in the package as 
> well.

Installing the attached file as /usr/bin/firefox and installing 
run-mozilla.sh /usr/lib/firefox seems to solve the issue.

The attached file is a modified version of the build/unix/mozilla.in 
file shipped in the sources.

I'm not too sure how the build system is working to be honest so I don't 
have a patch to apply to the debian package.
-------------- next part --------------
#!/bin/sh
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

## 
## Usage:
##
## $ mozilla [args]
##
## This script is meant to run the application binary from mozilla/dist/bin.
##
## The script will setup all the environment voodoo needed to make
## the application binary to work.
##

#uncomment for debugging
#set -x

moz_libdir=/usr/lib/firefox

# Use run-mozilla.sh in the current dir if it exists
# If not, then start resolving symlinks until we find run-mozilla.sh
found=0
progname="$0"
curdir=`dirname "$progname"`
progbase=`basename "$progname"`
run_moz="$curdir/run-mozilla.sh"
if test -x "$run_moz"; then
  dist_bin="$curdir"
  found=1
else
  here=`/bin/pwd`
  while [ -h "$progname" ]; do
    bn=`basename "$progname"`
    cd `dirname "$progname"`
    # Resolve symlink of dirname
    cd `/bin/pwd`
    progname=`/bin/ls -l "$bn" | sed -e 's/^.* -> //' `
    progbase=`basename "$progname"`
    if [ ! -x "$progname" ]; then
      break
    fi
    curdir=`dirname "$progname"`
    run_moz="$curdir/run-mozilla.sh"
    if [ -x "$run_moz" ]; then
      cd "$curdir"
      dist_bin=`/bin/pwd`
      run_moz="$dist_bin/run-mozilla.sh"
      found=1
      break
    fi
  done
  cd "$here"
fi
if [ $found = 0 ]; then
  # Check default compile-time libdir
  if [ -x "$moz_libdir/run-mozilla.sh" ]; then
    dist_bin="$moz_libdir"
    run_moz="$moz_libdir/run-mozilla.sh"
  else
    echo "Cannot find %MOZ_APP_DISPLAYNAME% runtime directory. Exiting."
    exit 1
  fi
fi

##
## Set MOZ_APP_LAUNCHER for gnome-session
## https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=832298
##
export MOZ_APP_LAUNCHER="/usr/bin/firefox"

script_args=""
debugging=0
MOZILLA_BIN="${progbase}-bin"

if [ "$OSTYPE" = "beos" ]; then
  mimeset -F "$MOZILLA_BIN"
fi

pass_arg_count=0
while [ $# -gt $pass_arg_count ]
do
  case "$1" in
    -p | --pure | -pure)
      MOZILLA_BIN="${MOZILLA_BIN}.pure"
      shift
      ;;
    -g | --debug)
      script_args="$script_args -g"
      debugging=1
      shift
      ;;
    -d | --debugger)
      script_args="$script_args -d $2"
      shift 2
      ;;
    *)
      # Move the unrecognized argument to the end of the list.
      arg="$1"
      shift
      set -- "$@" "$arg"
      pass_arg_count=`expr $pass_arg_count + 1`
      ;;
  esac
done

if [ $debugging = 1 ]
then
  echo $dist_bin/run-mozilla.sh $script_args $dist_bin/$MOZILLA_BIN "$@"
fi
exec "$dist_bin/run-mozilla.sh" $script_args "$dist_bin/$MOZILLA_BIN" "$@"
# EOF.


More information about the pkg-mozilla-maintainers mailing list