Closed Bug 1634926 Opened 6 years ago Closed 6 years ago

Skip compiling nss on --with-system-nss

Categories

(Firefox Build System :: General, defect)

75 Branch
defect
Not set
normal

Tracking

(firefox-esr68 unaffected, firefox75 unaffected, firefox76 wontfix, firefox77 fixed, firefox78 fixed)

RESOLVED FIXED
mozilla78
Tracking Status
firefox-esr68 --- unaffected
firefox75 --- unaffected
firefox76 --- wontfix
firefox77 --- fixed
firefox78 --- fixed

People

(Reporter: dpa-mozilla, Assigned: glandium)

References

(Regression)

Details

(Keywords: regression)

Attachments

(2 files)

User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:75.0) Gecko/20100101 Firefox/75.0

Steps to reproduce:

Afrer compiling nss, I do manually substitute, rename and install nss.pc.in and nss-config.in .

Then I call

../firefox-75.0/configure --with-system-nss && make install

(for ./configure --with-system-nss to work the nss.pcand nss-config files must be available).

I expect that the de installed filefox will not contain libnss3.so , as the system has one, but firefox compiles and installs the nss libraries.

Is MOZ_SYSTEM_NSS set in the config.status file?

Yes. it is there.

That doesn't seem possible. I mean, the build system explicitly skips building nss when MOZ_SYSTEM_NSS is set. And it works properly in e.g. Debian packages.

With Firefox 76 I call:

../firefox-76.0/configure --with-system-bz2 --with-system-nspr --with-system-icu --with-system-libevent --with-system-zlib --enable-hardening --enable-js-shell --enable-cdp --enable-default-toolkit=cairo-gtk3-wayland --enable-raw --enable-webrtc --with-system-jpeg --with-system-libvpx --with-system-webp --enable-readline --enable-system-pixman --with-system-ffi --enable-cookies --with-necko-wifi --enable-negotiateauth --enable-pref-extensions --with-system-nss --with-nss-prefix=/usr/local --enable-wasm-gc --enable-typed-objects --enable-wasm-bigint --enable-wasm-bulk-memory

and I get

