<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>urandom (steve-parker.org)</title><link>http://steve-parker.org/urandom/</link><description>Random gibberings of a geek</description><language>en-GB</language><webonly>This is a feed of the blog at http://steve-parker.org/urandom/.</webonly>
<item>
  <title>Copyright in the USA</title>
  <author>uRandom - Steve-Parker.org</author>
  <link>http://steve-parker.org/urandom/comment.php?art=994#Copyright</link>
  <comments>http://steve-parker.org/urandom/comment.php?art=994</comments>
  <guid isPermaLink="true">http://steve-parker.org/urandom/comment.php?art=994</guid>
  <pubDate>Wed, 01 Feb 2012 15:56:30 -0800</pubDate>
  <description>An excellent recent talk, made just before the PIPA and SOPA acts were derailed, which gives a succinct history of the last 20-30 years of media lobbying in the USA.&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/9h2dF-IsH0I" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;a href="http://youtu.be/9h2dF-IsH0I"&gt;http://youtu.be/9h2dF-IsH0I&lt;/a&gt;</description>
  </item>

<item>
  <title>rm -rf /</title>
  <author>uRandom - Steve-Parker.org</author>
  <link>http://steve-parker.org/urandom/comment.php?art=993#rm</link>
  <comments>http://steve-parker.org/urandom/comment.php?art=993</comments>
  <guid isPermaLink="true">http://steve-parker.org/urandom/comment.php?art=993</guid>
  <pubDate>Tue, 31 Jan 2012 15:08:52 -0800</pubDate>
  <description>It is commonly said that Solaris 10 will not allow you to issue a rm -rf / command. Few get to try it, but it was being discussed in the office today, so I thought I'd try it on a virtual machine.&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
The classic &lt;code&gt;rm -rf /&lt;/code&gt; gets the message "rm of / is not allowed" and a return code of 2. Some variations get the same, whilst others (such as &lt;code&gt;cd /; rm -rf .&lt;/code&gt;) get no message, a return code of zero, but nothing happens. Here is a transcript:&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
$ &lt;b&gt;ssh sunflare&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;
Password: &lt;br /&gt;&lt;br /&gt;
Last login: Tue Jan 31 21:38:05 2012 from goldie&lt;br /&gt;&lt;br /&gt;
Oracle Corporation      SunOS 5.10      Generic Patch   January 2005&lt;br /&gt;&lt;br /&gt;
steve@sunflare:~$ &lt;b&gt;su -&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;
Password: &lt;br /&gt;&lt;br /&gt;
Oracle Corporation      SunOS 5.10      Generic Patch   January 2005&lt;br /&gt;&lt;br /&gt;
# bash&lt;br /&gt;&lt;br /&gt;
root@sunflare:/# &lt;b&gt;df -h&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;
Filesystem             size   used  avail capacity  Mounted on&lt;br /&gt;&lt;br /&gt;
/dev/md/dsk/d10        9.6G   3.6G   5.9G    38%    /&lt;br /&gt;&lt;br /&gt;
/devices                 0K     0K     0K     0%    /devices&lt;br /&gt;&lt;br /&gt;
ctfs                     0K     0K     0K     0%    /system/contract&lt;br /&gt;&lt;br /&gt;
proc                     0K     0K     0K     0%    /proc&lt;br /&gt;&lt;br /&gt;
mnttab                   0K     0K     0K     0%    /etc/mnttab&lt;br /&gt;&lt;br /&gt;
swap                   2.1G   992K   2.1G     1%    /etc/svc/volatile&lt;br /&gt;&lt;br /&gt;
objfs                    0K     0K     0K     0%    /system/object&lt;br /&gt;&lt;br /&gt;
sharefs                  0K     0K     0K     0%    /etc/dfs/sharetab&lt;br /&gt;&lt;br /&gt;
fd                       0K     0K     0K     0%    /dev/fd&lt;br /&gt;&lt;br /&gt;
swap                   2.1G    72K   2.1G     1%    /tmp&lt;br /&gt;&lt;br /&gt;
swap                   2.1G    32K   2.1G     1%    /var/run&lt;br /&gt;&lt;br /&gt;
/dev/md/dsk/d60        4.6G   4.7M   4.6G     1%    /export/home&lt;br /&gt;&lt;br /&gt;
root@sunflare:/# &lt;b&gt;rm -rf /&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;
rm of / is not allowed&lt;br /&gt;&lt;br /&gt;
root@sunflare:/# &lt;b&gt;echo $?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;
2&lt;br /&gt;&lt;br /&gt;
root@sunflare:/# &lt;b&gt;cd /usr&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;
root@sunflare:/usr# &lt;b&gt;rm -rf ../&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;
rm of / is not allowed&lt;br /&gt;&lt;br /&gt;
root@sunflare:/usr# &lt;b&gt;cd /tmp&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;
root@sunflare:/tmp# &lt;b&gt;rm -rf ../&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;
rm of / is not allowed&lt;br /&gt;&lt;br /&gt;
root@sunflare:/tmp# &lt;b&gt;cd /usr/sfw/bin&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;
root@sunflare:/usr/sfw/bin# &lt;b&gt;rm -rf ../../..&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;
root@sunflare:/usr/sfw/bin# &lt;b&gt;cd /&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;
root@sunflare:/# &lt;b&gt;rm -rf .&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;
root@sunflare:/# &lt;b&gt;echo $?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;
0&lt;br /&gt;&lt;br /&gt;
root@sunflare:/# &lt;b&gt;pwd&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;
/&lt;br /&gt;&lt;br /&gt;
root@sunflare:/# &lt;b&gt;df -h .&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;
Filesystem             size   used  avail capacity  Mounted on&lt;br /&gt;&lt;br /&gt;
/dev/md/dsk/d10        9.6G   3.6G   5.9G    38%    /&lt;br /&gt;&lt;br /&gt;
root@sunflare:/# &lt;b&gt;cd /dev&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;
root@sunflare:/dev# &lt;b&gt;rm -rf ../tmp/../&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;
rm of / is not allowed&lt;br /&gt;&lt;br /&gt;
root@sunflare:/dev# &lt;b&gt;rm -rf ../tmp/..&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;
root@sunflare:/dev# &lt;b&gt;exit&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;
steve@sunflare:~$ logout&lt;br /&gt;&lt;br /&gt;
Connection to sunflare closed.&lt;br /&gt;&lt;br /&gt;
$&lt;br /&gt;&lt;br /&gt;
</description>
  </item>

