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

Use an open build service or CI system #17

Closed
Alvintrmp opened this issue Jun 6, 2016 · 33 comments
Closed

Use an open build service or CI system #17

Alvintrmp opened this issue Jun 6, 2016 · 33 comments

Comments

@Alvintrmp
Copy link

Somepeople has ancient computers and can't compile ungoogled with his computer

because chromium EVEN with a good pc need some hours

for let more people enjoy your software

i suggest you try to make compatible ungoogled with a popular build service´such as opensuse build service

thanks for read my suggestion

@Eloston
Copy link
Member

Eloston commented Jun 6, 2016

Are you suggesting to use an open build platform to support more systems? If so, what systems and what build platforms do you recommend?

It's not a bad idea considering the hassle of building it myself. I'll need one or some that provides Debian Stretch, Ubuntu Xenial, and Windows environments.

@Alvintrmp
Copy link
Author

opensuse build service supports debian 7-8, ubuntu 15.10-16.04, centos 6-7, fedora 22-23, oepnsuse 13.1-1.2, tumbleweed and arch linux

and gives an extra advantage, lets users of ancient computers "or without huge amounts of ram" compile them, because the buildscript used for now requires a good cpu and many ram "intel i5 + 16gm ram delays 5 hours"

@Alvintrmp
Copy link
Author

as i think would fine give support "ading to the default chromium .src.rpm" the patches for opensuse and fedora, or at least arch

that lets anybody enjoy it "without a good hardware"

@Eloston
Copy link
Member

Eloston commented Jun 6, 2016

I'll look into using OpenSUSE Build Service for building Debian 8 and Ubuntu 16.04 packages for now. I still have some work to do to make support for other platforms easier, and I still need to finish work on Chromium 51.

@Eloston Eloston added this to the 51.x.x.x milestone Jun 6, 2016
@Alvintrmp
Copy link
Author

Alvintrmp commented Jun 6, 2016

this junk of clear-http-auth-cache-menu-item.patch isn't compatible with chromium 51
gpaste.us/5ca429b0
and this bug
http://gpaste.us/352fe25d

@Eloston
Copy link
Member

Eloston commented Jun 6, 2016

Please open another bug report for that.

@Eloston Eloston removed this from the 51.x.x.x milestone Sep 17, 2016
@Eloston Eloston changed the title Accesibility: use an open build platform Use an open build service or CI system Sep 30, 2016
@Eloston
Copy link
Member

Eloston commented Sep 30, 2016

For reference: There is some discussion about Travis-CI and Launchpad over on #37.

@Eloston
Copy link
Member

Eloston commented Mar 2, 2018

There currently isn't a need for this right now. GitLab CI can handle Linux builds, or push to other platforms that can create other packages. Also, none of the other platforms need an automated process right now.

@Eloston
Copy link
Member

Eloston commented Oct 24, 2018

In recent months, I've changed my stance on this issue. Having CI would boost development productivity and shorten the time needed to build and publish binaries ourselves.

Right now, there are several sub-ideal scripts I wrote to do sanity checking using CircleCI, but it would be better to actually run builds. It doesn't need to be after every commit; it could be done weekly or after a new tag is published for now.

I'm open to suggestions. Free plans from TravisCI and many other systems are out of the question because Chromium takes quite a bit of computational resources compared to that of most other free CI jobs (CPU, RAM, storage, and time). I also don't want to take the responsibility of maintaining this system, especially if it means I need to manage a paid plan and the funds that go into them.

@devnoname120
Copy link

devnoname120 commented Oct 25, 2018

Related: ungoogled-software/ungoogled-chromium-binaries#30

Free plans from TravisCI and many other systems are out of the question because Chromium takes quite a bit of computational resources compared to that of most other free CI jobs (CPU, RAM, storage, and time)

I would suggest asking them anyway, we never know what they might answer.

@intika
Copy link
Contributor

intika commented Oct 25, 2018

Related: ungoogled-software/ungoogled-chromium-binaries#30

Free plans from TravisCI and many other systems are out of the question because Chromium takes quite a bit of computational resources compared to that of most other free CI jobs (CPU, RAM, storage, and time)

I would suggest asking them anyway, we never know what they might answer.

@devnoname120 Send a request referring to this issue and let us know... but i don't think they will answer with a free offer that will build the project in a reasonable time (a server with 48 x 2Ghz and 128GRam build the project in 15 min)

@intika
Copy link
Contributor

intika commented Oct 25, 2018

Now i have an idea... google-cloud-computing offer a cli to manage servers and they bill only when the server is running, i could make some script that will automate the whole process BUT never the less this will cost approx 1~2 euros per build...

Basically it's what i am doing manually to build the releases that i published...

Thinking of 2 releases per month time the different releases 1,5€ x 2 releases x 10 builds = 30€/month a financial solution could be using "google search" to pay back the costs

All this to come back to what @Eloston have posted

I also don't want to take the responsibility of maintaining this system, especially if it means I need to manage a paid plan and the funds that go into them.

So to make it simple is there any volunteer for that ?

Note : in my personal situation i don't want to assume that (even if i do that manually from time to time)