Compiling wast v13.0.0
Running CARGO=/usr/local/bin/cargo CARGO_MANIFEST_DIR=/src/mozilla/firefox-76.0/third_party/rust/wast CARGO_PKG_AUTHORS='Alex Crichton <alex@alexcrichton.com>' CARGO_PKG_DESCRIPTION='Customizable Rust parsers for the WebAssembly Text formats WAT and WAST ' CARGO_PKG_HOMEPAGE='https://github.com/bytecodealliance/wat/tree/master/crates/wast' CARGO_PKG_NAME=wast CARGO_PKG_REPOSITORY='https://github.com/bytecodealliance/wat/tree/master/crates/wast' CARGO_PKG_VERSION=13.0.0 CARGO_PKG_VERSION_MAJOR=13 CARGO_PKG_VERSION_MINOR=0 CARGO_PKG_VERSION_PATCH=0 CARGO_PKG_VERSION_PRE= LD_LIBRARY_PATH='/src/mozilla/firefox-760-build/release/deps:/usr/local/lib' /usr/local/bin/rustc --crate-name wast --edition=2018 /src/mozilla/firefox-76.0/third_party/rust/wast/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C opt-level=2 -C panic=abort --cfg 'feature="default"' --cfg 'feature="wasm-module"' -C metadata=5ae76d380ed79282 -C extra-filename=-5ae76d380ed79282 --out-dir /src/mozilla/firefox-760-build/x86_64-unknown-linux-gnu/release/deps --target x86_64-unknown-linux-gnu -C linker=/src/mozilla/firefox-76.0/build/cargo-linker -L dependency=/src/mozilla/firefox-760-build/x86_64-unknown-linux-gnu/release/deps -L dependency=/src/mozilla/firefox-760-build/release/deps --extern leb128=/src/mozilla/firefox-760-build/x86_64-unknown-linux-gnu/release/deps/libleb128-5c442bb5f96a57f9.rmeta --cap-lints warn -C opt-level=2 -C debuginfo=2 --cap-lints warn -C codegen-units=1
Compiling wat v1.0.14
Running CARGO=/usr/local/bin/cargo CARGO_MANIFEST_DIR=/src/mozilla/firefox-76.0/third_party/rust/wat CARGO_PKG_AUTHORS='Alex Crichton <alex@alexcrichton.com>' CARGO_PKG_DESCRIPTION='Rust parser for the WebAssembly Text format, WAT ' CARGO_PKG_HOMEPAGE='https://github.com/bytecodealliance/wat' CARGO_PKG_NAME=wat CARGO_PKG_REPOSITORY='https://github.com/bytecodealliance/wat' CARGO_PKG_VERSION=1.0.14 CARGO_PKG_VERSION_MAJOR=1 CARGO_PKG_VERSION_MINOR=0 CARGO_PKG_VERSION_PATCH=14 CARGO_PKG_VERSION_PRE= LD_LIBRARY_PATH='/src/mozilla/firefox-760-build/release/deps:/usr/local/lib' /usr/local/bin/rustc --crate-name wat --edition=2018 /src/mozilla/firefox-76.0/third_party/rust/wat/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type lib --emit=dep-info,metadata,link -C opt-level=2 -C panic=abort -C metadata=3de51664049c70f5 -C extra-filename=-3de51664049c70f5 --out-dir /src/mozilla/firefox-760-build/x86_64-unknown-linux-gnu/release/deps --target x86_64-unknown-linux-gnu -C linker=/src/mozilla/firefox-76.0/build/cargo-linker -L dependency=/src/mozilla/firefox-760-build/x86_64-unknown-linux-gnu/release/deps -L dependency=/src/mozilla/firefox-760-build/release/deps --extern wast=/src/mozilla/firefox-760-build/x86_64-unknown-linux-gnu/release/deps/libwast-5ae76d380ed79282.rmeta --cap-lints warn -C opt-level=2 -C debuginfo=2 --cap-lints warn -C codegen-units=1
Compiling jsrust v0.1.0 (/src/mozilla/firefox-76.0/js/src/rust)
Running CARGO=/usr/local/bin/cargo CARGO_MANIFEST_DIR=/src/mozilla/firefox-76.0/js/src/rust CARGO_PKG_AUTHORS='The Spidermonkey developers' CARGO_PKG_DESCRIPTION= CARGO_PKG_HOMEPAGE= CARGO_PKG_NAME=jsrust CARGO_PKG_REPOSITORY= CARGO_PKG_VERSION=0.1.0 CARGO_PKG_VERSION_MAJOR=0 CARGO_PKG_VERSION_MINOR=1 CARGO_PKG_VERSION_PATCH=0 CARGO_PKG_VERSION_PRE= LD_LIBRARY_PATH='/src/mozilla/firefox-760-build/release/deps:/usr/local/lib' /usr/local/bin/rustc --crate-name jsrust js/src/rust/lib.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type staticlib --emit=dep-info,link -C opt-level=2 -C panic=abort -Clto -C metadata=380f1c9ae4a6dce8 -C extra-filename=-380f1c9ae4a6dce8 --out-dir /src/mozilla/firefox-760-build/x86_64-unknown-linux-gnu/release/deps --target x86_64-unknown-linux-gnu -C linker=/src/mozilla/firefox-76.0/build/cargo-linker -L dependency=/src/mozilla/firefox-760-build/x86_64-unknown-linux-gnu/release/deps -L dependency=/src/mozilla/firefox-760-build/release/deps --extern jsrust_shared=/src/mozilla/firefox-760-build/x86_64-unknown-linux-gnu/release/deps/libjsrust_shared-f6e5b67304e710bc.rlib --extern mozglue_static=/src/mozilla/firefox-760-build/x86_64-unknown-linux-gnu/release/deps/libmozglue_static-f175f11d7e95921c.rlib --extern wasmparser=/src/mozilla/firefox-760-build/x86_64-unknown-linux-gnu/release/deps/libwasmparser-c624e35c3a68234d.rlib --extern wat=/src/mozilla/firefox-760-build/x86_64-unknown-linux-gnu/release/deps/libwat-3de51664049c70f5.rlib -C opt-level=2 -C debuginfo=2 --cap-lints warn -C codegen-units=1 -L native=/src/mozilla/firefox-760-build/x86_64-unknown-linux-gnu/release/build/mozglue-static-b0becf2ac5b5aa37/out
Finished release [optimized] target(s) in 1m 20s
/src/mozilla/firefox-760-build/_virtualenvs/init_py3/bin/python -m mozbuild.action.check_binary --target --networking /src/mozilla/firefox-760-build/x86_64-unknown-linux-gnu/release/libjsrust.a
make[3]: Leaving directory '/src/mozilla/firefox-760-build/js/src/rust'
make[2]: *** No rule to make target 'security/nss/lib/nss/nss_nss3/target', needed by 'netwerk/test/http3server/target'. Stop.
make[2]: Leaving directory '/src/mozilla/firefox-760-build'
make[1]: *** [/src/mozilla/firefox-76.0/config/recurse.mk:34: compile] Error 2
make[1]: Leaving directory '/src/mozilla/firefox-760-build'
make: *** [/src/mozilla/firefox-76.0/config/rules.mk:394: default] Error 2

Well, in comment 0 you had "75". If you're talking about 76, and with the log you pasted, it seems like a regression from bug 1587353

Regressed by: 1587353
Has Regression Range: --- → yes

You might be able to work around the problem by building with --disable-tests.

I used 75. With 76 the situation changed.

I will retry --with-system-nss once the regression is fixed.

