non-win/linux desktop usage #166

Open
scottfurry opened this Issue Mar 1, 2015 · 6 comments

Projects

None yet

2 participants

@scottfurry
Contributor

Using FreeBSD 10.1 - Release with XFCE desktop.
I used this add-on previously with Linux-based OS's without flaw. However, add-on is disabled because of OS compatibility (and Mozilla doesn't even list BSD-compatible add-ons).

I would very much like to get this add-on working for my environment. Including firefox about:buildconfig details. I don't have much experience with javascript, but if I can help - point me in the right direction, please.

Build platform
target
x86_64-portbld-freebsd10.1
Build tools
Compiler    Version     Compiler flags
cc  3.4.1   -Qunused-arguments -Wall -Wdeclaration-after-statement -Wempty-body -Wpointer-to-int-cast -Wsign-compare -Wtype-limits -Wno-unused -O2 -pipe -march=native -O3 -DLIBICONV_PLUG -fstack-protector -fno-strict-aliasing -std=gnu99 -fgnu89-inline -fno-strict-aliasing -ffunction-sections -fdata-sections -fno-math-errno -pipe
c++     3.4.1   -Qunused-arguments -isystem/usr/local/include -DLIBICONV_PLUG -Qunused-arguments -Wall -Wempty-body -Woverloaded-virtual -Wsign-compare -Wwrite-strings -Wno-invalid-offsetof -Wno-inline-new-delete -Wno-c++0x-extensions -Wno-extended-offsetof -Wno-unknown-warning-option -Wno-return-type-c-linkage -O2 -pipe -march=native -O3 -DLIBICONV_PLUG -fstack-protector -fno-strict-aliasing -DLIBICONV_PLUG -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -std=gnu++0x -pipe -DNDEBUG -DTRIMMED -O2 -O3 -fomit-frame-pointer -isystem/usr/local/include -DLIBICONV_PLUG
Configure arguments

--program-transform-name=s/firefox/firefox/ --enable-application=browser --enable-official-branding x86_64-portbld-freebsd10.1 --prefix=/usr/local --enable-system-cairo --with-system-libevent --enable-system-ffi --with-system-graphite2 --with-system-harfbuzz --enable-system-hunspell --with-system-icu --with-intl-api --with-system-jpeg=/usr/local --with-system-nspr --with-system-nss --with-system-opus --with-system-png=/usr/local --enable-system-pixman --with-system-soundtouch --enable-system-sqlite --with-system-vorbis --with-system-ogg --with-system-libvpx --enable-chrome-format=omni --enable-default-toolkit=cairo-gtk2 --with-pthreads --enable-extensions=default --enable-necko-protocols=default --with-system-zlib --with-system-bz2 --enable-unified-compilation --disable-debug-symbols --disable-glibtest --disable-gtktest --disable-freetypetest --disable-installer --disable-updater --disable-pedantic --enable-optimize --enable-startup-notification --enable-gstreamer=1.0 --disable-gconf --enable-gio --disable-gnomeui --disable-libproxy --enable-alsa --disable-pulseaudio --disable-debug --enable-release --disable-dtrace --enable-logging --disable-profiling --disable-tests --enable-strip --enable-install-strip
@foudfou
Owner
foudfou commented Mar 1, 2015

Hi, ok so FireTray would need a few adjustments. For starters:

  • modules/commons.js:const FIRETRAY_OS_SUPPORT = ['linux', 'winnt'];
  • rename modules/ctypes/linux/ and modules/linux/ with freebsd

Then I guess some of the libs ABIs defined in modules/ctypes/linux/differ.

That'd be great if you could work on this. Otherwise I'd need a FreeBSD environment. Can you possibly provide me with such a VirtualBox VM ?

@scottfurry
Contributor

On 01/03/2015 15:25, foudfou wrote:

Hi, ok so FireTray would need a few adjustments. For starters:

  • |modules/commons.js:const FIRETRAY_OS_SUPPORT = ['linux', 'winnt'];|
  • rename |modules/ctypes/linux/| and |modules/linux/| with |freebsd|

Then I guess some of the libs ABIs defined in
|modules/ctypes/linux/|differ.

That'd be great if you could work on this. Otherwise I'd need a
FreeBSD environment. Can you possibly provide me with such a
VirtualBox VM ?


Reply to this email directly or view it on GitHub
#166 (comment).

There are VM's available for BSD environmnets.
I've used Qemu and installed the latest FreeBSD iso. Setting up a
desktop environment can be a bit of a challenge.

Or I could do some of the work here...don't mind. I have the project
cloned locally.
I would need some guidance now and again. But I'm rather hopeful. Let me
hack away at this a bit.

Scott

@scottfurry
Contributor

So...first pass.
git diff http://pastebin.com/GUk5jbeP
screen shot http://i.imgur.com/uJstoNi.png

BTW, having good instructions and very usable Makefile really help!!!
If building on 'BSD's, others should use gmake (gnu make on 'BSD's - no effect to Linux users).

I had tried to use links rather than just copy files but the build mechanism didn't like that much.
We'll probably want to sort out de-duplication if possible.

@foudfou
Owner
foudfou commented Mar 2, 2015

Woah! Sounds great!
A few hints:

  • could you fork this repository in github, and possibly apply your changes in a new branch ? That'd be easier to review and follow up your changes.
  • Yes we have a link/duplication problem: git stores links, but not zip :( I wonder what the best approach is. Either we bear the duplication in the zip file, or we consider building on FreeBSD is not fully supported and implement some flag in the Makefile for building specifically on this platform. It also depends how we want to distribute the .xpi: on AMO, build yourself, on some site...
@foudfou
Owner
foudfou commented Mar 2, 2015

I remember zip does support symlinks, but I think xpi does not (to be verified).
Ses also a similar issue.

@scottfurry
Contributor

On 02/03/2015 06:52, foudfou wrote:

I remember zip /does/ support symlinks, but I think xpi does not (to
be verified).
Ses also a similar issue
</gnome-integration-team/firefox-gnome/issues/221>.


Reply to this email directly or view it on GitHub
#166 (comment).

I had a look at the discussion referenced
(gnome-integration-team/firefox-gnome#221).
They seemed to conclude not to conclude.

As I understand the state of things...

  • zip can accept symlinks (with a command line flag) but xpi usage would
    prevent them.
  • duplication of files creates a mess and bloat
  • re-organization would not be practical

WRT FireTray

  • Non-Linux/Windows build involved making changes to Makefile and
    install.rdf
  • Also, all "linux" folders were duplicated folders
    (./src/chrome/skin/icons/linux; src/lib/linux; src/modules/linux;
    src/modules/ctypes/linux)
  • Files in the duplicated folders were not altered (so all import
    statements point back to linux folder files)
  • Add-on works perfectly with Firefox and Thunderbird - I even get
    unread email count - task bar is uncluttered!!!

The only compiled sources I see are the folders in src/lib. However, a
.so or .dll are not present in the final xpi.

Overall, I'm hopeful that the add-on can be utilized by 'BSD folks.
I'm sure there is a solution to packaging for other platforms...I just
haven't had that "light-bulb" moment, yet. :-D

Am I missing anything?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment