Discussion:
Making an RPM out of a commercial package
soup nazi
2008-02-12 01:10:46 UTC
Permalink
I have a commercial software package that I have to
make into an RPM. What I have to package up basically
consists of a license file, a response file, a couple
of maintenance updates, and a binary installer that
takes a number of command line flags.

What I would like is for the RPM to unpack all these
files and run an installation script that kicks off
the binary installer with all of its command line
flags. (There is also an uninstaller that I'd like to
invoke using rpm -e.)

Instead what happens is when I run the rpmbuild
spec-file command, the software package gets installed
locally (via the vendor setup). The newly-built RPM
then contains all of the files that were installed,
and installing that RPM on another system does not
invoke the vendor installer.

The problem is that the software needs to get
installed via the installer, and not just have the
package exploded onto the system tarball-style, which
is what I have now. There are client-specific keys
that are generated at install time that need to be
unique, for one.

How can I do this with an RPM?

My spec file looks roughly like this:

Summary: ESM
Name: esm
Version: 65
Release: 0
Group: ABC
Copyright: Yes
Packager: Me
Source: rh-as40-ESM-65-24.tar.gz
%description
This is ESM version 6.5

%prep
%setup

%install

#setup a bunch of vars - snipped for brevity
./esmsetup -a -p 1,2,3,4,5,6,7,8,9,10,11,12,13,14 -d
/opt/esm -t /usr/src/redhat/BUILD/esm-65/esm.tgz -M
$ES
MSRVR -O 5600 -U $ACCESSNAME -W $PASSWORD -N $FQDN >>
$LOG_FILE 2>&1

./esm_lnx-x86.tpk >> $LOG_FILE 2>&1 <$ABTTMP/esm.stdin

./esmsetup >>$LOG_FILE 2>&1 <$ABTTMP/esm.stdin.update

%post

%files
/opt/esm
/etc/rc.d/rc3.d/S69esmrc
/etc/rc.d/init.d/esmrc
/etc/rc.d/rc5.d/S69esmrc



____________________________________________________________________________________
Looking for last minute shopping deals?
Find them fast with Yahoo! Search. http://tools.search.yahoo.com/newsearch/category.php?category=shopping
Robert Heller
2008-02-12 01:40:44 UTC
Permalink
Post by soup nazi
I have a commercial software package that I have to
make into an RPM. What I have to package up basically
consists of a license file, a response file, a couple
of maintenance updates, and a binary installer that
takes a number of command line flags.
What I would like is for the RPM to unpack all these
files and run an installation script that kicks off
the binary installer with all of its command line
flags. (There is also an uninstaller that I'd like to
invoke using rpm -e.)
Instead what happens is when I run the rpmbuild
spec-file command, the software package gets installed
locally (via the vendor setup). The newly-built RPM
then contains all of the files that were installed,
and installing that RPM on another system does not
invoke the vendor installer.
The problem is that the software needs to get
installed via the installer, and not just have the
package exploded onto the system tarball-style, which
is what I have now. There are client-specific keys
that are generated at install time that need to be
unique, for one.
How can I do this with an RPM?
I'm no RPM expert, but what it sounds like is that you don't want to
actually run the vendor installer in the %install section. Instead, you
want to 'install' the installer itself (along with the other 'static'
stuff like the license file) in some place like ${DESTDIR}/usr/share/<package>
and then actually run the installer from the %post script. Or something
like that. I think there is a place for a script to run when
uninstalling, where you would run the uninstaller (and you'd need to
install the uninstaller someplace special as well and make sure that it
is not removed before the rpm -e script is run).
Post by soup nazi
Summary: ESM
Name: esm
Version: 65
Release: 0
Group: ABC
Copyright: Yes
Packager: Me
Source: rh-as40-ESM-65-24.tar.gz
%description
This is ESM version 6.5
%prep
%setup
%install
#setup a bunch of vars - snipped for brevity
./esmsetup -a -p 1,2,3,4,5,6,7,8,9,10,11,12,13,14 -d
/opt/esm -t /usr/src/redhat/BUILD/esm-65/esm.tgz -M
$ES
MSRVR -O 5600 -U $ACCESSNAME -W $PASSWORD -N $FQDN >>
$LOG_FILE 2>&1
./esm_lnx-x86.tpk >> $LOG_FILE 2>&1 <$ABTTMP/esm.stdin
./esmsetup >>$LOG_FILE 2>&1 <$ABTTMP/esm.stdin.update
%post
%files
/opt/esm
/etc/rc.d/rc3.d/S69esmrc
/etc/rc.d/init.d/esmrc
/etc/rc.d/rc5.d/S69esmrc
____________________________________________________________________________________
Looking for last minute shopping deals?
Find them fast with Yahoo! Search. http://tools.search.yahoo.com/newsearch/category.php?category=shopping
_______________________________________________
Rpm-list mailing list
https://www.redhat.com/mailman/listinfo/rpm-list
--
Robert Heller -- Get the Deepwoods Software FireFox Toolbar!
Deepwoods Software -- Linux Installation and Administration
http://www.deepsoft.com/ -- Web Hosting, with CGI and Database
***@deepsoft.com -- Contract Programming: C/C++, Tcl/Tk
devzero2000
2008-02-13 22:29:10 UTC
Permalink
I have made the packaging of products commercial like WebSphere (init,
config and the like) on RHEL4 and Tivoli end-point. For their licences the
source rpm it is of type nosrc and I have disabled the binary stripping of
the binary - mostly java of course - and the production of rpm debug. If it
interests to you I can post the spec of the tivoli end-point. Tell me. I
advice you that most of this product have required a bit of work, but non
problem: websphere (26000 files around) works also within a selinux
apache - via the websphere plugin, also an rpm of course.

