Solved Can you build Firefox? [PORT_LLVM=on ? What? Where!?]

On an amd64 system running 11.1-REL?

I've been trying for two days... days, and night (a med gives me insomnia right now)...

:_;

I can build firefox-ecr with the default options only; I re-built Rust not against LLVM because of a bug the maintainers told me about... didn't work...

fml (,_,)
 

Attachments

  • firefox-build.out.txt
    330.4 KB · Views: 597
  • firefox-build-default.out.txt
    131.4 KB · Views: 371
  • firefox-make-conf.txt
    1.9 KB · Views: 448
11.1-p3 or the latest i think.. i updated from a bare new install yesterday...

Did you change anything to make config? Do you use Synth or Poudrière?
 
No issues here. Build one last week, only had issues with the "Rust LLVM" bug but other than that clean build. However I am considering to grab the thing from the binary repositories because of the massive buildtime.
 
Yeah, I forgot about that: ports-mgmt/poudriere in here:

Code:
# This file is auto-generated by 'make config'.
# Options for firefox-56.0.1,1
_OPTIONS_READ=firefox-56.0.1,1
_FILE_COMPLETE_OPTIONS_LIST=BUNDLED_CAIRO CANBERRA DBUS DEBUG DTRACE FFMPEG GCONF INTEGER_SAMPLES LIBPROXY OPTIMIZED_CFLAGS PGO PROFILE TEST ALSA JACK PULSEAUDIO SNDIO
OPTIONS_FILE_UNSET+=BUNDLED_CAIRO
OPTIONS_FILE_UNSET+=CANBERRA
OPTIONS_FILE_UNSET+=DBUS
OPTIONS_FILE_UNSET+=DEBUG
OPTIONS_FILE_UNSET+=DTRACE
OPTIONS_FILE_SET+=FFMPEG
OPTIONS_FILE_UNSET+=GCONF
OPTIONS_FILE_UNSET+=INTEGER_SAMPLES
OPTIONS_FILE_UNSET+=LIBPROXY
OPTIONS_FILE_SET+=OPTIMIZED_CFLAGS
OPTIONS_FILE_UNSET+=PGO
OPTIONS_FILE_SET+=PROFILE
OPTIONS_FILE_UNSET+=TEST
OPTIONS_FILE_UNSET+=ALSA
OPTIONS_FILE_UNSET+=JACK
OPTIONS_FILE_UNSET+=PULSEAUDIO
OPTIONS_FILE_SET+=SNDIO
 
