From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 9D10E158094 for ; Sun, 14 Aug 2022 23:23:01 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id A5D842BC02C; Sun, 14 Aug 2022 23:23:00 +0000 (UTC) Received: from w4.tutanota.de (w4.tutanota.de [81.3.6.165]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 62B112BC02C for ; Sun, 14 Aug 2022 23:23:00 +0000 (UTC) Received: from w3.tutanota.de (unknown [192.168.1.164]) by w4.tutanota.de (Postfix) with ESMTP id 2CFD81060165 for ; Sun, 14 Aug 2022 23:22:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1660519379; s=s1; d=catcream.org; h=From:From:To:To:Subject:Subject:Content-Description:Content-ID:Content-Type:Content-Type:Content-Transfer-Encoding:Content-Transfer-Encoding:Cc:Date:Date:In-Reply-To:In-Reply-To:MIME-Version:MIME-Version:Message-ID:Message-ID:Reply-To:References:References:Sender; bh=ubpxROOmpXC/Jh4q34s1zaBOkaVX7eeVeLJCfsxriXA=; b=tarV07IaIKPRU+72OwWw0a777XWwYdPDmYQp+jpxqFgNxAaudel93S0izBMxOnCg N4dqXAFnf/gFafMo+81hPPg1h6xED86sN9ju58wnNTUgVPAv2qKZdWrOrDbIQP0Vs4l lp2DMVTMsQJt6WxxQoLU+5/rUTtOp6jDmA4FdEGvvyPr69LgRB/GL+0zFcADlkkewSb LeP54bpO+Qtan5cqAf2XhKkyJSGfILl3l0cCI8GCf/OpNANwP1MQY1kUKsMaC5TfzTO N9OYZOqOot1jxHdP56z4GL3oroRp/dM0rC+7Pgnzya8uL9OAT80mhrEzm2cDHgbvUmN n+FZpkM1Mw== Date: Mon, 15 Aug 2022 01:22:59 +0200 (CEST) From: cat@catcream.org To: gentoo-soc@lists.gentoo.org Message-ID: In-Reply-To: References: Subject: Re: [gentoo-soc] Gentoo musl Support Expansion for Qt/KDE Week 9 Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-soc@lists.gentoo.org Reply-to: gentoo-soc@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Archives-Salt: e6490350-4816-46bb-8990-c3a08dd78717 X-Archives-Hash: f3afd34b6b41c19bb49697505c80add3 Huh, apparently the blog inputted a lot of extra spaces. oh well Aug 15, 2022, 01:22 by cat@catcream.org: > > This week I=E2=80=99ve tested every application in the kde-apps-meta meta= package, I have also spent a lot of time learning ebuild development tooli= ng by working with the mauikit ebuilds. > > > To start with I=E2=80=99ll talk about the mauikit ebuilds, and more gener= ally using tools related to ebuild development. I had look over a lot of de= pendencies, and making sure that I had no unneeded deps. So I learned how t= o use things like iwdevtools, lddtree, and scanelf. A limitation of iwdevto= ols is that it can only look for linked libraries and not things like QML p= lugins. So I decided to make my own tool I call =E2=80=9Cehide=E2=80=9D. > > > Ehide hides dependencies from the system, so you can run applications and= see if they actually need the dependencies or not. It works by creating a = new mount namespace, then enumerates files via =E2=80=98equery files =E2=80= =98, then checks if it=E2=80=99s a file with stat(2) and finally bind mount= s /dev/null to the files and spawns a new shell in the created namespace. T= his shell can now run commands and programs as if the dependency wasn=E2=80= =99t on the system to begin with. Creating a new mount namespace with unsha= re(CLONE_NEWNS) required CAP_SYS_ADMIN. So I also learned how to check for = capabilities with libcap, as well as setting capabs with fcaps.eclass in my= ebuild. All in all I learned a lot when working with this. > > > > Example of how I used it with Clip: > 1) $ qa-vdb clip > dev-qt/qtmultimedia:5 < > # This indicates that qtmultimedia may be a wrong/unneeded RDEPEND, let= =E2=80=99s verify with ehide. > 2) $ ehide qtmultimedia > 3) (from spawned shell) $ clip > CREATING INSTANCE OF MAUI APP > QQmlApplicationEngine failed to load component > qrc:/main.qml:5:1: module =E2=80=9CQtMultimedia=E2=80=9D is not installe= d > This means that QtMultimedia is in fact required! > > > > It also works with multiple atoms, just like you=E2=80=99d expect. Sam ha= d an idea of integrating it into Portage so that you could hide every non-d= ependency of a package, to make sure that you have exactly the dependencies= you need in the ebuild, no more, no less. Think the inverse of emerge =E2= =80=93emptytree, and the =E2=80=9Cuniverse=E2=80=9D being world. > > > Back to the ebuilds themselves: they are mostly finished but I just need = to clean up the commits so it becomes one commit per package. This is proba= bly easiest to do by just copying the ebuilds to some temp dir, git reset = =E2=80=93hard, and then copying back and commiting one by one. But I feel l= ike untangling this with git-rebase and friends is probably really good for= me to further learn using git. > > > The second thing I did was kde-apps-meta testing. Most things just worked= except for these following packages: Postgres, poxml, FreeRDP, and Okular.= Poxml was actually an old error related to a gettext issue me and Sam spen= t a lot of time working on, but it=E2=80=99s still not fixed. (Upstream bug= : https://savannah.gnu.org/bugs/?62659). So that leaves Postgres, FreeRDP a= nd Okular, though I=E2=80=99ve used Okular and it works just fine. So I wil= l start working on Postgres and FreeRDP next week, and do Okular last. I=E2= =80=99ll also mention here that the Konsole test from two weeks ago is stil= l not fixed https://bugs.gentoo.org/862594. > > > When I first wanted to emerge kde-apps-meta with FEATURES=3Dtest I wanted= a way to emerge deps of deps. Much like =E2=80=93emptytree but with a spec= ified max depth. This is because kde-apps-meta depends on other meta packag= es like kde-apps/kdeaccessibility-meta, kde-apps/kdeadmin-meta, and kde-app= s/kdeedu-meta. I did some initial work on a tool I called rdeps which is us= ed like =E2=80=9Cemerge $(rdeps kde-apps-meta 2)=E2=80=9D. It kind of worke= d but it had some bugs. As I just wanted to emerge my packages and not spen= d too much time I instead made a much simpler program used like this: =E2= =80=99emerge $(rdeps =E2=80=9C$(rdeps kde-apps-meta)=E2=80=9D)=E2=80=99 whi= ch worked! > > > Looking back at this week I feel like I=E2=80=99ve learnt a whole lot, es= pecially regarding ebuild development and how to properly check for *DEPEND= S. To summarize I=E2=80=99ve ran test suites for kde-apps-meta, wrote two e= build development applications, and almost finished writing the mauikit ebu= ilds. Personally I feel like I=E2=80=99ve done relatively little actual wor= k but a whole lot of learning compared to previous weeks. > > > Today I will continue playing a bit with my PinePhone so I can get an ini= tial sketch of my PPP Gentoo musl guide as requested. I got some help from = megi debugging a levinboot buildtime issue, so I=E2=80=99ll go for that ins= tead of Tow-boot since it has a very annoying charging bug fixed. Megi is a= developer who does the majority of the low level PinePhone Pro work. > > > Next week I=E2=80=99ll untangle the mauikit ebuild commits, fix Postgres,= poxml, FreeRDP, and Okular tests, and also work on getting accountsservice= rewritten. In my proposal schedule next week is actually about getting tes= t suites to run for kde-apps-meta, so I am right on schedule! >