NSS: Add Possible Parameters. Part of issue #19.

I also changes the possible parameters to be options instead in the XML to be more readable.
This commit is contained in:
Zeckmathederg 2024-10-12 04:12:24 -06:00
parent cfda1cdb10
commit 47e076b461
5 changed files with 149 additions and 80 deletions

View File

@ -42,6 +42,13 @@
<listitem>
<para>October 12th, 2024</para>
<itemizedlist>
<listitem>
<para>
[Zeckmathederg] - NSS: Add Possible Parameters. Part of issue
<ulink url="https://github.com/Zeckmathederg/glfs/issues/19">#19.
</ulink>
</para>
</listitem>
<listitem>
<para>[Zeckmathederg] - Adjusted book info.</para>
</listitem>

View File

@ -66,7 +66,7 @@ make</userinput></screen>
<screen role="root"><userinput>make install</userinput></screen>
<para>
If you did not pass the <option>--enable-gtk-doc</option> parameter
If you did not pass the <option>--enable-gtk-doc</option> option
to the <command>configure</command> script, you can install the API
documentation using the following command as the
<systemitem class="username">root</systemitem> user:
@ -113,105 +113,105 @@ ldconfig</userinput></screen>
<title>Possible Parameters</title>
<para>
<parameter>--{en,dis}able-silent-rules</parameter>: This option changes
<option>--{en,dis}able-silent-rules</option>: This option changes
verbosity in the build output.
</para>
<para>
<parameter>--{en,dis}able-dependency-tracking</parameter>: This option
<option>--{en,dis}able-dependency-tracking</option>: This option
changes whether to accept slow dependency extractors.
</para>
<para>
<parameter>--disable-largefile</parameter>: This option disables support
<option>--disable-largefile</option>: This option disables support
for large files.
</para>
<para>
<parameter>--disable-year2038</parameter>: This option disables support
<option>--disable-year2038</option>: This option disables support
for timestamps beyond the year 2038.
</para>
<para>
<parameter>--disable-doc</parameter>: This option disables building
<option>--disable-doc</option>: This option disables building
documentation.
</para>
<para>
<parameter>--{en,dis}able-shared</parameter>: This option toggles
<option>--{en,dis}able-shared</option>: This option toggles
building shared libraries (enabled by default).
</para>
<para>
<parameter>--{en,dis}able-static</parameter>: This option toggles
<option>--{en,dis}able-static</option>: This option toggles
building static libraries (enabled by default).
</para>
<para>
<parameter>--enable-fast-install</parameter>: This option optimizes for
<option>--enable-fast-install</option>: This option optimizes for
a faster installation (enabled by default).
</para>
<para>
<parameter>--disable-libtool-lock</parameter>: This option <quote>avoids
<option>--disable-libtool-lock</option>: This option <quote>avoids
locking</quote> which can break building this package with multiple jobs.
</para>
<para>
<parameter>--enable-gtk-doc</parameter>: This option enables the use of
<option>--enable-gtk-doc</option>: This option enables the use of
<command>gtk-doc</command> to build documentation (it is broken and
disabled by default).
</para>
<para>
<parameter>--enable-gtk-doc-html</parameter>: This option builds HTML
<option>--enable-gtk-doc-html</option>: This option builds HTML
documentation (enabled by default).
</para>
<para>
<parameter>--enable-gtk-doc-pdf</parameter>: Same as <parameter>
--enable-gtk-doc-html</parameter> but builds as a PDF (disabled by
<option>--enable-gtk-doc-pdf</option>: Same as <option>
--enable-gtk-doc-html</option> but builds as a PDF (disabled by
default).
</para>
<para>
<parameter>--enable-cross-guesses={conservative,risky}</parameter>: This
<option>--enable-cross-guesses={conservative,risky}</option>: This
option changes the policy for cross-compilation guesses. It is
recommended to leave this alone unless you know what you're doing.
</para>
<para>
<parameter>--enable-ld-version-script</parameter>: This option enables
<option>--enable-ld-version-script</option>: This option enables
the linker version script (enabled by default if available).
</para>
<para>
<parameter>--disable-valgrind-tests</parameter>: This option disables
<option>--disable-valgrind-tests</option>: This option disables
running tests with <application>Valgrind</application>.
</para>
<para>
<parameter>--enable-code-coverage</parameter>: This option enables
<option>--enable-code-coverage</option>: This option enables
code coverage support.
</para>
<para>
<parameter>--disable-gcc-warnings</parameter>: This option disables GCC
<option>--disable-gcc-warnings</option>: This option disables GCC
warnings.
</para>
<para>
<parameter>--enable-fuzzing</parameter>: This option turns on fuzzing
<option>--enable-fuzzing</option>: This option turns on fuzzing
for the building process.
</para>
<para>
<parameter>--with-aix-soname={aix,svr4,both}</parameter>: This option
<option>--with-aix-soname={aix,svr4,both}</option>: This option
changes the soname variant (default is aix).
</para>
<para>
<parameter>--with-gnu-ld</parameter>: This option assumes that the C
<option>--with-gnu-ld</option>: This option assumes that the C
compiler uses GNU ld (disabled by default but will be automatically
detected).
</para>

View File

@ -113,67 +113,67 @@ ldconfig</userinput></screen>
<title>Possible Parameters</title>
<para>
<parameter>--disable-option-checking</parameter>: This parameter ignores
<option>--disable-option-checking</option>: This parameter ignores
incorrect parameters.
</para>
<para>
<parameter>--enable-x32</parameter>: This parameter enables x32-bit
<option>--enable-x32</option>: This parameter enables x32-bit
support, not to be confused with 32-bit. Meant for 64-bit systems.
</para>
<para>
<parameter>--enable-64bit</parameter>: This parameter enables 64-bit
<option>--enable-64bit</option>: This parameter enables 64-bit
support, meant for and needed by 64-bit systems.
</para>
<para>
<parameter>--enable-mdupdate</parameter>: This parameter enables some
<option>--enable-mdupdate</option>: This parameter enables some
compilers' mdupdate feature.
</para>
<para>
<parameter>--enable-cplus</parameter>: This parameter enables some of
<option>--enable-cplus</option>: This parameter enables some of
the C++ API routines.
</para>
<para>
<parameter>--enable-strip</parameter>: This parameter enables stripping
<option>--enable-strip</option>: This parameter enables stripping
the built libraries and programs of debug symbols.
</para>
<para>
<parameter>--enable-user-pthreads</parameter>: This parameter enables
<option>--enable-user-pthreads</option>: This parameter enables
the use of pthreads.
</para>
<para>
<parameter>--enable-nspr-threads</parameter>: This parameter enables
<option>--enable-nspr-threads</option>: This parameter enables
building the classic NSPR threads.
</para>
<para>
<parameter>--enable-ipv6</parameter>: This parameter enables building in
<option>--enable-ipv6</option>: This parameter enables building in
ipv6 support.
</para>
<para>
<parameter>--enable-wrap-malloc</parameter>: This parameter enables
<option>--enable-wrap-malloc</option>: This parameter enables
wrapping malloc calls (meant to be used when linking via the GNU linker).
</para>
<para>
<parameter>--with-mozilla</parameter>: This option enables building with
<option>--with-mozilla</option>: This option enables building with
Mozilla support.
</para>
<para>
<parameter>--with-ccache=<replaceable>&lt;PATH&gt;</replaceable></parameter>:
<option>--with-ccache=<replaceable>&lt;PATH&gt;</replaceable></option>:
This parameter enables compiling with ccache.
</para>
<para>
<parameter>--with-pthreads</parameter>: This parameter uses the system
<option>--with-pthreads</option>: This parameter uses the system
pthreads library.
</para>

View File

@ -113,7 +113,7 @@ make BUILD_OPT=1 \
ZLIB_LIBS=-lz \
NSS_ENABLE_WERROR=0 \
$([ $(uname -m) = x86_64 ] &amp;&amp; echo USE_64=1) \
$([ -f /usr/include/sqlite3.h ] &amp;&amp; echo NSS_USE_SYSTEM_SQLITE=1)</userinput></screen>
$([ -f /usr/lib/libsqlite3.so ] &amp;&amp; echo NSS_USE_SYSTEM_SQLITE=1)</userinput></screen>
<para>
<!-- the unittest files get compiled automatically since nss-3.31.0 -->
@ -202,6 +202,104 @@ install -v -m644 Linux*/lib/pkgconfig/nss.pc /usr/lib/pkgconfig</userinput></sc
</sect2>
<sect2 role="installation">
<title>32-bit Installation of NSS</title>
<note><para>
Cleaning the directory doesn't work with NSS, so you will need to delete
the extracted folder from the tarball, extract it again, apply the patch
again as detailed in the normal installation, then change directory into
<filename>nss</filename>.
</para></note>
<para>
Install <application>lib32-NSS</application> by running the following commands:
</para>
<screen><userinput>CC="gcc -m32" CXX="g++ -m32" \
make BUILD_OPT=1 \
NSPR_INCLUDE_DIR=/usr/include/nspr \
USE_SYSTEM_ZLIB=1 \
ZLIB_LIBS=-lz \
NSS_ENABLE_WERROR=0 \
$([ -f /usr/lib32/libsqlite3.so ] &amp;&amp; echo NSS_USE_SYSTEM_SQLITE=1)</userinput></screen>
<para>
Now, as the <systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>cd ../dist &amp;&amp;
install -v -m755 Linux*/lib/*.so /usr/lib32 &amp;&amp;
install -v -m644 Linux*/lib/{*.chk,libcrmf.a} /usr/lib32 &amp;&amp;
sed -i 's/lib/lib32/g' Linux*/lib/pkgconfig/nss.pc &amp;&amp;
install -v -m644 Linux*/lib/pkgconfig/nss.pc /usr/lib32/pkgconfig</userinput></screen>
</sect2>
<sect2 role="possible">
<title>Possible Parameter</title>
<note>
<para>
If a parameter has the option to be set as <option>0</option> and
<option>1</option>, <option>0</option> means false and
<option>1</option> means true.
</para>
</note>
<para>
<option>NSS_DISABLE_GTESTS={0,1}</option>: This parameter changes if
the NSS test suite will be built (0 by default).
</para>
<para>
<option>BUILD_OPT={0,1}</option>: This parameter changes whether debug
symbols will be built in (0 by default).
</para>
<para>
<option>USE_X32={0,1}</option>: This parameter changes if the binaries
will be built in the x32 ABI, not be confused with 32-bit. Meant for
64-bit systems (0 by default).
</para>
<para>
<option>USE_64={0,1}</option>: This parameter changes if the binaries
will be built in the 64-bit ABI. Meant for 64-bit systems (0 by default
but will be detected).
</para>
<para>
<option>USE_DEBUG_RTL={0,1}</option>: This parameter changes if the debug
Register Transfer Level will be built in (0 by default).
</para>
<para>
<option>USE_STATIC_RTL={0,1}</option>: This parameter changes if the
Register Transfer Level will be built statically (0 by default).
</para>
<para>
<option>NS_USE_GCC={0,1}</option>: This parameter changes if GCC will be
used (0 by default but will be detected).
</para>
<para>
<option>NSS_DISABLE_NSPR_TESTS={0,1}</option>: This parameter changes
if basic NSPR tests will be built (0 by default).
</para>
<note>
<para>
There are many more parameters that can be set, all of which can be
viewed in the many various files in
<filename>nss-&nss-version;/nss/coreconf/</filename>.
</para>
</note>
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>
@ -239,7 +337,12 @@ install -v -m644 Linux*/lib/pkgconfig/nss.pc /usr/lib/pkgconfig</userinput></sc
</para>
<para>
<command>([ -f /usr/include/sqlite3.h ] &amp;&amp; echo
<parameter>NSS_ENABLE_WERROR=0</parameter>: This option disables
-Werror (warnings being counted as errors).
</para>
<para>
<command>$([ -f /usr/lib{,32}/libsqlite3.so ] &amp;&amp; echo
NSS_USE_SYSTEM_SQLITE=1)</command>: This tests if
<application>sqlite</application> is installed and if so it
<command>echo</command>s the option NSS_USE_SYSTEM_SQLITE=1 to
@ -248,47 +351,6 @@ install -v -m644 Linux*/lib/pkgconfig/nss.pc /usr/lib/pkgconfig</userinput></sc
the system version of sqlite.
</para>
<para>
<option>NSS_DISABLE_GTESTS=1</option>: If you don't need to run
NSS test suite, append this option to <command>make</command> command,
to prevent the compilation of tests and save some build time.
</para>
</sect2>
<sect2 role="installation">
<title>32-bit Installation of NSS</title>
<note><para>
Cleaning the directory doesn't work with NSS, so you will need to delete
the extracted folder from the tarball, extract it again, apply the patch
again as detailed in the normal installation, then change directory into
<filename>nss</filename>.
</para></note>
<para>
Install <application>lib32-NSS</application> by running the following commands:
</para>
<screen><userinput>CC="gcc -m32" CXX="g++ -m32" \
make BUILD_OPT=1 \
NSPR_INCLUDE_DIR=/usr/include/nspr \
USE_SYSTEM_ZLIB=1 \
ZLIB_LIBS=-lz \
NSS_ENABLE_WERROR=0 \
$([ -f /usr/lib32/libsqlite3.so ] &amp;&amp; echo NSS_USE_SYSTEM_SQLITE=1)</userinput></screen>
<para>
Now, as the <systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>cd ../dist &amp;&amp;
install -v -m755 Linux*/lib/*.so /usr/lib32 &amp;&amp;
install -v -m644 Linux*/lib/{*.chk,libcrmf.a} /usr/lib32 &amp;&amp;
sed -i 's/lib/lib32/g' Linux*/lib/pkgconfig/nss.pc &amp;&amp;
install -v -m644 Linux*/lib/pkgconfig/nss.pc /usr/lib32/pkgconfig</userinput></screen>
</sect2>
<sect2 role="content">

View File

@ -218,7 +218,7 @@ mv doc/* /usr/share/doc/template-&template-version;</userinput></screen>
<title>Possible Parameters</title>
<para>
<parameter>--PARAMETER</parameter>: This parameter is optional and may be
<option>--PARAMETER</option>: This parameter is optional and may be
something the reader will want to set.
</para>