<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>pkgsrc &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/pkgsrc/</link>
	<description>Feed of posts on WordPress.com tagged "pkgsrc"</description>
	<pubDate>Tue, 22 Dec 2009 20:30:11 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[Often used pkgsrc commands]]></title>
<link>http://cldoten.wordpress.com/2008/08/14/often-used-pkgsrc-commands/</link>
<pubDate>Thu, 14 Aug 2008 18:58:43 +0000</pubDate>
<dc:creator>Christian</dc:creator>
<guid>http://cldoten.wordpress.com/2008/08/14/often-used-pkgsrc-commands/</guid>
<description><![CDATA[This my memo where I store the commands I&#8217;m using when building packages with pkgsrc (http://w]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>This my memo where I store the commands I&#8217;m using when building packages with <a href="http://www.netbsd.org/docs/software/packages.html">pkgsrc</a> (<a href="http://www.netbsd.org/docs/software/packages.html">http://www.netbsd.org/docs/software/packages.html</a>).</p>
<p>Determining the package dependencies:<br />
$ bmake <strong>show-depends-pkgpath</strong></p>
<p>Finding <strong>build references</strong> to a given package, e.g. libdrm:<br />
$ egrep &#8216;libdrm&#124;xf86driproto&#8217; */*/buildlink3.mk</p>
<p>All the <strong>available targets</strong> are documented in <a href="http://wiki.netbsd.se/The_pkgsrc_make_target_reference">The pkgsrc make target reference &#8211; NetBSD Wiki.</a></p>
<p>This is used to <strong>rebuild </strong>a patched package:<br />
bmake distinfo &#38;&#38; bmake clean &#38;&#38; bmake build</p>
<p>The following <strong>builds and install</strong> the package:<br />
bmake distinfo &#38;&#38; bmake clean &#38;&#38; bmake package</p>
<p>QNX specific issues are discussed in the forum <a href="http://community.qnx.com/sf/discussion/do/listTopics/projects.pkgsrc/discussion.general">http://community.qnx.com/sf/discussion/do/listTopics/projects.pkgsrc/discussion.general</a>.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[modular-xorg-server]]></title>
<link>http://yoshi1968.wordpress.com/2008/04/20/modular-xorg-server/</link>
<pubDate>Sun, 20 Apr 2008 11:11:31 +0000</pubDate>
<dc:creator>yoshi1968</dc:creator>
<guid>http://yoshi1968.wordpress.com/2008/04/20/modular-xorg-server/</guid>
<description><![CDATA[久しぶりの日記です。 またまた久しぶりに pkgsrc を更新して pkg_roling-replace を実行したところ、x11/modular-xorg-server でエラーが発生してました。 ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>久しぶりの日記です。</p>
<p>またまた久しぶりに pkgsrc を更新して pkg_roling-replace を実行したところ、x11/modular-xorg-server でエラーが発生してました。<br />
詳細は<a href="http://mail-index.netbsd.org/pkgsrc-users/2008/04/18/msg007033.html">ここ</a>をご覧ください。<br />
どうやら新しい x11/printproto が原因らしいです。<br />
もう暫く様子を見ましょう。</p>
<p># 自分では原因を特定できないので申し訳ないです。<br />
# メンテナンスしていただいている方、よろしくお願いいたします。</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[ PkgsrcCon 2008]]></title>
<link>http://saforas.wordpress.com/2008/03/15/pkgsrccon-2008/</link>
<pubDate>Sun, 16 Mar 2008 00:52:41 +0000</pubDate>
<dc:creator>sAfOrAs</dc:creator>
<guid>http://saforas.wordpress.com/2008/03/15/pkgsrccon-2008/</guid>
<description><![CDATA[PkgsrcCon es una conferencia técnica para las personas que trabajan en la NetBSD Packages Collection]]></description>
<content:encoded><![CDATA[PkgsrcCon es una conferencia técnica para las personas que trabajan en la NetBSD Packages Collection]]></content:encoded>
</item>
<item>
<title><![CDATA[lintpkgsrc]]></title>
<link>http://yoshi1968.wordpress.com/2008/01/18/lintpkgsrc/</link>
<pubDate>Fri, 18 Jan 2008 13:59:47 +0000</pubDate>
<dc:creator>yoshi1968</dc:creator>
<guid>http://yoshi1968.wordpress.com/2008/01/18/lintpkgsrc/</guid>
<description><![CDATA[よくよく見たら、pkglintから独立していました。 pkgsrc/pkgtools/pkglintとpkgsrc/pkgtools/lintpkgsrcをそれぞれmake updateして今までどお]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>よくよく見たら、pkglintから独立していました。</p>
<p>pkgsrc/pkgtools/pkglintとpkgsrc/pkgtools/lintpkgsrcをそれぞれmake updateして今までどおりです。</p>
<p># obacheさんからコメントをいただいてました。<br />
# ありがとうございました。<br />
# このサイトにコメントをいただけるとは思っていなかったので<br />
# ちょっとビックリでした。</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[pkgsrc]]></title>
<link>http://yoshi1968.wordpress.com/2008/01/17/pkgsrc/</link>
<pubDate>Thu, 17 Jan 2008 13:39:20 +0000</pubDate>
<dc:creator>yoshi1968</dc:creator>
<guid>http://yoshi1968.wordpress.com/2008/01/17/pkgsrc/</guid>
<description><![CDATA[ソースを更新しました。glib2やらperlに依存しているものが沢山あるため、make updateにものすごく時間がかかりました。 ひととおりupdateしたと思ったら日本語変換がonになりません・]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>ソースを更新しました。glib2やらperlに依存しているものが沢山あるため、make updateにものすごく時間がかかりました。<br />
ひととおりupdateしたと思ったら日本語変換がonになりません・・・バイナリインストールしたuimが消えていました。<br />
しかも、lintpkgsrc -iで更新状態を確認しようとしたらlintpkgsrcまでもが無くなっていました。<br />
しかもしかも、/usr/pkgsrc/pkgtools/pkglintでmake installしてもlintpkgsrcはインストールされません!?</p>
<p>またまた<a href="http://ftp.netbsd.org/pub/NetBSD/packages/current-packages/NetBSD/i386/">NetBSDのサイトから</a>とりあえず最も新しいバイナリをダウンロードして、uim-1.3.1nb1.tgzと、バージョンは一つ後戻りしますがpkglint-4.81.tgzをインストールしました。</p>
<p>以上です。</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Installare e configurare CUPS su NetBSD]]></title>
<link>http://emanuelecipolla.net/2007/08/22/installare-e-configurare-cups-su-netbsd/</link>
<pubDate>Wed, 22 Aug 2007 11:15:13 +0000</pubDate>
<dc:creator>Emanuele Cipolla</dc:creator>
<guid>http://emanuelecipolla.net/2007/08/22/installare-e-configurare-cups-su-netbsd/</guid>
<description><![CDATA[Avvertenza: Questo è il mio primo post &#8220;tecnico&#8221; a riguardare NetBSD. Probabilmente (sic]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><div class="warning">Avvertenza: Questo è il mio primo post &#8220;tecnico&#8221; a riguardare NetBSD. Probabilmente (sicuramente) non è accurato quanto dovrebbe. Vi prego di segnalarmi tramite i commenti ogni eventuale mancanza. Grazie anticipatamente.</div>
<p>La scheda madre di uno dei miei sistemi ha un bug tedioso, dovuto probabilmente all&#8217;aver subito &#8220;qualche&#8221; danneggiamento, che le impedisce di far funzionare correttamente le unità in modalità Ultra DMA.</p>
<p>Windows sembra non risentire di questo problema: GNU/Linux, specie con le revisioni più recenti del kernel 2.6, ne è sempre più affetto.</p>
<p>Purtroppo, il workaround che consisteva nel passare il parametro <em>ide=nodma</em> sembra non funzionare più. Per questo ho deciso di provare ad utilizzare un altro sistema operativo libero al suo posto. Inoltre, quando ancora il workaround funzionava, il degrado prestazionale che, per contro, si doveva pagare era terrificante.</p>
<p>La scelta è caduta su NetBSD, con il quale ho avuto modo di fare esperienza qualche anno addietro, quando era giunto da poco alla release 2.0. L&#8217;impressione che ne avevo ricavato era quella di un sistema molto solido e resistente. La versione 3.1 mi ha confermato appieno quelle impressioni: non soltanto il kernel (che non ho ricompilato, sia chiaro: è quello di default) attiva il workaround per tutte le periferiche IDE in meno di due secondi &#8211; mentre Linux aspettava di aver ottenuto l&#8217;elenco delle partizioni, ma la fluidità non viene quasi alterata.</p>
<p>Dopo aver sistemato le necessità più immediate (grazie ai pacchetti precompilati che il progetto rende disponibili per ogni release stabile a partire dall&#8217;ottimo <a HREF="http://www.netbsd.org/docs/software/packages.html">pkgsrc</a>), mi sono trovato a voler configurare il computer per la stampa.</p>
<p>Nella mia breve esperienza con i sistemi UN*X(-like), ho provato tre sistemi per la stampa: il sistema di stampa BSD, <a HREF="http://www.lprng.org/" TARGET="_blank" TITLE="LPRng">LPRng</a> e <a TARGET="_blank" HREF="http://www.cups.org">CUPS</a>. Pur avendo usato ed apprezzato a lungo il secondo, CUPS ha raggiunto un livello di maturità tale, a mio giudizio, da renderlo la mia scelta preferita. Certamente, come sostiene anche <a HREF="http://catb.org/~esr/writings/cups-horror.html">Eric Steven Raymond</a> &#8211; con le sue solite maniere <em>forbite</em> &#8211; l&#8217;uso di CUPS, anche usando i vari front-end per KDE e GNOME che non mi hanno mai convinto troppo, non è proprio a prova di niubbo, ma quantomeno la gestione delle tonnellate di filtri PPD per ciascuna stampante (specie se vi scaricate l&#8217;intero pacchetto foomatic) risulta semplificato.</p>
<p>Per installare CUPS ho seguito questi semplici passi:</p>
<ol>
<li>Per prima cosa, bisogna assicurarsi che lpd non sia attivo. Per impostazione predefinita nessun servizio viene avviato su NetBSD, ma qualora abbiate inserito un&#8217;override in <em>/etc/rc.conf</em>, siete pregati di sostituirlo con un bel <code>lpd=NO</code>.</li>
<li>Bisogna, poi, togliere di mezzo dal PATH i binari <em>lp*</em> che fanno riferimento al sistema di stampa BSD (lpd) distribuito con il sistema operativo. Si potrebbe pensare di cancellarli semplicemente,<br />
ma potrebbero tornare utili in seguito. Si potrebbe pensare di inserire<br />
la directory in cui vengono installati i pacchetti di <a TARGET="_blank" HREF="http://www.netbsd.org/docs/software/packages.html">pkgsrc</a> (nello specifico, <em>/usr/pkg/sbin</em> all&#8217;inizio del PATH, ma ho come la sensazione che settare bash come shell di root sia una scelta molto più opportuna, a confronto, di questa <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> . Io ho preferito dare un bel <code>for a in /usr/sbin/lp*; do mv $a $a.bak; chmod -x $a.bak; done</code> per renderli &#8220;inoffensivi&#8221;, togliendo loro il bit di esecuzione e aggiungendo un bel suffisso <em>.bak</em> a futura memoria.</li>
<li>L&#8217;installazione vera e propria di CUPS l&#8217;ho effettuata con un abbastanza standard: <code>export PKG_PATH="ftp://ftp.NetBSD.org/pub/NetBSD/packages/i386/All"<br />
pkg_add -v cups foomatic-filters foomatic-filters-cups foomatic-ppds foomatic-ppds-cups</code> (sì, mi sono installato <a HREF="http://it.wikipedia.org/wiki/Bash">bash</a>, non mi sono potuto abituare alle shell di default di NetBSD <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> ). Ho scritto <em>abbastanza</em> perchè mi sono imbattuto, in seguito, in un problema.</li>
<li>Il problema è stato il fatto che non mi ricordavo che l&#8217;unica versione di <a HREF="http://it.wikipedia.org/wiki/Ghostscript">Ghostscript</a> compatibile con i filtri di CUPS è quella di Easy Software Products (<a HREF="http://www.ossblog.it/post/2859/apple-buys-cups">ora Apple</a>), guarda caso l&#8217;azienda che sta<em>va</em> dietro CUPS <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> . Ebbene, se avete (come avevo fatto io) installato KDE (credo che la stessa cosa accada con GNOME, ma non posso dimostrarlo), noterete che vi siete portati dietro una dipendenza da <em>ghostscript-gpl</em>. L&#8217;unica soluzione è forzare l&#8217;eliminazione di questo pacchetto, e sostituirlo con <em>ghostscript-esp</em>, così: <code>pkg_delete -f ghostscript-gpl; pkg_add -v ghostscript-esp</code>.</li>
</ol>
<p>CUPS ha, da quel momento, funzionato a meraviglia. L&#8217;unica cosa che non sono riuscito a configurare è stata una stampante ad aghi su porta parallela, per il semplice fatto che non mi viene, a tutt&#8217;oggi, consentito di scegliere la porta parallela dal menu a tendina apposito. Investigherò nei prossimi giorni.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Day 4 of 60: The learning zone]]></title>
<link>http://nikclayton.wordpress.com/2006/07/13/day-4-of-60-the-learning-zone/</link>
<pubDate>Thu, 13 Jul 2006 13:56:16 +0000</pubDate>
<dc:creator>nikclayton</dc:creator>
<guid>http://nikclayton.wordpress.com/2006/07/13/day-4-of-60-the-learning-zone/</guid>
<description><![CDATA[One of the new features that Solaris 10 has that I&#8217;m interested in is zones. A zone is lightwe]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>One of the new features that Solaris 10 has that I&#8217;m interested in is zones.  A zone is lightweight virtualisation environment.  Unlike <a href="http://www.vmware.com/">VMWare</a>, or <a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/">Xen</a>, the whole environment is not virtualised.  You still have one running OS kernel which arbitrates access to the hardware, for example.  A zone is more like a separate instance of the userland, with its own IP address, users, running processes, and so on.</p>
<p>In this respect Solaris Zones are very similar to <a href="http://en.wikipedia.org/wiki/FreeBSD_Jail">FreeBSD Jails</a>, and if I was going to sum it up I might call it &#8220;chroot on steroids, with a much better management interface.&#8221;</p>
<p>I&#8217;m quite familiar with FreeBSD&#8217;s Jail system, much less so with Zones.  I&#8217;ve offered up a Zone to some of the <a href="http://www.pkgsrc.org/">pkgsrc</a> developers so they can experiment with pkgsrc on Solaris 10, and I&#8217;m planning on using Zones for testing the changes that I&#8217;ll be making to Sendmail, so I need to learn how to create and manage them.</p>
<p><!--more--></p>
<p><a href="http://www.sun.com/bigadmin/">BigAdmin</a> has a <a href="http://www.sun.com/bigadmin/content/zones/">page dedicated to zones</a>, with links to many other resources.  There&#8217;s also the <a href="http://www.opensolaris.org/os/community/zones/">OpenSolaris Zones page</a> to consider too.  Of the available resources, <a href="http://users.tpg.com.au/adsln4yb/zones.html">this article by Brendan Gregg</a> seemed the most comprehensive, and also the most up to date.</p>
<p>Reading through that article the <a href="http://users.tpg.com.au/adsln4yb/zones.html#zone1">small zone</a> example seems most appropriate.  I want to give the pkgsrc developers space to build packages, but I don&#8217;t necessarily want them to be able to write to files outside their home directories.  Since pkgsrc builds are relocatable (packages don&#8217;t have to install under <code>/usr/pkg</code> this should be fine.  Of course, I may have to revisit this decision later.</p>
<p>So, on with creating the zone.  First, I&#8217;ll check that there are no other zones.</p>
<p><code># zoneadm list -cv<br />
  ID NAME             STATUS         PATH<br />
   0 global           running        /</code></p>
<p>That looks promising.  <code>zonecfg</code> is used to create and manage zone configuration.  I&#8217;m going to call the new zone <code>pkgsrc-zone</code>, it&#8217;s root directory is going to be <code>/export/pkgsrc-zone</code>, and it&#8217;s going to have the IP address <code>10.0.0.1</code>.</p>
<p><code># zonecfg -z pkgsrc-zone<br />
pkgsrc-zone: No such zone configured<br />
Use 'create' to begin configuring a new zone.<br />
zonecfg:pkgsrc-zone&#62; create<br />
zonecfg:pkgsrc-zone&#62; set autoboot=true<br />
zonecfg:pkgsrc-zone&#62; set zonepath=/export/pkgsrc-zone<br />
zonecfg:pkgsrc-zone&#62; add net<br />
zonecfg:pkgsrc-zone:net&#62; set address=10.0.0.1<br />
zonecfg:pkgsrc-zone:net&#62; set physical=nge0<br />
zonecfg:pkgsrc-zone:net&#62; end<br />
zonecfg:pkgsrc-zone&#62; info<br />
zonepath: /export/pkgsrc-zone<br />
autoboot: true<br />
pool:<br />
inherit-pkg-dir:<br />
        dir: /lib<br />
inherit-pkg-dir:<br />
        dir: /platform<br />
inherit-pkg-dir:<br />
        dir: /sbin<br />
inherit-pkg-dir:<br />
        dir: /usr<br />
net:<br />
        address: 10.0.0.1<br />
        physical: nge0<br />
zonecfg:pkgsrc-zone&#62; verify<br />
zonecfg:pkgsrc-zone&#62; commit<br />
zonecfg:pkgsrc-zone&#62; exit</code></p>
<p>A word about <code>zonecfg</code>.  I was pleasantly surprised to discover that it supports a command history and sensible editing defaults.  Much nicer than many command line tools I&#8217;ve had to deal with.</p>
<p>I can re-run <code>zoneadm list -cv</code> to see the new zone.</p>
<p><code># zoneadm list -cv<br />
  ID NAME             STATUS         PATH<br />
   0 global           running        /<br />
   - pkgsrc-zone      configured     /export/pkgsrc-zone</code></p>
<p>With the zone configured, I now need to create the zone&#8217;s root directory, and install the files that will make up the zone.</p>
<p><code># mkdir /export/pkgsrc-zone<br />
# chmod 700 /export/pkgsrc-zone<br />
# zoneadm -z pkgsrc-zone verify<br />
# zoneadm -z pkgsrc-zone install<br />
Preparing to install zone .<br />
Creating list of files to copy from the global zone.<br />
Copying  files to the zone.<br />
Initializing zone product registry.<br />
Determining zone package initialization order.<br />
Preparing to initialize  packages on the zone.<br />
Initialized  packages on zone.<br />
Zone  is initialized.<br />
Installation of  packages was skipped.<br />
Installation of these packages generated warnings:<br />
The file  contains a log of the zone installation.</code></p>
<p>The wall clock time to complete that last command was 15 minutes.  With that done I can see that the zone&#8217;s status has changed from &#8220;configured&#8221; to &#8220;installed&#8221;, and the zone can be booted.</p>
<p><code># zoneadm list -cv<br />
   ID NAME             STATUS         PATH<br />
   0 global           running        /<br />
   - pkgsrc-zone      installed      /export/pkgsrc-zone<br />
# zoneadm -z pkgsrc-zone boot<br />
# zoneadm list -cv<br />
  ID NAME             STATUS         PATH<br />
   0 global           running        /<br />
   1 pkgsrc-zone      running        /export/pkgsrc-zone</code></p>
<p>I can then use <code>zlogin</code> to connect to the zone.  Since this is the first boot I&#8217;m asked the standard Solaris setup questions.  The zone then reboots, and puts me at the console login prompt.</p>
<p><code># zlogin -C pkgsrc-zone<br />
[Connected to zone 'pkgsrc-zone' console]<br />
Select a Language</p>
<p>   0. English<br />
   1. French<br />
   2. German<br />
   3. Italian<br />
   4. Japanese<br />
   5. Korean</p>
<p>...</p>
<p>rebooting system due to change(s) in /etc/default/init</p>
<p>[NOTICE: Zone rebooting]</p>
<p>SunOS Release 5.10 Version Generic_Patch_118844-30 64-bit<br />
Copyright 1983-2005 Sun Microsystems, Inc.  All rights reserved.<br />
Use is subject to license terms.<br />
Hostname: pkgsrc-zone</p>
<p>pkgsrc-zone console login:</code></p>
<p>That&#8217;s all relatively painless.  And much easier than handrolling things.  At $work I&#8217;m having to build chroot environments for testing, and making sure that the right files get copied, procfs is mounted, and all the other twiddly bits gets tiresome quite quickly.  I&#8217;m quite pleased at how easy that was.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Day 2 of 60: Blastwave]]></title>
<link>http://nikclayton.wordpress.com/2006/07/11/day-2-of-60-blastwave/</link>
<pubDate>Tue, 11 Jul 2006 19:45:10 +0000</pubDate>
<dc:creator>nikclayton</dc:creator>
<guid>http://nikclayton.wordpress.com/2006/07/11/day-2-of-60-blastwave/</guid>
<description><![CDATA[I wrote earlier about getting pkgsrc builds up and working. Unfortunately, I wrote too soon. Althoug]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I wrote <a href="blog/2006/07/10/fun-and-games-with-pkgsrc">earlier</a> about getting <a href="http://www.pkgsrc.org/">pkgsrc</a> builds up and working.</p>
<p>Unfortunately, I wrote too soon.</p>
<p><!--more--></p>
<p>Although Perl built successfully, attempts to build other applications that I&#8217;m going to need failed in interesting ways.  No Subversion, no xemacs, no SVK.  After fiddling with the build infrastructure for a little while and not getting terribly far I&#8217;ve (for the time being) switched to the pre-compiled binary packages provided by <a href="http://www.blastwave.org/">Blastwave</a>.</p>
<p>Although they don&#8217;t have the same building-from-source warm fuzzies that I get from pkgsrc they do at least have the benefit of actually working.</p>
<p>I brought this up on the #pkgsrc IRC channel earlier to see if anyone could offer any advice.  The net result is that I&#8217;m going to be offering up a jail^H^H^H^Hzone on this machine to one of the pkgsrc developers to use as a Solaris 10 test bed.  So Solaris 10 support in pkgsrc might start to get a little better.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Day 1 of 60: Fun and games with pkgsrc]]></title>
<link>http://nikclayton.wordpress.com/2006/07/10/fun-and-games-with-pkgsrc/</link>
<pubDate>Mon, 10 Jul 2006 21:15:52 +0000</pubDate>
<dc:creator>nikclayton</dc:creator>
<guid>http://nikclayton.wordpress.com/2006/07/10/fun-and-games-with-pkgsrc/</guid>
<description><![CDATA[In the years that I&#8217;ve been using Solaris it&#8217;s support for third party packages has, to ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>In the years that I&#8217;ve been using Solaris it&#8217;s support for third party packages has, to my mind, always let it down.  The open source community writes and releases software at a phenomenal rate, and systems like <a href="http://www.freebsd.org/">FreeBSD</a> and <a href="http://www.linux.org/">Linux</a> have developed a number of interesting ways to make it as easy as possible to get this software, install it, and (much more importantly) manage it once it&#8217;s been installed.</p>
<p><!--more--></p>
<p>As third party applications grow in complexity (especially in terms of the dependencies that they might have on other applications and libraries) this becomes an increasingly difficult challenge.</p>
<p>It&#8217;s a challenge that the open source community is particularly well suited to meeting.  The &#8220;many hands makes light work&#8221; effect, and the fact that it&#8217;s possible for an individual to make a contribution without investing a great deal of effort means that thousands upon thousands of open source applications and libraries are now trivial to install on many open source operating systems.</p>
<p>That same has not been true, historically, about Solaris.  Sure, there&#8217;s been sites like <a href="http://www.sunfreeware.com/">Sun Freeware</a>, but the size of that community is dwarfed by the size of the communities packaging applications for the open source operating systems.</p>
<p>Consequently, installing and managing third party software (especially if it has complex dependencies) has always been a bit of a chore on Solaris.</p>
<p>A few years back I attended a <a href="http://2002.eurobsdcon.org/abstracts.html#crooks">talk given by Alistair Crooks</a> at <a href="http://2002.eurobsdcon.org/">EuroBSDCon 2002</a>.  Alistair spoke about a package management system that NetBSD was using, forked from the FreeBSD ports tree.  One of the interesting things about this was that following the NetBSD &#8220;runs anywhere&#8221; mantra, this system, called <b>pkgsrc</b>, could be used to build and manage packages across multiple operating systems, including Solaris.</p>
<p>Fast forward a few years, and pkgsrc has its own website (<a href="http://www.pkgsrc.org/">www.pkgsrc.org</a>) and is growing in size.  So I put it on my &#8220;list of technologies to keep an eye on&#8221;.</p>
<p>The pkgsrc system is very similar to the <a href="http://www.freebsd.org/ports/">FreeBSD Ports</a> system.</p>
<p>Essentially, the acts of downloading a source tarball from the Internet, verifying the file&#8217;s checksum, extracting it, applying any patches, configuring, building, and installing the resulting files have been automated using make(1).  Package dependencies are also tracked, with pkgsrc recording this metadata in its own packaging format and database, independent of the operating systems own package database.</p>
<p>This might seem like needless duplication of effort, but it does mean that if your environment runs multiple operating systems you can use pkgsrc to build and manage packages for all these operating systems using the same tools, instead of pkgadd(1) on Solaris, rpm(1) on Linux, and so on.</p>
<p>This evening has been spent getting pkgsrc to play nicely on Solaris 10.  This is a not-quite-supported configuration, so I&#8217;ve had to go round the loop a few times.  After playing around with a mixture of packages from Sunfreeware and pre-compiled binaries from elsewhere I eventually figured out the magic incantations.  And they are as follows (and assume that Sun Studio 10 is installed).</p>
<ol>
<li>Download the most recent pkgsrc snapshot from <a href="ftp://ftp.netbsd.org/pub/pkgsrc/pkgsrc-2006Q2/pkgsrc-2006Q2.tar.gz">here</a> (note: that link will go stale over time</li>
<li>Download the <a href="ftp://ftp.netbsd.org/pub/pkgsrc/packages/bootstrap-pkgsrc/bootstrap-pkgsrc-SunOS-5.9-i386-20030411.tar.gz">Solaris 9 pkgsrc bootstrap</a></li>
<li>Extract both of those in to /</li>
<li># cd /usr/pkgsrc/bootstrap; ../bootstrap</li>
<li>Copy the generated mk.conf to /usr/pkg/etc/mk.conf.</li>
<li>Add the line &#8220;PKGSRC_COMPILER=sunpro&#8221; to that mk.conf file.</li>
</ol>
<p>That, at least, is sufficient to allow the following to work:</p>
<p><code># cd /usr/pkgsrc/lang/perl5<br />
# bmake install</code></p>
<p>Which results in the source for Perl (v5.8.8) being downloaded, patched, configured, built, and installed. Along with any dependencies it might need.</p>
<p><code># pkg_info<br />
digest-20060302     Message digest wrapper utility<br />
libiconv-1.10nb3    Character set conversion library<br />
gettext-lib-0.11.5nb6 Internationalized Message Handling Library (libintl)<br />
pkg_install-info-4.5nb3 Standalone GNU info file installation utility<br />
gmake-3.80nb4       GNU version of 'make' utility<br />
perl-5.8.8nb2       Practical Extraction and Report Language<br />
libtool-base-1.5.22nb3 Generic shared library support script (the script itself)</code></p>
<p>Now to go and try xemacs&#8230;.</p>
</div>]]></content:encoded>
</item>

</channel>
</rss>
