Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linux/BSD: Update all dependencies #202

Merged
merged 14 commits into from
Dec 14, 2023

Conversation

robxnano
Copy link
Contributor

I updated the dependency lists of nearly all the Linux and BSD distributions, and also added a few new ones. All of these have been tested to build successfully, mostly using Docker containers. The updated lists include everything needed to both build and run HandBrake, but I also tried to minimize the number of packages installed by replacing some of the large meta-packages with only the individual ones needed, in order to save space.

I also have a separate branch with Rust-specific packages that can be merged after this one.

@bradleysepos
Copy link
Contributor

Nice. I was just thinking earlier this week, "I don't think I have time to update all the build docs before next release, so I guess that will have to come later." 😸

First glance looks pretty good. Will try to make some time this weekend to take a closer look!

Oh, marsh is an upstream project, so please submit any changes there and we can pull in a new version.

@robxnano
Copy link
Contributor Author

No problem, I've moved it there now.

@bradleysepos
Copy link
Contributor

In the past, I've tried to ensure the CLI building instructions work with a minimal system installation (sans graphical environment). I don't think that's well documented anywhere; perhaps it should be. Anyway, is that still the case without installing the meta packages?

@robxnano
Copy link
Contributor Author

robxnano commented Dec 2, 2023

I've actually built a set of Dockerfiles to test the build process in all the distributions which have container images available. If it builds in a container, which is designed to be as minimal as possible, then it should definitely build in a real installation.

That said, I just noticed that the Ubuntu and Debian containers weren't building the translation targets, so I've added gettext to the GUI dependencies.

@bradleysepos
Copy link
Contributor

Okay, cool. I've been wanting to build more automated testing for some time. Perhaps down the road we can find a place for those Dockerfiles, if you're willing.

I noticed you removed some dnf update and similar. There's a good argument for doing that, I think. At the same time, leaving it is more dummy-proof and we've needed that in the past, at least to reduce the number of minor support requests. What do you think about keeping the update lines but separating them out ahead of the install section, providing a little more direction? Something like:

Make sure the system's package information is up to date (optional, recommended).

sudo dnf update

Install dependencies.

sudo dnf install ...

@robxnano
Copy link
Contributor Author

robxnano commented Dec 2, 2023

Sounds like a good idea, at least in cases where refreshing the package index is a separate command like apt. But the reason I removed the dnf one (and others) was that in dnf's case, updating the index happens automatically. The dnf update command upgrades all the packages on the system, similar to apt-get upgrade. Perhaps recommending the user updates their system before starting would also be helpful, though...

I uploaded the Dockerfiles here by the way. Feel free to take a look or make use of them.

@bradleysepos
Copy link
Contributor

Oof, I clearly forgot how dnf works at some point. 😊

Will give the Dockerfiles a look, thanks!

@bradleysepos
Copy link
Contributor

This looks good. My only concern is regarding Clear Linux. It seems the updated instructions do not match the Dockerfile and instead jump right to installing a large meta-package that pulls in GUI-related packages.

@robxnano
Copy link
Contributor Author

robxnano commented Dec 3, 2023

Yeah, that one still has a few problems, mainly down to the strange bundle system and the missing LAME library. I think I used the desktop-dev bundle because it was the smallest one that had the x264 development libraries. I've tried to get the size down by building x264 from source, but I couldn't get it to work with the build system for the GUI. Maybe I should just leave it for now until I've fixed the build system to find libraries in /usr/local properly.

@bradleysepos bradleysepos merged commit e31db46 into HandBrake:master Dec 14, 2023
2 checks passed
@bradleysepos
Copy link
Contributor

Rebased to squash the Alpine link fix commit and updated the Clear Linux guide. Verified manually using Clear Linux Server 40470.

Thanks @robxnano!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

2 participants