LinuxQuestions.org
Visit the LQ Articles and Editorials section
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices

Reply
 
Search this Thread
Old 06-30-2008, 02:46 AM   #1
dugan
Senior Member
 
Registered: Nov 2003
Location: Canada
Distribution: distro hopper
Posts: 4,970

Rep: Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552
Firefox 3.0 and XULRunner 1.9 SlackBuilds


Here are my Firefox 3 and XULRunner 1.9 SlackBuilds.

XULRunner features:
  • full support for building other applications (pkgconfig files, libraries, etc)
  • extremely aggressive optimizations
Firefox features:
  • no more blank applications panel bug
  • highest rated icon on gnome-look.org
  • system font hinting settings
  • extremely aggressive optimizations
Firefox 3 can't really be used to build other applications anymore (it doesn't come with pkgconfig files). For that, you need XULRunner. If you're building XULRunner, then you might as well build Firefox 3 against it. Which is what my SlackBuild does.

The optimizations used are "-O3 -march=native". O3 is what Swiftfox uses, and "march=native" means that gcc chooses the optimizations based on the machine it's running on. Your build will be optimized for your machine, so don't distribute it.

The only dependency is Cairo 1.6. You can use Pat's SlackBuild to install it (just replace the source, and edit the SlackBuild to change the version number). Or you can grab fancier font rendering packages from the Beautiful Fonts in 12.1 thread. Daedra contributed packages that use the -lcd packages from Arch (read at least the first two pages). I contributed packages that use enhancements from Ubuntu.

First install XULRunner 1.9.0.1:It will take a long time (about 45 minutes on my Asus A8Js).

Then install Firefox 3.0.1:Because you've already build the rendering engine, it will compile very fast (just a few minutes on my box).

If you have trouble getting a mailto handler working, see the Firefox 3.0 + Email links = No Thunderbird? thread.

While I've only tested these on a system with Gnome Slacky installed, I expect them to work on non-GNOME systems as well.

NOTE: The only version of Flash I recommend is version 9. The current Flash 10 release candidate crashes when I load Gamespot. If you're using GSlacky, be aware that it ships with its own Flash plugin, which I've also had trouble with.

Last edited by dugan; 09-03-2008 at 01:30 AM.
 
Old 06-30-2008, 03:59 AM   #2
Toods
Member
 
Registered: Dec 2005
Location: UK
Distribution: Slackware 12.1
Posts: 249

Rep: Reputation: 32
Interesting way to build Firefox. I will give it a try.

Are you sure that the symlink is correct in the 'doinst.sh' file?.

Bill.

Last edited by Toods; 06-30-2008 at 07:16 AM.
 
Old 06-30-2008, 09:18 AM   #3
jong357
Senior Member
 
Registered: May 2003
Location: Columbus, OH
Distribution: DIYSlackware
Posts: 1,914

Rep: Reputation: 52
There's no force flag so it should be ok... Firefox should ship with a "default plugin". So if it's there the symlink won't get created. Great idea tho. I hate /usr/lib/mozilla... That and progs like azureus don't look in that catch all/hackish directory that is /usr/lib/mozilla/plugins....

I've never built with configure. Suprised I've never tried it. I always use a .mozconfig and build in a different directory.

But yea. I'm a little bummed about the new gecko api. Means I'll probably drop firefox from my gnome offering. No need for it anymore.

Actually, it'd be super sweet if Slackware shipped xulrunner... Anything plugin related needs it now...

Last edited by jong357; 06-30-2008 at 09:35 AM.
 
Old 06-30-2008, 09:45 AM   #4
dugan
Senior Member
 
Registered: Nov 2003
Location: Canada
Distribution: distro hopper
Posts: 4,970

Original Poster
Rep: Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552
The symlink is correct. Firefox looks for plugins in its own "plugins" directory, which in this case is /usr/lib/firefox-3.0/plugins. This directory is not automatically created when you build against XULRunner. Slackware expects plugins to be in /usr/lib/mozilla/plugins. So making /usr/lib/firefox-3.0/plugins a symlink to /usr/lib/mozilla/plugins allows Firefox to see the plugins you've already installed.

As far as I know, getting Firefox to see /usr/lib/mozilla/plugins is impossible when you're building against XULRunner. The patch used by Slackware and BlueWhite64 doesn't work, and the (different) one used by GSB doesn't work either. So you need the symlink.