<item>
  <title>Binary (In)Compatability: Solaris 11 : A Response</title>
  <author>uRandom - Steve-Parker.org</author>
  <link>http://steve-parker.org/urandom/comment.php?art=989#Binary_Compatibility</link>
  <comments>http://steve-parker.org/urandom/comment.php?art=989</comments>
  <guid isPermaLink="true">http://steve-parker.org/urandom/comment.php?art=989</guid>
  <pubDate>Wed, 25 Jan 2012 15:08:36 -0800</pubDate>
  <description>An article on rootvg.net, &lt;a href="http://www.rootvg.net/content/view/474/303/"&gt;Binary (In)Compatability: Solaris 11&lt;/a&gt;, claims that in the &lt;a href="http://www.oracle.com/technetwork/articles/systems-hardware-architecture/o10-015-s11-isv-adoption-198348.pdf"&gt;Oracle Solaris 11 ISV Adoption Guide&lt;/a&gt;, &lt;i&gt;the Executive Overview says, simply - Q. quaranteed? A. not any longer&lt;/i&gt;. This is actually a paraphrase. The later quote is correct:&lt;p&gt;&lt;i&gt;This document is designed to help independent software vendors (ISVs) transition their applications smoothly from Oracle Solaris 10 to Oracle Solaris 11. It provides a list of all currently known modifications, which may be needed for existing applications to run on Oracle Solaris 11. The majority of applications will work without any modification.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