Why was the config/recurse.mk change needed in bug 1587353? I don't see anything in that rust code that uses nss, and if I remove it entirely, the build goes through just fine, even if I force all the rust code to build before C++ (MOZ_RUST_TIER=1).

See comment 9.

Flags: needinfo?(michal.novotny)
Flags: needinfo?(dd.mozilla)

the test server uses neqo that uses nss.
Fixing bug 1625886 will probably fix this.

Flags: needinfo?(dd.mozilla)

Oh boy, if neqo-crypto is built before in-tree NSS, it's linked against system NSS if there happens to be one.

Fixing bug 1625886 will probably fix this.

Probably not.

Flags: needinfo?(michal.novotny)

With

../firefox-76.0/configure --with-system-bz2 --with-system-nspr --with-system-icu --with-system-libevent --with-system-zlib --enable-hardening --enable-js-shell --enable-cdp --enable-default-toolkit=cairo-gtk3-wayland --enable-raw --enable-webrtc --with-system-jpeg --with-system-libvpx --with-system-webp --enable-readline --enable-system-pixman --with-system-ffi --enable-cookies --with-necko-wifi --enable-negotiateauth --enable-pref-extensions --enable-typed-objects --enable-wasm-gc --enable-wasm-bigint --enable-wasm-bulk-memory

and thus without SYSTEM NSS the build fails with:

   Fresh encoding_c v0.9.7
   Fresh wat v1.0.14
   Fresh jsrust_shared v0.1.0 (/src/mozilla/firefox-76.0/js/src/rust/shared)
   Fresh jsrust v0.1.0 (/src/mozilla/firefox-76.0/js/src/rust)
Finished release [optimized] target(s) in 2.71s

/src/mozilla/firefox-760-build/_virtualenvs/init_py3/bin/python -m mozbuild.action.check_binary --target --networking /src/mozilla/firefox-760-build/x86_64-unknown-linux-gnu/release/libjsrust.a
make[3]: Leaving directory '/src/mozilla/firefox-760-build/js/src/rust'
make[2]: *** No rule to make target 'config/external/nspr/pr/target', needed by 'netwerk/test/http3server/target'. Stop.
make[2]: Leaving directory '/src/mozilla/firefox-760-build'
make[1]: *** [/src/mozilla/firefox-76.0/config/recurse.mk:34: compile] Error 2
make[1]: Leaving directory '/src/mozilla/firefox-760-build'
make: *** [/src/mozilla/firefox-76.0/config/rules.mk:394: default] Error 2

Assignee: nobody → mh+mozilla
Attachment #9145713 - Attachment description: Bug 1634926 - Don't depend on in-tree NSS when building against system NSS. → Bug 1634926 - Don't depend on in-tree NSS/NSPR when building against system NSS/NSPR.

With Firefox 76 calling

../firefox-76.0/configure --with-system-bz2 --with-system-nspr --with-system-icu --with-system-libevent --with-system-zlib --enable-hardening --enable-js-shell --enable-cdp --enable-default-toolkit=cairo-gtk3-wayland --enable-raw --enable-webrtc --with-system-jpeg --with-system-libvpx --with-system-webp --enable-readline --enable-system-pixman --with-system-ffi --enable-cookies --with-necko-wifi --enable-negotiateauth --enable-pref-extensions --enable-typed-objects --enable-wasm-gc --enable-wasm-bigint --enable-wasm-bulk-memory --disable-tests --with-system-nss --enable-wasm-reftypes && make && make install

does not install NSS.

Pushed by mh@glandium.org: https://hg.mozilla.org/integration/autoland/rev/1aa55ae9da78 Don't depend on in-tree NSS/NSPR when building against system NSS/NSPR. r=froydnj https://hg.mozilla.org/integration/autoland/rev/38d8221faa63 Drive-by: fix condition for security/target vs. multiple target. r=froydnj
Status: UNCONFIRMED → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla78

Set release status flags based on info from the regressing bug 1587353

The patch landed in nightly and beta is affected.
:glandium, is this bug important enough to require an uplift?
If not please set status_beta to wontfix.

For more information, please visit auto_nag documentation.

Flags: needinfo?(mh+mozilla)

Comment on attachment 9145713 [details]
Bug 1634926 - Don't depend on in-tree NSS/NSPR when building against system NSS/NSPR.

Beta/Release Uplift Approval Request

  • User impact if declined: Build failures against system NSS/NSPR
  • Is this code covered by automated tests?: No
  • Has the fix been verified in Nightly?: Yes
  • Needs manual test from QE?: No
  • If yes, steps to reproduce:
  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): Build change only.
  • String changes made/needed:
Flags: needinfo?(mh+mozilla)
Attachment #9145713 - Flags: approval-mozilla-beta?

Comment on attachment 9145713 [details]
Bug 1634926 - Don't depend on in-tree NSS/NSPR when building against system NSS/NSPR.

Uplift approved for beta, thanks.

Attachment #9145713 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: