Skip to content
This repository has been archived by the owner on Mar 3, 2023. It is now read-only.

Update required dependencies for Debian/Ubuntu #22015

Merged
merged 2 commits into from May 21, 2021

Conversation

mfonville
Copy link
Contributor

After trying to build Atom on a very bare Ubuntu install, I figured out some missing dependencies for building: atom/flight-manual.atom.io#683

That also implied these libraries are the actual correct dependencies

@mfonville
Copy link
Contributor Author

@DeeDeeG would you maybe mind checking these for the Red Hat version?

@mfonville mfonville changed the title update required libs Update required dependencies for Debian/Ubuntu Mar 8, 2021
@DeeDeeG
Copy link
Contributor

DeeDeeG commented Mar 8, 2021

@mfonville I know it's likely too late to ask, but it would be great if you could provide any error messages that let you know that these packages were needed. Or the names/paths of the needed files, for instance shared object (.so) files. (As I recall we found out in the previous PR, the package names may not be the same in .rpm land, but the shared object files have a fair chance of having the same name.)

Or not quite as time-saving, but what minimal environment did you use to find out these packages were needed? (The debian or ubuntu Docker images, maybe?)

@mfonville
Copy link
Contributor Author

@DeeDeeG I unfortunately don't have the exact .so anymore. You can take a look at the PR for the Atom manual I submitted, in addition to that there were only some libraries that I did find, but later seemed to be implied by e.g gtk3 like: libxcomposite1 libxcursor1 libxdamage1 libatk1.0-0 libatk-bridge2.0-0 libgdk-pixbuf2.0-0; and libxtst6 did imply already for libxi6

The testing I did by building Atom on a Ubuntu Server ISO (20.04 in Virtualbox)

@mfonville
Copy link
Contributor Author

@DeeDeeG could you check if #22076 works for you on RPM-based distros? Then both PRs can be merged.

@DeeDeeG
Copy link
Contributor

DeeDeeG commented Mar 23, 2021

I haven't really had the time to set aside and take a look at this. I'm afraid I might not for a couple of weeks.

@mfonville
Copy link
Contributor Author

Ok, there is no hurry :-)

@Imreallycool8
Copy link

Imreallycool8 commented Mar 23, 2021 via email

@DeeDeeG
Copy link
Contributor

DeeDeeG commented Mar 23, 2021

@Imreallycool8 perhaps you are subscribed to updates in this repository?

Look for this button at the top of the page:

GitHub "watch" button

You can click that and select a narrower option, such as "Participating and @mentions" or "Ignore" or "Custom".

@Imreallycool8
Copy link

Imreallycool8 commented Apr 22, 2021 via email

@mfonville
Copy link
Contributor Author

@darangi You can already safely merge this PR, the other PR for the RPM-dependencies does not have any direct dependency with this one.

Thank you

mfonville added a commit to mfonville/atom that referenced this pull request May 18, 2021
@@ -1,6 +1,6 @@
Package: <%= appFileName %>
Version: <%= version %>
Depends: git, libgtk-3-0 (>= 3.9.10), libgcrypt20, libnotify4, libxtst6, libnss3 (>= 2:3.22), libglib2.0-bin | kde-cli-tools | kde-runtime, xdg-utils, libx11-xcb1, libxss1, libxkbfile1, libcurl3 | libcurl4
Depends: git, libgcrypt20, libgtk-3-0 (>= 3.9.10), libnotify4, libnss3 (>= 2:3.22), libglib2.0-bin | kde-cli-tools | kde-runtime, xdg-utils, libx11-xcb1, libxcb-dri3-0, libxss1, libxtst6, libxkbfile1, libcurl3 | libcurl4

This comment was marked as resolved.

This comment was marked as resolved.

@DeeDeeG
Copy link
Contributor

DeeDeeG commented May 19, 2021

I'm giving this the old "Docker test". Results later today, if all goes to plan.

@DeeDeeG
Copy link
Contributor

DeeDeeG commented May 20, 2021

I can recommend adding libgbm1 to the requirements. Once that is installed, all tested Debian/Ubuntu versions can do atom-dev --version --no-sandbox, even in these very minimal Docker containers. (Outside of Docker this is already more than good enough, I think.)

Results:

  • Debian
    • 8-slim (End-of-Life): needs libgbm.so.1 --> libgbm1 package ❌
    • 9-slim (oldest supported): good, no changes needed ✔️
    • 10-slim (newest supported): needs libgbm.so.1 --> libgbm1 package ❌
  • Ubuntu
    • 16.04 (recently End-of-Life): good, no changes needed ✔️
    • 18.04 (oldest supported): needs libgbm.so.1 --> libgbm1 package ❌
    • 20.04: good, no changes needed ✔️
    • 20.10: good, no changes needed ✔️
    • 21.04 (newest supported): good, no changes needed ✔️
Testing method and notes (click to expand):

Similar to #22076 (comment)...

Once the Docker container is up and running, first do apt-get update && apt-get install nano to get a working text editor. Use nano to write out and save this script, or else apt-get will swallow some of the later commands and they won't actually run:

export DEBIAN_FRONTEND=noninteractive # skip manual configuration prompt during install of the `tzdata` package
apt-get install -y wget unzip
wget 'https://dev.azure.com/DeeDeeG/b/_apis/build/builds/1128/artifacts?artifactName=atom-amd64.deb&api-version=6.0&%24format=zip' -O _atom.zip
unzip _atom.zip
apt-get install -y ./atom-amd64.deb/atom-amd64.deb
atom-dev --version --no-sandbox
/usr/share/atom-dev/atom --version --no-sandbox
apm-dev --version

Then run this script with bash ./[script_filename_here].

Note: Debian 8 is tested only for my curiosity's sake. The bundled apm in the latest Atom has a dependency git-utils that refuses to run with Debian 8's old libstdc++.so.6. The latest Atom probably doesn't really work on Debian 8.

The error message (click to expand):
Error: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /usr/share/atom-dev/resources/app/apm/node_modules/git-utils/build/Release/git.node)

Note: For the now End-of-Life Debian 8 release, apt-get refuses to install a bare .deb package. So you have to use dpkg -i ./atom-amd64.deb/atom-amd64.deb then apt-get install -f to get the downloaded Atom .deb file installed, instead of apt-get install ./atom-amd64.deb/atom-amd64.deb. Then the rest of the script is the same.

promote libasound to requires
@mfonville
Copy link
Contributor Author

Ok, I added libgbm1 too.

Also I changed libasound2 from recommends to requires, because it is after further checking a strict requirement. Atom cannot start without it.

Copy link
Contributor

@DeeDeeG DeeDeeG left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me. 👍

I re-tested Debian 10 and Ubuntu 18.04, which had a missing dependency before, and I also re-tested Ubuntu 20.04 for good measure. All pass the "Docker test" now (test described above). I'm not re-testing the others as they all should pass now, and it takes too long to test all eight.

@sadick254
Copy link
Contributor

@DeeDeeG Thank you for the additional tests.

@sadick254 sadick254 merged commit 8722495 into atom:master May 21, 2021
@CyberzNet
Copy link

After trying to build Atom on a very bare Ubuntu install, I figured out some missing dependencies for building: atom/flight-manual.atom.io#683

That also implied these libraries are the actual correct dependencies

#22015 (comment)

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

Successfully merging this pull request may close these issues.

None yet

7 participants