Monthly Archives: March 2009

gentoo

Gentoo: Tips to upgrade your really old installation

Let me start out this post by making it clear. You should really upgrade your Gentoo installation on a regular basis. If not, you might run into some problems.

This post attempts to help out someone that is trying to bring an unmaintained installation up to date. Under most circumstances it is probably easier to reinstall after a certain point. These instructions have been created by an active contributor to Gentoo, Nick Fortino, to take a 2006.1 installation and update it to a current stable system. (Which I hope is much more extreme than anyone needs).

Version 0, written by Nick Fortino
#March 23, 2009
#This has been tested only in chroot, bringing 2006.1-amd64-stage3 upto
#a stable amd64 system

#This is an experimental guide on how to upgrade an old system to get to
#portage 2.1.6.7. Once this state is achieved, portage can do the rest, with
#decent dependency resolution.

###########################################################################
#Between the first tar command and the success of 'emerge -uDN system', the
#true state of the system, and the state according to portage are different.
#This is rather unsafe, so be sure you understand what you are doing.
#Consider this your big red warning to backup important files before attempting
#an update, and consider a re-install if possible.
###########################################################################

#It may be wise to use the default make.conf, as we would like to rebuild
#as few packages as possible before the toolchain has been updated, and use
#flags will bring in a bunch of dependencies

#Update the symlink to an existing profile
unlink /etc/make.profile
ln -s ../usr/portage/profiles/default/linux/amd64/2008.0 /etc/make.profile

#Fetch and forcefully upgrade python, bash, and portage with prebuilt sources
wget http://tinderbox.dev.gentoo.org/default-linux/amd64/dev-lang/python-2.5.2-r7.tbz2
wget http://tinderbox.dev.gentoo.org/default-linux/amd64/app-shells/bash-3.2_p39.tbz2
wget http://tinderbox.dev.gentoo.org/default-linux/amd64/sys-apps/portage-2.1.6.7.tbz2
cd /
tar xfpj root/python-2.5.2-r7.tbz2
tar xfpj root/bash-3.2_p39.tbz2
tar xfpj root/portage-2.1.6.7.tbz2

#remove the obsolete block from bash for portage; we got around it with a binary
#update (adding to /etc/portage/profile/package.provided would seem more
#elegant, but doesn't work?)
cd /usr/portage/app-shells/bash
nano /usr/portage/app-shells/bash/bash-3.2_p39.ebuild
repoman manifest
cd /

#See what will be upgraded, there should be no unresolved blockers
emerge -puDNv system
#Perform the update, this command will likely make good progress, and then fail
emerge -uDN system

############
#Known failures and solutions
############

#Cracklib wants -unmerge-orphans
FEATURES='-unmerge-orphans' emerge -1 cracklib
#continue the upgrade
emerge -uDN system

#Python updater and python split, creating a confilct, resolve by removing
#the old file
rm /usr/sbin/python-updater
emerge -1 python-updater
#continue the upgrade
emerge -uDN system

############
#Cleanup
############

#Update the current terminal
env-update
source /etc/profile
#Deal with the many /etc files which need updating
emerge gentoolkit
dispatch-conf

#At this point, the toolchain has been rebuilt, which likely involved an upgrade
#of gcc. Follow http://www.gentoo.org/doc/en/gcc-upgrading.xml to finish the
#upgrade. A lot of what is requested there has likely been done automatically,
#so in summary:

#Check that gcc-config is using the correct compiler, if not, follow the above
#guide
gcc-config -l

#Replace your make.conf/update to whatever profile you choose/etc.
#Rebuild the system with the new toolchain, and custom settings
emerge -eav system
#Rebuild and update world with new toolchain and settings
emerge -eav world

#Finally, remove any old packages which still survived the process
emerge --depclean -a

Which I made available here.

So, please people. Update on a regular basis so you don’t have to go through this stuff.

life

Why Charles de Gaulle (CDG) airport sucks

