Open Cretezy opened 3 years ago
I don’t think the partition table error message is the problem.
Rather, you don’t have the systemd-firstboot program, presumably because you have no distri packages in your build directory yet. You’ll need to download the packages (or at least base packages) of a distri release.
Maybe https://www.freelists.org/post/distri/Setting-up-development-environment-for-packaging,1 provides some useful hints.
I can follow up with a more detailed explanation / document when time permits, in case you can’t get it fixed yourself.
@stapelberg I couldn't really extract any information from the provided link.
I'm a little confused with what you mean by the distri packages in my build directory. Which packages are those, and where I can get them? I'm assuming those are built packages.
Would it be easier to use the Docker image to build distri itself?
As an extra note, I've very interested in the ideas (I was planning on making my own distribution with a lot of the same ideas like images for packages, read-only packages, and shared directories).
If I can get distri working for myself, I'd likely start contributing and trying to make it into a semi-useful distribution. I think there's a lot of potential in these ideas!
Would it be easier to use the Docker image to build distri itself?
Yes. Here’s an example session showing you how to rebuild an individual package in docker:
% docker run --privileged --entrypoint /entrypoint -t -i -e TERM=$TERM distr1/distri:supersilverhaze
# mkdir /root
# cd /root
# distri install git bzip2 patch diffutils file make musl strace gcc binutils i3lock
# git clone https://github.com/distr1/distri
# mkdir -p ~/distri/_build/distri/pkg/
# cp --link /roimg/* ~/distri/_build/distri/pkg/
# distri build -pkg=i3lock
I haven’t tried building all of distri in docker, so perhaps there are other stumbling blocks. But this should illustrate which files need to be where.
When building outside of docker, the steps are similar, but instead of just installing+copying select packages from /roimg, you’ll need to download them from our mirror. I recommend downloading all packages (7 GB download!) instead of just the ones you need, because it’s simpler:
~/distri/_build/distri/pkg master % wget --recursive --no-parent -nH -e robots=off --cut-dirs=3 --reject="*.zst" --reject="*.gz" https://repo.distr1.org/distri/supersilverhaze/pkg/
~/distri/_build/distri/pkg master % for f in *-amd64.meta.textproto; do ln -sf $(basename $f .meta.textproto)-*.meta.textproto $f; done
The second step is to restore the symlinks which are turned into regular files when downloading with wget.
Medium term, we should automatically fetch the required packages when building. We already have most of the features needed for this, just not arranged in the correct way :)
Trying to build a distri image from a fresh clone.
Steps:
git clone ...
cd ...
make
make image
Output:
I could not find any build instructions anywhere. This is definitely something that should be written.