Hi All,

First off, I just wanted to say how enjoyable I've found IPS to use, and wanted 
to say a big thanks to the pkg team for their efforts. I've been using it a lot 
over the past 6 months.

I decided I wanted to deploy IPS on Solaris 10, as the day job still has a 
large cluster of said boxes, so I built it, and I've just blogged about the 
process. I wanted to share this link and provide some feedback so others 
seeking to do the same find the process a bit easier:

http://blogs.everycity.co.uk/alasdair/2011/01/building-ips-pkg5-on-solaris-10/

It was quite a journey, and took the best part of 2 days to achieve. My 
understanding is that one of the original design goals of IPS was for it to be 
cross-platform, and of course Webstack 1.5 for Solaris 10 shipped in an IPS 
format with a mini pkg5 install based on Python 2.4. But is cross-platform 
support still a design consideration? Is any QA being done with pkg5 on Solaris 
10?

The reason I ask is that pkg5 now has quite a lot of dependencies on stuff not 
present or too old in Solaris 10 to build out of the box. I don't mind 
dependencies, dependencies are okay (even if they are a major PITA to fulfil on 
Solaris 10 given how many of them there are). But I did encounter some issues 
that could probably be addressed within the pkg build system itself.

First, when building M2Crypto, pkg5 assumes patch is GNU patch. Obviously on 
Solaris 10, /usr/bin/patch doesn't support the GNU options, so /usr/bin/gpatch 
has to be used. That's an easy fix.

Secondly, M2Crypto uses SWIG to generate python bindings for functions in 
OpenSSL. One of those is ENGINE_load_openssl, which isn't present in OpenSSL on 
Solaris 10. Fixing this is fairly easy, the patch is:

# pwd
/root/pkg-gate/src/patch/M2Crypto

# cat pkg-gate_m2c.patch
--- SWIG/_engine.i.orig 2011-01-22 23:32:17.583271086 +0000
+++ SWIG/_engine.i      2011-01-22 23:32:50.478960838 +0000
@@ -26,9 +26,6 @@
 %rename(engine_load_dynamic) ENGINE_load_dynamic;
 extern void ENGINE_load_dynamic(void);

-%rename(engine_load_openssl) ENGINE_load_openssl;
-extern void ENGINE_load_openssl(void);
-
 %rename(engine_cleanup) ENGINE_cleanup;
 extern void ENGINE_cleanup(void);

Thirdly, M2Crypto ignores CFLAGS set in the environment (or they're cleared by 
the pkg5 build process) and looks for the OpenSSL includes in the wrong place 
on Solaris 10. This isn't a general fix as it'll stop it building on other 
platforms, but you get the idea:

# cat setup.patch
--- setup.py.orig       2011-01-22 23:49:21.466821165 +0000
+++ setup.py    2011-01-22 23:49:32.286055614 +0000
@@ -40,7 +40,7 @@
             self.openssl = 'c:\\pkg'
         else:
             self.libraries = ['ssl', 'crypto']
-            self.openssl = '/usr'
+            self.openssl = '/usr/sfw'

     def finalize_options(self):


I think those are the main things. If the pkg team is interested in committing 
these fixes to to the gate, and would like a proper patch for the patch issue 
and OpenSSL include path, let me know and I'll do one.

I'd also appreciate any feedback, tips or info relating to IPS on Solaris 10.

Cheers,

Alasdair
_______________________________________________
pkg-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/pkg-discuss

Reply via email to