mrrl

Minimal Reliable Reproducible Linux
git clone https://ccx.te2000.cz/git/mrrl
Log | Files | Refs | Submodules | README

commit 542f6d5c769482ecdd642f83445efa67843548a7
parent 00d42e80c450b1e6d0fde9f2aec19ef476cfba2f
Author: Jan Pobrislo <ccx@te2000.cz>
Date:   Tue, 15 Apr 2025 01:48:51 +0000

Replace individual files with ccx-utils

Diffstat:
M.gitmodules | 3+++
Mcommitlist.sha1 | 2+-
Mfilelist.sha256 | 4----
Dfiles/nosuid.c | 22----------------------
Dfiles/pidns_run.c | 94-------------------------------------------------------------------------------
Dfiles/safelink.c | 118-------------------------------------------------------------------------------
Dfiles/spawn-pty.c | 142-------------------------------------------------------------------------------
Asources/ccx-utils | 1+
Atemplates/pkg/ccx-utils | 56++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mtemplates/pkg/containers.environment | 2+-
Mtemplates/pkg/logincaps | 2+-
Dtemplates/pkg/nosuid | 24------------------------
Dtemplates/pkg/pidns_run | 24------------------------
Dtemplates/pkg/safelink | 24------------------------
Dtemplates/pkg/spawn-pty | 24------------------------
Mtemplates/pkg/userspace.environment | 4+---
Avariants/ccx-x86_64/ccx-utils | 124+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mvariants/ccx-x86_64/containers.environment | 4++--
Mvariants/ccx-x86_64/default.environment | 12+++++-------
Mvariants/ccx-x86_64/logincaps | 2+-
Mvariants/ccx-x86_64/system-config | 4++--
Mvariants/ccx-x86_64/system-config-init | 4++--
Mvariants/ccx-x86_64/system-config-rc | 4++--
Mvariants/ccx-x86_64/userspace.environment | 6++----
Avariants/root-x86_64/ccx-utils | 124+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mvariants/root-x86_64/containers.environment | 4++--
Mvariants/root-x86_64/default.environment | 12+++++-------
Mvariants/root-x86_64/logincaps | 2+-
Mvariants/root-x86_64/system-config | 4++--
Mvariants/root-x86_64/system-config-init | 4++--
Mvariants/root-x86_64/system-config-rc | 4++--
Mvariants/root-x86_64/userspace.environment | 6++----
32 files changed, 344 insertions(+), 522 deletions(-)

