Hello,
I was hacking around with building RPM 5.3.5 on OpenIndiana and
have got a working build after some experimentation. The intention is
to use RPM5 as the core system packaging mechanism for the
derivative distro called BeleniX.
My initial steps are the following:
1) Build an initial 64-bit "base" rpm targeted to /usr/local using the older
but working Gcc 3.4.x compiler on the OpenIndiana distro. The Gcc
4.3.2 available in OpenIndiana's repo is broken. It does not deliver
libssp_nonshared.
2) Use this base rpm to build Gcc 4.5 and dependencies as RPM pkgs
and use this Gcc to rebuild RPM and its deps targeted to /usr.
3) Prepare default macros for some common actions like installing
drivers, services etc.
I have completed #1. There are issues however.A few small patches are
required. The targets check-pubkeys and check-sign fail and make check
does not work if I am building as a non-root user.
I am including the configure and build scripts below for reference:
** XZ Utils configuration
CC="/usr/bin/gcc" CXX="/usr/bin/g++" CFLAGS="-m64" LDFLAGS="-m64"
./configure --prefix=/usr/local --bindir=/usr/local/bin/amd64
--libdir=/usr/local/lib/amd64 --enable-shared --enable-static
** DB5 version 5.1.19 configurationCC="/usr/bin/gcc" CXX="/usr/bin/g++"
CFLAGS="-m64" LDFLAGS="-m64" ../dist/configure -C --prefix=/usr/local
--bindir=/usr/local/bin/amd64 --libdir=/usr/local/lib/amd64
--includedir=/usr/local/include/db51 --enable-shared --enable-static
--enable-tcl --with-tcl=/usr/lib --enable-cxx --disable-java --enable-test
--enable-sql --enable-sql_codegen --program-transform-name=s,^db,db51,
*** Build script for RPM 5.3.5
PATH=/usr/local/bin/amd64:/usr/bin:/usr/sbin:/sbin:/usr/gnu/bin
export PATH
CFLAGS="-m64 -DHAVE_VA_COPY -DVA_COPY=va_copy -I/v/rpm/sw/var/petidomo/popt
-I/usr/local/include -I/usr/include/mps -fPIC -DPIC"
CXXFLAGS="-m64 -DHAVE_VA_COPY -DVA_COPY=va_copy -I/v/rpm/sw/var/petidomo/popt
-I/usr/local/include -I/usr/include/mps -fPIC -DPIC"
LDFLAGS="-m64 -L/usr/local/lib/amd64 -R/usr/local/lib/amd64
-L/usr/lib/mps/amd64 -R/usr/lib/mps/amd64 -L/v/rpm/sw/var/petidomo/popt/.libs"
CC="/usr/bin/gcc"
CXX="/usr/bin/g++"
export CC CXX CFLAGS CXXFLAGS LDFLAGS
if [ ! -f popt/.libs/libpopt.a ]
then
gunzip -c popt-1.15.tar.gz | tar xf -
mv popt-1.15 popt
cd popt
./configure --with-pic --enable-shared=no --enable-static=yes
gmake
cd ..
fi
pfexec rm -rf rpm-5.3.5
gunzip -c rpm-5.3.5.tar.gz | tar xf -
cd rpm-5.3.5
./configure --prefix=/usr/local --bindir='/usr/local/bin/amd64'
--infodir='/usr/local/share/info' --libdir='/usr/local/lib/amd64'
--localstatedir=/var --mandir='/usr/local/share/man'
--sysconfdir=/etc --with-file
--with-path-magic=/usr/local/share/misc/magic --with-tcl
--with-lua=internal --with-syck=internal --without-readline
--without-augeas --with-bzip2 --with-xz --with-zlib
--with-python=2.6 --with-python-inc-dir=/usr/include/python2.6
--with-python-lib-dir=/usr/lib/python2.6 --without-pythonembed
--without-perl --without-perlembed --with-db --with-dbsql
--without-db-tools-integrated --without-sqlite --with-beecrypt=internal
--with-openssl --with-nss --with-gcrypt --without-keyutils
--without-selinux --without-sepol --without-semanage --without-libtasn1
--without-pakchois --without-gnutls --with-neon
--without-libproxy --with-expat --with-pcre --enable-utf8
--with
out-uuid --without-xar --with-xz --with-popt=yes
--with-pthreads --without-cudf --without-ficl
--without-aterm --without-nix --without-bash
--without-rc --without-js --without-gpsee
--without-ruby --without-squirrel --with-build-extlibdep
--with-build-maxextlibdep --without-valgrind --disable-openmp
--with-pic --enable-build-pic --enable-build-warnings
--enable-build-debug
# Do later --enable-build-versionscript
# Get rid of visibility for now
[ ! -f lua/luaconf.h.orig ] && cp lua/luaconf.h lua/luaconf.h.orig
cat lua/luaconf.h.orig | sed
's/__attribute__((visibility("hidden")))//' > lua/luaconf.h
#
# Fix dirfd handling in fts
#
[ ! -f rpmio/fts.c.orig ] && cp rpmio/fts.c rpmio/fts.c.orig
cat rpmio/fts.c.orig | sed '
s/# define dirfd(dirp) -1/#include <dirent.h>/' > rpmio/fts.c
[ ! -f tests/Makefile.orig ] && cp tests/Makefile tests/Makefile.orig
cat tests/Makefile.orig | sed '
s/check-local: check-init check-pubkeys/check-local: check-init /
s/check-build check-sign/check-build /' > tests/Makefile
pwd
[ ! -f lua/shadow/useradd.c.orig ] && cp lua/shadow/useradd.c
lua/shadow/useradd.c.orig
cat lua/shadow/useradd.c.orig | sed '
s%/home%/export/home%' > lua/shadow/useradd.c
gmake -C lua clean || :
gmake -C python clean || :
gmake -j 2
PATH=/usr/gnu/bin:/usr/local/bin/amd64:/usr/bin:/usr/sbin:/sbin; export PATH
gmake check
Regards,
Moinak.
______________________________________________________________________
RPM Package Manager http://rpm5.org
Developer Communication List [email protected]