Change links from microsoft github to codeberg.

This commit is contained in:
Rob Landley 2026-01-18 14:41:33 -06:00
parent c1a3470842
commit ea6c172dad
7 changed files with 33 additions and 27 deletions

4
README
View File

@ -151,7 +151,7 @@ The three important URLs for communicating with the toybox project are:
mailing list: http://lists.landley.net/listinfo.cgi/toybox-landley.net mailing list: http://lists.landley.net/listinfo.cgi/toybox-landley.net
git repo: http://github.com/landley/toybox git repo: http://codeberg.org/landley/toybox
The maintainer prefers patches be sent to the mailing list. If you use git, The maintainer prefers patches be sent to the mailing list. If you use git,
the easy thing to do is: the easy thing to do is:
@ -161,7 +161,7 @@ the easy thing to do is:
Then send a file attachment. The list holds messages from non-subscribers Then send a file attachment. The list holds messages from non-subscribers
for moderation, but I usually get to them in a day or two. for moderation, but I usually get to them in a day or two.
I download github pull requests as patches and apply them with "git am" I download codeberg pull requests as patches and apply them with "git am"
(which avoids gratuitous merge commits). Sometimes I even remember to close (which avoids gratuitous merge commits). Sometimes I even remember to close
the pull request. the pull request.

View File

