Categories
College Life Newsgroups Software

Another Gentoo loyalist turns to Ubuntu in the campus

This is the second person. Earlier it was Mandu. Who said that it was fun but it took too much it and that he doesn’t want to spend too much of the precious resource – time.
Yesterday, ManuBansal posts on iitk.questions.unix:

Manu Bansal wrote:
> Another Gentoo loyal turned away.
>
> All I wanted to do was to upgrade to Valknut-3.8 from 3.7. dclib won't
> compile, and I wouldn't know why. Nobody would know why. Then suddenly,
> working on a project one day, it would occur to me that probably new code
> wouldn't compile with my relatively old gcc. And I would decide to upgrade
> gcc. I wouldn't know why the system is not using the newer gcc, and then,
> not being that noob, I would unmerge the old gcc, in the hope that the new
> gcc would come in effect. It still wouldn't, so I would update environment
> etc, but that wouldn't help either. And then I would take the plunge,
> without knowing that I was about to, and reboot. And nothing would work
> anymore! All applications would bail out for missing glibc. So I would
> realize I've lost glibc, and apps were compiled against the old one. So I
> would again try to emerge the old one, and even python would complain for
> the lib! Wow! That IS stranded. Then, and only then, would I get to know
> that there's a full Gentoo gcc upgrade guide.
>
> That I was able to put back my system did have a good effect - it raised
> my confidence in my hack-debug-skills. But then what would I do?
> An "emerge -eav system" and then "emerge -eav world". And then I will
> realize ebuilds for half of my packages don't exist anymore!
>
> I'm still not saying Gentoo package management is bad. But is it useful at
> all? A system which CAN benefit from compile optimization benefits would
> die compiling packages before they can be used. A system that can compile
> fast doesn't need those optimizations. And even the never-beatable
> dependency management goes for a ride when you upgrade 200 packages (half
> of them being kde) at a go. And gcc upgrade remains dirty - all it has is
> some suite of grep-based scripts, in addition to usual emerge.
>
> If one has still to upgrade all 100-200 packages, wouldn't bins/rpms be
> better?
>
> "Murphy's Law of Gentoo installation: If a compile can fail, it will."
> -- source: http://forums.gentoo.org/viewtopic-t-322136.html
>
> What is it called? Ubuntu? Or Fedora? ...
>
> Manu.

And you know what? I forgot to mention the funniest idea they have in
emerge - once in a while, a package emerge would beep for 10 seconds,
trying to draw your attention to a super-important message about a followup
action to the installation, maybe even something like "follow the gcc
upgrade guide". And that will happen in a compile of 4 hours on a P4 with
abundant RAM, after which the compile will spit enough to drive out the
message from display cache. Do they expect us to sit and stare at the
compile all this while?

All this leaves me wondering. Was he so out of touch after all? Looking at the need to upgrade his gcc for the valknut upgrade, it hints that he hadn’t updated his system in a long-time. And that too, long enough not to realize that there’s a proper way to upgrade his gcc. He unmerged his gcc! At least, he could’ve unmerged it with the = and version number…

emerge -Cav =sys-devel/gcc-3.4.6-r4

(assuming that 3.4.6-r4 was the old version he was trying to get rid of). It still is a mystery why he had to do that when he could’ve googled to figure out that there’s a handy tool called gcc-config.
Disheartening.
About the info warn qa messages – he should’ve made use of the ELOG system the recent versions of portage come with.
Here’s a snip of the /etc/make.conf.example


# logging related variables:
# PORTAGE_ELOG_CLASSES: selects messages to be logged, possible values are:
# info, warn, error, log, qa
# Warning: commenting this will disable elog
PORTAGE_ELOG_CLASSES="warn error log"


# PORTAGE_ELOG_SYSTEM: selects the module(s) to process the log messages. Modules
# included in portage are (empty means logging is disabled):
# save (saves one log per package in $PORT_LOGDIR/elog,
# /var/log/portage/elog if $PORT_LOGDIR is unset)
# custom (passes all messages to $PORTAGE_ELOG_COMMAND)
# syslog (sends all messages to syslog)
# mail (send all messages to the mailserver defined
# in $PORTAGE_ELOG_MAILURI)
# save_summary (like "save" but merges all messages
# in $PORT_LOGDIR/elog/summary.log,
# /var/log/portage/elog/summary.log if
# $PORT_LOGDIR is unset)
# mail_summary (like "mail" but sends all messages in
# a single mail when emerge exits)
# To use elog you should enable at least one module
#PORTAGE_ELOG_SYSTEM="save mail"

# PORTAGE_ELOG_COMMAND: only used with the "custom" logging module. Specifies a command
# to process log messages. Two variables are expanded:
# ${PACKAGE} - expands to the cpv entry of the processed
# package (see $PVR in ebuild(5))
# ${LOGFILE} - absolute path to the logfile
# Both variables have to be quoted with single quotes
#PORTAGE_ELOG_COMMAND="/path/to/logprocessor -p '\${PACKAGE}' -f '\${LOGFILE}'"