diff --git a/.gitmodules b/.gitmodules @@ -104,3 +104,6 @@ [submodule "sources/alpine-keys"] path = sources/alpine-keys url = ./sources/alpine-keys +[submodule "sources/ccx-utils"] + path = sources/ccx-utils + url = ./sources/ccx-utils diff --git a/commitlist.sha1 b/commitlist.sha1 @@ -347,6 +347,7 @@ fbace046603cd400659ba15e17081339db31c7e8 sources/busybox fbb12ddc6a53ad97ff6bcc7ed9b253c09001ad2f sources/busybox fd0e197d9c746faec8c8854fcfd416964440615d sources/busybox ffe18087faa553747d68ce662e0d4e9e7265fc3f sources/busybox +c5eed37c744c786076a1ec13132ade7ef410ed16 sources/ccx-utils c6aef8098d37a1773439117a5674bfc8662ef62b sources/confz 3b0d0d748309e2c5a2057f5374cb43e8a00647aa sources/containers 41d6ee2d6aa33b323eee611013dd4aab6a09fc89 sources/containers @@ -1743,7 +1744,6 @@ fd31b6cd318194906fc8f6cea582e475c67ec207 sources/libcap fe5933431ff6448158754e96e8115c4c79a1c540 sources/libcap fe96617b7142db04c5fbb5f8ce6ca809ad171072 sources/libcap 41039418205b48bda59372fb7c49453852853e8a sources/logincaps -4b30f4744993cb15a7b745ed5d4a9c43266eb148 sources/logincaps 4c3d6d043f7abc2f9593e647f357199badc2668b sources/logincaps 6c9b7c1ca9b96ab366088c4bfc50d1b0e81042eb sources/logincaps 79af0da183f068b99a69107b2764d9c8c3c3eaca sources/logincaps diff --git a/filelist.sha256 b/filelist.sha256 @@ -40,15 +40,11 @@ e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 files/mcm-musl 4213e75809588e3f32ae0fde8fb11df2dfd6e0e013762ff5ee951c3aadb7ffc0 files/mcm-no_rsync-linux-6.5.4.patch 98a8ddd1004034aeff4cc6d18e5df23f55d2869d879735c3b571594a44ba1212 files/nlist.h ff3ddd131d73fee6838b11a6c4773bdb85c5f60fdd4b9ac4120ced021c341417 files/noobjtool.patch -d53f929459d390275a98f948b570697c03b55384fd2536b8a5d72950d194c0c4 files/nosuid.c -c7be49de876eea64554e2e46bcaa7059083bcd6210c5007fd9030e0a6e57a0dd files/pidns_run.c 1e021bddaf5c020ede9107656494715236a894557b99035365fc999605541b2d files/pthbs-banginstall 627d1273036dc35239ba9dd1da45132e3bfce1ab8171dd27dc7952cdf09b698e files/s6_clone3_newpid.patch 2a782825cd870e1fdf77a579c80701c0530bc6d8fa94100cab24bf31f0f457d3 files/s6_clone_newpid.patch c7d3e7ef077d7673567d2f0c34ba2ebd689dab1250286ab482a3064c73ff7d7c files/s6_clone_newpid.patch.old 64488d8562a4e98a3b299f095bb2550cff6a3d743dc2b9c5aaeea03e5b83ec33 files/s6_ftrigr_max.patch -4c8df9ba4d6a4a7e9042ef03e3dbf893636785f42e55391c4e4cefcb632b2467 files/safelink.c -a6779ebb826c5e48d1023f113d5f370fe9f90788a6c5bdd05234efdcb2850ea7 files/spawn-pty.c 07c3c30dab68c905d5608124e729592a30b2c087f24e7b76940f5321786128b1 files/update-links 664430d033e0b491a5ed90cb39cb17cddb57ac0be9f3f2bf014264f3c17d55df files/user-env 68140a82582ede938159630bca0fb13a93b4bf1cb2e85b08943c26242cf8f3a6 files/zpipe.c diff --git a/files/nosuid.c b/files/nosuid.c @@ -1,22 +0,0 @@ -/* ISC license. */ - -#include <sys/prctl.h> -#include <linux/securebits.h> - -#include <skalibs/exec.h> -#include <skalibs/djbunix.h> -#include <skalibs/strerr2.h> - -#define USAGE "nosuid prog..." -#define dieusage() strerr_dieusage(100, USAGE) - -int main (int argc, char const *const *argv) -{ - if (argc < 2) dieusage() ; - - if (prctl(PR_SET_SECUREBITS, SECBIT_NOROOT | SECBIT_NOROOT_LOCKED) < 0) { - strerr_dief1sys(111, "Failed to set securebits via prctl()"); - } - - else xexec(&argv[1]) ; -} diff --git a/files/pidns_run.c b/files/pidns_run.c @@ -1,94 +0,0 @@ -#include <fcntl.h> -#include <errno.h> -#include <sched.h> /* Definition of CLONE_* constants & unshare */ -#include <unistd.h> /* fork(), getpid() */ -#include <sys/wait.h> -#include <sys/select.h> -#include <assert.h> - -#include <skalibs/exec.h> -#include <skalibs/djbunix.h> -#include <skalibs/strerr2.h> - -#define PROG "pidns_run" - -void nonblock_cloexec(int fd) { - int flags = fcntl(fd, F_GETFD); - if(flags == -1) { - strerr_dief1sys(111, "fcntl() getfd"); - } - if(fcntl(fd, F_SETFD, flags | O_NONBLOCK | FD_CLOEXEC) < 0) { - strerr_dief1sys(111, "fcntl() setfd"); - } -} - -int main(const int argc, const char **argv) { - int piperw[2]; - #define parent_rfd piperw[0] - #define parent_wfd piperw[1] - /* returns EINVAL for some reason - if(pipe2(piperw, O_NONBLOCK | FD_CLOEXEC) != 0) { - strerr_dief1sys(111, "pipe2()"); - } - */ - if(pipe(piperw) != 0) { - strerr_dief1sys(111, "pipe()"); - } - nonblock_cloexec(parent_rfd); - nonblock_cloexec(parent_wfd); - if(unshare(CLONE_NEWPID) != 0) { - strerr_dief1sys(111, "unshare()"); - } - int fork1_pid = fork(); - if(fork1_pid < 0) { - strerr_dief1sys(111, "first fork()"); - } - if(fork1_pid == 0) { - /* child */ - assert(getpid() == 1); - if(close(parent_wfd) != 0) { - strerr_dief1sys(111, "close(parent_wfd)"); - } - int fork2_pid = fork(); - if(fork2_pid < 0) { - strerr_dief1sys(111, "second fork()"); - } - if(fork2_pid == 0) { - /* child */ - exec(&argv[1]); - } else { - /* parent */ - fd_set rfds; - struct timeval tv = {1, 0}; - int retval, wstatus; - pid_t pid; - FD_ZERO(&rfds); - FD_SET(parent_rfd, &rfds); - while(1) { - pid = waitpid(0, &wstatus, WNOHANG); - if(pid == fork2_pid) { - exit(wait_estatus(wstatus)); - } - retval = select(1, &rfds, NULL, NULL, &tv); - if (retval == -1 && errno != EINTR) { - strerr_dief1sys(111, "select()"); - } - if(retval) { - const char term_msg[] = "pidns_run: parent died, terminating\n"; - write(2, "pidns_run: parent died, terminating\n", sizeof(term_msg)); - exit(111); - } - tv.tv_sec = 1; - tv.tv_usec = 0; - } - } - } else { - /* parent */ - if(close(parent_rfd) != 0) { - strerr_dief1sys(111, "close(parent_rfd)"); - } - int wstatus; - pid_t pid = waitpid(fork1_pid, &wstatus, 0); - exit(wait_estatus(wstatus)); - } -} diff --git a/files/safelink.c b/files/safelink.c @@ -1,118 +0,0 @@ -#include <errno.h> /* for errno */ -#include <fcntl.h> /* for mkdirat() openat() */ -#include <stdbool.h> /* for bool */ - -#include <skalibs/strerr2.h> -#include <skalibs/random.h> - -#define PROG "safelink" -#define USAGE "safelink oldpath newpath" -#define BUFLEN 260 - -char* opendir_nofollow(char *pathname, int *fd, bool create_dirs) -{ - char next[BUFLEN]; - int fd1, fd2; - const char *base; /* final part (basename) to return */ - const char *s1 = pathname; - char *s2 = next; - - if(pathname[0] == '/') { - fd1 = open("/", O_NOFOLLOW | O_DIRECTORY | O_RDONLY); - if(fd1 < 0) { - strerr_diefu1sys(111, "open() root"); - } - s1++; - } else { - fd1 = open(".", O_NOFOLLOW | O_DIRECTORY | O_RDONLY); - if(fd1 < 0) { - strerr_diefu1sys(111, "open() CWD"); - } - } - base = s1; - while (*s1) { - /* Copy character by character from pathname[] to next[]. */ - *(s2++) = *(s1++); - if (s2 >= &next[BUFLEN]) { - strerr_dief1x(100, "filename exceeded buffer size"); - } - if(*s1 == 0) { - /* end of string, return dir fd and final path component */ - *fd = fd1; - return base; - } - if(*s1 == '/') { - if(*s1) { s1++; } - if(s2 == next) { continue; } /* skip empty filename or trailing slash */ - *s2 = 0; /* null-terminate the string in next[] */ - s2 = next; /* reset s2 pointer to the start of next[] for next dirname */ - - /* Try opening the directory in next[]. */ - fd2 = openat(fd1, next, O_NOFOLLOW | O_DIRECTORY | O_RDONLY); - if(fd2 < 1) { - if(errno == ENOENT) { - if(!create_dirs) { - strerr_dief2x(111, "directory does not exist: ", next); - } - /* Create the missing directory. */ - if(mkdirat(fd1, next, 0777) != 0) { - strerr_diefu2sys(111, "mkdirat(): ", next); - } - /* Open the newly created directory. */ - fd2 = openat(fd1, next, O_NOFOLLOW | O_DIRECTORY | O_RDONLY); - if(fd2 < 1) { - strerr_diefu2sys(111, "openat(): ", next); - } - } else { - strerr_diefu2sys(111, "openat(): ", next); - } - } - - /* Close the parent directory and replace reference to it with the newly opened one. */ - close(fd1); - fd1 = fd2; - base = s1; - } - } -} - -int main (int argc, char const *const *argv) -{ - if (argc != 3) { - strerr_dieusage(100, USAGE); - } - int old_fd, new_fd; - char *old_base, *new_base; - old_base = opendir_nofollow(argv[1], &old_fd, false); - if(old_base[0] == 0) { - strerr_dief2x(100, "malformed path: ", argv[1]); - } - new_base = opendir_nofollow(argv[2], &new_fd, true); - if(new_base[0] == 0) { - strerr_dief2x(100, "malformed path: ", argv[2]); - } - if(linkat(old_fd, old_base, new_fd, new_base, 0) == 0) { - return 0; /* created hardlink at the correct location */ - } - if(errno != EEXIST) { - strerr_diefu1sys(111, "linkat()"); - } - /* file with such name already exists, so try again with different one and atomically replace */ - char tmp_base[BUFLEN]; - tmp_base[0] = '.'; - tmp_base[1] = 't'; - tmp_base[2] = 'm'; - tmp_base[3] = 'p'; - tmp_base[4] = '.'; - random_name(&tmp_base[5], 58); - tmp_base[64] = 0; - if(linkat(old_fd, old_base, new_fd, tmp_base, 0) != 0) { - strerr_diefu2sys(111, "linkat() to temporary name: ", tmp_base); - } - if(renameat(new_fd, tmp_base, new_fd, new_base) != 0) { - strerr_diefu4sys(111, "renameat() from temporary name: ", tmp_base, " to:", new_base); - } - return 0; -} -/* vim: sw=2 sts=2 et -*/ diff --git a/files/spawn-pty.c b/files/spawn-pty.c @@ -1,142 +0,0 @@ -#include <pty.h> -#include <fcntl.h> -#include <signal.h> -#include <errno.h> -#include <unistd.h> /* fork(), getpid(), setsid(), tcsetpgrp() */ -#include <stdlib.h> /* grantpt(), unlockpt(), ptsname() */ - -#include <skalibs/exec.h> -#include <skalibs/djbunix.h> -#include <skalibs/strerr2.h> - -#define PROG "spawn-pty" -#define USAGE "spawn-pty term_name { pty-prog ... } ptmx-prog ..." -#define dieusage() strerr_dieusage(100, USAGE) - -#define resetsig(S) if(signal(S, SIG_DFL) == SIG_ERR) { \ - strerr_dief1sys(111, "resetting signal handler"); \ - } - -void exec_terminal(const char *term_env, const char **ptmx_argv, const char **pty_argv) { - int ptmx_fd; - const char *pts_name; - - ptmx_fd = posix_openpt(O_RDWR | O_NOCTTY); - if (ptmx_fd < 0) { - strerr_dief1sys(111, "posix_openpt()"); - } - if (grantpt(ptmx_fd) != 0) { - strerr_dief1sys(111, "grantpt()"); - } - if (unlockpt(ptmx_fd) != 0) { - strerr_dief1sys(111, "unlockpt()"); - } - pts_name = ptsname(ptmx_fd); - if (pts_name == NULL) { - strerr_dief1sys(111, "ptsname()"); - } - - int fork_pid = fork(); - if(fork_pid < 0) { - strerr_dief1sys(111, "fork()"); - } - if(fork_pid == 0) { - /* child */ - int pty_fd; - - resetsig(SIGHUP); - resetsig(SIGINT); - resetsig(SIGQUIT); - resetsig(SIGPIPE); - resetsig(SIGALRM); - resetsig(SIGTERM); - resetsig(SIGCHLD); - resetsig(SIGCONT); - resetsig(SIGTSTP); - resetsig(SIGTTIN); - resetsig(SIGTTOU); - - if(close(ptmx_fd) != 0) { - strerr_dief1sys(111, "close(ptmx_fd) in child"); - } - - if(setsid() < 0) { /* create new session */ - strerr_dief1sys(111, "setsid"); - } - /* open without O_NOCTTY so controlling terminal gets set */ - pty_fd = open(pts_name, O_RDWR); - if (ptmx_fd < 0) { - strerr_dief1sys(111, "open(pty)"); - } - if (tcsetpgrp(pty_fd, getpid()) < 0) { /* set controlling terminal */ - strerr_dief1sys(111, "tcsetpgrp"); - } - - if(dup2(pty_fd, 0) < 0) { - strerr_dief1sys(111, "dup2(pty_fd, 0) in child"); - } - if(dup2(pty_fd, 1) < 0) { - strerr_dief1sys(111, "dup2(pty_fd, 1) in child"); - } - if(dup2(pty_fd, 2) < 0) { - strerr_dief1sys(111, "dup2(pty_fd, 2) in child"); - } - if(close(pty_fd) != 0) { - strerr_dief1sys(111, "close(pty_fd) in child"); - } - char envstr[6 + strlen(term_env)]; - memcpy(envstr, "TERM=", 5); - strcpy(&envstr[5], term_env); - xmexec_n(pty_argv, envstr, strlen(envstr), 1); - } else { - /* parent */ - if(dup2(ptmx_fd, 0) < 0) { - strerr_dief1sys(111, "dup2(ptmx_fd, 0) in parent"); - } - if(close(ptmx_fd) != 0) { - strerr_dief1sys(111, "close(ptmx_fd) in parent"); - } - // # parent - // env['PTMX_FD'] = "0" - // execve(terminal, env) - char envstr[9 + strlen(pts_name)]; - memcpy(envstr, "PTS_NAME=", 9); - strcpy(&envstr[8], term_env); - xmexec_n(ptmx_argv, envstr, strlen(envstr), 1); - } -} - -typedef const char * arg_t; - -int main(const int argc, const char **argv) { - if(argc < 2) { - dieusage(); - } - arg_t pty_argv[argc]; - const char *term_env = argv[1]; - int n = 2; - if(term_env[0] == ' ') { - dieusage(); - } - if(argv[2][0] != ' ') { - strerr_dieusage(100, USAGE "\nerror: missing block"); - } - for(int n = 2; n < argc - 1; n++) { - switch(argv[n][0]) { - case 0: - pty_argv[n - 2] = 0; - exec_terminal(term_env, &argv[n + 1], pty_argv); - return 111; - case ' ': - pty_argv[n - 2] = &argv[n][1]; - break; - default: - strerr_dieusage(100, USAGE "\nerror: improperly terminated block"); - return 100; - } - } - strerr_dieusage(100, USAGE "\nerror: unterminated block"); -} - -/* vim: ft=c sts=2 sw=2 et -*/ diff --git a/sources/ccx-utils b/sources/ccx-utils @@ -0,0 +1 @@ +Subproject commit c5eed37c744c786076a1ec13132ade7ef410ed16 diff --git a/templates/pkg/ccx-utils b/templates/pkg/ccx-utils @@ -0,0 +1,56 @@ +{% extends "genlinks" %} +{%- block script %} +#+{{pkg_install_name("musl-cross-make")}} +#+{{pkg_install_name("gnu-make")}} +#+{{pkg_install_name("busybox")}} +#+{{pkg_install_name("skalibs")}} +#+{{pkg_install_name("s6")}} +#@git:{{submodule.current["ccx-utils"]}}:ccx-utils + +{% include "functions/check_static" %} +{% include "functions/build_env_static" %} +{% include "functions/vars" %} +build_env_static +def_prefix + +cd ccx-utils/src + +for name in \ + argv0exec \ + nosuid \ + pidns_run \ + safelink \ + spawn-pty \ + fdsend \ + fdrecv \ + fdrecvto \ + socketpair \ + ptsname \ + mtime_to_uuidv7 \ + ucspi-socksserver \ + ucspi-socksserver-connected \ + ucspi-socksserver-access +do + make $name + install -d "$pthbs_destdir/$prefix/command" + install -m 755 $name "$pthbs_destdir/$prefix/command" + check_static command/$name +done +{% endblock %} +{% block genlinks_begin %} + x["./command/spawn-pty"]=1 + x["./command/argv0exec"]=1 + x["./command/nosuid"]=1 + x["./command/pidns_run"]=1 + x["./command/safelink"]=1 + x["./command/spawn-pty"]=1 + x["./command/fdsend"]=1 + x["./command/fdrecv"]=1 + x["./command/fdrecvto"]=1 + x["./command/socketpair"]=1 + x["./command/ptsname"]=1 + x["./command/mtime_to_uuidv7"]=1 + x["./command/ucspi-socksserver"]=1 + x["./command/ucspi-socksserver-connected"]=1 + x["./command/ucspi-socksserver-access"]=1 +{%- endblock %} diff --git a/templates/pkg/containers.environment b/templates/pkg/containers.environment @@ -13,4 +13,4 @@ #+{{pkg_install_name("alpine-keys")}} #+{{pkg_install_name("getent")}} #+{{pkg_install_name("fileset")}} -#+{{pkg_install_name("pidns_run")}} +#+{{pkg_install_name("ccx-utils")}} diff --git a/templates/pkg/logincaps b/templates/pkg/logincaps @@ -2,7 +2,7 @@ {%- block extra_deps %} #+{{pkg_install_name("execline")}} #+{{pkg_install_name("musl-cross-make")}} -#+{{pkg_install_name("safelink")}} +#+{{pkg_install_name("ccx-utils")}} {%- endblock %} {%- block extra_script %} diff --git a/templates/pkg/nosuid b/templates/pkg/nosuid @@ -1,24 +0,0 @@ -{% extends "genlinks" %} -{%- block script %} -#+{{pkg_install_name("musl-cross-make")}} -#+{{pkg_install_name("gnu-make")}} -#+{{pkg_install_name("busybox")}} -#+{{pkg_install_name("skalibs")}} -#@sha256:{{files["nosuid.c"]}}:nosuid.c - -name=nosuid -{% include "functions/check_static" %} -{% include "functions/build_env_static" %} -{% include "functions/vars" %} -build_env_static -def_prefix - -gcc -D_GNU_SOURCE -static -o $name $name.c $LDFLAGS -lskarnet - -install -d "$pthbs_destdir/$prefix/command" -install -m 755 $name "$pthbs_destdir/$prefix/command" -check_static command/$name -{% endblock %} -{% block genlinks_begin %} - x["./command/nosuid"]=1 -{%- endblock %} diff --git a/templates/pkg/pidns_run b/templates/pkg/pidns_run @@ -1,24 +0,0 @@ -{% extends "genlinks" %} -{%- block script %} -#+{{pkg_install_name("musl-cross-make")}} -#+{{pkg_install_name("gnu-make")}} -#+{{pkg_install_name("busybox")}} -#+{{pkg_install_name("skalibs")}} -#@sha256:{{files["pidns_run.c"]}}:pidns_run.c - -name=pidns_run -{% include "functions/check_static" %} -{% include "functions/build_env_static" %} -{% include "functions/vars" %} -build_env_static -def_prefix - -gcc -D_GNU_SOURCE -static -o $name $name.c $LDFLAGS -lskarnet - -install -d "$pthbs_destdir/$prefix/command" -install -m 755 $name "$pthbs_destdir/$prefix/command" -check_static command/$name -{% endblock %} -{% block genlinks_begin %} - x["./command/pidns_run"]=1 -{%- endblock %} diff --git a/templates/pkg/safelink b/templates/pkg/safelink @@ -1,24 +0,0 @@ -{% extends "genlinks" %} -{%- block script %} -#+{{pkg_install_name("musl-cross-make")}} -#+{{pkg_install_name("gnu-make")}} -#+{{pkg_install_name("busybox")}} -#+{{pkg_install_name("skalibs")}} -#@sha256:{{files["safelink.c"]}}:safelink.c - -name=safelink -{% include "functions/check_static" %} -{% include "functions/build_env_static" %} -{% include "functions/vars" %} -build_env_static -def_prefix - -gcc -ggdb -D_GNU_SOURCE -static -o $name $name.c $LDFLAGS -lskarnet - -install -d "$pthbs_destdir/$prefix/command" -install -m 755 $name "$pthbs_destdir/$prefix/command" -check_static command/$name -{% endblock %} -{% block genlinks_begin %} - x["./command/safelink"]=1 -{%- endblock %} diff --git a/templates/pkg/spawn-pty b/templates/pkg/spawn-pty @@ -1,24 +0,0 @@ -{% extends "genlinks" %} -{%- block script %} -#+{{pkg_install_name("musl-cross-make")}} -#+{{pkg_install_name("gnu-make")}} -#+{{pkg_install_name("busybox")}} -#+{{pkg_install_name("skalibs")}} -#@sha256:{{files["spawn-pty.c"]}}:spawn-pty.c - -name=spawn-pty -{% include "functions/check_static" %} -{% include "functions/build_env_static" %} -{% include "functions/vars" %} -build_env_static -def_prefix - -gcc -ggdb -D_GNU_SOURCE -static -o $name $name.c $LDFLAGS -lskarnet - -install -d "$pthbs_destdir/$prefix/command" -install -m 755 $name "$pthbs_destdir/$prefix/command" -check_static command/$name -{% endblock %} -{% block genlinks_begin %} - x["./command/spawn-pty"]=1 -{%- endblock %} diff --git a/templates/pkg/userspace.environment b/templates/pkg/userspace.environment @@ -33,7 +33,5 @@ #+{{pkg_install_name("iconv")}} #+{{pkg_install_name("libcap")}} #+{{pkg_install_name("applyuidgid-caps")}} -#+{{pkg_install_name("nosuid")}} -#+{{pkg_install_name("spawn-pty")}} -#+{{pkg_install_name("safelink")}} +#+{{pkg_install_name("ccx-utils")}} #+{{pkg_install_name("user-env")}} diff --git a/variants/ccx-x86_64/ccx-utils b/variants/ccx-x86_64/ccx-utils @@ -0,0 +1,124 @@ +#!/usr/bin/env pthbs-build +#+musl-cross-make.98979eb41109d371f19d0637d51116db18c7aeef61fbf804a68094c22a302a78 +#+gnu-make.ba8d7c64a23885182fc1c9dc0331d52adcdbc45df6000fb81e8e1dd3ee05694b +#+busybox.ee3440974794767b833fd3299226771f170d3f8601cf225cb884f0a513db8ab3 +#+skalibs.25eb68b4f9146b6b700c824f55528e30c9d34686368d4485ed04b66adbf34c39 +#+s6.087ce2658d9f8b1c38f8f6999d2cfef0bf3b53afaf07f01495091883c154899e +#@git:c5eed37c744c786076a1ec13132ade7ef410ed16:ccx-utils + +check_static() { + local exe || true + exe=$pthbs_destdir/'/home/ccx/versions'/$pthbs_package/$1 + if ! test -f $exe; then + printf '%s\n' "Error: file '$1' doesn't exist!" + exit 1 + fi + interp_info=$(readelf --string-dump=.interp "$exe") || exit $? + if test x '!=' "x$interp_info"; then + printf '%s\n' "Error: '$1' is a dynamic binary!" + exit 1 + fi +} +build_env_static() { + export LD_LIBRARY_PATH="$pthbs_build_environment/library" + export CPATH="$pthbs_build_environment/include" + export LDFLAGS="-static -L$pthbs_build_environment/library $LDFLAGS" +} +def_prefix() { + prefix=/home/ccx/versions/$pthbs_package +} +def_dest() { + dest=${pthbs_destdir%/}//home/ccx/versions/$pthbs_package +} +build_env_static +def_prefix + +cd ccx-utils/src + +for name in \ + argv0exec \ + nosuid \ + pidns_run \ + safelink \ + spawn-pty \ + fdsend \ + fdrecv \ + fdrecvto \ + socketpair \ + ptsname \ + mtime_to_uuidv7 \ + ucspi-socksserver \ + ucspi-socksserver-connected \ + ucspi-socksserver-access +do + make $name + install -d "$pthbs_destdir/$prefix/command" + install -m 755 $name "$pthbs_destdir/$prefix/command" + check_static command/$name +done + +cd "$pthbs_destdir/home/ccx/versions/$pthbs_package" +find -type d -o -print | awk -F/ ' +BEGIN { + x["./command/spawn-pty"]=1 + x["./command/argv0exec"]=1 + x["./command/nosuid"]=1 + x["./command/pidns_run"]=1 + x["./command/safelink"]=1 + x["./command/spawn-pty"]=1 + x["./command/fdsend"]=1 + x["./command/fdrecv"]=1 + x["./command/fdrecvto"]=1 + x["./command/socketpair"]=1 + x["./command/ptsname"]=1 + x["./command/mtime_to_uuidv7"]=1 + x["./command/ucspi-socksserver"]=1 + x["./command/ucspi-socksserver-connected"]=1 + x["./command/ucspi-socksserver-access"]=1} + +function r1(s) { + sub("^[.]/[^/]*", ".", s) + return s +} +function s1(repl, s) { + sub("^[.]/[^/]*", "./"repl, s) + return s +} +function link(src) { + x[$0]=0 + printf "%s\t%s\n", $0, src + printf "genlinks >>%s\t%s<<\n", $0, src >>"/dev/stderr" +} +$1!="."{exit 1} + + +$2 == "command" { link($0); next } +$2 == "bin" { link(s1("command", $0)); next } + +$2 == "library.so" { link($0); next } +$2 == "library" { link($0); next } +$2 == "lib" && $NF ~ /\.l?a$/ { link(s1("library", $0)); next } +$2 == "lib" && $NF ~ /\.so(|\..*)$/ { link(s1("library.so", $0)); next } + +$2 == "share" && $3 ~ /^(info|man|doc|icons|terminfo)$/ { link(r1($0)); next } + +$2 == "man" { link($0); next } +$2 == "info" { link($0); next } +$2 == "doc" { link($0); next } +$2 == "icons" { link($0); next } +$2 == "terminfo" { link($0); next } +$2 == "data" { link($0); next } +$2 == "include" { link($0); next } + +{ printf "genlinks ##%s## skipped\n", $0 >>"/dev/stderr" } + +END { + for(fname in x) { printf "DEBUG: x[\"%s\"]=\"%s\"\n", fname, x[fname] >"/dev/stderr" } + for(fname in x) { + if(x[fname]) { + printf "ERROR: missing expected file \"%s\"\n", fname >"/dev/stderr" + exit 3 + } + } +}' >.install-links.new +mv .install-links.new .install-links diff --git a/variants/ccx-x86_64/containers.environment b/variants/ccx-x86_64/containers.environment @@ -13,4 +13,4 @@ #+alpine-keys.dedc78b0b50e461d33a449adf40691698925b5eb9af8a6b69e7c0ece6b708ef4 #+getent.497826562f0e3021d114ff3f47654fa0b574041039df71dbc4e509d38fa55447 #+fileset.4e84d6846c9db82c5ad691b8a6b63b6364b367e84f9d1490b0942b3fa28f3737 -#+pidns_run.4300dba91be87d2ca8c0c2b8f69d67e8b9818b139cb658c40f8611787d6c796c- \ No newline at end of file +#+ccx-utils.2cf25426538f4dd774a0d2e8a178b2c8e6f71e06b96677582ca9812e71ed1639+ \ No newline at end of file diff --git a/variants/ccx-x86_64/default.environment b/variants/ccx-x86_64/default.environment @@ -1,7 +1,7 @@ -#+system-config.f0760be3241a088b5aa1b9746d6cf1a1e3effd3afa6b24228bcc05fe6e0b156a -#+system-config-rc.727d8fe3e6ef84c59fed3339a39075c5b386a1a3da3d337de2c38ffb8ccf6b77 +#+system-config.08eac4bf8dbeb91004b6f260c9fbd07dd14a69c95071293844a9ba3f4445f68e +#+system-config-rc.31db82abed893700ce8840a796a2c52959ec4df096ee4415489b44d87541a0f4 #+system-config-scripts.bdedb957b96fc1efd8259d16dac786d1d9c220dcde66996a16688989f104925d -#+system-config-init.a350b6af9064640cba13942f9e779de5aad7ce76ca93b0e2d6492bc81b57fbcb +#+system-config-init.04f874d227904b82fbc7d57997a317ee15f312e86641f2628c673c7aba891e99 #+system-config-zsh.250277c1fe17ccb13b5efbacd35ecb3b8342e30910cdd709f89475773bb7f309 #+busybox.ee3440974794767b833fd3299226771f170d3f8601cf225cb884f0a513db8ab3 #+gnu-make.ba8d7c64a23885182fc1c9dc0331d52adcdbc45df6000fb81e8e1dd3ee05694b @@ -27,7 +27,7 @@ #+confz.9733b0a5d832c848bfeeb2dc737c05a77163fc4d8aca4156a18f2074f2902b8a #+containers.24571a2ed64695863d34cdb9b3f7387dedab57d6f19a19bb2d7b9d5b7242d945 #+fileset.4e84d6846c9db82c5ad691b8a6b63b6364b367e84f9d1490b0942b3fa28f3737 -#+logincaps.bfb3cf07cb8283b9489ad275b1228dcb854adf74e9fdc1c8f46312df41cfd120 +#+logincaps.ad3473d8516bcda21f16663b6449fa225aab972446b8d6ab434373c9d843f499 #+snaprep.00aa9b9a8cd250e823959881ee26d93cab1be5fe7bbb06ad9abc7242c481b4f7 #+curl.363090b3afccfe46f001c57627d39283abe5cc6a6357ee493bd55f8ab11607ba #+git.c969489861a9208c195a11e9ec701d8f322e68505dff04cc209453a1f68fa1fc @@ -38,7 +38,5 @@ #+iconv.e574881283799fa144f1d9df753a05d9f7effa47ae0a06a92b532decde48f145 #+libcap.4b28b26ba2d2086e58476a4629bc9bc939bd7326eae233dd9066fbec00a93aca #+applyuidgid-caps.9856a13db04a0f0192c4208744de2c649db2ae721dc0d0dd37eb90346236a514 -#+nosuid.0b548efb154410c991f8cfd149a4b9b0487672b264684e6f2e3c4bc158abb543 -#+spawn-pty.e70553c12b2ad9f2a7f4cfbf8f1b1dd98caa06113fd996696d7556c4c22eddb6 -#+safelink.f55537d34349bbed47803a98e613404c430dd6622140903fa0ff5370a758f7b0 +#+ccx-utils.2cf25426538f4dd774a0d2e8a178b2c8e6f71e06b96677582ca9812e71ed1639 #+user-env.4e95a5387aa403e1d16a22254f21fb4cec046c69341a5eae764dd8126fb638a8 \ No newline at end of file diff --git a/variants/ccx-x86_64/logincaps b/variants/ccx-x86_64/logincaps @@ -4,7 +4,7 @@ #+pthbs-banginstall.7ddbf08ba8b1298841fad793d4ed7ba4979b9346155195489fc5e492ed5f0fe2 #+execline.1505a32c24aa5dbf362550f39283c9ff1936e717e5a82d220f8212cd9e604d8f #+musl-cross-make.98979eb41109d371f19d0637d51116db18c7aeef61fbf804a68094c22a302a78 -#+safelink.f55537d34349bbed47803a98e613404c430dd6622140903fa0ff5370a758f7b0 +#+ccx-utils.2cf25426538f4dd774a0d2e8a178b2c8e6f71e06b96677582ca9812e71ed1639 #@git:8c753d77f710d0ecc4f44e0992f060ed47c61c81:logincaps : ${JOBS:=1} diff --git a/variants/ccx-x86_64/system-config b/variants/ccx-x86_64/system-config @@ -13,7 +13,7 @@ #+s6.087ce2658d9f8b1c38f8f6999d2cfef0bf3b53afaf07f01495091883c154899e #+zsh.f79a20125b2f520d3719411e6f0895cf4f2e0657565c3fef07b3069436b8960f #+system-config-scripts.bdedb957b96fc1efd8259d16dac786d1d9c220dcde66996a16688989f104925d -#+logincaps.bfb3cf07cb8283b9489ad275b1228dcb854adf74e9fdc1c8f46312df41cfd120 +#+logincaps.ad3473d8516bcda21f16663b6449fa225aab972446b8d6ab434373c9d843f499 #@git:0a1466e946de353d1947a4cdb2210b5699c141dd:system-config def_prefix() { @@ -52,7 +52,7 @@ printf '%s\n' >config/etc/skel/loginexec \ chmod +x config/etc/skel/loginexec env 'pthbs_path_system-config'="$prefix" \ - 'pthbs_path_containers=/home/ccx/versions/env.81eeef9c306afcae65e65254ae8ee20547f15c26dc364f6cce9d22dd67a5f102' \ + 'pthbs_path_containers=/home/ccx/versions/env.3cbbb51f6d5fa0f25c9ca10e1df7aa466bd04ea4bccee15a411aecdf7bbb2de2' \ 'pthbs_path_mdevd=/home/ccx/versions/env.5049027ea8b6b4d373e16aadd3cdc63a940582ff297656e395f2131eef181671' \ make -j${JOBS:-1} -l$((1+${JOBS:-1})) all diff --git a/variants/ccx-x86_64/system-config-init b/variants/ccx-x86_64/system-config-init @@ -5,9 +5,9 @@ #+s6-portable-utils.1b8fd31be72bfe84afb28c3dfff03b1fc45121d11fc85f79c90f085fe61bc132 #+s6-linux-init.cd3e307b62e7dde98e1572eed297bd544e888d2589d4c1e7fd79271c4078ddf2 #+execline.1505a32c24aa5dbf362550f39283c9ff1936e717e5a82d220f8212cd9e604d8f -#+system-config-rc.727d8fe3e6ef84c59fed3339a39075c5b386a1a3da3d337de2c38ffb8ccf6b77 +#+system-config-rc.31db82abed893700ce8840a796a2c52959ec4df096ee4415489b44d87541a0f4 -s6rcdb=/home/ccx/versions/system-config-rc.727d8fe3e6ef84c59fed3339a39075c5b386a1a3da3d337de2c38ffb8ccf6b77/config/s6-rc-db +s6rcdb=/home/ccx/versions/system-config-rc.31db82abed893700ce8840a796a2c52959ec4df096ee4415489b44d87541a0f4/config/s6-rc-db prefix=/home/ccx/versions/$pthbs_package pkgdir="$pthbs_destdir/$prefix" diff --git a/variants/ccx-x86_64/system-config-rc b/variants/ccx-x86_64/system-config-rc @@ -3,7 +3,7 @@ #+busybox-diffutils.c2ebcfcad050ad71b8e30322a463b5c009f254c7a42e95c627d32665e17134dc #+s6-rc.fecfa43aebb0615904e0e120b9ce8c0596c9b6c577611cbadc8fbaca75196ed9 #+fileset.4e84d6846c9db82c5ad691b8a6b63b6364b367e84f9d1490b0942b3fa28f3737 -#+system-config.f0760be3241a088b5aa1b9746d6cf1a1e3effd3afa6b24228bcc05fe6e0b156a +#+system-config.08eac4bf8dbeb91004b6f260c9fbd07dd14a69c95071293844a9ba3f4445f68e def_prefix() { prefix=/home/ccx/versions/$pthbs_package @@ -13,7 +13,7 @@ def_dest() { } def_dest -src=/home/ccx/versions/system-config.f0760be3241a088b5aa1b9746d6cf1a1e3effd3afa6b24228bcc05fe6e0b156a/config/s6-rc-source +src=/home/ccx/versions/system-config.08eac4bf8dbeb91004b6f260c9fbd07dd14a69c95071293844a9ba3f4445f68e/config/s6-rc-source s6-rc-compile ./s6-rc-db "$src" mkdir -p "$dest/config" mv -v s6-rc-db "$dest/config/" diff --git a/variants/ccx-x86_64/userspace.environment b/variants/ccx-x86_64/userspace.environment @@ -22,7 +22,7 @@ #+confz.9733b0a5d832c848bfeeb2dc737c05a77163fc4d8aca4156a18f2074f2902b8a #+containers.24571a2ed64695863d34cdb9b3f7387dedab57d6f19a19bb2d7b9d5b7242d945 #+fileset.4e84d6846c9db82c5ad691b8a6b63b6364b367e84f9d1490b0942b3fa28f3737 -#+logincaps.bfb3cf07cb8283b9489ad275b1228dcb854adf74e9fdc1c8f46312df41cfd120 +#+logincaps.ad3473d8516bcda21f16663b6449fa225aab972446b8d6ab434373c9d843f499 #+snaprep.00aa9b9a8cd250e823959881ee26d93cab1be5fe7bbb06ad9abc7242c481b4f7 #+curl.363090b3afccfe46f001c57627d39283abe5cc6a6357ee493bd55f8ab11607ba #+git.c969489861a9208c195a11e9ec701d8f322e68505dff04cc209453a1f68fa1fc @@ -33,7 +33,5 @@ #+iconv.e574881283799fa144f1d9df753a05d9f7effa47ae0a06a92b532decde48f145 #+libcap.4b28b26ba2d2086e58476a4629bc9bc939bd7326eae233dd9066fbec00a93aca #+applyuidgid-caps.9856a13db04a0f0192c4208744de2c649db2ae721dc0d0dd37eb90346236a514 -#+nosuid.0b548efb154410c991f8cfd149a4b9b0487672b264684e6f2e3c4bc158abb543 -#+spawn-pty.e70553c12b2ad9f2a7f4cfbf8f1b1dd98caa06113fd996696d7556c4c22eddb6 -#+safelink.f55537d34349bbed47803a98e613404c430dd6622140903fa0ff5370a758f7b0 +#+ccx-utils.2cf25426538f4dd774a0d2e8a178b2c8e6f71e06b96677582ca9812e71ed1639 #+user-env.4e95a5387aa403e1d16a22254f21fb4cec046c69341a5eae764dd8126fb638a8 \ No newline at end of file diff --git a/variants/root-x86_64/ccx-utils b/variants/root-x86_64/ccx-utils @@ -0,0 +1,124 @@ +#!/usr/bin/env pthbs-build +#+musl-cross-make.d0431fc0def788be03da43136972361827de52c8e6f0a6f3890dc57fe32e8ecc +#+gnu-make.444e811a68f4f16724e21354b710fad3592e53a2dbf7c0c78658f3d4e7c8e465 +#+busybox.f4ef3d511c029095beda8d21dd48f7730bec63fb09792ca951402d6620338089 +#+skalibs.80095d3b5fc0b02710609d76fd585ca9556056300f83a94e4dc094ee3f53fa86 +#+s6.43f7ad2aaeb2646da287c5bddf7c29c44d3f7b68a976beee75b60da44b54759e +#@git:c5eed37c744c786076a1ec13132ade7ef410ed16:ccx-utils + +check_static() { + local exe || true + exe=$pthbs_destdir/'/versions'/$pthbs_package/$1 + if ! test -f $exe; then + printf '%s\n' "Error: file '$1' doesn't exist!" + exit 1 + fi + interp_info=$(readelf --string-dump=.interp "$exe") || exit $? + if test x '!=' "x$interp_info"; then + printf '%s\n' "Error: '$1' is a dynamic binary!" + exit 1 + fi +} +build_env_static() { + export LD_LIBRARY_PATH="$pthbs_build_environment/library" + export CPATH="$pthbs_build_environment/include" + export LDFLAGS="-static -L$pthbs_build_environment/library $LDFLAGS" +} +def_prefix() { + prefix=/versions/$pthbs_package +} +def_dest() { + dest=${pthbs_destdir%/}//versions/$pthbs_package +} +build_env_static +def_prefix + +cd ccx-utils/src + +for name in \ + argv0exec \ + nosuid \ + pidns_run \ + safelink \ + spawn-pty \ + fdsend \ + fdrecv \ + fdrecvto \ + socketpair \ + ptsname \ + mtime_to_uuidv7 \ + ucspi-socksserver \ + ucspi-socksserver-connected \ + ucspi-socksserver-access +do + make $name + install -d "$pthbs_destdir/$prefix/command" + install -m 755 $name "$pthbs_destdir/$prefix/command" + check_static command/$name +done + +cd "$pthbs_destdir/versions/$pthbs_package" +find -type d -o -print | awk -F/ ' +BEGIN { + x["./command/spawn-pty"]=1 + x["./command/argv0exec"]=1 + x["./command/nosuid"]=1 + x["./command/pidns_run"]=1 + x["./command/safelink"]=1 + x["./command/spawn-pty"]=1 + x["./command/fdsend"]=1 + x["./command/fdrecv"]=1 + x["./command/fdrecvto"]=1 + x["./command/socketpair"]=1 + x["./command/ptsname"]=1 + x["./command/mtime_to_uuidv7"]=1 + x["./command/ucspi-socksserver"]=1 + x["./command/ucspi-socksserver-connected"]=1 + x["./command/ucspi-socksserver-access"]=1} + +function r1(s) { + sub("^[.]/[^/]*", ".", s) + return s +} +function s1(repl, s) { + sub("^[.]/[^/]*", "./"repl, s) + return s +} +function link(src) { + x[$0]=0 + printf "%s\t%s\n", $0, src + printf "genlinks >>%s\t%s<<\n", $0, src >>"/dev/stderr" +} +$1!="."{exit 1} + + +$2 == "command" { link($0); next } +$2 == "bin" { link(s1("command", $0)); next } + +$2 == "library.so" { link($0); next } +$2 == "library" { link($0); next } +$2 == "lib" && $NF ~ /\.l?a$/ { link(s1("library", $0)); next } +$2 == "lib" && $NF ~ /\.so(|\..*)$/ { link(s1("library.so", $0)); next } + +$2 == "share" && $3 ~ /^(info|man|doc|icons|terminfo)$/ { link(r1($0)); next } + +$2 == "man" { link($0); next } +$2 == "info" { link($0); next } +$2 == "doc" { link($0); next } +$2 == "icons" { link($0); next } +$2 == "terminfo" { link($0); next } +$2 == "data" { link($0); next } +$2 == "include" { link($0); next } + +{ printf "genlinks ##%s## skipped\n", $0 >>"/dev/stderr" } + +END { + for(fname in x) { printf "DEBUG: x[\"%s\"]=\"%s\"\n", fname, x[fname] >"/dev/stderr" } + for(fname in x) { + if(x[fname]) { + printf "ERROR: missing expected file \"%s\"\n", fname >"/dev/stderr" + exit 3 + } + } +}' >.install-links.new +mv .install-links.new .install-links diff --git a/variants/root-x86_64/containers.environment b/variants/root-x86_64/containers.environment @@ -13,4 +13,4 @@ #+alpine-keys.4ecd9fac6efcc329a98af1b0b1318771a77eb83ac10832c6e769ebf11c14cae1 #+getent.a4f1c1679ad9e6d4cd167e921ee8af0f7fce4a2b7886f96223b8c7fe1ba5ba97 #+fileset.7159458f5e8c9237e1e1708cafced263dd342d5fd24ccec97ae8092d9b1c5150 -#+pidns_run.cd1d0a2c3dd5d118443eb9947881cc26dfc286d17cd92df0a1ba735776db2ade- \ No newline at end of file +#+ccx-utils.a643696d382285cadc29c6362f4952bf1ff5b373e6a4feb35f819014a928b0e7+ \ No newline at end of file diff --git a/variants/root-x86_64/default.environment b/variants/root-x86_64/default.environment @@ -1,7 +1,7 @@ -#+system-config.28579add75b9c43f0633ce650a629deacdec7ef6f25eda42536cd82d0c7d3b18 -#+system-config-rc.1a57712dc5a3d79a7edc86868b0b0d79784a3e607361f5d243e86eef54aff493 +#+system-config.fe223242f04419e6488a6d0547a7cba05ca3eb49bff6a54fa5d7b69a76073119 +#+system-config-rc.4560c7c1640a5def3454fd5ebd197c2b8b1dc81ebac1fad5e1d9ef03bd75abec #+system-config-scripts.4c00e32b8c4f6feef53b562356abd54830cc7e889149e4f8bcb928d6e6e93378 -#+system-config-init.f183ef45a4b85af2bca501f40128a057ae4856bc21b36aec872e6a07091ad94c +#+system-config-init.5b76f046c300fac781cbc4b02b981cfd5a98e689b5cf41a93b618a3ccfb34200 #+system-config-zsh.01286ec545c7035b2e08ded96e40b73f912f33fd7eec44993a1e93e12577dc0f #+busybox.f4ef3d511c029095beda8d21dd48f7730bec63fb09792ca951402d6620338089 #+gnu-make.444e811a68f4f16724e21354b710fad3592e53a2dbf7c0c78658f3d4e7c8e465 @@ -27,7 +27,7 @@ #+confz.2c5f5b9bb69976bb57be5de332d8e7a2cf69c0b41c006ee7e6912abe8e8a0edf #+containers.81f7b1aed1b5f8cd999ff2071678b2f7f10dba18757467855a1eccce5d8a93ab #+fileset.7159458f5e8c9237e1e1708cafced263dd342d5fd24ccec97ae8092d9b1c5150 -#+logincaps.faa87e3b04c2309f34a95a8db7afcc9325d669264058da5512ef84c06b17411e +#+logincaps.994a8d97051b656849a379c30a5309b8326596f3eef8620d68bb0142072b21f6 #+snaprep.73784e7863284b4cc1597b76b0d869eb2eaaa5eed08245e629937044a2c0c3b5 #+curl.77419befc08ac7280bdc98fe2388cde9d88721ec00a30a7f9feb7817610ae58a #+git.7a4dbe4f09816eab374b3b020321f582a08dce75afaa97f2abeae2a58bcfe0a7 @@ -38,7 +38,5 @@ #+iconv.b537e50837859e5b0fa7cc56ee46ff152c638910b9c817cba957f09631c9aad1 #+libcap.66ba1f95782e8619e1ec2189653a79f3105901a0c25a4ad2ed3694f0bbe292ea #+applyuidgid-caps.2d571b717bda734b4464e7d3b36bb2c9eaa265fffd595bc090cbb137258121b8 -#+nosuid.498257584ccc02addbc06e693b148be33eb24174b15e02d26513d53d6b26bce4 -#+spawn-pty.6a26823325079f177717b86ec2226068c39a6fab3dd102442d67d5b73f0af7fb -#+safelink.32934902576e73bd5312ddf140fefbf7e2021068593f7b6e9d2b80a09ecdfc98 +#+ccx-utils.a643696d382285cadc29c6362f4952bf1ff5b373e6a4feb35f819014a928b0e7 #+user-env.8ad55eebe32b11f005f7b5c6dc204fdccc0a53cd7294f87c1e959ea47793dbca \ No newline at end of file diff --git a/variants/root-x86_64/logincaps b/variants/root-x86_64/logincaps @@ -4,7 +4,7 @@ #+pthbs-banginstall.30ed98ef3fedfb6b25b3f58c27e845f123a22a756b37a5cd75764315bba23571 #+execline.c89bee1b1207461afa2d2ab9250f0940a2a6bbca3e45bdd60037049a75f4adf9 #+musl-cross-make.d0431fc0def788be03da43136972361827de52c8e6f0a6f3890dc57fe32e8ecc -#+safelink.32934902576e73bd5312ddf140fefbf7e2021068593f7b6e9d2b80a09ecdfc98 +#+ccx-utils.a643696d382285cadc29c6362f4952bf1ff5b373e6a4feb35f819014a928b0e7 #@git:8c753d77f710d0ecc4f44e0992f060ed47c61c81:logincaps : ${JOBS:=1} diff --git a/variants/root-x86_64/system-config b/variants/root-x86_64/system-config @@ -13,7 +13,7 @@ #+s6.43f7ad2aaeb2646da287c5bddf7c29c44d3f7b68a976beee75b60da44b54759e #+zsh.4ac9e4166454e8d60c15837b7ca4938abe99db029b3fffa11b1cfd54d40ae09b #+system-config-scripts.4c00e32b8c4f6feef53b562356abd54830cc7e889149e4f8bcb928d6e6e93378 -#+logincaps.faa87e3b04c2309f34a95a8db7afcc9325d669264058da5512ef84c06b17411e +#+logincaps.994a8d97051b656849a379c30a5309b8326596f3eef8620d68bb0142072b21f6 #@git:0a1466e946de353d1947a4cdb2210b5699c141dd:system-config def_prefix() { @@ -52,7 +52,7 @@ printf '%s\n' >config/etc/skel/loginexec \ chmod +x config/etc/skel/loginexec env 'pthbs_path_system-config'="$prefix" \ - 'pthbs_path_containers=/versions/env.afd50d25dcb9390e1ce8d36881f925e14ab07fc384312154ca2e626c42abfbb3' \ + 'pthbs_path_containers=/versions/env.5fbd1de6667d9e31f4d093bb657671782a3be3cf812835deda9795822836b6a5' \ 'pthbs_path_mdevd=/versions/env.699c310193b7957c8ec17e16d6846443f99c198e3e2ce6425066f4523de2cf1e' \ make -j${JOBS:-1} -l$((1+${JOBS:-1})) all diff --git a/variants/root-x86_64/system-config-init b/variants/root-x86_64/system-config-init @@ -5,9 +5,9 @@ #+s6-portable-utils.f6171ad521d6be72875f1d5c1b28f966662ba93cfe5790e1ef010f9e76211bc3 #+s6-linux-init.8fbed3537ce9accc1a31e36f4648d1a0df0f1d155fcfa8fb5b1079786cf1442c #+execline.c89bee1b1207461afa2d2ab9250f0940a2a6bbca3e45bdd60037049a75f4adf9 -#+system-config-rc.1a57712dc5a3d79a7edc86868b0b0d79784a3e607361f5d243e86eef54aff493 +#+system-config-rc.4560c7c1640a5def3454fd5ebd197c2b8b1dc81ebac1fad5e1d9ef03bd75abec -s6rcdb=/versions/system-config-rc.1a57712dc5a3d79a7edc86868b0b0d79784a3e607361f5d243e86eef54aff493/config/s6-rc-db +s6rcdb=/versions/system-config-rc.4560c7c1640a5def3454fd5ebd197c2b8b1dc81ebac1fad5e1d9ef03bd75abec/config/s6-rc-db prefix=/versions/$pthbs_package pkgdir="$pthbs_destdir/$prefix" diff --git a/variants/root-x86_64/system-config-rc b/variants/root-x86_64/system-config-rc @@ -3,7 +3,7 @@ #+busybox-diffutils.4a0933977737282afcd82b39d435b50946a700fe13472d24e4580a41fa852123 #+s6-rc.c131bb99b2054bcd9705c5a5652822938265a8587a54d2894667b8b620815c7f #+fileset.7159458f5e8c9237e1e1708cafced263dd342d5fd24ccec97ae8092d9b1c5150 -#+system-config.28579add75b9c43f0633ce650a629deacdec7ef6f25eda42536cd82d0c7d3b18 +#+system-config.fe223242f04419e6488a6d0547a7cba05ca3eb49bff6a54fa5d7b69a76073119 def_prefix() { prefix=/versions/$pthbs_package @@ -13,7 +13,7 @@ def_dest() { } def_dest -src=/versions/system-config.28579add75b9c43f0633ce650a629deacdec7ef6f25eda42536cd82d0c7d3b18/config/s6-rc-source +src=/versions/system-config.fe223242f04419e6488a6d0547a7cba05ca3eb49bff6a54fa5d7b69a76073119/config/s6-rc-source s6-rc-compile ./s6-rc-db "$src" mkdir -p "$dest/config" mv -v s6-rc-db "$dest/config/" diff --git a/variants/root-x86_64/userspace.environment b/variants/root-x86_64/userspace.environment @@ -22,7 +22,7 @@ #+confz.2c5f5b9bb69976bb57be5de332d8e7a2cf69c0b41c006ee7e6912abe8e8a0edf #+containers.81f7b1aed1b5f8cd999ff2071678b2f7f10dba18757467855a1eccce5d8a93ab #+fileset.7159458f5e8c9237e1e1708cafced263dd342d5fd24ccec97ae8092d9b1c5150 -#+logincaps.faa87e3b04c2309f34a95a8db7afcc9325d669264058da5512ef84c06b17411e +#+logincaps.994a8d97051b656849a379c30a5309b8326596f3eef8620d68bb0142072b21f6 #+snaprep.73784e7863284b4cc1597b76b0d869eb2eaaa5eed08245e629937044a2c0c3b5 #+curl.77419befc08ac7280bdc98fe2388cde9d88721ec00a30a7f9feb7817610ae58a #+git.7a4dbe4f09816eab374b3b020321f582a08dce75afaa97f2abeae2a58bcfe0a7 @@ -33,7 +33,5 @@ #+iconv.b537e50837859e5b0fa7cc56ee46ff152c638910b9c817cba957f09631c9aad1 #+libcap.66ba1f95782e8619e1ec2189653a79f3105901a0c25a4ad2ed3694f0bbe292ea #+applyuidgid-caps.2d571b717bda734b4464e7d3b36bb2c9eaa265fffd595bc090cbb137258121b8 -#+nosuid.498257584ccc02addbc06e693b148be33eb24174b15e02d26513d53d6b26bce4 -#+spawn-pty.6a26823325079f177717b86ec2226068c39a6fab3dd102442d67d5b73f0af7fb -#+safelink.32934902576e73bd5312ddf140fefbf7e2021068593f7b6e9d2b80a09ecdfc98 +#+ccx-utils.a643696d382285cadc29c6362f4952bf1ff5b373e6a4feb35f819014a928b0e7 #+user-env.8ad55eebe32b11f005f7b5c6dc204fdccc0a53cd7294f87c1e959ea47793dbca \ No newline at end of file