I suppose some systems (like Jenkins) have been able to continue
working because they have cached docker images that were built before
RVM dropped bundler (1.26.11 -- Mar 30, 2015).
But on a new system, we ended up here:
[...]
Package python3-websocket-client_0.35.0-1_all.deb exists, not rebuilding
/jenkins/run-library.sh: line 139: bundle: command not found
ERROR: arvados-api-server package prep failed
/jenkins/run-build-packages.sh: line 492: bundle: command not found
ERROR: Asset precompilation failed
ERROR: build failed with exit status 1.
Brett Smith [Wed, 3 Feb 2016 19:24:07 +0000 (14:24 -0500)]
Inhibit udev startup in Debian test Docker images.
The FUSE driver package depends on fuse, which depends on udev.
udev can't start its daemon from postinst in a container.
It has code to try to detect running in a container and skip the
daemon, but it fails intermittently.
e.g., <https://ci.curoverse.com/job/build-packages/1699/consoleFull>
It also skips starting the daemon when /etc/udev/disabled exists, so
create that.
Peter Amstutz [Thu, 28 Jan 2016 19:22:23 +0000 (14:22 -0500)]
Arvbox fixes: use 'postgres' database when testing if a user exists. Copy
gitolite.rc to the right place. Print out what is being deleted when using
"reset" or "destroy". refs #8080
Brett Smith [Mon, 25 Jan 2016 23:15:12 +0000 (18:15 -0500)]
8008: Make dependencies for build-dockerfiles.
We've apparently never had code to do this before. I guess all
deployments had the dependencies generated by hand before running.
This makes them automated to fix failures like
<https://ci.curoverse.com/job/build-packages/1668/console>.
Refs #8008.
Ward Vandewege [Fri, 22 Jan 2016 22:44:55 +0000 (17:44 -0500)]
Make sure not to accidentally include config/application.yml and
config/database.yml in our rails packages, take 2: make sure that
config/database.yml *is* present in our workbench packages, where we
want to include it.
Brett Smith [Sat, 2 Jan 2016 17:15:53 +0000 (12:15 -0500)]
8014, 8059: Unify Rails package building.
* Introduce a handle_rails_package function, and helpers, to build a
Rails package.
* Generalize all the support scripts into unified postinst, prerm, and
postrm scripts. handle_rails_package builds these into the
packages. See jenkins/rails-package-scripts/README.md for details.
* More error checking throughout (e.g., check for failure when doing
any prep work for Rails packages, or the Workbench packages
specifically, using `set -e` in a subshell).
One behavior change from this unification: before this,
run-build-packages treated --build-bundle-packages to mean "*also*
build bundle packages", while run-build-packages-sso treated the
switch to mean "*only* build bundle packages". This commit declares
run-build-packages to be the winner, and makes run-build-packages-sso
consistent with it.
Brett Smith [Sat, 2 Jan 2016 00:09:08 +0000 (19:09 -0500)]
Fix quoting of local variable assignments throughout.
When you assign a variable directly (e.g., `FOO=bar`), you don't need
to quote the RHS, because the shell doesn't do expansion in that
case. But when you declare and assign a variable (e.g., `local
foo=bar`), you *do* potentially need to quote it, because `local` is a
command and all the normal expansion rules for running commands
applies.
Brett Smith [Fri, 1 Jan 2016 18:38:00 +0000 (13:38 -0500)]
8014: Clean database state detection in arvados-sso postinst.
* Remove unused status code capture.
* Use `grep -q`. Previous versions of the script avoided it because
they piped directly from rake tasks, which would get upset when the
pipe broke. Now that we capture all the output, that's no longer a
concern.
Brett Smith [Fri, 1 Jan 2016 17:17:01 +0000 (12:17 -0500)]
8014: Improve conffile handling in arvados-sso postinst.
* DRY it up into a function.
* DATABASE_READY and APPLICATION_READY care about whether the
corresponding .yml file is usable. Always detect when it is
unmodified from the .yml.example file.
* Build symlinks from /var/www to /etc in more cases where it's safe.
Brett Smith [Wed, 9 Dec 2015 17:43:58 +0000 (12:43 -0500)]
7953: Update test procedure for CentOS 6 packages.
Don't install any Software Collections in the Dockerfile, just the
Software Collections tools. Test that our packages correctly declare
their dependency on the relevant Software Collection, and that it gets
pulled in. We want to tell users to install this way, so this makes
sure it's working.
Brett Smith [Mon, 7 Dec 2015 15:06:02 +0000 (10:06 -0500)]
7953: Fix Docker image to build CentOS 6.6 packages.
* Follow the Software Collections documentation at
<https://wiki.centos.org/AdditionalResources/Repositories/SCL>.
This downgrades us to Python 3.3, but that shouldn't be a
problem, since we test and build packages for Debian 7 which uses
Python 3.2. On the plus side, it removes an external dependency
on softwarecollections.org.
* The python-pip package disappeared. I don't know where it went.
Maybe there were changes to the underlying centos:6 Docker image?
Install it manually.
Brett Smith [Tue, 1 Dec 2015 22:13:20 +0000 (17:13 -0500)]
7839: Stop backporting requests for Python 2.
This is no longer needed now that our Keep client is built on top of
pycurl. Confirmed by building all our Python packages from source
into a fresh virtualenv. requests does not appear in `pip freeze`.
requests is still needed for Python 3 because docker-py uses it.
Tom Clegg [Fri, 6 Nov 2015 17:41:24 +0000 (12:41 -0500)]
Add libwww-perl and python mock dependencies, so tests can run on ubuntu 14.04
If we let setuptools install mock for us (because it's listed in
tests_require), "python setup.py test" fails:
running test
Searching for mock>=1.0
Best match: mock 1.3.0
Processing mock-1.3.0-py2.7.egg
Using /tmp/arvados/sdk/python/.eggs/mock-1.3.0-py2.7.egg
Traceback (most recent call last):
File "setup.py", line 49, in <module>
cmdclass={'egg_info': tagger},
[...]
File "/tmp/.cache/arvados-build/VENVDIR/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2910, in scan_list
raise RequirementParseError(msg, line, "at", line[p:])
pkg_resources.RequirementParseError: Expected version spec in funcsigs;python_version<"3.3" at ;python_version<"3.3
Ward Vandewege [Wed, 4 Nov 2015 14:50:42 +0000 (09:50 -0500)]
arvados-api-server-upgrade.sh fix: do not try to chmod the cache
directory if it doesn't exist. This avoids an error on fresh install.
Rails will create the cache directory if it doesn't exist.