Skip to content

Commit a02f062

Browse files
committed
fix: glibc build for arm64
Also use ubuntu mirrors for sources which doesn't have `sha512sum` in the URL. `libtirpc` needed to be downgraded to 1.3.6 since ubuntu mirror doesn't have the latest yet. Glibc is switched to 2.41 since the shasums were not updated and was actually using 2.41. Signed-off-by: Noel Georgi <[email protected]>
1 parent f341fab commit a02f062

File tree

9 files changed

+145
-20
lines changed

9 files changed

+145
-20
lines changed

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
22
#
3-
# Generated on 2025-11-06T12:58:59Z by kres 4ba9b0c.
3+
# Generated on 2025-11-07T09:07:26Z by kres 911d166.
44

55
# common variables
66

@@ -25,7 +25,7 @@ SOURCE_DATE_EPOCH := $(shell git log $(INITIAL_COMMIT_SHA) --pretty=%ct)
2525

2626
# sync bldr image with pkgfile
2727

28-
BLDR_RELEASE := v0.5.4
28+
BLDR_RELEASE := v0.5.5
2929
BLDR_IMAGE := ghcr.io/siderolabs/bldr:$(BLDR_RELEASE)
3030
BLDR := docker run --rm --user $(shell id -u):$(shell id -g) --volume $(PWD):/src --entrypoint=/bldr $(BLDR_IMAGE) --root=/src
3131

Pkgfile

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# syntax = ghcr.io/siderolabs/bldr:v0.5.4
1+
# syntax = ghcr.io/siderolabs/bldr:v0.5.5
22

33
format: v1alpha2
44

@@ -16,10 +16,10 @@ vars:
1616
TENSTORRENT_VERSION: 2.5.0 # update this when updating PKGS_VERSION in Makefile
1717
HAILORT_VERSION: 4.23.0 # update this when updating PKGS_VERSION in Makefile
1818

