Spacewalk is Linux systems management solution. Until some time ago it had support for Solaris clients as well, but that was removed recently. This needs some testing right?
In Solaris, you have 3 ways to deliver software (AFAICT - I have absolutely 0 knowledge about administering Solaris):
- package - check OpenCSW project for some of these and if you wanted to push these to Spacewalk, you had to throw them to
solaris2mpm
utility which creates *.mpm package from these *.pkg.gz files. These *.mpm were then push-able to Spacewalk usingrhnpush
. When pushed, this package will appear in "Packages" tab of your Solaris channel. - Solaris patch - this is AFAICT something created by SUN (or Oracle) only and only distributed by them via payed subscriptions, I have not found any guide on how to create one yourself. Again, you need to use
solaris2mpm
to transform the file to push-able *.mpm file. - Solaris patch cluster - same as for Solaris patch
This post is about very lame way on how to create solaris patch file which after push appears under "Patches" tab in older Spacewalk in Solaris channel. There is absolutely no intention to have this actually installable by Solaris client.
- First of all notice
solaris2mpm
is broken in Spacewalk so use version from Satellite I have not reported it, as the functionality was actually removed anyway. - Notice that
solaris2mpm
is present in normal fedora rhnpush package as well, but see this old bug about its missing dependencies - Install
heirloom-pkgtools
from Spacewalk's build system. Although this build (direct link to rpm) is very old, it worked on mine Fedora 25 - Build aaa-1.pkg:
$ pwd /tmp/solaris_yay $ cat pkginfo PKG=aaa-1 NAME=Just a demo solaris patch VERSION=0.0.1 CATEGORY=application DESC=Some loooong description of this cool package or patch or whatever ARCH=i386 VENDOR=http://where.you.got.it EMAIL=root@ocalhost $ rm -rf aaa* README.*; P=aaa-1; mkdir $P; date > $P/data; echo "Date: $( date +%Y-%m-%d )" > README.$P; echo "Relevant Architectures: i386" >> README.$P $ (echo 'i pkginfo'; pkgproto /tmp/solaris_yay/README.aaa-1=/README.aaa-1 /tmp/solaris_yay/aaa-1=/) >prototype $ pkgmk -o -d /tmp/; echo $?; pkgtrans -s /tmp /tmp/aaa-1.pkg aaa-1; echo $?
I have made these ugly lines because I have been experimenting a lot with that and it allowed me to kinda automate parts of the process - Now on RHEL6 Satellite (so
solaris2mpm
works - see first point here) withheirloom-pkgtools
package installed (see third point) (so you do not need to do this on Solaris machine) run:# solaris2mpm aaa-1.pkg Writing patch-solaris-aaa-1-1.i386-solaris-patch.mpm
- Push resulting *.mpm to the Spacewalk's/Satellite's Solaris channel using
rhnpush
and enjoy looking at "Patches" tab of the channel filled with some content without SUN/Oracle subscription.
Some links I have used along the way:
- Home of The Heirloom Packaging Tools, but this fork (?) might be handy
- Nice guide of How to make a Solaris package, alternate method
- Some info about Sun Solaris Application Packaging - patch mentioned there is not a "Solaris patch", but the link was quite important for me