# Firefox 42.0 now requires NetworkManager?

## AdShea

I've just spent a fair time googling and can't find any explanation on Firefox with the wifi useflag now pulls in NetworkManager.  It seems to have happened between 41.0 and 42.0 in mozconfig-v6 eclass but there's no explanation as to why other than that the requirements are now only for Linux.

Main questions are: 

Does anyone know what the change is?  The Firefox changelogs show nothing changing between these versions in what the necko-wifi requires.

Is it still possible to use wicd and/or raw init scripts for interface managment and have the wifi geolocation work in firefox?

----------

## MarioCorleone

not quite sure why network manager is in your's but here's mine

```

Calculating dependencies... done!

[ebuild   R    ] www-client/firefox-42.0::gentoo  USE="bindist dbus gmp-autoupdate gstreamer jemalloc3 jit minimal startup-notification wifi -custom-cflags -custom-optimization -debug -egl -gstreamer-0 -gtk3 -hardened (-neon) (-pgo) -pulseaudio (-selinux) -system-cairo -system-icu -system-jpeg -system-libvpx -system-sqlite {-test}" LINGUAS="-af -ar -as -ast -be -bg -bn_BD -bn_IN -br -bs -ca -cs -cy -da -de -el -en_GB -en_ZA -eo -es_AR -es_CL -es_ES -es_MX -et -eu -fa -fi -fr -fy_NL -ga_IE -gd -gl -gu_IN -he -hi_IN -hr -hu -hy_AM -id -is -it -ja -kk -km -kn -ko -lt -lv -mai -mk -ml -mr -nb_NO -nl -nn_NO -or -pa_IN -pl -pt_BR -pt_PT -rm -ro -ru -si -sk -sl -son -sq -sr -sv_SE -ta -te -th -tr -uk -vi -xh -zh_CN -zh_TW" 0 KiB

Total: 1 package (1 reinstall), Size of downloads: 0 KiB

```

----------

## ct85711

I was doing some snooping on my system, as looking at firefox's ebuild, doesn't say anything about networkmanager...

However, I found where it is coming from...

Firefox's ebuild, inherit's mozconfig-v6.42 that has this specific part

```
if [[ -n ${MOZCONFIG_OPTIONAL_WIFI} ]]; then

    if [[ ${MOZCONFIG_OPTIONAL_WIFI} = "enabled" ]]; then

        IUSE+=" +wifi"

    else

        IUSE+=" wifi"

    fi

    RDEPEND+="

    wifi? (

        kernel_linux? ( >=sys-apps/dbus-0.60

            >=dev-libs/dbus-glib-0.72

            net-misc/networkmanager )

    )"

fi

```

Here's the interesting part, I was looking and it seems the devs felt to put in a dedicated eclass for each specific version of firefox

```

ct85711@Oate ~ $ vi /usr/portage/eclass/moz

mozconfig-3.eclass       mozconfig-v5.36.eclass   mozconfig-v6.39.eclass   mozconfig-v6.42.eclass   mozextension.eclass      

mozconfig-v5.31.eclass   mozconfig-v5.38.eclass   mozconfig-v6.40.eclass   mozcoreconf-2.eclass     mozilla-launcher.eclass  

mozconfig-v5.34.eclass   mozconfig-v6.38.eclass   mozconfig-v6.41.eclass   mozcoreconf-v3.eclass    mozlinguas.eclass  
```

Looking at fierfox-41's associated eclass, it has this...

```
if [[ -n ${MOZCONFIG_OPTIONAL_WIFI} ]]; then

    if [[ ${MOZCONFIG_OPTIONAL_WIFI} = "enabled" ]]; then

        IUSE+=" +wifi"

    else

        IUSE+=" wifi"

    fi

    RDEPEND+="

    wifi? ( >=sys-apps/dbus-0.60

        >=dev-libs/dbus-glib-0.72

        net-wireless/wireless-tools )"

fi

```

----------

## AdShea

Yep, that's what I found digging into it.  I've been trying to avoid NetworkManager because it doesn't play well with some of the more advanced networking stuff (source-based routing, complex VPN setups, etc.).  I wonder why it changed.  The portage git repo doesn't have anything in the commit notes about it.

----------

## charles17

 *AdShea wrote:*   

> Main questions are: 
> 
> Does anyone know what the change is?  The Firefox changelogs show nothing changing between these versions in what the necko-wifi requires.
> 
> 

 Running emerge with -t should tell you about the dependency tree. *Quote:*   

> # emerge -uDUavt --with-bdeps=y --complete-graph --keep-going @world

 

----------