Last edited by dugan; 06-30-2008 at 09:54 AM.
 
Old 06-30-2008, 09:59 AM   #5
jong357
Senior Member
 
Registered: May 2003
Location: Columbus, OH
Distribution: DIYSlackware
Posts: 1,914

Rep: Reputation: 52
Oh.. Sorry. You don't even get a plugins directory when you build against xulrunner...
 
Old 06-30-2008, 10:43 AM   #6
shadowsnipes
Senior Member
 
Registered: Sep 2005
Distribution: Slackware
Posts: 1,442

Rep: Reputation: 70
Quote:
Originally Posted by dugan View Post
The symlink is correct. Firefox looks for plugins in its own "plugins" directory, which in this case is /usr/lib/firefox-3.0/plugins. This directory is not automatically created when you build against XULRunner. Slackware expects plugins to be in /usr/lib/mozilla/plugins. So making /usr/lib/firefox-3.0/plugins a symlink to /usr/lib/mozilla/plugins allows Firefox to see the plugins you've already installed.

As far as I know, getting Firefox to see /usr/lib/mozilla/plugins is impossible when you're building against XULRunner. The patch used by Slackware and BlueWhite64 doesn't work, and the (different) one used by GSB doesn't work either. So you need the symlink.
I don't see any reason not to symlink to /usr/lib/mozilla/plugins. Most software installs to mozilla/plugins, so plugins usually only end up in firefox/plugins if the user manually puts them there. This is what I used to do in my Swiftfox slackBuild, but I reverted to the Slackware style patch because Swiftfox sometimes shipped with a print plugin (probably useless).

Anyway, the slackBuilds do indeed look interesting, so I may test them out soon. Thank you for your contributions.

Edit:
I don't think you need the "#!/bin/bash" at the top of your doinst.sh.

Last edited by shadowsnipes; 06-30-2008 at 10:52 AM.
 
Old 06-30-2008, 11:39 AM   #7
Toods
Member
 
Registered: Dec 2005
Location: UK
Distribution: Slackware 12.1
Posts: 249

Rep: Reputation: 32
Quote:
Originally Posted by dugan View Post
The symlink is correct ---
Yes, I understand what you are doing here, but maybe I don't understand the syntax of the command in your 'doinst.sh' file:
Quote:
ln -s /usr/lib/mozilla/plugins /usr/lib/firefox-3.0
This is how I would write the command:
Quote:
ln -s /usr/lib/mozilla/plugins /usr/lib/firefox-3.0/plugins
That was the reason I questioned it.

Bill.

Last edited by Toods; 06-30-2008 at 11:41 AM.
 
Old 06-30-2008, 11:53 AM   #8
shadowsnipes
Senior Member
 
Registered: Sep 2005
Distribution: Slackware
Posts: 1,442

Rep: Reputation: 70
It might also be a good idea to
Code:
mkdir -p $PKG/usr/lib/mozilla/plugins
in the SlackBuild in case the directory doesn't exist on the system.
 
Old 06-30-2008, 01:02 PM   #9
shadowsnipes
Senior Member
 
Registered: Sep 2005
Distribution: Slackware
Posts: 1,442

Rep: Reputation: 70
Quote:
Originally Posted by dugan View Post
For dependencies, you need Daedra's FontConfig and Cairo packages from the Beautiful Fonts in 12.1 thread.
Are you sure that Daedra's Cairo package is the one needed for xulrunner? I just tried to run the xulrunner slackBuild on a clean 12.1 install after I installed the cairo-1.4.14 package and I got this
Code:
configure: warning: Cannot build gnomevfs without required libraries. Removing gnomevfs from MOZ_EXTENSIONS.
Requested 'cairo >= 1.6.0' but version of cairo is 1.4.14
configure: error: Library requirements (cairo >= 1.6.0 freetype2 fontconfig) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.
make: *** No targets specified and no makefile found.  Stop.
Perhaps you meant that we need to use the cairo patch on 1.6.0?

Also, I did not see a FontConfig package. There was just a fonts.conf file.
 
Old 06-30-2008, 01:08 PM   #10
dugan
Senior Member
 
Registered: Nov 2003
Location: Canada
Distribution: distro hopper
Posts: 4,970

