To work on the website, more than one of the targets (like 'make
serve' or 'make check') are useful. So it's better to inform users
about the available targets instead of building a tarball directly.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Since we're migrating to haunt, and that 'haunt build' builds the
website, 'haunt serve' serve the website locally, and that 'haunt
publish' takes care of publishing the website, using the same target
names will make remembering the targets easier.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Without that fix, shellcheck -x complains a lot:
In build.sh line 53:
mkdir -p "$(dirname ${dst_path})"
^---------^
SC2086 (info): Double quote to prevent globbing and word splitting.
In build.sh line 82:
git -C "${dst_path}" am $(realpath ${patch})
^------------------^
SC2046 (warning): Quote this to prevent word splitting.
git -C "${dst_path}" am $(realpath ${patch})
^------^
SC2086 (info): Double quote to prevent globbing and word splitting.
In build.sh line 112:
opt="$(eval echo \$$i)"
^--
SC2086 (info): Double quote to prevent globbing and word splitting.
In build.sh line 127:
untitled_path="$(eval echo \$$(expr $i + 1))"
^------------^
SC2046 (warning): Quote this to prevent word splitting.
untitled_path="$(eval echo \$$(expr $i + 1))"
^--^
SC2003 (style): expr is antiquated.
Consider rewriting this using $((..)), ${} or [[ ]].
untitled_path="$(eval echo \$$(expr $i + 1))"
^--
SC2086 (info): Double quote to prevent globbing and word splitting.
In build.sh line 128:
i="$(expr "$i" + 1)"
^--^
SC2003 (style): expr is antiquated.
Consider rewriting this using $((..)), ${} or [[ ]].
In build.sh line 136:
i="$(expr "$i" + 1)"
^--^
SC2003 (style): expr is antiquated.
Consider rewriting this using $((..)), ${} or [[ ]].
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
When working on multiple websites the same time, having every website
using the port 8080 by default isn't very convenient.
In addition here we need a number that is somewhat easy to remember
and possibly meaningful for each website, so in general that not easy
to choose.
But in the case of GNU Boot we can find a scheme because:
- GNU Boot supports only x86 machines for now,
- the GM45 ThinkPads are probably the most well supported by GNU
Boot and also well known machines,
- that the GM45 ThinkPads use Intel CPUs,
- that 8086 is frequently used as vendor ID for Intel,
so here we can simply use 8086 as it's meaningful and at least very
easy to remember at least for people working in that field.
In addition for people not familiar with writing drivers for x86
computers, it could also reminds of a CPU also from Intel.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
The variable could be updated, but this could be misleading as it is
only used in the help of that Makefile.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
First this is more consistent as we already have a website-build
directory. Then it is also useful for migrating to haunt as 'haunt
build' puts the generated website in a 'site/' directory, so without
this rename, when the migration would be complete we'd have site/site
instead of website/site.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
The patch added support for deploying websites made with untitled in
subdirectory and was needed to make the news/ pages work.
But now the functionality has been merged upstream, so we don't need a
patch for that anymore.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
The file adding the news is named gnuboot-december-2023.md instead of
gnuboot-0.1-rc1.md as the later is understood as a translation in the
'1-rc1' lang. Renaming the file to gnuboot-0.1-rc1.en.md instead makes
untitled detect the lang correctly but then it assumes this is a
translation and adds a broken link for "English" on the new page.
For now the older Libreboot news were kept as this shows the history
of the project and since GNU Boot is a continuation of the Libreboot
project it makes sense to also keep them.
The CSS also needed to be separated from the template because
otherwise the generated news page would be incomplete and miss all
what comes before the CSS like '<!DOCTYPE html>' for instance.
Finally x-reviewed was changed into x-unreviewed because we can't set
x-reviewed for the news, so the only way to remove the banner for the
individual news is to default to reviewed (and to mark all unreviewed
files as such).
As for the Untitled patch it is needed to make the news page work.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Generating the website works again with the latest Guix revision.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
This also makes it possible to use --disable-guix on a Guix system.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Without that fix, build.sh compares the desired Untitled revision with
the GNU Boot git revision, so the comparison always fail, which leads
to broken offline builds.
This was broken from the start in the commit
cabc1cac08 ("website-build: avoid
unnecessary git fetch").
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
The previous configuration was more complicated and required two steps each
time one tried to deploy the website. The new configuration makes use of
the ProxyJump feature to allow deploying in only one step.
Signed-off-by: Adrien 'neox' Bourmault <neox@gnu.org>
GNUtoo: fixed line over 80 characters.
Acked-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
When we already have the right untitled revision checked out, we don't
need to try to fetch its revision again. This also enable offline
builds in that case.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Since we now have a very visible banner that indicates which pages
have been not been reviewed, and contribution instructions on how to
fix that, we are ready to publish the website.
Right now the deploy path of the website isn't configurable as this
would require some form of templating or processing of the markdown
files, so the website was simply moved from
gnu.org/software/gnuboot/test to gnu.org/software/gnuboot.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
The new untitled revision has a fix for having spaces inside the
website title.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Before we needed to fetch the website from git because it was in a
separate repository.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Without that fix, we end up with 'Fix SC2086 (info): Double quote to
prevent globbing and word splitting.' shellcheck warnings.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Without that fix, using shellcheck on this file results in several warning
like this one:
In website-build/build.sh line 101:
if [ $i -ge $# ] ; then
^-- SC2086 (info):
Double quote to prevent
globbing and word splitting.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Without that fix, using shellcheck on this file results in this
warning:
In website-build/check.sh line 56:
nr_files=$(tar tf "${tarball}" | grep -v '/' | wc -l)
^---------^ SC2126 (style):
Consider using
'grep -c' instead of 'grep|wc -l'.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Without that fix, using shellcheck on this file results in several warning
like this one:
In website-build/build.sh line 32:
echo -e "\t-h, --help"
^-- SC3037 (warning):
In POSIX sh, echo flags are undefined.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Without that fix, using shellcheck on this file results in this
warning:
In website-build/check.sh line 58:
if [ ${nr_files} -eq 1 ] ; then
^---------^ SC2086 (info):
Double quote to prevent globbing and word splitting.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Without that fix, using shellcheck on this file results in several warning
like this one:
In website-build/check.sh line 27:
echo -e "\t-h, --help"
^-- SC3037 (warning):
In POSIX sh, echo flags are undefined.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
The build.sh script currently hardcodes the repository URL and
revisions or branches name it uses.
If contributors aren't aware of that they could end up testing a
revision that is different from the one that they are working on.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
The website and documentation originally comes from Libreboot and
Libreboot didn't have separate website and documentation.
And we need to reuse it because without it, GNU Boot would be almost
useless as without documentation most users would not be able to
install it.
The website is about 900 files and consist in about 27 MiB of
pictures.
Given that the website is not ready yet and that we are looking for
contributions to help us fixing it, we will end up having to update it
often, and ideally in a timely manner as well not to discourage
contributions.
So we needed some way to deployment the website with very few
commands.
GNU typically use CVS for deploying the website, but it is harder to
use than rsync for automatizing the deployment of a website.
To do that someone would have to write or adapt code to do the
deployment automatically, but that can potentially be time consuming
to do, especially if it needs to be done efficiently (for instance by
only adding files that changed since the last time) not to load too
much the CVS server.
Because of all that, an rsync access was temporarily setup for us, to
enable us to publish the website now and to be able to fixing this
deployment issue later and/or ask for help on the website to fix it.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Guix is being used to build the website and Guix has the 'guix deploy'
command, so this should look more familiar to people using Guix.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Most GNU projects use a CVS repository to publish their web pages.
For some reasons, in the CVS root directory (inside the gnuboot CVS
module) the only file that we can add is index.html. Subdirectories
don't have this limitation.
So we add a test for that.
In addition when the website will be ready we will most likely have an
html file that redirect to a subdirectory (like /web/) and so we add
the html file for doing that too.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Since the website and the images were merged in GNU boot respectively
in site/ and www/, we can now modify GNU boot to only be cloned once
to build the website.
The image path was also modified to make images work both in the local
served website and at gnu.org and also to minimize the differences
between the test and deployment setups.
Libreboot.at also hosted a copy of Untitled to make it simple to
control the revision being used.
But in the longer term, it would be a bad idea to do that again for
GNU boot since there are plans to convert the website and/or
documentation to the texinfo format, and so at some point Untitled
will stop being used, and we don't want to end up with a git
repository that needs to be kept for historic reasons but that is
unused.
Since the website isn't ready we also have a redirection to Savannah
to make sure that visitors are redirected to something meaningful.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Neox: Suggested the split in smaller commits and various ways to do
that (including some that were used).
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Since the website and the images were merged in GNU boot respectively
in site/ and www/, we can now modify GNU boot to only be cloned once
to build the website.
This also requires to move the images inside site/ at the place where
website-build expects them.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Neox: Suggested the split from the "website-build: build.sh: switch to
GNU Boot repositories." commit.
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
This for instance enable users to manually override the revisions to
test branches of git repositories.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Having that code inside the same repository than GNU Boot makes it
easier to keep Untitled versions (and possibly additional patches on
top) in sync with the documentation/website being worked on.
This is relevant as there are plans within GNU Boot to convert the
website to Texinfo but that would require to patch untitled (to add
support for Texinfo pages in untitled) to do a progressive transition
to Texinfo.
Using an external repository to temporarily maintain a patched version
of Untitled is not optimal as we would end up having to warn users not
to use that repository anymore at some point.
Bringing in the whole untitled source code and documentation in this
GNU Boot repository is also not a good option since we only need
minimal patching on top of untitled, so in the long run not doing that
would help keep the GNU Boot repository smaller and more simple.
In addition we currently do need to wrap the build with a fixed Guix
revision as for instance with a more recent Guix revision than the one
used by website-built, for instance at the commit ("gnu: nyxt: Update
to 3.9.0."), if we run ./build.sh directly without using a fixed Guix
revision, the build is broken:
Generating 'www/lbwww/site/index.html'
Generating 'www/lbwww/site/license.html'
YAML parse exception at line 7, column 0,
while scanning a simple key:
could not find expected ':'
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>