Dynamic Module Portability

Joseph Spencer spencer at kogosoftwarellc.com
Thu Jun 29 08:17:32 UTC 2017


Or, I can just require that the host version of nginx be installed with the
--with-compat option.

On Thu, Jun 29, 2017 at 12:38 AM, Joseph Spencer <
spencer at kogosoftwarellc.com> wrote:

> Looks like I can grep NGX_MODULE_SIGNATURE from the nginx binary itself.
> Depending on the version of nginx, it could be a decent option.  I'm
> literally only dependent on core and http.  Most of the elements of the
> signature appear to be extraneous.
>
> On Thu, Jun 29, 2017 at 12:27 AM, Joseph Spencer <
> spencer at kogosoftwarellc.com> wrote:
>
>> I'm looking to create a portable binary, and from everything I can read,
>> it is almost impossible.  The recommended approach seems to be to expose
>> source code and require users to compile.  This is painful because it
>> requires the source code and gcc to be available: a hard sell for the lazy
>> sysadmin.
>>
>> My goal is to create a proprietary module that is used in conjunction
>> with a paid service.  Users simply install the module and provide access
>> token credentials.
>>
>> As you can imagine it's been really difficult, mainly because practically
>> *every* configure option is compared at run time.
>>
>> I added some logging, and found that the module signature is indeed
>> embedded in the resulting .so file.  I was able to successfully use sed to
>> get my module to work, but I'm thinking this is an obvious hack not even
>> worth considering for a production binary:
>>
>> sed -i'' 's|8,4,8,0011111111010111001111111111111111|8,4,8,0000111111010111001110101111000110|'
>> ngx_my_custom_module-nginx-1.11.5.so
>>
>> Having nginx -V is nice, but it could be beneficial to
>> expose NGX_MODULE_SIGNATURE somehow.  That way I could have an installer
>> script that checkes to ensure that essential modules are available and
>> modify the binary after it's been downloaded.  I realize this is dangerous,
>> but I'm not willing to expose source code and require gcc yet.
>>
>> Any opinions or guidance would be greatly appreciated.
>>
>> --
>> Thanks,
>> Joe Spencer (member)
>> Kogo Software LLC
>>
>
>
>
> --
> Thanks,
> Joe Spencer (member)
> Kogo Software LLC
>



-- 
Thanks,
Joe Spencer (member)
Kogo Software LLC
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-devel/attachments/20170629/2fb6d359/attachment.html>


More information about the nginx-devel mailing list