We could setup a paypal donation account or something similar, but

  1. is @Eloston okay with such a solution ?
  2. is there any volunteer to manage that account ?

Other Idea : a designated packagers team...
(in my case i can not guarantee that i will build every release)

Other Idea : identify who make the build... let say to be able to publish a build you need to be identified name/adresse... disclosed to @Eloston or something

Other idea : deploy the package to all distro repos (find an official packager for evey distro)

Other idea : we make a little funding to make a gift to this project and offer him a server :D 👯‍♂️

Other idea : find a sponsor

Other idea : stop publishing builds looool ahaha

Other idea : setup something like a "button to build and publish" that would cost 2€ and any user can click it and pay to automatically build and publish hahahahaha never the less its doable (we will see a build popping up every day lol)

Thinking of that, that would be damn cool to have that button on a bench of projects loool i am giving away this idea of business for free guys lol hahahaha :D

@Eloston
Copy link
Member

Eloston commented Oct 26, 2018

@intika

Other idea : setup something like a "button to build and publish" that would cost 2€ and any user can click it and pay to automatically build and publish hahahahaha never the less its doable (we will see a build popping up every day lol)

This is an interesting idea; have the user pay for computational power to run a predefined process. However, I'm not sure if users would be willing to pay for builds; the technically-able could just purchase computing power themselves, so people who aren't as knowledgeable would be the main audience. I'm not sure what the main audience would like in this scenario.

Your other ideas are not bad, but they ultimately create more responsibility for at least one of us; examples of responsibilities include:

  • Upholding a title (e.g. designated packager)
  • Maintaining hardware (e.g. dedicated server)
  • Working with people (e.g. sponsor). I already have enough with what I do on GitHub.

I think the best solution here is something that creates minimal responsibilitiy for us (financially and socially), and is sustainable for the provider (e.g. a CI service, volunteer, etc.). I realize that these requirements are pretty atypical (normally someone has to dedicate some part of their lives and resources to maintain this sort of thing), but I personally don't believe the benefits from a better CI system outweighs the dedication required.

@devnoname120
Copy link

@intika I don't feel comfortable asking on the behalf of a project I'm not the owner of (I'm not even a contributor).

@intika
Copy link
Contributor

intika commented Oct 26, 2018

but I personally don't believe the benefits from a better CI system outweighs the dedication required.

Agree 100%

...

@Eloston i love the way you write its amazing and aspirating, english is not my mother lang but i would love to be able to write like you :) ... you should write a book lol :D 😋 👯‍♀️