Original Poster
Rep: Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552
The correct Cairo (1.6.4) and Fontconfig packages are on the second page:
http://www.linuxquestions.org/questi...74#post3191474

Last edited by dugan; 06-30-2008 at 01:10 PM.
 
Old 07-01-2008, 11:12 AM   #11
shadowsnipes
Senior Member
 
Registered: Sep 2005
Distribution: Slackware
Posts: 1,442

Rep: Reputation: 70
Quote:
Originally Posted by dugan View Post
The correct Cairo (1.6.4) and Fontconfig packages are on the second page:
http://www.linuxquestions.org/questi...74#post3191474
Thank you. It may be helpful to edit your OP so that it points people to that post.

What is the advantage of building firefox with XULrunner (versus with --disable-libxul)?
 
Old 07-01-2008, 11:23 AM   #12
dugan
Senior Member
 
Registered: Nov 2003
Location: Canada
Distribution: distro hopper
Posts: 4,970

Original Poster
Rep: Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552
You need xulrunner to compile programs against! The pkgconfig files (with a .pc extension) that used to come with Firefox 3 have all been moved to xulrunner. Building xulrunner is the only way to get them.
 
Old 07-01-2008, 01:06 PM   #13
jong357
Senior Member
 
Registered: May 2003
Location: Columbus, OH
Distribution: DIYSlackware
Posts: 1,914

Rep: Reputation: 52
Yea. The new gecko 1.9 API changed everything. This is why I think it would be a great idea for Slackware to add xulrunner to it's lineup. It's now become a pretty important package all around.

http://fedoraproject.org/wiki/Releas...nnerAPIChanges

You'll have all the libs you see in the current firefox directory plus many needed pkgconfig files and a development sdk directory with the required hearders to build (many things) against. You can also snag a complete set of NSS headers as well (not part of the default install).

Once you have xulrunner on the system, building firefox, seamonkey, thunderbird et. all takes literally 2-3 minutes on a newer system and is a fraction of the size that firefox-2.x was...

Quote:
Originally Posted by dugan View Post
... that used to come with Firefox 3 ...
I think you meant firefox 2...

Quote:
Originally Posted by shadowsnipes
What is the advantage of building firefox with XULrunner (versus with --disable-libxul)?
You have one centralized package containing all the necessary libs and headers to build any gecko based application against. Really nice to have and long overdue actually.

EDIT - Scratch my "extra NSS headers" comment. Looks like your covered with the default install of xulrunner.

Last edited by jong357; 07-01-2008 at 02:08 PM.
 
Old 07-01-2008, 01:33 PM   #14
jong357
Senior Member
 
Registered: May 2003
Location: Columbus, OH
Distribution: DIYSlackware
Posts: 1,914

Rep: Reputation: 52
BTW, what's the reasoning behind a new fontconfig package from the beatiful fonts thread? That shouldn't have anything to do with anything. Yea, you need a recent cairo and general "G libs" but that should be the only build time dependency if I'm not mistaken.

Granted, I haven't built any of it on Slackware yet. Waiting for the new Gnome release in a couple days, but I've migrated on my DIY build and I'm not doing anything funky with freetype, fontconfig or cairo. Are you sure your not just trying to pawn Daedra's font changes onto people?
 
Old 07-01-2008, 01:51 PM   #15
dugan
Senior Member
 
Registered: Nov 2003
Location: Canada
Distribution: distro hopper
Posts: 4,970

Original Poster
Rep: Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552Reputation: 1552
I thought you needed fontconfig 2.6 to build Cairo 1.6. But I just checked and realized I was mistaken.

Last edited by dugan; 07-01-2008 at 01:56 PM.
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Slackbuilds from 12.0 for 12.1 arubin Slackware 7 05-07-2008 04:51 AM
Slackbuilds are great arubin Slackware 1 12-17-2007 08:42 PM
slackbuilds.org harkonen Slackware 16 08-22-2007 03:01 PM
Use SlackBuilds.org or my own hosting to offer up SlackBuilds? hollywoodb Slackware 6 11-30-2006 09:56 PM
Are there any SlackBuilds for Firefox 1.5 (build from source) spinner_0 Slackware 7 01-18-2006 05:48 AM


All times are GMT -5. The time now is 04:34 PM.

Main Menu
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
identi.ca: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration