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

COMPASS-544: Linux installers #742

Merged
merged 31 commits into from Jan 17, 2017
Merged

COMPASS-544: Linux installers #742

merged 31 commits into from Jan 17, 2017

Conversation

imlucas
Copy link
Contributor

@imlucas imlucas commented Jan 12, 2017

This pull request enables support for customers to install and use Compass on Linux. Our officially supported Linux platforms are Ubuntu 14.04+ and Red Hat Enterprise Linux 7+.

Installing Compass on Ubuntu 14.04+

wget https://s3.amazonaws.com/mciuploads/10gen-compass-master/7603d23a557ddde2bfc1dba4f9ba5201f454f288/mongodb-compass-dev_1.6.0~dev_amd64.deb;
sudo dpkg -i mongodb-compass-dev_1.6.0~dev_amd64.deb;
DEBUG=* mongodb-compass-dev;

Installing Compass on Red Hat Enterprise Linux 7+

wget https://s3.amazonaws.com/mciuploads/10gen-compass-master/7603d23a557ddde2bfc1dba4f9ba5201f454f288/mongodb-compass-dev-1.6.0.x86_64.rpm;
sudo yum install mongodb-compass-dev-1.6.0.x86_64.rpm;
sudo DEBUG=* mongodb-compass-dev;

@imlucas
Copy link
Contributor Author

imlucas commented Jan 17, 2017

NOTE (imlucas) Beginnings of a blog post to flesh out later.

Background

It is somewhat hilarious that the diff for this pull request is so small. There are no changes in 10gen/compass to review really. All of the work took place in hadron-build, Compass' build and release toolchain. It was a brutal amount of work as testing changes required approximately 25 minutes of cycle time and in the push to get it done, required a week of 8:00am - 10:00pm work days.

I solved several unanticipated challenges with non-standard methods so I'd like to take a chance to document them for the sake of the rest of the team.

Problem 1: Secure, Stable Keychain Access

  • keytar: the electron community's module of choice for secure credential storage
  • node.js native add-on: requires -dev|devel system packages to compile
  • keytar Linux backend uses gnome-keyring
  • gnome-keyring
  • Tracked down PR on upstream that was close enough
  • 💡 gnome-keyring ➡️ libsecret = 🏆

Problem 2: Evergreen

  • Can't add packages on evergreen
  • 💡 prebuild + keytar = 🏆

Problem 3: Travis

  • But now all tests timeout on Travis
  • prebuild's of keytar on different ubuntu version
  • travis.yml dist: trusty: ubuntu server 12.04 ➡️ 14.04 = 🏆

Problem 4: Evergreen Again

  • redhat.mongodb.parts 7.2 workstation in aws
    • works after yum install libsecret
    • build keytar from source works
  • Using prebuild on rhel evergreen fails
  • rhel server 7.0 on evergreen
    • libsecret-1.so can't be found
    • rpm try/fail....
  • 💡
    • prebuild fails only because libsecret-1.so is not there at build time
    • will be as rpm/deb dependency on libsecret dependency
    • Upload 7.2 .so to github ➡️ evergreen wget if rhel= 🏆

Why spend time on Linux?

  • Compass is a replacement for the MongoDB shell, so why Linux? They like shells right?
  • Linux ➡️ Red Hat ➡️ CentOS (Scientific Linux) = What Daniel used at Schrodinger
  • CentOS what sci phd programs tell students to install
  • They grow accustomed and use in professional work after dissertation

pzrq and others added 24 commits January 17, 2017 10:23
Suggested by the output of:

sudo yum install ./google-chrome-stable_current_x86_64.rpm

And yes, it's not a cross-site-scripting thing, unfortunate coincidence in the browser world :)

Suffix of (x86-64) is a general pattern from:
https://web.archive.org/web/20121015124845/http://rpm.org/wiki/PackagerDocs/ArchDependencies
categories: ["Development"] puts it in the Programming Menu which just does not look correct, Compass is a GUI first, it teaches programming MongoDB secondarily and tangentially.
For easier testing on Ubuntu build boxes until a hadron-build with these changes is published.
This reverts commit f164f200e19d287496a7eddc88a8e0505ce5b449.
I have been trying for hours to get libsecret-1 installed on rhel70
distro to no avail.  I’ll make a diagram of whats happening here later
@imlucas imlucas merged commit 3bd5135 into master Jan 17, 2017
@imlucas imlucas deleted the COMPASS-544-547-combined branch January 17, 2017 15:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants