Recently in Perl Category

One Door Closes...

| 1 Comment

So along with some other folks, I was laid off from my job at Raritan today. Although I'm disappointed to be leaving a stellar group of people to work with, I'm heartened by the outpouring of commiseration (and job offers!) from everyone. Thank you so much!

If you know of anything interesting for a Perl/Java/Mac/Open-Source/Geek kind of person, let me know. And check out my resume while you're at it. ;)

Fink 0.25.0 Out

| 1 Comment

For the first time since early 2005, a new major version of "fink" the command-line program is out. Plenty of good development work has gone on in the 0.24 series, with lots of nice incremental updates, but a lot of really great stuff has gone into 0.25. While there are plenty of other neat engine things and additions, I'm going to focus here on the changes that users will be able to see.

Internals

Speed

Most noticeable right away is speed. The incremental indexer was pretty much rewritten. You will not spend nearly as much time nowadays waiting for fink to scan your info files for changes.

A lot of other smaller operations related to the index have been sped up as well. All in all, fink is much faster. (Although I still would never call it "snappy"... <grin>)

Building

The buildlocks system has been rewritten, and should rarely get in your way anymore. It is much smarter about adding and removing build locks, and can clean up after itself much better.

Options

There are a number of new options for various things.

--log-output
Automatically log the output of package builds to a file. You can specify --logfile=/path/to/some/file to specify the location.
--maintainer
Enables "maintainer" mode, which does handy things for package maintainers, including automatic validation of both the info files and resultant deb files for any packages you're building, and enables some other miscellaneous things like turning build-time warnings into errors, and enabling tests if the package supports it.
--trees and --exclude-trees
When performing an action with fink, only use packages in the specified tree(s). For example, if you have unstable enabled, but wish to install the stable version, you can run "fink install --trees=stable mypackage". In addition, you can use the special-case trees "status" and "virtual" to refer to the dpkg database or fink virtual packages, respectively. The --exclude-trees flag does the same thing, only excludes specific trees.

Additionally, some existing fink command-line options have been upgraded or split off into separate programs.

dpkg-scanpackages
A convenience script to generate the apt Packages indexes so that local (or remote) clients can access locally-built binaries. This is invoked by the new automatic scanpackages feature.
fink cleanup
The fink cleanup command has gotten a much-needed overhaul. It's now capable of cleaning out old .deb files, source files, and the dpkg database.

Configuration

A few additions have been made to the fink.conf configuration file to make things easier on you.

AutoScanPackages
If this option is set to "true" (the default), then whenever fink has completed building new binaries, it will automatically update apt-get's indexes. Previously you had to run "fink scanpackages" to make your fink-built binaries available to apt.
Bzip2Path
You can specify the path to an alternate bzip2 command using this option. Normally you would use this if you want fink to use pbzip2 on a multiprocessor/multicore system to unpack archives. This will probably be expanded into a more generic configuration option for specifying system commands in the future.
NoAutoIndex
If you don't edit info files locally on your system, you can set NoAutoIndex to "true" and avoid the index scan when you run the fink command. You can still force fink to update the cache by running fink index (and you can force it to ignore the cache and create an entirely new index by running fink index --full).
ScanRestrictivePackages
If AutoScanPackages is "true" and you are planning on making your apt repository public, you must enable this option to avoid making legally-restricted packages available.
SkipPrompts
You can specify a number of classifications of prompts for fink to automatically accept the default. The currently available classifications are fetch (don't ask when a mirror fails, accept the default to try another/give up) and virtualdep (don't ask when fink has multiple packages that can satisfy a dependency, pick the default).

Conclusion

This has been a long time coming, and it's good to see it finally out the door. Please try it out, and let us know if you hit any snags. A ton of things have changed under the covers, and while plenty of us have been using it daily for quite some time, you always find new bugs when the general public tries things you haven't.

Happy finking!

Updates Since May 19th

| 4 Comments

The KDE4/D-Bus stuff is starting to settle down, and it looks like trunk is starting to regularly build again. It'll be worth seeing if it's stabilized pretty soon.

Also, Peter O'Gorman, Torrey Lyons, and I have been working on getting X.org 7.1 building. Torrey committed a ton of fixes in the monolithic (6.9) tree to fix building with the GL and other changes that happened between 6.8 and 6.9. Now we're trying to get all of that into the 7.x (modular) tree. I've got everything up to the X server packaged in my experimental tree and I've been playing with seeing how things do when built against it. Peter just got XDarwin.app building enough to start up, although it doesn't work yet. Hopefully things will start working soon.