So somebody there, and the people at the gecko and ports mailing lists say that the problem (why I can't compile Firefox) is because of PORT_LLVM=on.

What does that mean?

It's like these people want to try to make it look like they know what they're talking about without offering to prove it, or that they forgot at some point that they were asking for help or trying to help...

Also I started using Synth to compile ports... seems only marginally useful, but I seem to be drawn to it, somehow... I'm not sure if it's faster, maybe I'll test it, idk... I'm just really trying to get Firefox compiled right now... : [
 
So somebody there, and the people at the gecko and ports mailing lists say that the problem (why I can't compile Firefox) is because of PORT_LLVM=on.

What does that mean?
It's a build option for lang/rust (on which www/firefox depends):
Code:
dice@molly:...ports/lang/rust % make showconfig
===> The following configuration options are available for rust-1.21.0_1:
     DOCS=on: Build and/or install documentation
     GDB=off: Install ports gdb (necessary for debugging rust programs)
     LLNEXTGEN=off: Build with grammar verification
     PORT_LLVM=off: Build against devel/llvm40 instead of bundled version     [b]<--------[/b]
     SOURCES=off: Install source files
===> Use 'make config' to modify these settings
 
It's a build option for lang/rust (on which www/firefox depends):
Code:
dice@molly:...ports/lang/rust % make showconfig
===> The following configuration options are available for rust-1.21.0_1:
     DOCS=on: Build and/or install documentation
     GDB=off: Install ports gdb (necessary for debugging rust programs)
     LLNEXTGEN=off: Build with grammar verification
     PORT_LLVM=off: Build against devel/llvm40 instead of bundled version     <--------
     SOURCES=off: Install source files
===> Use 'make config' to modify these settings

So I have to build rust with the bundled version of llvm, or with the one that's on our systems? i just installed llvm5...

How is building Firefox so much trouble... it's the only port I couldn't build, and I'm sure that right next to Xorg, it's the most popular one...
 
It hasn't built properly for me either. Not sure why that is but it seems the switch to Rust is causing all sorts of weird and wonderful compiler issues.

I'm sorry to be finding comfort in your failure, SirDice. *taps your shoulder in sympathy* : |
 
Yeah, I forgot about that: ports-mgmt/poudriere in here:

Code:
# This file is auto-generated by 'make config'.
# Options for firefox-56.0.1,1
_OPTIONS_READ=firefox-56.0.1,1
_FILE_COMPLETE_OPTIONS_LIST=BUNDLED_CAIRO CANBERRA DBUS DEBUG DTRACE FFMPEG GCONF INTEGER_SAMPLES LIBPROXY OPTIMIZED_CFLAGS PGO PROFILE TEST ALSA JACK PULSEAUDIO SNDIO
OPTIONS_FILE_UNSET+=BUNDLED_CAIRO
OPTIONS_FILE_UNSET+=CANBERRA
OPTIONS_FILE_UNSET+=DBUS
OPTIONS_FILE_UNSET+=DEBUG
OPTIONS_FILE_UNSET+=DTRACE
OPTIONS_FILE_SET+=FFMPEG
OPTIONS_FILE_UNSET+=GCONF
OPTIONS_FILE_UNSET+=INTEGER_SAMPLES
OPTIONS_FILE_UNSET+=LIBPROXY
OPTIONS_FILE_SET+=OPTIMIZED_CFLAGS
OPTIONS_FILE_UNSET+=PGO
OPTIONS_FILE_SET+=PROFILE
OPTIONS_FILE_UNSET+=TEST
OPTIONS_FILE_UNSET+=ALSA
OPTIONS_FILE_UNSET+=JACK
OPTIONS_FILE_UNSET+=PULSEAUDIO
OPTIONS_FILE_SET+=SNDIO

aight, n-. I'm building Firefox 57.0.1 in Poudriere...

it's kind of fast, it builds in ram... 'm impressed a bit...

hopefully it works... ;_;

oh yeah, and what do i do to install Firefox on my main system from what Poudriere built? Do I have to find the PKG and specify it as a file on the command line, or is there a better way? I guess PKG is going to want to make sure everything on my system is equal to the build environment, so maybe it's not just going to be Firefox that it's going to need...

What do I do when it's finished ?
 
You should configure the Poudriere repo just like Synth. Well, Synth configure it automatically but you could just copy and adjust as necessary.

/usr/local/etc/pkg/repos

Later just use pkg.

If you want the nice web interface to get log and all kind of information of your builds, you need to setup a web server. I use www/nginx-lite for that.

This is a good GUIDE for Poudriere.
 
This is my (I just got it somewhere) www/nginx configuration for ports-mgmt/poudriere:

Code:
server {

   listen       80;
   server_name    YOUR;
   root       /usr/local/share/poudriere/html;

   # Allow caching static resources
   location ~* ^.+\.(jpg|jpeg|gif|png|ico|svg|woff|css|js|html)$ {
       add_header Cache-Control "public";
       expires 2d;
   }

   location /data {
       alias /usr/local/poudriere/data/logs/bulk;

       # Allow caching dynamic files but ensure they get rechecked
       location ~* ^.+\.(log|txz|tbz|bz2|gz)$ {
           add_header Cache-Control "public, must-revalidate, proxy-revalidate";
       }

       # Don't log json requests as they come in frequently and ensure
       # caching works as expected
       location ~* ^.+\.(json)$ {
           add_header Cache-Control "public, must-revalidate, proxy-revalidate";
           access_log off;
           log_not_found off;
       }

       # Allow indexing only in log dirs
       location ~ /data/?.*/(logs|latest-per-pkg)/ {
           autoindex on;
       }

       break;
   }

   location /packages {
       root /usr/local/poudriere/data;
       autoindex on;
   }

}
 
This is my (I just got it somewhere) www/nginx configuration for ports-mgmt/poudriere:

Code:
server {

   listen       80;
   server_name    YOUR;
   root       /usr/local/share/poudriere/html;

   # Allow caching static resources
   location ~* ^.+\.(jpg|jpeg|gif|png|ico|svg|woff|css|js|html)$ {
       add_header Cache-Control "public";
       expires 2d;
   }

   location /data {
       alias /usr/local/poudriere/data/logs/bulk;

       # Allow caching dynamic files but ensure they get rechecked
       location ~* ^.+\.(log|txz|tbz|bz2|gz)$ {
           add_header Cache-Control "public, must-revalidate, proxy-revalidate";
       }

       # Don't log json requests as they come in frequently and ensure
       # caching works as expected
       location ~* ^.+\.(json)$ {
           add_header Cache-Control "public, must-revalidate, proxy-revalidate";
           access_log off;
           log_not_found off;
       }

       # Allow indexing only in log dirs
       location ~ /data/?.*/(logs|latest-per-pkg)/ {
           autoindex on;
       }

       break;
   }

   location /packages {
       root /usr/local/poudriere/data;
       autoindex on;
   }

}

Oh, I'm good with nginx... I have it running on a E4200 router with OpenWRT... It's running that, and Bind, (and ftpd, and sshd) and I wanted to put a mail server on it, too, but I ran out of space, and never got to mount a USB drive to it...

It was kinda neat because I had set up forwarding on it so it would connect to my Plex server web interface, and I could play videos on my cell phone over LTE without having to pay for the app... I had set it up as plex.fu-kt.tk instead of going for my IP and port... it was neat.

I'm fairly experienced... It's just building ports like this is frustrating, especially since I managed to build everything so far, and all I encountered were one or two loops and ports with vulnerabilities... The rest just built like a charm, and now I'm trying to build a single thing, something you'd think is well maintained on top of that, not some obscure library nobody used in a decade, but it just won't build, and I don't know how to bypass the error it's giving me... I don't know or understand the mechanism it uses to build itself, and nobody seems to be able to point me in the right direction, either...

It's just a bit frustrating... I'm in no way a newbie, though... I can comfortably configure Apache, NGINX, PHP, MySQL (all 600 lines of it), and I was even going for Sendmail many years ago already (all 1500 lines of it), but I gave up in the process)... I also have DNS running on a box, like I said, though my own domains aren't configured on it, idk why I never got around to it... I'm not really into computers anymore, tbqh, but I do know enough that Windows is sometimes frustrating because of how limiting it is, and how badly engineered it is, and I am running Firefox on KDE4 on FreeBSD right now, and my video card's spewing out 60-90 fps (I got it to 90 the other day after I ran Marble, but I don't know how to get it back to 90)... I'm just not running the Firefox I want to be running, and I'm not running the DE I want to be trying (Cinnamon)... KDE's nice, but it's too heavy, I think... I want to be able to do things with it, not just set it up some way... I'm not inspired to theme it... I just wanted to make or use a nice dark theme for me and my so to have at home, and he'd probably think FreeBSD is cool as balls instead of Winderps since we play games on the xbone, ... it's really more because i'm trying to setup a cozy place for me and my bf, and winderps isn't cozy to me... I know it might seem retarded, but FreeBSD is cozier to me than Windows, and I'm sure it is to him, too, even if he probably never used it, just because of the kind of person he is, but he's by no way a computer person, so if there's not an easy to use interface on it, he's not going to be able to enjoy the fruits i would've brought back as much, .. id just really try to get this to at least be stable with a decent de and Firefox in the very near future so we can just watch movies and browse and stuff without feeling like we're ... using windoze... like we're using something shallow that we can't really own and that's not really ours... idk how to say it, but just the electromagnetic field of the computer is different... the way it outputs graphics is different, the light it makes is different... it's all in the code, the people who wrote it, how they wrote it, why, etc... the computer's soul, so to speak, i want the computer to have a nice soul.. : x
 
rust-1.23.0

No option for PORT_LLVM.

Build takes1.5 hours. Fails all the time.


fatal runtime error: failed to initiate panic, error 316875728
error: Could not compile 'rustc'.

Caused by:

process didn't exit successfully '/wrkdirs/usr/ports/lang/rust/work/rustc-1.23.0-src/build/bootstrap/debug/rustc --\
(...)
(signal: 6, SIGABRT: process abort signal)
thread 'main' panicked at 'command did not execute successfully: "/wrkdirs/usr/ports/lang/rust/work/rustc-1.23.0-src/build/[B]x86_64_unknown_freebsd[/B]/stage0/bin/[FILE]cargo[/FILE] (...)


(...)
 
I think you are running out of memory, worth watch with top while building it.

Worth checking, 4G RAM only.

Like if I said that when FreeBSD 5 was the thing...

I realized, though, that I'm not sure which dependecies are pulled in automatically, anymore. For example, some python packages recommend installing some dependencies manually.
 
I built www/waterfox from ports yesterday without any problems whatsoever and it uses rust. I did not change any of the default lang/rust variables and ports-mgmt/portmaster performed as expected.

This box has an Intel Core2 Duo T7700 @ 2.4GHz and 4GB RAM.

I watched it pull in what you highlighted in bold:

Code:
x86_64_unknown_freebsd
 
Back
Top