Oh, my #ccache is filling up:

Cache size (GiB): 40.3 / 100.0 (40.25%)

Note that this is #zstd compressed.

#dev

When compiling #debian source packages in Trixie and using #ccache , the CCACHE_DIR environment variable must be explicitly set. This was not the case in Bookworm.

https://terceiro.xyz/2024/09/08/gotcha-using-ccache-in-debian-package-builds/

gotcha: using ccache in Debian package builds - Antonio Terceiro

Before I upload packages to Debian, I always do a full build from source under sbuild. This ensures that the package can build from source on a clean environment, implying that the set of build dependencies is complete. But when iterati...

So I found out why #Tenacity #Windows runners were failing on 32-bit and 64-bit Windows: because compiler caching was actually still being used! I was not aware that those runner images came with #ccache already installed. Therefore we'll have to disable it manually.

NOW these runners should build. They may still fail their job due to other unknown issues, but we're getting closer to nightly Windows installers again, plus a new Windows in ARM installer! ๐Ÿ˜„

Currently building Valve's #Proton to bisect an issue and it's surprisingly easy.

Just set up #podman and then it's just simple Makefiles. #ccache set up for you too, neat.

You give it a custom name via configure.sh, then make the `install` target, wait for it to compile and it installs the freshly built Proton right into your steam's compatools.d; ready for use.

You need to pass SHELL=/bin/sh if you're on #NixOS because the #Makefile assumes that /bin/bash exists but then it just works. Considering to send a PR to fix that upstream.

I recently discovered gitcache, it's like ccache, but for git clone:

https://github.com/seeraven/gitcache

I periodically need to do a full clean + rebuild of some cmake projects that download and build their dependencies, and gitcache speeds this up A LOT.

#git #buildsystems #ccache #cmake

GitHub - seeraven/gitcache: Local cache for git repositories to speed up working with large repositories and multiple clones.

Local cache for git repositories to speed up working with large repositories and multiple clones. - seeraven/gitcache

GitHub

The warm days are coming and it's time to pimp my laptop's #distcc configuration. I have switched to using a "distcJ" #ccache prefix command, which will mainly run distcc with dynamic options and some ad-hoc ones to keep my laptop responsive.

The local build machines are using a #systemd override for distcc service with:

```
[Service]
Environment="DISTCC_CMDLIST=/etc/distccd.commands"
PassEnvironment=DISTCC_CMDLIST
```
and I sent them a bunch of SDK compilers that I use for work and are now integrated in this whitelist.

But we need to do something about the fact that these commands are run in the exact same path as the remote user's: I don't want distccd to have access to my home directory.

#ccache sure creates a lot of files! I accidentally had #rsync back it up (as part of /var) before a #freebsd OS upgrade.

Update on my #FreeBSD #Linuxulator "userland from source" project: Fixing "interesting" issues ๐Ÿ™„

I meanwhile created a #ports #overlay, for easy testing in different environments, and trying it on my "productive" builder, there were suddenly lots of failures. The "weirdest" one now took me many days to fully understand: For some ports, "stage" seemed to install the files just fine, yet "package" didn't find any files. ๐Ÿคฏ

Turns out installing using #Linux tools created the stagedir below /compat/linux instead. Trying to understand why, the answer was "because it could".

The indirect reason was #ccache, forcing #poudriere to do everything as root by default, and for root, /compat/linux is writable. There are still some other fails, maybe also ccache-related, but at least I just committed a workaround (including a warning) for *this* issue:
https://github.com/Zirias/freebsd-ports-overlay-linuxsrc/commit/e354a4d999e79f40d0f6aee1a40c897613ec7460

linuxsrc.mk: Workaround to fix stage as root ยท Zirias/freebsd-ports-overlay-linuxsrc@e354a4d

When staging as root, avoid accidentally creating files and directories below LINUXBASE by temporarily setting it immutable.

GitHub

@jhx It would be a lot less frustrating if I wouldn't have to sit and wait all the time (e.g. rebuilding my minimal cross-gcc takes around 11 minutes).

I wonder whether #ccache with #poudriere would also work for some custom-built cross-compiler? ๐Ÿค”

New ๐—™๐—ฟ๐—ฒ๐—ฒ๐—•๐—ฆ๐—— ๐—ผ๐—ป ๐—™๐—ฟ๐—ฒ๐—ฒ๐—œ๐—ฃ๐—”/๐—œ๐——๐—  ๐˜„๐—ถ๐˜๐—ต ๐—ฃ๐—ผ๐˜‚๐—ฑ๐—ฟ๐—ถ๐—ฒ๐—ฟ๐—ฒ ๐—ฅ๐—ฒ๐—ฝ๐—ผ (FreeBSD on FreeIPA/IDM with Poudriere Repo) article on vermaden.wordpress.com blog.

https://vermaden.wordpress.com/2023/08/10/freebsd-on-freeipa-idm-with-poudriere-repo/

#verblog #ccache #freebsd #freeipa #idm #nginx #poudriere #repo #repository

FreeBSD on FreeIPA/IDM with Poudriere Repo

I already wrote twice about this topic: Connect FreeBSD to FreeIPA/Red Hat Identity Management Connect FreeBSD 13.2 to FreeIPA/IDM In both earlier attempts I compiled and configured everything by hโ€ฆ

๐šŸ๐šŽ๐š›๐š–๐šŠ๐š๐šŽ๐š—