Planet Conary

July 03, 2008

Conary News

Conary 2.0.20 released

Conary 2.0.20 is a maintenance release.

Code Changes:
  • Dependency checking can now be run without computing the dependency order.
  • Added closeDatabase parameter when creating an updateJob to prevent that updateJob from closing the database when it's destroyed. This is a workaround to support CNY-1834.
  • Build dependency temporary tables incrementally instead of rebuilding them each time. This results in speedup for group building approaching 50%.
Bug Fixes:
  • Updates after a local update of a package that is referenced in multiple groups now function again. (CNY-2882)

July 03, 2008 09:20 PM

Michael K. Johnson

Living with tabs: Tree Style Tab

I used to use the galeon web browser. I got used to having tabs on the right side of my browser; I can have lots of tabs and read what is in them. This works in part because I devote one workspace entirely to a full-screen browser.

When galeon maintenance ceased, I did not update until I found the vertigo Firefox extension. Then I stayed on Firefox 1.5.0.x until vertigo supported Firefox 2. Now, I have been staying on Firefox 2 because vertigo does not support Firefox 3. This is starting to feel familiar.

Today, I found a mention of Tree Style Tab as supported by Firefox 3. Trying it out, I was pleasantly surprised; the configuration options are better, and I like the tree style where you can see which tabs were opened from other tabs (this can be disabled if you don't like that feature, though).

Now, the only thing that keeps pushing me back to Firefox 2 is the fact that Firefox 3 does not actually bring up a window, even if I specify -safe-mode, unless I completely remove my .mozilla directory. I haven't yet figured out what it is in my .mozilla directory that is confusing Firefox 3 that badly. This makes me sad.

Update: The problem was that this build of Firefox 3 (I don't know about any other builds) has a broken profile manager, and my profiles.ini setting of StartWithLastProfile=0 causes Firefox to start the profile manager and quit. Changing that 0 to a 1 works around the problem for now; I *usually* choose the default profile anyway, and I do know how to edit profiles.ini to change the default profile even without the profile manager working.

July 03, 2008 07:08 PM

Og Maciel

My first blueprint for Ubuntu

Today I created a blueprint I intend to promote for Launchpad’s Rosetta workflow. Titled “The process by which translation teams can better handle collaboration” (and its matching full specification), it is my intent to describe a mechanism by which translation teams can better administrate the contributions sent by Rosetta users, provide useful feedback and take a first step toward a better relationship with upstream projects.

I kindly invite those interested in the same topic to subscribe to the blueprint and add their feedback to the specification page, specially those who like me have their feet in both upstream and Rosetta worlds.

by OgMaciel at July 03, 2008 04:27 PM

Scott Parkerson

Smerpcast: The Return (sort of)

Once upon a time, I ran a very short-lived Internet radio station called Smerpcast. I pretty much crammed all of the crap I liked onto a playlist and sent it up to a friend who “borrowed” some of BTI’s bandwidth to make it happen. Folks listened, some of which confessed to enjoying it, but wish that I’d tone down on Rachel’s “Full on Night”. Whatever.

So, now there’s muxtape, which seems neat and all that, but I can’t help but feel that the RIAA is one step away from serving all of the users on there a big fat summons or at least execute a DMCA takedown on the whole thing.

Until that fateful day occurs, I give you Smerpcast: Muxtape Edition 2008. Hope you like it.

by Scott Parkerson at July 03, 2008 07:14 AM

July 02, 2008

Og Maciel

A DVCS model that embraces your model?

My good friend Mario Đanić (pygi) wrote a very interesting article on what he calls a “broken on birth” attitude towards DVCS adoption in many open source groups. I was very intrigued as to how one would allow different developers use their own (i.e. favorite) DVCS to work on their project, and yet be able to pool everything together in order to release a given set? If you want to learn about his ideas, about GitoriousKDE or have some relevant feedback for him, drop him a line.

by OgMaciel at July 02, 2008 01:11 PM

Conary News

Conary 2.0.19 released

Conary 2.0.19 is a maintenance release.

Bug Fixes:
  • Removed unnecessary repository accesses that were occuring while determining local system changes during an update. (CNY-2876)
  • "import os" within recipes now functions again. (CNY-2879)

July 02, 2008 12:17 AM

July 01, 2008

Ken VanDine

Foresight needs a new tagline

How would you like to win a brand new Foresight t-shirt.  Well we are looking for a new tagline and the winner will get a Foresight t-shirt featuring the new tagline.  The deadline for submissions is Friday July 11th, 2008 by 12am(CDT)/6am(UTC) .  Please email all tag line submissions to Kevin Harriss (specialkevin_AT_foresightlinux.org).  The winning tag line will be chosen by the Foresight Council of Users.  I wish everyone the best of luck.

by kenvandine at July 01, 2008 08:44 PM

Og Maciel

To post or not to post

My latests posts have attracted a fair number of comments (thank every and each one of you for taking the time… really!), most of them in response to the issue at hand. Every now and then someone questions the validity of one of my chosen topics, claiming that it should be published on Planet X (my blog is syndicated on quite a few planets) because it doesn’t talk about technology. I understand that someone people may not enjoy reading every single topic that may be published (not only by me), for I am one of them… honest!

Anyhow, my friend Jonathan Jesse’s comment on my latest post got me thinking… maybe I should write something about this same topic: what do I think about people writing about anything on Planet Ubuntu for instance.

Now, Jonathan… I’m not picking on you bud. :)

I wonder if political posts such as these really should be syndicated on something like planet.ubuntu.com. I know I have different political leanings then you based on the posts that I’ve read and I try to limit my posts to planets to only the topic on hand. Feel free to disagree with me. That’s the beauty of freedom of speech…. I just hope that you aren’t assuming that everyone who posts on planet.ubuntu.com or reads p.u.c agrees with your political ideas.

From the main page at Planet Ubuntu:

Planet Ubuntu is a window into the world, work and lives of Ubuntu developers and contributors.

I most definitely do not assume that everyone who reads Planet X agrees or shares my ideals and/or principals… it would be naive to think that way, and just flat out against Ubuntu (the ideology, not the distro)! Some people like to write howtos… some write about their favorite recipes or music… I reserve my right to talk about the things that are part of my life, sometimes about politics. I don’t expect that every single subscriber will want to read every single word I write… as I mentioned before, I don’t read everything I’m subscribed to. For those posts that don’t tickle my fancy, all I have to do is press the “j” key on Google Reader (or “n” on Liferea) and presto! A brand new post automagically appears!

I would like to hear your view on political posts appearing on something like planet.ubuntu.com

Fair enough. The short answer is: I’d be very interested to know this facet of many of the contributors to open source that are syndicated on these planets. You see, there’s much more about me than translations, BillReminder or my interest in the political future of my nation. I also love fishing, ice hockey, Clint Eastwood’s westerns, Reuben sandwiches, and… and… so much more. Off course I don’t expect that everyone will care about any of these. But there are a few people out there who find this a reasonable way to know the real me, specially when one lives so far away and with no means to meet in person.

The bottom line is that when my blog was added to Planet X, I was never asked to only write about X, or to create a feed that only talks about X. I’m not trying to wash my hands here, but this was the deal offered to me… and I accepted it. Maybe people who control/administer these aggregators will one day change their regulations in order to provide a more specific and filtered content? Until then, I ask all of you guys/gals who may be annoyed by some (all?) of my articles to simply press the “x” key on your news reader of choice… and exercise your freedom of choice.

by OgMaciel at July 01, 2008 12:47 AM

June 30, 2008

Og Maciel

Where should your money go today?

$162 billion for the wars in Iraq and Afghanistan

Gasoline

New war

Relief for the American people

Education

For some reason I can’t seem to be able to check the last 2 boxes.

PS: For those who don’t care or don’t want to read about this, exercise your mouse/keyboard and skip this post.

by OgMaciel at June 30, 2008 07:51 PM

June 29, 2008

Tim Gerla

TAM6

Liza and I went to a conference in Las Vegas last week, called TAM: The Amazing Meeting. It's kind of hard to explain but it's hosted by the James Randi Educational Foundation, and it's basically a bunch of people getting together to discuss issues surrounding critical thinking and skepticism. They had some cool special guests including Adam Savage of The Mythbusters, and Penn & Teller from their famous show. The show was hosted at the Flamingo Hotel, a pretty nice place.

Dr. Neil DeGrasse Tyson, and astrophysicist and author, gave the keynote. There were some standout talks including ones by Phil Plait, the Bad Astronomer, Dr. Ben Goldacre, a doctor and author in the UK, Dr. Michael Shermer, a writer and well-known skeptic, and Dr. Steven Novella of the Skeptic's Guide to the Universe podcast.

But the best part about the conference wasn't the talks, it was the company! We had a great time every night hanging out with newly-made friends. The first night we ran into Brian Dunning and his wife Lisa, and had a bite of supper with them. Brian produces an excellent podcast called Skeptoid, and he's working on a television show pilot project with Dr. Novella, Dr. Shermer, and others. Very cool.

Thursday night we went to the Penn and Teller show at The Rio casino. It was a fantastic show, of course, and we were able to stay a bit later and get signatures from both P&T. Friday night was supposed to be the the Skeptic's Guide podcast dinner at a restaurant in Caesar's Palace, but the place was completely full. We grabbed a couple of people and went to The Palm where I had an excellent steak. After dinner we went back to the Flamingo bar to relax and chat.

Saturday night was the Randi.org "forum" party, again at Caesar's! They rented a suite that seemed to have no air conditioning, and people kept spilling out into the hallways, and we got kicked out by hotel security pretty quickly. We regrouped at the Flamingo bar and didn't get to bed until about 4 AM that morning. The next day had paper presentations instead of talks. We didn't get up very early for them.

I don't like Vegas for Vegas's sake, but TAM6 sure was a great time! We'll definitely be back for TAM7 next year.

Teller and Liza

Penn Jillette and Liza

Pre-Forum Party Crowd

I tried by best to keep the more incriminating photos off of Facebook, but...

June 29, 2008 10:03 PM

Og Maciel

United States of Censorship

it is amazing just how little real information gets its way to the American public these days. What we Americans call news must be the equivalent of a soap opera or comic stand up everywhere else in the world! The problem is so serious that for those who were born here and never left the country that you end up becoming utterly unaware of what else is going on around the world or, even worse in my oppinion, not knowing what kind of terrorism (our government calls it Foreign Policy) we are perpetrating outside of our borders.

So, while we are spoon fed news about celebraties sexscapades, wild fires and floods (here in American only off course) and useless bits of information, the real news end up filtered out and tossed in the censorship bin. How do you govern/control over a huge population who believe they are free to do whatever they want? The answer is easy: get them out of the equation! As long as we go about our lives thinking that nothing is wrong around us, there is not reason to revolt.

How many people know that Kucinich presented several articles asking for the impeachment of Bush? That our stupid oil-war in Iraq has killed over 1.2 million civilians in Iraq? When was the last time you saw a video/picture of our young soldiers coming back in a coffin? It is as if there was nothing going on and we go on with our lives. How much coverage did our networks give to these issues? Not enough! In any other part of the world, if a president was being considered for impeachment, guess what would be on all news television and newspapers?

Think that the new presidential hopefulls are any better? Wrong! I could never trust someone whose loyalty is far stronger to his organization/group/posse than to his own countrymen. McCain will be yet another dictator with world domination fever. Obama? So much for a change we can believe in. I could never vote for someone who’s main concern is the well being of the State of Israel or who asks his supporters to pay for Hillary Clinton’s $22 million debt from her failed presidential bid! I want a president who puts us, American people first in their agenda. Cut funds for our imperialistic armed forces, and our obssession with finding water in Mars and use that money to pay off our own debts!

People who try to speak up end becoming motives for jokes… How many times was Ron Paul ridiculed during the presidential debates? Apparently it was funny to them that we have been printing money like it was for a game of Monopoly!

I could go on, believe me.

by OgMaciel at June 29, 2008 02:02 PM

June 28, 2008

Brett Adam

Headers ate my brain

So the madness continues....

I'm now trying to talk to an HTTP service on port 1234 for development purposes and, whaddya know, the Authorization header that I've put into the request, which my service is allowing in the crossdomain.xml file it returns (see earlier post), is now being *removed* by something - the browser? - before it ever gets to the server.

The server then rejects the attempt with a 401, correctly, which causes the browser to *prompt* the end user for their WWW-Authentication credentials!!!

The browser then re-presents the call to the server which now succeeds since it now has a *browser* inserted header in it.

Indeed, I've tried putting all sorts of headers into my request and *none* of them are making it to the other side.

What gives? Why is this so insanely tortured?

Well, whaddya know. Yet another "it doesn't work" issue. This time, my pain is all because I'm now using HTTP GET in a REST style API whereas two weeks ago, I solved this problem for HTTP POST in xmlrpc style API.

HTTP POST will pass any header I like.

HTTP GET - strips them all.

See this unanswered question on Adobe's forums for another poor soul who'd like to know why...why...why...

I'm on the verge of dumping Adobe's HTTP stack and going with the open source AS3 HTTP library someone pointed me at on Google Code....

by verveguy (noreply@blogger.com) at June 28, 2008 05:18 AM

June 27, 2008

Stephanie Watson

Using the new image set feature in rBuilder Online

One of the painful things about getting out a new release of the Simple Machines Forum Appliance has been stepping through generating each image needed at the time of release. Fortunately, rBuilder Online has added the new image set feature so I can predefine all the images I need, then use a three-step questionnaire to generate all of those images at once. I was excited about the new feature, but then suddenly a bit disappointed as I realized its early limitations. The primary one was this: existing projects from rBO have an existing Conary label structure and appliance group name, and image sets require establishing a product version (also called a "definition") which can only use a set label structure. I imagine in time this will be more configurable, but for now it means:
  • Promoting all the custom packages to the expected development label for that defined version

  • Creating the new appliance group on that expected development label with the expected name for the product definition, but with code copied from the current appliance group


Note that any new rBO products (created since the 4.1 update) have a template appliance group recipe at the expected label, and developers can start fresh by checking out that starter recipe. For those of us with existing appliance projects (now called "products") in rBO, we can either choose not to use the image sets for now, or we can choose to move things to what rBO expects for these image sets. I chose the latter for the SMF appliance, so I am currently working through the following steps. Use these steps as a guide in updating your own appliances to use this new image set feature:
  1. Create a new product version from the main page of the product (again, formerly known as "project").
    • Be cautious of what you use for the "namespace" and the "major version" value because these make up part of your new Conary label for the product.
    • Be aware that the advanced options for each image can be specified by expanding the section using the little chalk icon on the right side of the row for that image in the set list.

  2. Use Manage Images --> Create a set of images from a product definition, stepping through selecting the product version and initial ("Development") stage, to see what group name and label are expected to have a binary build of the appliance in order to generate images from the set. This has an expected format of group-shortname-appliance=shortname.rpath.org@namespace:shortname-version-devel (replacing shortname, namespace, and version as appropriate for your product and version)

  3. Set up your local development environment with an appropriate Conary context for the expected label.

  4. Promote custom packages and non-appliance groups from their existing label to the new expected label. If necessary, make modifications to accommodate their new home.

  5. Use cvc newpkg to create a new group with the expected group name, and copy the recipe from the existing label to the new group. At this step, be sure to rename the recipe file to match the new group name, and open the recipe file to make adjustments throughout to match its new home.

  6. Continue development work as usual on this new label.

  7. Use the new rBO interface features to generate images when necessary, and use cvc promote as always to promote from one stage to another in a release management process (though be sure to conform to the expected values for that product definition: -devel suffix for devel, -qa suffix for test/qa, and no suffix for release).

  8. After releasing the updated appliance on the new label, change all the custom packages, non-appliance groups, and appliance groups on the old label to redirect to their new locations on the new label (see this wiki page for more info on changing these to use a redirect recipe).


Because I'm also doing other updates that will delay the "continue development" step for SMF, I cannot testify to how all this worked out for that appliance. Hopefully I can post an announcement soon, though, about the release of version 2.1.1.5 of the appliance (with SMF 1.1.5) on the new version 2 label.

June 27, 2008 10:46 PM

Mihai Ibanescu

Parish Life Conference

Last week, my schedule was extremely hectic. Among deadlines and preparing for the upcoming vacation, we also attended the Parish Life Conference  organized by All Saints Orthodox Church. We enjoyed the talks (especially the lecture  Frederica Matthewes-Green gave).

The News and Observer published an interview. Interesting read.

by misa at June 27, 2008 02:04 PM

Og Maciel

The things you write when you have the stomach flu

Been suffering from a nasty stomach flu since yesterday and, needless to say, it hasn’t been fun for me. Spent the entire day trying to get some rest but was too restless to fall asleep. I don’t know how many times I checked my email or browsed my rss feeds! Out of the many tabs I opened and closed in my browser, one remained open at all times: a link to a book called Essential SQLAlchemy!

Having ventured into the SQLAlchemy and Elixir world a couple of months back (if you’re curious, check out my bookie code in my personal svn server), I felt that the documentation was a bit too “thin” to get me where I wanted to get: replace BillReminder’s database layer with a more pythonic and, hopefully, easier and cleaner code. Now, a couple of months later I felt compelled to give it another chance, maybe with the aid of this book. My only concern is, with so many other things going on with my life, will I find the time to go through the book and make the US$34.99 purchase? Don’t get me wrong, I love buying books but with 2 young kids and the economy deteriorating before my own eyes, one has to prioritize one’s needs.

I then saw a link to Safary Books Online and started drooling at the possibility of having a zillion technical books available to me from any computer! But once again the price tag brought my ambitions to a halt… and now I’m left to “enjoy” the remaining effects of my stomach flu and wish I were a literate fly inside a Barnes & Nobbles mega store!

by OgMaciel at June 27, 2008 12:15 AM

June 26, 2008

rBuilder Online News

rBuilder Online Performance Problems

We believe that the performance problems introduced in the recent update of rBuilder Online have been resolved. Our tests and monitoring are showing stable and acceptable performance. Friday (27 June) night (22:00 US/Eastern) rBuilder Online and other rPath web services will be off-line for maintenance while we add additional hardware to support our growing demand.

This means that if you are now experiencing markedly slower repository performance than you were before 21 June, or if you are experiencing significant variations in repository performance, please let us know.

June 26, 2008 09:16 PM

June 25, 2008

rBuilder Online News

rBuilder Performance Problems

Since our update Monday, rBuilder Online has been experiencing performance problems. We are working to address these issues at high priority, and expect to have improved performance during the day tomorrow (Thursday, 26-June).

Thank you for your patience while we increase rBuilder Online's capacity to handle the increased interest from you, the rBuilder Online community.

June 25, 2008 05:22 PM

Og Maciel

Almost 200% new translations for BillReminder

Amazing! There’s no other better way to describe the turn around for the translation progress of BillReminder after yesterday’s post/pledge! In less than 24 hours there were 8 new translations available bringing the total of available translations now to 17! Awesome! I want to thank every single person who took the time to lend me a hand!

During the course of merging the new stuff into the repository, I was a bit confused as far as the work flow for people who have their projects hosted on Launchpad but not necessarily host the source code in their bzr servers. I immediately fired an email to the Launchpad mailing list but decided to also post it here for anyone who may be interested in the subject.

My questions were:

  1. If I make a change to the message catalog (*.pot) of my project in its own repository (i.e. not bzr), will the message catalog stored in Rosetta be automatically updated with it once the code is synced?
  2. If the answer for the question above is ‘True’, will then all existing translations be merged against the newer message catalog?

If you know anything about this, please feel free to reply.

by OgMaciel at June 25, 2008 03:02 PM

Scott Parkerson

June 24, 2008

Og Maciel

Help me translate BillReminder

I need your help to get BillReminder translated into as many different languages as possible! Up until now I have relied on a list of collaborators who know how to work with a message catalog template (i.e. pot file) and use it to generate a translated message file (i.e. po file). I’m aware that a lot of people probably don’t know what I’m talking about and/or may feel uneasy about working with text files and what not… so I decided to set BillReminder up for translation via Rosetta, which can be reached here.

BillReminder can now be translated via Rosetta

Once you have registered to use Rosetta, and you are part of one of the many translation teams, it should be extremely easy for you to help out with the translation effort. I’m looking forward to seeing new languages added to the project just in time for an upcoming release.

by OgMaciel at June 24, 2008 06:30 PM

Conary News

Conary 2.0.18 released

Conary 2.0.18 is a maintenance release.

Protocol Changes:
  • The addRoleMember() and getRoleMembers() calls are now exposed via XMLRPC. (CNY-2862)
  • Added support for package creator specific data to trove info and the getPackageCreatorTroves() repository call. (CNY-2855)
Bug Fixes:
  • A rare error that occurred when an updating containing several groups that contained different versions of the same package has been fixed. (CNY-2860)
  • Some .car format files previously caused builds to fail; this has been corrected. (CNY-2871)
  • Tracebacks no longer print each filename twice (bug introduced in Conary 2.0.16). (CNY-2872)
Build Changes:
  • When the configure script run by r.Configure() or r.ManualConfigure() fails, "command not found" messages are highlighted, and possible missing buildRequires based on those messages are sought in the repository. (CNY-2708)
  • All missing buildRequires found by noticing programs used in source actions, build actions, and policies are reported immediately as well as summarized at the end of the build, to make it clearer why each requirement has been suggested. (CNY-2858)
  • The r.addPatch() method now takes an optional patchName keyword argument, which is the name of the patch program to use to apply the patch. (CNY-2858)

June 24, 2008 05:37 PM

Stephanie Watson

rBuilder Online... Beta!

So... what does this "beta" mean? Well, check it out: after a weekend-long maintenance window, rBuilder Online has been launched with several new features and other changes as described in the rBO page at the rPath Wiki: http://wiki.rpath.com/wiki/rBuilder_Online

It's good to see this new stuff in action, and I should get motivated now to update my Simple Machines Forum appliance with 1.1.5 and offer an appliance version of the 2.0 beta. I hope I can find some time to get that accomplished very soon.

June 24, 2008 03:42 AM

rBuilder Online News

rBuilder Online Scheduled Maintenance Complete

The scheduled maintenance of rBuilder Online has been completed.

A number of fundamental changes have been made; for more information, visit:

http://wiki.rpath.com/wiki/rBuilder_Online

The "Recent Changes to rBuilder Online" section of this page contains an overview of what's changed.

If you have any questions or comments regarding rBuilder Online, the rPath Forum now contains a dedicated rBuilder Online board:

rBuilder Online board

Thank you for your interest in rBuilder Online.

June 24, 2008 03:28 AM

June 23, 2008

Joseph Tate

WRT54GL, now more useful

I've had an OpenWRT compatible wireless router for almost 5 years now, starting with a Belkin FD7230-4, and then getting a Linksys WRT54GL about a year ago. When I first got the 54GL, I tried to load a few third party firmwares on the Belkin, and after much consternation, went back to the original. I was not interested in compiling my own firmware, but it seemed that I would have had to. Over the past month or two, I've tried three times to get openwrt or xwrt to work on my 54GL. I was attempting to use Kamikaze 7.09 based images, and after flashing several different times, was never able to get the Wide Area Network connection to load (Actully, when I tried DD-WRT I did get it to load, but I couldn't figure out how to do some of the things I needed it to do). Command line attempts to bring up the WAN connection yielded "invalid substitution" errors on the OpenWRT based images. Google didn't show anyone else with this problem, and I didn't have time to dig into it (minutes that my router are down are minutes that my website is down). So I always reloaded the linksys firmware, (via TFTP) and reloaded my settings from the backup I'd made.

Enter Tomato Firmware: An "it just works" firmware for WRT54GL and similar. No building your own from the ground up, no busted start scripts, and it includes all of the features that I need from my router right now. It runs DNSmasq, so it is a full featured DHCP, DNS and TFTP server (which takes three jobs away from my main server). I installed it, the web interface worked, it actually kept most of the settings from my linksys setup, so I didn't have to reload wireless settings. I just had to add my static IP clients, re-add my port forwarding rules, and set up the DNS records. I'll have to see if I can get it to run OpenVPN server and NTP, but if not, that's not a deal breaker (I may even do without NTP for my small network). Then I can really start migrating off my old Athlon XP hardware.

by Joseph Tate (nospam@example.com) at June 23, 2008 01:48 PM

Og Maciel

Fresh material for all the professional Tweeters out there

My friend devnet told me today as we got some coffee about what was possibly one of the very first micro bloggers in history… when he finally gave me the link to this guy’s site I laughed so hard I almost had coffee (my precioussss) coming out of my nose! With posts such as “Tidying some pencils”, “Standing in the middle of the room” and “Looking at a wall”, it was really hard not to laugh!

So for all you professional Tweeters out there, check out the link for some fresh material… and the next time you “tweet” about how blissfull it is when you scratched your knee, every flippin’ hour, it may be a bit more interesting for those who somehow still manage to follow your feed.

by OgMaciel at June 23, 2008 01:43 PM

June 22, 2008

rBuilder Online News

Changes Coming to rBuilder Online...

When we initially rolled out rBuilder Online back in the Fall of 2005, we hoped that people would find our approach to packaging and appliance creation interesting. Well, in nearly three years, the rBuilder Online community has grown to over 15,000 users who, collectively, have produced nearly 10,000 images that have been downloaded over one million times -- so the interest is certainly there!

Now it's time for rBuilder Online's next phase. That means we're going to see to it that rBuilder Online becomes the best way for people to experience our latest thinking on how to make the creation of appliances easier. To do this, we'll be picking up the pace of change on rBuilder Online, with new code being deployed every couple weeks.

These changes will make rBuilder Online the place to check out the latest rBuilder features -- even before our customers see it as part of our rBuilder Appliance product. Toward that end, we're going to slap a "Beta" label by the rBuilder Online name to make it clear that rBuilder Online is on the cutting-edge of appliance creation technology.

What does all this mean to you as a long-time rBuilder Online user? As we start to bring our new concepts to rBuilder Online, some terminology will change. For example, what was previously called a "project" on rBuilder Online now becomes a "product".

But other things will be more than a skin-deep change of terminology. For example, if you've ever grumbled about having to manually specify every single build type with every single build option every single time you are preparing for a release, you'll love our new image sets -- they allow you to define this information once and then quickly kick off all the builds (now called images) in your set with one click of the mouse.

Another change is the first pass of a very nifty feature that uses Conary's recipe factories to make packaging even easier. More on this to come...

Finally, we're also going to provide a dedicated two-way communication channel exclusively for all rBuilder Online users via rPath's forum:

rBuilder Online Forum

We'll use the forum to get the word out about changes to rBuilder Online, and to collect your feedback about your experiences with our software. So if you haven't already, sign up for an account -- we'd love to hear from
you!

June 22, 2008 12:18 AM

June 19, 2008

rBuilder Online News

Extended rBuilder Online Maintenance Scheduled

rBuilder Online will undergo an extended maintenance period starting Friday, 20-June at 18:00 EDT (-0400 UTC) and ending 23:59 EDT, Monday, 23-June.

During this time, rBuilder Online will be in maintenance mode and not accessible. In addition, the majority of Conary repositories accessible via rBuilder Online will not be available as we convert the nearly 10,000 repositories from Conary 1.x to Conary 2. The only exceptions will be:

  • conary.rpath.com
  • contrib.rpath.org
  • foresight.rpath.org
  • gnome.rpath.org
  • kernelbits.rpath.org
  • shuttle.rpath.org

These repositories will be accessible for Conary-related operations (such as updating/installing software), but not for Web-based browsing of repository contents.

A message will be posted when the maintenance period has been completed.

Thank you for your interest in rBuilder Online, and your understanding during this extended maintenance period.

June 19, 2008 09:31 PM

Og Maciel

Brazil x Argentina online

Unfortunately the match between Brazil and Argentina was not broadcasted here in the United States (well, at least not here where I live). Out of nowhere my dad calls me from NY to tell me he had just seen this guy plug the TV in his pub to the net to watch the game. I quickly wrote down the url to the site: http://www.justin.tv

Watching live web streamming via www.justin.tv

The feed wasn’t the greatest (quality-wise) from the Peruvian TV, but for those who really wanted to watch the game it was bliss! After several minutes the feed was blocked (apparently due to some legal BS)… but someone quickly created a new feed and off we went! For those reading this post in time for the second half, the direct url is: http://www.justin.tv/christianc226

by OgMaciel at June 19, 2008 01:55 AM

June 18, 2008

Brett Adam

More HTTPHeader madness

So, having solved the HTTP Basic Auth problem by "injecting" an appropriate header, things were working just fine during my local development cycle. However, recently I tried to demo my app by placing it on a development web server box. Guess what? My app could no longer access the remote services, failing with the dreaded Channel.Security violation error. This is despite having a wide open crossdomain.xml policy file on the server hosting the remote services.

What gives?

After much digging around, I find many many references to this problem but no solutions.

Then, at last I stumble over a thread complaining about this same problem in the context of Flex apps talking to the salesforce.com services. After much discussion about crossdomain.xml options, versions of Flash players, etc. the following comment is made

Salesforce updated their cross-domain files on the 25th- hopefully this resolved the issue.

It actually had to do with some HTTP Header requests being sent by the Salesforce toolkit, if I understand the issue correctly, not the meta-policy default.

What's this? HTTP Headers?

Synapses close and I find the following hidden gem:

http://kb.adobe.com/selfservice/viewContent.do?externalId=kb403184

Indeed, as of Flash Player 9.0.115.0, insertion of headers into outgoing HTTP requests will FAIL unless the remote site has an extra entry in its crossdomain.xml file

To whit:
<allow-http-request-headers-from domain="www.example.com"
headers="Authorization">


You can use headers="*" if you feel like getting all loose and crazy after suffering so much pain and misery leading up to this point.

Indeed, as the companion article reveals, this issue will affect SOAP calls as well since they use SOAPAction headers.

The thing that really grinds me about all this is that I spent waaaay too much time reading the only decent article I can find on Adobe's developer site regarding Flash 9 security and it doesn't even mention the existence of the allow-http-request-headers-from security issue at all.

Of course, what I didn't know is that this article has an update (which Google didn't cough up)

Hope this posting helps someone...

by verveguy (noreply@blogger.com) at June 18, 2008 07:39 PM

Conary News

Conary 2.0.17 released

Build Changes:

  • Recipes loaded based on the autoLoadRecipe configuration directive are now ordered based on the loadedTroves list in the packages containing those recipes. (CNY-2694)
  • The information provided by the "cvc status" command is now available through the checkin.generateStatus API call, and it now handles new packages that have not yet been checked in. (CNY-2843)
  • The "cvc log" command now has a --newer option that prints only log messages that are newer than the current checkout, and has been modified to be consumable via a new checkin.iterLog API call. (CNY-2840)
  • Building factories which haven't been checked in should work now (CNY-2757)
  • Specifying checkDeps and resolveDeps no longer causes an extra dependency check when building a group
  • Checking out a source trove without a buildLabel set, but with a version specified, no longer gives a confusing warning about the buildLabel being unset. (CNY-2783)

Bug Fixes:

  • A bug that caused a traceback when rolling back the installation of a group containing a post-rollback script has been corrected. (CNY-2844)
  • A bug that caused a traceback during metadata lookup when installing files to a new component has been corrected. (CNY-2846)
  • A bug causing magic to identify almost every file as a tarfile has been fixed. (CNP-135)
  • When rolling back an update started with Conary version 2.0.15 or older, that generated multiple rollback points (generally as a result of the presence of critical updates as part of the job), the rollback scripts are properly executed. (CNY-2845)

Server Changes:

  • The deleteUserByName() xmlrpc call now only deletes the role with a matching name on very limited situations (CNY-2775)

June 18, 2008 02:52 AM

June 17, 2008

Stephanie Watson

SFO, the first 12 hours

I am currently on the road for rPath Training, delivering the rPTS-101 course in Redwood City, CA, and staying in a hotel in nearby San Carlos. Though I hope to be able to swing down to San Jose to visit friends later this week (if they'll email me back already :-), I am currently focused on getting things ready to deliver. Thanks to the release of rBuilder 4.1.0, I was excited to update our rPTS-101 course to correspond to the new rBuilder features, but it has taken some time to get the course materials up-to-date.

Yesterday, the chaos of airline travel did result in my having time to concentrate on some course preparations, but it was utterly exhausting to have lost so much sleep. My 2:40 PM flight from Raleigh took off on time, but was in an indefinite weather-prompted hold at JFK so long that we diverted to Atlantic City, NJ, to refuel. Thanks to that diversion, adding a couple of hours to the normal flight time between RDU and JFK, I completely missed my connection to SFO, which left on time without me. The JetBlue staff was prompt about meeting passengers at the gate, though, with an updated boarding pass in hand to the next SFO flight. The new flight was supposed to board around 8:00 PM. However, after two delays and four gate changes, we didn't board until after 11 PM and didn't get off the ground until almost an hour later.

I did get a lot of time to hang out in the larger JetBlue terminal at JFK, and I was able to plug in my MacBook Pro and work for a while. I lost a lot of sleep though: I don't sleep well on planes as I can't really get into a comfortable position for myself, so I might have had at most an hour of sleep on board when you add all the snoozes together. After arriving, picking up the car, and getting to the hotel, I only got three and a half hours of good sleep before I was up to start preparations for this week's training.

In the meantime, though, I'm having a good rental car experience so far. Avis was out of subcompact and compact cars as I had requested, so they offered me a choice between a Ford Escape and a Ford Mustang, either at the same price I had reserved for the subcompact. I love the Escape from previous rental experiences, but I didn't want either that or the Mustang because of fuel costs. I took the Mustang, though, as well as a very helpful Garmin navigation tool on their new "where2" system. The nav has been VERY helpful so far, especially because I didn't feel like fumbling with navigation tools on my phone while driving the unfamiliar roads.

I am going to eat and work a while now while I'm still motivated after a very successful day of getting things set up for class tomorrow. I am looking forward to my first delivery for rPath Professional Training Services!

June 17, 2008 01:56 AM

June 15, 2008

Og Maciel

Dedicated to Nixternal

Walking on Crutches

I would like to dedicate this book to my good friend nixternal:)

by OgMaciel at June 15, 2008 10:37 PM

June 12, 2008

Mihai Ibanescu

More orienteering

It’s been a busy orienteering season this year, with additional “training” events for members only, that made the schedule more interesting.

The June 8 event was fun, even though the heat added to the challenge of overgrown vegetation. I could have done better, since I lost a lot of time on several controls (and the worst one was the last). But exhaustion does play tricks to your mind. Vladimir Stemkovski described his experience on the Brown course, and he has posted the map. I believe that, when trying to hit control 12, I got to the trail (dotted black line) between 11 and 12, right where I was supposed to be, but missed the saddle, then got back on the trail and thought I was on the top of the hill, so my compass bearing dropped me on the paved road instead. Approaching the control from the paved road was easier, the large re-entrant helped me get in the right spot, and even then I had troubles seeing the saddle.

I was 20 minutes late past the 3PM course closing time, but I wasn’t the last one on the course (as I found out later, one orienteer suffered from heat exhaustion). I was pretty happy with the fact that I was able to run large portions of the course, but when I got to finish I probably looked like I stepped out of the pool (although I suspect there was some mud involved too). Long pants are mandatory to protect from bugs and branches, and that doesn’t help much for cooling you down, even though the tech fabric is definitely light and breathable.

In other news, I started working on a PalmOS application to download data from SportIdent  control stations. I didn’t have any time to work on it over the past months, but hopefully I’ll make some progress in a few weeks, when my schedule clears up a bit.

by misa at June 12, 2008 03:29 PM

Attaching random commands to a keyboard shortcut

I thought I should share this simple way to run a command with a key combination.

Metacity will let  you configure keyboard shortcuts for generating events it knows about (sound events, window events etc). For that, all you have to do is go to System->Preference->Keyboard Shortcuts.

But what if you wanted to run  an arbitrary command? In my case, if I suspend my laptop while the display is set to use the external monitor, and I resume trying to use the laptop’s LCD screen, I would have to somehow invoke xrandr to get the display back. Sounds like a keyboard shortcut would solve the problem, since I could type it blindly, without anything on the display.

This is the solution I found:

  •  Run gconf-editor
  • Go to apps->metacity->keyboard_commands
  • edit one of the command_N keys to add the command you want to be run (in my case xrandr)
  • go to global_keybindings, edit the run_command_N key and add the keyboard shortcut, like <Ctrl><Alt><Shift>R

No need to restart anything.

by misa at June 12, 2008 03:06 PM

Derrick Devine

rPath Documentation Status Update


There are many changes on the horizon for rPath Documentation.

One of the things that team docs here has known for a while is that the rPath wiki is a fantastic tool to leverage for documentation. It's quick. It's easy. It allows engineers to contribute directly to the wiki. It allows community members to contribute to to the wiki.

We've also known for a while that this tool has a major caveat...and that is that versioned documentation is costly. For example, if we had say version 1.0 documentation of a project at wiki.rpath.com/v1/productname and version 2.0 came out, we'd have to maintain 2 separate documents with the same information in two different URI's and 2 different name spaces. With each addition of namespace and project version, updates would be more costly and time consuming.

It's also a bad thing that a user can search the wiki...and have the possibility of getting results from versions that they are not using...possibly information and behavior of products that no longer applies.


Continue reading "rPath Documentation Status Update"

by devnet (devn3t@gmail.com) at June 12, 2008 03:01 PM

June 11, 2008

Brett Adam

Mercurial for Bamboo

Here at rPath we use Mercurial pretty heavily.

We've also been making heavy use of the JIRA issue tracker for engineering process management and the Bamboo continuous integration server. Both are products from Atlassian.

Unfortunately, Bamboo didn't have built-in support for Mercurial as a source repository.

Fortunately, Bamboo is pluggable and the source is available to customers.

Herewith, the Mercurial plugin for Bamboo version 2

by verveguy (noreply@blogger.com) at June 11, 2008 01:45 PM

Flex HTTPService and basic auth

Having done a fair bit of Flex development building JIRA reporting frontends over the past year, I'd still somehow managed to avoid having to deal with basic authentication issues against the backend service.

However, in exploring building a Flex app that makes XML-RPC calls to a secured backed, I've been amazed at just how darn difficult it was to get basic auth working!

Note that I'm not talking about crossdomain access issues - you have no option (correctly) but to put the right crossdomain.xml policy in the right place(s).

All the examples and other (frustrated) posts I could find on the HTTP basic auth issue seemed to conclude that you can't get a Flex app talking to an HTTP service that requires basic auth without putting some kind of proxy in the middle. Adobe offer BlazeDS (and friends) for doing all this (and more!) and, in what appears (now) to be sheer bloody-mindedness, have actually implemented the setCredentials() method on HTTPService to throw an "unsupported" exception!

After much digging, I tried various techniques described elsewhere, but with no success. (Some of the suggestions were truly baroque.)

After walking through the Flex HTTP service stack (yay for source!), I finally realized that I could simply do the following in my initialization code before making a call on my service object:


...
addAuthHeader(myservice, "user", "pass");
...

private function addAuthHeader(serv:*, username:String,
password:String):void
{
//add the header to request
var encoder : Base64Encoder =
new mx.utils.Base64Encoder();
encoder.encode(username + ":" + password);
serv.headers["Authorization"] =
"Basic " + encoder.toString();
}


Works fine for direct, authenticated, access from my Flex 3 app to my backend service without any need for BlazeDS or other middleman proxy strategy! And, works whether I'm using http: or https: to access the service.

by verveguy (noreply@blogger.com) at June 11, 2008 05:49 AM

June 09, 2008

Smithj

procmail, maildir, and marking as read

Googling for “procmail maildir mark as read” yields a number of solutions, the most compact of which seems to be using INCLUDERC or SWITCHRC as explained here: http://blog.raamdev.com/2007/11/14/using-procmail-to-mark-as-read/

However, in my experience, this solution is noticeably racey. When using IMAP with the IDLE command set, some mail clients (thunderbird, probably others) will under certain circumstances immediately tell the mail server to mark the message as unread and not new. In maildir, this moves the message for new/ to cur/. Thus, if this happens before the server gets around to executing the mv command, the move fails and the message is not marked as read.

Truthfully, procmail should be enhanced to allow you to process a message marked as read in an atomic fashion. But that doesn’t seem likely, so the hack is to tell the mv command to look in both the cur/ and new/ directory. Doing so is straightforward:

Put this in ~/.procmailrc_mark_as_read_maildir:

:0
{
:0c # store as new
$folder/

:0 # move to cur/ and append a ,S to mark as read
* LASTFOLDER ?? /\/[^/]+$
{ tail=$MATCH }

TRAP=”mv -v $LASTFOLDER $folder/cur/$tail 2> /dev/null ; mv -v $folder/cur/${tail}* $folder/cur/$tail:2,S”

HOST
}

Then in your normal procmailrc, the usage is this:

:0
* someregexhere
{
folder=Maildir/.myfolder
SWITCHRC=$HOME/.procmailrc_mark_as_read_maildir
}

Now it will mark the message read whether or not your client is IDLEing in that folder. It will also log that it has done so, if you have logging enabled.

The solution isn’t perfect, as if you mark the message read inbetween the moves, it will log bogus errors; at least it will now mark the mail correctly.

UPDATE:

I’ve been asked by a few people how a remote host running IMAP can possibly win the race with procmail executing mv sequentially after initially creating the file. My IMAP server, dovecot, uses inotify to watch for new messages in maildirs. So when the kernel writes out the file, it notifies dovecot who immediately notifies its clients who mark the message as unread but not new (assuming they’re IDLEing that folder). Now, true, there is some network latency, but since dovecot notices the new mail immediately it is plausible that the network latency will be less than the system latency in exec()ing a new command, especially if load is moderate or high.

by admin at June 09, 2008 07:54 PM

June 08, 2008

Og Maciel

Getting older and keeping up with translations

So today is my birthday and I’m now 34. It is also my mother’s birthday, and as she’s been having some health issues, I decided to surprise her and drive up to NJ/NY. For the first time the trip went really smooth and it only took me 8 1/2 hours to get here. The very first thing I did, and you’re going to laugh at this, was to buy some Chinese food! You will not believe how bad the Chinese food is in North Carolina (or maybe all the places I’ve tried suck?)! This seems to be a regular trend, as some people who I talked about this also told me that it is really hard to get good Chinese in Florida and Massachussetts.

The weather here is just as hot as it is in NC, and with 95 F ++ you’d have to be nuts to be outdoors! So here we all are getting ready to work on a 750 jigsaw puzzle (a family thing)… I decided to check the status of my translations for the XFCE project using my pet project PyLyglot:

pylyglot –update xfce goodies
pylyglot –needs-update xfce goodies

I was informed that the thunar-svn-plugin and xfce4-datetime-plugin packages needed attention (the UI is not really my focus at the moment).

PyLuglot status information

A few minutes later I committed my own translations back to the repository… now back to some cold beer (I first tried Blue Moon beer when I moved to Chapel Hill) and a puzzle.

Oh, and happy birthday to me! :)

