From 02b56be86f73965eab3a890cfe04869f6150c2f1 Mon Sep 17 00:00:00 2001 From: Moe-hacker Date: Tue, 21 Apr 2026 02:18:33 +0800 Subject: [PATCH 01/16] non: sync ruri update --- src/ruri | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ruri b/src/ruri index e612c43..06584f1 160000 --- a/src/ruri +++ b/src/ruri @@ -1 +1 @@ -Subproject commit e612c43dba5caee3832283fa3ea448b10f92538c +Subproject commit 06584f12dee3b0947cded7db27983cb7922a2a07 From b4ea576c3fc1af2e3f438bcff2fb5ad81794142d Mon Sep 17 00:00:00 2001 From: Moe-hacker Date: Tue, 21 Apr 2026 02:49:28 +0800 Subject: [PATCH 02/16] non: sync ruri update --- src/ruri | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ruri b/src/ruri index 06584f1..801f069 160000 --- a/src/ruri +++ b/src/ruri @@ -1 +1 @@ -Subproject commit 06584f12dee3b0947cded7db27983cb7922a2a07 +Subproject commit 801f0698ff36d151df46b631146f115e45c2a9c0 From e26aab61ac7fc2e457dd9453580da24426073ed9 Mon Sep 17 00:00:00 2001 From: Moe-hacker Date: Tue, 21 Apr 2026 23:01:01 +0800 Subject: [PATCH 03/16] non: sync ruri update --- src/ruri | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ruri b/src/ruri index 801f069..696f030 160000 --- a/src/ruri +++ b/src/ruri @@ -1 +1 @@ -Subproject commit 801f0698ff36d151df46b631146f115e45c2a9c0 +Subproject commit 696f03085e169543416c024dd89343d5c18bec78 From de417b969eed00fb095999cef2587e40bcaa6b19 Mon Sep 17 00:00:00 2001 From: Moe-hacker Date: Sat, 25 Apr 2026 18:11:54 +0800 Subject: [PATCH 04/16] non: sync ruri update --- src/ruri | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ruri b/src/ruri index 696f030..a38fe68 160000 --- a/src/ruri +++ b/src/ruri @@ -1 +1 @@ -Subproject commit 696f03085e169543416c024dd89343d5c18bec78 +Subproject commit a38fe681e2709860417b251e2c472e822037c920 From 3af6b91a546d802844353519cbccf2fab557e5ae Mon Sep 17 00:00:00 2001 From: Moe-hacker Date: Sat, 2 May 2026 15:16:12 +0800 Subject: [PATCH 05/16] non: sync ruri update --- src/ruri | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ruri b/src/ruri index a38fe68..525edca 160000 --- a/src/ruri +++ b/src/ruri @@ -1 +1 @@ -Subproject commit a38fe681e2709860417b251e2c472e822037c920 +Subproject commit 525edcab404839986bde1664d25df35922e1f53d From a1bb06aa11c3c7a05aafc4adbfb2ae0231f4ed10 Mon Sep 17 00:00:00 2001 From: Moe-hacker Date: Wed, 13 May 2026 23:13:11 +0800 Subject: [PATCH 06/16] doc: update usage.md --- doc/USAGE.md | 3 +++ src/ruri | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/doc/USAGE.md b/doc/USAGE.md index 4f2230c..6522f02 100644 --- a/doc/USAGE.md +++ b/doc/USAGE.md @@ -1,5 +1,8 @@ # Undocumented part: The `load`, `run`, `sfx` and `netns` subcommand is WIP, it should not be used by users. +# $PATH injection: +rurima will automatically add /path/to/rurima/ to the top of $PATH. +So you can just put required binaries like `tar/curl/jq/file` under the same dir of rurima, or do some wrapper script hacking. # Image source: rurima currently supports both lxc-mirror and dockerhub as container image source. # Unified image puller: diff --git a/src/ruri b/src/ruri index 525edca..5a8627d 160000 --- a/src/ruri +++ b/src/ruri @@ -1 +1 @@ -Subproject commit 525edcab404839986bde1664d25df35922e1f53d +Subproject commit 5a8627d3844e8c070ed1de61acf2c379aac3fee4 From fbed3cccdc29cf5e0db930c74b66e6af93617daf Mon Sep 17 00:00:00 2001 From: Moe-hacker Date: Fri, 15 May 2026 01:39:52 +0800 Subject: [PATCH 07/16] non: make deepwiki happy :> --- src/archive.c | 13 ++++++++++--- src/shared.c | 2 +- src/subcommand.c | 7 ++++--- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/archive.c b/src/archive.c index 1fb8c86..8124876 100644 --- a/src/archive.c +++ b/src/archive.c @@ -329,8 +329,15 @@ int rurima_backup_dir(char *_Nonnull file, char *_Nonnull dir) rurima_fork_rexec(rexec_args); if (!du_found()) { rurima_warning("{yellow}du not found, progress will not be shown.\n"); - int exstat = tar_backup__(file, dir); - return exstat; + pid_t pid = fork(); + if (pid > 0) { + int status; + waitpid(pid, &status, 0); + return WEXITSTATUS(status); + } else { + int exstat = tar_backup__(file, dir); + exit(exstat); + } } cprintf("{base}Getting total size to backup\n"); off_t totalsize = rurima_get_dir_file_size(dir); @@ -351,7 +358,7 @@ int rurima_backup_dir(char *_Nonnull file, char *_Nonnull dir) usleep(100); } show_progress(1.0); - return status; + return WEXITSTATUS(status); } else { int exstat = tar_backup__(file, dir); exit(exstat); diff --git a/src/shared.c b/src/shared.c index 606b03c..33cfa8f 100644 --- a/src/shared.c +++ b/src/shared.c @@ -49,10 +49,10 @@ void end_loading_animation(void) { if (loading_animation_pid > 0) { kill(loading_animation_pid, SIGINT); - loading_animation_pid = 0; } waitpid(loading_animation_pid, NULL, 0); fflush(stdout); + loading_animation_pid = 0; } void loading_animation(char *msg) { diff --git a/src/subcommand.c b/src/subcommand.c index 12be14d..e6c660d 100644 --- a/src/subcommand.c +++ b/src/subcommand.c @@ -55,6 +55,7 @@ static void docker_pull_try_mirrors(const char *_Nonnull image, const char *_Non rexec_argv[0] = NULL; for (int i = 0; try_mirrorlist[i] != NULL; i++) { cprintf("{base}Trying mirror: {cyan}%s\n", try_mirrorlist[i]); + rexec_argv[0] = NULL; rurima_add_argv(&rexec_argv, "docker"); rurima_add_argv(&rexec_argv, "pull"); rurima_add_argv(&rexec_argv, "-i"); @@ -812,14 +813,14 @@ void rurima_load_rootfs(int argc, char **argv) char manifest_path[PATH_MAX]; sprintf(manifest_path, "%s/manifest.json", tmp_dir); FILE *manifest_file = fopen(manifest_path, "r"); + if (!manifest_file) { + rurima_error("{red}Failed to open manifest.json!\n"); + } struct stat st; if (fstat(fileno(manifest_file), &st) != 0) { rurima_error("{red}Failed to stat manifest.json!\n"); } char *manifest_content = malloc(st.st_size + 1); - if (!manifest_file) { - rurima_error("{red}Failed to open manifest.json!\n"); - } fread(manifest_content, 1, st.st_size, manifest_file); manifest_content[st.st_size] = 0; fclose(manifest_file); From fc53e726fc02b134ab5265d547b138813de00e87 Mon Sep 17 00:00:00 2001 From: Moe-hacker Date: Sun, 17 May 2026 17:29:57 +0800 Subject: [PATCH 08/16] non: sync ruri update --- build.c | 1 + src/info.c | 2 +- src/ruri | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/build.c b/build.c index a9db330..795f907 100644 --- a/build.c +++ b/build.c @@ -837,6 +837,7 @@ int main(int argc, char **argv) check_and_add_lib("-lpthread", false); build(); remove_test_dot_c(); + printf("\n\nThis program has Super Neko Powers! >w<\n") return 0; } diff --git a/src/info.c b/src/info.c index d1fbadc..8032b08 100644 --- a/src/info.c +++ b/src/info.c @@ -62,7 +62,7 @@ void rurima_show_version_info(void) cprintf("{base}%s%s\n", "Build date ......................: ", __TIMESTAMP__); cprintf("{base}\nThere is NO WARRANTY, to the extent permitted by law\n"); cprintf("{base}Docker is a registered trademark of Docker, Inc\nThis program has no relationship with it\n"); - cprintf("{base}\nThis program has Super Neko Powers!!!\n"); + cprintf("{base}\nThis program has Super Neko Powers! >w<\n"); cprintf("{clear}\n"); } // For `rurima -V`. diff --git a/src/ruri b/src/ruri index 5a8627d..53352f9 160000 --- a/src/ruri +++ b/src/ruri @@ -1 +1 @@ -Subproject commit 5a8627d3844e8c070ed1de61acf2c379aac3fee4 +Subproject commit 53352f9bed7503e947d298446e4f17969cbd50cc From de4cc0267d61297667a36f1311cfb48ee47a0d85 Mon Sep 17 00:00:00 2001 From: Moe-hacker Date: Sun, 17 May 2026 17:52:58 +0800 Subject: [PATCH 09/16] non: forgot the semicolon, QwQ? --- build.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.c b/build.c index 795f907..88cfb9b 100644 --- a/build.c +++ b/build.c @@ -837,7 +837,7 @@ int main(int argc, char **argv) check_and_add_lib("-lpthread", false); build(); remove_test_dot_c(); - printf("\n\nThis program has Super Neko Powers! >w<\n") + printf("\n\nThis program has Super Neko Powers! >w<\n"); return 0; } From 93f31c25ad3c2cd1357c996c66c92cc148169629 Mon Sep 17 00:00:00 2001 From: Moe-hacker Date: Tue, 19 May 2026 17:41:46 +0800 Subject: [PATCH 10/16] non: sync ruri update --- src/ruri | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ruri b/src/ruri index 53352f9..1e481fe 160000 --- a/src/ruri +++ b/src/ruri @@ -1 +1 @@ -Subproject commit 53352f9bed7503e947d298446e4f17969cbd50cc +Subproject commit 1e481fe6e3a607f65412a8bf82e54d26dc176be0 From 4c0739fd30c57a7ba1e95973aa396ab3345c3cc4 Mon Sep 17 00:00:00 2001 From: Moe-hacker Date: Fri, 22 May 2026 01:48:31 +0800 Subject: [PATCH 11/16] non: sync ruri update --- src/include/rurima.h | 4 ++-- src/ruri | 2 +- src/signal.c | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/include/rurima.h b/src/include/rurima.h index 04df23e..7daa36d 100644 --- a/src/include/rurima.h +++ b/src/include/rurima.h @@ -108,9 +108,9 @@ struct RURIMA_DOCKER { cfprintf(stderr, format, ##__VA_ARGS__); \ cfprintf(stderr, "{base}%s{clear}\n", " .^. .^."); \ cfprintf(stderr, "{base}%s{clear}\n", " /⋀\\_ノ_/⋀\\"); \ - cfprintf(stderr, "{base}%s{clear}\n", " /ノソノ\\ノソ丶)|"); \ + cfprintf(stderr, "{base}%s{clear}\n", " /ノソノ\\ノソ丶メ"); \ cfprintf(stderr, "{base}%s{clear}\n", " ルリリ > x )リ"); \ - cfprintf(stderr, "{base}%s{clear}\n", "ノノ㇏ ^ ノ|ノ"); \ + cfprintf(stderr, "{base}%s{clear}\n", "ノノ㇏ ^ ノノ"); \ cfprintf(stderr, "{base}%s{clear}\n", " ⠁⠁"); \ cfprintf(stderr, "{base}%s{clear}\n", "RURIMA ERROR MESSAGE"); \ cfprintf(stderr, "{base}%s{clear}\n", "Hint:"); \ diff --git a/src/ruri b/src/ruri index 1e481fe..c78a96d 160000 --- a/src/ruri +++ b/src/ruri @@ -1 +1 @@ -Subproject commit 1e481fe6e3a607f65412a8bf82e54d26dc176be0 +Subproject commit c78a96d0acf37c401bac77c94c61a051adbb6f9f diff --git a/src/signal.c b/src/signal.c index 269069b..ded9db7 100644 --- a/src/signal.c +++ b/src/signal.c @@ -43,9 +43,9 @@ static void panic(int sig) cfprintf(stderr, "{base}"); cfprintf(stderr, "{base}%s\n", " .^. .^."); cfprintf(stderr, "{base}%s\n", " /⋀\\_ノ_/⋀\\"); - cfprintf(stderr, "{base}%s\n", " /ノソノ\\ノソ丶)|"); + cfprintf(stderr, "{base}%s\n", " /ノソノ\\ノソ丶メ"); cfprintf(stderr, "{base}%s\n", " ルリリ > x )リ"); - cfprintf(stderr, "{base}%s\n", "ノノ㇏ ^ ノ|ノ"); + cfprintf(stderr, "{base}%s\n", "ノノ㇏ ^ ノノ"); cfprintf(stderr, "{base}%s\n", " ⠁⠁"); cfprintf(stderr, "{base}%s\n", "RURIMA ERROR MESSAGE"); cfprintf(stderr, "{base}Seems that it's time to abort.\n"); From cfbf28607c695e3a50f3b4cdc1bd0b647e403b9b Mon Sep 17 00:00:00 2001 From: Moe-hacker Date: Thu, 28 May 2026 20:48:22 +0800 Subject: [PATCH 12/16] non: sync ruri update --- src/ruri | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ruri b/src/ruri index c78a96d..88b0830 160000 --- a/src/ruri +++ b/src/ruri @@ -1 +1 @@ -Subproject commit c78a96d0acf37c401bac77c94c61a051adbb6f9f +Subproject commit 88b0830aaab66fbaedbc0903cd4bcb9e7d0d9719 From 151cae5480445e2aeadd8004bdc74b08568f3ecd Mon Sep 17 00:00:00 2001 From: Moe-hacker Date: Thu, 28 May 2026 22:33:28 +0800 Subject: [PATCH 13/16] non: sync ruri uodate --- src/ruri | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ruri b/src/ruri index 88b0830..8af913c 160000 --- a/src/ruri +++ b/src/ruri @@ -1 +1 @@ -Subproject commit 88b0830aaab66fbaedbc0903cd4bcb9e7d0d9719 +Subproject commit 8af913ceb17855b5463663aee3406326c422ddbd From d0e0fc01224ab7a4ec321b85e1a7c7711d80e0c3 Mon Sep 17 00:00:00 2001 From: Moe-hacker Date: Thu, 28 May 2026 23:16:05 +0800 Subject: [PATCH 14/16] doc: update readme.md --- README.md | 123 +++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 99 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index 3408020..71063a3 100644 --- a/README.md +++ b/README.md @@ -22,10 +22,13 @@ * This program has no Super Cow Powers. ``` This project does not follow OCI standard and can only be a `PARTIAL` replacement of docker, this project is still under development. -For Android users, You might need to root your phone before using rurima, some container might not work properly with proot. -# Presets: -We are working on some presets for using rurima to build your own projects, you can find them in the [presets](presets) directory. -The first preset is for running debian vm with avf on MTK devices, and we will add more presets in the future, PRs are welcome! +For Android users, You might need to root your phone before using rurima, some container might not work properly with proot. +# About: +So, what is rurima? +The enhanced version of ruri. +[ruri](https://github.com/Moe-hacker/ruri) only focus on running container, but rurima can also provide the function of getting rootfs image and backup/restore. +And it will be a more powerful container manager in the fulture. +With the `docker` and `lxc` subcommand of rurima, you can search & get & unpack images from dockerhub or LXC mirror easily. # Features: - Get rootfs images from dockerhub or LXC mirror. - Automatic parse docker image config and convert to ruri cmdline. @@ -35,32 +38,104 @@ The first preset is for running debian vm with avf on MTK devices, and we will a - Static binary for multiple architectures. - Built-in OTA(upgrade) feature. -In a word, rurima is a lightweight container implementation, it tries to get the most features of docker with the least dependencies, even when your kernel does not support cgroups or namespaces. +In a word, rurima is a lightweight container implementation, it tries to get the most features of docker with the least dependencies, even when your kernel does not support cgroups or namespaces. +# Demo: + +
+Click to expand + +```text +~ $ sudo rurima pull openlistteam/openlist ./openlist +Pulling 20158f18ba671f0b as layer-0 +[///////////////////////////////////////////////////////////////////////////////] 100.00% +Extracting layer-0 +[///////////////////////////////////////////////////////////////////////////////] 100.00% +Pulling ec81343d31bcd4b6 as layer-1 +[///////////////////////////////////////////////////////////////////////////////] 100.00% +Extracting layer-1 +[///////////////////////////////////////////////////////////////////////////////] 100.00% +Pulling 889dce16043c6e0b as layer-2 +[///////////////////////////////////////////////////////////////////////////////] 100.00% +Extracting layer-2 +[///////////////////////////////////////////////////////////////////////////////] 100.00% +Pulling 26e754cd7c62b57e as layer-3 +[///////////////////////////////////////////////////////////////////////////////] 100.00% +Extracting layer-3 +[///////////////////////////////////////////////////////////////////////////////] 100.00% +Pulling 4f4fb700ef54461c as layer-4 +[///////////////////////////////////////////////////////////////////////////////] 100.00% +Extracting layer-4 +[///////////////////////////////////////////////////////////////////////////////] 100.00% +Pulling bd69fdf7a20439e0 as layer-5 +[///////////////////////////////////////////////////////////////////////////////] 100.00% +Extracting layer-5 +[///////////////////////////////////////////////////////////////////////////////] 100.00% +Pulling ec5dfd7cdbbd5a97 as layer-6 +[///////////////////////////////////////////////////////////////////////////////] 100.00% +Extracting layer-6 +[///////////////////////////////////////////////////////////////////////////////] 100.00% +Pulling 53c5100b64211b73 as layer-7 +[///////////////////////////////////////////////////////////////////////////////] 100.00% +Extracting layer-7 +[///////////////////////////////////////////////////////////////////////////////] 100.00% +Pulling 4f4fb700ef54461c as layer-8 +[///////////////////////////////////////////////////////////////////////////////] 100.00% +Extracting layer-8 +[///////////////////////////////////////////////////////////////////////////////] 100.00% + +Config: + Workdir: + /opt/openlist/ + Env: + PATH = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin + UMASK = 022 + RUN_ARIA2 = false + Command: + /entrypoint.sh + Entrypoint: + NULL +Run with ruri: + +rurima r -w -W /opt/openlist/ -e "PATH" "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" -e "UMASK" "022" -e "RUN_ARIA2" "false" /data/data/com.termux/files/home/openlist /entrypoint.sh +~ $ sudo rurima r -w -W /opt/openlist/ -e "PATH" "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" -e "UMASK" "022" -e "RUN_ARIA2" "false" /data/data/com.termux/files/home/openlist /entrypoint.sh +INFO[2026-05-28 15:08:49] reading config file: /opt/openlist/data/config.json +INFO[2026-05-28 15:08:49] config file not exists, creating default config file +INFO[2026-05-28 15:08:49] load config from env with prefix: +INFO[2026-05-28 15:08:49] total memory: 15371MB, available: 4204MB +INFO[2026-05-28 15:08:49] min free memory: 1024MB +INFO[2026-05-28 15:08:49] max block limit: 64MB +INFO[2026-05-28 15:08:49] auto memory limit: 4MB +INFO[2026-05-28 15:08:49] init logrus... +Successfully created the admin user and the initial password is: LfHyicxp +start HTTP server @ 0.0.0.0:5244 +``` + +
+ +- Sudo is required on Android phones. +- Enable `--privileged` option for ruri (`sudo rurima r --privileged [other options]`) might fix some compatibility issues, but it is not recommended for security reasons. + +# What's new: +- We have a unified `pull` command to get images from dockerhub or LXC mirror now. +- Some other OCI compatible registry like ghcr.io could work with `-f/--fallback` option enabled now. +- We will automatically force enable fallback mode for ghcr.io now. +# Backward compatibility: +We promise that rurima has backward compatibility of documented parts since v0.9.x, all unstable parts will be explicitly marked as WIP or unstable, and ruri has already been backward compatible. Users can always keep `rurima ota` to get the latest build. # Terms of Use: See [TERMS_OF_USE.md](TERMS_OF_USE.md) # Full usage doc: For a full usage documentation, See [USAGE.md](doc/USAGE.md). # FAQ: -See [FAQ.md](doc/FAQ.md). +See [FAQ.md](doc/FAQ.md). # Send us your feedback! Your use case, your suggestions, anyway, we would love to hear from you! [Discussions](https://github.com/RuriOSS/rurima/discussions/16) And, don't forget to `rurima ota` to get the latest build! -# What's new: -- We have a unified `pull` command to get images from dockerhub or LXC mirror now. -- Some other OCI compatible registry like ghcr.io could work with `-f/--fallback` option enabled now. -- We will automatically force enable fallback mode for ghcr.io now. -# Backward compatibility: -We promise that rurima has backward compatibility of documented parts since v0.9.x, all unstable parts will be explicitly marked as WIP or unstable, and ruri has already been backward compatible. Users can always keep `rurima ota` to get the latest build. -For any issue, please notify us, and we will fix it ASAP. -# About: -So, what is rurima? -The enhanced version of ruri. -[ruri](https://github.com/Moe-hacker/ruri) only focus on running container, but rurima can also provide the function of getting rootfs image and backup/restore. -And it will be a more powerful container manager in the fulture. -With the `docker` and `lxc` subcommand of rurima, you can search & get & unpack images from dockerhub or LXC mirror easily. +# Presets: +We are working on some presets for using rurima to build your own projects, you can find them in the [presets](presets) directory. +The first preset is for running debian vm with avf on MTK devices, and we will add more presets in the future, PRs are welcome! # Download: You can get rurima binary (staticly linked) for arm64, armv7, armhf, riscv64, i386, loong64, s390x, ppc64le and x86_64 from the release page. Or run the follwing command to get rurima to ./rurima and ./rurima-dbg(debug version): @@ -84,11 +159,6 @@ For Alpine based system, run: ``` apk add wget curl jq coreutils file proot tar xz gzip ``` -# About suid or caps: -Rurima does not allow to set any suid/sgid (with root) or capability on it, it will check it in main() and error() if detected these unsafe settings. -So, please always use sudo instead. -# Reporting bugs: -Please use the debug version(rurima-dbg) in release to get debug logs, and please tell me the command you run to cause the unexpected behavior you think! # Dependent: rurima needs tar, xz, gzip, file, you can find these static binary for aarch64, armv7, x86_64, i386 or riscv64 in: [tar-static](https://github.com/Moe-sushi/tar-static) @@ -112,6 +182,11 @@ So that you download: https://mirrors.tuna.tsinghua.edu.cn/alpine/edge/testing/aarch64/proot-static-5.4.0-r1.apk ``` and finally, tar -xvf *.apk to unpack it. So you got proot.static, rename it to proot and put it in your $PATH. +# About suid or caps: +Rurima does not allow to set any suid/sgid (with root) or capability on it, it will check it in main() and error() if detected these unsafe settings. +So, please always use sudo instead. +# Reporting bugs: +Please use the debug version(rurima-dbg) in release to get debug logs, and please tell me the command you run to cause the unexpected behavior you think! # TODO: Manage ruri containers and configs. From 0db3c6d06195e0aadf188d95c24ef6aa3abeeb6c Mon Sep 17 00:00:00 2001 From: Moe-hacker Date: Thu, 28 May 2026 23:21:01 +0800 Subject: [PATCH 15/16] doc: update readme.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 71063a3..4c2cbe0 100644 --- a/README.md +++ b/README.md @@ -120,8 +120,6 @@ start HTTP server @ 0.0.0.0:5244 - We have a unified `pull` command to get images from dockerhub or LXC mirror now. - Some other OCI compatible registry like ghcr.io could work with `-f/--fallback` option enabled now. - We will automatically force enable fallback mode for ghcr.io now. -# Backward compatibility: -We promise that rurima has backward compatibility of documented parts since v0.9.x, all unstable parts will be explicitly marked as WIP or unstable, and ruri has already been backward compatible. Users can always keep `rurima ota` to get the latest build. # Terms of Use: See [TERMS_OF_USE.md](TERMS_OF_USE.md) # Full usage doc: @@ -129,6 +127,8 @@ For a full usage documentation, See [USAGE.md](doc/USAGE.md). # FAQ: See [FAQ.md](doc/FAQ.md). +# Backward compatibility: +We promise that rurima has backward compatibility of documented parts since v0.9.x, all unstable parts will be explicitly marked as WIP or unstable, and ruri has already been backward compatible. Users can always keep `rurima ota` to get the latest build. # Send us your feedback! Your use case, your suggestions, anyway, we would love to hear from you! [Discussions](https://github.com/RuriOSS/rurima/discussions/16) From e8c1bc5b20bd45c84b93dfa466e85cbf744207e3 Mon Sep 17 00:00:00 2001 From: Moe-hacker Date: Sun, 31 May 2026 05:01:17 +0800 Subject: [PATCH 16/16] non: sync ruri update --- CMakeLists.txt | 1 + src/ruri | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0bc6c25..975b049 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -32,6 +32,7 @@ set(RURIMA_CORE_SOURCES src/ruri/src/rootless.c src/ruri/src/mount.c src/ruri/src/k2v.c + src/ruri/src/k2v3.c src/ruri/src/elf-magic.c src/ruri/src/config.c src/ruri/src/cgroup.c diff --git a/src/ruri b/src/ruri index 8af913c..b7b31e2 160000 --- a/src/ruri +++ b/src/ruri @@ -1 +1 @@ -Subproject commit 8af913ceb17855b5463663aee3406326c422ddbd +Subproject commit b7b31e218d020a5fa13f5d42886f85f698bf77d3