## logical_guy

I'm having the same issue.  Noticed it this morning.  Think i'm going to disable the wifi flag for this version till the networkmanager dependency goes away (really hoping that it does).

Any alternate advice?

----------

## Roman_Gruber

no need here, but i use the binary version. I forgot why i use the binary version ...

```
eix firefox

* www-client/firefox

     Available versions:  38.2.0^d 38.3.0^d 38.4.0^d (~)42.0^d {bindist custom-cflags custom-optimization dbus debug egl +gmp-autoupdate (+)gstreamer gstreamer-0 gtk3 hardened +jemalloc3 +jit +minimal neon pgo pulseaudio selinux startup-notification system-cairo system-icu system-jpeg system-libvpx system-sqlite test wifi LINGUAS="af ar as ast be bg bn_BD bn_IN br bs ca cs cy da de el en_GB en_ZA eo es_AR es_CL es_ES es_MX et eu fa fi fr fy_NL ga_IE gd gl gu_IN he hi_IN hr hu hy_AM id is it ja kk km kn ko lt lv mai mk ml mr nb_NO nl nn_NO or pa_IN pl pt_BR pt_PT rm ro ru si sk sl son sq sr sv_SE ta te th tr uk vi xh zh_CN zh_TW"}

     Homepage:            http://www.mozilla.com/firefox

     Description:         Firefox Web Browser

[I] www-client/firefox-bin

     Available versions:  38.3.0^ms (~)38.4.0^ms (~)42.0^ms {selinux startup-notification LINGUAS="af ar as ast be bg bn_BD bn_IN br bs ca cs cy da de el en_GB en_ZA eo es_AR es_CL es_ES es_MX et eu fa fi fr fy_NL ga_IE gd gl gu_IN he hi_IN hr hu hy_AM id is it ja kk kn ko lt lv mai mk ml mr nb_NO nl nn_NO or pa_IN pl pt_BR pt_PT rm ro ru si sk sl son sq sr sv_SE ta te tr uk vi zh_CN zh_TW"}

     Installed versions:  42.0^ms(12:24:46 05.11.2015)(startup-notification -selinux LINGUAS="-af -ar -as -ast -be -bg -bn_BD -bn_IN -br -bs -ca -cs -cy -da -de -el -en_GB -en_ZA -eo -es_AR -es_CL -es_ES -es_MX -et -eu -fa -fi -fr -fy_NL -ga_IE -gd -gl -gu_IN -he -hi_IN -hr -hu -hy_AM -id -is -it -ja -kk -kn -ko -lt -lv -mai -mk -ml -mr -nb_NO -nl -nn_NO -or -pa_IN -pl -pt_BR -pt_PT -rm -ro -ru -si -sk -sl -son -sq -sr -sv_SE -ta -te -tr -uk -vi -zh_CN -zh_TW")

     Homepage:            http://www.mozilla.com/firefox

     Description:         Firefox Web Browser

Found 2 matches.

ASUS-G75VW roman # qlist -Iv networkm

ASUS-G75VW roman # eix networkmanager

* kde-frameworks/networkmanager-qt

     Available versions:  (5) (~)5.14.0(5/5.14) (~)5.15.0(5/5.15)

       {debug doc teamd test}

     Homepage:            https://www.kde.org/

     Description:         NetworkManager bindings for Qt

* net-misc/networkmanager

     Available versions:  1.0.2-r1 1.0.6 (~)1.0.6-r1 {bluetooth connection-sharing consolekit +dhclient dhcpcd gnutls +introspection +modemmanager ncurses +nss +ppp resolvconf selinux systemd teamd test vala +wext +wifi zeroconf ABI_MIPS="n32 n64 o32" ABI_PPC="32 64" ABI_S390="32 64" ABI_X86="32 64 x32" KERNEL="linux"}

     Homepage:            https://wiki.gnome.org/Projects/NetworkManager

     Description:         Universal network configuration daemon for laptops, desktops, servers and virtualization hosts

* net-misc/networkmanager-openconnect

     Available versions:  0.9.10.0 (~)0.9.10.0-r1 1.0.0 1.0.2 {gtk}

     Homepage:            https://wiki.gnome.org/Projects/NetworkManager

     Description:         NetworkManager OpenConnect plugin

* net-misc/networkmanager-openswan

     Available versions:  1.0.2 1.0.6 {gtk}

     Homepage:            https://wiki.gnome.org/Projects/NetworkManager

     Description:         NetworkManager Openswan plugin

* net-misc/networkmanager-openvpn

     Available versions:  1.0.2 1.0.6-r1 {gtk test}

     Homepage:            https://wiki.gnome.org/Projects/NetworkManager

     Description:         NetworkManager OpenVPN plugin

* net-misc/networkmanager-pptp

     Available versions:  1.0.2 1.0.6 {gtk}

     Homepage:            https://wiki.gnome.org/Projects/NetworkManager

     Description:         NetworkManager PPTP plugin

* net-misc/networkmanager-sstp

     Available versions:  (~)0.9.8 {gtk}

     Homepage:            http://sourceforge.net/projects/sstp-client/

     Description:         Client for the proprietary Microsoft Secure Socket Tunneling Protocol(SSTP)

* net-misc/networkmanager-vpnc

     Available versions:  1.0.2 1.0.6 {gtk test}

     Homepage:            https://wiki.gnome.org/Projects/NetworkManager

     Description:         NetworkManager VPNC plugin

* sec-policy/selinux-networkmanager

     Available versions:  2.20140311-r5 2.20140311-r6 2.20140311-r7 2.20141203-r1 2.20141203-r2 2.20141203-r3 2.20141203-r4 2.20141203-r5 2.20141203-r6 2.20141203-r7 2.20141203-r8 (~)2.20141203-r9 **9999

     Homepage:            https://wiki.gentoo.org/wiki/Project:SELinux

     Description:         SELinux policy for networkmanager

Found 9 matches.

```