by OgMaciel at June 08, 2008 07:31 PM

Conary News

Conary 2.0.16 released

Changes in 2.0.16:

Code Changes:

  • magic has been extended to identify tar archives. (CNY-2825)

Bug Fixes:

  • Derived packages created from an unmodified shadow now choose the correct binary from which to derive. (CNY-2776)
  • A bug that caused conary to traceback when formating strings in the syslog logger has been fixed. (CNY-2689)
  • A workaround for a bug in the standard python library that can prevent the display of extended debugging information has been added.
  • Unmodified shadows will be recognized as already present when promoting them to their parent branch. Previously they would be re-promoted unnecessarily. (CNY-2837)
  • conary update --test no longer executes the tagscripts associated with the update. (CNY-2800)
  • Multi-stage rollbacks correctly execute the post-rollback script after all affected troves have been rolled back, instead of between stages. (CNY-2829)

Build Changes:

  • Info recipe actions (r.User, r.Group, and r.SupplementalGroup) are now available in package recipes. (CNY-2723)
  • Python packages now use %(libdir)s instead of %(prefix)s/lib for pure Python libraries. This is an artifact left behind from fixing CNY-2110 and CNP-121.
  • A bug causing log output to be lost if conary's log module was imported in a recipe has been fixed. (CNY-2813)

