Commit Graph

31 Commits

Author SHA1 Message Date
Denis 'GNUtoo' Carikli e50f311c45
dependencies: pureos: go back to apt (instead of packagekit).
In the commit 0f74569af0 ("dependencies:
switch arch, debian, fedora35, ubuntu2004 to packagekit"), the
Trisquel script was converted to use packagekit to then be able to
unify the dependency management between several distributions.

However GNU Boot doesn't build directly on Parabola, and the build is
completely untested on Fedora and Void, so the other scripts are less
important. In contrast building GNU Boot is regularely tested on
PureOS 10 (byzantium) and Trisquel 11 (aramo).

Since the Guix debootstrap package can be used to safely create
chroots of PureOS and Trisquel, it may be possible to use that to
build GNU Boot on any distributions.

However packagekit requires a daemon to work:
    # pkcon install guix
    Failed to contact PackageKit: Could not connect:
    No such file or directory

And in turn the /usr/libexec/packagekitd daemon requires dbus as shown
by the /lib/systemd/system/packagekit.service file:
    [Unit]
    Description=PackageKit Daemon
    # PK doesn't know how to do anything on ostree-managed systems;
    # currently the design is to have dedicated daemons like
    # eos-updater and rpm-ostree, and gnome-software talks to those.
    ConditionPathExists=!/run/ostree-booted
    Wants=network-online.target

    [Service]
    Type=dbus
    BusName=org.freedesktop.PackageKit
    User=root
    ExecStart=/usr/libexec/packagekitd

So reverting back to apt seems a safe choice for now.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-11-24 14:17:19 +01:00
Denis 'GNUtoo' Carikli 3f85c3ff22
dependencies: trisquel: go back to apt (instead of packagekit).
In the commit 0f74569af0 ("dependencies:
switch arch, debian, fedora35, ubuntu2004 to packagekit"), the
Trisquel script was converted to use packagekit to then be able to
unify the dependency management between several distributions.

However GNU Boot doesn't build directly on Parabola, and the build is
completely untested on Fedora and Void, so the other scripts are less
important. In contrast building GNU Boot is regularely tested on
PureOS 10 (byzantium) and Trisquel 11 (aramo).

Since the Guix debootstrap package can be used to safely create
chroots of PureOS and Trisquel, it may be possible to use that to
build GNU Boot on any distributions.

However packagekit requires a daemon to work:
    # pkcon install guix
    Failed to contact PackageKit: Could not connect:
    No such file or directory

And in turn the /usr/libexec/packagekitd daemon requires dbus as shown
by the /lib/systemd/system/packagekit.service file:
    [Unit]
    Description=PackageKit Daemon
    # PK doesn't know how to do anything on ostree-managed systems;
    # currently the design is to have dedicated daemons like
    # eos-updater and rpm-ostree, and gnome-software talks to those.
    ConditionPathExists=!/run/ostree-booted
    Wants=network-online.target

    [Service]
    Type=dbus
    BusName=org.freedesktop.PackageKit
    User=root
    ExecStart=/usr/libexec/packagekitd

So reverting back to apt seems a safe choice for now.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-11-24 14:16:51 +01:00
Denis 'GNUtoo' Carikli c7fb95844f
dependencies: pureos: replace libtool by libtool-bin
Without that fix, 'sudo resources/dependencies/pureos-10' results in
the following issue:
    Finished                      [=========================]
    Command failed: Expected package name, actually got file.
    Try using 'pkcon install-local libtool' instead.

And with this patch the command above works fine:
    Finished                      [=========================]

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-11-22 17:25:22 +01:00
Denis 'GNUtoo' Carikli 4bf40caf6b
dependencies: pureos: website: Add graphviz to fix website package build.
Without that fix, 'make release' fails with the following error:
    [...]
    ROM image release archives available at release/roms/

    set -o pipefail ; ./build release website | tee -a make-1732208182.log
    autoreconf: Entering directory `.'
    autoreconf: configure.ac: not using Gettext
    autoreconf: running: aclocal --force
    autoreconf: configure.ac: tracing
    autoreconf: configure.ac: not using Libtool
    autoreconf: running: /usr/bin/autoconf --force
    autoreconf: configure.ac: not using Autoheader
    autoreconf: running: automake --add-missing --copy --force-missing
    autoreconf: Leaving directory `.'
    [...]
    checking for dot... no
    configure: error: dot was not found in PATH ([...])
    make: *** [Makefile:710: release] Error 1

This happens because during releases we also ship a tarball of the
website, and the commit 388c0ef3d0
("website: add history page of the GNU Boot git repositories.")
started using dot without also adding the graphviz dependency in the
dependencies for building releases.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-11-22 17:18:24 +01:00
Denis 'GNUtoo' Carikli 67cb7ec86a
dependencies: trisquel: website: Add graphviz to fix website package build.
Without that fix, 'make release' fails with the following error:
    ROM image release archives available at release/roms/

    checking for a BSD-compatible install... /usr/bin/install -c
    checking whether build environment is sane... yes
    checking for a race-free mkdir -p... /usr/bin/mkdir -p
    checking for gawk... gawk
    checking whether make sets $(MAKE)... yes
    checking whether make supports nested variables... yes
    checking for awk... awk
    [...]
    checking for dot... no

This happens because during releases we also ship a tarball of the
website, and the commit 388c0ef3d0
("website: add history page of the GNU Boot git repositories.")
started using dot without also adding the graphviz dependency in the
dependencies for building releases.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-11-22 17:17:01 +01:00
Denis 'GNUtoo' Carikli c8c9e9e119
dependencies: trisquel: replace ttf-unifont with fonts-unifont.
Without that fix, Trisquel fails with the following error:
    Resolving                     [=========================]
    Package not found: ttf-unifont
    Command failed: This tool could not find any available package:
    No packages were found

And when installing ttf-uifont with apt, we get this error:
    # apt install ttf-unifont
    Reading package lists... Done
    Building dependency tree... Done
    Reading state information... Done
    Package ttf-unifont is not available, but is referred to by another package.
    This may mean that the package is missing, has been obsoleted, or
    is only available from another source
    However the following packages replace it:
      fonts-unifont

    E: Package 'ttf-unifont' has no installation candidate

The ttf-unifont dependency was introduced in Libreboot when it didn't
use git yet. It can be found in Libreboot's 5th release, second
revision[1] in libreboot_src/builddeb.

[1]https://rsync.libreboot.org/oldstable/20140622/libreboot_src.tar.gz

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-11-22 16:18:02 +01:00
Denis 'GNUtoo' Carikli 06583e699c
dependencies: trisquel: fix awk call.
Without that fix running the script results in the following error:
    # ./resources/dependencies/trisquel
    + ./resources/dependencies/trisquel
    Reading package lists... Done
    Building dependency tree... Done
    Reading state information... Done
    packagekit-tools is already the newest version (1.2.5-2ubuntu2+11.0trisquel1).
    0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
    awk: cmd. line:1: {print
    awk: cmd. line:1:       ^ unexpected newline or end of string

The issue was introduced in the commit
94118b896a ("dependencies: Trisquel 10:
Fix script for non-english locales.").

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-11-22 16:17:16 +01:00
Denis 'GNUtoo' Carikli 8c0341e3b6
dependencies: Trisquel: Add 'unifont' for Trisquel 11.
Without this fix we have the following error on Trisquel 11 when
building the GRUB payload:
    configure: error: qemu, coreboot and loongson ports need unifont

Trisquel 10 also has an 'unifont' package, and installing it doesn't
break the build of the GRUB payload.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-10-05 11:43:25 +02:00
Denis 'GNUtoo' Carikli 009b7f0660
dependencies: Trisquel 10: fix pandoc install.
When pandoc is already installed on Trisquel 10, we have the
following:
    # pkcon -y --allow-reinstall install pandoc
    Resolving                     [=========================]         Package not found: pandoc
    Command failed: This tool could not find any available package: No packages were found

Since install_packages takes care of not trying to reinstall a package
that is already installed, using that instead fixes this issue.

This was broken by the commit 8a181f112f
("dependencies: trisquel: Add pandoc").

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-10-05 11:41:55 +02:00
Denis 'GNUtoo' Carikli 94118b896a
dependencies: Trisquel 10: Fix script for non-english locales.
In French 'Installed' is 'Installé', and so when French is being used,
the grep that is used to understand if a package is already installed
fails.

This was broken by the commit 5050b5365e
("dependencies: trisquel-10: workaround package not found if already
installed.").

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-10-05 11:40:52 +02:00
Denis 'GNUtoo' Carikli e891de5d5e
dependencies: Trisquel 10: Add copyright header.
The trisquel-10 file was first introduced by Leah Rowe in 2014 as it
cannot be found in 2013 Libreboot tarball releases (20131212,
20131213, 20131214) but it is found in 20140711.

We then have the complete history through the
obsolete-repository-preserved-for-historical-purposes, osbmk and GNU
Boot repositories.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-10-05 11:38:34 +02:00
Denis 'GNUtoo' Carikli 5dccbfb4c7
dependencies: add libtool.
Without that fix, with a very basic Trisquel 11 (aramo) installation
and after running resources/dependencies/trisquel-10, the GNU Boot
autogen.sh is broken due to the lack of libtool:
    $ ./autogen.sh 2>&1  > temp
    autoreconf: export WARNINGS=
    autoreconf: Entering directory '.'
    autoreconf: configure.ac: not using Gettext
    autoreconf: running: aclocal --force
    autoreconf: configure.ac: tracing
    autoreconf: configure.ac: not using Libtool
    autoreconf: configure.ac: not using Intltool
    autoreconf: configure.ac: not using Gtkdoc
    autoreconf: running: /usr/bin/autoconf --force
    configure.ac:79: error: possibly undefined macro: AC_PROG_LIBTOOL
          If this token and others are legitimate, please use m4_pattern_allow.
          See the Autoconf documentation.
    autoreconf: error: /usr/bin/autoconf failed with exit status: 1

So we simply make sure that libtool is installed as part of the
dependencies.

For Arch, libtool is already in base-devel (checked with Parabola).

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien Bourmault <neox@gnu.org>
2024-09-08 17:12:30 +02:00
Denis 'GNUtoo' Carikli a73a33fb17
dependencies: trisquel: fix python path.
Several scripts in the SeaBIOS source code used during its build use
'#!/usr/bin/env python' but there is no 'python' when installing
Trisquel through debootstrap.

So to fix that we simply add the python-is-python3 package which
creates the /usr/bin/python symlink and points it to python3.

This work is based on the commit
eeddd2b610 ("build/dependencies: debian:
adding python-is-python3 to build seabios properly").

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2023-12-11 11:35:21 +01:00
Denis 'GNUtoo' Carikli 8a181f112f
dependencies: trisquel: Add pandoc
Without that fix 'make release' fails with the following error:
    checking for mkdir... mkdir
    checking for pandoc... no
    configure: error: pandoc was not found in PATH
    (/usr/local/bin:/usr/bin:/bin:/usr/games)

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2023-12-11 11:34:42 +01:00
Denis 'GNUtoo' Carikli 190d9f37bd
packages: also ship website tarball.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2023-12-09 16:00:05 +01:00
Denis 'GNUtoo' Carikli c2621a6fd3
dependencies: trisquel: Fix libusb package name.
Trisquel 10 (nabia) doesn't have libusb-1.0-dev or libusb-dev
packages.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2023-12-09 15:48:42 +01:00
Denis 'GNUtoo' Carikli e45ccea78e
dependencies: trisquel: replace iasl by acpica-tools.
In Trisquel 10 (nabia) /usr/bin/iasl is provided by acpica-tools.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2023-12-09 15:48:29 +01:00
Denis 'GNUtoo' Carikli 0b2de04b99
dependencies: trisquel: remove lib32ncurses5-dev
In Trisquel 10 (nabia) there is no lib32ncurses5-dev package anymore.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2023-12-09 15:48:16 +01:00
Denis 'GNUtoo' Carikli 2e38114034
dependencies: Trisquel 10: remove lib32tinfo-dev.
In Trisquel 10 (nabia) there is no lib32tinfo-dev package anymore.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2023-12-09 15:48:02 +01:00
Denis 'GNUtoo' Carikli 5050b5365e
dependencies: trisquel-10: workaround package not found if already installed.
If wget isn't installed and that we install it, it works fine:
    # pkcon -y --allow-reinstall install wget
    Resolving                     [=========================]
    Installing                    [=========================]
    Loading cache                 [=========================]
    Running                       [=========================]
    Installing packages           [=========================]
    Finished                      [=========================]

But then if we try again it fails because it's already installed:
    # pkcon -y --allow-reinstall install wget
    Resolving                     [=========================]
    Package not found: wget
    Command failed: This tool could not find any available package: No
    packages were found

So for now we need to workaround this issue.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2023-12-09 15:46:54 +01:00
Denis 'GNUtoo' Carikli 8f3d30f809
dependencies: rename debian in pureos-10.
We can't require contributors to install Debian as it has freedom
issues[1] but for contributors, installing PureOS is easier since
it's at least FSDG compliant[2]. So it makes sense to show that
PureOS is the primary target here.

This is also reflected in the reality as the current GNU Boot
maintainers already installed PureOS 10 inside virtual machines
and/or containers to test this script and build the GNU Boot 0.1
RC1 release.

[1]https://www.gnu.org/distros/common-distros.html#Debian
[2]https://www.gnu.org/distros/free-distros.html

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2023-12-09 15:46:33 +01:00
Denis 'GNUtoo' Carikli dbdeb37326
dependencies: rename ubuntu2004 in trisquel-10.
We can't require contributors to install Ubuntu as it has freedom
issues[1] but for contributors, installing Trisquel is easier since
it's at least FSDG compliant[2]. So it makes sense to show that
Trisquel is the primary target here.

This is also reflected in the reality as the current GNU Boot
maintainers already installed Trisquel 10 inside virtual machines
and/or containers to test this script.

[1]https://www.gnu.org/distros/common-distros.html#Ubuntu
[2]https://www.gnu.org/distros/free-distros.html

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2023-12-09 15:45:50 +01:00
Denis 'GNUtoo' Carikli 290769d016
dependencies: debian: Fix libusb package name.
PureOS 10 (byzantium) doesn't have libusb-1.0-dev or libusb-dev packages.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2023-12-09 15:45:22 +01:00
Denis 'GNUtoo' Carikli 364c09a176
dependencies: debian: remove lib32ncurses5-dev.
In PureOS 10 (byzantium) there is no lib32ncurses5-dev package anymore.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2023-12-09 15:44:46 +01:00
Denis 'GNUtoo' Carikli afe49875b5
dependencies: debian: replace iasl by acpica-tools.
In PureOS 10 (byzantium) /usr/bin/iasl is provided by acpica-tools.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2023-12-09 15:44:26 +01:00
Denis 'GNUtoo' Carikli 85617168e5
dependencies: debian: remove lib32tinfo-dev.
In PureOS 10 (byzantium) there is no lib32tinfo-dev package anymore,
so running the debian dependency script fails with:
    Package not found: lib32tinfo-dev

    Command failed: This tool could not find any available package: No
    packages were found

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2023-12-09 15:43:46 +01:00
Denis 'GNUtoo' Carikli e8f42a4180
dependencies: fix installation when the package is already installed.
Without that fix already the installation script fails on PureOS when
some packages are already installed :
    # ./resources/dependencies/debian
    [...]
    [...] Package not found: wget
    [...] Command failed: The selected packages may already be installed.

Since most other dependencies installation scripts also use
PackageKit, they are likely to behave in the same way and so we also
apply the same fix.

This was broken by the commit 0f74569af0
("dependencies: switch arch, debian, fedora35, ubuntu2004 to
packagekit").

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2023-12-09 15:43:07 +01:00
Denis 'GNUtoo' Carikli 3ad9ba11f4
dependencies: Add script to update Guix.
The website-build code already uses guix by default. Given that it
also requires a specific Guix revision to workaround an issues with
pandoc, it's a good idea to help users easily install Guix.

PureOS Byzantium has a package for Guix 1.2.0, so if users install
that they will need to update it at least to Guix 1.4.0 to have the
same Guix commands.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2023-12-06 17:32:51 +01:00
Denis 'GNUtoo' Carikli 0f74569af0
dependencies: switch arch, debian, fedora35, ubuntu2004 to packagekit
Void was not migrated to PackageKit because there is no backend for
xbps in it.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2023-12-06 17:32:48 +01:00
Denis 'GNUtoo' Carikli de1d84340d
dependencies: Add programs used in 'make check'
The arch, debian and ubuntu2005 packages names were respectively
checked on Parabola, PureOS byzantium and Trisquel 11.

The fedora35 and void packages were checked using the Fedora and Void
Linux online package databases.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2023-12-06 17:32:21 +01:00
Denis 'GNUtoo' Carikli fe28bc3c82
dependencies: move into single package.
Having an {arch,debian,fedora35,ubuntu2004,void} GNU Boot package
looked strange. Having a dependencies package instead makes more
sense.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2023-12-06 17:14:30 +01:00