----------

## charles17

 *logical_guy wrote:*   

> Any alternate advice?

 

No result from checking your dependency tree?

----------

## logical_guy

 *charles17 wrote:*   

>  *logical_guy wrote:*   Any alternate advice? 
> 
> No result from checking your dependency tree?

 

Ok, here is the dependency tree output.  Sorry I couldn't understand it, maybe someone can explain:

```

 $ emerge -uDUavt --with-bdeps=y --complete-graph --keep-going @world

This action requires superuser access...

Would you like to add --pretend to options? [Yes/No] 

These are the packages that would be merged, in reverse order:

Calculating dependencies... done!

[ebuild     U ~] www-client/firefox-42.0::gentoo [41.0.2::gentoo] USE="bindist dbus gmp-autoupdate gstreamer jemalloc3 jit minimal startup-notification wifi -custom-cflags -custom-optimization -debug -egl -gstreamer-0 -gtk3% -hardened (-neon) (-pgo) -pulseaudio (-selinux) -system-cairo -system-icu -system-jpeg -system-libvpx -system-sqlite {-test}" LINGUAS="en_GB hi_IN -af -ar -as -ast -be -bg -bn_BD -bn_IN -br -bs -ca -cs -cy -da -de -el -en_ZA -eo -es_AR -es_CL -es_ES -es_MX -et -eu -fa -fi -fr -fy_NL -ga_IE -gd -gl -gu_IN -he -hr -hu -hy_AM -id -is -it -ja -kk -km -kn -ko -lt -lv -mai -mk -ml -mr -nb_NO -nl -nn_NO -or -pa_IN -pl -pt_BR -pt_PT -rm -ro -ru -si -sk -sl -son -sq -sr -sv_SE -ta -te -th -tr -uk -vi -xh -zh_CN -zh_TW" 162,825 KiB

[ebuild  N     ]  net-misc/networkmanager-1.0.6::gentoo  USE="bluetooth consolekit dhclient introspection modemmanager ncurses nss ppp wext wifi -connection-sharing -dhcpcd -gnutls -resolvconf (-selinux) -systemd -teamd {-test} -vala -zeroconf" ABI_X86="32 (64) (-x32)" 3,302 KiB

[ebuild   R    ] dev-db/mysql-5.6.26:0/18::gentoo  USE="openssl perl -debug -embedded -extraengine -jemalloc -latin1 (-libressl) -minimal -profiling (-selinux) -static -static-libs -systemtap -tcmalloc {-test} -yassl (-cluster%) (-community%*)" ABI_X86="32 (64) (-x32)" 0 KiB

[nomerge       ] net-misc/networkmanager-1.0.6::gentoo  USE="bluetooth consolekit dhclient introspection modemmanager ncurses nss ppp wext wifi -connection-sharing -dhcpcd -gnutls -resolvconf (-selinux) -systemd -teamd {-test} -vala -zeroconf" ABI_X86="32 (64) (-x32)" 

[ebuild  N     ]  net-dialup/rp-pppoe-3.8-r2::gentoo  USE="X" 880 KiB

[ebuild  N     ]   net-dialup/ppp-2.4.7:0/2.4.7::gentoo  USE="gtk ipv6 pam -activefilter -atm -dhcp -eap-tls -radius" 743 KiB

[ebuild  N     ]   dev-lang/tk-8.5.17:0/8.5::gentoo  USE="truetype (-aqua) -debug {-test} -threads -xscreensaver" 4,000 KiB

[ebuild  N     ]  dev-libs/newt-0.52.15::gentoo  USE="gpm nls -tcl" PYTHON_TARGETS="python2_7" 179 KiB

[ebuild  N     ]   sys-libs/slang-2.2.4-r1::gentoo  USE="pcre png readline zlib -cjk -static-libs" ABI_X86="32 (64) (-x32)" 1,394 KiB

[ebuild     U  ]  dev-libs/nss-3.20.1::gentoo [3.20::gentoo] USE="cacert nss-pem -utils" ABI_X86="32 (64) (-x32)" 6,796 KiB

[ebuild  N     ]  net-misc/dhcp-4.3.1-r2::gentoo  USE="client ipv6 ldap server ssl (-selinux) -vim-syntax" 8,771 KiB

[nomerge       ] dev-lang/tk-8.5.17:0/8.5::gentoo  USE="truetype (-aqua) -debug {-test} -threads -xscreensaver" 

[ebuild  N     ]  dev-lang/tcl-8.5.17:0/8.5::gentoo  USE="-debug -threads" ABI_X86="32 (64) (-x32)" 4,440 KiB

[nomerge       ] app-office/libreoffice-4.4.5.2::gentoo  USE="bluetooth branding collada cups dbus gltf gstreamer gtk java mysql odk postgres (-aqua) (-coinmp) -debug -eds (-firebird) -gnome -gtk3 -jemalloc -kde (-telepathy) {-test} -vlc" LIBREOFFICE_EXTENSIONS="nlpsolver scripting-javascript -scripting-beanshell -wiki-publisher" PYTHON_SINGLE_TARGET="python2_7 -python3_3 -python3_4" PYTHON_TARGETS="python2_7 python3_4 -python3_3" 

[ebuild     U  ]  dev-libs/nspr-4.10.10::gentoo [4.10.8::gentoo] USE="-debug" ABI_X86="32 (64) (-x32)" 1,108 KiB

[nomerge       ] net-misc/networkmanager-1.0.6::gentoo  USE="bluetooth consolekit dhclient introspection modemmanager ncurses nss ppp wext wifi -connection-sharing -dhcpcd -gnutls -resolvconf (-selinux) -systemd -teamd {-test} -vala -zeroconf" ABI_X86="32 (64) (-x32)" 

[ebuild  N     ]  net-libs/libndp-1.5::gentoo  ABI_X86="32 (64) (-x32)" 330 KiB

Total: 13 packages (3 upgrades, 9 new, 1 reinstall), Size of downloads: 194,765 KiB

```

