Monthly Archives: March 2015

The Dreaded Gentoo emerge -e @world

Not something I take lightly, nor is it something I look forward to doing.  In Gentoo the emerge “-e” means rebuild all packages installed on the system that portage has recorded.  A quick ‘equery -l “*”‘ will list all packages installed.

So why do I do this every year or so?  Just to make sure I have not messed something up over time.  It is not something I look forward to because the time from start to finish is measured not in hours, but days.  For example, it took my i7 laptop (1,400+) packages with SSDs and plenty of ram 24+ hours to finish.  However, in the end I was confident the system was in good shape.

So here are my tips at making this painful experience a little less painful.

1.  I start by getting the system in the best shape possible:

emerge -v –update –deep –newuse –with-bdeps=y –autounmask-write @world

If needed:

emerge @preserved-rebuild

then:

emerge –depclean

If you are paranoid careful then do:

python-updater

perl-cleaner –all

2. Next:  cd /var/log/portage/elog

You should find the file summary.log.  Rename it or delete it, whatever suites you.  Once the big emerge starts, all the messages will be logged to a new summary.log file.

2. Execute:   emerge -pve –keep-going @world

Note the “p” for pretend.  If everything is good then it should tell you that the Oracle Java packages need to be downloaded.  This is a good time to download them (I have Jre and jdk packages installed), move them to portage/distfiles, and do not forget:

chown portage:portage <file> 

to the files.  Make a mental note of the total number of packages to build.

3. Start by executing:  emerge -ve –keep-going @world

Why the keep-going? Because if everything is good after step 1 then any issues should be minor and this keeps from having to start the process from the beginning.

Now all there is to do is wait and hope for the best which usually does not help.  As the emerge progresses with each new package the typical package number X of Y (total) being processed.  So if you start with a total of 1,400 packages and later notice emerge outputting 20 of 800 then there has been a problem which has been skipped (note:  the –keep-going option).  Go check the summary.log file to find what the problem might have been.  The best part is that you should be able to fix it while the emerge -e keeps churning along.

Enjoy!

 

Gnome OCR and Other Stuff

I was looking for an OCR app to use with Gnome/Gentoo and decided to give OCRFeeder a try.  It is available in the an overlay which makes it easier to keep up with for updates.  It is found in the anyc overlay.

layman -a anyc  then  emerge ocrfeeder (have to unmask)

WTF!!! A lot of rebuilds and new packages … that means probable trouble.  Yep, mplayer2 will not compile.  One of the updates was for ffmpeg and that had me worried that I had run into my first libav–ffmpeg blowup because I use ffmpeg rather than the mandated libav.

So, I unmask mplayer2-2.0_p20131009-r1 and still get the error:

libmpdemux/aviheader.c: In function ‘read_avi_header’:
libmpdemux/aviheader.c:600:8: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result [-Wunused-result]
fread(&magic, 6, 1, fp);
^
libmpdemux/aviheader.c:605:8: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result [-Wunused-result]
fread(&priv->idx_size, sizeof(priv->idx_size), 1, fp);
^
libmpdemux/aviheader.c:616:10: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result [-Wunused-result]
fread(idx, sizeof(AVIINDEXENTRY), 1, fp);
^
libmpdemux/demuxer.c:48:2: error: #error MP_INPUT_BUFFER_PADDING_SIZE is too small!
#error MP_INPUT_BUFFER_PADDING_SIZE is too small!
^
Makefile:536: recipe for target ‘libmpdemux/demuxer.o’ failed

Well, I try emerge @preserve-rebuild without mplayer2 and now I get this for /vlc-2.1.2:

checking for AVCODEC… yes
configure: error: libavcodec versions 56 and later are not supported yet.

Yep, vlc is giving me issues.  Now I am on the slippery slide of getting off the Gentoo path, so I up the stakes, I unmask media-video/vlc-2.1.5-r1 and try again.  You might ask why jump up to 2.15-r1 and I would reply that if I am going to blow things up badly then I might as well go big.

Great, now k3b errors on compile!  Unmask k3b-2.0.3-r1 and emerge without problems.  Okay, so where am I now?  Yep, back to this mplayer2 issue:

libmpdemux/demuxer.c:48:2: error: #error MP_INPUT_BUFFER_PADDING_SIZE is too small!
#error MP_INPUT_BUFFER_PADDING_SIZE is too small!

I don’t feel like going to battle for mplayer because I only use vlc or others, so a quick:

equery d mplayer2

results in:

  * These packages depend on mplayer2:
media-video/smplayer-14.9.0-r1 (media-video/mplayer2[libass,png,X])

So:

emerge –unmerge mplayer2 smplayer 

Now what was I doing?  Yep, OCRFeeder install.  Well, that went okay finally, but OCR engines have to be installed.  I installed gocr, ocrad, cuneiform, and tesseract.  OCRFeeder lets the user select the engine.

Another day in Gentoo world ….