Log in



Archive for December, 2007

IMAP mail folders underneath the INBOX

December 13th, 2007 by Peter

If you read this blog entry because of the title, you know the problem. Some mail providers (like us) provide your server-side IMAP folders as a hierarchy below the INBOX folder. Especially in Apple Mail, this look ugly and inconvenient.

The technical reason is that all these providers use the Courier IMAP server, which has its own understanding of mail folder hierarchies. In order to get your folders into the root directory, you need to configure the mail client IMAP prefix as “INBOX”, as described for Apple Mail here and for Thunderbird here.

For Apple Mail, you desperately need to enable this setting before any caching takes place. The best solution is to delete your account, create it again with a wrong password, change the setting, and provide the right password afterwards. This leads to a new copying of all IMAP mails, but with the right directory structure in ~/Library/Mail. I never tested this for Thunderbird.

SGE 6.1u2 problem with Debian testing

December 10th, 2007 by Peter

We upgraded our SGE cluster machines to Debian testing release, which contains beside other things the latest 2.6 libc:

marie# dpkg -l|grep libc6
ii libc6 2.6.1-1+b1 GNU C Library: Shared libraries
ii libc6-i686 2.6.1-1+b1 GNU C Library: Shared libraries

Especially on the master node, this package version for libc is needed to install libmotif3 from the Debian repositories, which is a prerequisite for the qmon tool.

After upgrading everything, the SGE daemons refused to be started by the old /etc/init.d/ scripts, while the direct start of the binaries still worked. I figured out that the Sun shell scripts rely on the output from SGE_ROOT/util/arch, which returned the following on our updated installation:

UNSUPPORTED-lx24-GLIBC-2.6-x86

With bash -x arch, I got the following execution dump:


...
++ strings /lib/libc.so.6
++ grep 'GNU C Library'
+ libc_string='GNU C Library stable release version 2.6.1, by Roland McGrath et al.'
+ '[' 0 -ne 0 ']'
++ echo GNU C Library stable release version 2.6.1, by Roland McGrath et al.
++ tr ' ,' '\n'
++ grep '2\.'
++ cut -f 2 -d .
+ libc_version=6
+ case $libc_version in
+ unsupported=UNSUPPORTED-
+ lxrelease=24-GLIBC-2.6
+ ARCH=UNSUPPORTED-lx24-GLIBC-2.6-x86
...

I am not a shell script expert, but fetching the libc version by using strings on the binary looks a little bit weird.

Anyway, looking for the libc_version variable in the arch script brought up the following:


# verify the GNU C lib version
# For an alternative means to determine GNU C lib version see
# http://www.gnu.org/software/libc/FAQ.html#s-4.9
case $lxmachine in
amd64)
libc_string=`strings /lib64/libc.so.6 | grep "GNU C Library"`
;;
ia64)
libc_string=`strings /lib/libc.so.6.1 | grep "GNU C Library"`
;;
*)
libc_string=`strings /lib/libc.so.6 | grep "GNU C Library"`
;;
esac

# retrieving libc version failed
if [ $? -ne 0 ]; then
unsupported="UNSUPPORTED-"
lxrelease="${lxrelease}-GLIBC"
else
libc_version=`echo $libc_string | tr ' ,' '\n' | grep "2\." | cut -f 2 -d "."`
case $libc_version in
2)
unsupported="u"
;;
3|4|5)
;;
*)
unsupported="UNSUPPORTED-"
lxrelease=24-GLIBC-2.${libc_version}
esac
fi
;;

As you can see in the last part, all libc minor versions until 2.5 are considered to be known. I couldn’t find any problem statement for libc2.6 on the SGE web pages, so I added the missing “|6)”, and everything works now.

  • You are currently browsing the troeger.eu blog archives for December, 2007.