Actually, this document explains issues beyond the ABI; as new features are introduced, and previously deprecated functions are removed, the operating environment will change. The ABI is still guaranteed, however.&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
What the document does cover are listed clearly:&lt;br /&gt;&lt;br /&gt;
&lt;i&gt;It discusses the currently known border cases where configuration changes may be needed due to:&lt;ul&gt;&lt;br /&gt;&lt;br /&gt;
&lt;li&gt;  Modified default configurations and settings (examples: default shells, ZFS root file system)&lt;br /&gt;&lt;br /&gt;
&lt;li&gt;  Retired packages (example: obsolete physical devices)&lt;br /&gt;&lt;br /&gt;
&lt;li&gt;  Evolution of industry standards (example: standardized locale names)&lt;br /&gt;&lt;br /&gt;
&lt;li&gt;  Removal of already-deprecated functions&lt;br /&gt;&lt;br /&gt;
&lt;li&gt;  Removal of undocumented and unsupported functionality&lt;br /&gt;&lt;br /&gt;
&lt;li&gt;  Border cases introduced by new technologies (such as ZFS root file system default)&lt;br /&gt;&lt;br /&gt;
&lt;li&gt;  Bug fixes and increased security (narrower access and usage rights)&lt;br /&gt;&lt;br /&gt;
&lt;li&gt;  The new installation technology known as Image Packaging System (IPS)&lt;/ul&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
The document clearly states that &lt;i&gt;Oracle Solaris 11 and Oracle Solaris 11 are planned to be binary compatible with previous Oracle&lt;br /&gt;&lt;br /&gt;
Solaris versions2. This means that existing application binaries should run on Oracle Solaris 11 (and higher) without recompilation, as long as that applications were coded to standard, published Oracle Solaris APIs and ABIs&lt;/i&gt;. Presumably the repetition of "Oracle Solaris 11" is a typo related to the removal of OpenSolaris, though that is just a guess on my part.&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
So - the binary compatibility guarantee is the same as it always has been. Software which makes assumptions about older versions of Solaris may need checking - parsing the output of "df" is different for ZFS filesystems. Using the &lt;code&gt;pkginfo&lt;/code&gt; command to check availability of a software package won't work for IFS packages. Depending on an obsolete driver would also make no sense, just as AIX6 does not support POWER3 architecture, for example.&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
The document further clarifies the situation - same as it ever was:&lt;br /&gt;&lt;br /&gt;
&lt;i&gt;Oracle Solaris provides a binary guarantee – that an application that complies with the Oracle Solaris ABI developed and built on an earlier version of Oracle Solaris should run unmodified on Oracle&lt;br /&gt;&lt;br /&gt;
Solaris 11 on the same architecture. In order to provide this guarantee, the application must meet the following restrictions:&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;  The application must be dynamically linked - neither the application nor any of its component libraries should statically link any of the Oracle Solaris system libraries.&lt;br /&gt;&lt;br /&gt;
&lt;li&gt;  The application must use only API functions that are documented as committed, standard or stable.&lt;br /&gt;&lt;br /&gt;
&lt;li&gt;  Interface stability is described in the attributes(5) man page.&lt;br /&gt;&lt;br /&gt;
&lt;li&gt;  The application must not use uncommitted, unstable or evolving API interfaces.&lt;br /&gt;&lt;br /&gt;
&lt;li&gt;  The application must not use private or undocumented interfaces.&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;
Oracle Solaris provides a number of tools to check an application’s compliance against the Oracle Solaris ABI.&lt;br /&gt;&lt;br /&gt;
On Oracle Solaris 10 the appcert and apptrace tools can be used to perform static and dynamic checking of an application to test for ABI compliance. This can be done a system running Oracle Solaris 10 before testing the application on Oracle Solaris 11.&lt;br /&gt;&lt;br /&gt;
The Oracle Solaris Ready Test Suite, used on Oracle Solaris 10 to determine if an application can be deployed in a zone, includes an ABI compliance check.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
The document also goes into some detail of changes in Solaris Zones; one of the biggest is that Branded Zones for Solaris 8 and Solaris 9 are no longer supported, but as they were never supported for production use, that is of very little relevance.&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
So, the Solaris binary compatibility guarantee is just as healthy as it has ever been.&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
The RootVG.net article suggests that the answer is to "use shared libraries and API's. The new shared libraries do the work, should it be necessary, to make it work." Clinging to the past, whilst adding complexities to library code is not the way to deal with the huge feature changes and massive development work that has happened in Solaris 10 and Solaris 11. Maintaining a clear and supported ABI is the solution. Solaris has always done that, and continues to do that, whilst also maintaining Unix as a first-class 21st century operating system.</description>
  </item>

