summaryrefslogtreecommitdiffhomepage
path: root/auto (follow)
AgeCommit message (Collapse)AuthorFilesLines
2022-04-28Workarounded Clang bug triggered by Ruby.Alejandro Colomar1-1/+27
Add -fdeclspec to NXT_RUBY_CFLAGS for Clang, if it's available. Clang incorrectly reports 1 for __has_declspec_attribute(x) in some cases, such as MacOS or Cygwin. That causes ruby code to break. ruby added -fdeclspec to their CFLAGS in 2019 to workaround this bug, since it enables __declspec() and therefore, the compiler behavior matches what it reports. Since we don't know what are all the architectures that trigger the clang bug, let's add the flag for all of them (especially since it should be harmless). Add this workaround only at the time of configuring the ruby module. This way we don't clutter the global NXT_CFLAGS with an unnecessary flag. Link: unit bug <https://github.com/nginx/unit/issues/653> Link: ruby bug <https://bugs.ruby-lang.org/issues/18616> Link: LLVM bug <https://github.com/llvm/llvm-project/issues/49958> Commit: LLVM: Add -fdeclspec <d170c4b57a91adc74ca89c6d4af616a00323b12c> Commit: ruby: Use -fdeclspec <0958e19ffb047781fe1506760c7cbd8d7fe74e57>
2022-04-27Added NXT_MAYBE_UNUSED for __attribute__((__unused__)).Alejandro Colomar1-0/+18
When testing some configurations of compilers and OSes, I noticed that clang(1) 13 on Debian caused a function to be compiled but unused, and the compiler triggered a compile error. To avoid that error, use __attribute__((__unused__)). Let's call our wrapper NXT_MAYBE_UNUSED, since it describes itself more precisely than the GCC attribute name. It's also the name that C2x (likely C23) has given to the standard attribute, which is [[maybe_unused]], so it's also likely to be more readable because of that name being in ISO C.
2022-01-10Tests: using modules in Go.Max Romanov1-1/+2
2021-12-03Printing version in "./configure" output.Valentin Bartenev1-1/+2
2021-12-01Disabling SCM_CREDS usage on DragonFly BSD.Max Romanov1-30/+32
DragonFly BSD supports SCM_CREDS and SCM_RIGHTS, but only the first control message is passed correctly while the second one isn't processed by the kernel. This closes #599 issue on GitHub.
2021-11-09Introduced SCM_CREDENTIALS / SCM_CREDS in the socket control msgs.Tiago Natel de Moura3-0/+54
2021-10-26Custom implementation of Base64 decoding function.Valentin Bartenev1-0/+1
Compared to the previous implementation based on OpenSSL, the new implementation has these advantages: 1. Strict and reliable detection of invalid strings, including strings with less than 4 bytes of garbage at the end; 2. Allows to use Base64 strings without '=' padding.
2021-08-17Added TLS session tickets support.Andrey Suvorov1-0/+17
2021-08-12Java: upgrading third-party components.Max Romanov2-12/+12
2021-08-09Java: upgrading third-party components.Max Romanov2-18/+18
2021-06-15Node.js: improving and test packaging.Max Romanov1-2/+5
The patch removes the "files" section from package.json to avoid future issues with missing files. For package testing purposes, 'npm pack' is used instead of plain 'tar' to simulate packaging more accurately.
2021-05-26Enabling SSL_CTX configuration by using SSL_CONF_cmd().Andrey Suvorov1-0/+14
To perform various configuration operations on SSL_CTX, OpenSSL provides SSL_CONF_cmd(). Specifically, to configure ciphers for a listener, "CipherString" and "Ciphersuites" file commands are used: https://www.openssl.org/docs/man1.1.1/man3/SSL_CONF_cmd.html This feature can be configured in the "tls/conf_commands" section.
2021-05-25Go: fixing tests for Go 1.16.Max Romanov1-1/+1
In Go 1.16, the module-aware mode is enabled by default; to fall back to previous behavior, the GO111MODULE environment variable should be set to 'auto'. Details: https://golang.org/doc/go1.16
2021-04-29Static: support for openat2() features.Zhidao HONG1-0/+32
Support for chrooting, rejecting symlinks, and rejecting crossing mounting points on a per-request basis during static file serving.
2021-03-26Corrected man page permissions in manpage-install.Andrei Belov1-1/+1
Found by rpmlint.
2021-03-25Node.js: used distinct placeholder for version in "package.json".Valentin Bartenev1-1/+1
This makes the "sed" instruction simpler and more portable, as the previous variant didn't work well on BSD systems due to the "\s" metacharacter. Thanks to Sergey A. Osokin <osa@FreeBSD.org.ru> for spotting this issue. Also, this should prevent accidentally creating a version 1.0.0 package.
2021-03-25Node.js: fixing module global installation.Max Romanov1-12/+26
Globally installed modules require a globally installed libunit. The "binding_pub.gyp" file is the correct version, otherwise linked module may have unresolved symbols because libunit is not linked.
2021-03-24Added build system support for a man page.Konstantin Pavlov4-6/+35
2021-03-22Java: upgrading third-party components.Sergey A. Osokin2-18/+18
2020-11-17Router: matching regular expressions support.Axel Duch4-17/+62
2020-11-18Libunit: improving logging consistency.Max Romanov1-0/+2
Debug logging depends on macros defined in nxt_auto_config.h.
2020-11-10Java: fixing isolation mounts for Alpine musl.Max Romanov1-1/+1
Thanks to @wujjpp. This closes #490 PR on GitHub.
2020-11-02Java: upgrading 3rd-party components.Max Romanov2-18/+18
2020-10-29Isolation: mounting of procfs by default when using "rootfs".Tiago Natel de Moura3-11/+10
2020-10-26Configure: using comma instead of space for passing -rpath value.Valentin Bartenev3-4/+3
This variant will be more interoperable across various systems and it's already used in Ruby module. Otherwise, configure tests fail on NetBSD with: gcc: Missing argument for -Wl,-rpath
2020-10-01Python: ASGI server introduced.Max Romanov1-0/+5
This closes #461 issue on GitHub.
2020-09-09PHP: fixed "rootfs" isolation dependency on system mounts.Tiago Natel de Moura1-29/+1
2020-09-14Python: split module initialization from WSGI implementation.Max Romanov1-0/+1
This is required for futher ASGI implementation.
2020-09-14Python: source file moved to 'python' sub-directory.Max Romanov1-1/+2
No functional changes. Get ready for an increase in file number.
2020-08-25Isolation: added "automount" option.Tiago Natel de Moura4-14/+14
Now it's possible to disable default bind mounts of languages by setting: { "isolation": { "automount": { "language_deps": false } } } In this case, the user is responsible to provide a "rootfs" containing the language libraries and required files for the application.
2020-08-25PHP: added bind mounts for extensions directory.Tiago Natel de Moura1-1/+32
2020-08-20Moved isolation related code to "nxt_isolation.c".Tiago Natel de Moura1-0/+1
2020-08-17Supporting platforms without sendfile() implementation.Max Romanov1-4/+2
This is a quick and dirty sendfile() replacement. This closes #452 PR on GitHub.
2020-08-13Basic variables support.Valentin Bartenev1-0/+2
2020-08-11Circular queues implementations and a test.Max Romanov1-0/+52
- naive circular queue, described in the article "A Scalable, Portable, and Memory-Efficient Lock-Free FIFO Queue" by Ruslan Nikolaev: https://drops.dagstuhl.de/opus/volltexte/2019/11335/pdf/LIPIcs-DISC-2019-28.pdf - circular queue, proposed by Valentin Bartenev in the "Unit router application IPC" design draft
2020-08-09Ruby: fixed gem mount paths.Valentin Bartenev1-4/+2
The gem paths must depend on the specified interpreter. Also, gemdir looks redundant as it's already included in Gem.default_path().
2020-08-09Ruby: simplified commands in ./configure script.Valentin Bartenev1-9/+9
There is no reason to use printf instead of just print. No functional changes.
2020-08-09Ruby: removed unused variable from ./configure script.Valentin Bartenev1-1/+0
2020-08-08Configure: verifying the Ruby library path.Valentin Bartenev1-4/+10
An attempt to build a Ruby module for a custom Ruby installation that has the same major version as the system Ruby may unexpectedly cause the use of the system Ruby library. This closes #449 issue on GitHub.
2020-07-31Isolation: fixed the generation of mounts table.Tiago Natel de Moura3-13/+20
Since the introduction of rootfs feature, some language modules can't be configured multiple times. Now the configure generates a separate nxt_<module>_mounts.h for each module compiled.
2020-07-28PHP: fixed version comparison in configure script.Tiago Natel de Moura1-2/+2
Some PPAs for Ubuntu package PHP with versions like: 7.2.28-3+ubuntu18.04.1+deb.sury.org+1 But the script expected only "X.Y.Z". The issue was introduced in: http://hg.nginx.org/unit/rev/2ecb15904ba5
2020-06-23Upstream chunked transfer encoding support.Igor Sysoev1-1/+1
2020-06-23Isolation: fixed build when features aren't detected.Tiago Natel de Moura1-18/+2
2020-06-23Python: fixed interpreter path in ./configure.Tiago Natel de Moura1-2/+1
2020-05-28Packages: fixed java configure script.1.18.0Tiago Natel de Moura1-2/+2
Now the configure script appends /server to --lib-path argument.
2020-05-28Added "rootfs" feature.Tiago Natel de Moura5-3/+235
2020-03-09Refactor of process management.Tiago Natel de Moura1-1/+1
The process abstraction has changed to: setup(task, process) start(task, process_data) prefork(task, process, mp) The prefork() occurs in the main process right before fork. The file src/nxt_main_process.c is completely free of process specific logic. The creation of a process now supports a PROCESS_CREATED state. The The setup() function of each process can set its state to either created or ready. If created, a MSG_PROCESS_CREATED is sent to main process, where external setup can be done (required for rootfs under container). The core processes (discovery, controller and router) doesn't need external setup, then they all proceeds to their start() function straight away. In the case of applications, the load of the module happens at the process setup() time and The module's init() function has changed to be the start() of the process. The module API has changed to: setup(task, process, conf) start(task, data) As a direct benefit of the PROCESS_CREATED message, the clone(2) of processes using pid namespaces now doesn't need to create a pipe to make the child block until parent setup uid/gid mappings nor it needs to receive the child pid.
2020-05-20PHP: building with PHP 8 (development version).Remi Collet1-1/+5
2020-03-27Implemented "return" action.Valentin Bartenev1-0/+1
The "return" action can be used to immediately generate a simple HTTP response with an arbitrary status: { "action": { "return": 404 } } This is especially useful for denying access to specific resources.
2020-03-17Checking sendfile() availability in configure.Max Romanov1-24/+32
Removing SF_NODISKIO flag for FreeBSD sendfile() check because it is not used yet and to support DragonFlyBSD. This closes #414 issue on GitHub.