Server Changes:

  • Testing the HTTPS environment variable to know whether a connection is secure is now case-insensitive, because existing implementations differ in case. (CNY-2838)

June 08, 2008 12:14 AM

June 05, 2008

Og Maciel

Introducing PyLyglot

As everyone knows I’m very involved with the translation efforts of several upstream projects and try to keep up with what’s going on with every single one of them. Starting about 3 weeks ago I realized that I relied too much on statistical information that wasn’t always up to date and sometimes there would be a program that would get newer code (sometimes resulting in changes to the translation strings) and go unoticed. Since I was trying to get XFCE 100% translated, I decided to write up a simple python script to help me keep an eye on those packages… with every featured I added the script became more involved… and PyLyglot was born.

Though I have added a simple UI as a proof of concept, PyLyglot is mainly a command line utility that tells me exactly which packages on a given repository needs attention, as well as which packages don’t yet have translations.

PyLyglot

I have many ambitious plans for PyLyglot, getting it to work with other applications to allow the translation of applications (i.e. poEdit, gTranslator, or any text editor), integration with Open-Trans.eu and Bugzilla, as well as a graphical interface that will let you cherry pick which packages to follow, generate reports, and even commit (assuming you have the correct permissions) your work back to the source repository.

The code is still vey much tailored to my own usage and configurations, but I can foresee a lot of changes that will abstract the repository information out and turn it into a plugin-like framework, able to work with other VCSs besides SVN. Why am I publishing this code? To get some feedback, suggestions, help and patches… and with the hope that it will be helpfull to other translators out there. Since this project is fairly young, there’s room for anyone who’s seriously interested in lending a hand.

