<feed xmlns='http://www.w3.org/2005/Atom'>
<title>algaos/algaos-ebuild-tree/eclass/nginx.eclass, branch next</title>
<subtitle>[no description]</subtitle>
<id>https://git.algaos.com/algaos/algaos-ebuild-tree/atom?h=next</id>
<link rel='self' href='https://git.algaos.com/algaos/algaos-ebuild-tree/atom?h=next'/>
<link rel='alternate' type='text/html' href='https://git.algaos.com/algaos/algaos-ebuild-tree/'/>
<updated>2026-09-16T00:09:45Z</updated>
<entry>
<title>nginx{,-module}.eclass: Pass --as-needed before libraries</title>
<updated>2026-09-16T00:09:45Z</updated>
<author>
<name>Peter Volkov</name>
<email>peter.volkov@gmail.com</email>
</author>
<published>2026-08-04T12:05:02Z</published>
<link rel='alternate' type='text/html' href='https://git.algaos.com/algaos/algaos-ebuild-tree/commit/?id=36ce0003e136594122f01bb4d7e79e04475e8e20'/>
<id>urn:sha1:36ce0003e136594122f01bb4d7e79e04475e8e20</id>
<content type='text'>
Signed-off-by: Peter Volkov &lt;peter.volkov@gmail.com&gt;
Part-of: https://codeberg.org/gentoo/gentoo/pulls/1621
Signed-off-by: Sam James &lt;sam@gentoo.org&gt;
</content>
</entry>
<entry>
<title>nginx.eclass: avoid duplicates in saved configure flags (keepwork)</title>
<updated>2026-09-16T00:09:44Z</updated>
<author>
<name>Peter Volkov</name>
<email>peter.volkov@gmail.com</email>
</author>
<published>2026-08-04T11:13:33Z</published>
<link rel='alternate' type='text/html' href='https://git.algaos.com/algaos/algaos-ebuild-tree/commit/?id=8414b63896095e8e91a956fe7941be85393cd1ae'/>
<id>urn:sha1:8414b63896095e8e91a956fe7941be85393cd1ae</id>
<content type='text'>
Signed-off-by: Peter Volkov &lt;peter.volkov@gmail.com&gt;
Part-of: https://codeberg.org/gentoo/gentoo/pulls/1621
Signed-off-by: Sam James &lt;sam@gentoo.org&gt;
</content>
</entry>
<entry>
<title>nginx{,-module}.eclass: save NGINX build config by storing ./configure flags</title>
<updated>2026-07-31T20:27:43Z</updated>
<author>
<name>Zurab Kvachadze</name>
<email>zurabid2016@gmail.com</email>
</author>
<published>2026-07-06T17:13:10Z</published>
<link rel='alternate' type='text/html' href='https://git.algaos.com/algaos/algaos-ebuild-tree/commit/?id=2ce0f85d0ce360488d2451ff8586e4b57f6465eb'/>
<id>urn:sha1:2ce0f85d0ce360488d2451ff8586e4b57f6465eb</id>
<content type='text'>
Background
==========

NGINX's ABI and API can change depending on supplied ./configure flags
(most notoriously, enabling/disabling many first-party modules can
change ABI and API of NGINX as a whole). Perhaps unrelated, but
third-party modules are expected to be built in-tree, at the same time
NGINX is built. It is because of these two factors that we have to
freeze/preserve NGINX configuration.

Configuration-saving methods
============================

In general, I have identified two approaches as to how to preserve NGINX
configuration for building third-party modules out-of-tree.

The current implementation saves the generated headers:
ngx_auto_config.h and ngx_auto_headers.h. When third-party modules are
built, the ./configure flags are mostly ignored. It is straightforward
and easy and allowed us to cut some parts of configuration out.
Unfortunately, due to headers not being first-class configuration in the
build system, it has proven to be quite difficult to change some parts
of the build using headers alone.

For instance, my initial header-mangling-based implementation of
ngx_force_module (see the following commit) proved to be quite limited
and not really robust. The reason why I used this approach initially is
because when nginx-module.eclass was written, none of the
ngx_force_module fancy crossed my mind.

Second method is saving the ./configure flags themselves. Although
increasing the src_configure time (since we no longer skip phases), this
allows to build modules and edit the build configuration more easily and
correctly. This also gives users/ebuild authors more control since, as
stated above, most ./configure flags are ignored in the header
implementation.

Compatibility
=============

