RPM Community Forums

Mailing List Message of <rpm-users>

Re: rpm on OSX Lion

From: Jeffrey Johnson <n3npq@me.com>
Date: Wed 28 Mar 2012 - 00:45:22 CEST
Message-id: <D220F713-9F50-4E28-85DC-12429DE1B546@me.com>

On Mar 27, 2012, at 6:27 PM, Henri Gomez wrote:

> Tried to build a simple rpm with rpm 5.4.7 rebuilt with
> --with-pcre=internal (pre dir installed under source dir), but got
> this error :
> 
> error: ^[A-Za-z0-9+._]+$: regexec failed: regexec() failed to match(1)
> error: line 8: invalid tag value("^[A-Za-z0-9+._]+$") Version: Version: 3.0.3
> error: Le package n'a pas de %description: cimaven3.x86_64
> 
> spec is :
> 
> %if %{?MAVEN_REL:1}
> %define maven_rel    %{MAVEN_REL}
> %else
> %define maven_rel    3.0.3
> %endif
> 
> Name: cimaven3
> Version: %{maven_rel}
> Release: 2%{?dist}
> Summary: Maven %{maven_rel}
> .

If you add --miredebug to the invocation, you will see the
result of every pattern match.

The patterns are used to ensure that there aren't any "surprises".

(aside)
E.g. this little nugget is astonishingly close to nuking your home directory

	Name: whatever;rm -rf ~

(I will leave it as an exercise how to get rid of the white space: took
me about 20 minutes to figger, and after 2 hours I could see
a way to download and install a root kit with rpmbuild, and I'm not
even very malicious)

But you certainly can turn off the pattern checks for various tags that
look like (in macros/macros.in):

	# data validation patterns for identifier tags
	%pattern_Name           ^[A-Za-z0-9][A-Za-z0-9+._-]*$
	%pattern_Epoch          ^[0-9]+$
	%pattern_Version        ^[A-Za-z0-9+._]+$
	%pattern_Release        ^[A-Za-z0-9+._]+$
	%pattern_Disttag        ^[A-Za-z0-9]+$
	%pattern_Repotag        ^[A-Za-z0-9]+$
	%pattern_Distepoch      ^[A-Za-z0-9.]+$

Either disable by commenting out or add additional permitted characters.

You can also extend to other tags if you wish (the rule should be obvious).

But add --miredebug to convince yourself that --with-pcre=internal is functioning.

(aside)
BTW, I'd *love* to see maven's VCS URI's permitted into
	SourceN:
with an automated checkout (instead of a tar ball unpacking). Been on
the todo list for a couple years  see trace @rpm.org for what I'd
like to see.

hth

73 de Jeff

> 
> here is otool report for rpm built :
> 
> /usr/local/bin/rpm:
> 	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
> (compatibility version 150.0.0, current version 635.19.0)
> 	/usr/local/lib/librpmbuild-5.4.dylib (compatibility version 0.0.0,
> current version 0.0.0)
> 	/usr/local/lib/librpm-5.4.dylib (compatibility version 0.0.0, current
> version 0.0.0)
> 	/usr/local/lib/librpmdb-5.4.dylib (compatibility version 0.0.0,
> current version 0.0.0)
> 	/usr/local/lib/librpmio-5.4.dylib (compatibility version 0.0.0,
> current version 0.0.0)
> 	/usr/local/lib/librpmmisc-5.4.dylib (compatibility version 0.0.0,
> current version 0.0.0)
> 	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
> version 159.1.0)
> 	/usr/local/lib/libpcreposix.0.dylib (compatibility version 1.0.0,
> current version 1.0.0)
> 	/usr/local/lib/libpcre.1.dylib (compatibility version 2.0.0, current
> version 2.0.0)
> 	/usr/local/lib/libintl.8.dylib (compatibility version 10.0.0, current
> version 10.1.0)
> 	/usr/local/lib/libdb-5.3.dylib (compatibility version 0.0.0, current
> version 0.0.0)
> 	/usr/local/lib/libbeecrypt.7.dylib (compatibility version 8.0.0,
> current version 8.0.0)
> 	/usr/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.5)
> 	/usr/local/lib/libz.1.dylib (compatibility version 1.0.0, current
> version 1.2.6)
> 	/usr/local/lib/libpopt.0.dylib (compatibility version 1.0.0, current
> version 1.0.0)
> 	/usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0)
> 
> Any idea ?
> 
> 2012/3/28 Henri Gomez <henri.gomez@gmail.com>:
>>> 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.
>> 
>> I'm rebuilding rpm 5.4.7 (not from cvs) with --with-pcre=internal
>> 
>> Studying devtool.conf I could see for Lion :
>> 
>> 
>> %falmouth
>>    %autogen
>>    %configure \
>>        --verbose \
>>        --prefix=/opt/local \
>>        --enable-shared \
>>        --with-db \
>>        --with-dbsql \
>>        --without-db-tools-integrated \
>>        --with-zlib \
>>        --with-bzip2 \
>>        --with-xz \
>>        --with-file \
>>        --with-path-magic=/opt/local/share/misc/magic \
>>        --with-lua=internal \
>>        --with-tcl \
>>        --without-sqlite \
>>        --with-syck=internal \
>>        --with-readline \
>>        --with-augeas \
>>        --with-beecrypt=internal \
>>        --without-java \
>>        --with-openssl \
>>        --with-nss \
>>        --with-gcrypt \
>>        --with-tomcrypt \
>>        --without-tpm \
>>        --with-libtasn1 \
>>        --without-pakchois \
>>        --without-gnutls \
>>        --with-neon=external \
>>        --without-libproxy \
>>        --with-expat \
>>        --with-pcre=internal \
>>        --enable-utf \
>>        --with-uuid=/opt/local/lib:/opt/local/include/ossp \
>>        --without-attr \
>>        --without-acl \
>>        --with-xar=/opt/local/lib:/opt/local/include/xar \
>>        --with-popt=internal \
>>        --without-keyutils \
>>        --with-pthreads \
>>        --without-libelf \
>>        --with-cudf \
>>        --without-ficl \
>>        --without-aterm \
>>        --without-nix \
>>        --without-bash \
>>        --without-rc \
>>        --without-js \
>>        --without-gpsee \
>>        --with-python=system \
>>        --with-pythonembed=/usr/lib:/usr/include/python2.7 \
>>        --without-perl \
>>        --without-perl-urpm \
>>        --without-perlembed \
>>        --with-ruby=/opt/local/lib/ruby/1.8 \
>>        --without-selinux \
>>        --without-sepol \
>>        --without-semanage \
>>        --without-libgit2 \
>>        --without-squirrel \
>>        --with-installed-readline \
>>        --with-valgrind \
>>        --disable-openmp \
>>        --enable-build-warnings \
>>        --enable-build-debug \
>>        --enable-maintainer-mode
>> 
>> Did you use macports libraries ?
>> 
>> What could you suggest for 100% MacPorts Free build ?
>> 
>> standalone mode ?
> ______________________________________________________________________
> RPM Package Manager                                    http://rpm5.org
> User Communication List                             rpm-users@rpm5.org
Received on Wed Mar 28 00:45:31 2012
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.