Fernando de Oliveira wrote:
Sorry, *I was wrong* about telling as invalid the use of

mk_add_options MOZ_MAKE_FLAGS="-j$(getconf _NPROCESSORS_ONLN)"

in mozconfig. More disscussed below.

I.   CHOWN
II.  Number of threads
III. Make install analysis
IV.  Conclusions

I.   CHOWN

After building as normal user:

su root

cd /tmp/mozilla-release

make -f client.mk install INSTALL_SDK=

Found *59 non-root* files.

# find /usr/lib/firefox-36.0/ -not -user 0 | wc -l
59


II.  Number of threads

BTW, number of threads used is the same as for build (build was logged
in another file):

$ xzgrep 'make -j' firefox-36.0-blfs-2015.02.27-11h17m35s.log.xz
make -j5 -C /tmp/mozilla-release/firefox-build-dir install


III. Make install analysis

This is understood by analysing the make install log:

{{{
Adding client.mk options from /tmp/mozilla-release/mozconfig:
     MOZ_MAKE_FLAGS=-j5
}}}

shows that MOZ_MAKE_FLAGS used is set previously (mozconfig, in this case).

...

Further ahead, we have the actual install commands:

1) ../../config/nsinstall -D /usr/lib/firefox-36.0
2) (cd ../../dist/firefox && tar --exclude=precomplete
--exclude=.mkdir.done -chf - .) | \
   (cd /usr/lib/firefox-36.0 && tar -xf -)
3) ../../config/nsinstall -D /usr/bin
4) rm -f -f /usr/bin/firefox
5) ln -s /usr/lib/firefox-36.0/firefox /usr/bin

First line creates 0:0 /usr/lib/firefox-36.0 - that is OK.
Second line install files there, using tar to pack a stream.tar which is
piped to another tar which unpacks into /usr/lib/firefox-36.0 - that is
not OK.
Third to fifth lines are trivial, removes, then creates a new 0:0
/usr/bin/firefox - that is OK.

Problem is the Second line, because the packed then unpacked files were
created by a *normal user*, as we always want to be done in BLFS.

IV.  Conclusions

Conclusion 1: *chown is necessary*


Sorry, *I was wrong* about telling as invalid the use of

mk_add_options MOZ_MAKE_FLAGS="-j$(getconf _NPROCESSORS_ONLN)"

in mozconfig. It does get the correct value. Probably, I forgot to save
the mozconfig and it picked up the previously save value 4.

However, I just found that *if it is not defined* (in mozconfig or
anywhere else), it will work like

mk_add_options MOZ_MAKE_FLAGS="-j$(getconf _NPROCESSORS_ONLN)"

Conclusion 2: it is a good idea to define MOZ_MAKE_FLAGS somewhere, or
it will default to the available threads (=MOZ_MAKE_FLAGS="-j$(getconf
_NPROCESSORS_ONLN)".

Conclusion 3: if MOZ_MAKE_FLAGS is not used in the make install line, it
will use default or previously defined value. If you want a install with
-j1, MOZ_MAKE_FLAGS=-j1 must be exported or defined in mozconfig or in
the make install line.

Fernando, thank you for the detailed analysis. Other than timing issues for the book, do we really care how many threads are used during the build and install? Perhaps a note in the mozconfig is all that is needed.

  -- Bruce


--
http://lists.linuxfromscratch.org/listinfo/blfs-dev
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to