{"id":180,"date":"2022-08-10T22:13:48","date_gmt":"2022-08-10T22:13:48","guid":{"rendered":"https:\/\/blogs.gentoo.org\/gsoc\/?p=180"},"modified":"2022-08-10T22:20:28","modified_gmt":"2022-08-10T22:20:28","slug":"daily-blog-9-10-aug-by-catcream","status":"publish","type":"post","link":"https:\/\/blogs.gentoo.org\/gsoc\/2022\/08\/10\/daily-blog-9-10-aug-by-catcream\/","title":{"rendered":"Daily blog 9-10 aug by Catcream"},"content":{"rendered":"<p>Today (and yesterday) I&#8217;ve been spending my time on both testing applications and fixing my mauikit ebuilds. I&#8217;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&#8217;ve written down every failing test in an org-document that I&#8217;ll look back to after I&#8217;m finished with mauikit ebuilds.<\/p>\n<p>I&#8217;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=&#8230;, DEPEND=RDEPEND, RDEPEND+=&#8230;<\/p>\n<p>I have also written my second tool this week focused on ebuild development. This one I call &#8220;ehide&#8221;. 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?<\/p>\n<p>An example of how I used ehide for mauikit Clip:<br \/>\n1) $ qa-vdb clip<br \/>\n<code>dev-qt\/qtmultimedia:5        &lt; <\/code><br \/>\n2) $ ehide qtmultimedia<br \/>\n3) $ clip<br \/>\n<code>CREATING INSTANCE OF MAUI APP<br \/>\nQQmlApplicationEngine failed to load component<br \/>\nqrc:\/main.qml:5:1: module \"QtMultimedia\" is not installed<\/code><\/p>\n<p>Which means that QtMultimedia actually is a correct RDEPEND!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today (and yesterday) I&#8217;ve been spending my time on both testing applications and fixing my mauikit ebuilds. I&#8217;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&#8217;ve &hellip; <a href=\"https:\/\/blogs.gentoo.org\/gsoc\/2022\/08\/10\/daily-blog-9-10-aug-by-catcream\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":177,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/blogs.gentoo.org\/gsoc\/wp-json\/wp\/v2\/posts\/180"}],"collection":[{"href":"https:\/\/blogs.gentoo.org\/gsoc\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.gentoo.org\/gsoc\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.gentoo.org\/gsoc\/wp-json\/wp\/v2\/users\/177"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.gentoo.org\/gsoc\/wp-json\/wp\/v2\/comments?post=180"}],"version-history":[{"count":4,"href":"https:\/\/blogs.gentoo.org\/gsoc\/wp-json\/wp\/v2\/posts\/180\/revisions"}],"predecessor-version":[{"id":184,"href":"https:\/\/blogs.gentoo.org\/gsoc\/wp-json\/wp\/v2\/posts\/180\/revisions\/184"}],"wp:attachment":[{"href":"https:\/\/blogs.gentoo.org\/gsoc\/wp-json\/wp\/v2\/media?parent=180"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.gentoo.org\/gsoc\/wp-json\/wp\/v2\/categories?post=180"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.gentoo.org\/gsoc\/wp-json\/wp\/v2\/tags?post=180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}