website: add history page of the GNU Boot git repositories.

While this doesn't show the complete history of GNU Boot, it is at
least useful for fixing missing copyrights inside copyright headers.

Also I tried adding the first tarball releases of Libreboot, before it
was in git, inside the same git-history.dot and it turned out to be
way too messy as some arrows ended up mostly in the same place making
it impossible to distinguish which arrow went where without using
color or other ways of distinguishing them.

However the textual version of the tarball history turned out to be
easier to read/understand so we used that.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
neox: minor fix in the commit message
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
This commit is contained in:
Denis 'GNUtoo' Carikli 2024-08-26 14:25:27 +02:00 committed by Adrien 'neox' Bourmault
parent aead2a318c
commit 388c0ef3d0
Signed by: neox
GPG Key ID: 57BC26A3687116F6
6 changed files with 248 additions and 4 deletions

View File

@ -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/#"

View File

@ -0,0 +1,133 @@
# Copyright (C) 2024 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
#
# 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"];
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 552 KiB

View File

@ -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",

View File

@ -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.

View File

@ -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/)