I'm taking this opportunity to work towards making X.org 7.x the "official" X11 of Fink. I've been doing some tests with mixed binaries (some libs linked against /usr/X11R6 and some against /sw/X11) with good results. Eventually, the goal is to transition all X11-using packages in Fink to link against the /sw/X11 tree, and let end-users have whatever X they want in /usr/X11R6 for their runtime. Because of the client-server nature of X11, everything should be able to coexist pretty peacefully. (Stuff linked against /sw/X11 will still run with apple's X11.app and so on.)

In addition, there have been a few general updates released to 10.3, 10.4-transitional, and 10.4:

Updates Since April 27th

| No Comments

There's been quite a bit going on since my last Fink status update. Here's what I've released since April 27th.

  • amaroK: I've rearranged the amaroK package (again), and updated it to 1.4. It's still got a wrapper package ("amarok") but now the core and the output engines are separate packages. Since the gstreamer engine was not deemed stable for the initial 1.4 release, the only engine that's packaged is the xine engine, but eventually, you will have the choice of 1 or more engines to install on top of the amaroK core without needing variants.

  • GNUPG: I updated gnupg to 1.4.3, as well as gnupg-idea, which was long overdue for an update.

  • GStreamer: I finally did a big overhaul of the GStreamer packages. There's now a wrapper package for all GStreamer 0.10 plugins (called "gst-plugins-0.10"), I've also finally finished up packaging gst-plugins-bad and gst-python. Also of note, gst-plugins-good-0.10 reintroduces the osxaudiosink, missing since 0.8, so you can get native audio again (instead of routing through the esound or SDL output plugins). The osxvideo sink is not quite as ready for primetime, so I've left it out still. Hopefully it's coming soon.

  • KDE: As I mentioned before, I finally got the KDE 3.5.2 release out, and have been going through bug reports. Things are looking pretty good now, only a few outstanding issues that only affect a small number of users. Expect a few more updates (and KOffice 1.5.1) soon, but for the most part it's looking good.

  • libgpod: New package for accessing an iPod, version 0.3.2.

  • liboil: updated to 0.3.8.

  • libtunepimp3: fix for building on 10.3

  • PerlQt (and libsmoke): No version change, but updated to be more friendly with possible porting of kdebindings.

  • various perl modules: Catalyst::Plugin::Authentication (0.07), Catalyst::Plugin::Authorization::Roles (0.04), Catalyst::Plugin::DefaultEnd (0.06), Catalyst (5.6902), Class::DBI::Loader (0.32), Class::DBI::Pg (0.08), Class::Inspector (1.16), Data::Visitor (0.05), DateTime::Format::Pg (0.11), DateTime::TimeZone (0.46), DBD::Pg (1.49), Digest (1.15), File::Copy::Recursive (0.22), Module::Install (0.62), Object::Signature (1.04), Rose::DateTime (0.522), Rose::DB::Object (0.726), Rose::DB (0.673), Test::MockObject (1.06), Test::use::ok (0.01), Text::Balanced (1.98), UNIVERSAL::can (1.12), UNIVERSAL::isa (0.06), XML::Dumper (0.81), XML::RSS (1.10)

Updates Since Feb 11th

| No Comments

A lot has been going on. We've been working hard to make sure things work in the 10.4 tree, and doing build tests on 10.4/x86. I think we're starting to get close to being able to put together a bindist.

I've posted a few updates recently, but nothing about what's been going on in my packages, so... It's update time. :)

  • cairo: Cairo 1.0.2 got moved to stable, and 1.0.4 was released to unstable.

  • commons-codec: Version 1.3 was released to unstable.

  • commons-fileupload: Updated to 1.1 in unstable.

  • commons-httpclient: Updated to 3.0 in unstable.

  • commons-net: Updated to 1.4.1 in unstable.

  • commons-resources: Updated to a recent CVS snapshot.

  • commons-validator: Updated to 1.2.0 in unstable.

  • DBD::Pg: Version 1.43 was released to stable.

  • DBI: Stable was updated to 1.50.

  • distcc: Unstable got updates to support my build translator for using cross-compilers. and went through a few revisions.

  • EKG: Stable was updated to 1.6 final.

  • flex: Flex came out of abandonment and got a new release (and a new website).

  • giflib and libungif: 4.1.4 of both giflib and libungif were released to unstable and then stable.

  • Glitz: Glitz 0.4.4 was released to stable.

  • GNUPG: A number of security updates were released by the GNUPG folks. I ultimately updated the Fink packages to 1.4.2.2, and released to unstable and then stable.

  • GStreamer: gst-plugins-ugly 0.10.1 was released to unstable, and a few 10.4 x86 GStreamer fixes went in as well.

  • imlib: Version 1.9.15 was releasedd to unstable.

  • imlib2: Version 1.2.1 was released to stable. (Version 1.2.1 of both imlib2 and the optional imlib2-loaders were first released to unstable.)

  • KDE: The KDE packages had some minor build/fix updates.

  • libidn: Version 0.5.20 was released to stable.

  • MailTools: Stable was updated to 1.73, and unstable to 1.74.

  • MIME-tools: Unstable was updated to 5.420.

  • Net::Daemon: Version 0.39 was released to stable.

  • new perl modules: I was tinkering with Catalyst and Rose, and ended up packaging a ton of perl modules. Array::Compare, Catalyst::Engine::Apache, Catalyst::Model::CDBI, Catalyst::Plugin::Authentication, Catalyst::Plugin::Authorization::Roles, Catalyst::Plugin::DefaultEnd, Catalyst::Plugin::Session, Catalyst::Plugin::Session::State::Cookie, Catalyst::Plugin::Session::Store::File, Catalyst, Catalyst::View::TT, Class::DBI::Loader, Class::DBI::Pg, Class::Factory::Util, Class::Inspector, Clone, Clone::PP, Configfile, DateTime::Format::Builder, DateTime::Format::MySQL, DateTime::Format::Pg, DateTime::Format::Strptime, DateTime::Locale, DateTime, DateTime::TimeZone, File::Copy::Recursive, File::Modified, File::Temp, HTTP::Body, HTTP::Request::AsCGI, Image::Size, Lingua::EN::Inflect, MIME::Types, Module::Install, Module::Pluggable::Fast, NEXT, Object::Signature, Rose::Conf, Rose::DateTime, Rose::DB::Object, Rose::DB, Rose::HTML::Objects, Rose::Object, Rose, Rose::URI, Template::Timer, Test::MockObject, Test::Warn, Text::Balanced, Text::SimpleTable, Time::Local, Tree::Simple::VisitorFactory, UNIVERSAL::can, UNIVERSAL::isa, and UNIVERSAL::require. (whew!)

  • pinfo: Updated to 0.6.9 in unstable.

  • PlRPC: Version 0.2018 was released to stable.

  • PostgreSQL: Unstable was updated to 7.3.14, 7.4.12, 8.0.7, and 8.1.3. Also thread-safety was enabled in PostgreSQL 8.0 and 8.1.

  • QCA: Version 1.0 was released to stable.

  • Qt: Updated to 3.3.6.

  • RRDTool: Unstable was updated to 1.2.12.

  • Squid: Stable and unstable were updated to 2.5-STABLE12.

  • taglib: Version 1.3.1 was released to stable.

  • unsermake: Unsermake got updated to a 0.4 snapshot in unstable.

Fink, the 10.4 tree, and Intel

| 3 Comments

David Morrison's been doing an incredible amount of work getting everything organized for a real 10.4/gcc4 tree (which should, in theory, work with the new intel macs). I'm finally getting around to starting to take a real look at getting my packages ready for such a beast. I've finished bootstrapping the 10.4 tree, and am now working my way through deps.

In the meantime, here's my stuff that's been updated since my last blog post.

  • Amarok: updated to 1.3.8 (also, released to the 10.3 tree)

  • GnuPG: took over maintainership, updated to 1.4.2

  • GStreamer 0.10: updated gstreamer-0.10, gst-plugins-base-0.10, gst-plugins-good-0.10, and gst-plugins-ugly-0.10 to the latest versions (0.10.2 for some, 0.10.1 for others, depending on what's available) -- this is the first time these packages have been released to the 10.3 tree, as well

  • Mono: updated to 1.1.13

  • Net::Jabber: initial release

  • Net::XMPP: initial release

  • Poppler: released a package for the Qt3 bindings

  • PostgreSQL: all PostgreSQL packages have been updated to their latest versions (7.3.13, 7.4.11, 8.0.6, and 8.1.2, respectively) -- this includes finally getting the 8.1 packages up-to-speed and PostGIS at 1.1.0 (after some finicky trickery with their new build system)

  • XML::Stream: initial release

Unemployed No More

| 8 Comments

I accepted today an offer with PinPoint (well, PowerByHand), doing freaky perl stuff. :)

Whoohoo!

PerlQt/libsmoke in unstable

| No Comments

I've released fink packages for PerlQt and libsmoke. They're pretty solid, the only problems are with the OpenGL code on Apple's X11, so I've disabled the dependency on the opengl-pm package for now. If I can get that worked out, I'll up the revision and put out a new version.

For now it's totally usable for anything but the qt opengl stuff.

PerlQT/OpenGL

| 1 Comment

I've got PerlQt 3.006 and the OpenGL perl module working... Check out the PerlQT OpenGL demos!

PerlQT gear demo PerlQT

There are some problems linking OpenGL with the Apple X11, once I get those worked out I'll release to unstable.