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

Publish linux build #621

Closed
gmankab opened this issue Dec 20, 2023 · 46 comments
Closed

Publish linux build #621

gmankab opened this issue Dec 20, 2023 · 46 comments
Labels
task These are things I tell myself I should do

Comments

@gmankab
Copy link

gmankab commented Dec 20, 2023

can you please provide a linux build

flatpak or appimage

@superlex
Copy link

See
#317 (comment)

@gmankab
Copy link
Author

gmankab commented Dec 20, 2023

if you mean will I publish the bins, the answer is no, unless someone takes it upon themselves to verify it and possibly help me in fixing the bugs

very sad

@uazo
Copy link
Owner

uazo commented Dec 21, 2023

Just the other day I discussed this with a friend who made me realise that perhaps my attitude is not correct: it is perhaps better to publish and wait for bugs to emerge that can perhaps be fixed by someone else.
I think I will publish the bins, declaring the lack of support, then in the future we will see.

@uazo uazo changed the title linux build Publish linux build Dec 21, 2023
@uazo uazo added the task These are things I tell myself I should do label Dec 21, 2023
@PF4Public
Copy link

@uazo Linux build works for me, I don't see any reason it should be buggy for others.

that can perhaps be fixed by someone else

If there are bugs, I'll see them too and I will surely try and fix them. Unfortunately for immediate feature I'm very occupied offline, but apart from that, you can count on me, I thought that it goes without saying since I was the one who opened that PR at the first place.

@basilgello
Copy link

I am in progress of tailoring Debian's chromium package to Cromite - I will publiah it on my Debian Salsa when I make it satisfactory building.

@uazo
Copy link
Owner

uazo commented Dec 23, 2023

@PF4Public can I ask you a favour?
I would like to make a zip to publish linux bins, similar to the one made for windows, but I have no idea what files are needed.
If you have time, could you make me a list? obvious without hurry.
thanks!

@PF4Public
Copy link

PF4Public commented Dec 23, 2023

@uazo Is it not what you want? #317 (comment)

Depending on the way you build it you may additionally need MEIPreload, chrome_crashpad_handler, chromedriver, chrome-sandbox, all localisations.

Also look here: https://github.com/PF4Public/gentoo-overlay/blob/281e31e57584a5c5a76ceff1ff06aa94eb84cde6/www-client/cromite/cromite-119.0.6045.199.ebuild#L1395-L1502

@uazo
Copy link
Owner

uazo commented Dec 23, 2023

Is it not what you want? #317 (comment)

what if we do the opposite then? can i offer you a zip to try? would it work in your opinion?
if you don't trust the zip, i understand don't bother, i'll set up a ubuntu desktop in a vm.

Also look here: https://github.com/PF4Public/gentoo-overlay/blob/281e31e57584a5c5a76ceff1ff06aa94eb84cde6/www-client/cromite/cromite-119.0.6045.199.ebuild#L1395-L1502

for me it is written in chinese! and I am Italian... :)

@PF4Public
Copy link

what if we do the opposite then? can i offer you a zip to try? would it work in your opinion?
if you don't trust the zip, i understand don't bother, i'll set up a ubuntu desktop in a vm.

If installing Ubuntu into a VM is not big trouble for you, could you do it yourself then? In order to properly test your zip I should devote some time for it, but I'm not sure I have that much for now :(

@uazo
Copy link
Owner

uazo commented Dec 23, 2023

yes, yes you are right, I will.

@PF4Public
Copy link

yes, yes you are right, I will.

Besides, this might make you certain that your browser works in Linux ;)

@uazo
Copy link
Owner

uazo commented Dec 23, 2023

of course, don't worry!

@uazo
Copy link
Owner

uazo commented Dec 23, 2023

chromium is really well written..

image

the icon is missing and I am building in debug, but works!

@uazo uazo added the working on it working on it label Dec 24, 2023
@bigdiff
Copy link

bigdiff commented Dec 26, 2023

what if we do the opposite then? can i offer you a zip to try? would it work in your opinion?
if you don't trust the zip, i understand don't bother, i'll set up a ubuntu desktop in a vm.

I'm available to test things as times permits you can tag me and I will do my best to test in a timely manner. Though I'm not much of a developer but I can debug things here and there :)

uazo added a commit that referenced this issue Dec 27, 2023
@uazo uazo closed this as completed Jan 5, 2024
@uazo uazo removed the working on it working on it label Jan 5, 2024
@gmankab
Copy link
Author