19-
# renovate: datasource=git-tags extractVersion=^libtiprc-(?<version>.*)$ depName=git://linux-nfs.org/~steved/libtirpc
20-
LIBTIRPC_VERSION: 1-3-7
21-
LIBTIRPC_SHA256: b47d3ac19d3549e54a05d0019a6c400674da716123858cfdb6d3bdd70a66c702
22-
LIBTIRPC_SHA512: 50c0153bc72a3f9578eb7a9dc123ea531df83c455f19b03d2bc59563d8453fcd278a025eef05865d1218b2c9358a9152ee069ce0e4d11dfea4ca0a8a24221fad
19+
# renovate: datasource=git-tags extractVersion=^libtiprc-(?<version>.*)$ depName=git://git.linux-nfs.org/projects/steved/libtirpc.git
20+
LIBTIRPC_VERSION: 1-3-6
21+
LIBTIRPC_SHA256: f9eeeb368d733e11f18ddb750a41bdf9089ba5f9476404da848c2cd295624f0d
22+
LIBTIRPC_SHA512: 1e20007d030df9cde23ae3ab99cabb7977c473f9f08a37154e9f43a15c804826651ada402d2075989df65bfdc55fd7a9bda959120da890df9ccf8111cca5ecc6
2323
# renovate: datasource=github-tags extractVersion=^v(?<version>.*)$ depName=madler/zlib
2424
ZLIB_VERSION: 1.3.1
2525
ZLIB_SHA256: 9a93b2b7dfdac77ceba5a558a580e74667dd6fede4585b91eefb60f03b72df23

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ tiers based on support level:
122122
| Name | Tier | Image | Version | Description |
123123
| ---- | ---- | ----- | ------- | ----------- |
124124
| [binfmt-misc](misc/binfmt-misc) | :yellow_square: extra | [ghcr.io/siderolabs/binfmt-misc](https://github.com/siderolabs/extensions/pkgs/container/binfmt-misc) | `VERSION` | This system extension provides kernel module driver for binfmt-misc built against a specific Talos version. |
125-
| [glibc](misc/glibc) | :green_square: core | [ghcr.io/siderolabs/glibc](https://github.com/siderolabs/extensions/pkgs/container/glibc) | `2.42` | This system extension provides glibc. |
125+
| [glibc](misc/glibc) | :green_square: core | [ghcr.io/siderolabs/glibc](https://github.com/siderolabs/extensions/pkgs/container/glibc) | `2.41` | This system extension provides glibc. |
126126

127127
### Network
128128

internal/base/pkg.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ variant: scratch
33
shell: /bin/bash
44
dependencies:
55
- image: "{{ .BUILD_ARG_TOOLS_PREFIX }}/tools:{{ .BUILD_ARG_TOOLS }}"
6-
- image: ghcr.io/siderolabs/extensions-validator:fe85801
6+
- image: ghcr.io/siderolabs/extensions-validator:52d35f8
77
finalize:
88
- from: /
99
to: /

misc/glibc/pkg.yaml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,10 @@ steps:
1414
- env:
1515
CC: gcc-14
1616
CXX: g++-14
17+
LD_LINUX_X86_64: ld-linux-x86-64.so.2
18+
LD_LINUX_AARCH64: ld-linux-aarch64.so.1
1719
sources:
18-
- url: https://src.fedoraproject.org/lookaside/pkgs/glibc/glibc-{{ .GLIBC_VERSION }}-8-g1e0e33e1b1.tar.xz/sha512/449e3d4f6b59bfde2175c5d1be71447b084e0b12b176518b65fd9b0ac8430766b25416a173fe3efd47462bc1719d59a051e7eed9544e0fba9165dd86f69ee0b9/glibc-{{ .GLIBC_VERSION }}-8-g1e0e33e1b1.tar.xz
20+
- url: https://archive.ubuntu.com/ubuntu/pool/main/g/glibc/glibc_{{ .GLIBC_VERSION }}.orig.tar.xz
1921
destination: glibc.tar.xz
2022
sha256: {{ .GLIBC_SHA256 }}
2123
sha512: {{ .GLIBC_SHA512 }}
@@ -54,8 +56,12 @@ steps:
5456
5557
cp /pkg/ld.so.conf /rootfs/usr/local/glibc/etc/ld.so.conf
5658
59+
ARCH_UPPER="${ARCH^^}"
60+
LD_LINUX_PATH="LD_LINUX_${ARCH_UPPER}"
61+
export LD_LINUX_PATH="${!LD_LINUX_PATH}"
62+
5763
mkdir -p /rootfs/usr/lib /rootfs/usr/bin
58-
ln -s /usr/local/glibc/usr/lib/ld-linux-x86-64.so.2 /rootfs/usr/lib/ld-linux-x86-64.so.2
64+
ln -s /usr/local/glibc/usr/lib/${LD_LINUX_PATH} /rootfs/usr/lib/${LD_LINUX_PATH}
5965
ln -s /usr/local/glibc/usr/sbin/ldconfig /rootfs/usr/bin/ldconfig
6066
6167
# cleanup

misc/vars.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# renovate: datasource=git-tags extractVersion=^glibc-(?<version>.*)$ depName=https://sourceware.org/git/glibc.git
2-
GLIBC_VERSION: 2.42
3-
GLIBC_SHA256: af71d83f774c92c5ed11cb7904332041cf7cca15ff2e7b3d6c3e708e688fe400
4-
GLIBC_SHA512: 449e3d4f6b59bfde2175c5d1be71447b084e0b12b176518b65fd9b0ac8430766b25416a173fe3efd47462bc1719d59a051e7eed9544e0fba9165dd86f69ee0b9
2+
GLIBC_VERSION: 2.41
3+
GLIBC_SHA256: a5a26b22f545d6b7d7b3dd828e11e428f24f4fac43c934fb071b6a7d0828e901
4+
GLIBC_SHA512: 894a3e5a796bc13df30c26a5bfbe4d60b5dbdaac54e7763432235124b547070c7dda88c50584536870cab79183d8cad73a3ac6ed09bfe54fa8482aad07253169

nvidia-gpu/nvidia-container-toolkit/nvidia-container-cli/libtirpc/pkg.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ steps:
1414
CC: gcc-14
1515
CXX: g++-14
1616
sources:
17-
- url: https://src.fedoraproject.org/lookaside/extras/libtirpc/libtirpc-{{ .LIBTIRPC_VERSION | replace "-" "." }}.tar.bz2/sha512/{{ .LIBTIRPC_SHA512 }}/libtirpc-{{ .LIBTIRPC_VERSION | replace "-" "." }}.tar.bz2
18-
destination: libtirpc.tar.bz2
17+
- url: https://archive.ubuntu.com/ubuntu/pool/main/libt/libtirpc/libtirpc_{{ .LIBTIRPC_VERSION | replace "-" "." }}+ds.orig.tar.gz
18+
destination: libtirpc.tar.gz
1919
sha256: {{ .LIBTIRPC_SHA256 }}
2020
sha512: {{ .LIBTIRPC_SHA512 }}
2121
prepare:
2222
- |
23-
tar -xf libtirpc.tar.bz2 --strip-components=1
23+
tar -xf libtirpc.tar.gz --strip-components=1
2424
2525
./configure \
2626
--prefix=/usr/local/glibc \
Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
Patch-Source: https://src.fedoraproject.org/rpms/libtirpc/blob/77cf27589f01c5277e5cdbaf9d03b9647359b41a/f/libtirpc.1.3.7-rc3.patch
2+
---
3+
commit 240ee6c774729c9c24812aa8912f1fcf8996b162
4+
Author: Rudi Heitbaum <[email protected]>
5+
Date: Thu Jan 2 08:46:24 2025 -0500
6+
7+
update signal and key_call declarations to allow compile with gcc-15
8+
9+
Follow up patch addressing the following declarations:
10+
sed -n 75,77p libtirpc-1.3.6/src/key_call.c
11+
cryptkeyres *(*__key_encryptsession_pk_LOCAL)() = 0;
12+
cryptkeyres *(*__key_decryptsession_pk_LOCAL)() = 0;
13+
des_block *(*__key_gendes_LOCAL)() = 0;
14+
15+
Signed-off-by: Rudi Heitbaum <[email protected]>
16+
Signed-off-by: Steve Dickson <[email protected]>
17+
18+
diff --git a/src/auth_time.c b/src/auth_time.c
19+
index 936dd76..c21b1df 100644
20+
--- a/src/auth_time.c
21+
+++ b/src/auth_time.c
22+
@@ -248,7 +248,7 @@ __rpc_get_time_offset(td, srv, thost, uaddr, netid)
23+
char ut[64], ipuaddr[64];
24+
endpoint teps[32];
25+
nis_server tsrv;
26+
- void (*oldsig)() = NULL; /* old alarm handler */
27+
+ void (*oldsig)(int) = NULL; /* old alarm handler */
28+
struct sockaddr_in sin;
29+
int s = RPC_ANYSOCK;
30+
socklen_t len;
31+
@@ -417,7 +417,7 @@ __rpc_get_time_offset(td, srv, thost, uaddr, netid)
32+
} else {
33+
int res;
34+
35+
- oldsig = (void (*)())signal(SIGALRM, alarm_hndler);
36+
+ oldsig = (void (*)(int))signal(SIGALRM, alarm_hndler);
37+
saw_alarm = 0; /* global tracking the alarm */
38+
alarm(20); /* only wait 20 seconds */
39+
res = connect(s, (struct sockaddr *)&sin, sizeof(sin));
40+
diff --git a/src/key_call.c b/src/key_call.c
41+
index 9f4b1d2..43f990e 100644
42+
--- a/src/key_call.c
43+
+++ b/src/key_call.c
44+
@@ -72,9 +72,9 @@
45+
* implementations of these functions, and to call those in key_call().
46+
*/
47+
48+
-cryptkeyres *(*__key_encryptsession_pk_LOCAL)() = 0;
49+
-cryptkeyres *(*__key_decryptsession_pk_LOCAL)() = 0;
50+
-des_block *(*__key_gendes_LOCAL)() = 0;
51+
+cryptkeyres *(*__key_encryptsession_pk_LOCAL)(uid_t, char *) = 0;
52+
+cryptkeyres *(*__key_decryptsession_pk_LOCAL)(uid_t, char *) = 0;
53+
+des_block *(*__key_gendes_LOCAL)(uid_t, char *) = 0;
54+
55+
static int key_call( u_long, xdrproc_t, void *, xdrproc_t, void *);
56+
57+
58+
commit d473f1e1f6ba80bfaee4daa058da159305167323
59+
Author: Rudi Heitbaum <[email protected]>
60+
Date: Thu Dec 12 04:16:02 2024 -0500
61+
62+
Update declarations to allow compile with gcc-15
63+
64+
This patch fixes some of the compile errors with gcc 15-20241117.
65+
66+
In addition the follow declarations need to be fixed:
67+
sed -n 75,77p libtirpc-1.3.6/src/key_call.c
68+
cryptkeyres *(*__key_encryptsession_pk_LOCAL)() = 0;
69+
cryptkeyres *(*__key_decryptsession_pk_LOCAL)() = 0;
70+
des_block *(*__key_gendes_LOCAL)() = 0;
71+
72+
Signed-off-by: Rudi Heitbaum <[email protected]>
73+
Signed-off-by: Steve Dickson <[email protected]>
74+
75+
diff --git a/src/auth_none.c b/src/auth_none.c
76+
index 0b0bbd1..aca6e71 100644
77+
--- a/src/auth_none.c
78+
+++ b/src/auth_none.c
79+
@@ -62,7 +62,7 @@ static bool_t authnone_validate (AUTH *, struct opaque_auth *);
80+
static bool_t authnone_refresh (AUTH *, void *);
81+
static void authnone_destroy (AUTH *);
82+
83+
-extern bool_t xdr_opaque_auth();
84+
+extern bool_t xdr_opaque_auth(XDR *, struct opaque_auth *);
85+
86+
static struct auth_ops *authnone_ops();
87+
88+
diff --git a/src/getpublickey.c b/src/getpublickey.c
89+
index be37a24..4e96c7c 100644
90+
--- a/src/getpublickey.c
91+
+++ b/src/getpublickey.c
92+
@@ -52,7 +52,7 @@
93+
/*
94+
* Hack to let ypserv/rpc.nisd use AUTH_DES.
95+
*/
96+
-int (*__getpublickey_LOCAL)() = 0;
97+
+int (*__getpublickey_LOCAL)(const char *, char *) = 0;
98+
99+
/*
100+
* Get somebody's public key
101+
diff --git a/src/svc_auth_none.c b/src/svc_auth_none.c
102+
index 887e809..5ca98e9 100644
103+
--- a/src/svc_auth_none.c
104+
+++ b/src/svc_auth_none.c
105+
@@ -37,8 +37,8 @@
106+
107+
#include <rpc/rpc.h>
108+
109+
-static bool_t svcauth_none_destroy();
110+
-static bool_t svcauth_none_wrap();
111+
+static bool_t svcauth_none_destroy(SVCAUTH *);
112+
+static bool_t svcauth_none_wrap(SVCAUTH *, XDR *, bool_t (*)(XDR *, ...), char *);
113+
114+
struct svc_auth_ops svc_auth_none_ops = {
115+
svcauth_none_wrap,
116+
117+

storage/zfs/zfs-tools/libtirpc/pkg.yaml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,15 @@ dependencies:
66
- stage: base
77
steps:
88
- sources:
9-
- url: https://src.fedoraproject.org/lookaside/extras/libtirpc/libtirpc-{{ .LIBTIRPC_VERSION | replace "-" "." }}.tar.bz2/sha512/{{ .LIBTIRPC_SHA512 }}/libtirpc-{{ .LIBTIRPC_VERSION | replace "-" "." }}.tar.bz2
10-
destination: libtirpc.tar.bz2
9+
- url: https://archive.ubuntu.com/ubuntu/pool/main/libt/libtirpc/libtirpc_{{ .LIBTIRPC_VERSION | replace "-" "." }}+ds.orig.tar.gz
10+
destination: libtirpc.tar.gz
1111
sha256: {{ .LIBTIRPC_SHA256 }}
1212
sha512: {{ .LIBTIRPC_SHA512 }}
1313
prepare:
1414
- |
15-
tar -xf libtirpc.tar.bz2 --strip-components=1
15+
tar -xf libtirpc.tar.gz --strip-components=1
16+
17+
patch -p1 < /pkg/patches/gcc15.patch
1618
1719
mkdir -p /usr/local/include/sys
1820
cp /pkg/patches/sys-queue.h /usr/local/include/sys/queue.h

0 commit comments

Comments
 (0)