This is quite subtle (but your dix is correct).

RPM buries _EVERYTHING_ in

#include "system.h".

Sadly there are certain #define's for POSIX and standard features
that MUST be set before any other include. Python (and likely
ruby: though I've forgotten details, if "system.h" was present,
it was to ensure that certain #define's were performed before
everything else was included).

While the behavior is pedantically correct, its based
on a certain development paradigm, and is one other issue
that could/should be done better for ruby packaging.

Meanwhile,
        #include "system.h"
which then does
        #include "../system.h"
is a bit confusing and the issues should be fixed in
other ways. The above was the minimum necessary change
to achieve a goa:

        Set some #define's in a *.h before any other system *.h is included.

73 de Jeff
On Nov 13, 2010, at 10:21 AM, Eric Veith wrote:

>  RPM Package Manager, CVS Repository
>  http://rpm5.org/cvs/
>  ____________________________________________________________________________
> 
>  Server: rpm5.org                         Name:   Eric Veith
>  Root:   /v/rpm/cvs                       Email:  eve...@rpm5.org
>  Module: rpm                              Date:   13-Nov-2010 16:21:23
>  Branch: HEAD                             Handle: 2010111315212300
> 
>  Modified files:
>    rpm/ruby                system.h
> 
>  Log:
>    Fix unlikely double-inclusion due to HAVE_PYTHON_H in ruby/system.h
> 
>  Summary:
>    Revision    Changes     Path
>    1.4         +3  -3      rpm/ruby/system.h
>  ____________________________________________________________________________
> 
>  patch -p0 <<'@@ .'
>  Index: rpm/ruby/system.h
>  ============================================================================
>  $ cvs diff -u -r1.3 -r1.4 system.h
>  --- rpm/ruby/system.h        27 Oct 2010 01:01:17 -0000      1.3
>  +++ rpm/ruby/system.h        13 Nov 2010 15:21:23 -0000      1.4
>  @@ -1,5 +1,5 @@
>  -#ifndef     H_SYSTEM_PYTHON
>  -#define     H_SYSTEM_PYTHON
>  +#ifndef     H_SYSTEM_RUBY
>  +#define     H_SYSTEM_RUBY
> 
>   #include "../system.h"
> 
>  @@ -38,4 +38,4 @@
>   #define     xfree           _xfree
>   #undef      xfree
> 
>  -#endif      /* H_SYSTEM_PYTHON */
>  +#endif      /* H_SYSTEM_RUBY */
>  @@ .
> ______________________________________________________________________
> RPM Package Manager                                    http://rpm5.org
> CVS Sources Repository                                rpm-...@rpm5.org

______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
Developer Communication List                        rpm-devel@rpm5.org

Reply via email to