Nginx build under Debian Hurd i386

Cyril LAVIER cyril.lavier at davromaniak.eu
Wed Sep 28 13:32:54 UTC 2011


 On Wed, 28 Sep 2011 17:13:38 +0400, Maxim Dounin wrote:
> Hello!
>
> On Wed, Sep 28, 2011 at 10:39:26AM +0200, Cyril LAVIER wrote:
>
>>
>>
>> Hi nginx lovers.
>>
>> As it's my first mail on this mailing list, I
>> will introduce myself a little bit.
>>
>> I'm Cyril Lavier, a 25 years old
>> System Administrator from France. I use nginx for barely a year now. 
>> I
>> use it for my own website, and also for the company I'm working.
>>
>> Now,
>> let's work :).
>>
>> For the Debian packaging purposes, we try to make nginx
>> build properly under the hurd-i386 kernel.
>>
>> But it never built well,
>> and Kartik sent a mail in January about this.
>>
>> Now, as I'm contributing
>> to this packaging, I tried to figure out why nginx build failed.
>>
>> For
>> this, I opened a ticket (http://trac.nginx.org/nginx/ticket/22), 
>> which
>> provide a patch for this. With this patch it's building well and 
>> working
>> well.
>
> There is a problem with this patch: nginx uses PATH_MAX to
> allocate buffer used in realpath(), and POSIX claims:
>
> : If resolved_name is not a null pointer and {PATH_MAX} is not
> : defined as a constant in the <limits.h> header, the behavior is
> : undefined.
>
> 
> http://pubs.opengroup.org/onlinepubs/9699919799/functions/realpath.html
>
> Just using arbitrary value instead of PATH_MAX will likely lead to
> a problem.  If we want to avoid usage of PATH_MAX the relevant
> code should be converted to use realpath() with NULL as
> resolved_name.
>

 Thanks for this information.

 I was not aware of this, and also I don't have a big knowledge in C 
 coding, I patched the file the easy way, by choosing an arbitrary value 
 for PATH_MAX, but as it may cause problems, we may see a more accurate 
 fix.

 Maybe Igor or any other developer can help providing a solution for 
 this issue, because I know I won't be able to do a clean patch.

> Other current use of PATH_MAX is for getcwd() buffer which should
> be ok with any buffer size as getcwd() interface includes "size"
> argument.
>
>> After, we add the MP4 module to the nginx-extras package, but
>> the module failed to compile under hurd-i386 (the build works like a
>> charm on other architectures).
>>
>> I opened the ticket #23
>> (http://trac.nginx.org/nginx/ticket/23), with a first draft of a 
>> patch,
>> which resolves one issue. By the way, my C coding knowledge is too 
>> low
>> to completely correct this issue.
>>
>> We would like the hurd package being
>> the same as the others, so if the developers (or other contributors 
>> with
>> sufficient knowledge) can take a look at both tickets, and judging 
>> about
>> a patch inclusion for #22 and a more complete patch #23, this would 
>> be
>> very appreciated.
>
> This looks like result of the fact that off_t used is 32-bit wide.
> I believe correct patch to support 32-bit off_t would require a
> bit more work.
>
> Meanwhile, you may want to focus on using 64-bit off_t instead.
> Under Linux it's typically done with "#define _FILE_OFFSET_BITS
> 64".  Is it possible to do the same on Debian GNU/Hurd?
>

 I don't know, as I said earlier, my knowledge in this domain is 
 limited, but I just wanted to research a bit to try to help resolve this 
 issue.

 Maybe Kartik will have this information, or maybe any other person in 
 this mailing list.

 Thanks.

> Maxim Dounin
>
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx

-- 
 Cyril "Davromaniak" Lavier



More information about the nginx mailing list