Cheer
Post by soup nazi
I have a commercial software package that I have to
make into an RPM. What I have to package up basically
consists of a license file, a response file, a couple
of maintenance updates, and a binary installer that
takes a number of command line flags.
What I would like is for the RPM to unpack all these
files and run an installation script that kicks off
the binary installer with all of its command line
flags. (There is also an uninstaller that I'd like to
invoke using rpm -e.)
Instead what happens is when I run the rpmbuild
spec-file command, the software package gets installed
locally (via the vendor setup). The newly-built RPM
then contains all of the files that were installed,
and installing that RPM on another system does not
invoke the vendor installer.
The problem is that the software needs to get
installed via the installer, and not just have the
package exploded onto the system tarball-style, which
is what I have now. There are client-specific keys
that are generated at install time that need to be
unique, for one.
How can I do this with an RPM?
Summary: ESM
Name: esm
Version: 65
Release: 0
Group: ABC
Copyright: Yes
Packager: Me
Source: rh-as40-ESM-65-24.tar.gz
%description
This is ESM version 6.5
%prep
%setup
%install
#setup a bunch of vars - snipped for brevity
./esmsetup -a -p 1,2,3,4,5,6,7,8,9,10,11,12,13,14 -d
/opt/esm -t /usr/src/redhat/BUILD/esm-65/esm.tgz -M
$ES
MSRVR -O 5600 -U $ACCESSNAME -W $PASSWORD -N $FQDN >>
$LOG_FILE 2>&1
./esm_lnx-x86.tpk >> $LOG_FILE 2>&1 <$ABTTMP/esm.stdin
./esmsetup >>$LOG_FILE 2>&1 <$ABTTMP/esm.stdin.update
%post
%files
/opt/esm
/etc/rc.d/rc3.d/S69esmrc
/etc/rc.d/init.d/esmrc
/etc/rc.d/rc5.d/S69esmrc
____________________________________________________________________________________
Looking for last minute shopping deals?
Find them fast with Yahoo! Search.
http://tools.search.yahoo.com/newsearch/category.php?category=shopping
_______________________________________________
Rpm-list mailing list
https://www.redhat.com/mailman/listinfo/rpm-list
Loading...