diff --git a/README.org b/README.org index d70e009..0584ac4 100644 --- a/README.org +++ b/README.org @@ -1,6 +1,6 @@ #+TITLE: Bootstrappable.org website -Hi there! This is the code for the [[bootstrappable.org]] website. It is a static site generated with [[http://haunt.dthompson.us/][Haunt]]. +Hi there! This is the code for the [[bootstrappable.org]] website. It is a static site generated with [[https://dthompson.us/projects/haunt.html][Haunt]]. * Hacking Here’s how to get Haunt and build the site: diff --git a/haunt.scm b/haunt.scm index 4912836..c44c5af 100644 --- a/haunt.scm +++ b/haunt.scm @@ -19,7 +19,7 @@ ;;; ;;; You should have received a copy of the Affero General Public ;;; License along with these source files. If not, see -;;; . +;;; . ;; This is a build file for Haunt. @@ -124,12 +124,12 @@ place them in the directory DEST." (a (@ (href "/who.html")) "humans") " and powered by " - (a (@ (href "https://gnu.org/software/guile")) + (a (@ (href "https://www.gnu.org/software/guile/")) "GNU Guile") ". " - (a (@ (href "http://git.savannah.gnu.org/cgit/guix/bootstrappable.git/")) + (a (@ (href "https://git.savannah.gnu.org/cgit/guix/bootstrappable.git/")) "Source code") " under the " - (a (@ (href "https://gnu.org/licenses/agpl-3.0.html")) + (a (@ (href "https://www.gnu.org/licenses/agpl-3.0.html")) "GNU AGPL") ".")) (define top-level-titles diff --git a/index.skr b/index.skr index af997c1..4037101 100644 --- a/index.skr +++ b/index.skr @@ -33,6 +33,6 @@ (li [,(anchor "What is a coder's worst nightmare?" "https://www.quora.com/What-is-a-coders-worst-nightmare/answer/Mick-Stute")]) (li [,(anchor "Defending Against Compiler-Based Backdoors" - "http://blog.regehr.org/archives/1241")]) + "https://blog.regehr.org/archives/1241")]) (li [,(anchor "Deniable Backdoors Using Compiler Bugs" "https://www.alchemistowl.org/pocorgtfo/pocorgtfo08.pdf")])))) diff --git a/notes.org b/notes.org index 395c00f..c70cb6c 100644 --- a/notes.org +++ b/notes.org @@ -15,14 +15,14 @@ ** Rather than depend on more binary blobs, throw more CPU time at it, e.g. by emulating an x86 CPU with qemu and then work from there. ** Need to reach out to compiler developers: make sure that there’s a non-self-hosted path to build the first compiler — find cooperative people in compiler projects to “bootstrap” a bootstrapping project ** try to depend only on the smallest C compiler possible -- e.g. [[http://www.landley.net/code/tinycc/][tinycc]], [[http://pcc.ludd.ltu.se/][pcc]], [[http://www.landley.net/qcc/][qcc]] +- e.g. [[https://www.landley.net/code/tinycc/][tinycc]], [[http://pcc.ludd.ltu.se/][pcc]], [[https://www.landley.net/qcc/][qcc]] - coreboot folks have a simple C compiler RAMCC(?) -** register http://bootstrappable.org, collect stories there! +** register https://bootstrappable.org, collect stories there! *** motivation: collect examples of backdoored compilers - toy example: https://manishearth.github.io/blog/2016/12/02/reflections-on-rusting-trust/ - ken thompson: reflections on trusting trust - "Defending Against Compiler-Based Backdoors" -http://blog.regehr.org/archives/1241 +https://blog.regehr.org/archives/1241 - PoC||GTFO https://www.alchemistowl.org/pocorgtfo/pocorgtfo08.pdf @@ -110,8 +110,8 @@ simple—it does not need to be optimized. Examples include: - - [[https://gnu.org/software/guile][GNU Guile]], a Scheme implementation with a self-hosted compiler, - relies on an [[http://git.savannah.gnu.org/cgit/guile.git/tree/libguile/eval.c][Scheme interpreter written in C]] for bootstrapping + - [[https://www.gnu.org/software/guile/][GNU Guile]], a Scheme implementation with a self-hosted compiler, + relies on an [[https://git.savannah.gnu.org/cgit/guile.git/tree/libguile/eval.c][Scheme interpreter written in C]] for bootstrapping purposes. Please let us know if you’d like to add your compiler to this list! @@ -125,9 +125,9 @@ provide an alternative way to build your build system. Examples include: - - [[https://gnu.org/software/make][GNU Make]] does not require a ‘make’ implementation. It can be built - using a [[http://git.savannah.gnu.org/cgit/make.git/tree/build.template][shell script]]. - - [[http://ant.apache.org/][Apache Ant]] can bootstrap with a [[https://git-wip-us.apache.org/repos/asf?p=ant.git;a=blob;f=bootstrap.sh;h=60b6ece03ce78716bc036a44226f4934b541f326;hb=HEAD][shell script]] + - [[https://www.gnu.org/software/make/][GNU Make]] does not require a ‘make’ implementation. It can be built + using a [[https://git.savannah.gnu.org/cgit/make.git/tree/build.template][shell script]]. + - [[https://ant.apache.org/][Apache Ant]] can bootstrap with a [[https://git-wip-us.apache.org/repos/asf?p=ant.git;a=blob;f=bootstrap.sh;h=60b6ece03ce78716bc036a44226f4934b541f326;hb=HEAD][shell script]] that only relies on the Java compiler. - [[https://bazel.build/][Bazel]] does not require Bazel to build itself but can be bootstrapped with a [[https://github.com/bazelbuild/bazel/blob/master/compile.sh][shell script]]. @@ -174,7 +174,7 @@ https://upstream-compiler.example.org/upstream-compiler-20161211-x86_64-linux.ta TODO: provide an example of how we do this / are going to do this in Nixpkgs / Guix / ...? -http://git.savannah.gnu.org/cgit/guix.git/commit/?id=062134985802d85066418f6ee2f327122166a567 +https://git.savannah.gnu.org/cgit/guix.git/commit/?id=062134985802d85066418f6ee2f327122166a567 * Collaboration projects diff --git a/pages/best-practices.skr b/pages/best-practices.skr index f52e506..eb5f5b4 100644 --- a/pages/best-practices.skr +++ b/pages/best-practices.skr @@ -31,7 +31,7 @@ (ul (li [,(anchor "GNU Guile" "https://gnu.org/software/guile"), a Scheme implementation with a self-hosted compiler, - relies on a ,(anchor "Scheme interpreter written in C" "http://git.savannah.gnu.org/cgit/guile.git/tree/libguile/eval.c") for bootstrapping purposes.])) + relies on a ,(anchor "Scheme interpreter written in C" "https://git.savannah.gnu.org/cgit/guile.git/tree/libguile/eval.c") for bootstrapping purposes.])) (p [Please let us know if you’d like to add your compiler to this list!]) @@ -44,8 +44,8 @@ (p [Examples include:]) (ul (li [,(anchor "GNU Make" "https://gnu.org/software/make") does not require a ,(code "make") implementation. - It can be built using a ,(anchor "shell script" "http://git.savannah.gnu.org/cgit/make.git/tree/build.template").]) - (li [,(anchor "Apache Ant" "http://ant.apache.org/") can bootstrap with a ,(anchor "shell script" "https://git-wip-us.apache.org/repos/asf?p=ant.git;a=blob;f=bootstrap.sh;h=60b6ece03ce78716bc036a44226f4934b541f326;hb=HEAD") that only relies on the Java compiler.]) + It can be built using a ,(anchor "shell script" "https://git.savannah.gnu.org/cgit/make.git/tree/build.template").]) + (li [,(anchor "Apache Ant" "https://ant.apache.org/") can bootstrap with a ,(anchor "shell script" "https://git-wip-us.apache.org/repos/asf?p=ant.git;a=blob;f=bootstrap.sh;h=60b6ece03ce78716bc036a44226f4934b541f326;hb=HEAD") that only relies on the Java compiler.]) (li [,(anchor "Buck" "https://buckbuild.com/") does not require Buck to build itself. Instead, it can be built using ,(anchor "Ant" "https://github.com/facebook/buck/blob/master/build.xml").])) @@ -75,5 +75,5 @@ ;;TODO: provide an example of how we do this / are going to do this in ;; Nixpkgs / Guix / ...? -;;http://git.savannah.gnu.org/cgit/guix.git/commit/?id=062134985802d85066418f6ee2f327122166a567 +;;https://git.savannah.gnu.org/cgit/guix.git/commit/?id=062134985802d85066418f6ee2f327122166a567 ) diff --git a/pages/projects.skr b/pages/projects.skr index 53a4e02..c0801f0 100644 --- a/pages/projects.skr +++ b/pages/projects.skr @@ -39,5 +39,5 @@ It is written in Haskell and since the first public release requires GHC to build newer versions of the compiler. It might be possible to build a first GHC from source with the Hugs interpreter and an older version of GHC. ,(anchor "This blog post describes a first attempt" - "http://elephly.net/posts/2017-01-09-bootstrapping-haskell-part-1.html") + "https://elephly.net/posts/2017-01-09-bootstrapping-haskell-part-1.html") of this project.]))) diff --git a/pages/projects/mes.md b/pages/projects/mes.md index 437e176..a3373f7 100644 --- a/pages/projects/mes.md +++ b/pages/projects/mes.md @@ -37,7 +37,7 @@ GCC is a complex beast and a binary of it is often used to bootstrap the whole system. Version 4.7 is the last version of GCC to not require a C++ compiler. This project aims to build GCC version 4.7 with a simple C compiler such as -[TinyCC](http://www.landley.net/code/tinycc/). +[TinyCC](https://www.landley.net/code/tinycc/). [Since October 2019](https://guix.gnu.org/en/blog/2019/guix-reduces-bootstrap-seed-by-50/),