Fwd: A major cleanup effort for NSPR, new major release version 5

Kai Engert <[email protected]> Mon, 19 Jan 2026 15:17:40 +0100
Newsgroups gmane.comp.mozilla.crypto
Message-ID <[email protected]>
Simon has asked me to forward his message to the list, while he's 
working on subscribing.

(If anyone of you isn't subscribed yet, feel free to CC me on your 
reply, and I'll forward if neccessary. The list might have some strict 
anti-spam measures active that we need to figure out.)

Kai


-------- Forwarded Message --------
Subject: Re: A major cleanup effort for NSPR, new major release version 5
Date: Mon, 19 Jan 2026 13:11:04 +0100
From: Simon Josefsson <[email protected]>
To: Kai Engert <[email protected]>
CC: [email protected]

Hi

There are other users of NSPR than NSS/Firefox/Thunderbird out there.

Will you review their API usage before removing code?

NSPR in Debian is used by the packages below.

One approach to gain confidence in a v5.x branch is to do incremental
and frequent test releases, and testing building all packages below
against it.  Then you would quickly identify if there are some package
that will break by your changes.

Checking reverse dependencies...
# Broken Depends:
389-ds-base: 389-ds-base [amd64 arm64 armhf i386 ppc64el riscv64 s390x]
              389-ds-base-dev [amd64 arm64 armhf i386 ppc64el riscv64 s390x]
              389-ds-base-libs [amd64 arm64 armhf i386 ppc64el riscv64 
s390x]
certmonger: certmonger
chromium: chromium [amd64 arm64 armhf i386 loong64 ppc64el]
           chromium-driver [amd64 arm64 armhf i386 loong64 ppc64el]
           chromium-headless-shell [amd64 arm64 armhf i386 loong64 ppc64el]
           chromium-shell [amd64 arm64 armhf i386 loong64 ppc64el]
cinnamon-settings-daemon: cinnamon-settings-daemon
corosync-qdevice: corosync-qdevice
                   corosync-qnetd
evolution: libevolution
evolution-data-server: evolution-data-server-dev
                        libcamel-1.2-64t64
                        libcamel1.2-dev
                        libedataserverui-1.2-4t64
                        libedataserverui4-1.0-0t64
firefox: firefox [amd64 arm64 armhf ppc64el riscv64]
firefox-esr: firefox-esr
jss: libjss-java
kronosnet: libknet1t64
libcacard: libcacard0
libreoffice: libreoffice-core [amd64 arm64 armhf i386 ppc64el riscv64 s390x]
              libreoffice-core-nogui [amd64 arm64 armhf i386 ppc64el s390x]
libreswan: libreswan
libsrtp2: libsrtp2-1
           libsrtp2-dev
lighttpd: lighttpd-mod-nss
mate-settings-daemon: mate-settings-daemon
network-manager-l2tp: network-manager-l2tp
nordugrid-arc: libarccommon4
nss: libnss3
      libnss3-dev
      libnss3-tools
nss-passwords: nss-passwords [amd64 arm64 armhf i386 ppc64el riscv64 s390x]
nss-pem: nss-plugin-pem
nut: libupsclient7
      nut-server
nvidia-cuda-toolkit/non-free: nsight-compute [amd64 arm64]
                               nsight-systems [amd64 arm64]
pesign: pesign [amd64 arm64 armhf i386 loong64 ppc64el riscv64]
pidgin: libpurple0t64
poppler: libpoppler147
python-nss: python3-nss [amd64 arm64 armhf i386 ppc64el riscv64 s390x]
qt6-webengine: libqt6webenginecore6 [amd64 arm64 armhf i386]
                libqt6webenginecore6-bin [amd64 arm64 armhf i386]
qtwebengine-opensource-src: libqt5webenginecore5 [amd64 arm64 armhf i386]
slapi-nis: slapi-nis [amd64 arm64 armhf i386 ppc64el riscv64 s390x]
systemtap: systemtap
            systemtap-runtime
            systemtap-server
thunderbird: thunderbird [amd64 arm64 i386 loong64 ppc64el riscv64]
volume-key: libvolume-key1
             volume-key
xmlsec1: libxmlsec1-nss1

# Broken Build-Depends:
389-ds-base: libnspr4-dev
certmonger: libnspr4-dev
chromium: libnspr4-dev
coolkey: libnspr4-dev
evolution: libnspr4-dev
evolution-data-server: libnspr4-dev
fence-agents: libnspr4-dev
firefox: libnspr4-dev (2:4.32~ >=)
firefox-esr: libnspr4-dev (2:4.32~ >=)
freeipa: libnspr4-dev
kronosnet: libnspr4-dev
libreoffice: libnspr4-dev
libreswan: libnspr4-dev
nss: libnspr4-dev (2:4.34 >=)
nss-passwords: libnspr4-dev
nss-pem: libnspr4-dev (2:4.12 >=)
pesign: libnspr4
         libnspr4-dev
slapi-nis: libnspr4-dev
systemtap: libnspr4-dev
thunderbird: libnspr4-dev (2:4.32~ >=)

/Simon

Kai Engert <[email protected]> writes:

> Hello,
>
> the Firefox team has approached me. They would like to do a major
> cleanup of NSPR, removing the majority of NSPR code that is unused by
> NSS/Firefox/Thunderbird, and also removing APIs that are no longer
> necessary.
>
> To allow time for downstream consumers to adjust, we could use the
> following approach.
>
> NSPR version 4.x would continue to be used and maintained until the
> end of the (upcoming) FF 153 ESR release cycle, that means (roughly)
> until October 2027.
>
> At the time development of FF 154 begins (mid June 2026),
> mozilla-central would switch to use NSPR 5.
>
> Because work on the cleanup effort has already started, it's desirable
> to be able to commit those changes very soon (and not wait until
> June).
>
> The suggestion is to create a new branch for version 4 maintenance in
> the NSPR repository, based on the current tip, and then change the tip
> of https://hg-edge.mozilla.org/projects/nspr to version 5.
>
> Please give feedback.
>
> Thanks and Regards
> Kai

-- 
You received this message because you are subscribed to the Google Groups "[email protected]" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To view this discussion visit https://groups.google.com/a/mozilla.org/d/msgid/dev-tech-crypto/f05f3eef-a499-4d8e-8618-22828b0d8877%40kuix.de.