<item>
  <title>OpenOffice.org / LibreOffice Migration Guide for Microsoft Office Users</title>
  <author>uRandom - Steve-Parker.org</author>
  <link>http://steve-parker.org/urandom/comment.php?art=988#ooo_migration_guide</link>
  <comments>http://steve-parker.org/urandom/comment.php?art=988</comments>
  <guid isPermaLink="true">http://steve-parker.org/urandom/comment.php?art=988</guid>
  <pubDate>Thu, 22 Dec 2011 01:20:29 -0800</pubDate>
  <description>There is a fairly detailed &lt;a href="http://wiki.services.openoffice.org/wiki/Documentation/OOoAuthors_User_Manual/Migration_Guide"&gt;Migration Guide&lt;/a&gt; on the OpenOffice.org Wiki, which although quite old still looks very good.&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
I'm surprised that I have never come across this, as it is a great piece of marketing for OpenOffice.org and LibreOffice, but seems to have had little publicity. There are individual pages comparing &lt;a href="http://wiki.services.openoffice.org/wiki/Documentation/OOoAuthors_User_Manual/Migration_Guide/General_Differences"&gt;general differences&lt;/a&gt;, the &lt;a href="http://wiki.services.openoffice.org/wiki/Documentation/OOoAuthors_User_Manual/Migration_Guide/Writer_and_Word"&gt;word processor&lt;/a&gt;, &lt;a href="http://wiki.services.openoffice.org/wiki/Documentation/OOoAuthors_User_Manual/Migration_Guide/Calc_and_Excel"&gt;spreadsheet&lt;/a&gt; and &lt;a href="http://wiki.services.openoffice.org/wiki/Documentation/OOoAuthors_User_Manual/Migration_Guide/Impress_and_PowerPoint"&gt;presentation&lt;/a&gt; parts of the respective office packages, as well as more general usage information</description>
  </item>

<item>
  <title>Solaris Packaging with Zones</title>
  <author>uRandom - Steve-Parker.org</author>
  <link>http://steve-parker.org/urandom/comment.php?art=987#pkg_zone</link>
  <comments>http://steve-parker.org/urandom/comment.php?art=987</comments>
  <guid isPermaLink="true">http://steve-parker.org/urandom/comment.php?art=987</guid>
  <pubDate>Tue, 20 Dec 2011 00:48:28 -0800</pubDate>
  <description>One handy use for Solaris Zones that I have come across recently, is a very quick and easy way to build packages. Rather than "polluting" the main filesystem tree with the software to be packaged, simply create a zone, install the software there, and as a final act, you can even prune unwanted parts of the tree before packaging it up and disposing of the zone.&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
I had some software to install into /usr/local; the existing tree includes some (non-essential) software already in /usr/local, so I created a full-root zone, cleaned /usr/local within the zone, built the software (configure &amp;&amp; make &amp;&amp; make install), which was actually Perl, some third-party libraries, and 30 or so modules, and tested it in the zone.&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
Then to package it up, simply drop back to the global zone:&lt;br /&gt;&lt;br /&gt;
&lt;pre&gt;# cd /tmp/pkg&lt;br /&gt;&lt;br /&gt;
# echo "i pkginfo" &gt; prototyp&lt;br /&gt;&lt;br /&gt;
# pkgproto /zones/myzone/root/usr/local=/usr/local &gt;&gt; /tmp/pkg/prototype&lt;br /&gt;&lt;br /&gt;
# cat - &gt; pkginfo &lt;&lt; EOF&lt;br /&gt;&lt;br /&gt;
NAME=Perl Stuff&lt;br /&gt;&lt;br /&gt;
PKG=MYperl&lt;br /&gt;&lt;br /&gt;
CLASSES=none&lt;br /&gt;&lt;br /&gt;
PSTAMP=&lt;br /&gt;&lt;br /&gt;
VERSION=5.8.9&lt;br /&gt;&lt;br /&gt;
EOF&lt;br /&gt;&lt;br /&gt;
# pkgmk&lt;br /&gt;&lt;br /&gt;
&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
The package is ready in /var/spool/pkg/MYperl. You can use &lt;a href="http://steve-parker.org/articles/pkgtrans/"&gt;pkgtrans&lt;/a&gt; to ocnvert this into a MYperl.pkg file.</description>
  </item>

