Pleasant Conditional Dep Surprise Day
I needed to check a pdf from work tonight, and didn’t have a pdf viewer installed on my exherbo install. I checked, and someone had written an exheres for epdfview already, but there was a problem when I tried to install it.
$ sudo paludis -i epdfview -p
Building target list...
Building dependency list...
DepList additional requirements not met error:
* In program paludis -i epdfview:
* When performing install action from command line:
* When executing install task:
* When building dependency list:
* When adding PackageDepSpec 'app-text/epdfview':
* When adding package 'app-text/epdfview-0.1.6:0::x11':
* When adding build dependencies as pre dependencies:
* When adding PackageDepSpec 'app-text/poppler[gtk]':
* Error searching for 'app-text/poppler[gtk]': additional requirements are not met
Additional requirements are as follows:
* Flag 'gtk' enabled
I checked poppler, and for some reason I’d only installed it with the jpeg option, so I edited my use.conf to add gtk to poppler’s options, and ran paludis -i epdfview -p again. To my pleasant surprise I saw this:
$ sudo paludis -i epdfview -p
Building target list...
Building dependency list...
These packages will be installed:
* app-text/poppler::x11 [R 0.8.1]
Reasons: *app-text/epdfview-0.1.6:0::x11
-cairo -cjk gtk* jpeg
* app-text/epdfview::x11 [N 0.1.6]
"A lightweight PDF document viewer using Poppler and GTK+ libraries"
-debug nls
Total: 2 packages (1 new, 1 rebuild)
I checked with TPB and it’s a currently a feature, not a bug, so I say yay for progress, yay.
In only slightly related news, paludis version 0.26.2 has been released, so the scripts I posted earlier will work with a non svn build of paludis now, rejoice.
A present to the maintainers of the gentoo ruby herd
A script that I liked to use, when I was a gentoo dev, was compare_gems.rb.
This script runs through a repository using Paludis::NoConfigEnvironment, so that it’s not actually necessary to configure paludis1. It grabs a list of all the packages that inherit the gems.eclass and then queries rubygems to find out which packages in the repository are lagging behind the published gems. It outputs all this infomation into a nice pretty html2 file.
This helped me to keep the gem ebuilds that I used up to date, and also told me all the other gems we had that had fallen behind. It’s not 100% perfect on matching, sometimes the gentoo package names don’t match the gem name, and it won’t do anything clever, like checking the src_uri, to find out what gem it should really match
2. OK, this is also somewhat truth deficient, as I’ve misplaced the stylesheet. The only copy I had was on dev.gentoo.org. I would ask for it back, as I understand they don’t generally delete your homedir straight away, but robbat2 is away, and he’s the only one I trust to do it competently, having seen another member of team infra announce “HERE’S YOUR HOME DIR IN A TAR >>> http://free.for.all” in a public IRC channel to someone else.
A present to the third world
A few people, i.e. at least two, have come into #paludis to ask for help with fetching distfiles. Their specific problem is that the computer they want to update doesn’t have a fast connection to the internet, so they want to generate a list of files to download, take it to another machine that does have a relatively fast connection, download the files, and take them home again.
The usual answer these poor people receive is that they should upgrade their internets. Sometimes, they are told that the mysterious “dleverton” is thinking about possibly maybe one day writing a client that may achieve their goal for them. Today, I have made their dreams reality, with the world’s worst ruby script.
Run the script with just one target, and theoretically it will send to the files you need to download, in the format:
filename,download_location_1,download_location_2,…
The script is still in its first draft form, but it should work, and I may update it to be less stupid, to bind to more paludis source (rather than just copying it to ruby) and to have more polite variable names. To use it you will need paludis-scm installed, as I only commited the mirrors binding stuff today.
Good luck, you’ll need it.