RPM Community Forums

Mailing List Message of <rpm-users>

Re: rpm on OSX Lion

From: Jeffrey Johnson <n3npq@me.com>
Date: Mon 26 Mar 2012 - 18:45:54 CEST
Message-id: <532EE776-94CA-4E07-B62A-07CB11FF1C91@me.com>

On Mar 26, 2012, at 12:39 PM, Henri Gomez wrote:

> I'll add gpg, neon and wget, and redo tests.
> 
> About pcre, I build rpm with 8.30 (as seen in otool log).
> Should I disable it ?

PCRE is MANDATORY (because RPM has compiled in patterns
written in the PCRE dialect).

8.30 was what I used when I  re-enabled
	--with-pcre=internal

Meanwhile the issue is symbol collision because of -lpcreposix.
Everything must be linked consistently" You miss, you die.

The internal version of PCRE adds these defines to avoid
symbol pollution at the end of <pcreposx.h>

/* The functions */

PCREPOSIX_EXP_DECL int pcre_regcomp(regex_t *, const char *, int);
PCREPOSIX_EXP_DECL int pcre_regexec(const regex_t *, const char *, size_t,
                     regmatch_t *, int);
PCREPOSIX_EXP_DECL size_t pcre_regerror(int, const regex_t *, char *, size_t);
PCREPOSIX_EXP_DECL void pcre_regfree(regex_t *);

#define regcomp pcre_regcomp
#define regexec pcre_regexec
#define regerror pcre_regerror
#define regfree pcre_regfree

Most linux distros (but not Red Hat) are doing similar for many years.

hth

73 de Jeff

> 
> 2012/3/26 Jeffrey Johnson <n3npq@me.com>:
>> 
>> On Mar 26, 2012, at 11:53 AM, Henri Gomez wrote:
>> 
>> <rpm-test-results>
>> 
>> 
>> 
>> Quick drive-by browse:
>> 
>> --14: __gpg %{_bindir}/gpg2
>> 
>> That is used by "make test" to generate a pub key for testing.
>> That is these failures:
>> sh genpgp.sh > genpgp.h
>> genpgp.sh: line 15: gpg2: command not found
>> hint: You will see the "%{_bindir}" change to an actual path
>> if/when the executable is found in the usual places.
>> 
>> wget -nv http://rpm5.org/files/popt/popt-1.14-1.src.rpm
>> make: wget: No such file or directory
>> 
>> There is tools/wget that is good enuf (when I'm paying attention, not yet)
>> to replace "system" wget for simple downloads. But you need
>> --with-neon
>> first.
>> 
>> This error looks moderately serious (you can comment out the patterns
>> in macros/* if you must: but pattern matching looks fubar):
>> error: ^[A-Za-z0-9+._]+$: regexec failed: regexec() failed to match(1)
>> 
>> Because -lpcreposix and the system regexec(3) routines have
>> identical symbols, there's a high risk of collision. I've re-added
>> --with-pcre=internal
>> in order to avoid some issues on RHEL6.
>> 
>> Hint: If you add --miredebug to the command in the makefile you will
>> get pattern matching debugging sewage. This is generally true for
>> all 30-40 RPM objects: you will at least get a ctor/dtor message which
>> is often enough to get sufficient context to identify what is wrong. But
>> in this case, you likely have broken pattern matching in you build
>> everywhere.
>> 
>> There's a fair number of tests that were not run because packages
>> failed to build. See the
>> http://harwich.jbj.org:8010
>> waterfall, look for the "test": stage, to see what SHOULD be happening.
>> 
>> hth
>> 
>> 73 de Jeff
>> 
>> 
>> 
> ______________________________________________________________________
> RPM Package Manager                                    http://rpm5.org
> User Communication List                             rpm-users@rpm5.org
Received on Mon Mar 26 18:46:00 2012
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.