Non-sensitive Rails configuration files can be 0644 root:root.
Porting those permissions is fine for the individual configuration
file, but not the parent directory tree. Don't change the group of
the directory tree in this case.
Brett Smith [Fri, 26 Feb 2016 23:20:41 +0000 (18:20 -0500)]
8371: Rails postrm only fires after removing last RPM.
This prevents removing the package files when the postrm script is
called for the old version of a package after doing an upgrade.
RPM post- scripts are called with $1 as the number of versions of the
package currently installed on the system. 0 means the last version
has been removed. We only want to remove files in that case.
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.