gnuboot/website
Denis 'GNUtoo' Carikli 967c4b5b05
website: review BSD page index and convert to GNU Boot point of view.
Since the GNU Boot project doesn't want to force any of its
contributors to test with nonfree distributions or operating systems,
we can't review the accuracy of the BSD pages, and there are no GNU
Boot users who already use BSD systems that contacted the GNU Boot
project.

So the solution here is instead to document the current project
decisions, to point to freedom reviews of the BSD operating systems by
the GNU project, and to convert the articles to refer to what
Libreboot stated about BSD systems, while taking the point of view of
GNU Boot.

Since Libreboot already very strongly discouraged the use of GRUB to
boot encrypted BSD systems, users using BSD systems probably have
followed this advice or were aware of it, so this enables us to remove
support for BSD encryption inside GRUB without the need to try to
directly contact users.

Still, as I plan to try to do that (to reduce GRUB's size for
computers with 512KiB flash size), it's still a good idea good idea to
document it inside the page as well to explain why, according to GNU
Boot (and not LibreBoot) it is a good idea not to rely on GRUB images
for booting encrypted BSD systems.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien Bourmault <neox@gnu.org>
2024-11-12 12:16:28 +01:00
..
history website: remove history/git-history.jpg 2024-11-12 12:16:24 +01:00
hwdumps website: move hwdumps out of the pages directory. 2024-06-11 20:30:00 +02:00
img Remove old logos, and make the website point to the new ones. 2024-06-16 12:55:14 +02:00
pages website: review BSD page index and convert to GNU Boot point of view. 2024-11-12 12:16:28 +01:00
.gitignore website: remove history/git-history.jpg 2024-11-12 12:16:24 +01:00
COPYING Merge website and website-build. 2024-06-11 20:29:47 +02:00
Makefile.am website: properly handle the dot dependency. 2024-11-12 12:16:21 +01:00
README Merge website and website-build. 2024-06-11 20:29:47 +02:00
autogen.sh Merge website and website-build. 2024-06-11 20:29:47 +02:00
build.sh website: Remove news generation. 2024-09-08 17:37:11 +02:00
check.sh website: make the website prefix (software/gnuboot) configurable. 2024-06-11 20:29:57 +02:00
configure.ac website: properly handle the dot dependency. 2024-11-12 12:16:21 +01:00
index.html.tmpl website: make the website prefix (software/gnuboot) configurable. 2024-06-11 20:29:57 +02:00
lighttpd.conf.tmpl website: add history page of the GNU Boot git repositories. 2024-08-30 16:04:55 +02:00
serve.sh website: serve.sh: update copyright headers. 2024-09-06 17:39:04 +02:00
site.cfg.tmpl website: Remove news generation. 2024-09-08 17:37:11 +02:00

README

== Introduction ==
This directory contains both the website in pages/ and build code to
easily build and deploy the GNU Boot website with very few commands.

If you want to test your own modifications to the dependencies of this
build code, you either need to use the configure options to use
external repositories that have your modifications, or you could also
modify the build.sh script to use different git repositories and/or
revisions.

== Local deployments ==
Here's how to deploy the website in a local webserver:
$ ./autogen.sh
$ ./configure
$ make serve

Then you can point a browser to http://localhost:8086/software/gnuboot/web/ or
to http://localhost:PORT/software/gnuboot/web/ if you changed the port through
./configure options.

== Deployment on https://gnu.org/software/gnuboot/ ==

The deployment to https://gnu.org/software/gnuboot/ uses rsync. As
gnu.org machine is behind a firewall, so you need to workaround
that.

A way to do that is to get a shell account on fencepost.gnu.org, and
use SSH to forward the connection to gnu.org. This can be done with
something like that in your SSH configuration:

    Host fencepost.gnu.org
       User USERNAME

    Host gnu.org
       User wwwcvs
       ProxyJump fencepost.gnu.org

In the example above you will need to adjust the fencepost USERNAME,
and modify it to suit your SSH setup if needed (for instance if you
use keys in different locations, etc). Of course, you'll have to get
access to gnu.org ssh server too.

See https://www.gnu.org/software/README.accounts.html for more details
about Fencepost accounts, the SSH fingerprints, etc.

For gnu.org, it's easier if you use an ED25519 key for gnu.org as I
have the fingerprints below. See [1] for other options.

To check that everything is setup you can then SSH into gnu.org:
    $ ssh gnu.org
    The authenticity of host '[127.0.0.1]:2224 ([127.0.0.1]:2224)' can't be established.
    ED25519 key fingerprint is SHA256:pmCf0NrBzSSYfg6DdgmlMzPWZzGpXXcPEz6LP1+o5Jc.
    This host key is known by the following other names/addresses:
        ~/.ssh/known_hosts:306: [127.0.0.1]:4444
    Are you sure you want to continue connecting (yes/no/[fingerprint])?

You can then confirm by pasting the fingerprint like that[2]:
    Are you sure you want to continue connecting (yes/no/[fingerprint])? SHA256:pmCf0NrBzSSYfg6DdgmlMzPWZzGpXXcPEz6LP1+o5Jc
    Warning: Permanently added '[127.0.0.1]:2224' (ED25519) to the list of known hosts.

Note that it is normal for the connection to gnu.org to block at this
point. You can exit it with the Ctrl+D or Ctrl+C key combinations.

At this point everything is setup.

To deploy the website, use the following commands from the website
directory:
    $ ./autogen.sh
    $ ./configure
    $ make publish

Then you can point a browser to https://gnu.org/software/gnuboot/web/

References:
-----------
[1]If you want to use RSA the easiest way is probably to contact the
   FSF system administrator that will install your key on #fsfsys and
   also ask that person for the server fingerprint. In that case it
   would be a good idea to also contribute a patch to add the
   fingerprint here.
[2]The 'SHA256:pmCf0NrBzSSYfg6DdgmlMzPWZzGpXXcPEz6LP1+o5Jc'
   fingerprint was confirmed to me the 24 October 2023 on the #fsfsys
   IRC channel on liberachat by Ian Kelling, a system administrator
   that has access to the gnu.org machine: "18:07 < iank> i see that
   SHA256:pmCf0NrBzSSYfg6DdgmlMzPWZzGpXXcPEz6LP1+o5Jc exists on the
   server".

== Dependencies ==
* autoconf
* automake
* coreutils
* guix
* lighttpd: optional: for testing the website if you don't have Guix.
* make
* tar

== License ==
This project is free software:
- For the files that are in website/pages and the the site.cfg file in
  the same directory than this README see website/pages/license.md for
  the license.
- For all the other files in the same directory than this README, you
  can redistribute them and/or modify them under the terms of the GNU
  General Public License as published by the Free Software Foundation,
  either version 3 of the License, or (at your option) any later
  version.