I don't feel comfortable asking on the behalf of a project I'm not the owner of (I'm not even a contributor).

@devnoname120 You are a contributor participating to this by you answers etc. 👍

...

@Alvintrmp @devnoname120 @ArjonBu @ryneeverett @9Morello @lenormf @alexbakker @d33tah @RobinThrift @pizzadude @hrj @podshumok @MikolajQ @kirylpl @Lesik @zabbal @message @pseudoj @T-vK @metsatron @mtimofiiv @fedenko @sixtyfive @olosz @dannycolin @raininja @nyancat18 and all others and any one interested in this...

Any one willing to pay for builds ?

@hrj
Copy link

hrj commented Oct 26, 2018

@intika Great to see your enthusiasm. I can chip in about 5 to 10 USD per month and send it to any paypal account designated by @Eloston or @intika .

If we are able to collect the target of 30€/month, then fine. Otherwise, we can choose a smaller server and live with increased build time for now. Instead of 15 min per build, it might be 2 hours per build.

IMO the important thing is to get the ball rolling.

@alexbakker
Copy link

Asking DigitalOcean for some free credits on their platform may be worth a shot. They're known to support lots of open source projects.

@T-vK
Copy link

T-vK commented Oct 26, 2018

It wouldn't really be a problem to set up a private GitLab instance on a $5/month VPS, but we would need a maintainer who we can trust and who always ensures that the latest security patches are installed. And honestly there are not many people who I would trust enough to blindly load their binaries onto my computer.
In my opinion we should use a trusted service that takes care of the CI process. I'm not even sure if it would be necessary to pay for it at all. For instance, once #37 is resolved, we would be able to fully automate builds and distribution for Ubuntu, just by using a free gitlab.com account and launchpad.net.

@sixtyfive
Copy link

Whatever you feel you should do, you should do. Because in turn, at the moment there doesn't seem to be an awful lot of trust in you from the side of distributions. At least Solus think it's better to stay away from ungoogled-chromium: https://dev.getsol.us/T1117 .

@intika
Copy link
Contributor

intika commented Oct 26, 2018

Summarizing :

We just need some one that would take care of that... (in any case .../server/button/ci-services/...)

Any volunteer ?

Honestly i think none of those solutions is suitable, the project just need more users, then packagers of every distro will make this available in their repo...

@Eloston
Copy link
Member

Eloston commented Oct 26, 2018

@hrj brings up a good point; we need to get something going to make progress. As @T-vK brought up, we are pretty close to having an automated system for making .deb packages with GitLab and Launchpad; opening this channel for builds will help in bringing more users. Having more users helps with exposure, which in turn helps with development; it opens the possibility for a virtuous cycle of improvement. This should help build trust, which @sixtyfive and @intika brought up.

After #37 gets resolved (or even simultaneously), we could consider solutions like the ones @alexbakker brought up to setup automated builds for more configurations.

@ArjonBu
Copy link

ArjonBu commented Oct 26, 2018

@intika Why did you tag me?

BTW Just use the opensuse build service.

@intika
Copy link
Contributor

intika commented Oct 26, 2018

@intika Why did you tag me?

BTW Just use the opensuse build service.

Why not ! lol ... (just joking... i tagged you because of #59)

@hrj
Copy link

hrj commented Jan 29, 2019

Regarding the financial and legal overhead of managing something like this:

I came across OpenCollective today, which might be suitable for this project. In a nut shell, they "host" a collective, which means they take care of the bank account and accounting hassle. People who incur costs for the collective can raise an invoice, and the collective's admin can approve the invoice. Once approved, the funds for the invoice are released. People who want to donate to the collective get more transparency.

A good article explaining it is here

If there is interest and approval, especially from @Eloston, I will be happy to setup a collective for this project and see how it flies.

@Eloston
Copy link
Member

Eloston commented Jan 29, 2019

@hrj This is an interesting concept; thanks for sharing. However, I don't quite understand what value my approval has on this; what kind of responsibility would I incur as a result?

In addition, based on the article you linked, it seems that OpenCollective is targeted more towards funding developers rather than infrastructure itself. Are there similar cases to this on OpenCollective?

@hrj
Copy link

hrj commented Jan 29, 2019

@Eloston It is definitely useful for infrastructure. I have seen collectives which have invoices for loomio for example. Here's another collective that was started for paying hosting and domain costs: https://www.reddit.com/r/ponylang/comments/9nw2uy/pony_is_a_now_a_member_of_opencollective_looking/

About approval, I just meant informal approval, that is, confirmation that you don't mind something like this.

I tried creating a collective for my own projects, but it requires some github permissions to the repo. So, I probably won't be able to create a collective for this repo. You, or somebody with contributor permission to the repo, will have to initiate the creation.

@Eloston
Copy link
Member

Eloston commented Jan 29, 2019

@hrj I looked into the GitHub permissions they use, and it seems they require a lot of permissions to work properly right now: opencollective/opencollective#355

If we're going to use this, I'd rather we enable this on a mirror of this repository until the permissions are more reasonable. But, would this cause any major issues?

@ghost
Copy link

ghost commented Jun 12, 2019

I think travis ci is the most trusted CI! We can use it for free!! https://travis-ci.com/plans

Always free for open source projects

@tonowoe
Copy link

tonowoe commented Jun 14, 2019

I think travis ci is the most trusted CI! We can use it for free!! https://travis-ci.com/plans

Always free for open source projects

How does that work? Someone just can use their service to build open source project (like ungoogled-chromium) for multiple systems for free?

@sixtyfive
Copy link

Just one click on that link and it asks you for GitHub authorization...

@zrose584
Copy link

zrose584 commented Nov 11, 2019

Really I think OBS is the solution here:

  • completly free, costs nothing
  • integrates nicely into native package-manager (apt, pacman, dnf, ...)
  • supports 15 different distros (debian, ubuntu, arch, fedora, ...)
  • one can specifiy how much resources/memory is needed (no out-of-memory errors)
  • extra:

I am aware that others have alredy suggested the use of OBS.
Maybe a working example can help.

Some things to keep in mind:

  • the build-process has no internect connection, but one can use services to download arbitrary files.
  • one currently has no easy way to add external or backports repositories.
    But on can create a package (on OBS) for the missing/outdated dependencie and then link to it.
    See here: The Build Service provides a few different ways to facilitate handling of these [external] dependencies. [...]
  • if using gcc, one requires at least 12GB RAM, while clang only requries 10GB RAM (hardware + swap).
    btw, gcc also produces 14% larger binaries and takes 7% longer to build.

A good resource for getting started is this.


After everything is done, installing is as easy as

curl https://build.opensuse.org/projects/home:zrose584/public_key | sudo apt-key add -
echo "deb https://download.opensuse.org/repositories/home:/zrose584/Debian_10 ./" | sudo tee -a /etc/apt/sources.list
sudo apt-get update

sudo apt-get install ungoogled-chromium ungoogled-chromium-common

And since using apt, future updates will be installed automatically.
Not to mention that these builds are reproducable, so you don't have to trust an unknown person when using prebuild binaries.

@jstkdng
Copy link
Member

jstkdng commented Nov 28, 2019

+1 on the OBS solution, and the openSUSE folks even have a nice landing page for each project, e.g. my repo for arch.
image
https://software.opensuse.org/download/package?package=ungoogled-chromium&project=home%3Ajustkidding
With this maybe we could even replace the ungoogled-chromium-binaries repo.
We could manage all binaries for each distribution, not sure how to do it. Maybe create a UngoogledChromium project and add packages for each distribution.

@Eloston
Copy link
Member

Eloston commented Jun 24, 2020

I think this can finally be closed now as each platform is starting to integrate OBS or other solutions.

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

No branches or pull requests