Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion packages/ncdu2/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,13 @@ TERMUX_PKG_LICENSE="MIT"
TERMUX_PKG_LICENSE_FILE="LICENSES/MIT.txt"
TERMUX_PKG_MAINTAINER="Joshua Kahn <tom@termux.dev>"
TERMUX_PKG_VERSION="2.9.2"
TERMUX_PKG_REVISION=1
TERMUX_PKG_SRCURL=https://dev.yorhel.nl/download/ncdu-${TERMUX_PKG_VERSION}.tar.gz
TERMUX_PKG_SHA256=e91135281cb66569f2ca4c0bac277246991e7e52524c0ca8cba3de5c8e81cec9
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_AUTO_UPDATE=true
TERMUX_PKG_UPDATE_VERSION_REGEXP='2\.\d+(\.\d+)?'
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_ZIG_VERSION="0.15.2"

termux_pkg_auto_update() {
local latest_release
Expand Down
5 changes: 2 additions & 3 deletions packages/zig/0.14.0/zig-lib-std-os-linux.zig.patch
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
diff -uNr zig-bootstrap-0.14.0.orig/zig/lib/std/os/linux.zig zig-bootstrap-0.14.0/zig/lib/std/os/linux.zig
--- zig-bootstrap-0.14.0.orig/zig/lib/std/os/linux.zig 2025-03-06 04:47:21.734564519 +0100
+++ zig-bootstrap-0.14.0/zig/lib/std/os/linux.zig 2025-03-06 04:55:49.549917625 +0100
--- a/zig/lib/std/os/linux.zig
+++ b/zig/lib/std/os/linux.zig
@@ -1120,7 +1120,7 @@
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
--- a/zig/lib/libc/musl/src/network/resolvconf.c
+++ b/zig/lib/libc/musl/src/network/resolvconf.c
@@ -19,6 +19,7 @@
if (search) *search = 0;

f = __fopen_rb_ca("/etc/resolv.conf", &_f, _buf, sizeof _buf);
+ if (!f) f = __fopen_rb_ca("@TERMUX_PREFIX@/etc/resolv.conf", &_f, _buf, sizeof _buf);
if (!f) switch (errno) {
case ENOENT:
case ENOTDIR:
--- a/zig/lib/std/Io/net/HostName.zig
+++ b/zig/lib/std/Io/net/HostName.zig
@@ -402,7 +402,8 @@
.attempts = 2,
};

- const file = Io.Dir.openFileAbsolute(io, "/etc/resolv.conf", .{}) catch |err| switch (err) {
+ const resolvconf = Io.Dir.openFileAbsolute(io, "/etc/resolv.conf", .{}) catch Io.Dir.openFileAbsolute(io, "@TERMUX_PREFIX@/etc/resolv.conf", .{});
+ const file = resolvconf catch |err| switch (err) {
error.FileNotFound,
error.NotDir,
error.AccessDenied,
249 changes: 249 additions & 0 deletions packages/zig/0.16.0/zig-lib-libc-musl-src.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,249 @@
--- a/zig/lib/libc/musl/src/ipc/semtimedop.c
+++ b/zig/lib/libc/musl/src/ipc/semtimedop.c
@@ -16,7 +16,7 @@

int semtimedop(int id, struct sembuf *buf, size_t n, const struct timespec *ts)
{
-#ifdef SYS_semtimedop_time64
+#if defined(SYS_semtimedop_time64) && !defined(__ILP32__)
time_t s = ts ? ts->tv_sec : 0;
long ns = ts ? ts->tv_nsec : 0;
int r = -ENOSYS;
--- a/zig/lib/libc/musl/src/linux/clock_adjtime.c
+++ b/zig/lib/libc/musl/src/linux/clock_adjtime.c
@@ -37,7 +37,7 @@
int clock_adjtime (clockid_t clock_id, struct timex *utx)
{
int r = -ENOSYS;
-#ifdef SYS_clock_adjtime64
+#if defined(SYS_clock_adjtime64) && !defined(__ILP32__)
struct ktimex64 ktx = {
.modes = utx->modes,
.offset = utx->offset,
--- a/zig/lib/libc/musl/src/linux/timerfd.c
+++ b/zig/lib/libc/musl/src/linux/timerfd.c
@@ -11,7 +11,7 @@

int timerfd_settime(int fd, int flags, const struct itimerspec *new, struct itimerspec *old)
{
-#ifdef SYS_timerfd_settime64
+#if defined(SYS_timerfd_settime64) && !defined(__ILP32__)
time_t is = new->it_interval.tv_sec, vs = new->it_value.tv_sec;
long ins = new->it_interval.tv_nsec, vns = new->it_value.tv_nsec;
int r = -ENOSYS;
@@ -39,7 +39,7 @@

int timerfd_gettime(int fd, struct itimerspec *cur)
{
-#ifdef SYS_timerfd_gettime64
+#if defined(SYS_timerfd_gettime64) && !defined(__ILP32__)
int r = -ENOSYS;
if (sizeof(time_t) > 4)
r = __syscall(SYS_timerfd_gettime64, fd, cur);
--- a/zig/lib/libc/musl/src/linux/wait4.c
+++ b/zig/lib/libc/musl/src/linux/wait4.c
@@ -8,7 +8,7 @@
pid_t wait4(pid_t pid, int *status, int options, struct rusage *ru)
{
int r;
-#ifdef SYS_wait4_time64
+#if defined(SYS_wait4_time64) && !defined(__ILP32__)
if (ru) {
long long kru64[18];
r = __syscall(SYS_wait4_time64, pid, status, options, kru64);
--- a/zig/lib/libc/musl/src/misc/getrusage.c
+++ b/zig/lib/libc/musl/src/misc/getrusage.c
@@ -6,7 +6,7 @@
int getrusage(int who, struct rusage *ru)
{
int r;
-#ifdef SYS_getrusage_time64
+#if defined(SYS_getrusage_time64) && !defined(__ILP32__)
long long kru64[18];
r = __syscall(SYS_getrusage_time64, who, kru64);
if (!r) {
--- a/zig/lib/libc/musl/src/mq/mq_timedsend.c
+++ b/zig/lib/libc/musl/src/mq/mq_timedsend.c
@@ -7,7 +7,7 @@

int mq_timedsend(mqd_t mqd, const char *msg, size_t len, unsigned prio, const struct timespec *at)
{
-#ifdef SYS_mq_timedsend_time64
+#if defined(SYS_mq_timedsend_time64) && !defined(__ILP32__)
time_t s = at ? at->tv_sec : 0;
long ns = at ? at->tv_nsec : 0;
long r = -ENOSYS;
--- a/zig/lib/libc/musl/src/network/recvmmsg.c
+++ b/zig/lib/libc/musl/src/network/recvmmsg.c
@@ -18,7 +18,7 @@
for (i = vlen; i; i--, mh++)
mh->msg_hdr.__pad1 = mh->msg_hdr.__pad2 = 0;
#endif
-#ifdef SYS_recvmmsg_time64
+#if defined(SYS_recvmmsg_time64) && !defined(__ILP32__)
time_t s = timeout ? timeout->tv_sec : 0;
long ns = timeout ? timeout->tv_nsec : 0;
int r = __syscall_cp(SYS_recvmmsg_time64, fd, msgvec, vlen, flags,
--- a/zig/lib/libc/musl/src/select/ppoll.c
+++ b/zig/lib/libc/musl/src/select/ppoll.c
@@ -11,7 +11,7 @@
{
time_t s = to ? to->tv_sec : 0;
long ns = to ? to->tv_nsec : 0;
-#ifdef SYS_ppoll_time64
+#if defined(SYS_ppoll_time64) && !defined(__ILP32__)
int r = -ENOSYS;
if (SYS_ppoll == SYS_ppoll_time64 || !IS32BIT(s))
r = __syscall_cp(SYS_ppoll_time64, fds, n,
--- a/zig/lib/libc/musl/src/select/pselect.c
+++ b/zig/lib/libc/musl/src/select/pselect.c
@@ -12,7 +12,7 @@
syscall_arg_t data[2] = { (uintptr_t)mask, _NSIG/8 };
time_t s = ts ? ts->tv_sec : 0;
long ns = ts ? ts->tv_nsec : 0;
-#ifdef SYS_pselect6_time64
+#if defined(SYS_pselect6_time64) && !defined(__ILP32__)
int r = -ENOSYS;
if (SYS_pselect6 == SYS_pselect6_time64 || !IS32BIT(s))
r = __syscall_cp(SYS_pselect6_time64, n, rfds, wfds, efds,
--- a/zig/lib/libc/musl/src/select/select.c
+++ b/zig/lib/libc/musl/src/select/select.c
@@ -25,7 +25,7 @@
ns = us*1000;
}

-#ifdef SYS_pselect6_time64
+#if defined(SYS_pselect6_time64) && !defined(__ILP32__)
int r = -ENOSYS;
if (SYS_pselect6 == SYS_pselect6_time64 || !IS32BIT(s))
r = __syscall_cp(SYS_pselect6_time64, n, rfds, wfds, efds,
--- a/zig/lib/libc/musl/src/signal/sigtimedwait.c
+++ b/zig/lib/libc/musl/src/signal/sigtimedwait.c
@@ -7,7 +7,7 @@

static int do_sigtimedwait(const sigset_t *restrict mask, siginfo_t *restrict si, const struct timespec *restrict ts)
{
-#ifdef SYS_rt_sigtimedwait_time64
+#if defined(SYS_rt_sigtimedwait_time64) && !defined(__ILP32__)
time_t s = ts ? ts->tv_sec : 0;
long ns = ts ? ts->tv_nsec : 0;
int r = -ENOSYS;
--- a/zig/lib/libc/musl/src/stat/fstatat.c
+++ b/zig/lib/libc/musl/src/stat/fstatat.c
@@ -7,6 +7,9 @@
#include <sys/sysmacros.h>
#include "syscall.h"

+#undef SYS_lstat
+#undef SYS_stat
+
struct statx {
uint32_t stx_mask;
uint32_t stx_blksize;
@@ -140,14 +143,18 @@
{
int ret;
#ifdef SYS_fstatat
+#if 0
if (sizeof((struct kstat){0}.st_atime_sec) < sizeof(time_t)) {
ret = fstatat_statx(fd, path, st, flag);
if (ret!=-ENOSYS) return __syscall_ret(ret);
}
+#endif
ret = fstatat_kstat(fd, path, st, flag);
#else
+#if 0
ret = fstatat_statx(fd, path, st, flag);
#endif
+#endif
return __syscall_ret(ret);
}

--- a/zig/lib/libc/musl/src/stat/utimensat.c
+++ b/zig/lib/libc/musl/src/stat/utimensat.c
@@ -12,7 +12,7 @@
int r;
if (times && times[0].tv_nsec==UTIME_NOW && times[1].tv_nsec==UTIME_NOW)
times = 0;
-#ifdef SYS_utimensat_time64
+#if defined(SYS_utimensat_time64) && !defined(__ILP32__)
r = -ENOSYS;
time_t s0=0, s1=0;
long ns0=0, ns1=0;
--- a/zig/lib/libc/musl/src/thread/__timedwait.c
+++ b/zig/lib/libc/musl/src/thread/__timedwait.c
@@ -11,7 +11,7 @@
static int __futex4_cp(volatile void *addr, int op, int val, const struct timespec *to)
{
int r;
-#ifdef SYS_futex_time64
+#if defined(SYS_futex_time64) && !defined(__ILP32__)
time_t s = to ? to->tv_sec : 0;
long ns = to ? to->tv_nsec : 0;
r = -ENOSYS;
--- a/zig/lib/libc/musl/src/thread/pthread_mutex_timedlock.c
+++ b/zig/lib/libc/musl/src/thread/pthread_mutex_timedlock.c
@@ -5,7 +5,7 @@

static int __futex4(volatile void *addr, int op, int val, const struct timespec *to)
{
-#ifdef SYS_futex_time64
+#if defined(SYS_futex_time64) && !defined(__ILP32__)
time_t s = to ? to->tv_sec : 0;
long ns = to ? to->tv_nsec : 0;
int r = -ENOSYS;
--- a/zig/lib/libc/musl/src/time/clock_gettime.c
+++ b/zig/lib/libc/musl/src/time/clock_gettime.c
@@ -75,7 +75,7 @@
}
#endif

-#ifdef SYS_clock_gettime64
+#if defined(SYS_clock_gettime64) && !defined(__ILP32__)
r = -ENOSYS;
if (sizeof(time_t) > 4)
r = __syscall(SYS_clock_gettime64, clk, ts);
--- a/zig/lib/libc/musl/src/time/clock_nanosleep.c
+++ b/zig/lib/libc/musl/src/time/clock_nanosleep.c
@@ -8,7 +8,7 @@
int __clock_nanosleep(clockid_t clk, int flags, const struct timespec *req, struct timespec *rem)
{
if (clk == CLOCK_THREAD_CPUTIME_ID) return EINVAL;
-#ifdef SYS_clock_nanosleep_time64
+#if defined(SYS_clock_nanosleep_time64) && !defined(__ILP32__)
time_t s = req->tv_sec;
long ns = req->tv_nsec;
int r = -ENOSYS;
--- a/zig/lib/libc/musl/src/time/clock_settime.c
+++ b/zig/lib/libc/musl/src/time/clock_settime.c
@@ -6,7 +6,7 @@

int clock_settime(clockid_t clk, const struct timespec *ts)
{
-#ifdef SYS_clock_settime64
+#if defined(SYS_clock_settime64) && !defined(__ILP32__)
time_t s = ts->tv_sec;
long ns = ts->tv_nsec;
int r = -ENOSYS;
--- a/zig/lib/libc/musl/src/time/timer_gettime.c
+++ b/zig/lib/libc/musl/src/time/timer_gettime.c
@@ -8,7 +8,7 @@
pthread_t td = (void *)((uintptr_t)t << 1);
t = (void *)(uintptr_t)(td->timer_id & INT_MAX);
}
-#ifdef SYS_timer_gettime64
+#if defined(SYS_timer_gettime64) && !defined(__ILP32__)
int r = -ENOSYS;
if (sizeof(time_t) > 4)
r = __syscall(SYS_timer_gettime64, t, val);
--- a/zig/lib/libc/musl/src/time/timer_settime.c
+++ b/zig/lib/libc/musl/src/time/timer_settime.c
@@ -10,7 +10,7 @@
pthread_t td = (void *)((uintptr_t)t << 1);
t = (void *)(uintptr_t)(td->timer_id & INT_MAX);
}
-#ifdef SYS_timer_settime64
+#if defined(SYS_timer_settime64) && !defined(__ILP32__)
time_t is = val->it_interval.tv_sec, vs = val->it_value.tv_sec;
long ins = val->it_interval.tv_nsec, vns = val->it_value.tv_nsec;
int r = -ENOSYS;
20 changes: 20 additions & 0 deletions packages/zig/0.16.0/zig-lib-std-os-linux.zig.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
--- a/zig/lib/std/os/linux.zig
+++ b/zig/lib/std/os/linux.zig
@@ -1392,7 +1392,7 @@
}

pub fn access(path: [*:0]const u8, mode: u32) usize {
- if (@hasField(SYS, "access")) {
+ if (@hasField(SYS, "access") and (comptime builtin.cpu.arch != .x86_64)) {
return syscall2(.access, @intFromPtr(path), mode);
} else {
return faccessat(AT.FDCWD, path, mode, 0);
@@ -1413,7 +1413,7 @@
pub fn pipe(fd: *[2]i32) usize {
if (comptime (native_arch.isMIPS() or native_arch.isSPARC())) {
return syscall_pipe(fd);
- } else if (@hasField(SYS, "pipe")) {
+ } else if (@hasField(SYS, "pipe") and (comptime builtin.cpu.arch != .x86_64)) {
return syscall1(.pipe, @intFromPtr(fd));
} else {
return syscall2(.pipe2, @intFromPtr(fd), 0);
Loading
Loading