gmankab commented Jan 5, 2024

nice to see binary linux build

any plans for flatpak and appimage?

@uazo
Copy link
Owner

uazo commented Jan 5, 2024

any plans for flatpak and appimage?

I'm sorry, I don't even know what they are!

@superlex
Copy link

superlex commented Jan 5, 2024

Thank you @uazo !

Anyway, is it an expected behavior to have chromium icons instead of cromite ones?

@PF4Public
Copy link

PF4Public commented Jan 5, 2024

I'm sorry, I don't even know what they are!

Kurzgesagt In the nutshell they have with them every library they need in order to run, which decouples them from the underlying OS. Which implies that they may be built differently, so one should invest some effort in preparing them in addition to ordinary zip archive.

@gmankab
Copy link
Author

gmankab commented Jan 5, 2024

I'm sorry, I don't even know what they are!

so, flatpaks are best way for packages distribution on linux

if you decide to distribute flatpak, you need

  1. build a flatpaked chromite
  2. publish .flatpak build on releases page, or deploy self hosted repo
  3. optionaly publish build on flathub.org

here are some flatpaked browsers:

https://flathub.org/apps/com.github.Eloston.UngoogledChromium

https://flathub.org/apps/org.chromium.Chromium

https://flathub.org/apps/com.google.Chrome

https://flathub.org/apps/org.mozilla.firefox

https://flathub.org/apps/io.gitlab.librewolf-community

@bigdiff
Copy link

bigdiff commented Jan 5, 2024

it would indeed be nice to have flatpak builds, flathub have their own CI that builds the packages from source. it will reduce the load on your runners.

@syhlx
Copy link

syhlx commented Jan 5, 2024

Hi everyone!

Cromite is now available for Arch Linux (via AUR) as "cromite-bin".

@uazo I used your "chrome-lin64" release, please let me know if you change anything to that build and I'll update the Arch User Repository accordingly.

@uazo
Copy link
Owner

uazo commented Jan 6, 2024

please let me know if you change anything to that build and I'll update the Arch User Repository accordingly.

what do you mean? it will change with each release...

@gmankab
Copy link
Author

gmankab commented Jan 6, 2024

what do you mean? it will change with each release...

maybe they mean dependencies

@syhlx
Copy link

syhlx commented Jan 6, 2024

what do you mean? it will change with each release...

I mean if you:

  • rename output folders or change their structure
  • add files like icons, .desktop files...
  • add build targets like chromedriver or chrome_sandbox
  • add architectures like ARM64

I'll try to look for changes at each release. It's just so I don't miss anything important.

@uazo
Copy link
Owner

uazo commented Jan 6, 2024

ah, then it's simple.
since I will hardly ever try the linux version, maybe the opposite will happen, i.e. it won't work and will need additional files, but I don't think so.

@uazo
Copy link
Owner

uazo commented Jan 6, 2024

what is chrome_sandbox ?

@syhlx
Copy link

syhlx commented Jan 6, 2024

It's an additional binary for Chromium that allows it to run in certain sanboxed environments like firejails.

@basilgello
Copy link

It is the control process that executes syscalls on behalf of "jailed" processes like renderer to contain vulnerabilities.

@syhlx
Copy link

syhlx commented Jan 6, 2024

"chrome_sandbox" and "chromedriver" can be added to the build process when ninja is called:

ninja -C out/Release chrome chrome_sandbox chromedriver

@uazo
Copy link
Owner

uazo commented Jan 6, 2024

so I'm getting the build wrong, I have to add that target as well.

@uazo
Copy link
Owner

uazo commented Jan 6, 2024

It's an additional binary for Chromium that allows it to run in certain sanboxed environments like firejails.
It is the control process that executes syscalls on behalf of "jailed" processes like renderer to contain vulnerabilities.

but, let me understand, consider that I don't fully know the linux architecture but I do have some theoretical basis.
I looked at the code, it seems to me that chrome_sandbox is an executable (to be runned as root and obtained from the env CHROME_DEVEL_SANDBOX), launched at the fork of the secondart processes in what they call zygote.
He is responsible for Layer-1 in Zygote processes see https://chromium.googlesource.com/chromium/src/+/HEAD/docs/linux/sandboxing.md
they say it was removed, used for nacl (which is disabled by default in cromite) but turns out to be active anyway:

image

Has been deprecated in place of namespaces.
Does anyone know more about this?