@ -88,7 +88,7 @@ shipped with Android due to the license. As long as we're starting over anyway,
we can do a better job.</p> we can do a better job.</p>
<p>Toybox's current minimal native development environment builder is a new <p>Toybox's current minimal native development environment builder is a new
<a href=https://github.com/landley/toybox/blob/master/scripts/mkroot.sh>tiny <a href=https://codeberg.org/landley/toybox/src/branch/master/mkroot/mkroot.sh>tiny
implementation</a> integrated into the toybox source. implementation</a> integrated into the toybox source.
The "make root" target will create a simple toybox chroot The "make root" target will create a simple toybox chroot
(by default in the root/host directory), and adding a LINUX= argument to (by default in the root/host directory), and adding a LINUX= argument to
@ -98,7 +98,7 @@ bootable system with a wrapper script to run it under the emulator
<p>The list of commands remaining before we can build Linux From Scratch under <p>The list of commands remaining before we can build Linux From Scratch under
the result (with an appropriate the result (with an appropriate
<a href=https://github.com/landley/toybox/blob/master/scripts/mcm-buildall.sh>compiler</a>) <a href=https://codeberg.org/landley/toybox/src/branch/master/scripts/mcm-buildall.sh>compiler</a>)
is tracked <a href=roadmap.html#dev_env>in is tracked <a href=roadmap.html#dev_env>in
the roadmap</a>, and doing so is one of the main goals for toybox's 1.0 the roadmap</a>, and doing so is one of the main goals for toybox's 1.0
release.</p> release.</p>
@ -150,7 +150,7 @@ kind of nice to have.</p>
<b><h2><a name="downloads" />Download</h2></b> <b><h2><a name="downloads" />Download</h2></b>
<p>This project is maintained as a <a href=https://github.com/landley/toybox>git <p>This project is maintained as a <a href=https://codeberg.org/landley/toybox>git
archive</a>, and also offers <a href=http://landley.net/toybox/downloads>source archive</a>, and also offers <a href=http://landley.net/toybox/downloads>source
tarballs</a> and <a href=http://landley.net/toybox/bin>static binaries</a> tarballs</a> and <a href=http://landley.net/toybox/bin>static binaries</a>
of the release versions.</p> of the release versions.</p>

View File

@ -468,8 +468,8 @@ the linux kernel source's
utf8 and unicode, and our terminal control outputs ANSI utf8 and unicode, and our terminal control outputs ANSI
<a href=https://man7.org/linux/man-pages/man4/console_codes.4.html>escape sequences</a>. <a href=https://man7.org/linux/man-pages/man4/console_codes.4.html>escape sequences</a>.
Toybox gets <a href=faq.html#cross>tested</a> with gcc and llvm on glibc, Toybox gets <a href=faq.html#cross>tested</a> with gcc and llvm on glibc,
musl-libc, and bionic, plus occasional <a href=https://github.com/landley/toybox/blob/master/kconfig/freebsd_miniconfig>FreeBSD</a> and musl-libc, and bionic, plus occasional <a href=https://codeberg.org/landley/toybox/src/branch/master/kconfig/freebsd_miniconfig>FreeBSD</a> and
<a href=https://github.com/landley/toybox/blob/master/kconfig/macos_miniconfig>MacOS</a> builds for subsets <a href=https://codeberg.org/landley/toybox/src/branch/master/kconfig/macos_miniconfig>MacOS</a> builds for subsets
of the commands.</p> of the commands.</p>
<p>For the build environment and runtime environment, toybox depends on <p>For the build environment and runtime environment, toybox depends on
@ -508,7 +508,7 @@ it's not out yet.)</p>
We use a few of the new features like compound literals (6.5.2.5) and structure We use a few of the new features like compound literals (6.5.2.5) and structure
initialization by member name with unnamed members zeroed (6.7.9), initialization by member name with unnamed members zeroed (6.7.9),
but mostly we "officially" went from c99 to C11 to work around a but mostly we "officially" went from c99 to C11 to work around a
<a href=https://github.com/landley/toybox/commit/3625a260065b>clang compiler bug</a>. <a href=https://codeberg.org/landley/toybox/commit/3625a260065b>clang compiler bug</a>.
The main thing we use from c99 that c89 hadn't had was // single line comments. The main thing we use from c99 that c89 hadn't had was // single line comments.
(We mostly don't even use C99's explicit width data types, ala uint32_t and (We mostly don't even use C99's explicit width data types, ala uint32_t and
friends, because LP64 handles that for us.)</p> friends, because LP64 handles that for us.)</p>

View File

@ -266,7 +266,7 @@ failing tests. The default VERBOSE=fail stops at the first such failure.</p>
<hr /><h2><a name="when" />Q: When were historical toybox versions released?</h2> <hr /><h2><a name="when" />Q: When were historical toybox versions released?</h2>
<p>A: For vanilla releases, check the <p>A: For vanilla releases, check the
<a href=https://github.com/landley/toybox/tags>date on the commit tag</a> <a href=https://codeberg.org/landley/toybox/tags>date on the commit tag</a>
or <a href=https://landley.net/toybox/downloads/binaries/>the or <a href=https://landley.net/toybox/downloads/binaries/>the
example binaries</a> against the output of "toybox --version". example binaries</a> against the output of "toybox --version".
Between releases the --version Between releases the --version
@ -299,7 +299,7 @@ info for that one.</p>
<p>A: Ideally on the <a href=http://lists.landley.net/listinfo.cgi/toybox-landley.net>mailing list</a>, although <a href=mailto:rob@landley.net>emailing the <p>A: Ideally on the <a href=http://lists.landley.net/listinfo.cgi/toybox-landley.net>mailing list</a>, although <a href=mailto:rob@landley.net>emailing the
maintainer</a> is a popular if slightly less reliable alternative. maintainer</a> is a popular if slightly less reliable alternative.
Issues submitted to <a href=https://github.com/landley/toybox>github</a> Issues submitted to <a href=https://codeberg.org/landley/toybox>codeberg</a>
are generally dealt with less promptly, but mostly get done eventually. are generally dealt with less promptly, but mostly get done eventually.
AOSP has its <a href=https://source.android.com/setup/contribute/report-bugs>own bug reporting mechanism</a> (although for toybox they usually forward them AOSP has its <a href=https://source.android.com/setup/contribute/report-bugs>own bug reporting mechanism</a> (although for toybox they usually forward them
to the mailing list) and Android vendors usually forward them to AOSP which to the mailing list) and Android vendors usually forward them to AOSP which
@ -334,8 +334,8 @@ and its original author (Rob Landley)
continues to maintain the open source project.</p> continues to maintain the open source project.</p>
<p>Android's base OS maintainer (Elliott Hughes, I.E. enh) <p>Android's base OS maintainer (Elliott Hughes, I.E. enh)
<a href=https://github.com/landley/toybox/commit/69a9f257234a>ported</a> <a href=https://codeberg.org/landley/toybox/commit/69a9f257234a>ported</a>
<a href=https://github.com/landley/toybox/commit/6a29bb1ebe62>toybox</a> <a href=https://codeberg.org/landley/toybox/commit/6a29bb1ebe62>toybox</a>
to Android in 2014, merged it into Android M (Marshmallow), and remains to Android in 2014, merged it into Android M (Marshmallow), and remains
Android's toybox maintainer. (He explained it in his own words in Android's toybox maintainer. (He explained it in his own words in
<a href=http://androidbackstage.blogspot.com/2016/07/episode-53-adb-on-adb.html>this podcast</a>, starting either 18 or 20 minutes in depending how <a href=http://androidbackstage.blogspot.com/2016/07/episode-53-adb-on-adb.html>this podcast</a>, starting either 18 or 20 minutes in depending how
@ -381,7 +381,7 @@ and thus spends less time coding than he does sitting in meetings where testers
talk to security people about vendor issues.</p> talk to security people about vendor issues.</p>
<p>Android has many other coders and security people who submit the occasional <p>Android has many other coders and security people who submit the occasional
toybox patch, but of the last 1000 commits at the <a href=https://github.com/landley/toybox/commit/88b34c4bd3f8>time toybox patch, but of the last 1000 commits at the <a href=https://codeberg.org/landley/toybox/commit/88b34c4bd3f8>time
of writing</a> this FAQ entry, Elliott submitted 276 and all other google.com of writing</a> this FAQ entry, Elliott submitted 276 and all other google.com
or android.com addresses combined totaled 17. (Rob submitted 591, leaving or android.com addresses combined totaled 17. (Rob submitted 591, leaving
116 from other sources, but for both Rob and Elliott there's a lot of "somebody 116 from other sources, but for both Rob and Elliott there's a lot of "somebody
@ -554,6 +554,8 @@ $ exit
<p>But the rest of the hermetic build works without it:</p> <p>But the rest of the hermetic build works without it:</p>
<blockquote><pre> <blockquote><pre>
$ cc scripts/kconfig.c
$ KCONFIG_ALLCONFIG=kconfig/macos_miniconfig ./a.out -n &gt; .config
$ scripts/prereq/build.sh #ignoring SO many warnings $ scripts/prereq/build.sh #ignoring SO many warnings
$ mkdir prereq; mv toybox-prereq prereq/ $ mkdir prereq; mv toybox-prereq prereq/
$ for i in $(prereq/toybox-prereq); do ln -s toybox-prereq prereq/$i; done $ for i in $(prereq/toybox-prereq); do ln -s toybox-prereq prereq/$i; done
@ -680,13 +682,13 @@ Cobol, most people just try to get on with their lives.)</p>
<p>These cross compilers are built from the <p>These cross compilers are built from the
<a href=http://musl.libc.org/>musl-libc</a> maintainer's <a href=http://musl.libc.org/>musl-libc</a> maintainer's
<a href=https://github.com/richfelker/musl-cross-make>musl-cross-make</a> <a href=https://github.com/richfelker/musl-cross-make>musl-cross-make</a>
project, built by running toybox's <a href=https://github.com/landley/toybox/blob/master/scripts/mcm-buildall.sh>scripts/mcm-buildall.sh</a> in that directory, project, built by running toybox's <a href=https://codeberg.org/landley/toybox/src/branch/master/scripts/mcm-buildall.sh>scripts/mcm-buildall.sh</a> in that directory,
and then symlink the resulting "ccc" subdirectory into toybox where and then symlink the resulting "ccc" subdirectory into toybox where
"make root CROSS=" can find them, ala:</p> "make root CROSS=" can find them, ala:</p>
<blockquote><b><pre> <blockquote><b><pre>
cd ~ cd ~
git clone https://github.com/landley/toybox git clone https://codeberg.org/landley/toybox
git clone https://github.com/richfelker/musl-cross-make git clone https://github.com/richfelker/musl-cross-make
cd musl-cross-make cd musl-cross-make
../toybox/scripts/mcm-buildall.sh # this takes a while ../toybox/scripts/mcm-buildall.sh # this takes a while
@ -720,7 +722,7 @@ LDFLAGS=--static make distclean defconfig toybox CROSS=m68k-linux-musl-
won't run on your host unless you install musl's libc.so into the system won't run on your host unless you install musl's libc.so into the system
libraries (which is an accident waiting to happen adding a second C library libraries (which is an accident waiting to happen adding a second C library
to most glibc linux distribution) or play with $LD_LIBRARY_PATH. to most glibc linux distribution) or play with $LD_LIBRARY_PATH.
(The <a href=https://github.com/landley/toybox/blob/master/scripts/root/dynamic>dynamic</a> package (The <a href=https://codeberg.org/landley/toybox/src/branch/master/mkroot/packages/dynamic>dynamic</a> package
in mkroot copies the shared libraries out of the toolchain to create a dynamic in mkroot copies the shared libraries out of the toolchain to create a dynamic
linking environment in the root filesystem, but it's not nearly as well linking environment in the root filesystem, but it's not nearly as well
tested.)</p> tested.)</p>
@ -824,9 +826,12 @@ auditable version of the cmdline portion of that base.</p>
<hr /><h2><a name="mkroot" />Q: How do you build a working Linux system with toybox?</h2> <hr /><h2><a name="mkroot" />Q: How do you build a working Linux system with toybox?</h2>
<p>A: Toybox has a built-in <a href=https://github.com/landley/toybox/blob/master/mkroot/mkroot.sh>system builder</a> called "<a href=https://github.com/landley/toybox/blob/master/mkroot/README>mkroot</a>", with the Makefile target "<b>make <p>A: Toybox has a built-in
root</b>". To enter the resulting root filesystem, "<b>sudo chroot <a href=https://codeberg.org/landley/toybox/src/branch/master/mkroot/mkroot.sh>system builder</a>
root/host/fs /init</b>". Type "exit" to get back out.</p> called "<a href=https://codeberg.org/landley/toybox/src/branch/master/mkroot/README>mkroot</a>",
with the Makefile target "<b>make root</b>". To enter the resulting root
filesystem, "<b>sudo chroot root/host/fs /init</b>".
Type "exit" to get back out.</p>
<p>Prebuilt binary versions of these system images, suitable for running <p>Prebuilt binary versions of these system images, suitable for running
under the emulator <a href=https://qemu.org>qemu</a>, are uploaded to under the emulator <a href=https://qemu.org>qemu</a>, are uploaded to
@ -865,13 +870,14 @@ pointing at a directory full of cross compilers. The ones I test this with are
built from the musl-libc maintainer's built from the musl-libc maintainer's
<a href=https://github.com/richfelker/musl-cross-make>musl-cross-make</a> <a href=https://github.com/richfelker/musl-cross-make>musl-cross-make</a>
project, built by running toybox's project, built by running toybox's
<a href=https://github.com/landley/toybox/blob/master/scripts/mcm-buildall.sh>scripts/mcm-buildall.sh</a> in a musl-cross-make checkout directory, <a href=https://codeberg.org/landley/toybox/src/branch/master/scripts/mcm-buildall.sh>scripts/mcm-buildall.sh</a>
in a musl-cross-make checkout directory,
and then symlinking the resulting "ccc" subdirectory into toybox where CROSS= and then symlinking the resulting "ccc" subdirectory into toybox where CROSS=
can find them:</p> can find them:</p>
<blockquote><b><pre> <blockquote><b><pre>
cd ~ cd ~
git clone https://github.com/landley/toybox git clone https://codeberg.org/landley/toybox
git clone https://github.com/richfelker/musl-cross-make git clone https://github.com/richfelker/musl-cross-make
cd musl-cross-make cd musl-cross-make
../toybox/scripts/mcm-buildall.sh # this takes a while ../toybox/scripts/mcm-buildall.sh # this takes a while

View File

@ -25,7 +25,7 @@
<b>Download</b> <b>Download</b>
<ul> <ul>
<li>Git repo: <li>Git repo:
<ul><li><a href="https://github.com/landley/toybox">github</a></li> <ul><li><a href="https://codeberg.org/landley/toybox">codeberg</a></li>
<li><a href=https://landley.net/toybox/git>local</a></li> <li><a href=https://landley.net/toybox/git>local</a></li>
</ul> </ul>
</li> </li>
@ -47,7 +47,7 @@
<ul> <ul>
<li><a href="http://lists.landley.net/listinfo.cgi/toybox-landley.net">Mailing List</a></li> <li><a href="http://lists.landley.net/listinfo.cgi/toybox-landley.net">Mailing List</a></li>
<li>IRC #toybox on libera.chat</li> <li>IRC #toybox on libera.chat</li>
<li><a href=https://github.com/landley/toybox/commits/master.atom>Commit RSS feed</a></li> <li><a href="https://codeberg.org/landley/toybox.rss">Commit RSS feed</a></li>
<li><a href="/notes.html">Maintainer's Blog</a></li> <li><a href="/notes.html">Maintainer's Blog</a></li>
<li><a href="https://patreon.com/landley">Patreon</a></li> <li><a href="https://patreon.com/landley">Patreon</a></li>
</ul> </ul>

View File

@ -37,7 +37,7 @@ public domain code</a> and slaps <a href=http://www.opensource.apple.com/source/
<p>To work around this perception, the above license is the <p>To work around this perception, the above license is the
<a href=https://www.openbsd.org/policy.html>OpenBSD suggested template <a href=https://www.openbsd.org/policy.html>OpenBSD suggested template
license</a>, <a href=https://github.com/landley/toybox/commit/ee86b1d8e25cb0ca9d418b33eb0dc5e7716ddc1e>minus the half sentence</a> license</a>, <a href=https://codeberg.org/landley/toybox/commit/ee86b1d8e25cb0ca9d418b33eb0dc5e7716ddc1e>minus the half sentence</a>
requiring the license text be copied verbatim into derived works. If 2BSD is requiring the license text be copied verbatim into derived works. If 2BSD is
ok, then 0BSD should be ok, despite being equivalent to placing code in the ok, then 0BSD should be ok, despite being equivalent to placing code in the
public domain.</p> public domain.</p>

View File

@ -45,7 +45,7 @@ $ ls --help
<p>To compile toybox from source:</p> <p>To compile toybox from source:</p>
<blockquote><p> <blockquote><p>
$ git clone https://github.com/landley/toybox<br /> $ git clone https://codeberg.org/landley/toybox<br />
$ cd toybox<br /> $ cd toybox<br />
$ make defconfig toybox<br /> $ make defconfig toybox<br />
$ ./toybox<br /> $ ./toybox<br />
@ -61,7 +61,7 @@ to provide a portable executable without external userspace dependencies.
To reproduce that:</p> To reproduce that:</p>
<blockquote><p> <blockquote><p>
$ git clone https://github.com/landley/toybox<br /> $ git clone https://codeberg.org/landley/toybox<br />
$ cd toybox<br /> $ cd toybox<br />
$ wget https://landley.net/bin/toolchains/latest/x86_64-linux-musl-cross.tar.xz<br /> $ wget https://landley.net/bin/toolchains/latest/x86_64-linux-musl-cross.tar.xz<br />
$ tar xvf x86_64-linux-musl-cross.tar.xz<br /> $ tar xvf x86_64-linux-musl-cross.tar.xz<br />
@ -71,7 +71,7 @@ $ ./toybox
<p>You can also build individual toybox commands as standalone executables, <p>You can also build individual toybox commands as standalone executables,
either by name ("<b>make sed</b>") or using the "<b>make change</b>" target (as in change either by name ("<b>make sed</b>") or using the "<b>make change</b>" target (as in change
for a $20) to build all of them at once. This is much less efficient than for a $20 bill) to build all of them at once. This is much less efficient than
the default build, the individual commands add up to around ten times the the default build, the individual commands add up to around ten times the
size of the equivalent all-in-one toybox binary.</p> size of the equivalent all-in-one toybox binary.</p>