by OgMaciel at June 05, 2008 03:20 AM

June 03, 2008

rMake Blog

rmake 1.0.20 released

Changes in 1.0.20:

Bug Fixes:

  • Some conary factories require loading of some files associated with them in order to load the recipe at all. Such recipes would fail before this fix.

June 03, 2008 12:29 AM

Conary News

Conary 2.0.15 released

Changes in 2.0.15:

Code Changes:

  • We've started using a @publicApi decorator to tag methods which are part of the public conary API. (CNY-2367)
  • xmldata.py is no longer part of the Conary library. (CNY-2765)

Bug Fixes:

  • An incompatibility of the db2db migration script with the latest repository schema has been corrected. (CNY-2774)
  • An error in the handling of multiple URLs with addArchive has been fixed. (CNY-2778)
  • sys.argv is not defined under mod_python; importing cvc.py should no longer fail as a result of using sys.argv as a default argument to main(). (CNY-2786)
  • repository code handles correctly the removal of groups that include troves from other repositories. (CNY-2802)
  • When using sqlite, some temporary tables used the invalid column datatype of STRING instead of TEXT. This has been fixed. (CNY-2013)
  • Fixed bug that made the repository code return incomplete data for the getPackageBranchPathIds call in certain situations. (CNY-2810)

Build Changes:

  • Removed defaultBasePackages configuration option as well as the functionality for loading recipes from the filesystem based on configuration.
  • Reworked recipe loading to make the code more understandable.
  • Implemented autoLoadRecipes configuration option. (CNY-2694)
  • Using the byDefault parameter to startGroup only determines the byDefault setting when the new group is added to its parent group. (CNY-2791)

