frno7 / linux

Linux 2.2, 2.6, 3.x, 4.x and 5.x kernels for the PlayStation 2.
Other
84 stars 5 forks source link

Precompiled binaries #34

Closed AKuHAK closed 2 years ago

AKuHAK commented 4 years ago

I know that it is not a Linux way, but maybe it is possible to provide an already compiled app for testing purposes? I was trying to set up Gentoo in my Windows machine under WSL (Windows Subsystem for Linux) but failed as Gentoo is not user-friendly. Maybe it is possible to provide some kind of Releases?

frno7 commented 4 years ago

That is a fantastic idea, @AKuHAK! As a first step forward, I will setup a wiki shortly, to describe how to configure and build things, the various options and alternatives (there are many), and so on. With that in place, it would be great to have precompiled releases ready for download.

@kernle32dll just got started with a Gentoo cross-compiler in #33, based on the sys-devel/crossdev package. Hopefully the wiki can describe how this can be done. Perhaps also alternatives such as Buildroot that I’m unfamiliar with myself.

kernle32dll commented 4 years ago

I was thinking about this, too. Here come my 2 cents:

As noted in https://github.com/frno7/linux/issues/33#issuecomment-529245721, I currently use Gentoo in a Docker environment (I love reproducible builds). For now, I will probably build the whole thing in the container, and mount it to the host system later to retrieve the binaries. Extracting the cross-compiler might be an option, too, but its not a labile long-term goal (the cross-compiler is pretty dependent on the environment its built in. I don't know if cross-dev is able to build cross-system cross-compilers. e.g. for Windows).

The question is, where to go from there. This is all very suitable for testing purposes, but neither CI friendly nor maintainable in the long run.

So, one long-term goal could be to re-construct the process cross-dev uses to build the toolchain, and create own scripts to spit out binaries (in lieu to rickgaiser/linux-dev). However, this has the obvious downside of loosing steady improvements done to cross-dev. Also, there are far to many outdated build scripts out there, which don't build anymore due to updated host software.

A different approach could be to stick to the Docker approach, and run from there. Travis offers Docker in builds, which could be used to implement the binary extraction approach outlined above. While I don't favor it ; discarding a public build server, ovh/cds uses customizable Docker Images as build environments. This would simplify things a bit, but complicate release management.

Long story short - I will give this more thought when I actually succeeded building my first binary :D

frno7 commented 4 years ago

The Linux for PlayStation 2 wiki is now available with some provisional text to get started. Feel free to help out writing guides!

(Please create new issues for things related to the wiki, since this issue is about precompiled releases.)

mirh commented 4 years ago

If you want my 2c, MSYS2 is a far more... proper than WSL. And it turns out they actually already have a nice and dandy "crosstool" (which is also what Arch uses)

Of course if the deployment flow already struggle not to need gentoo, windows is pretty of a stretch goal.

Binaries can just be attached in releases anyway...

uyjulian commented 4 years ago

Windows? More like LoseDOS. It will take quite a bit longer if you use MSYS2 or WSL1 to compile stuff due to slow filesystem performance, so it is faster to use another machine or virtual machine. I've been planning a multi-user development environment for DTL-T that others can use, but it's still not ready yet.

It should be simple to use crosstool-ng on Ubuntu 18.04 LTS, which can be used on Vagrant.

mirh commented 4 years ago

MSYS is as native as it can get.. Anyway yes, I wasn't the one recommending it..

bignaux commented 2 years ago

For information, i'd started a yocto distribution @ https://github.com/bignaux/meta-playstation2 , i think it's really adapted to the use I imagine of linux on the playstation2, especially everything that allows to add features according to the use of the homebrew (network, harddisk, graphics ...) . This distribution allows to distribute package for both host and target, so people would not have to rebuild all the stuff to start homebrewing. I would say that if there are people who are interested, the documentation is good, and they can start playing with poky/yocto, qemu ... while waiting for me to finish the first functional version.

frno7 commented 2 years ago

@bignaux, wonderful! :-)