# PORTAGE_ELOG_MAILURI: this variable holds all important settings for the mail
# module. In most cases listing the recipient address and
# the receiving mailserver should be sufficient, but you can
# also use advanced settings like authentication or TLS. The
# full syntax is:
# address [[user:passwd@]mailserver[:port]]
# where
# address: recipient address
# user: username for smtp auth (defaults to none)
# passwd: password for smtp auth (defaults to none)
# mailserver: smtp server that should be used to deliver the mail (defaults to localhost)
# alternatively this can also be a the path to a sendmail binary if you don't want to use smtp
# port: port to use on the given smtp server (defaults to 25, values > 100000 indicate that starttls should be used on (port-100000))
# Examples:
#PORTAGE_ELOG_MAILURI="root@localhost localhost" (this is also the default setting)
#PORTAGE_ELOG_MAILURI="user@some.domain mail.some.domain" (sends mails to user@some.domain using the mailserver mail.some.domain)
#PORTAGE_ELOG_MAILURI="user@some.domain user:secret@mail.some.domain:100465" (this is left uncommented as a reader exercise ;)

# PORTAGE_ELOG_MAILFROM: you can set the from-address of logmails with this variable,
# if unset mails are sent by "portage" (this default may fail
# in some environments).
#PORTAGE_ELOG_MAILFROM="portage@some.domain"


# PORTAGE_ELOG_MAILSUBJECT: template string to be used as subject for logmails. The following
# variables are expanded:
# ${PACKAGE} - see description of PORTAGE_ELOG_COMMAND
# ${HOST} - FQDN of the host portage is running on
#PORTAGE_ELOG_MAILSUBJECT="package \${PACKAGE} merged on \${HOST} with notice"

It was all there. Gentoo might not be just about optimizations. There’s unlimited scope for flexibility here. A little reading up saves a hell lot of headache later. And, why do you have to read so much? Because, probably, it was your choice to use Gentoo in the first place – and Gentoo doesn’t come to you as a desktop-distribution but as a meta-distribution. Do the initial setup well and live happily ever after.

Categories
College Life Linux/BSD Navya Software

Gentoo, KDE, amd64!?

Not so long ago, I gave LG3D liveCD a shot only to end up losing a partition 😐 The included file-manager was at fault here. All I did was try browsing the contents of that partition and it’s gone!
I lost another partition. This was when I was trying out the pirated copy of MacOSX86 freely available on LAN. The Partition Utility on the installation DVD only looked good, but very deadly to actually use. Ah well.
All this activity was on the Seagate 160GB HDD. A faithful old chap from one of the best HD makers out there who sell in India. The other ill-fated hard drive is my infamous Samsung 160GB SATA HDD. My Gentoo installation on it got screwed when I was trying to rebuild the reiserfs partition’s trees. Apparently, it was filled with bad-blocks 🙁
So, made use of the other hard drive which recently suffered partition losses 😛
Installed gentoo-amd64 as usual. Emerged gnome-light and a few essentiall apps. Was happy for a few days until one day we had to test out our LAN TV setup for the upcoming cricket matches. VLC was our friend. Had to recompile the kernel with v4l support and stuff and VLC was ready to go. It picked up stuff pretty well from the TV card we had. The CPU usage was however, heavy compared to a similar setup on a neighbour’s 32-bit windows installation.

All that stuff for a month or so ago. Before the earlier post on LDFLAGS.

Now coming to the title of this post. I emerged KDE out of boredom after seeing a lower-end comp showing very good startup speeds for KDE apps on openSUSE. Surprised as I was, I quickly went to #gentoo-kde on freenode and asked around a bit on how to go about this KDE business. There are a lot of split ebuilds and takes a lot of time to go through. I began with one of those overlays which had a
“kde-lite” ebuild which was neat and just what I wanted 🙂
KDE is good. I usually prefer running a desktop with all-Qt/KDE or all GTK+/Gnome. I didn’t want to use Firefox or Linuxdcpp on KDE. So I had to get opera whose flashplugin wrapper never plays youtube or googlevideo :|. It too, like mozilla’s firefox binary, doesn’t render indic-fonts properly. Konqueror does it fine. But it seems to be unsupported by many websites even though Konqueror claims standards compliance.
Yestereve, we had a meeting to discuss MEMP’s current development status and plans for the future. Arun asked us if we are going to support amd64 and asked us “will we be able to convince that plain x86 installation is better than amd64”? Suprised as U was, on asking him the howcomes, he logged into my comp and fired up firefox and mplayer and did the same on his 32-bit gentoo Os and compared the ‘htop’ monitor. Firefox and mplayer on my comp was unusually, strangely, using up too much memory. Is the 64-bit OS at fault here? Is it worth all the trouble? Or should I just install a 32-bit Os and be happy with it?
(this post is kind of written in a hurry)

Categories
Linux/BSD Software

The quest for performance

Yo,
Several distros such as Ubuntu, openSUSE, or Fedora Core are pretty n00b friendly and desktop-oriented. A lot of optimization must’ve gone through into these distros. Binary packages and nifty package managers are features. Where it hurts or matters most is when you want customizability in the “Gentoo sense” 🙂
Take for example a typical make.conf
you have flags such as USE, CFLAGS, and so on. One of these (which gets automatically highlighted red by vim is LDFLAGS ). MS Windows XP’s GUI et al feels a lot snappier compared to Gnome on my box. After I set the following LDFLAGS and re-emerged world, I’ve started to notice that my Gnome doesn’t suck as badly as it used to. I’ve posted this on the newsgroups (intranet) and people have asked me for benchmarks. But, although I didn’t do any (forgot actually :P) I ‘feel’ a sense of life flowing back into my system.
A lot of googling told me that the Ubuntu developers have also done something similar with their packages. There is an article on LWN that explains LDFLAGS a little. There are a couple of threads on Gentoo Forums.

LDFLAGS="-Wl,-O1 -Wl,--enable-new-dtags -Wl,--sort-common -s -Wl,--as-needed -Wl,-z,now"

Make sure you go through the man page of ld for self-satisfaction.