while sorfing i came across it ... and some may benefit from this.
It can be done as normal Unix user (i.e. root access is not required) but the file /.rpmmacros needs to be in place and contain the right definitions for the topdir. In particular the topdir needs to be defined as a user subdirectory. Also, a local database directory for rpm (RPMdb) needs to be created in the user area and the .rpmmacros should contain the right definition for it.

In order to create a correct /.rpmmacros file, copy the file /usr/lib/rpm/macros in /.rpmmacros and change it to contain the right definitions for topdir and dbpath.

To populate the rpm database directory, copy the rpm files from /var/lib/rpm to the user created local RPM database directory.

Here is the procedure described step by step:

copy the source RPM that you want to install wherever you want

create the RPMdb directory + copy rpm files (mkdir /RPMdb)

create the /.rpmmacros file as described above, defining in this example the topdir to be and dbpath to be /RPMdb

create the RPM topdir structure as follows:

mkdir -p ~/rpm/redhat/SOURCES
mkdir -p ~/rpm/redhat/BUILD
mkdir -p ~/rpm/redhat/RPMS
mkdir -p ~/rpm/redhat/SRPMS
mkdir -p ~/rpm/redhat/SPECS

run rpm -ivh -dbpath /RPMdb source-rpmfile.rpm

no -prefix is required, a tar.gz file will be created in: /rpm/redhat/SOURCES
Source : http://project-gdmp.web.cern.ch/proj...3-0/node8.html