@Universalizer
Copy link

Universalizer commented Jan 6, 2024

Yes, you are right, not present In Cromite.
But present in Mulch.

Check Screenshots

Details

Screenshot_20240106_234302_ClassyShark3xodus

Screenshot_20240106_234329_ClassyShark3xodus

@Universalizer
Copy link

Please ignore my previous above comment, mistaken due to Android "deep sleep for apps".

Cromite has following :-
⚿ appZygote: org.chromium.content.app.SandboxedProcessService0:⚿

But verified, most android chromium browsers lacks Layer 1 Sandbox and PID namespaces.

@PF4Public
Copy link

Has been deprecated in place of namespaces.

That is correct, chrome_sandbox is not needed on modern systems.

Does anyone know more about this?

What exactly do you want to know? You already researched it yourself it seems :D

At maximum you could include chromedriver in order to allow Cromite to be run in "headless" mode. This might be useful for some automation for example.

@uazo
Copy link
Owner

uazo commented Jan 7, 2024

That is correct, chrome_sandbox is not needed on modern systems.

perfect, that's what I thought.

At maximum you could include chromedriver in order to allow Cromite to be run in "headless" mode.

no, and I hope nobody thinks about it.
the risk is that cromite will be mistaken for a bot.

@uazo
Copy link
Owner

uazo commented Jan 7, 2024

@syhlx
Copy link

syhlx commented Jan 7, 2024

in any case, I forgot 'libvulkan.so.1'. see https://source.chromium.org/chromium/chromium/src/+/main:infra/archive_config/linux-archive-rel.json @syhlx

Noted. I'll add it on the next release.

@rookie-ger
Copy link

So is there an easy way how I can install Cromite on LinuxMint now? I have never ever built a package myself. Or do I have to wait until there is a Flatpak or .deb package available?

@uazo
Copy link
Owner

uazo commented Jan 11, 2024

So is there an easy way how I can install Cromite on LinuxMint now?

I think just download the zip and unzip it!
at least, I did that in ubuntu.

@rookie-ger
Copy link

I think just download the zip and unzip it! at least, I did that in ubuntu.
OK. I downloaded the source code zip and unzipped it. And how do I install/start Cromite then?

@uazo
Copy link
Owner

uazo commented Jan 11, 2024

And how do I install/start Cromite then?

I know little about it, but:

  • To start: simply double click on the chrome file, or via a terminal launch "./chrome".
  • To install: use chrome-wrapper present in the zipper file. does "things" check it first.

@PF4Public
Copy link

PF4Public commented Jan 11, 2024

Also note that by default Cromite uses your Chromium user data folder. Which might be a problem if you already have and use Chromium.

So is there an easy way how I can install Cromite on LinuxMint now?

On Linux it is customary to unpack "alien" packages into /opt — say /opt/cromite — and use the software from there.

I downloaded the source code zip and unzipped it.

You should use chrome-lin64.tar.gz

@rookie-ger
Copy link

Great! Thx. When Cromite for desktop (Linux and Win) is available in neat packages that auto update, this will be a game changer within the privacy and security conscious community and a very serious Brave competitor.

@PF4Public
Copy link

PF4Public commented Jan 11, 2024

When Cromite for desktop (Linux […] ) is available in neat packages that auto update

Well, you can try Gentoo and my overlay, which does just that1. Yes, I am biased here, so consider it being a joke :D

@basilgello have you succeeded in packaging Cromite for Debian?

There should be also Arch Linux package (via AUR) as "cromite-bin".

Footnotes

  1. To be completely honest, I'm very occupied offline at present time, so my package of Cromite is a bit out of date now, but the idea is exactly what you described.

@uazo
Copy link
Owner

uazo commented Jan 12, 2024

this will be a game changer within the privacy and security conscious community and a very serious Brave competitor.

OT: it is not my goal.

the truth is I would like there to be only one browser in the non-profit community, and whether it is called bromite/cromite/thorium/kiwi/ungoogled/vanadium etc. I don't care.
only then will we be taken into consideration by the mayors and perhaps make a difference. but I don't think it's easy to do, considering that some people make a living from donations, and in any case the team leader is missing.

so, for now, it is a leisure game, a way to learn, and possibly an incubator for future developers

@basilgello
Copy link

@PF4Public in progress. And unfortunately it is slower than I expected. But I am on my way there :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
task These are things I tell myself I should do
Projects
None yet
Development

No branches or pull requests

9 participants