diff --git a/website/Makefile.am b/website/Makefile.am index d69ab9e..37384d5 100644 --- a/website/Makefile.am +++ b/website/Makefile.am @@ -27,6 +27,9 @@ endif index.html: index.html.tmpl sed -e "s#WEBSITE_PREFIX#$(WEBSITE_PREFIX)#g" "$^" > "$@" +history/git-history.jpg: history/git-history.dot + dot -T jpg history/git-history.dot > "$@" + site.cfg: site.cfg.tmpl sed -e "s#WEBSITE_PREFIX#$(WEBSITE_PREFIX)#g" "$^" > "$@" @@ -55,7 +58,7 @@ build: site.cfg endif if WANT_GUIX -check: build website.tar.gz index.html +check: build website.tar.gz index.html history/git-history.jpg rm -rf site/ mkdir -p site/$(WEBSITE_PREFIX) tar xf website.tar.gz -C site/$(WEBSITE_PREFIX) @@ -77,7 +80,7 @@ check: build website.tar.gz index.html ./check.sh --website-prefix $(WEBSITE_PREFIX) \ --tarball website.tar.gz else -check: build website.tar.gz index.html +check: build website.tar.gz index.html history/git-history.jpg rm -rf site/ mkdir -p site/$(WEBSITE_PREFIX) tar xf website.tar.gz -C site/$(WEBSITE_PREFIX) @@ -137,7 +140,7 @@ publish: website.tar.gz deploy/ \ $(RSYNC_DESTINATION)/ -website.tar.gz: build index.html +website.tar.gz: build index.html history/git-history.jpg tar \ --exclude-vcs \ --format=gnu \ @@ -147,4 +150,7 @@ website.tar.gz: build index.html website.tar.gz \ untitled/www/lbwww/site \ index.html \ - --transform="s#untitled/www/lbwww/site#web#" + history/git-history.dot \ + history/git-history.jpg \ + --transform="s#untitled/www/lbwww/site#web#" \ + --transform="s#^history/#web/history/#" diff --git a/website/history/git-history.dot b/website/history/git-history.dot new file mode 100644 index 0000000..3f8db08 --- /dev/null +++ b/website/history/git-history.dot @@ -0,0 +1,133 @@ +# Copyright (C) 2024 Denis 'GNUtoo' Carikli +# +# Permission is granted to copy, distribute and/or modify this document +# under the terms of the GNU Free Documentation License, Version 1.3 +# or any later version published by the Free Software Foundation; +# with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. +# A copy of the license is included in the website/COPYING directory. + +digraph { + subgraph cluster_osboot { + label="project current name: osboot + freedom status: includes nonfree sofware + status: abandonned + website: https://osboot.org"; + subgraph cluster_osbmk { + label="https://notabug.org/osboot/osbmk git repository"; + shape="box"; + "osbmk: first commit" [label="first commit: df76c3e Fork Libreboot 20160907 build system. Large parts have been re-written."]; + "osbmk: libre branch" [label="libre branch"]; + "osbmk: master branch" [label="master"]; + + "osbmk: first commit" -> "osbmk: libre branch"; + "osbmk: first commit" -> "osbmk: master branch"; + } + } + subgraph cluster_librebootorg { + label="project current name: libreboot + freedom status: includes nonfree sofware since 20220710 + status: ongoing + website: https://libreboot.org"; + + subgraph cluster_old_libreboot { + label="https://notabug.org/libreboot/obsolete-repository-preserved-for-historical-purposes git repository"; + "old_libreboot: last commit" [label="7242f030 add README.md talking about how this repository is obsolete"]; + "149273c6" [label="149273c6 www/downloads: remove cyberbits http:// mirror. they already have https://"]; + "112003a5" [label="112003a5 Paper build system initial import into Libreboot"]; + "old_libreboot: tag r20160907" [label="tag r20160907"]; + "old_libreboot: first commit" [label="first commit: cee90ae0 Libreboot release 6 beta 1."]; + + "old_libreboot: first commit" -> "old_libreboot: tag r20160907"; + "old_libreboot: tag r20160907" -> "112003a5"; + "112003a5" -> "149273c6"; + "149273c6" -> "old_libreboot: last commit"; + + "old_libreboot: tag r20160907" -> "osbmk: first commit" [label="removed history"]; + + } + + subgraph cluster_lbmk { + label="https://codeberg.org/libreboot/lbmk git repository"; + "osbmk: libre branch" -> "lbmk: first commit" [label="removed history"]; + "lbmk: first commit" [label="first commit: 89517ed6 libreboot!"]; + "lbmk: master" [label="master"]; + "lbmk: tag 20220710" [label="tag 20220710"]; + + "lbmk: first commit" -> "lbmk: tag 20220710" -> "lbmk: master"; + } + subgraph cluster_lbwww { + label="https://codeberg.org/libreboot/lbwww git repository"; + # I don't know if the first commit was made from scratch or if + # its content comes from somewhere else as the provenance of the + # work is not mentionned in the initial commit message and that + # often Leah reuses previous code to create the first commit. + "lbwww: before first commit" [label="?"]; + "lbwww: first commit" [label="first commit: 501e77d libreboot site"]; + "lbwww: master" [label="master"]; + "lbwww: tag 20211122" [label="tag 20211122"]; + + "lbwww: before first commit" -> "lbwww: first commit"; + "lbwww: first commit" -> "lbwww: tag 20211122" -> "lbwww: master"; + } + + + subgraph cluster_lbwww_img { + label="https://codeberg.org/libreboot/lbwww-img git repository"; + "lbwww-img: first commit" [label="first commit: 55760a6 images from old Libreboot git repo: 149273c6742aeed14ec1aaca019f552cfb109457"]; + "283ce03" [label="283ce03 wrong bad image"]; + "lbwww-img: master" [label="master"]; + + "149273c6" -> "lbwww-img: first commit" [label="removed history"]; + "lbwww-img: first commit" -> "283ce03" -> "lbwww-img: master"; + } + } + subgraph cluster_librebootat { + label="project current name: Genuine libreboot + freedom status: 100% free software + status: replaced by GNU Boot + website: https://libreboot.at"; + + subgraph cluster_libreboot_at_lbwww { + label="https://git.sr.ht/~libreboot/lbwww git repository (doesn't exit anymore)."; + "libreboot.at lbwww: first commit" [label="73c505b Add project announcement"]; + "libreboot.at lbwww: last commit" [label="efdfbca Order maintainers names alphabetically"]; + "lbwww: tag 20211122" -> "libreboot.at lbwww: first commit" [label="kept history"]; + "libreboot.at lbwww: first commit" -> "libreboot.at lbwww: last commit"; + } + } + subgraph cluster_gnuboot { + label="project current name: GNU Boot + freedom status: 100% free software + status: ongoing + website: https://gnu.org/software/gnuboot"; + subgraph cluster_acpica_mirror { + label="https://git.savannah.gnu.org/cgit/gnuboot/acpica.org-mirror.git git repository"; + "acpica.org-mirror: first commit" [label="first commit"]; + "acpica.org-mirror: main" [label="main"]; + + "acpica.org-mirror: first commit" -> "acpica.org-mirror: main"; + } + subgraph cluster_presentations { + label="https://git.savannah.gnu.org/cgit/gnuboot/presentations.git git repository"; + "presentations: first commit" [label="first commit"]; + "presentations: main" [label="main"]; + + "presentations: first commit" -> "presentations: main"; + } + subgraph cluster_gnuboot { + label="https://git.savannah.gnu.org/cgit/gnuboot.git git repository"; + "first-commit" [label="bf17993 Continue Libreboot under the GNU project"]; + "gnuboot: main" [label="main"]; + "b42fd22" [label="b42fd22 Merge the website into GNU Boot"]; + "2e12909" [label="2e12909 Add GNU Boot project announcement"]; + "54c6ae4" [label="54c6ae4 Merge the documentation/website pictures into GNU Boot"]; + + + "lbmk: tag 20220710" -> "first-commit" [label="kept history"]; + "first-commit" -> "b42fd22" -> "54c6ae4" -> "gnuboot: main"; + "libreboot.at lbwww: last commit" -> "2e12909" [label="kept history"]; + "2e12909" -> "b42fd22" [label="kept history"]; + "283ce03" -> "54c6ae4" [label="kept history"]; + } + } +} diff --git a/website/history/git-history.jpg b/website/history/git-history.jpg new file mode 100644 index 0000000..53ea9a5 Binary files /dev/null and b/website/history/git-history.jpg differ diff --git a/website/lighttpd.conf.tmpl b/website/lighttpd.conf.tmpl index a9cecb3..8ce6957 100644 --- a/website/lighttpd.conf.tmpl +++ b/website/lighttpd.conf.tmpl @@ -20,6 +20,7 @@ dir-listing.activate = "enable" index-file.names = ( "index.html" ) mimetype.assign = ( ".css" => "text/css", + ".dot" => "text/plain", ".gif" => "image/gif", ".html" => "text/html", ".jpeg" => "image/jpeg", diff --git a/website/pages/docs/history/index.md b/website/pages/docs/history/index.md new file mode 100644 index 0000000..30060f4 --- /dev/null +++ b/website/pages/docs/history/index.md @@ -0,0 +1,103 @@ +--- +title: GNU Boot source code history +... + +Introduction +============ + +The GNU Boot project decided that it was a good thing to list all the +contributors that modified a file in the copyright headers. There are +many good reasons for that: + +- It simplify things (we don't need to decide what contribution is big + enough to include its author in the copyright headers). + +- It also acknowledge people that did smaller but yet very valuable + contributions. + +- If for some reasons who we decide to include or not in the header + has some legal effects, by including more people there we + practically speaking make the copyleft stronger as the copyright + ownership is more distributed, and so a single individual cannot + easily re-license the whole project under non-copyleft licenses. + +However in the [main GNU Boot +repository](https://git.savannah.gnu.org/git/gnuboot.git) there are +many files whose copyright headers are incomplete as they miss some of +the contributors. + +Since some of the files have a very long history that spans through +multiple projects and repositories, we found the need to document the +complex history of the GNU Boot source code. + +Git history +=========== + +Here's a summary of the git history that is scattered across +different repositories and projects: + +![](../../history/git-history.jpg) + +And are the corresponding files to the image above: + +* [Image file](../../history/git-history.jpg) +* [Source file](../../history/git-history.dot) + +Before Libreboot used git +========================= + +Before using git, Libreboot was released as tarballs. + +The commit cee90ae0fce6d6aee8d78969b60c952c8890abd6 in the + +[obsolete-repository-preserved-for-historical-purposes](https://notabug.org/libreboot/obsolete-repository-preserved-for-historical-purposes) +repository has more details on the first releases. + +So far we know about these tarball releases before git: + ++------------------------------+----------+---------------------------------------------------------------------+ +| Release | date | URL | ++------------------------------+----------+---------------------------------------------------------------------+ +| 1st release | 20131212 | https://rsync.libreboot.org/oldstable/20131212/X60_source.tar.gz | ++------------------------------+----------+---------------------------------------------------------------------+ +| 2nd release | 20131213 | https://rsync.libreboot.org/oldstable/20131213/X60_source.tar.gz | ++------------------------------+----------+---------------------------------------------------------------------+ +| 3rd release | 20131214 | https://rsync.libreboot.org/oldstable/20131214/X60_source.tar.gz | ++------------------------------+----------+---------------------------------------------------------------------+ +| 4th release | 20140221 | https://rsync.libreboot.org/oldstable/20140221/X60_source.tar.gz | ++------------------------------+----------+---------------------------------------------------------------------+ +| 5th release, first revision | lost | lost | ++------------------------------+----------+---------------------------------------------------------------------+ +| 5th release, second revision | 20140622 | https://rsync.libreboot.org/oldstable/20140622/libreboot_src.tar.gz | ++------------------------------+----------+---------------------------------------------------------------------+ +| 6th release, first beta | 20140711 | https://rsync.libreboot.org/oldstable/20140711/libreboot_src.tar.gz | ++------------------------------+----------+---------------------------------------------------------------------+ + +The "6th release, first beta" is also available in git, but we don't +know yet if the git commit and the tarball are equivalent, so we +included it as well. + +Before the first Libreboot release +================================== + +The first Libreboot release (20131212) also contains several git +repositories that contains build scripts: + +* https://gitorious.org/gnutoo-for-coreboot/coreboot.git (forked + Coreboot with deblobbing and extra patches). + +* https://gitorious.org/gnutoo-for-coreboot/build-makefiles.git (build + scripts and Makefile(s)). + +So some of the files present in GNU boot may or may not come from there. + +And the gnutoo-for-coreboot repositories were made from scratch by GNUtoo. + +Incomplete history +================== + +The history of the projects presented in this page is incomplete. So +far we only have a partial code history. Contributions are +welcome. See the [git.md](../../git.md) page about various ways to +contribute to GNU Boot or to contact the project to update the +information in this page. \ No newline at end of file diff --git a/website/pages/docs/index.md b/website/pages/docs/index.md index 35888a5..115e5a7 100644 --- a/website/pages/docs/index.md +++ b/website/pages/docs/index.md @@ -25,6 +25,7 @@ Information for developers ========================== - [How to compile the libreboot source code](build/) +- [GNU Boot source code history and provenance](history/) - [Depthcharge payload](depthcharge/) (**Libreboot 20160907 only**) - [GRUB payload](grub/)