November 30, 2006
Book of Mozilla
If you are in a Mozilla browser, click this link here. Happy Easter!
(Thanks to nixCraft)November 26, 2006
Officially Awesome
The aforementioned PC-BSD v1.3 beta 2 has finally be officially released and I'm downloading it now. It really was an amazingly smooth installation and I'm looking forward to seeing if this final beta version is the same.
1.3 BETA2 Released!November 24, 2006
Turkey Tech Toys
So I couldn't resist a quick trip to the store this morning to buy some new tech toys. For those international types, yesterday was the Thanksgiving holiday, whereby we eats lots of food and watch plenty of (American) football. And today, the day after turkey day, has become something of a shopping holiday, where the stores open at 5am (or earlier!), offering "incredible" deals. Generally, I don't bother with it, as I think the deals are vastly overrated.
But Friday is one of my hockey mornings, so I'm up early anyway, so I checked out the deals at some of the tech stores. And found some sweet ones at CompUSA and Staples, which just so happen to be next to each other in a little plaza on my way back from hockey, so it worked out nicely. I grabbed six things, and now I just have to worry about getting the rebates in before they timeout. Here's what I got:
- 200gb Maxtor EIDE drive (US$20) - yup, you read that right - 200 gigabytes for $19.99, after rebates. I didn't even need another hard drive, but I couldn't resist
- Saitek Gamers keyboard ($20) - My keyboard and mouse were getting a little long in the tooth (I use them about 10 hours a day usually), so I'd been thinking about upgrading. I just couldn't pull the trigger on the fancy Logitech gamer's keyboard, with the little LCD screen. It was $50 while the Saitek was only $20. Both are backlit, so that's pretty cool. But I'm a "Natural" keyboard guy, so I'm not sure I'm going to be able to use this fulltime. But at least when gaming.
- Logitech G7 Laser mouse - with the money I saved on the keyboard, I splurged on the mouse. Very nice 2000dpi laser mouse, with on-the-fly sensitivity adjustment and two batteries. Very nice looking mouse (nope, this keyboard just won't work full time. My fingers feel cramped and my arms are already tired. Gonna have to splurge on a new Natural one).
- 5 outlet strip (free!) - can always use another one of these
- 60 pack DVD-R ($3) - don't really use DVD-R much, but for a nickel each, I can learn to do backups with them. I noticed my BootIT NG will make an image of a partition using one too.
- 2 1gb SD memory cards ($20) - My wife's Treo uses SD cards and this was a real deal. Will make a great stocking stuffer (can you tell she isn't interested in my blog?)
So it was a very productive morning. Like I said, I don't think this keyboard is going to work out as a full time one, but it should work for my gaming needs. I reboot into Windows to play games, so it won't be hard to just plug this USB keyboard in on the way.
November 21, 2006
What language do you want?
A couple of interesting programming language links to pass along.
First up is a page which gives you the source code to print out the lyrics to the (in)famous road song, "99 Bottles of Beer", in over 600 programming languages, from the popular (Java) to the obscure (Piet - programming in color). Very cool list of virtually all computer programming languages:
99 Bottles of BeerHere we have a page that attempts to rank programming languages based upon popularity, using a bunch of different sources. As someone who does most of his programming in C++ and C, I'm glad to see them maintaining their ranking!
TIOBE Software - The Coding Standards CompanyNovember 18, 2006
She Sells Sea Shells
I've been thinking I should investigate shells. No, not seashells, silly, but rather command shells. I've always used bash, but more because I do so much of my work on Linux and it is the default shell then any real comparison between any of the myriad shells offered. Some people are voracious tcsh defenders, which is the "out of the box" shell found on FreeBSD (and, of course, PC-BSD). Other popular shells include ksh (kornshell), pdksh (a very close ksh relative), and zsh. And I won't get into the ancient ones, like sh (the original Bourne shell) and csh, as those are old and crufty, although 'sh' is the scripting language of choice, due to its power and widespread availability.
Anyway, I was reading FreeBSD 6 Unleashed on Safari (pretty good service, an article for another day), when I came across the chapters on command lines, and the part where they talk about the various shells. It was a very good overview of the various shells, ending with:
Which Shell to Choose?
Which shell, then, should you choose? For most of this chapter, it doesn't really matter. Most of the standard FreeBSD commands work the same way under all shells. It is only when you want to start performing advanced tasks, such as changing shell variables, setting aliases, and writing shell programs, that the differences between the shells really become apparent. In day-to-day use, you'll find that some of the features of more advanced shells (such as the ability to recall your previously issued commands using the arrow keys, and to complete command names with the Tab key) are crucial to your ease of use and peace of mind. This means using pdksh, bash, or the shell endorsed by FreeBSD, tcsh.
If you don't plan to do any shell programming, tcsh (which in FreeBSD is the same thing as csh) is a fine choice. If you are interested in learning shell programming, choose pdksh or bash because you won't have to unlearn anything when you start programming, and all the commands you learn for operating within the shell can be applied directly to programming within it.
So I suppose I should just tackle tcsh, a shell that I used to use in days gone by, but haven't done much with lately. But although they didn't mention zsh in this overview, their description was intriguing enough that I thought I would give it a try:
The zsh Shell
The Z Shell, or zsh, is a shell designed to cover all the bases. Its basic design is Korn-like, and it incorporates all the popular features of both bash and tcsh (and it attains a large size and memory footprint because of it); but its unique features such as advanced globbing (filename matching), command line editing, and key binding makes it a favorite for hard-core UNIX users, especially those accustomed to the binding-rich Emacs editor.
It was that bit about Emacs that attracted me, of course, being the Emacs aficionado that I am. So I've installed zsh and am playing with it a bit. The initial setup is quite daunting! There is a very long customization script that runs to get some things set up, and there is surely enough options to keep me dizzy for weeks. I'm going to be playing with it over the next few weeks to see how it works out and if I can notice any major differences in daily usage.
I also want to get much more into scripting. It's something I used to do quite frequently on Windows, ironically enough, where I've been using the incredibly powerful 4nt for ten years or more and find it very intuitive to write small batch files to do my work. But I've never felt comfortable enough with sh or bash to do the same on Unix / Linux. But now that PC-BSD is my everyday environment, I figure I must get better at it.Addendum: Here is another excellent overview of the popular shells: UNIX shell differences
November 17, 2006
Build yer own
Okay, your hardware project for this weekend (and maybe I'll even extend the deadline through the upcoming US Thanksgiving holiday), is to build your own MP3 player:
Daisy_mp3November 16, 2006
And we have a winnah!
I was thrilled to get a sneak peek at the upcoming PC-BSD 1.3 Beta2, so I immediately gave it a try on my test machine. Mind you, this isn't even an "official" beta release (sort of a beta of a beta!), but it worked so incredibly well I wanted to talk about it anyway. You also have to realize my test machine is a real brute - old and weird. A 900mhz "overclocked" Celeron with 768mb of RAM, an onboard HighPoint Technologies UDMA66 controller, 3 different hard drives, with the main one being on the HPT controller. It gave various iterations of earlier PC-BSD CDs the fits. Sometimes the CD wouldn't work, sometimes it would install but not boot and so on. I did finally get the final PC-BSD v1.2 installer to work, but it took some tweaks.
And the first beta of 1.3 fared no better. In fact, it fared considerably worse, in that it immediately hung after finishing the boot screen. Oh, and one thing I've learned - burn the ISO image using no faster than about 10x or it won't work at all. The CD just won't read, even with the CD is was burned on. I wonder if this is an artifact of the PC-BSD ISO, as I don't remember having this problem with the myriad other install ISOs I've burned. And I had problems getting K3b to burn the CD, ending up with quite a number of coasters. This is with my new Panasonic DVD/CD burner. But once again, I think the defaults burned me, as it defaulted to DAO (which is, I think, "Disk At Once"). After failing a couple of times with that, I finally figured out what it meant by telling me that this sort of error is often fixed by selecting "TAO" ("Track At Once", I think). Well, that didn't help either, but RAW mode worked, and I'm sticking with that.
Anyway, I got a pointer to the Beta2 and finally got a working CD. This time, the install went off without a hitch. In fact, it could very well have been the easiest install I've ever done on this machine. No problems booting the CD and off I went. I selected one of the 40gb partitions on my 160gb hard drive that I use to play with (can you believe it, a 160gb hard drive to play with - I saw an ad for a 750(sic) gigabyte hard drive for around US$300 - unbelievable!), picked the default workstation installation and off it went. Due to the slow burn speed (10x) and the slow cd rom, it took about 45 minutes to pull everything off, but it finished. Then I rebooted and held my breath...
After a small tweak to my BootIT NG setup, I selected the 1.3 partition and booted right into it. It looks real nice and once again it found all my other local partitions, something many Linux distros seem to have a problem with. Samba didn't see my Windows network out of the box, but a guess that it was a firewall issue proved true after a little detective work. Seems PC-BSD 1.3 uses the OpenBSD pf as its firewall and I had to disable it to get Samba working via the # pfctl -d command. Then it found my network just fine. Cool!
So I really think they have a winner here. There was a long discussion in the middle of a thread over on the PC-BSD Forums about whether to stay with PC-BSD or change to FreeBSD. My thinking along those lines is that I don't see any reason why 90% of the people wouldn't use PC-BSD instead of FreeBSD. The only bad part to using PC-BSD is if you are a real control freak about what gets installed, and with PC-BSD the decision has been made for you, most notably in the choice of KDE as a X front end as opposed to GNOME. But seeing as the FreeBSD packages and ports are available to you, with the addition of the overrated PBIs specific to PC-BSD, you can set up your machine however you want. And with the installation choice of Server or Workstation, you can fine tune it a little more than ever before.
I suppose I should clarify my controversial remark that I think PBIs (PC-BSD's installation packager) is overrated. While I think PBIs are a good idea in theory, I don't think they work all that well in practice. In theory, a PBI contains everything a program could possibly need to run - all the support libraries, config files, etc. It all comes in one package and gets installed in one place, making for an isolated installation, easy to remove. But that theory quickly falls apart in practice, as it become very difficult, if not impossible, to sufficiently isolate a program from all its system dependencies. And unless that process is automated, PBIs rapidly become stale, as they are at least two steps removed from the original application, as most of them depend on the port or package getting updated first, then the PBI gets updated. It is a very tedious process and one very likely to get delayed or ignored. So I think the PBI advantage is overstated in most quicky reviews, but it's still a viable option for some applications.
But as far as a way to get up and running with FreeBSD, and keeping it up to date, nothing beats PC-BSD. And 1.3 Beta2 is a huge step forward, and one anyone interested in a Windows alternative owes it to themselves to check it out.
Here's the list of pre-installed packages, courtesy of the only port I installed on my vanilla 1.3 install, portmanager:
------------------------------------------------------------------------ Port Status Report ------------------------------------------------------------------------ 00001 have:libiconv-1.9.2_2 /converters/libiconv CURRENT 00002 have:libsvg-0.1.4 /graphics/libsvg CURRENT 00003 have:pkg-config-0.21 /devel/pkg-config CURRENT 00004 have:fontconfig-2.3.2_6,1 /x11-fonts/fontconfig CURRENT 00005 have:png-1.2.12_1 /graphics/png CURRENT 00006 have:jpeg-6b_4 /graphics/jpeg CURRENT 00007 have:libxml2-2.6.26 /textproc/libxml2 CURRENT 00008 have:gmake-3.81_1 /devel/gmake CURRENT 00009 have:freetype2-2.2.1_1 /print/freetype2 CURRENT 00010 have:expat-2.0.0_1 /textproc/expat2 CURRENT 00011 have:libtool-1.5.22_2 /devel/libtool15 CURRENT 00012 have:gettext-0.14.5_2 /devel/gettext CURRENT 00013 have:mplayer-skins-1.1.2_5 /multimedia/mplayer-skins CURRENT 00014 have:imake-6.9.0 /devel/imake-6 CURRENT 00015 have:perl-5.8.8 /lang/perl5.8 CURRENT 00016 have:glib-2.12.4 /devel/glib20 CURRENT 00017 have:xorg-libraries-6.9.0 /x11/xorg-libraries CURRENT 00018 have:libdrm-2.0.2 /graphics/libdrm CURRENT 00019 have:qmake-3.3.6 /devel/qmake CURRENT 00020 have:libmng-1.0.9 /graphics/libmng CURRENT 00021 have:lcms-1.15_1,1 /graphics/lcms CURRENT 00022 have:libXft-2.1.7_1 /x11-fonts/libXft CURRENT 00023 have:eject-1.5_2 /sysutils/eject CURRENT 00024 have:libglut-6.4.2 /graphics/libglut CURRENT 00025 have:xorg-clients-6.9.0_3 /x11/xorg-clients built with OLD dependency: xterm-222 00026 have:xterm-220 /x11/xterm OLD available: xterm-222 00027 have:m4-1.4.4 /devel/m4 CURRENT 00028 have:atk-1.12.3 /accessibility/atk CURRENT 00029 have:libmodplug-0.8 /audio/libmodplug CURRENT 00030 have:nas-1.8 /audio/nas CURRENT 00031 have:qt-3.3.6_2 /x11-toolkits/qt33 OLD available: qt-3.3.6_3 00032 have:cups-base-1.2.2 /print/cups-base built with OLD dependency: gnutls-1.4.5 00033 have:tiff-3.8.2 /graphics/tiff CURRENT 00034 have:gnutls-1.4.4_1 /security/gnutls OLD available: gnutls-1.4.5 00035 have:libgcrypt-1.2.3_1 /security/libgcrypt CURRENT 00036 have:libgpg-error-1.4 /security/libgpg-error CURRENT 00037 have:dri-6.4.1,2 /graphics/dri CURRENT 00038 have:kdehier-1.0_11 /misc/kdehier CURRENT 00039 have:ghostscript-gnu-7.07_15 /print/ghostscript-gnu CURRENT 00040 have:gsfonts-8.11_2 /print/gsfonts CURRENT 00041 have:libusb-0.1.12_1 /devel/libusb CURRENT 00042 have:OpenEXR-1.2.2_1 /graphics/OpenEXR CURRENT 00043 have:libmad-0.15.1b_2 /audio/libmad CURRENT 00044 have:libaudiofile-0.2.6 /audio/libaudiofile CURRENT 00045 have:foomatic-filters-3.0.2_4 /print/foomatic-filters CURRENT 00046 have:xv-3.10a_6 /graphics/xv CURRENT 00047 have:libogg-1.1.3,3 /audio/libogg CURRENT 00048 have:kde-xdg-env-1.0_1,1 /misc/kde-xdg-env CURRENT 00049 have:pcre-6.7 /devel/pcre CURRENT 00050 have:pilot-link-0.12.1_1,1 /palm/pilot-link CURRENT 00051 have:denyhosts-2.5 /security/denyhosts CURRENT 00052 have:python24-2.4.3_3 /lang/python24 CURRENT 00053 have:libvorbis-1.1.2,3 /audio/libvorbis CURRENT 00054 have:portaudio-18.1_2 /audio/portaudio CURRENT 00055 have:unzip-5.52_2 /archivers/unzip CURRENT 00056 have:libsndfile-1.0.17 /audio/libsndfile CURRENT 00057 have:flac-1.1.2_1 /audio/flac CURRENT 00058 have:nasm-0.98.39,1 /devel/nasm CURRENT 00059 have:jackit-0.101.1_1 /audio/jack CURRENT 00060 have:arts-1.5.4,1 /audio/arts built with OLD dependency: qt-3.3.6_3 00061 have:openslp-1.2.1_2 /net/openslp CURRENT 00062 have:pth-2.0.7 /devel/pth CURRENT 00063 have:dirmngr-0.9.6_1 /security/dirmngr built with OLD dependency: openldap-client-2.3.30 00064 have:libassuan-0.6.10 /security/libassuan CURRENT 00065 have:libksba-1.0.0_1 /security/libksba CURRENT 00066 have:openldap-client-2.3.27 /net/openldap23-client OLD available: openldap-client-2.3.30 00067 have:kaffeine-mozilla-0.2_6 /multimedia/kaffeine-mozilla CURRENT 00068 have:kaffeine-0.8.2_1 /multimedia/kaffeine built with OLD dependency: qt-3.3.6_3 00069 have:gstreamer-plugins80-0.8.12_2,1 /multimedia/gstreamer-plugins80 CURRENT 00070 have:libxine-1.1.2_2 /multimedia/libxine built with OLD dependency: gnome-mime-data-2.4.3 00071 have:cdparanoia-3.9.8_8 /audio/cdparanoia CURRENT 00072 have:kdelibs-3.5.4_3 /x11/kdelibs3 OLD available: kdelibs-3.5.4_4 00073 have:gnomehier-2.2 /misc/gnomehier CURRENT 00074 have:gstreamer80-0.8.12_2 /multimedia/gstreamer80 CURRENT 00075 have:popt-1.7_1 /devel/popt CURRENT 00076 have:libdts-0.0.2_2 /multimedia/libdts CURRENT 00077 have:sdl-1.2.11,2 /devel/sdl12 CURRENT 00078 have:intltool-0.35.0 /textproc/intltool CURRENT 00079 have:gnome-mime-data-2.4.2_2 /misc/gnome-mime-data OLD available: gnome-mime-data-2.4.3 00080 have:speex-1.0.5_1,1 /audio/speex CURRENT 00081 have:libdvdread-0.9.4_1 /multimedia/libdvdread built with OLD dependency: libdvdcss-1.2.9_2 00082 have:libfame-0.9.1_2 /multimedia/libfame CURRENT 00083 have:libcdio-0.77_1 /sysutils/libcdio built with OLD dependency: libcddb-1.2.2 00084 have:vcdimager-0.7.23_3 /multimedia/vcdimager CURRENT 00085 have:libtheora-1.0.a7 /multimedia/libtheora CURRENT 00086 have:samba-libsmbclient-3.0.23c /net/samba-libsmbclient CURRENT 00087 have:aalib-1.4.r5_2 /graphics/aalib CURRENT 00088 have:ImageMagick-6.2.9.8 /graphics/ImageMagick CURRENT 00089 have:esound-0.2.36_1 /audio/esound CURRENT 00090 have:gconf2-2.16.0 /devel/gconf2 built with OLD dependency: openldap-client-2.3.30 00091 have:gnome-vfs-2.16.1 /devel/gnome-vfs OLD available: gnome-vfs-2.16.2_1 00092 have:gtk-2.10.6_1 /x11-toolkits/gtk20 OLD available: gtk-2.10.6_2 00093 have:libbonobo-2.16.0 /devel/libbonobo OLD available: libbonobo-2.16.0_1 00094 have:libIDL-0.8.7 /devel/libIDL CURRENT 00095 have:linc-1.0.3_6 /net/linc CURRENT 00096 have:ORBit2-2.14.3 /devel/ORBit2 CURRENT 00097 have:pango-1.14.7 /x11-toolkits/pango built with OLD dependency: cairo-1.2.6 00098 have:xorg-fonts-truetype-6.9.0 /x11-fonts/xorg-fonts-truetype CURRENT 00099 have:xorg-fonts-encodings-6.9.0_1 /x11-fonts/xorg-fonts-encodings CURRENT 00100 have:hicolor-icon-theme-0.9_1 /misc/hicolor-icon-theme OLD available: hicolor-icon-theme-0.9_2 00101 have:libart_lgpl2-2.3.17_1 /graphics/libart_lgpl OLD available: libart_lgpl-2.3.17_1 00102 have:aspell-0.60.4_4 /textproc/aspell CURRENT 00103 have:mDNSResponder-108 /net/mDNSResponder CURRENT 00104 have:libidn-0.6.7 /dns/libidn OLD available: libidn-0.6.8 00105 have:jasper-1.701.0_1 /graphics/jasper CURRENT 00106 have:libthai-0.1.5_1 /devel/libthai built with OLD dependency: autoconf-2.59_2 00107 have:libxslt-1.1.17 /textproc/libxslt CURRENT 00108 have:fam-2.6.10_1 /devel/fam built with OLD dependency: autoconf-2.59_2 00109 have:bison-1.75_2,1 /devel/bison CURRENT 00110 have:svgalib-1.4.3_5 /graphics/svgalib CURRENT 00111 have:p5-XML-Parser-2.34_2 /textproc/p5-XML-Parser CURRENT 00112 ----:libdvdcss-1.2.9_2 /multimedia/libdvdcss MISSING 00113 have:libcddb-1.2.1_1 /audio/libcddb OLD available: libcddb-1.2.2 00114 ----:autoconf-2.59_2 /devel/autoconf259 MISSING 00115 have:mpeg2codec-1.2_1 /multimedia/mpeg2codec CURRENT 00116 have:libfpx-1.2.0.12 /graphics/libfpx CURRENT 00117 have:jbigkit-1.6 /graphics/jbigkit CURRENT 00118 have:libltdl-1.5.22 /devel/libltdl15 CURRENT 00119 have:shared-mime-info-0.19 /misc/shared-mime-info CURRENT 00120 have:hal-0.5.8.20060917_1 /sysutils/hal OLD available: hal-0.5.8.20061107 00121 have:avahi-0.6.14 /net/avahi OLD available: avahi-0.6.15 00122 have:cairo-1.2.4 /graphics/cairo OLD available: cairo-1.2.6 00123 have:bitstream-vera-1.10_2 /x11-fonts/bitstream-vera CURRENT 00124 ----:automake-1.5_2,1 /devel/automake15 MISSING 00125 ----:automake-1.9.6 /devel/automake19 MISSING 00126 have:help2man-1.36.4_1 /misc/help2man CURRENT 00127 have:pciids-20060929 /misc/pciids OLD available: pciids-20061026 00128 have:cdrtools-2.01_5 /sysutils/cdrtools built with OLD dependency: libcddb-1.2.2 00129 have:dmidecode-2.8 /sysutils/dmidecode CURRENT 00130 ----:gnome_subr-1.0 /sysutils/gnome_subr MISSING 00131 have:policykit-0.1.20060514_2 /sysutils/policykit OLD available: policykit-0.1.20060514_3 00132 ----:libvolume_id-0.71.0 /devel/libvolume_id MISSING 00133 have:libdaemon-0.10_1 /devel/libdaemon CURRENT 00134 have:dbus-glib-0.71 /devel/dbus-glib OLD available: dbus-glib-0.72 00135 have:gdbm-1.8.3_2 /databases/gdbm OLD available: gdbm-1.8.3_3 00136 ----:autoconf-2.53_3 /devel/autoconf253 MISSING 00137 have:p5-gettext-1.05_1 /devel/p5-Locale-gettext CURRENT 00138 have:dbus-0.93_2 /devel/dbus OLD available: dbus-1.0.0 00139 have:fftw3-3.1.2 /math/fftw3 CURRENT 00140 have:localedata-5.4 /misc/localedata CURRENT 00141 have:lua-5.1.1_2 /lang/lua CURRENT 00142 have:kdeaddons-konq-plugins-3.5.4 /misc/konq-plugins built with OLD dependency: qt-3.3.6_3 00143 have:kdebase-3.5.4_4 /x11/kdebase3 built with OLD dependency: qt-3.3.6_3 00144 have:kdebase-kompmgr-3.5.4 /x11-wm/kompmgr built with OLD dependency: qt-3.3.6_3 00145 have:artswrapper-1.5.3 /audio/artswrapper CURRENT 00146 have:cyrus-sasl-2.1.22 /security/cyrus-sasl2 CURRENT 00147 have:bsdstats-4.8_1 /sysutils/bsdstats OLD available: bsdstats-4.8_2 00148 have:gtar-1.15.1_2 /archivers/gtar OLD available: gtar-1.16 00149 have:bash-3.1.17 /shells/bash CURRENT 00150 have:gimp-print-4.2.7_2 /print/gimp-print CURRENT 00151 have:libijs-0.35_1 /print/libijs CURRENT 00152 have:kdegames-3.5.4 /games/kdegames3 built with OLD dependency: qt-3.3.6_3 00153 have:py24-gobject-2.12.2 /devel/py-gobject CURRENT 00154 have:xmlcatmgr-2.2 /textproc/xmlcatmgr CURRENT 00155 have:ruby18-bdb1-0.2.2 /databases/ruby-bdb1 built with OLD dependency: ruby-1.8.5_4,1 00156 have:ruby-1.8.5_3,1 /lang/ruby18 OLD available: ruby-1.8.5_4,1 00157 have:foomatic-db-engine-20060922,1 /print/foomatic-db-engine OLD available: foomatic-db-engine-20061031,1 00158 have:curl-7.15.5 /ftp/curl OLD available: curl-7.15.5_1 00159 have:kdeartwork-3.5.4_2 /x11-themes/kdeartwork3 built with OLD dependency: qt-3.3.6_3 00160 have:py24-gtk-2.10.3 /x11-toolkits/py-gtk2 built with OLD dependency: gtk-2.10.6_2 00161 have:py24-cairo-1.2.2 /graphics/py-cairo built with OLD dependency: cairo-1.2.6 00162 have:py24-numeric-24.2 /math/py-numeric CURRENT 00163 have:libglade2-2.6.0_2 /devel/libglade2 built with OLD dependency: gtk-2.10.6_2 00164 have:glib-1.2.10_12 /devel/glib12 CURRENT 00165 have:kdenetwork-kopete-0.11_1 /net-im/kopete OLD available: kdenetwork-kopete-0.11_2 00166 have:qca-tls-1.0_1 /security/qca-tls built with OLD dependency: qt-3.3.6_3 00167 have:ttmkfdir-3.0.9,1 /x11-fonts/ttmkfdir CURRENT 00168 have:neon-0.25.5 /www/neon CURRENT 00169 have:py24-sip-4.4.5 /devel/py-sip CURRENT 00170 have:cmpsfont-1.0_5 /print/cmpsfont CURRENT 00171 have:p5-type1inst-0.6.1_2 /x11-fonts/p5-type1inst CURRENT 00172 have:kdeadmin-3.5.4 /sysutils/kdeadmin3 built with OLD dependency: qt-3.3.6_3 00173 have:samba-3.0.23c_2,1 /net/samba3 built with OLD dependency: openldap-client-2.3.30 00174 have:t1lib-5.1.0_1,1 /devel/t1lib CURRENT 00175 have:fribidi-0.10.7 /converters/fribidi CURRENT 00176 have:open-motif-2.2.3_2 /x11-toolkits/open-motif CURRENT 00177 have:taglib-1.4_2 /audio/taglib CURRENT 00178 have:gstreamer-0.10.10 /multimedia/gstreamer OLD available: gstreamer-0.10.10_1 00179 have:compat5x-i386-5.4.0.8_7 /misc/compat5x CURRENT 00180 have:csup-20060318 /net/csup CURRENT 00181 have:xorg-server-6.9.0_5 /x11-servers/xorg-server CURRENT 00182 have:libgmp-4.2.1_1 /math/libgmp4 CURRENT 00183 have:gnupg-devel-1.9.22 /security/gnupg-devel CURRENT 00184 have:gnupg-1.4.5_1 /security/gnupg built with OLD dependency: curl-7.15.5_1 00185 have:akode-plugins-resampler-2.0.1,1 /audio/akode-plugins-resampler CURRENT 00186 have:libsamplerate-0.1.2_2 /audio/libsamplerate CURRENT 00187 have:akode-plugins-oss-2.0.1,1 /audio/akode-plugins-oss CURRENT 00188 have:poppler-0.5.4_1 /graphics/poppler OLD available: poppler-0.5.4_2 00189 have:poppler-data-0.1 /graphics/poppler-data CURRENT 00190 have:libpaper-1.1.14.3_1 /print/libpaper CURRENT 00191 have:libsvg-cairo-0.1.6_2 /graphics/libsvg-cairo built with OLD dependency: cairo-1.2.6 00192 have:xorg-fonts-miscbitmaps-6.9.0_1 /x11-fonts/xorg-fonts-miscbitmaps CURRENT 00193 have:kdepim-3.5.4_1 /deskutils/kdepim3 built with OLD dependency: qt-3.3.6_3 00194 have:gpgme-1.1.2_1 /security/gpgme CURRENT 00195 have:libmal-0.42_1 /palm/libmal CURRENT 00196 have:gstreamer-plugins-0.10.10,2 /multimedia/gstreamer-plugins built with OLD dependency: gstreamer-0.10.10_1 00197 have:v4l_compat-1.0.20060801 /multimedia/v4l_compat CURRENT 00198 have:liboil-0.3.9_1 /devel/liboil CURRENT 00199 have:dejavu-2.11 /x11-fonts/dejavu CURRENT 00200 have:xpdf-3.01_3 /graphics/xpdf CURRENT 00201 have:idesk-0.7.5 /x11/idesk built with OLD dependency: autoconf-2.59_2 00202 have:imlib2-20060926,1 /graphics/imlib2 OLD available: imlib2-20060926_1,1 00203 have:libungif-4.1.4_1 /graphics/libungif CURRENT 00204 have:libid3tag-0.15.1b /audio/libid3tag CURRENT 00205 have:foomatic-db-20060922 /print/foomatic-db OLD available: foomatic-db-20061031 00206 have:texinfo-4.8_3 /print/texinfo CURRENT 00207 have:cups-pstoraster-8.15 /print/cups-pstoraster CURRENT 00208 have:akode-plugins-mpeg-2.0.1,1 /audio/akode-plugins-mpeg CURRENT 00209 have:amspsfnt-1.0_4 /print/amspsfnt CURRENT 00210 have:kdegraphics-3.5.4 /graphics/kdegraphics3 built with OLD dependency: qt-3.3.6_3 00211 ----:teTeX-base-3.0_10 /print/teTeX-base MISSING 00212 have:poppler-qt-0.5.4 /graphics/poppler-qt built with OLD dependency: qt-3.3.6_3 00213 ----:teTeX-texmf-3.0_5 /print/teTeX-texmf MISSING 00214 ----:tex-texmflocal-1.9 /print/tex-texmflocal MISSING 00215 have:texi2html-1.76_1,1 /textproc/texi2html CURRENT 00216 have:libwww-5.4.0_3 /www/libwww CURRENT 00217 have:gd-2.0.33_4,1 /graphics/gd CURRENT 00218 have:portaudit-0.5.11 /security/portaudit CURRENT 00219 have:zip-2.32 /archivers/zip CURRENT 00220 have:net-snmp-5.2.3_3 /net-mgmt/net-snmp built with OLD dependency: autoconf-2.59_2 00221 have:akode-plugins-xiph-2.0.1,1 /audio/akode-plugins-xiph CURRENT 00222 have:kdeutils-3.5.4 /misc/kdeutils3 built with OLD dependency: qt-3.3.6_3 00223 have:kdeaccessibility-3.5.4 /accessibility/kdeaccessibility built with OLD dependency: qt-3.3.6_3 00224 have:lame-3.97_1 /audio/lame CURRENT 00225 have:kde-windeco-crystal-1.0.2 /x11-themes/kde-windeco-crystal built with OLD dependency: qt-3.3.6_3 00226 have:qscintilla-1.6 /x11-toolkits/qscintilla built with OLD dependency: qt-3.3.6_3 00227 have:kde-style-lipstik-2.2_1 /x11-themes/kde-style-lipstik built with OLD dependency: qt-3.3.6_3 00228 have:zh-ttfm-0.9.5_1 /chinese/ttfm CURRENT 00229 have:py24-qt-3.16 /x11-toolkits/py-qt built with OLD dependency: qt-3.3.6_3 00230 have:py24-kde-3.15.2,1 /x11-toolkits/py-kde built with OLD dependency: qt-3.3.6_3 00231 have:kdenetwork-3.5.4 /net/kdenetwork3 built with OLD dependency: qt-3.3.6_3 00232 have:cups-smb-backend-1.0 /print/cups-smb-backend CURRENT 00233 have:djbfft-0.76_2 /math/djbfft CURRENT 00234 have:akode-plugins-mpc-2.0.1,1 /audio/akode-plugins-mpc CURRENT 00235 have:akode-2.0.1,1 /audio/akode CURRENT 00236 have:fastest_cvsup-0.2.9_4 /sysutils/fastest_cvsup CURRENT 00237 have:kdemultimedia-3.5.4_1 /multimedia/kdemultimedia3 built with OLD dependency: qt-3.3.6_3 00238 have:x264-0.0.20060926_2 /multimedia/x264 OLD available: x264-0.0.20061030 00239 have:gpac-libgpac-0.4.2.r2,1 /multimedia/gpac-libgpac CURRENT 00240 have:scrollkeeper-0.3.14_5,1 /textproc/scrollkeeper built with OLD dependency: docbook-xsl-1.71.1_1 00241 have:docbook-sk-4.1.2_3 /textproc/docbook-sk CURRENT 00242 have:docbook-xsl-1.70.1 /textproc/docbook-xsl OLD available: docbook-xsl-1.71.1_1 00243 have:docbook-xml-4.2_1 /textproc/docbook-xml CURRENT 00244 have:sdocbook-xml-4.1.2.5_2 /textproc/sdocbook-xml OLD available: sdocbook-xml-1.1,1 00245 have:chmlib-0.38 /misc/chmlib CURRENT 00246 have:xvid-1.1.0,1 /multimedia/xvid CURRENT 00247 have:gtk-1.2.10_17 /x11-toolkits/gtk12 CURRENT 00248 have:gtkglarea-1.2.3_1 /x11-toolkits/gtkglarea CURRENT 00249 have:gdk-pixbuf-0.22.0_5 /graphics/gdk-pixbuf CURRENT 00250 have:libxml-1.8.17_4 /textproc/libxml CURRENT 00251 have:imlib-1.9.15_4 /graphics/imlib CURRENT 00252 have:ORBit-0.5.17_3 /devel/ORBit CURRENT 00253 have:gnome-libs-1.4.2_6 /x11/gnome-libs CURRENT 00254 have:gnomecanvas-0.22.0_5 /graphics/gnomecanvas CURRENT 00255 have:gnome-print-0.37_3 /print/gnome-print CURRENT 00256 have:guile-1.6.8 /lang/guile CURRENT 00257 have:oaf-0.6.10_4 /devel/oaf CURRENT 00258 have:bonobo-1.0.22_3 /devel/bonobo CURRENT 00259 have:gconf-1.0.9_9 /devel/gconf CURRENT 00260 have:libgda-0.2.96_5 /databases/libgda built with OLD dependency: gdbm-1.8.3_3 00261 have:gnome-db-0.2.96_6 /databases/gnome-db CURRENT 00262 have:libglade-0.17_4 /devel/libglade CURRENT 00263 have:kchmviewer-2.6 /deskutils/kchmviewer built with OLD dependency: qt-3.3.6_3 00264 have:portupgrade-2.1.3.3_1,2 /sysutils/portupgrade built with OLD dependency: ruby-1.8.5_4,1 00265 have:gkrellm-2.2.9_1 /sysutils/gkrellm2 OLD available: gkrellm-2.2.10 00266 have:desktopbsd-tools-1.1 /sysutils/desktopbsd-tools built with OLD dependency: xterm-222 00267 have:boxtools-0.70.1 /x11-wm/boxtools CURRENT 00268 have:fluxbox-0.1.14_2 /x11-wm/fluxbox CURRENT 00269 have:ezm3-1.2_1 /lang/ezm3 CURRENT 00270 have:libgnome-2.16.0 /x11/libgnome built with OLD dependency: gnome-mime-data-2.4.3 00271 have:libgnomecanvas-2.14.0_2 /graphics/libgnomecanvas built with OLD dependency: gtk-2.10.6_2 00272 have:libbonoboui-2.16.0 /x11-toolkits/libbonoboui built with OLD dependency: gnome-mime-data-2.4.3 00273 have:gtk-qt-engine-0.7_3 /x11-themes/gtk-qt-engine OLD available: gtk-qt-engine-0.7_4 00274 have:cvsup-without-gui-16.1h_2 /net/cvsup-without-gui CURRENT 00275 have:python-2.4.3,1 /lang/python CURRENT 00276 have:mplayer-0.99.8_5 /multimedia/mplayer built with OLD dependency: win32-codecs-3.1.0.p8_1,1 00277 ----:win32-codecs-3.1.0.p8_1,1 /multimedia/win32-codecs MISSING 00278 have:zh-arphicttf-2.11_1 /chinese/arphicttf CURRENT 00279 have:ja-vlgothic-20061026 /japanese/vlgothic CURRENT 00280 have:portmanager-0.4.1_6 /sysutils/portmanager CURRENT
November 15, 2006
Locate This!
I can never remember how to update my locate database. locate is a very useful little command, which searches your hard drive for any file or path name that contains the letters you ask for. It works much faster than doing find because it builds a database of filenames and searches that rather than actually running around the disk hierarchy.
But it requires that the database be kept up to date. This is one case where the Linux world has it all over the FreeBSD world. The GNU locate updates itself just by passing it the '-u' flag. But the FreeBSD locate doesn't do this. Rather it has a couple of mysterious command files that are carefully hidden away in the bowels of FreeBSD. The main file, as documented in the man page, is /etc/periodic/weekly/310.locate. This is one of the periodic commands that is run, but it, for some reason, is only run weekly, which doesn't seem to me to be often enough. I've moved it to be /etc/periodic/daily/305.locate, to get it to run every night. Not sure if that's a good idea, but I like my /var/db/locate.database to be more up to date! Oh, and I had to edit the /etc/periodic.conf file to move it up to a daily ritual. This file overides the /etc/defaults/periodic.conf file, so it now includes:
# Make the update locate db script run nightly # 305.locate daily_locate_enable="YES" # Update locate *daily*!
The other option is the script /usr/libexec/locate.updatedb. If you run this as root, it complains that it would expose every file on the computer and you probably don't want to do that. The 310.locate script runs it as "nobody", which only picks up files and directories that are world readable, which is less of a security threat. And you can't run it unless you are root anyway, because root can't update the database. So it is easier to just run the periodic script if you need to update it on the fly. But if I run this every night, that should be enough.
November 14, 2006
Fox Flashing
Another dragon slayed! This time, I really needed to get Flash working in my Firefox browser. Mind you, I'm not crazy about it, and as I've mentioned in the past, I don't mind running another program temporarily to use Flash. It is just too abused by advertisers, as it is a good way to get around popup blockers. And the annoying blinking ads make me want to scream!
But if I wanted to listen to music or watch videos or even get the weather, I needed to have Flash running. The easiest way to do this seemed to be to install the www/linux-firefox port, as purportedly the Flash installer worked under FreeBSD's pretty solid Linux emulation layer. But it felt like it was going to be complicated, so I held off.
The I realized just how much I missed the Google Toolbar, especially its spellchecking. It wouldn't install in FreeBSD, but I did find one site that installed it in another Linux by removing the "platform specification" tag from the install.rdf file found in the XPI installer. So I tried to modify that, but the installer complained about "signing could not be verified", so it must have some kind of checksum for the file and noticed it had been changed. So that didn't work.
So I bit the bullet and installed the linux-firefox port. I was very afraid it was going to go off and pull in dozens of other ports and take all day to build, but it actually went very smoothly and finished in about 30 minutes. Here's the packages portmanager said it wanted:
------------------------------------------------------------------------ Port Status Report ------------------------------------------------------------------------ 00001 ----:linux-firefox-2.0 /www/linux-firefox MISSING 00002 ----:linux-gtk2-2.6.10 /x11-toolkits/linux-gtk2 MISSING 00003 ----:linux-atk-1.9.1 /accessibility/linux-atk MISSING 00004 ----:linux-pango-1.8.1 /x11-toolkits/linux-pango MISSING 00005 ----:linux-glib2-2.6.6 /devel/linux-glib2 MISSING 00006 have:linux-fontconfig-2.2.3_5 /x11-fonts/linux-fontconfig CURRENT 00007 ----:linux-hicolor-icon-theme-0.5_1 /x11-themes/linux-hicolor-icon-theme MISSING 00008 have:linux_base-fc-4_9 /emulators/linux_base-fc4 CURRENT 00009 have:rpm-3.0.6_13 /archivers/rpm CURRENT 00010 have:linux-jpeg-6b.34 /graphics/linux-jpeg CURRENT 00011 ----:linux-png-1.2.8_2 /graphics/linux-png MISSING 00012 ----:linux-tiff-3.7.1 /graphics/linux-tiff MISSING 00013 have:linux-xorg-libs-6.8.2_5 /x11/linux-xorg-libs CURRENT 00014 have:linux-expat-1.95.8 /textproc/linux-expat CURRENT 00015 have:hicolor-icon-theme-0.9_2 /misc/hicolor-icon-theme CURRENT 00016 have:gmake-3.81_1 /devel/gmake CURRENT 00017 have:automake-1.4.6_2 /devel/automake14 CURRENT 00018 have:autoconf-2.13.000227_5 /devel/autoconf213 CURRENT 00019 have:libtool-1.5.22_2 /devel/libtool15 CURRENT 00020 have:popt-1.7_1 /devel/popt CURRENT 00021 have:gettext-0.14.5_2 /devel/gettext CURRENT 00022 have:perl-5.8.8 /lang/perl5.8 CURRENT 00023 have:m4-1.4.4 /devel/m4 CURRENT 00024 have:libiconv-1.9.2_2 /converters/libiconv CURRENT
So not too bad, really. Eight missing packages and all built without a problem. So I jump back into X and run 'linux-firefox'. It turns out to be Firefox 2.0, which was a pleasant surprise and it picked up most of my extensions without a problem. Only my Colorful Tabs extension wasn't up to date, and even that had one ready to go. And it looks pretty nice, a little better than my native version did, even after my tweaks.
So I head on over the Pandora and click on the "Missing Plugin" box. It skips over to Macromedia and downloads the Flash player, which installs without a hitch. Back to Pandora and now I have a working Pandora music player. And now YouTube.com works fine as does pretty much everything else. I am psyched!
Google Toolbar installed just fine too, although ironically enough, with Firefox 2.0's builtin spell checker, I don't really need it as much as I did before!
November 13, 2006
Under A Microscope
Comprehensive review of PC-BSD by frequent PC-BSD forums contributeer Terry. He goes over all the pieces found in PC-BSD, which is a very nice setup, trust me!
sas_spidey01: PC-BSD Users ReviewNovember 12, 2006
Brand New Babies
A couple of new FreeBSD family members have shown up for download. FreeBSD 6.2 BETA3 was just announced. I haven't tried any of the 6.2 releases, as I'm hoping the next release of PC-BSD will incorporate it, although I couldn't get PC-BSD 1.3 Beta1 to install on my test machine:
Development Release: FreeBSD 6.2-BETA3And my favorite FreeBSD-based LiveCD has just announce a new beta as well. FreeSBIE has announce FreeSBIE 2.0 Beta is now available for download. I'll need to do this one too. I like having a nice Live FreeBSD around.
Development Release: FreeSBIE 2.0 BETA.November 11, 2006
Securely Tied
Very nice tutorial on getting going with ssh, the secure shell. ssh lets you log into remote computers, while encrypting the communications so network "sniffers" can't decode what you're trying to do. But it does lots more than that, including nicely forwarding X so that you can run X clients locally from remote computers. This page also shows you how to set up the key files so you don't even need to type in a password. After spending a few minutes getting this set up, I was very happy! Now I just have to remember to start out by typing $ ssh-agent startx when I fire up my X, so that the agent is ready and willing to answer calls for authorization.
Added note: Just found out how to make it so I don't have to remember to using 'ssh-agent' when starting KDE. According to the FAQ, I just need to add script to ~/.kde/env/ and it will fire it up. So here is my script:
#!/bin/sh eval `ssh-agent -s`
And here's another couple of nice pages on ssh and ssh-agent:
SSH User IdentitiesSSH and ssh-agent
November 10, 2006
Software Sorcery
I spent some time last night installing Trac (a project wiki/source viewing/issue tracking system) and Subversion, a version control system on my FreeBSD server. The process went pretty smoothly - once again, the pile o' praise I heap on the ports system continues to grow. I would still like more info when an options dialog pops up, so I can make better decisions, but besides that, it went like clockwork.
Personally, I'm a Perforce man when it coms to SCCS. I've been using it for years, and really feel like it is an excellent client/server system. The support has always been phenomenal and I've brought it along to several jobs since I first began using it. The biggest problem with Perforce is that it is incredibly expensive. It is a real "enterprise solution" and charges as such. It cost US$800 for each license! They do have a free evaluation, where you can create two users but only five clients (local views of the source tree), which is too limited for any kind of real usage. I used to have a single developer license for it, but I don't have that any more. They also have a free version for Open Source projects, but as I'm not sure where, if anywhere, we're going with our little project, it doesn't seem like it fits.
So the next option looks to be Subversion, an open source CVS replacement, that is also supported by Trac "out of the box". It was reasonably easy to set up, although getting it "locked down" was hard to figure out. I wish these things would be installed with no access and then force me to open them up, rather than the other way around. I do like the idea of the SSL that is built into svnserve, although it seemed complicated to set up, so I passed on that for now. It also occured to me that Subversion doesn't let you know when another developer is working on code, as you "check out" the entire source tree when you begin work and then just "commit" your changes to it. I like being able to see in Perfore when someone else has a file checked out, so I know if I should ask about it first, or just be sure to get my changes checked in quickly and force the other developer to deal with merges!-)
The devel/subversion-python port installed /usr/local/etc/rc.d/svnserve.sh, which is the spot where startup scripts are supposed to go, so always look there when you install a new server. For some reason, the test install on my PC-BSD called the file just 'svnserve'. Odd. Anyway, if you look in that file, it graciously tells you the options that need to be set in the /etc/rc.conf file in order for the server to run and to get going at start up. It says:
# Add the following line to /etc/rc.conf to enable SVNServe: # # svnserve_enable="YES" # # optional # svnserve_flags="-d --listen-port=3690" # svnserve_data="/usr/local/repositories" # svnserve_user="svn" # svnserve_group="svn"
So I put my own values in there and started it up. I had to add "--listen-hostname=amazingdev.com" to the svnserve_flags line, as my machine hosts several domains and the connection didn't work at first. It must verify a hostname or something. I ran the svnadmin create command to initially set up the "repository" (I like Perforce's nomenclature of "depot" better - sounds less like an anal medicine:-), but it's off to the races!
Then I installed www/trac, which seems like a nice integrated web-based project site. It includes a wiki area, a way to browse syntactically colored source files in your Subversion repository, as well as bug tracking (it calls them "tickets"). It also keeps track of all changes and allows you to create milestones. Once again, the installation went smoothly, with a single prompt asking if I wanted to use Silvercity for syntax highlighting. Luckily, I had looked at the web site and noticed a caveat warning that Python highlighting doesn't work with the 0.9.6 version of Silvercity, which is what is currently in the ports. Seeing as textutils/enscript-letter works just as well, albeit perhaps slower but with more options, it doesn't seem like a big loss to not add it in, as I'm not sure you can get the 0.9.5 version recommended on the Trac website.
The one thing the port didn't do was to put a startup script for the builtin tracd server into the /usr/local/etc/rc.d folder, like the Subversion port did. Not sure why it didn't, as there isn't a real downside to putting one there, as it won't run until the admin modifies /etc/rc.conf. Maybe the port maintainer uses the Apache mod_python version of Trac? Anyway, using the svnserve.sh file as a model, I created my own tracd.sh file:
#!/bin/sh
#
# tracd.sh for rc.d usage (c) 2006 Jonathan Arnold
# $Id$
# PROVIDE: tracd
# REQUIRE: DAEMON
# BEFORE: LOGIN
# KEYWORD: shutdown
#
# Add the following line to /etc/rc.conf to enable Tracd:
#
# tracd_enable="YES"
# # optional
# tracd_flags="-d --listen-port=3690"
# tracd_data="/usr/local/path/to/project"
. "/etc/rc.subr"
# Set some defaults
tracd_enable=${tracd_enable:-"NO"}
tracd_flags=${tracd_flags:-"-d --port=8080 --pidfile=/var/run/tracd.pid "}
tracd_data=${tracd_data:-"/usr/local/trac"}
tracd_pidfile=${tracd_pidfile-"/var/run/tracd.pid"}
name="tracd"
rcvar=`set_rcvar`
load_rc_config $name
command=/usr/local/bin/tracd
command_args=" ${tracd_data}"
command_interpreter="/usr/local/bin/python"
pidfile="${tracd_pidfile}"
run_rc_command "$1"
I had to modify a few things from the svnserve.sh file. Most importantly, tracd is a python script, so you need to add the "command_interpreter" line, as the standard startup/shutdown commands look at the name of the process attached to the pid and if it doesn't match 'name', it won't kill it. But it will first check for 'command_interpreter' to check against. I also added the --pidfile option to the command arguments, so tracd would write out its PID to a standard place. And then tell the standard scripts where this is. But other than that, it was pretty easy and now I have a script to start up the builtin trac server by adding tracd_enable="YES" to my /etc/rc.conf file.
November 09, 2006
We've got another live one
Another entry into the FreeBSD LiveCD pool. This one is called TrueBSD and has the excellent new feature whereby you can actually eject the boot CD and still run the OS. Now that's independence!
Official Web-site operation system TrueBSDNovember 06, 2006
Permission Granted
Informative and very complete page explaining just what those pesky Unix file permissions bits mean. Carefully details each bit, along with some history and other tidbits. Looks like a nice wiki in general.
Unix PermissionsNovember 05, 2006
Cleaning up after yourself
A few interesting things came up on the .ports mailing list vis-a-vis cleaning up the ports. After you've done a make in the ports, a "work" folder is created. In here, the package is unzipped and then built, so there's a bunch of mostly wasted space, because chances are you don't care about the intermediary files. So if you do a # make clean after you've done the # make install, you'll clean up these temporary files.
But what if you forget to do the make clean? Or you don't normally do it, but at some point you want to clean it all up? JR Lenz posted the following shell script to do this for you:
#!/bin/sh # # remove_work.sh # removes nasty, disk-hogging source code # and compiled objects from ports tree # # J. Ralf Lenz# for i in `ls -Ad *` do if [ -d /usr/ports/$i ]; then cd $i DIR=`pwd` DESIRED_PATH=/usr/ports/$i if [ "${DIR}" = "${DESIRED_PATH}" ]; then for j in `ls -Ad *` do if [ -d /usr/ports/$i/$j ]; then cd /usr/ports/$i/$j if [ -d /usr/ports/$i/$j/work ]; then CUR_DIR=`pwd` echo "Removing ${CUR_DIR}/work..." rm -rf work fi cd /usr/ports/$i fi done cd /usr/ports fi fi done
While this is a usefully informative script, this also does the trick, albeit in a more arbitrary fashion:
# rm -rf /usr/ports/*/*/work
Boom - find all the port subfolders called 'work' and just remove them.
You can also change where the port system puts the work files by defining the WRKDIRPREFIX in /etc/make.conf (you can see other interesting variables for make.conf in the file /usr/ports/Mk/bsd.port.mk). WRKDIRPREFIX is explained thusly:
# WRKDIRPREFIX - The place to root the temporary working directory # hierarchy.
So if you don't want it to go into the port subfolder, just set it in /etc/make.conf. So to put the work folders into /usr/obj, add this:
WRKDIRPREFIX=/usr/obj
And, lastly, don't forget the 'portsclean' command. I guess the magic flags for this command would be:
# portsclean -CDLP
I don't see portsclean in the online man pages, so I'm not sure if it is a standard command or came in with some other port. As I generally use portmanager, which I believe does a clean, I don't worry about it. And if I do a make, I do a # make all && make install && make clean command.
November 04, 2006
Flashy Firefox
One of the most common complaints about FreeBSD is that Flash doesn't work "out of the box", with either Firefox or Opera. For me, that's not such a bad thing generally, as I find 90% of the Flash usage to be for annying blinking ads. But there a few sites that require it, including most video sites for some reason. So on my old Windows box, I never did install it on Firefox, my main browser, but when I needed to open a Flash site, I would just use the extension to either open IE in a tab or a standalone Opera. Worked very nicely.
But that doesn't work on BSD, because there isn't a running Flash. There's plenty of pages out there that purport to get it to run, usually using the Linux emulation layer, linux-firefox and the Flash plugin, although the current Flash version is quite old and has some serious security holes. But here's Yet Another page that shows you how to do it, if you feel the need. For me, I just swap to my Windows box if I really really need to get Flash'ed.
Flash Plugin on FreeBSDAnd here's another one: http://www.jail.se/freebsd.html
Here is a very long thread on the PC-BSD forums on how to get it to run on PC-BSD:
Flash7 with FreeBSD Firefox 1.5Fire On BSD
Someone is porting the FireGL ATI Linux driver to BSD, which would be a wonderful thing if it were to come off. I'll have to give this a try.
ATI on FREEBSD FireGL Linux DrivNovember 03, 2006
Monster Mash
Whatever you do, don't try this at home! I was trying to rebuild something (it was so long ago I don't even remember what it was!), when I interrupted the process because I needed to reboot. That's one thing with ports - you go to build something and it needs something else and before you know it, you're an hour into the building process and no idea how much longer it is going to take. So I killed the portmanager build, logged out and rebooted.
Well, KDE wouldn't start up, complaining of a missing library. Since I tend to muck about a great deal with my system, I don't have a graphical login screen (gdm or kdm). I log in and then run startx. That way, if my X setup is screwed up, I at least can easily make changes and get logged in. And in this case, KDE complained. So I thought, well, I just rebuild KDE. What was I thinking? The simple command :
# portmanager x11/kde -l
began its work late Wednesday evening and didn't finish until this (Friday!) morning. And even then, important pieces like kdelibs didn't rebuild, for reasons I don't know. One problem I was having was that my machine was freezing after a very short time. I suspected the special 80x60 text mode I had the text console in, as I had noticed if I swapped to it while running X (via the Ctrl-Alt-F2 keystroke), my machine would freeze after a bit. Sure enough, after I put it back into the standard 80x25 video mode via # vidcontrol 80x25 command, it stopped freezing up. So now I'm wondering if that was the cause of some of my other display freezes. Something to be investigated.
Then I restarted the port build (oh man, thanks be to Zeus for the --resume option in portmanager, as the kde port looks at upwards of almost 200 ports!) and went to bed. Thursday morning I was greeted with the sight of a menu from some random library asking for me to pick a single option. I'm not sure if I can do -dBATCH with portmanager, but I'm certainly going to have to find out. Another problem with the options screens for many ports is that you have no idea what they are talking about. Usually it enables some obscure acronym, and you have no idea what the pros and cons for each option are. So I usually just pick the default anyway. So I did in this case, and build trundled on.
And on. And on. Mysterious build commands whizzed by the screen all day long. By mid-afternoon, I got an option screen for KDE asking which KDE apps to install. I once again had a brain cramp and allowed it to install all of them. So dozens more apps that I don't want and don't need, like KOffice, got installed. Then, right around dinner time, it stopped scrolling, as it seemed to be linking some app. So I let it hang around for over two hours, and nothing changed. I couldn't even ctrl-C out of it, as the keystrokes just echoed to the screen. So I ctrl-Z'ed out of it, putting it in the background, and then killed it. But I forgot to check the log file before restarting the build, so I'm not even sure where it hung up.
And that build trundled on, Finally, just this morning it finished, although an important piece, kdelibs, failed to build for some reason. I just didn't have the intestinal fortitude to try and build it again, so here I am with some kind of Frankenstein system, which is seasonally appropriate at least.. Now I can't wait for PC-BSD 1.3 to come out, and I'll just start anew!





