Age | Commit message (Collapse) | Author |
|
The status quo is that any Parabola hacker is expected to (be able to)
modify any packages, and having a single maintainer of a package
discourages that practice as people would typically send a patch to
the maintainer instead of pushing it directly.
So for a start we can add common maintainership on package lacking any
"Maintainer: " header for packages in repositories that are supposed
to be maintained.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
|
|
software
If we use prepare() instead of mksource(), we end up redistributing
nonfree software inside the package source, and it would be better not
to have to do that as this could potentially create licensing issues.
The standard solution to avoid that in Parabola is to use mksource(),
however while this worked fine with other packages, I didn't manage to
make it work with this package, probably because the package code is
complex and that we don't fit into simpler cases handled by
mksource().
The complexity here comes from the need to lower the maintenance cost
of supporting multiple ARM computers and setups: the automation
enables to more easily add new computers, make testing way faster, and
simplify the installation instructions.
Since at the end of the day the goal was to share this deblobing work
with other FSDG compliant distributions, I looked for a distro neutral
project that could be interested in deblobing u-boot and which has
also some infrastructure that we could reuse for that (this avoids
costs in time and money of setting up new infrastructure and of
maintaining it).
As Libreboot planned to add support for u-boot anyway and that its
build system is distribution neutral, it was a good fit.
As for the ability to have patches merged in Libreboot for
u-boot-libre, the initial discussions were complicated:
- Libreboot releases sources and binaries of bootloaders targeting
specific computers. So it would be natural to deblob u-boot and on
top of that, add support for specific computers in Libreboot in the
exact same way it is done for the computers that are supported
through deblobed versions of Coreboot.
However here we want the various distributions (like Parabola and
Guix) to be able to use deblobed u-boot source tarballs that follow
very closely upstream u-boot releases, and that only have changes
related to deblobing. Linux-libre does the latter and this makes it
very easy for FSDG compliant distributions to reuse it as-is.
When adding support for specific computers through u-boot, Libreboot
would instead be more interested in having specific configuration
through u-boot environment and/or by combining u-boot with other
bootloaders like GRUB. It would also be interested in having the
ability to choose specific u-boot versions and specific extra
patches to support specific computers.
As distributions and Libreboot requirements are very similar (they
both need to deblob u-boot) and also slightly different, it was not
easy to get that point across, and I hope that people reading this
commit also get the point across.
- Once I managed to get an agreement that doing that was a good idea
and that I would be able to get my code merged (provided that the
code quality was good) and have Libreboot release the files needed,
I started to implement the code, but I found out week(s) later that
the agreement was gone. The fix for that was simply to restart
explaining it all from scratch and get an agreement again.
Beside the initial complications, getting the code reviewed and merged
was really fast (each patch serie review took 1 week or less) and we
can now just ping the Libreboot maintainer on IRC to get files
released.
According to the Libreboot maintainer I'm the de-facto maintainer of
the u-boot related code in Libreboot, so I'll probably have to be
involved somehow in reviewing the code, and then we need to ping her
to get the code merged.
The discussions were done in #libreboot on liberachat, and the merge
requests were sent against Libreboot repositories (both lbmk and
lbwww) in notabug, so following a similar method will probably result
in future patches being merged rapidely if we hope/assume that I will
manage to review the patches as fast as the Libreboot maintainer did.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
|
|
U-boot contains some nonfree software, for instance nonfree microcode
in arch/x86/dts/microcode/, so this commit removes that.
This commit also removes instructions to install nonfree
software. While these instructions were not shipped in any of the
binary pakcages generated by this PKGBUILD, it's still a good idea to
also clean that up in the long run:
- Parabola has also PKGBUILDs for other SOCs, and ideally we could
expand to cover as many computers as possible if the computers are
supported in upstream projects (like u-boot) and that they don't
require too much extra maintenance. Having already a cleaned up
u-boot to base the PKGBUILDs on could help factorizing the code and
sharing the work on the u-boot code review process.
- Other FSDG compliant distributions already have u-boot (like Guix)
or might be interested in shipping u-boot (like Replicant), so it
would be a good idea not to duplicate the work again and again.
In the future the code that removes the nonfree software and the
problematic documentation should be moved in a reusable script (that
could still be run in mksource), possibly in its own package, in order
to be reusable accross different distributions and u-boot PKGBUILDs.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
|
|
When building uboot4extlinux-sunxi with libremakepkg we have
the following error:
| BINMAN all
| Traceback (most recent call last):
| File "/build/uboot4extlinux-sunxi/src/u-boot-2021.07/./tools/binman/binman", line 39, in <module>
| from binman import control
| File "/build/uboot4extlinux-sunxi/src/u-boot-2021.07/tools/binman/../binman/control.py", line 11, in <module>
| import pkg_resources
| ModuleNotFoundError: No module named 'pkg_resources'
| make: *** [Makefile:1084: all] Error 1
| ==> ERROR: A failure occurred in build().
In u-boot 2021.07 in tools/binman/control.py, line 11 we have:
import pkg_resources
To find the package having pkg_resources we can use python to find
the files implementing it:
$ python
Python 3.9.5 (default, May 27 2021, 07:33:37)
[GCC 11.1.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pkg_resources
>>> help(pkg_resources)
At the end of the help we see the following:
FILE
/usr/lib/python3.9/site-packages/pkg_resources/__init__.py
And we can finally use pacman to find the package having that file:
$ pacman -Q -o /usr/lib/python3.9/site-packages/pkg_resources/__init__.py
/usr/lib/python3.9/site-packages/pkg_resources/__init__.py
is owned by python-setuptools 1:52.0.0-1.0
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
|
|
When running parabola-repolint[1] for ppc64le, there is the
following error or warning:
unhandled SRCINFO key: "makedepends_ppc64le"
(makedepends_ppc64le = arm-none-eabi-gcc)
As ppc64le is still experimental, we can safely remove it from
the supported architectures in this PKGBUILD to avoid creating
too much noise for the people working on the ppc64le port of
Parabola.
This is a real concern as oaken-source, who run this
parabola-repolint had that issue and discussed with me about
it on the #parabola IRC channel on liberachat.
[1]https://git.parabola.nu/~oaken-source/parabola-repolint.git/
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
|
|
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
|
|
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
|
|
- We can now do cross builds of u-boot:
- We can now more easily work on the package as we don't need
an ARM computer for that anymore.
- It also enable people already using Parabola on x86 to more
easily install, test, or repair u-boot for an ARM computer
as users can simply install it on microSD cards without
needing to use ARM chroots.
- There is now an install script to install u-boot:
- It makes things easier for users as it is more similar to
grub-install than dd commands.
- It also does many checks at the same time to avoid data loss.
- The commands to split packages are now shared between all
package_ functions. This lower maintenance.
- How to add a new board has been made more clear.
Comparison with other distributions (for consistency):
- u-boot doesn't have anything to handle the installation and
update of u-boot binaries if UEFI is not used.
- Debian has an u-boot-install-sunxi script which handles way more
cases than what I wrote (it even handles GPT and so on and even
has a manual), but there seems to be no tools to update u-boot.
- Openembedded doesn't seem to have anything special in
the u-boot recipe in openembedded-core
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
|
|
This commit was accidentally pushed to master instead of
a branch.
This reverts commit 0a65e2a74db2ccc00dbf2c18f80f147ea29a99e6.
|
|
TODO:
- Create a hook script
- Finish the u-boot-sunxi-install script
- Add dependencies for the install script (utils-linux)
- Test on real hardware (lime2, pcduino-lite)
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
|
|
There is some documentation in board/sunxi/README.sunxi64,
however we don't have packages for 64bit versions of u-boot yet.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
|
|
Other changes
- extlinux.conf:
- Added the initramfs in the example configuration
- Added rootwait parameter in case the rootfs takes time to appear
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
|
|
All packages built fine.
This was also tested on a Lime2-EMMC:
- Booting worked fine with a extliux.conf tailored for the
configuration of the device being tested.
- An external display was connected to it and it worked
in u-boot, during boot and showed a console at the end.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
|
|
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
|
|
0001-parabola-arm-modifications.patch should not be necessary
anymore as u-boot configuration are now setup to support
configuration options for common GNU/Linux distributions.
More details are available in doc/README.distro in the u-boot
source code.
As for the sed command in prepare, the binman files already
have #!/usr/bin/env python2 in the current u-boot version.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
|
|
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
|
|
After reflashing it (in the postinstall) on a lime2
A20 with EMMC, and rebooting, it booted fine.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
|
|
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
|
|
|
|
|
|
|
|
|
|
also patch old u-boot tarballs to build with gcc7
|
|
|
|
|
|
|
|
|
|
|