(This post may come off even more ranty than normally seen here)

Charles de Gaulle Int’l Airport in Paris, France is really bad. CDG is reported to be the busiest airport in Europe. No wonder it sucks. Here is some real life experiences..

  1. It is a freaking maze to get around in the terminals. Different floors to check-in vs security lines, etc. After landing, I am greeted to a bus to bring me to the terminal..lovely. Then you must stand in line for hours to get through customs. This alone is not shocking but the fact that there are no signs in that airport stating where you have to go makes things stressful. In the course of my 2h50min layover, I barely made my connection flight because I had so far to walk (customs only did take an hour or so).
  2. After boarding my plane (for my 1h50min flight), we literally taxied for 20 minutes to get to the active runway. As in, we were moving at 10-20 mph, not stop-n-go. The pilot got on the intercom and said that we were stopped because we were #6 in line to takeoff. At this point, I shut my eyes. Then wake up when I hear the engines come to life because I like to watch the takeoff and to my dismay, we were turning around. I checked the time and it was 40 minutes later. By the way, we were still #6 in line because I could see all the aircraft when we were turning. Apparently, they closed the runway while we were waiting.. So, taxi for another 20 minutes to the new runway and finally take off.
  3. On my return visit back to this crappy place. Same thing, different day. Wheels touch the ground – taxi 20 minutes to the “gate” – take bus to terminal. Walk a mile to get to my check-in spot. Stand in security line for ~50 minutes. Walk a mile to the gate.
  4. Ohh, goody, finally boarding the plane. *Thinks to self* – “My these gates are awfully close to each other – I wonder how they fit planes between them” Bah. Another damn bus. Taxi 20 minutes to runway, take off.

The moral of this story. Leave at least 2.5-30 hours between connecting flights if it is your first time there and you need to traverse customs, and the maze that is CDG. Oh, and get plenty of rest and try to be in a good mood.

PS. Feel free to take a look here and notice the 4 runways in the same direction. WTF.

gentoo

Skype Linux Client plugin (SMS support)

I was pretty upset after reading that the last status update on the Skype Linux client was back in January. Since I was using Skype on Windows all week last week, I didn’t know how bad it was on Linux until I got back home. What a bummer that all Linux gets is v2.0, while Windows gets v4.0. In particular, I needed the SMS feature. So, now Gentoo has this feature via plugin now too.

Simply emerge net-im/skysentials (which pulls in dev-python/skype4py) and run skysentials.py

It is not the best solution hack, but I am afraid it is all that we will get for quite some time based on frequency of Linux client status updates…

life

Vacation: Montpellier, France


Spring Break trip this year was to Montpellier, France.

france_map

I was in France for 8 days. The whole point of the trip was to see Kelli. She showed me around the city and was my personal tour guide. French towns are very interesting, small streets, 6-spoked intersections (non-right angles), old buildings, etc. I will eventually post pictures of the trip. Overall, great trip. My only complaints are that it wasn’t long enough and everyone there smokes cigarettes.

gentoo prefix

Gentoo Prefix Use Cases

(I write this because I have talked quite a few times about the subject but never offered any use cases for it.)

We have a core group of Gentoo Prefix users in #gentoo-prefix on freenode. I took a poll and gathered up all the use cases for Gentoo Prefix. They are in somewhat of an order:

  • Bringing a Gentoo userland to your MacBook (macos/darwin) – without modifying the eye-candy host OS.
  • Allowing easy package management on your host where you do not have privileged access.  No more manual ./configure --prefix=~/foo && make && make install
  • GNU-ifying your non-GNU host, like Solaris, HP-UX, AIX, etc. (userland only, of course)
  • Providing a similar environment across distros for your simulated build/customer environment.
  • Using the familiar Gentoo/Portage on a non familiar OS
  • “I use Gentoo Prefix because it is cool” -grobian

For a more detailed use-case analysis on some of the points above, please read here. Otherwise, enjoy!