-
Notifications
You must be signed in to change notification settings - Fork 50
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
Compilation issue with Ubuntu 24.04 #344
Comments
The hardware being used it a Seneca VWC-MINI with 16 GB of RAM: |
Hello @rpstew, There are a couple of issues here:
I maintain a set of pre-compiled ungoogled-chromium packages for the various Ubuntu releases in the XtraDeb Apps PPA, so if you are just looking for a build, that may be a convenient option. (Source packages are available as well.) If you would rather build it by your own hand, I'll be happy to describe the process, but do note that it is a bit involved the first couple times. Please let me know which route you would prefer. As an aside, 23.04/lunar is no longer supported by Ubuntu proper. Is installing 24.04 not an option? It released just a few days ago, and it is an LTS version, so you'll be able to use it safely for a long time. |
Greetings @iskunk, Thanks for the quick response! I had actually tried Ubuntu 24.04, but assumed it wasn't supported based on the info in the unmaintained url. I will move back to Ubuntu 24.04. Are the instructions you gave for 23.04 also good for 24.04? Also I do need to build from sources. |
Hello @iskunk, I got through the step 7 (make) of the alternate process you mentioned with out issue. I just need to install ungoogled chromium now. Do I need to follow step 8 and use dpkg-build-package in order to install ungoogled chromium? I've never used the dpkg-buildpackage command. Where and how do I used that command? |
All the more so for 24.04, since I haven't worked on 23.04 for some time.
You can if you wish to do so. Many users prefer to compile from source themselves, rather than rely on a binary package built by a third party. (But if you don't care either way, then why go to the trouble?)
Okay, a few points to cover here:
To reiterate, building from source is not necessary to get ungoogled-chromium on Ubuntu. I'm assuming that building from source (in and of itself) is important to you, and so am giving you the information above on that basis. |
Hello @iskunk , I tried your instructions today from scratch and ran into a compilation issue in step 7:
I believe the only difference is the chromium version. When it worked last week I was using 123.0.6312.105-1 and today I ended up with version 124.0.6367.118-1 |
I went back to using version 123.0.6312.105-1 so I did the following steps after a successful step 7:
I had unmet dependencies:
After installing all of those dependencies I get:
I do see the python script:
|
Make sure that your
The latest (.201) should work. As usual, the previous version has significant security vulnerabilities...
You always have to install a source package's build dependencies before building the package.
I... have never seen the build fail that way before :-] I don't know what would have caused that to happen. It's not clear to me exactly what operations have been made on the source tree that you are attempting to build, but I think you may want to try building regular old google-ful Chromium first. (Run the xtradeb-convert step, and skip the ungoogled ones.) That will take quite a bit of variability out of the process, and confirm that you can build Chromium before going for the variant. |
I started again from scratch. I got past step 7 this time with version 124.0.6367.118. I'm at the step now to run:
I see several debian directories in my convert directory:
Which one should I use when running chromium.sh? |
This is a question of workflow. I can't tell you exactly what to do, because it depends on what you want to do, but I'll clarify what you have there:
You might prefer passing the |
I will use INPLACE=1 as we do intend to modify the source code. So the first two times I ran the chromium.sh script I ran it on the first two debian directories in your previous message which I assume was incorrect. So do I run it on the ungoogled-chromium-src/debian directory assuming INPLACE is set to 1? |
If you use |
So after step 7 I am left with the three files mentioned in step 8 although one of them is symbolic link:
I'm assuming I need to unpack the debian.tar.xz file. Do I also need to unpack the orig.tar.xz file? Do I need to run xtradeb-convert/pkg/chromium.sh on one of the unpacked tar files? |
If you are working with a single tree, then you don't need to create that source package. You can skip its creation by invoking the Once the conversion is done, you can run |
I followed the steps through step 7, but ran "make convert" instead of "make". When I run
I get the following:
Warning: Patch series has changed, please run $ cd /home/iwplayer/ungoogled-chromium-debian/convert/chromium-124.0.6367.118 in the top-level source directory of the package. Chromium package conversion for Ubuntu 24.04/noble complete. I'm assuming I should follow those instructions to run the quilt command. Please confirm. |
Yes, the problem is that your unpacked source tree already has the Debian patches applied, and the conversion process changes the set of patches that should be applied. So you have to back out all the applied patches, and reapply the series. That is what the quoted You can streamline your process by passing |
I tried --skip-patches, but still get the patch warning:
|
Ah yes, the conversion process applies its own patches as well. You'd have to do |
Hello @iskunk, Thanks for all of your help! I successfully ran "dpkg-buildpackage -b -uc". It took about 10 hours to complete, but I ended up with the following files outside of the chromium-124.0.6367.118 directory:
Am I building parts of Ungoogled Chromium that I don't need? I see six *.deb files and five *.ddeb files. Do I need to install all six *.deb files in order to use Ungoogled Chromium built from sources on Ubuntu 24.04? |
All right, you made it! All those |
I'm seeing a note or warning when trying to install the common package:
Also when I try to install the chromium package:
When I try to start ungoogled-chromium then I get an error about no usable sandbox:
I assume this means I need to install the sandbox package also. After I installed the sandbox package and run ungoogled-chromium it does seem to work although I see some errors and warnings:
|
If I install in the following order I only see the permission denied issue for each package installed: apt install -y ./ungoogled-chromium-sandbox_124.0.6367.118-1xtradeb1.2404.1_amd64.deb
|
The "Download is performed unsandboxed" warning is an unrelated APT issue. The "No usable sandbox" error implies that your system does not have user namespaces enabled, which is not the norm for Ubuntu. User namespaces are what Chromium normally uses, on modern systems, for sandboxing. The Lastly, note that you can pass multiple packages at a time to |
I started from scratch and ran the following command as root to do the install: I'm still seeing:
I then ran the commands from the url you sent above:
I next ran the ungoogled-chromium-debian/convert/chromium-124.0.6367.118/out/Release/chrome-wrapper command then I see:
I am still seeing the same issue:
|
Thanks for looking further into this. Not only have I successfully reproduced the issue on a 24.04 system here, I've found that recent changes in AppArmor are in fact interfering with the program's operation, despite the latter not being covered by an AppArmor profile. I have filed a bug report in their tracker detailing the issue. As for how you can get up and running in the meantime, without installing the
You'll have the additional benefit of running under AppArmor confinement (e.g. if you try to navigate to |
Thanks! That is working for me. |
I made my first source code change to ungoogled chromium. I tried to just recompile, but must have made a mistake. I ended up redoing the entire process from scratch. It takes almost 10 hours to do the final build step. What steps should I follow when modifying source code and running a rebuild? Thanks. |
You can't rebuild Debian source packages incrementally---not without hacking up the build process, anyway---because the first thing it does is clear out any existing build tree. If you just want to experiment with modifying the source, then start with a full package build, make your changes, and then run just the main
That command is equivalent to running Once the rebuild is complete, you may want to copy over the binaries of an existing ungoogled-chromium installation (note that the binaries are renamed from what is produced in the build tree), or even try running ungoogled-chromium directly from the build tree. |
I'm running inside a docker container and see the following issue today:
I verified that I don't see that patch file. |
Note that the current xtradeb-convert release will generally require a current Chromium package in order to work. In this case, the |
I was just using the version at the bottom of this url you gave me: https://packages.debian.org/source/testing/chromium |
There are no tags/branches in the xtradeb-convert repo; just look at the commit messages. For the Chromium source package, use the one in the unstable suite: https://packages.debian.org/source/unstable/chromium |
I'll use the Chromium package in the unstable suite instead of the testing suite. What is the difference? I used the newer unstable Chromium package and looks like it is working. Just kicked off a 10 hour build. Thanks! |
I don't use the debug packages (*.ddeb). I've been google searching and I don't see a way to disable those packages from being built. Just looking for a way to speed up the building process. |
There is no difference in kind. The testing version is just an earlier unstable version that has passed a certain amount of time without any showstopper bugs.
You can try setting |
@iskunk
I see tags in the ungoogled-chromium repo of 126.0.6478.55-1 and 126.0.6478.61-1, but not 126.0.6478.56-1. |
The maintainer of the Debian chromium package goofed; the packaged version should have been |
Are there any special steps needed to use CEF with Ungoogled Chromium sources? |
I'm afraid I have not done that myself, and cannot give any guidance there, beyond pointing out the different names and directories of the installed files. |
I am dockerizing the linux steps in https://bitbucket.org/chromiumembedded/cef/wiki/MasterBuildQuickStart.md. According to https://www.magpcss.org/ceforum/viewtopic.php?f=6&t=19804# I should be able to apply the ungooggled chromium patches to CEF. Below are my current steps for building ungoogled chromium. I'm trying to figure out which steps are needed and which are not needed when applying the ungoogled chromium patches to CEF. Any advise you can give would be greatly appreciated. Thanks.
|
CEF appears to be using a completely different build process, more like that of the upstream's, that is not compatible with the Debian build process you've been following so far. (Your summary of the Debian process looks fine to me.) I can't help you with the the CEF stuff. I would, however, question the wisdom of embedding Chromium into your application. You've already seen how frequently Chromium updates, and by incorporating it directly into your application, you are putting your application on the hook to update on a similar schedule to remain clear of known security issues. Is that kind of tight coupling, and the associated maintenance overhead, really necessary? From your early posts, I gathered that you are building u-c for use in a video wall controller. Could your application needs be handled by something like |
We have custom display software that currently runs on Xubuntu 20.04. The software is written in Qt C++ with QtWebkit embedded in it to display custom html. We are looking to replace QtWebkit with Ungooled Chromium on Xubuntu 24.04 using mostly the same Qt C++ code. Seemed like CEF would be a good solution, but we also need the Ungoogled Chromium patches. Perhaps we don't need CEF. Your suggestions are much appreciated. |
Have you looked at QtWebEngine? That seems to be the direction you're wanting to go... |
I am trying to compile ungoogled chromium from the source code on Ubuntu 23.04 by following:
https://github.com/ungoogled-software/ungoogled-chromium-debian
root@iwplayer:/home/iwplayer# cat /etc/os-release | grep NAME
PRETTY_NAME="Ubuntu 23.04"
NAME="Ubuntu"
VERSION_CODENAME=lunar
UBUNTU_CODENAME=lunar
# Install initial packages
sudo apt install -y devscripts equivs
# Clone repository and switch to it (optional if are already in it)
git clone https://github.com/ungoogled-software/ungoogled-chromium-debian.git
cd ungoogled-chromium-debian
# Initiate the submodules (optional if they are already initiated)
git submodule update --init --recursive
pre-setup.log
# Prepare the local source
debian/rules setup
setup.log
# Install missing packages
sudo mk-build-deps -i debian/control
rm ungoogled-chromium-build-deps_*
after-setup.log
# Build the package
dpkg-buildpackage -b -uc
dpkg-buildpackage.log
/usr/include/stdlib.h:32:10: fatal error: 'stddef.h' file not found
#include <stddef.h>
The text was updated successfully, but these errors were encountered: