Daily blog 9-10 aug by Catcream

Today (and yesterday) I’ve been spending my time on both testing applications and fixing my mauikit ebuilds. I’ve ran test suites for basically all KDE packages now, that being two layer deep deps of kde-apps-meta. Most tests pass and I’ve written down every failing test in an org-document that I’ll look back to after I’m finished with mauikit ebuilds.

I’ve learnt a lot when fixing the mauikit ebuilds, like how to use lddtree, scanelf, iwdevtools and also just more general ebuild writing stuff. Like how you can go about setting *DEPENDS: for example using COMMON_DEPEND or doing RDEPEND=…, DEPEND=RDEPEND, RDEPEND+=…

I have also written my second tool this week focused on ebuild development. This one I call “ehide”. You give it a package atom and it will hide the package from the filesystem using mount namespaces. It works by calling equery files, creates a new mount namespace with unshare(CLONE_NEWNS), bind mounts /dev/null to all owned files (determined using stat(2)), and then spawns $SHELL with execvp. Bind mounting /dev/null feels a bit hacky but it works in my case, any suggestions?

An example of how I used ehide for mauikit Clip:
1) $ qa-vdb clip
dev-qt/qtmultimedia:5 <
2) $ ehide qtmultimedia
3) $ clip
QQmlApplicationEngine failed to load component
qrc:/main.qml:5:1: module "QtMultimedia" is not installed

Which means that QtMultimedia actually is a correct RDEPEND!

This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Your email address will not be published.