While nginx.eclass completely removes support for emitting
ngx_auto_{config,headers}.h, generating only ./configure flags,
nginx-module.eclass will support both configuration-saving methods for
the time being, allowing users to update www-servers/nginx.

Notes
=====

Passing ./configure flags around makes modules transitively depend on
NGINX's dependencies.

-Wl,--as-needed is added to LDFLAGS since NGINX links external
libraries needed by first-party modules also to third-party modules.

Signed-off-by: Zurab Kvachadze &lt;zurabid2016@gmail.com&gt;
Part-of: https://codeberg.org/gentoo/gentoo/pulls/1329
Signed-off-by: Sam James &lt;sam@gentoo.org&gt;
</content>
</entry>
<entry>
<title>nginx.eclass: fix http_uwsgi test dependency on uwsgi[ssl]</title>
<updated>2026-07-31T20:27:42Z</updated>
<author>
<name>Zurab Kvachadze</name>
<email>zurabid2016@gmail.com</email>
</author>
<published>2026-07-06T21:10:04Z</published>
<link rel='alternate' type='text/html' href='https://git.algaos.com/algaos/algaos-ebuild-tree/commit/?id=7c621cc9bbacc79e207bb60de11dc866b92ab6da'/>
<id>urn:sha1:7c621cc9bbacc79e207bb60de11dc866b92ab6da</id>
<content type='text'>
If http_ssl and http_uwsgi are used together, NGINX runs some tests that
use SSL functionality of UWSGI.

This commit changes the http_uwsgi test dependency to depend on
uwsgi[ssl].

We could have opted for a more complex nginx_module_http_ssl-gated
dependency, but this is simple and it works.

Closes: https://bugs.gentoo.org/977774
Signed-off-by: Zurab Kvachadze &lt;zurabid2016@gmail.com&gt;
Part-of: https://codeberg.org/gentoo/gentoo/pulls/1329
Signed-off-by: Sam James &lt;sam@gentoo.org&gt;
</content>
</entry>
<entry>
<title>nginx.eclass: src_install(): add missing dies for sed</title>
<updated>2026-07-31T20:27:36Z</updated>
<author>
<name>Zurab Kvachadze</name>
<email>zurabid2016@gmail.com</email>
</author>
<published>2026-07-08T12:04:42Z</published>
<link rel='alternate' type='text/html' href='https://git.algaos.com/algaos/algaos-ebuild-tree/commit/?id=834d88a9074a9514e4ad8cd3aee7faad8c6391a9'/>
<id>urn:sha1:834d88a9074a9514e4ad8cd3aee7faad8c6391a9</id>
<content type='text'>
Signed-off-by: Zurab Kvachadze &lt;zurabid2016@gmail.com&gt;
Part-of: https://codeberg.org/gentoo/gentoo/pulls/1329
Signed-off-by: Sam James &lt;sam@gentoo.org&gt;
</content>
</entry>
<entry>
<title>nginx.eclass: avoid heredoc in global scope incurred by NGINX_UPDATE_STREAM</title>
<updated>2026-07-11T19:35:16Z</updated>
<author>
<name>Kerin Millar</name>
<email>kfm@plushkava.net</email>
</author>
<published>2026-07-11T15:12:33Z</published>
<link rel='alternate' type='text/html' href='https://git.algaos.com/algaos/algaos-ebuild-tree/commit/?id=ae1cf90ed05d20a064b763dec7b48ade1f1003fa'/>
<id>urn:sha1:ae1cf90ed05d20a064b763dec7b48ade1f1003fa</id>
<content type='text'>
Also, avoid a useless-use-of-has and improve the language of the
diagnostic, the content of which remains shorter than 80 characters. As
noted by a bug comment, this also addresses the issue that the QA
warning being issued was hitherto empty.

Acked-by: Zurab Kvachadze &lt;zurabid2016@gmail.com&gt;
Closes: https://bugs.gentoo.org/979047
Signed-off-by: Kerin Millar &lt;kfm@plushkava.net&gt;
Signed-off-by: Sam James &lt;sam@gentoo.org&gt;
</content>
</entry>
<entry>
<title>nginx.eclass: avoid heredoc in global scope</title>
<updated>2026-07-10T16:44:51Z</updated>
<author>
<name>Sam James</name>
<email>sam@gentoo.org</email>
</author>
<published>2026-07-10T16:21:59Z</published>
<link rel='alternate' type='text/html' href='https://git.algaos.com/algaos/algaos-ebuild-tree/commit/?id=c3dcad735f350145abc6da96b09e47812d7de487'/>
<id>urn:sha1:c3dcad735f350145abc6da96b09e47812d7de487</id>
<content type='text'>
A heredoc may cause the use of a temporary file with &lt; EAPI 9 and even
then still with &gt;= EAPI 9 if the input is large. This becomes a problem
if sandboxing is applied to metadata generation.

