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 AAF3F158091 for ; Sun, 19 Jun 2022 18:22:02 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id B44DDE0C01; Sun, 19 Jun 2022 18:22:01 +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) server-digest SHA256) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 5214CE0C01 for ; Sun, 19 Jun 2022 18:22:00 +0000 (UTC) Received: from w3.tutanota.de (unknown [192.168.1.164]) by w4.tutanota.de (Postfix) with ESMTP id 362BE106014E for ; Sun, 19 Jun 2022 18:21:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1655662919; 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:MIME-Version:MIME-Version:Message-ID:Message-ID:Reply-To:References:Sender; bh=lZW5piF2uKsW99175SXJAZp15TrE2g6ek+DhN8NZG7o=; b=YAj6LTw/u4DRJE6sKZAzIYos9v74gUJfAiiBudN1QFxFzS0Cx7eXeAZlY7YLqYNF 94wfQsrc8Q+G7SGaCS2M3MdKFymQqLUnJMIIcHfjTSxWu6Rpo8Mo/zpQNqfuM75J4Jl ODC6G29kGLjkl/cBby8l+wFW5gVC+0O/SpGo/ZIlxJjDXzsM1vf6KHSZsjngVRdf6wa tlHHqbp3OAB/HkQ1RYZwXzOPWfaQ5wtbbjOY0QqSJLs9+8fSO4p2C7DLKSQ45xAwygC qWbL6+dlRh/EoaBx5RLxVEl9wo2I1JiUM0A7GwmaEfMcCF0a8ceZZcRkA4acD+55ffE I0nhWJIa0Q== Date: Sun, 19 Jun 2022 20:21:59 +0200 (CEST) From: cat@catcream.org To: Gentoo Soc Message-ID: Subject: [gentoo-soc] Weekly report #1 from Catcream. musl support expansion related to Qt/KDE desktops 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: 7bit X-Archives-Salt: 96c16ff7-a4ce-4464-9650-bd4b7f3fcc22 X-Archives-Hash: 62e484dd7e31a6ac23124de28dbb665e Hello! In the first week of Summer of Code I've spent my time fixing some dependencies of the Plasma desktop, as well as having learnt a lot regarding tooling and workflow. What I've accomplished this week is getting the Plasma desktop running, both with X11 and Wayland. For now it's just a bare bones desktop with Konsole (terminal) and Dolphin (file manager) running. To get most of my glibc applications running under musl I've fixed flatpak-builder so that they can be run inside a Flatpak. I do consider Flatpak a workaround and I'll definitely focus on getting applications ported to run natively on musl later during this project. This far all of my patches has been patching build-time errors because they are easier to spot and fix, and I've been putting off the run-time bugs for later. I started off with patching dev-util/flatpak-builder (https://github.com/gentoo/gentoo/commit/43e759c25a8e2960d3dff78c6696cb257ebaa39). This was done before the project started but I'll still mention it here. The problem with this package was that it used the GNU macro TEMP_FAILURE_RETRY, and error() from error.h. Fixing this was just checking via the preprocessor if they were defined and if not, just define an identical replacement. The second package was sys-fs/lvm2. The fix here was similar to flatpak-builder. It had to do with the standard streams being const in musl and I added that to Sam's musl porting guide. This has not been upstreamed yet. A more interesting patch was sys-apps/accountsservice. It uses fgetspent_r to enumerate the shadow file to find users. The problem here is not that fgetspent_r isn't defined in musl, it's that enumerating shadow to get a list of users is a wrong thing to do in the first place. To properly fix accountsservice a larger rewrite is needed. After a chat in #musl I got suggestions on how to do that and I'll do it in the following weeks. For now a simple conditional define for fgetspent_r was added. I also patched fakeroot-ng (upstream) and freeimage. Freeimage was, similarly to accountsservice, a package where musl found badly written code (relying on NULL implicitly converting to integer 0). Konsole also broke for me but there was already a patch supplied in master. I got that backported for 22.04 by asking upstream because 22.04.3 is comming up. Things that I spotted from my first week that I'll continue working on are lvm2 (_allocate_memory needs rewrite, removing is fine for now), Baloo (runtime bug), librsvg (weird cargo error, not same as listout:s bug), accountsservice. For me librsvg segfaults when built by an unprivileged user and then installed by root. This error is probably related to ld library path according to Sam. For the "learning part": * I've learnt to submit patches both with pull requests and mailing lists. * With listout getting stuck on librsvg I also learned how to compile Rust programs with debuginfo and how to use gdbserver, rust-gdb and GEF (sam: indeed, it is comfy). * How to format and what info to include in patches, for example GLEP 66. * Using Emacs magit for working with git, ex. squashing commits. I've been working with sam, listout and leio this week. Thanks for all the help, nitpicking, and tips! -- Sent with Tutanota, enjoy secure & ad-free emails.