Protocol Changes:

  • The commitCheck() xmlrpc API call has been added that will check commit permissions for a trovelist before having to send the changeset for commit (CNY-2683)
  • The getPackageBranchPathIds xmlrpc API call accepts now a list of dirnames instead of prefixes for improved performance (CNY-2743)

Client Changes:

  • Added an option --exclude-groups to promote that allows the promotion of all the packages within a group without the promotion of the group itself. (CNY-2801)

June 03, 2008 12:28 AM

June 02, 2008

Og Maciel

About Tweeters

[10:29:10 AM] Dude: there’s way too many “social” networks to keep track of nowadays
[10:29:51 AM] Og Maciel: hehehe
[10:30:01 AM] Og Maciel: I’ve been using Tweet these days
[10:30:10 AM] Og Maciel: but not as aggressively as some people
[10:30:22 AM] Dude: the one that says what you are doing every hour?
[10:30:25 AM] Og Maciel: sheesh, they “tweet” for every &%^$&@ thing they do
[10:30:32 AM] Dude: yeah…
[10:30:34 AM] Og Maciel: every minute even
[10:30:42 AM] Og Maciel: “taking a crap”
[10:30:42 AM] Dude: people spend more time tweeting more than doing what they are tweeting about
[10:30:51 AM] Og Maciel: “out of tp”
[10:30:53 AM] Dude: “reaching for toilet paper”
[10:30:59 AM] Dude: “toilet paper ripped”
[10:31:04 AM] Dude: “reaching again”
[10:31:07 AM] Og Maciel: “turd is too compact… blockage”
[10:31:12 AM] Dude: rofl
[10:31:17 AM] Og Maciel: :)

by OgMaciel at June 02, 2008 02:34 PM

Let My Love Open the Door

Dedicated to my wife…

“Let My Love Open The Door”
Written by Pete Townshend

When people keep repeating
That you’ll never fall in love
When everybody keeps retreating
But you can’t seem to get enough

Let my love open the door
Let my love open the door
Let my love open the door
To your heart

When everything feels all over
When everybody seems unkind
I bring you a four leaf clover
Take all the worry out of your mind

Let my love open the door
Let my love open the door
Let my love open the door
To your heart

I have the only key to your heart
I can stop you falling apart
Try today, you’ll find this way
Come on and give me a chance to say
Let my love open the door
It’s all I’m living for
Release yourself from misery
There’s only one thing gonna set you free
That’s my love

Let my love open the door
Let my love open the door
Let my love open the door

When tragedy befalls you
Don’t let it drag you down
Love can cure your problems
You’re so lucky I’m around

Let my love open the door
Let my love open the door
Let my love open the door
To your heart

by OgMaciel at June 02, 2008 12:43 AM