Closes: https://bugs.gentoo.org/978940
Signed-off-by: Sam James &lt;sam@gentoo.org&gt;
</content>
</entry>
<entry>
<title>nginx.eclass: unslot NGINX, slotmove all slots to :0</title>
<updated>2026-07-01T11:26:56Z</updated>
<author>
<name>Zurab Kvachadze</name>
<email>zurabid2016@gmail.com</email>
</author>
<published>2026-06-29T15:29:36Z</published>
<link rel='alternate' type='text/html' href='https://git.algaos.com/algaos/algaos-ebuild-tree/commit/?id=ff1887e20b6a70145ca0159102c3de0f49907e9f'/>
<id>urn:sha1:ff1887e20b6a70145ca0159102c3de0f49907e9f</id>
<content type='text'>
This has been a recurring source of nasty bugs and issues. Bugs aside,
we should not abuse slots as abstract tags to select to the world file.

This commit makes the eclass assign only SLOT="0/${PV}", irrespective of
NGINX_UPDATE_STREAM. Also, 'stable', 'mainline' and 'live' SLOTs are
slotmoved to '0'.

Bug: https://bugs.gentoo.org/977755
Closes: https://bugs.gentoo.org/959569
Signed-off-by: Zurab Kvachadze &lt;zurabid2016@gmail.com&gt;
Part-of: https://codeberg.org/gentoo/gentoo/pulls/1277
Merges: https://codeberg.org/gentoo/gentoo/pulls/1277
Signed-off-by: Sam James &lt;sam@gentoo.org&gt;
</content>
</entry>
<entry>
<title>nginx.eclass: Support EAPI 9</title>
<updated>2026-02-20T19:09:35Z</updated>
<author>
<name>Zurab Kvachadze</name>
<email>zurabid2016@gmail.com</email>
</author>
<published>2026-02-08T19:02:00Z</published>
<link rel='alternate' type='text/html' href='https://git.algaos.com/algaos/algaos-ebuild-tree/commit/?id=6509ad72eab0561ffdf39b6e8292c84898007450'/>
<id>urn:sha1:6509ad72eab0561ffdf39b6e8292c84898007450</id>
<content type='text'>
In EAPI 9, NGINX_SUPPORT_MODULE_STUBS is enabled unconditionally.

Signed-off-by: Zurab Kvachadze &lt;zurabid2016@gmail.com&gt;
Signed-off-by: Sam James &lt;sam@gentoo.org&gt;
</content>
</entry>
<entry>
<title>nginx.eclass: Support /etc/nginx/modules-{available,enabled}</title>
<updated>2026-02-20T19:09:34Z</updated>
<author>
<name>Zurab Kvachadze</name>
<email>zurabid2016@gmail.com</email>
</author>
<published>2026-02-08T19:01:58Z</published>
<link rel='alternate' type='text/html' href='https://git.algaos.com/algaos/algaos-ebuild-tree/commit/?id=34d5c86f4a236cd08c2eae2abe4cb9c3b9395d68'/>
<id>urn:sha1:34d5c86f4a236cd08c2eae2abe4cb9c3b9395d68</id>
<content type='text'>
This directory layout allows for more flexible dynamic module
management. nginx-module.eclass generates `load_module` .conf stubs for
every module and installs them into /etc/nginx/modules-available. Then,
modules can be enabled or disabled by adding or removing symlinks from
/etc/nginx/modules-enabled to /etc/nginx/modules-available, potentially
with an eselect module. See bug 967022 for background information.

This commit adds a new eclass variable NGINX_SUPPORT_MODULE_STUBS that
must be turned on to create the directories and add the include into
shipped nginx.conf. Also, the live NGINX version is bumped setting the
new variable.

Bug: https://bugs.gentoo.org/967022
Signed-off-by: Zurab Kvachadze &lt;zurabid2016@gmail.com&gt;
Signed-off-by: Sam James &lt;sam@gentoo.org&gt;
</content>
</entry>
</feed>
