DragonFlyBSD / DeltaPorts

FreeBSD Ports Collection + DeltaPorts = DragonFly Ports (a.k.a. DPorts)
29 stars 30 forks source link

Drop some www/firefox hacks #571

Closed jbeich closed 8 years ago

jbeich commented 8 years ago

With www/firefox-lite there should be no need to disable PULSEAUDIO option in www/firefox. And while --disable-webrtc can be dropped after https://github.com/freebsd/freebsd-ports/commit/c4d0b39b2223b2eafddef3a4471218387ac3cb2f one may still want to keep it for -lite (but the benefit is small). As for patches under dragonfly/ directory (patch*configure.in, patch*jsnativestack.cpp) those can all be nuked:

Ditto for other gecko@ ports: www/libxul, www/firefox-esr, mail/thunderbird, www/seamonkey but only remove the same patches as under www/firefox. ENIGMAIL may work fine as 1.9 no longer has binary component.

Tested on v4.5.0.1295.gf41543 snapshot using bhyve + X11 forwarding + without audio.

zrj-rimwis commented 8 years ago

Hi, sorry for a long delay, been quite busy several weeks.

Regarding the patches in dragonfly/ dir for configure.in. I'm aware that those are pretty much no ops and could be removed. They are only left to act as fast build blowing fuse to detect changes in configure logic upon new versions, those technically could be wrapped as dragonfly/patch-configure-sanity. Since there are no impact for FreeBSD there shouldn't be any for DragonFly too.

Regarding PULSEAUDIO, after some considerations I have enabled it (provisionally) for main firefox port-only. There were reports of pulse eating 100% cpu, if it gets reported again, option will be brought back for custom build. Given that there is firefox-lite that can allow to have dbus-less system (provided that gtk2 and cups has AVAHI and DBUS{for cups it should be optional, maybe a separate port cause it only used for desktop printer icon notification} options disabled), gtk3 requiring dbus anyway and BSDNow interview ranting that missing default pulseaudio option on arm boxes would allow to have working webrtc speaker/mic communications without user recompiling it, it makes sense to at least give DragonFly users a choice to test webrtc functionality. On older version (iirc 41) I managed to get working speaker/mic by hard-wiring /dev/snd in audio_device_alsa_linux.cc, it worked but had several quirks that user should be aware so it never was made as part of the port.

There are few other places in firefox were I'm not sure weather we should alias to FreeBSD code variants. In particular the G_SLICE="always-malloc" in xpcom/glue/standalone/nsXPCOMGlue.cpp. We sometimes experience strange firefox segfaults while visiting several sites like prolonged youtube watching on pausing the video. Could be related to ads by google overlays.

In any case thank you for upstreaming that change. We are just a couple guys team so we having quite a hard time keeping everything compiling let alone testing every single port for correct runtime. Any upstreaming and/or testing efforts are very welcomed here.

jbeich commented 8 years ago

They are only left to act as fast build blowing fuse to detect changes in configure logic upon new versions

DragonFly buildbot tracking mozilla-central would be more useful for catching regressions early. However, I need to fix build with empty .mozconfig first from

ln -sf FreeBSD.mk $topsrcdir/security/nss/coreconf/DragonFly$(uname -r).mk

# https://bugzilla.mozilla.org/show_bug.cgi?id=1288984
export CPPFLAGS=-isystem/usr/local/include

# https://bugzilla.mozilla.org/show_bug.cgi?id=884987
ac_add_options --with-system-nspr

# https://bugzilla.mozilla.org/show_bug.cgi?id=1288987
ac_add_options --disable-tests

gtk3 requiring dbus anyway

It works fine without for me.

and BSDNow interview ranting that missing default pulseaudio option on arm boxes would allow to have working webrtc speaker/mic communications without user recompiling it, it makes sense to at least give DragonFly users a choice to test webrtc functionality.

PULSEAUDIO is no longer required for WebRTC since https://github.com/freebsd/freebsd-ports/commit/2306227a2acdf9ee54b1fd3265b6188e008c9056. I'm leaving it on by default as it's better supported (at least upstream).

There are few other places in firefox were I'm not sure weather we should alias to FreeBSD code variants. In particular the G_SLICE="always-malloc" in xpcom/glue/standalone/nsXPCOMGlue.cpp.

According to bug 431221 it's no more than an optimization. DragonFly neither builds with --enable-jemalloc (due to a crash I've yet to track down) nor has jemalloc in libc as malloc(3).

sometimes experience strange firefox segfaults while visiting several sites like prolonged youtube watching on pausing the video. Could be related to ads by google overlays.

Which Firefox version? For one, upstream dropped GStreamer support due to problems that included stability.

zrj-rimwis commented 8 years ago

Many thanks for the ATK_BRIDGE trick! I long wanted to "optionalize" at-spi2-atk dependency. Will definitely start using it on my local boxes. Why it is still not a part of main freebsd-ports?

Hmm somehow I have skipped ALSA Webrtc bits, will investigate.

Which Firefox version? For one, upstream dropped GStreamer support due to problems that included stability.

Current version from ports(v47.0.1) crashes are intermittent, seem to be related to a/v. Starting to suspect audio bits.

zrj-rimwis commented 8 years ago

@jbeich Yes microphone selection now works using ALSA. Also your gtk3 patch was pushed to DeltaPorts: https://github.com/DragonFlyBSD/DeltaPorts/pull/592