----------

## mv

I was never running anything else than firefox[-wifi]. Is the difference to firefox[+wifi] important to a user who is able to manage his wifi connection with wicd (or another tool) directly?

----------

## roki942

Hummm  *Quote:*   

> NetworkManager was originally developed by Red Hat and now is hosted by the GNOME project.   https://wiki.archlinux.org/index.php/NetworkManager

  *Quote:*   

> On many Linux distributions, NetworkManager has been and is still used as a default network configuration manager. Compared to NetworkManager, systemd-networkd is still under active development, and missing features. For example, it does not have NetworkManager's intelligence to keep your computer connected across various interfaces at all times. It does not provide ifup/ifdown hooks for advanced scripting. Yet, systemd-networkd is integrated well with the rest of systemd components (e.g., resolved for DNS, timesyncd for NTP, udevd for naming), and the role of systemd-networkd may only grow over time in the systemd environment.http://xmodulo.com/switch-from-networkmanager-to-systemd-networkd.html

 

Having Firefox depend on systemd would be a major coup for them.

----------

## charles17

 *logical_guy wrote:*   

> [
> 
> ```
> 
>  $ emerge -uDUavt --with-bdeps=y --complete-graph --keep-going @world
> ...

 

Seems it really comes from the wifi USE flag.

Here is my result from USE=wifi emerge -pvt firefox: http://pastebin.com/raw.php?i=SLpC9vF1

See also https://gitweb.gentoo.org/repo/gentoo.git/tree/eclass/mozconfig-v6.42.eclass#n133

----------

## AdShea

The new dependency is for using the wifi useflag with firefox 42.0 on Linux.

Firefox 41.0 didn't need NetworkManager for the wifi useflag.

Firefox's changelog says nothing about this change either in portage or upstream (Firefox didn't change anything between 41 and 42 that would require NetworkManager).

----------

## charles17

 *AdShea wrote:*   

> Firefox's changelog says nothing about this change either in portage or upstream (Firefox didn't change anything between 41 and 42 that would require NetworkManager).

 

See https://www.mozilla.org/en-US/firefox/42.0beta/system-requirements/

----------

## Princess Nell

Possibly something related to geolocation?

```
 

$ ./configure --help|grep wifi

  --disable-necko-wifi    Disable necko wifi scanner

$ 

```

and https://bugzilla.redhat.com/show_bug.cgi?id=698535.

Looking for geo in about.config yields some pretty interesting results. And an inspiration for additions to user.js (http://kb.mozillazine.org/User.js_file).

----------

## Ant P.

 *mv wrote:*   

> I was never running anything else than firefox[-wifi]. Is the difference to firefox[+wifi] important to a user who is able to manage his wifi connection with wicd (or another tool) directly?

 

The wifi feature does nothing but allow webpages' javascript to sniff your real connection state, as opposed to the value of the "work offline" checkbox.

----------

## logical_guy

 *Ant P. wrote:*   

>  *mv wrote:*   I was never running anything else than firefox[-wifi]. Is the difference to firefox[+wifi] important to a user who is able to manage his wifi connection with wicd (or another tool) directly? 
> 
> The wifi feature does nothing but allow webpages' javascript to sniff your real connection state, as opposed to the value of the "work offline" checkbox.

 

So from a privacy point of view it's just as well that we leave this USE flag turned off.

----------

## Ant P.

Even more than that, I just remembered: it allows it to sniff SSIDs and send them to Mozilla's geolocation server whenever a webpage asks to know where you are. There's really no reason whatsoever to turn it on.

----------

## logical_guy

I would like the ebuild maintainer (or whoever is responsible upstream) for making this USE flag dependent on NetworkManager and so bringing all this crap to my attention.

----------

## mv

 *logical_guy wrote:*   

> or making this USE flag dependent on NetworkManager and so bringing all this crap to my attention.

 

The gentoo package system has no concept of the dependency of a USE-flag on a package. (Historically, gentoo once had such a concept, but having USE-flags set in such an indirekt way turned out to be more confusnig to the user than helpful. I think nobody is really missing this concept.)

However, gentoo has a concept of a USE-Flag triggering a dependency.

And this is what the ebuild does: The USE-flag wifi in firefox triggers the dependency on networkmanager

----------

## AdShea

@charles17

It was in the requirements on that page for 41.0 as well. I'm just wondering what happened that the requirement just got added to portage. Did we have the ebuild wrong and finally fixed it or did something upstream change?

----------

## miroR

 *ct85711 wrote:*   

> I was doing some snooping on my system, as looking at firefox's ebuild, doesn't say anything about networkmanager...
> 
> However, I found where it is coming from...
> 
> Firefox's ebuild, inherit's mozconfig-v6.42 that has this specific part
> ...

 

Strongly featuring dbus, which is the playground of the poetter-people (who play for the one-ring-to-rule-them-all cravers), so much so that they have been trying to get it into the kernel (as kdbus).

And this post (half-way to to top from here) is very informative:

 *roki942 wrote:*   

> Hummm  *Quote:*   NetworkManager was originally developed by Red Hat and now is hosted by the GNOME project.   https://wiki.archlinux.org/index.php/NetworkManager  *Quote:*   On many Linux distributions, NetworkManager has been and is still used as a default network configuration manager. Compared to NetworkManager, systemd-networkd is still under active development, and missing features. For example, it does not have NetworkManager's intelligence to keep your computer connected across various interfaces at all times. It does not provide ifup/ifdown hooks for advanced scripting. Yet, systemd-networkd is integrated well with the rest of systemd components (e.g., resolved for DNS, timesyncd for NTP, udevd for naming), and the role of systemd-networkd may only grow over time in the systemd environment.http://xmodulo.com/switch-from-networkmanager-to-systemd-networkd.html 
> 
> Having Firefox depend on systemd would be a major coup for them.

 

...while removing dbus from your system, frees you from this kind of headache of new dependencies, slowly leading to systemd, popping up ever more often.

It's true that then you'll have to live with a minimalist system (all basic and most major packages installable; but, say, can't install mythtv, and can install vdr ... can't install audacity, but surely can use sox  :Wink:   ...). But it's so good for privacy!

(My Firefox can not call in fancy non-trustablle network-manager because dbus, along with systemd and other poetterware, is banned from my system)

Regards!

----------

