From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0.migadu.com ([2001:41d0:1004:224b::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms19.migadu.com with LMTPS id uGoiEOtPKGeZvwAAqHPOHw:P1 (envelope-from ) for ; Mon, 04 Nov 2024 05:39:07 +0100 Received: from mta0.migadu.com ([2001:41d0:1004:224b::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0.migadu.com with LMTPS id uGoiEOtPKGeZvwAAqHPOHw (envelope-from ) for ; Mon, 04 Nov 2024 05:39:07 +0100 X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kyleam.com; s=key1; t=1730695147; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type; bh=ufAMD+SaUaLLDBB1X/n0LgM/xZywZlrK8dqx/d6e+ow=; b=0Mfjnsu0+G55n2Ik4B4MOAJqT907zbLcqsala1FXlVv5KwRyRB6ffzWvsebkM7AOBkHaMg fe2MUTkX1l+ExlA6ZphbhX5atDCvBlKLmICSRedcpFYkNHFUFaw+RjI3pp0sz49wVgUiLa CY8svqsP+2ohtyqKSnI5Q7nO8LRakpIrIFOVtbh51sHc/q4OYdw5CeXUfDEdVAabgqAUHo vZHWUvS9cmaCWM0Y7vKYRCGARqrOhuO+MUYeLaaG0IqjJbBCuRiB8fLoq9nw1dCadq8Vhj s1qbfexaTgxG1uKSg9Tk2Nr1r9l38n4MZP5jbGTLDVG6sKkEeeQ6Z28KvT4NrA== From: Kyle Meyer To: misc@inbox.kyleam.com Subject: [static-annex] Statically linked git-annex builds Date: Sun, 03 Nov 2024 23:39:03 -0500 Message-ID: <87o72v4nq0.fsf@kyleam.com> MIME-Version: 1.0 Content-Type: text/plain X-Migadu-Flow: FLOW_OUT X-TUID: xBhdqOJ0goJ5 On some machines, I want to install git-annex under a user's home directory without touching the wider system. These machines don't have the tools for building git-annex from source (and, even if they did, I'd rather not wait for the build). Two possible solutions would be to 1) install it from conda-forge https://git-annex.branchable.com/install/conda/ 2) download the git-annex's standalone build https://git-annex.branchable.com/install/Linux_standalone/ https://joeyh.name/blog/entry/completely_linux_distribution-independent_packaging/ Both of these are nice options to have. I'm unlikely to jump at *1* given I'm not a Conda user. That leaves *2*. The standalone build has been around for a long time and has surely seen a good amount of use (including via NeuroDebian's backports). If I recall correctly, there's some noticeable overhead. And, for my use case, I don't need external programs like Git and Rsync to be bundled. But it would very likely do. Still, I wondered how much effort it'd be to create a statically linked build. Searching around, I found that Pandoc uses the benz0li/ghc-musl image for this purpose. https://github.com/jgm/pandoc/blob/4c66bf27903ca50fccfb0b025a9d5cde217a6cec/Makefile#L164-L176 https://gitlab.com/benz0li/ghc-musl With that very helpful starting point, I've put together the scripts at to create statically linked git-annex builds. (For my current use cases, I'm concerned with only x86_64 GNU/Linux machines, and I've disabled the webapp and assistant features, as I don't use them.) Everything seems to be working as expected. For now, I'll continue to use the latest version of these builds as my primary git-annex binary to hopefully catch any issues. I've uploaded the three most recent git-annex releases to .