<item>
  <title>Command of the day</title>
  <author>uRandom - Steve-Parker.org</author>
  <link>http://steve-parker.org/urandom/comment.php?art=986#chown-h</link>
  <comments>http://steve-parker.org/urandom/comment.php?art=986</comments>
  <guid isPermaLink="true">http://steve-parker.org/urandom/comment.php?art=986</guid>
  <pubDate>Thu, 15 Dec 2011 04:33:38 -0800</pubDate>
  <description>chown -h changes the ownership of symbolic links (rather than what they point to)</description>
  </item>

<item>
  <title>Solaris 10 releases, by date and update number, and associated kernel patch</title>
  <author>uRandom - Steve-Parker.org</author>
  <link>http://steve-parker.org/urandom/comment.php?art=985#sol10kernel</link>
  <comments>http://steve-parker.org/urandom/comment.php?art=985</comments>
  <guid isPermaLink="true">http://steve-parker.org/urandom/comment.php?art=985</guid>
  <pubDate>Thu, 08 Dec 2011 00:55:54 -0800</pubDate>
  <description>&lt;a href="http://blogs.oracle.com/js/entry/solaris_10_kernel_patches"&gt;Solaris 10 kernel patches&lt;/a&gt; along with their associated Solaris 10 release dates and numbers</description>
  </item>

<item>
  <title>Gnome in CentOS 6</title>
  <author>uRandom - Steve-Parker.org</author>
  <link>http://steve-parker.org/urandom/comment.php?art=984#gnome-centos6</link>
  <comments>http://steve-parker.org/urandom/comment.php?art=984</comments>
  <guid isPermaLink="true">http://steve-parker.org/urandom/comment.php?art=984</guid>
  <pubDate>Tue, 06 Dec 2011 08:34:04 -0800</pubDate>
  <description>In CentOS6 (and presumably RHEL6, though I haven't tried it), if you do a minimal install and then add gnome-desktop, it will not pull in everything that is needed:&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
xorg-x11-server-Xorg&lt;br /&gt;&lt;br /&gt;
gnome-session&lt;br /&gt;&lt;br /&gt;
gnome-power-manager&lt;br /&gt;&lt;br /&gt;
gnome-session-xsession&lt;br /&gt;&lt;br /&gt;
gnome-panel&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
That's enough to get you logged in.&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
Then you'll still need gnome-terminal and all the other essential tools.&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
Presumably there is some meta-RPM in RHEL6 which pulls all of these in, but surely at a minimum, gnome-session should pull in gnome-session-xsession (which only contains one file: /usr/share/xsessions/gnome.desktop)</description>
  </item>

<item>
  <title>Notes on Anacron</title>
  <author>uRandom - Steve-Parker.org</author>
  <link>http://steve-parker.org/urandom/comment.php?art=983#anacron</link>
  <comments>http://steve-parker.org/urandom/comment.php?art=983</comments>
  <guid isPermaLink="true">http://steve-parker.org/urandom/comment.php?art=983</guid>
  <pubDate>Wed, 30 Nov 2011 15:22:29 -0800</pubDate>
  <description>Traditional cron works as on Solaris. On RHEL5/OEL5 this is vixie-cron. On RHEL6, it's cronie.&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;a href="http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5/html/Deployment_Guide/ch-autotasks.html"&gt;RHEL5 Notes&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
&lt;a href="http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Migration_Planning_Guide/ch04s14.html"&gt;RHEL6 Notes&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
Anacron runs on boot (in case it needs to run tasks now - such as if it had a 2am job and gets shutdown overnight). It used to get called by the regular cron, it is now controlled by /etc/anacrontab&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
/etc/anacrontab tells anacron to run cron.daily at "1 65 cron.daily" - ie, every 1 day, after 65 minutes - ie, 0105AM.&lt;br /&gt;&lt;br /&gt;
Similarly cron.weekly is run at "7 70" - do the weekly jobs at 0110AM every 7 days.&lt;br /&gt;&lt;br /&gt;
cron.monthly is run at "30 75" - every 30 days at 0115AM.&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
So, this mechanism controls when (on a typical system, up 24/7) the cron jobs get run. </description>
  </item>

</channel></rss>

