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                        rpm-devel@rpm5.org

Reply via email to