[ARVADOS] created: 95a519e20d1900f6f60a66b2e34afa08de1dd335
Git user
git at public.curoverse.com
Tue Mar 8 16:40:44 EST 2016
at 95a519e20d1900f6f60a66b2e34afa08de1dd335 (commit)
commit 95a519e20d1900f6f60a66b2e34afa08de1dd335
Author: Tom Clegg <tom at curoverse.com>
Date: Tue Mar 8 16:40:22 2016 -0500
8345: Pin llfuse to <1.0
diff --git a/services/fuse/setup.py b/services/fuse/setup.py
index 0c2a4cc..8eed573 100644
--- a/services/fuse/setup.py
+++ b/services/fuse/setup.py
@@ -33,7 +33,7 @@ setup(name='arvados_fuse',
],
install_requires=[
'arvados-python-client >= 0.1.20151118035730',
- 'llfuse>=0.42.1',
+ 'llfuse >= 0.42.1, < 1.0',
'python-daemon',
'ciso8601'
],
commit cb2b22b2f7ae63a6c1c53d70b0830c25283126c7
Author: Tom Clegg <tom at curoverse.com>
Date: Tue Mar 8 16:39:59 2016 -0500
8491: Avoid installing an activesupport gem that is too new for our ruby.
diff --git a/build/run-tests.sh b/build/run-tests.sh
index a17d610..fd64fe3 100755
--- a/build/run-tests.sh
+++ b/build/run-tests.sh
@@ -464,6 +464,12 @@ then
gem install --user-install bundler || fatal 'Could not install bundler'
fi
+# activesupport>=5.0.0 requires ruby 2.2.2. This ensures we test with
+# a version that will actually work with the ruby we're using to run
+# tests, without pinning the ruby sdk package itself to older
+# versions.
+gem install --user-install activesupport -v '<5.0.0' || fatal 'activesupport'
+
checkexit() {
if [[ "$1" != "0" ]]; then
title "!!!!!! $2 FAILED !!!!!!"
commit 9309fbb402407af5250bbf6df7fdbece8d16ed5d
Author: Tom Clegg <tom at curoverse.com>
Date: Tue Mar 8 16:37:42 2016 -0500
8491: move files from arvados-dev into their new places
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..c92213f
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,7 @@
+export WORKSPACE?=$(shell pwd)
+test:
+ build/run-tests.sh
+packages:
+ build/run-build-packages-all-targets.sh
+test-packages:
+ build/run-build-packages-all-targets.sh --test-packages
diff --git a/build/COPYING b/build/COPYING
deleted file mode 100644
index af63e41..0000000
--- a/build/COPYING
+++ /dev/null
@@ -1,2 +0,0 @@
-This code is licenced under the GNU Affero General Public License version 3
-(see agpl-3.0.txt)
diff --git a/build/README b/build/README
deleted file mode 100644
index b076f0b..0000000
--- a/build/README
+++ /dev/null
@@ -1,30 +0,0 @@
-Welcome to Arvados!
-
-This is the arvados-dev source tree. It contains scripts that can be useful
-if you want to hack on Arvados itself.
-
-If you are interested in using Arvados or setting up your own Arvados
-installation, you most likely do not need this source tree.
-
-For the Arvados source code, check out the git repository at
- https://github.com/curoverse/arvados
-
-The main Arvados web site is
- https://arvados.org
-
-The Arvados public wiki is located at
- https://arvados.org/projects/arvados/wiki
-
-The Arvados public bug tracker is located at
- https://arvados.org/projects/arvados/issues
-
-For support see
- http://doc.arvados.org/user/getting_started/community.html
-
-Installation documentation is located at
- http://doc.arvados.org/install
-
-If you wish to build the documentation yourself, follow the instructions in
-doc/README to build the documentation, then consult the "Install Guide".
-
-See COPYING for information about Arvados Free Software licenses.
diff --git a/build/agpl-3.0.txt b/build/agpl-3.0.txt
deleted file mode 100644
index dba13ed..0000000
--- a/build/agpl-3.0.txt
+++ /dev/null
@@ -1,661 +0,0 @@
- GNU AFFERO GENERAL PUBLIC LICENSE
- Version 3, 19 November 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The GNU Affero General Public License is a free, copyleft license for
-software and other kinds of works, specifically designed to ensure
-cooperation with the community in the case of network server software.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-our General Public Licenses are intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
- Developers that use our General Public Licenses protect your rights
-with two steps: (1) assert copyright on the software, and (2) offer
-you this License which gives you legal permission to copy, distribute
-and/or modify the software.
-
- A secondary benefit of defending all users' freedom is that
-improvements made in alternate versions of the program, if they
-receive widespread use, become available for other developers to
-incorporate. Many developers of free software are heartened and
-encouraged by the resulting cooperation. However, in the case of
-software used on network servers, this result may fail to come about.
-The GNU General Public License permits making a modified version and
-letting the public access it on a server without ever releasing its
-source code to the public.
-
- The GNU Affero General Public License is designed specifically to
-ensure that, in such cases, the modified source code becomes available
-to the community. It requires the operator of a network server to
-provide the source code of the modified version running there to the
-users of that server. Therefore, public use of a modified version, on
-a publicly accessible server, gives the public access to the source
-code of the modified version.
-
- An older license, called the Affero General Public License and
-published by Affero, was designed to accomplish similar goals. This is
-a different license, not a version of the Affero GPL, but Affero has
-released a new version of the Affero GPL which permits relicensing under
-this license.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU Affero General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Remote Network Interaction; Use with the GNU General Public License.
-
- Notwithstanding any other provision of this License, if you modify the
-Program, your modified version must prominently offer all users
-interacting with it remotely through a computer network (if your version
-supports such interaction) an opportunity to receive the Corresponding
-Source of your version by providing access to the Corresponding Source
-from a network server at no charge, through some standard or customary
-means of facilitating copying of software. This Corresponding Source
-shall include the Corresponding Source for any work covered by version 3
-of the GNU General Public License that is incorporated pursuant to the
-following paragraph.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the work with which it is combined will remain governed by version
-3 of the GNU General Public License.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU Affero General Public License from time to time. Such new versions
-will be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU Affero General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU Affero General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU Affero General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU Affero General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Affero General Public License for more details.
-
- You should have received a copy of the GNU Affero General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-Also add information on how to contact you by electronic and paper mail.
-
- If your software can interact with users remotely through a computer
-network, you should also make sure that it provides a way for users to
-get its source. For example, if your program is a web application, its
-interface could display a "Source" link that leads users to an archive
-of the code. There are many ways you could offer source, and different
-solutions will be better for different programs; see section 13 for the
-specific requirements.
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU AGPL, see
-<http://www.gnu.org/licenses/>.
diff --git a/build/jenkins/create-plot-data-from-log.sh b/build/create-plot-data-from-log.sh
similarity index 100%
rename from build/jenkins/create-plot-data-from-log.sh
rename to build/create-plot-data-from-log.sh
diff --git a/build/git/hooks/coding-standards.sh b/build/git/hooks/coding-standards.sh
deleted file mode 100755
index d4e4c71..0000000
--- a/build/git/hooks/coding-standards.sh
+++ /dev/null
@@ -1,128 +0,0 @@
-#!/usr/bin/env ruby
-
-# This script can be installed as a git update hook.
-
-# It can also be installed as a gitolite 'hooklet' in the
-# hooks/common/update.secondary.d/ directory.
-
-# NOTE: this script runs under the same assumptions as the 'update' hook, so
-# the starting directory must be maintained and arguments must be passed on.
-
-$refname = ARGV[0]
-$oldrev = ARGV[1]
-$newrev = ARGV[2]
-$user = ENV['USER']
-
-def blacklist bl
- all_revs = `git rev-list #{$oldrev}..#{$newrev}`.split("\n")
- all_revs.each do |rev|
- bl.each do |b|
- if rev == b
- puts "Revision #{b} is blacklisted, you must remove it from your branch (possibly using git rebase) before you can push."
- exit 1
- end
- end
- end
-end
-
-blacklist ['26d74dc0524c87c5dcc0c76040ce413a4848b57a']
-
-# Only enforce policy on the master branch
-exit 0 if $refname != 'refs/heads/master'
-
-puts "Enforcing Policies... \n(#{$refname}) (#{$oldrev[0,6]}) (#{$newrev[0,6]})"
-
-$regex = /\[ref: (\d+)\]/
-
-$broken_commit_message = /Please enter a commit message to explain why this merge is necessary/
-$wrong_way_merge_master = /Merge( remote-tracking)? branch '([^\/]+\/)?master' into/
-$merge_master = /Merge branch '[^']+'((?! into)| into master)/
-$pull_merge = /Merge branch 'master' of /
-$refs_or_closes_or_no_issue = /(refs #|closes #|fixes #|no issue #)/i
-
-# enforced custom commit message format
-def check_message_format
- all_revs = `git rev-list --first-parent #{$oldrev}..#{$newrev}`.split("\n")
- merge_revs = `git rev-list --first-parent --min-parents=2 #{$oldrev}..#{$newrev}`.split("\n")
- # single_revs = `git rev-list --first-parent --max-parents=1 #{$oldrev}..#{$newrev}`.split("\n")
- broken = false
- no_ff = false
-
- merge_revs.each do |rev|
- message = `git cat-file commit #{rev} | sed '1,/^$/d'`
- if $wrong_way_merge_master.match(message)
- puts "\n[POLICY] Only non-fast-forward merges into master are allowed. Please"
- puts "reset your master branch:"
- puts " git reset --hard origin/master"
- puts "and then merge your branch with the --no-ff option:"
- puts " git merge your-branch --no-ff\n"
- puts "Remember to add a reference to an issue number in the merge commit!\n"
- puts "\n******************************************************************\n"
- puts "\nOffending commit: #{rev}\n"
- puts "\nOffending commit message:\n"
- puts message
- puts "\n******************************************************************\n"
- puts "\n\n"
- broken = true
- no_ff = true
- elsif $pull_merge.match(message)
- puts "\n[POLICY] This appears to be a git pull merge of remote master into local"
- puts "master. In order to maintain a linear first-parent history of master,"
- puts "please reset your branch and remerge or rebase using the latest master.\n"
- puts "\n******************************************************************\n"
- puts "\nOffending commit: #{rev}\n"
- puts "\nOffending commit message:\n\n"
- puts message
- puts "\n******************************************************************\n"
- puts "\n\n"
- broken = true
- elsif not $merge_master.match(message) and not
- puts "\n[POLICY] This does not appear to be a merge of a feature"
- puts "branch into master. Merges must follow the format"
- puts "\"Merge branch 'feature-branch'\".\n"
- puts "\n******************************************************************\n"
- puts "\nOffending commit: #{rev}\n"
- puts "\nOffending commit message:\n\n"
- puts message
- puts "\n******************************************************************\n"
- puts "\n\n"
- broken = true
- end
- end
-
- all_revs.each do |rev|
- message = `git cat-file commit #{rev} | sed '1,/^$/d'`
- if $broken_commit_message.match(message)
- puts "\n[POLICY] Rejected broken commit message for including boilerplate"
- puts "instruction text.\n"
- puts "\n******************************************************************\n"
- puts "\nOffending commit: #{rev}\n"
- puts "\nOffending commit message:\n\n"
- puts message
- puts "\n******************************************************************\n"
- puts "\n\n"
- broken = true
- end
-
- # Do not test when the commit is a no_ff merge (which will be rejected), because
- # this test will complain about *every* commit in the merge otherwise, obscuring
- # the real reason for the rejection (the no_ff merge)
- if not no_ff and not $refs_or_closes_or_no_issue.match(message)
- puts "\n[POLICY] All commits to master must include an issue using \"refs #\" or"
- puts "\"closes #\", or specify \"no issue #\"\n"
- puts "\n******************************************************************\n"
- puts "\nOffending commit: #{rev}\n"
- puts "\nOffending commit message:\n\n"
- puts message
- puts "\n******************************************************************\n"
- puts "\n\n"
- broken = true
- end
- end
-
- if broken
- exit 1
- end
-end
-
-check_message_format
diff --git a/build/install/easy-docker-install.sh b/build/install/easy-docker-install.sh
deleted file mode 100755
index fe6e186..0000000
--- a/build/install/easy-docker-install.sh
+++ /dev/null
@@ -1,87 +0,0 @@
-#!/usr/bin/env bash
-
-# This script is intended to make Arvados installation easy. It will download the
-# latest copy of the Arvados docker images as well as the arvdock command. It
-# then uses arvdock to spin up Arvados on this computer.
-#
-# The latest version of this script is available at http://get.arvados.org, so that this
-# command does the right thing:
-#
-# $ \curl -sSL http://get.arvados.org | bash
-#
-# Prerequisites: working docker installation. Run this script as a user who is a member
-# of the docker group.
-
-COLUMNS=80
-
-fail () {
- title "$*"
- exit 1
-}
-
-title () {
- printf "\n%*s\n\n" $(((${#title}+$COLUMNS)/2)) "********** $1 **********"
-}
-
-docker_pull () {
- $DOCKER pull $*
-
- ECODE=$?
-
- if [[ "$ECODE" != "0" ]]; then
- title "$DOCKER pull $* failed"
- exit $ECODE
- fi
-}
-
-main () {
-
- \which which >/dev/null 2>&1 || fail "Error: could not find 'which' command."
-
- # find the docker binary
- DOCKER=`which docker.io`
-
- if [[ "$DOCKER" == "" ]]; then
- DOCKER=`which docker`
- fi
-
- if [[ "$DOCKER" == "" ]]; then
- fail "Error: you need to have docker installed. Could not find the docker executable."
- fi
-
- echo
- echo "If necessary, this command will download the latest Arvados docker images."
- echo "The download can take a long time, depending on the speed of your internet connection."
- echo "When the images are downloaded, it will then start an Arvados environment on this computer."
- echo
- docker_pull arvados/workbench
- docker_pull arvados/doc
- docker_pull arvados/keep
- docker_pull arvados/shell
- docker_pull arvados/sso
- docker_pull arvados/compute
- docker_pull arvados/keep
- docker_pull arvados/keepproxy
- docker_pull arvados/api
- docker_pull crosbymichael/skydns
- docker_pull crosbymichael/skydock
-
- # Now download arvdock and start the containers
- echo
- echo Downloading arvdock
- echo
- \curl -sSL https://raw.githubusercontent.com/curoverse/arvados/master/docker/arvdock -o arvdock
- chmod 755 arvdock
-
- echo
- echo Starting the docker containers
- echo
- ./arvdock start
-
- echo To stop the containers, run
- echo
- echo ./arvdock stop
- echo
-}
-
-main
diff --git a/build/jenkins/run-cwl-tests.sh b/build/jenkins/run-cwl-tests.sh
deleted file mode 100755
index 53c0538..0000000
--- a/build/jenkins/run-cwl-tests.sh
+++ /dev/null
@@ -1,218 +0,0 @@
-#!/bin/bash
-
-read -rd "\000" helpmessage <<EOF
-$(basename $0): Test cwl tool and (optionally) upload to PyPi and Docker Hub.
-
-Syntax:
- WORKSPACE=/path/to/common-workflow-language $(basename $0) [options]
-
-Options:
-
---upload-pypi Upload package to pypi (default: false)
---upload-docker Upload packages to docker hub (default: false)
---debug Output debug information (default: false)
-
-WORKSPACE=path Path to the common-workflow-language source tree
-
-EOF
-
-EXITCODE=0
-CALL_FREIGHT=0
-
-DEBUG=0
-UPLOAD_PYPI=0
-UPLOAD_DOCKER=0
-
-VENVDIR=
-
-leave_temp=
-
-declare -A leave_temp
-
-set -e
-
-clear_temp() {
- leaving=""
- for var in VENVDIR
- do
- if [[ -z "${leave_temp[$var]}" ]]
- then
- if [[ -n "${!var}" ]]
- then
- rm -rf "${!var}"
- fi
- else
- leaving+=" $var=\"${!var}\""
- fi
- done
- if [[ -n "$leaving" ]]; then
- echo "Leaving behind temp dirs: $leaving"
- fi
-}
-
-fatal() {
- clear_temp
- echo >&2 "Fatal: $* (encountered in ${FUNCNAME[1]} at ${BASH_SOURCE[1]} line ${BASH_LINENO[0]})"
- exit 1
-}
-
-trap clear_temp INT EXIT
-
-# Set up temporary install dirs (unless existing dirs were supplied)
-for tmpdir in VENVDIR
-do
- if [[ -n "${!tmpdir}" ]]; then
- leave_temp[$tmpdir]=1
- else
- eval $tmpdir=$(mktemp -d)
- fi
-done
-
-
-while [[ -n "$1" ]]
-do
- arg="$1"; shift
- case "$arg" in
- --help)
- echo >&2 "$helpmessage"
- echo >&2
- exit 1
- ;;
- --debug)
- DEBUG=1
- ;;
- --upload-pypi)
- UPLOAD_PYPI=1
- ;;
- --upload-docker)
- UPLOAD_DOCKER=1
- ;;
- --leave-temp)
- leave_temp[VENVDIR]=1
- ;;
- *=*)
- eval export $(echo $arg | cut -d= -f1)=\"$(echo $arg | cut -d= -f2-)\"
- ;;
- *)
- echo >&2 "$0: Unrecognized option: '$arg'. Try: $0 --help"
- exit 1
- ;;
- esac
-done
-
-# Sanity check
-if ! [[ -n "$WORKSPACE" ]]; then
- echo >&2 "$helpmessage"
- echo >&2
- echo >&2 "Error: WORKSPACE environment variable not set"
- echo >&2
- exit 1
-fi
-
-if [[ "$DEBUG" != 0 ]]; then
- echo "Workspace is $WORKSPACE"
-fi
-
-virtualenv --setuptools "$VENVDIR" || fatal "virtualenv $VENVDIR failed"
-. "$VENVDIR/bin/activate"
-
-handle_python_package () {
- # This function assumes the current working directory is the python package directory
- if [[ "$UPLOAD_PYPI" != 0 ]]; then
- # Make sure only to use sdist - that's the only format pip can deal with (sigh)
- if [[ "$DEBUG" != 0 ]]; then
- python setup.py sdist upload
- else
- python setup.py -q sdist upload
- fi
- else
- # Make sure only to use sdist - that's the only format pip can deal with (sigh)
- if [[ "$DEBUG" != 0 ]]; then
- python setup.py sdist
- else
- python setup.py -q sdist
- fi
- fi
-}
-
-# Make all files world-readable -- jenkins runs with umask 027, and has checked
-# out our git tree here
-chmod o+r "$WORKSPACE" -R
-
-# Now fix our umask to something better suited to building and publishing
-# gems and packages
-umask 0022
-
-if [[ "$DEBUG" != 0 ]]; then
- echo "umask is" `umask`
-fi
-
-# Python packages
-if [[ "$DEBUG" != 0 ]]; then
- echo
- echo "Python packages"
- echo
-fi
-
-cd "$WORKSPACE"
-
-if test -d cwltool ; then
- (cd cwltool
- git fetch
- git reset --hard origin/master
- )
-else
- git clone git at github.com:common-workflow-language/cwltool.git
- (cd cwltool
- git config user.email "sysadmin at curoverse.com"
- git config user.name "Curoverse build bot"
- )
-fi
-
-(cd cwltool
- python setup.py install
- python setup.py test
- ./build-node-docker.sh
-)
-
-./run_test.sh RUNNER=cwltool/cwltool/main.py DRAFT=draft-2
-./run_test.sh RUNNER=cwltool/cwltool/main.py DRAFT=draft-3
-
-(cd cwltool
- handle_python_package
-)
-
-(cd cwltool/cwl-runner
- handle_python_package
-)
-
-(cd cwltool
- ./build-cwl-docker.sh
-)
-
-if [[ "$UPLOAD_DOCKER" != 0 ]]; then
- docker push commonworkflowlanguage/cwltool_module
- docker push commonworkflowlanguage/cwltool
- docker push commonworkflowlanguage/nodejs-engine
-fi
-
-if test -d common-workflow-language.github.io ; then
- (cd common-workflow-language.github.io
- git fetch
- git reset --hard origin/master
- )
-else
- git clone git at github.com:common-workflow-language/common-workflow-language.github.io.git
- (cd common-workflow-language.github.io
- git config user.email "sysadmin at curoverse.com"
- git config user.name "Curoverse build bot"
- )
-fi
-
-python -mcwltool --outdir=$PWD/common-workflow-language.github.io site/cwlsite.cwl site/cwlsite-job.json
-
-(cd common-workflow-language.github.io
- git add --all
- git diff-index --quiet HEAD || git commit -m"Build bot"
- git push
-)
diff --git a/build/jenkins/run-deploy.sh b/build/jenkins/run-deploy.sh
deleted file mode 100755
index 1b06c65..0000000
--- a/build/jenkins/run-deploy.sh
+++ /dev/null
@@ -1,266 +0,0 @@
-#!/bin/bash
-
-DEBUG=0
-SSH_PORT=22
-
-function usage {
- echo >&2
- echo >&2 "usage: $0 [options] <identifier>"
- echo >&2
- echo >&2 " <identifier> Arvados cluster name"
- echo >&2
- echo >&2 "$0 options:"
- echo >&2 " -p, --port <ssh port> SSH port to use (default 22)"
- echo >&2 " -d, --debug Enable debug output"
- echo >&2 " -h, --help Display this help and exit"
- echo >&2
- echo >&2 "Note: this script requires an arvados token created with these permissions:"
- echo >&2 ' arv api_client_authorization create_system_auth \'
- echo >&2 ' --scopes "[\"GET /arvados/v1/virtual_machines\",'
- echo >&2 ' \"GET /arvados/v1/keep_services\",'
- echo >&2 ' \"GET /arvados/v1/keep_services/\",'
- echo >&2 ' \"GET /arvados/v1/groups\",'
- echo >&2 ' \"GET /arvados/v1/groups/\",'
- echo >&2 ' \"GET /arvados/v1/links\",'
- echo >&2 ' \"GET /arvados/v1/collections\",'
- echo >&2 ' \"POST /arvados/v1/collections\",'
- echo >&2 ' \"POST /arvados/v1/links\"]"'
- echo >&2
-}
-
-# NOTE: This requires GNU getopt (part of the util-linux package on Debian-based distros).
-TEMP=`getopt -o hdp: \
- --long help,debug,port: \
- -n "$0" -- "$@"`
-
-if [ $? != 0 ] ; then echo "Use -h for help"; exit 1 ; fi
-# Note the quotes around `$TEMP': they are essential!
-eval set -- "$TEMP"
-
-while [ $# -ge 1 ]
-do
- case $1 in
- -p | --port)
- SSH_PORT="$2"; shift 2
- ;;
- -d | --debug)
- DEBUG=1
- shift
- ;;
- --)
- shift
- break
- ;;
- *)
- usage
- exit 1
- ;;
- esac
-done
-
-IDENTIFIER=$1
-
-if [[ "$IDENTIFIER" == '' ]]; then
- usage
- exit 1
-fi
-
-EXITCODE=0
-
-COLUMNS=80
-
-PUPPET_AGENT='
-now() { date +%s; }
-let endtime="$(now) + 600"
-while [ "$endtime" -gt "$(now)" ]; do
- puppet agent --test --detailed-exitcodes
- agent_exitcode=$?
- if [ 0 = "$agent_exitcode" ] || [ 2 = "$agent_exitcode" ]; then
- break
- else
- sleep 10s
- fi
-done
-exit ${agent_exitcode:-99}
-'
-
-title () {
- date=`date +'%Y-%m-%d %H:%M:%S'`
- printf "$date $1\n"
-}
-
-function run_puppet() {
- node=$1
- return_var=$2
-
- title "Running puppet on $node"
- TMP_FILE=`mktemp`
- if [[ "$DEBUG" != "0" ]]; then
- ssh -t -p$SSH_PORT -o "StrictHostKeyChecking no" -o "ConnectTimeout 5" root@$node -C bash -c "'$PUPPET_AGENT'" | tee $TMP_FILE
- else
- ssh -t -p$SSH_PORT -o "StrictHostKeyChecking no" -o "ConnectTimeout 5" root@$node -C bash -c "'$PUPPET_AGENT'" > $TMP_FILE 2>&1
- fi
-
- ECODE=${PIPESTATUS[0]}
- RESULT=$(cat $TMP_FILE)
-
- if [[ "$ECODE" != "255" && ! ("$RESULT" =~ 'already in progress') && "$ECODE" != "2" && "$ECODE" != "0" ]]; then
- # Ssh exits 255 if the connection timed out. Just ignore that.
- # Puppet exits 2 if there are changes. For real!
- # Puppet prints 'Notice: Run of Puppet configuration client already in progress' if another puppet process
- # was already running
- echo "ERROR running puppet on $node: exit code $ECODE"
- if [[ "$DEBUG" == "0" ]]; then
- title "Command output follows:"
- echo $RESULT
- fi
- fi
- if [[ "$ECODE" == "255" ]]; then
- title "Connection timed out"
- ECODE=0
- fi
- if [[ "$ECODE" == "2" ]]; then
- ECODE=0
- fi
- rm -f $TMP_FILE
- eval "$return_var=$ECODE"
-}
-
-function run_command() {
- node=$1
- return_var=$2
- command=$3
-
- title "Running '$command' on $node"
- TMP_FILE=`mktemp`
- if [[ "$DEBUG" != "0" ]]; then
- ssh -t -p$SSH_PORT -o "StrictHostKeyChecking no" -o "ConnectTimeout 5" root@$node -C "$command" | tee $TMP_FILE
- else
- ssh -t -p$SSH_PORT -o "StrictHostKeyChecking no" -o "ConnectTimeout 5" root@$node -C "$command" > $TMP_FILE 2>&1
- fi
-
- ECODE=$?
- RESULT=$(cat $TMP_FILE)
-
- if [[ "$ECODE" != "255" && "$ECODE" != "0" ]]; then
- # Ssh exists 255 if the connection timed out. Just ignore that, it's possible that this node is
- # a shell node that is down.
- title "ERROR running command on $node: exit code $ECODE"
- if [[ "$DEBUG" == "0" ]]; then
- title "Command output follows:"
- echo $RESULT
- fi
- fi
- if [[ "$ECODE" == "255" ]]; then
- title "Connection timed out"
- ECODE=0
- fi
- rm -f $TMP_FILE
- eval "$return_var=$ECODE"
-}
-
-title "Updating API server"
-SUM_ECODE=0
-run_puppet $IDENTIFIER.arvadosapi.com ECODE
-SUM_ECODE=$(($SUM_ECODE + $ECODE))
-if [ ! "$IDENTIFIER" = "c97qk" ]
-then
- run_command $IDENTIFIER.arvadosapi.com ECODE "dpkg -L arvados-mailchimp-plugin 2>/dev/null && apt-get install arvados-mailchimp-plugin --reinstall || echo"
- SUM_ECODE=$(($SUM_ECODE + $ECODE))
-fi
-
-if [[ "$SUM_ECODE" != "0" ]]; then
- title "ERROR: Updating API server FAILED"
- EXITCODE=$(($EXITCODE + $SUM_ECODE))
- exit $EXITCODE
-fi
-
-title "Loading ARVADOS_API_HOST and ARVADOS_API_TOKEN"
-if [[ -f "$HOME/.config/arvados/$IDENTIFIER.arvadosapi.com.conf" ]]; then
- . $HOME/.config/arvados/$IDENTIFIER.arvadosapi.com.conf
-else
- title "WARNING: $HOME/.config/arvados/$IDENTIFIER.arvadosapi.com.conf not found."
-fi
-if [[ "$ARVADOS_API_HOST" == "" ]] || [[ "$ARVADOS_API_TOKEN" == "" ]]; then
- title "ERROR: ARVADOS_API_HOST and/or ARVADOS_API_TOKEN environment variables are not set."
- exit 1
-fi
-
-title "Locating Arvados Standard Docker images project"
-
-JSON_FILTER="[[\"name\", \"=\", \"Arvados Standard Docker Images\"], [\"owner_uuid\", \"=\", \"$IDENTIFIER-tpzed-000000000000000\"]]"
-DOCKER_IMAGES_PROJECT=`ARVADOS_API_HOST=$ARVADOS_API_HOST ARVADOS_API_TOKEN=$ARVADOS_API_TOKEN arv --format=uuid group list --filters="$JSON_FILTER"`
-
-if [[ "$DOCKER_IMAGES_PROJECT" == "" ]]; then
- title "Warning: Arvados Standard Docker Images project not found. Creating it."
-
- DOCKER_IMAGES_PROJECT=`ARVADOS_API_HOST=$ARVADOS_API_HOST ARVADOS_API_TOKEN=$ARVADOS_API_TOKEN arv --format=uuid group create --group "{\"owner_uuid\":\"$IDENTIFIER-tpzed-000000000000000\", \"name\":\"Arvados Standard Docker Images\", \"group_class\":\"project\"}"`
- ARVADOS_API_HOST=$ARVADOS_API_HOST ARVADOS_API_TOKEN=$ARVADOS_API_TOKEN arv link create --link "{\"tail_uuid\":\"$IDENTIFIER-j7d0g-fffffffffffffff\", \"head_uuid\":\"$DOCKER_IMAGES_PROJECT\", \"link_class\":\"permission\", \"name\":\"can_read\" }"
- if [[ "$?" != "0" ]]; then
- title "ERROR: could not create standard Docker images project Please create it, cf. http://doc.arvados.org/install/create-standard-objects.html"
- exit 1
- fi
-fi
-
-title "Found Arvados Standard Docker Images project with uuid $DOCKER_IMAGES_PROJECT"
-GIT_COMMIT=`ssh -o "StrictHostKeyChecking no" $IDENTIFIER cat /usr/local/arvados/src/git-commit.version`
-
-if [[ "$?" != "0" ]] || [[ "$GIT_COMMIT" == "" ]]; then
- title "ERROR: unable to get arvados/jobs Docker image git revision"
- exit 1
-else
- title "Found git commit for arvados/jobs Docker image: $GIT_COMMIT"
-fi
-
-run_command shell.$IDENTIFIER ECODE "ARVADOS_API_HOST=$ARVADOS_API_HOST ARVADOS_API_TOKEN=$ARVADOS_API_TOKEN /usr/local/rvm/bin/rvm-exec default arv keep docker" |grep -q $GIT_COMMIT
-
-if [[ "$?" == "0" ]]; then
- title "Found latest arvados/jobs Docker image, nothing to upload"
-else
- title "Installing latest arvados/jobs Docker image"
- ssh -o "StrictHostKeyChecking no" shell.$IDENTIFIER "ARVADOS_API_HOST=$ARVADOS_API_HOST ARVADOS_API_TOKEN=$ARVADOS_API_TOKEN /usr/local/rvm/bin/rvm-exec default arv keep docker --pull --project-uuid=$DOCKER_IMAGES_PROJECT arvados/jobs $GIT_COMMIT"
- if [[ "$?" -ne 0 ]]; then
- title "'git pull' failed exiting..."
- exit 1
- fi
-fi
-
-title "Gathering list of shell and Keep nodes"
-SHELL_NODES=`ARVADOS_API_HOST=$ARVADOS_API_HOST ARVADOS_API_TOKEN=$ARVADOS_API_TOKEN arv virtual_machine list |jq .items[].hostname -r`
-KEEP_NODES=`ARVADOS_API_HOST=$ARVADOS_API_HOST ARVADOS_API_TOKEN=$ARVADOS_API_TOKEN arv keep_service list |jq .items[].service_host -r`
-
-title "Updating workbench"
-SUM_ECODE=0
-if [[ `host workbench.$ARVADOS_API_HOST |cut -f4 -d' '` != `host $ARVADOS_API_HOST |cut -f4 -d' '` ]]; then
- # Workbench runs on a separate host. We need to run puppet there too.
- run_puppet workbench.$IDENTIFIER ECODE
- SUM_ECODE=$(($SUM_ECODE + $ECODE))
-fi
-
-if [[ "$SUM_ECODE" != "0" ]]; then
- title "ERROR: Updating workbench FAILED"
- EXITCODE=$(($EXITCODE + $SUM_ECODE))
- exit $EXITCODE
-fi
-
-for n in manage switchyard $SHELL_NODES $KEEP_NODES; do
- ECODE=0
- if [[ $n =~ $ARVADOS_API_HOST$ ]]; then
- # e.g. keep.qr1hi.arvadosapi.com
- node=$n
- else
- # e.g. shell
- node=$n.$ARVADOS_API_HOST
- fi
-
- # e.g. keep.qr1hi
- node=${node%.arvadosapi.com}
-
- title "Updating $node"
- run_puppet $node ECODE
- if [[ "$ECODE" != "0" ]]; then
- title "ERROR: Updating $node node FAILED: exit code $ECODE"
- EXITCODE=$(($EXITCODE + $ECODE))
- exit $EXITCODE
- fi
-done
diff --git a/build/jenkins/run-diagnostics-suite.sh b/build/jenkins/run-diagnostics-suite.sh
deleted file mode 100755
index 015a053..0000000
--- a/build/jenkins/run-diagnostics-suite.sh
+++ /dev/null
@@ -1,86 +0,0 @@
-#!/bin/bash
-
-EXITCODE=0
-
-INSTANCE=$1
-REVISION=$2
-
-if [[ "$INSTANCE" == '' ]]; then
- echo "Syntax: $0 <instance> [revision]"
- exit 1
-fi
-
-if [[ "$REVISION" == '' ]]; then
- # See if there's a configuration file with the revision?
- CONFIG_PATH=/home/jenkins/configuration/$INSTANCE.arvadosapi.com-versions.conf
- if [[ -f $CONFIG_PATH ]]; then
- echo "Loading git revision from $CONFIG_PATH"
- . $CONFIG_PATH
- REVISION=$ARVADOS_GIT_REVISION
- fi
-fi
-
-if [[ "$REVISION" != '' ]]; then
- echo "Git revision is $REVISION"
-else
- echo "No valid git revision found, proceeding with what is in place."
-fi
-
-# Sanity check
-if ! [[ -n "$WORKSPACE" ]]; then
- echo "WORKSPACE environment variable not set"
- exit 1
-fi
-
-title () {
- txt="********** $1 **********"
- printf "\n%*s%s\n\n" $((($COLUMNS-${#txt})/2)) "" "$txt"
-}
-
-timer_reset() {
- t0=$SECONDS
-}
-
-timer() {
- echo -n "$(($SECONDS - $t0))s"
-}
-
-source /etc/profile.d/rvm.sh
-echo $WORKSPACE
-
-title "Starting diagnostics"
-timer_reset
-
-cd $WORKSPACE
-
-if [[ "$REVISION" != '' ]]; then
- git checkout $REVISION
-fi
-
-cp -f /home/jenkins/diagnostics/arvados-workbench/$INSTANCE-application.yml $WORKSPACE/apps/workbench/config/application.yml
-
-cd $WORKSPACE/apps/workbench
-
-HOME="$GEMHOME" bundle install --no-deployment
-
-if [[ ! -d tmp ]]; then
- mkdir tmp
-fi
-
-RAILS_ENV=diagnostics bundle exec rake TEST=test/diagnostics/pipeline_test.rb
-
-ECODE=$?
-
-if [[ "$REVISION" != '' ]]; then
- git checkout master
-fi
-
-if [[ "$ECODE" != "0" ]]; then
- title "!!!!!! DIAGNOSTICS FAILED (`timer`) !!!!!!"
- EXITCODE=$(($EXITCODE + $ECODE))
- exit $EXITCODE
-fi
-
-title "Diagnostics complete (`timer`)"
-
-exit $EXITCODE
diff --git a/build/jenkins/run-performance-suite.sh b/build/jenkins/run-performance-suite.sh
deleted file mode 100755
index 2944bda..0000000
--- a/build/jenkins/run-performance-suite.sh
+++ /dev/null
@@ -1,88 +0,0 @@
-#!/bin/bash
-
-EXITCODE=0
-
-INSTANCE=$1
-REVISION=$2
-
-if [[ "$INSTANCE" == '' ]]; then
- echo "Syntax: $0 <instance> [revision]"
- exit 1
-fi
-
-if [[ "$REVISION" == '' ]]; then
- # See if there's a configuration file with the revision?
- CONFIG_PATH=/home/jenkins/configuration/$INSTANCE.arvadosapi.com-versions.conf
- if [[ -f $CONFIG_PATH ]]; then
- echo "Loading git revision from $CONFIG_PATH"
- . $CONFIG_PATH
- REVISION=$ARVADOS_GIT_REVISION
- fi
-fi
-
-if [[ "$REVISION" != '' ]]; then
- echo "Git revision is $REVISION"
-else
- echo "No valid git revision found, proceeding with what is in place."
-fi
-
-# Sanity check
-if ! [[ -n "$WORKSPACE" ]]; then
- echo "WORKSPACE environment variable not set"
- exit 1
-fi
-
-title () {
- txt="********** $1 **********"
- printf "\n%*s%s\n\n" $((($COLUMNS-${#txt})/2)) "" "$txt"
-}
-
-timer_reset() {
- t0=$SECONDS
-}
-
-timer() {
- echo -n "$(($SECONDS - $t0))s"
-}
-
-source /etc/profile.d/rvm.sh
-echo $WORKSPACE
-
-title "Starting performance test"
-timer_reset
-
-cd $WORKSPACE
-
-if [[ "$REVISION" != '' ]]; then
- git checkout $REVISION
-fi
-
-cp -f /home/jenkins/diagnostics/arvados-workbench/$INSTANCE-application.yml $WORKSPACE/apps/workbench/config/application.yml
-
-cd $WORKSPACE/apps/workbench
-
-HOME="$GEMHOME" bundle install --no-deployment
-
-if [[ ! -d tmp ]]; then
- mkdir tmp
-fi
-
-mkdir -p tmp/cache
-
-RAILS_ENV=performance bundle exec rake test:benchmark
-
-ECODE=$?
-
-if [[ "$REVISION" != '' ]]; then
- git checkout master
-fi
-
-if [[ "$ECODE" != "0" ]]; then
- title "!!!!!! PERFORMANCE TESTS FAILED (`timer`) !!!!!!"
- EXITCODE=$(($EXITCODE + $ECODE))
- exit $EXITCODE
-fi
-
-title "Performance tests complete (`timer`)"
-
-exit $EXITCODE
diff --git a/build/jenkins/run-tapestry-tests.sh b/build/jenkins/run-tapestry-tests.sh
deleted file mode 100755
index 851a81d..0000000
--- a/build/jenkins/run-tapestry-tests.sh
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/bin/bash
-
-EXITCODE=0
-
-COLUMNS=80
-
-title () {
- printf "\n%*s\n\n" $(((${#title}+$COLUMNS)/2)) "********** $1 **********"
-}
-
-source /etc/profile.d/rvm.sh
-
-# This shouldn't really be necessary... but the jenkins/rvm integration seems a
-# bit wonky occasionally.
-rvm use ree
-
-echo $WORKSPACE
-
-# Tapestry
-title "Starting tapestry tests"
-cd "$WORKSPACE"
-
-# There are a few submodules
-git submodule init && git submodule update
-
-# Use sqlite for testing
-sed -i'' -e "s:mysql:sqlite3:" Gemfile
-
-# Tapestry is not set up yet to use --deployment
-#bundle install --deployment
-bundle install
-
-rm -f config/database.yml
-rm -f config/environments/test.rb
-cp $HOME/tapestry/test.rb config/environments/
-cp $HOME/tapestry/database.yml config/
-
-export RAILS_ENV=test
-
-bundle exec rake db:drop
-bundle exec rake db:create
-bundle exec rake db:setup
-bundle exec rake test
-
-ECODE=$?
-
-if [[ "$ECODE" != "0" ]]; then
- title "!!!!!! TAPESTRY TESTS FAILED !!!!!!"
- EXITCODE=$(($EXITCODE + $ECODE))
-fi
-
-title "Tapestry tests complete"
-
-exit $EXITCODE
diff --git a/build/jenkins/libcloud-pin b/build/libcloud-pin
similarity index 100%
rename from build/jenkins/libcloud-pin
rename to build/libcloud-pin
diff --git a/build/jenkins/package-build-dockerfiles/.gitignore b/build/package-build-dockerfiles/.gitignore
similarity index 100%
rename from build/jenkins/package-build-dockerfiles/.gitignore
rename to build/package-build-dockerfiles/.gitignore
diff --git a/build/jenkins/package-build-dockerfiles/Makefile b/build/package-build-dockerfiles/Makefile
similarity index 100%
rename from build/jenkins/package-build-dockerfiles/Makefile
rename to build/package-build-dockerfiles/Makefile
diff --git a/build/jenkins/package-build-dockerfiles/README b/build/package-build-dockerfiles/README
similarity index 100%
rename from build/jenkins/package-build-dockerfiles/README
rename to build/package-build-dockerfiles/README
diff --git a/build/jenkins/package-build-dockerfiles/build-all-build-containers.sh b/build/package-build-dockerfiles/build-all-build-containers.sh
similarity index 100%
rename from build/jenkins/package-build-dockerfiles/build-all-build-containers.sh
rename to build/package-build-dockerfiles/build-all-build-containers.sh
diff --git a/build/jenkins/package-build-dockerfiles/centos6/Dockerfile b/build/package-build-dockerfiles/centos6/Dockerfile
similarity index 100%
rename from build/jenkins/package-build-dockerfiles/centos6/Dockerfile
rename to build/package-build-dockerfiles/centos6/Dockerfile
diff --git a/build/jenkins/package-build-dockerfiles/debian7/Dockerfile b/build/package-build-dockerfiles/debian7/Dockerfile
similarity index 100%
rename from build/jenkins/package-build-dockerfiles/debian7/Dockerfile
rename to build/package-build-dockerfiles/debian7/Dockerfile
diff --git a/build/jenkins/package-build-dockerfiles/debian8/Dockerfile b/build/package-build-dockerfiles/debian8/Dockerfile
similarity index 100%
rename from build/jenkins/package-build-dockerfiles/debian8/Dockerfile
rename to build/package-build-dockerfiles/debian8/Dockerfile
diff --git a/build/jenkins/package-build-dockerfiles/ubuntu1204/Dockerfile b/build/package-build-dockerfiles/ubuntu1204/Dockerfile
similarity index 100%
rename from build/jenkins/package-build-dockerfiles/ubuntu1204/Dockerfile
rename to build/package-build-dockerfiles/ubuntu1204/Dockerfile
diff --git a/build/jenkins/package-build-dockerfiles/ubuntu1404/Dockerfile b/build/package-build-dockerfiles/ubuntu1404/Dockerfile
similarity index 100%
rename from build/jenkins/package-build-dockerfiles/ubuntu1404/Dockerfile
rename to build/package-build-dockerfiles/ubuntu1404/Dockerfile
diff --git a/build/jenkins/package-test-dockerfiles/centos6/Dockerfile b/build/package-test-dockerfiles/centos6/Dockerfile
similarity index 100%
rename from build/jenkins/package-test-dockerfiles/centos6/Dockerfile
rename to build/package-test-dockerfiles/centos6/Dockerfile
diff --git a/build/jenkins/package-test-dockerfiles/centos6/localrepo.repo b/build/package-test-dockerfiles/centos6/localrepo.repo
similarity index 100%
rename from build/jenkins/package-test-dockerfiles/centos6/localrepo.repo
rename to build/package-test-dockerfiles/centos6/localrepo.repo
diff --git a/build/jenkins/package-test-dockerfiles/debian7/Dockerfile b/build/package-test-dockerfiles/debian7/Dockerfile
similarity index 100%
rename from build/jenkins/package-test-dockerfiles/debian7/Dockerfile
rename to build/package-test-dockerfiles/debian7/Dockerfile
diff --git a/build/jenkins/package-test-dockerfiles/debian8/Dockerfile b/build/package-test-dockerfiles/debian8/Dockerfile
similarity index 100%
rename from build/jenkins/package-test-dockerfiles/debian8/Dockerfile
rename to build/package-test-dockerfiles/debian8/Dockerfile
diff --git a/build/jenkins/package-test-dockerfiles/ubuntu1204/Dockerfile b/build/package-test-dockerfiles/ubuntu1204/Dockerfile
similarity index 100%
rename from build/jenkins/package-test-dockerfiles/ubuntu1204/Dockerfile
rename to build/package-test-dockerfiles/ubuntu1204/Dockerfile
diff --git a/build/jenkins/package-test-dockerfiles/ubuntu1404/Dockerfile b/build/package-test-dockerfiles/ubuntu1404/Dockerfile
similarity index 100%
rename from build/jenkins/package-test-dockerfiles/ubuntu1404/Dockerfile
rename to build/package-test-dockerfiles/ubuntu1404/Dockerfile
diff --git a/build/jenkins/package-testing/common-test-packages.sh b/build/package-testing/common-test-packages.sh
similarity index 100%
rename from build/jenkins/package-testing/common-test-packages.sh
rename to build/package-testing/common-test-packages.sh
diff --git a/build/jenkins/package-testing/deb-common-test-packages.sh b/build/package-testing/deb-common-test-packages.sh
similarity index 100%
rename from build/jenkins/package-testing/deb-common-test-packages.sh
rename to build/package-testing/deb-common-test-packages.sh
diff --git a/build/jenkins/package-testing/test-package-arvados-api-server.sh b/build/package-testing/test-package-arvados-api-server.sh
similarity index 100%
rename from build/jenkins/package-testing/test-package-arvados-api-server.sh
rename to build/package-testing/test-package-arvados-api-server.sh
diff --git a/build/jenkins/package-testing/test-package-arvados-node-manager.sh b/build/package-testing/test-package-arvados-node-manager.sh
similarity index 100%
rename from build/jenkins/package-testing/test-package-arvados-node-manager.sh
rename to build/package-testing/test-package-arvados-node-manager.sh
diff --git a/build/jenkins/package-testing/test-package-arvados-sso-server.sh b/build/package-testing/test-package-arvados-sso-server.sh
similarity index 100%
rename from build/jenkins/package-testing/test-package-arvados-sso-server.sh
rename to build/package-testing/test-package-arvados-sso-server.sh
diff --git a/build/jenkins/package-testing/test-package-arvados-workbench.sh b/build/package-testing/test-package-arvados-workbench.sh
similarity index 100%
rename from build/jenkins/package-testing/test-package-arvados-workbench.sh
rename to build/package-testing/test-package-arvados-workbench.sh
diff --git a/build/jenkins/package-testing/test-package-python27-python-arvados-fuse.sh b/build/package-testing/test-package-python27-python-arvados-fuse.sh
similarity index 100%
rename from build/jenkins/package-testing/test-package-python27-python-arvados-fuse.sh
rename to build/package-testing/test-package-python27-python-arvados-fuse.sh
diff --git a/build/jenkins/package-testing/test-package-python27-python-arvados-python-client.sh b/build/package-testing/test-package-python27-python-arvados-python-client.sh
similarity index 100%
rename from build/jenkins/package-testing/test-package-python27-python-arvados-python-client.sh
rename to build/package-testing/test-package-python27-python-arvados-python-client.sh
diff --git a/build/jenkins/package-testing/test-packages-centos6.sh b/build/package-testing/test-packages-centos6.sh
similarity index 100%
rename from build/jenkins/package-testing/test-packages-centos6.sh
rename to build/package-testing/test-packages-centos6.sh
diff --git a/build/jenkins/package-testing/test-packages-debian7.sh b/build/package-testing/test-packages-debian7.sh
similarity index 100%
rename from build/jenkins/package-testing/test-packages-debian7.sh
rename to build/package-testing/test-packages-debian7.sh
diff --git a/build/jenkins/package-testing/test-packages-debian8.sh b/build/package-testing/test-packages-debian8.sh
similarity index 100%
rename from build/jenkins/package-testing/test-packages-debian8.sh
rename to build/package-testing/test-packages-debian8.sh
diff --git a/build/jenkins/package-testing/test-packages-ubuntu1204.sh b/build/package-testing/test-packages-ubuntu1204.sh
similarity index 100%
rename from build/jenkins/package-testing/test-packages-ubuntu1204.sh
rename to build/package-testing/test-packages-ubuntu1204.sh
diff --git a/build/jenkins/package-testing/test-packages-ubuntu1404.sh b/build/package-testing/test-packages-ubuntu1404.sh
similarity index 100%
rename from build/jenkins/package-testing/test-packages-ubuntu1404.sh
rename to build/package-testing/test-packages-ubuntu1404.sh
diff --git a/build/jenkins/rails-package-scripts/README.md b/build/rails-package-scripts/README.md
similarity index 100%
rename from build/jenkins/rails-package-scripts/README.md
rename to build/rails-package-scripts/README.md
diff --git a/build/jenkins/rails-package-scripts/arvados-api-server.sh b/build/rails-package-scripts/arvados-api-server.sh
similarity index 100%
rename from build/jenkins/rails-package-scripts/arvados-api-server.sh
rename to build/rails-package-scripts/arvados-api-server.sh
diff --git a/build/jenkins/rails-package-scripts/arvados-sso-server.sh b/build/rails-package-scripts/arvados-sso-server.sh
similarity index 100%
rename from build/jenkins/rails-package-scripts/arvados-sso-server.sh
rename to build/rails-package-scripts/arvados-sso-server.sh
diff --git a/build/jenkins/rails-package-scripts/arvados-workbench.sh b/build/rails-package-scripts/arvados-workbench.sh
similarity index 100%
rename from build/jenkins/rails-package-scripts/arvados-workbench.sh
rename to build/rails-package-scripts/arvados-workbench.sh
diff --git a/build/jenkins/rails-package-scripts/postinst.sh b/build/rails-package-scripts/postinst.sh
similarity index 100%
rename from build/jenkins/rails-package-scripts/postinst.sh
rename to build/rails-package-scripts/postinst.sh
diff --git a/build/jenkins/rails-package-scripts/postrm.sh b/build/rails-package-scripts/postrm.sh
similarity index 100%
rename from build/jenkins/rails-package-scripts/postrm.sh
rename to build/rails-package-scripts/postrm.sh
diff --git a/build/jenkins/rails-package-scripts/prerm.sh b/build/rails-package-scripts/prerm.sh
similarity index 100%
rename from build/jenkins/rails-package-scripts/prerm.sh
rename to build/rails-package-scripts/prerm.sh
diff --git a/build/jenkins/rails-package-scripts/step2.sh b/build/rails-package-scripts/step2.sh
similarity index 100%
rename from build/jenkins/rails-package-scripts/step2.sh
rename to build/rails-package-scripts/step2.sh
diff --git a/build/jenkins/run-build-docker-images.sh b/build/run-build-docker-images.sh
similarity index 100%
rename from build/jenkins/run-build-docker-images.sh
rename to build/run-build-docker-images.sh
diff --git a/build/jenkins/run-build-docker-jobs-image.sh b/build/run-build-docker-jobs-image.sh
similarity index 100%
rename from build/jenkins/run-build-docker-jobs-image.sh
rename to build/run-build-docker-jobs-image.sh
diff --git a/build/jenkins/run-build-packages-all-targets.sh b/build/run-build-packages-all-targets.sh
similarity index 100%
rename from build/jenkins/run-build-packages-all-targets.sh
rename to build/run-build-packages-all-targets.sh
diff --git a/build/jenkins/run-build-packages-one-target.sh b/build/run-build-packages-one-target.sh
similarity index 100%
rename from build/jenkins/run-build-packages-one-target.sh
rename to build/run-build-packages-one-target.sh
diff --git a/build/jenkins/run-build-packages-sso.sh b/build/run-build-packages-sso.sh
similarity index 100%
rename from build/jenkins/run-build-packages-sso.sh
rename to build/run-build-packages-sso.sh
diff --git a/build/jenkins/run-build-packages.sh b/build/run-build-packages.sh
similarity index 100%
rename from build/jenkins/run-build-packages.sh
rename to build/run-build-packages.sh
diff --git a/build/jenkins/run-library.sh b/build/run-library.sh
similarity index 100%
rename from build/jenkins/run-library.sh
rename to build/run-library.sh
diff --git a/build/jenkins/run-tests.sh b/build/run-tests.sh
similarity index 100%
rename from build/jenkins/run-tests.sh
rename to build/run-tests.sh
diff --git a/build/jenkins/run_upload_packages.py b/build/run_upload_packages.py
similarity index 100%
rename from build/jenkins/run_upload_packages.py
rename to build/run_upload_packages.py
commit f171464e53dffb5b5f06239d21e7cf2426274cd1
Merge: 0a0011c 2b9b751
Author: Tom Clegg <tom at curoverse.com>
Date: Tue Mar 8 13:31:22 2016 -0500
Add 'build/' from commit '2b9b7518a60a71315a1504bf96b3182122bec702'
git-subtree-dir: build
git-subtree-mainline: 0a0011c987cbec72c7e13762dbc99b8e19db47c1
git-subtree-split: 2b9b7518a60a71315a1504bf96b3182122bec702
diff --cc build/COPYING
index 0000000,af63e41..af63e41
mode 000000,100644..100644
--- a/build/COPYING
+++ b/build/COPYING
diff --cc build/README
index 0000000,b076f0b..b076f0b
mode 000000,100644..100644
--- a/build/README
+++ b/build/README
diff --cc build/agpl-3.0.txt
index 0000000,0000000..dba13ed
new file mode 100644
--- /dev/null
+++ b/build/agpl-3.0.txt
@@@ -1,0 -1,0 +1,661 @@@
++ GNU AFFERO GENERAL PUBLIC LICENSE
++ Version 3, 19 November 2007
++
++ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
++ Everyone is permitted to copy and distribute verbatim copies
++ of this license document, but changing it is not allowed.
++
++ Preamble
++
++ The GNU Affero General Public License is a free, copyleft license for
++software and other kinds of works, specifically designed to ensure
++cooperation with the community in the case of network server software.
++
++ The licenses for most software and other practical works are designed
++to take away your freedom to share and change the works. By contrast,
++our General Public Licenses are intended to guarantee your freedom to
++share and change all versions of a program--to make sure it remains free
++software for all its users.
++
++ When we speak of free software, we are referring to freedom, not
++price. Our General Public Licenses are designed to make sure that you
++have the freedom to distribute copies of free software (and charge for
++them if you wish), that you receive source code or can get it if you
++want it, that you can change the software or use pieces of it in new
++free programs, and that you know you can do these things.
++
++ Developers that use our General Public Licenses protect your rights
++with two steps: (1) assert copyright on the software, and (2) offer
++you this License which gives you legal permission to copy, distribute
++and/or modify the software.
++
++ A secondary benefit of defending all users' freedom is that
++improvements made in alternate versions of the program, if they
++receive widespread use, become available for other developers to
++incorporate. Many developers of free software are heartened and
++encouraged by the resulting cooperation. However, in the case of
++software used on network servers, this result may fail to come about.
++The GNU General Public License permits making a modified version and
++letting the public access it on a server without ever releasing its
++source code to the public.
++
++ The GNU Affero General Public License is designed specifically to
++ensure that, in such cases, the modified source code becomes available
++to the community. It requires the operator of a network server to
++provide the source code of the modified version running there to the
++users of that server. Therefore, public use of a modified version, on
++a publicly accessible server, gives the public access to the source
++code of the modified version.
++
++ An older license, called the Affero General Public License and
++published by Affero, was designed to accomplish similar goals. This is
++a different license, not a version of the Affero GPL, but Affero has
++released a new version of the Affero GPL which permits relicensing under
++this license.
++
++ The precise terms and conditions for copying, distribution and
++modification follow.
++
++ TERMS AND CONDITIONS
++
++ 0. Definitions.
++
++ "This License" refers to version 3 of the GNU Affero General Public License.
++
++ "Copyright" also means copyright-like laws that apply to other kinds of
++works, such as semiconductor masks.
++
++ "The Program" refers to any copyrightable work licensed under this
++License. Each licensee is addressed as "you". "Licensees" and
++"recipients" may be individuals or organizations.
++
++ To "modify" a work means to copy from or adapt all or part of the work
++in a fashion requiring copyright permission, other than the making of an
++exact copy. The resulting work is called a "modified version" of the
++earlier work or a work "based on" the earlier work.
++
++ A "covered work" means either the unmodified Program or a work based
++on the Program.
++
++ To "propagate" a work means to do anything with it that, without
++permission, would make you directly or secondarily liable for
++infringement under applicable copyright law, except executing it on a
++computer or modifying a private copy. Propagation includes copying,
++distribution (with or without modification), making available to the
++public, and in some countries other activities as well.
++
++ To "convey" a work means any kind of propagation that enables other
++parties to make or receive copies. Mere interaction with a user through
++a computer network, with no transfer of a copy, is not conveying.
++
++ An interactive user interface displays "Appropriate Legal Notices"
++to the extent that it includes a convenient and prominently visible
++feature that (1) displays an appropriate copyright notice, and (2)
++tells the user that there is no warranty for the work (except to the
++extent that warranties are provided), that licensees may convey the
++work under this License, and how to view a copy of this License. If
++the interface presents a list of user commands or options, such as a
++menu, a prominent item in the list meets this criterion.
++
++ 1. Source Code.
++
++ The "source code" for a work means the preferred form of the work
++for making modifications to it. "Object code" means any non-source
++form of a work.
++
++ A "Standard Interface" means an interface that either is an official
++standard defined by a recognized standards body, or, in the case of
++interfaces specified for a particular programming language, one that
++is widely used among developers working in that language.
++
++ The "System Libraries" of an executable work include anything, other
++than the work as a whole, that (a) is included in the normal form of
++packaging a Major Component, but which is not part of that Major
++Component, and (b) serves only to enable use of the work with that
++Major Component, or to implement a Standard Interface for which an
++implementation is available to the public in source code form. A
++"Major Component", in this context, means a major essential component
++(kernel, window system, and so on) of the specific operating system
++(if any) on which the executable work runs, or a compiler used to
++produce the work, or an object code interpreter used to run it.
++
++ The "Corresponding Source" for a work in object code form means all
++the source code needed to generate, install, and (for an executable
++work) run the object code and to modify the work, including scripts to
++control those activities. However, it does not include the work's
++System Libraries, or general-purpose tools or generally available free
++programs which are used unmodified in performing those activities but
++which are not part of the work. For example, Corresponding Source
++includes interface definition files associated with source files for
++the work, and the source code for shared libraries and dynamically
++linked subprograms that the work is specifically designed to require,
++such as by intimate data communication or control flow between those
++subprograms and other parts of the work.
++
++ The Corresponding Source need not include anything that users
++can regenerate automatically from other parts of the Corresponding
++Source.
++
++ The Corresponding Source for a work in source code form is that
++same work.
++
++ 2. Basic Permissions.
++
++ All rights granted under this License are granted for the term of
++copyright on the Program, and are irrevocable provided the stated
++conditions are met. This License explicitly affirms your unlimited
++permission to run the unmodified Program. The output from running a
++covered work is covered by this License only if the output, given its
++content, constitutes a covered work. This License acknowledges your
++rights of fair use or other equivalent, as provided by copyright law.
++
++ You may make, run and propagate covered works that you do not
++convey, without conditions so long as your license otherwise remains
++in force. You may convey covered works to others for the sole purpose
++of having them make modifications exclusively for you, or provide you
++with facilities for running those works, provided that you comply with
++the terms of this License in conveying all material for which you do
++not control copyright. Those thus making or running the covered works
++for you must do so exclusively on your behalf, under your direction
++and control, on terms that prohibit them from making any copies of
++your copyrighted material outside their relationship with you.
++
++ Conveying under any other circumstances is permitted solely under
++the conditions stated below. Sublicensing is not allowed; section 10
++makes it unnecessary.
++
++ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
++
++ No covered work shall be deemed part of an effective technological
++measure under any applicable law fulfilling obligations under article
++11 of the WIPO copyright treaty adopted on 20 December 1996, or
++similar laws prohibiting or restricting circumvention of such
++measures.
++
++ When you convey a covered work, you waive any legal power to forbid
++circumvention of technological measures to the extent such circumvention
++is effected by exercising rights under this License with respect to
++the covered work, and you disclaim any intention to limit operation or
++modification of the work as a means of enforcing, against the work's
++users, your or third parties' legal rights to forbid circumvention of
++technological measures.
++
++ 4. Conveying Verbatim Copies.
++
++ You may convey verbatim copies of the Program's source code as you
++receive it, in any medium, provided that you conspicuously and
++appropriately publish on each copy an appropriate copyright notice;
++keep intact all notices stating that this License and any
++non-permissive terms added in accord with section 7 apply to the code;
++keep intact all notices of the absence of any warranty; and give all
++recipients a copy of this License along with the Program.
++
++ You may charge any price or no price for each copy that you convey,
++and you may offer support or warranty protection for a fee.
++
++ 5. Conveying Modified Source Versions.
++
++ You may convey a work based on the Program, or the modifications to
++produce it from the Program, in the form of source code under the
++terms of section 4, provided that you also meet all of these conditions:
++
++ a) The work must carry prominent notices stating that you modified
++ it, and giving a relevant date.
++
++ b) The work must carry prominent notices stating that it is
++ released under this License and any conditions added under section
++ 7. This requirement modifies the requirement in section 4 to
++ "keep intact all notices".
++
++ c) You must license the entire work, as a whole, under this
++ License to anyone who comes into possession of a copy. This
++ License will therefore apply, along with any applicable section 7
++ additional terms, to the whole of the work, and all its parts,
++ regardless of how they are packaged. This License gives no
++ permission to license the work in any other way, but it does not
++ invalidate such permission if you have separately received it.
++
++ d) If the work has interactive user interfaces, each must display
++ Appropriate Legal Notices; however, if the Program has interactive
++ interfaces that do not display Appropriate Legal Notices, your
++ work need not make them do so.
++
++ A compilation of a covered work with other separate and independent
++works, which are not by their nature extensions of the covered work,
++and which are not combined with it such as to form a larger program,
++in or on a volume of a storage or distribution medium, is called an
++"aggregate" if the compilation and its resulting copyright are not
++used to limit the access or legal rights of the compilation's users
++beyond what the individual works permit. Inclusion of a covered work
++in an aggregate does not cause this License to apply to the other
++parts of the aggregate.
++
++ 6. Conveying Non-Source Forms.
++
++ You may convey a covered work in object code form under the terms
++of sections 4 and 5, provided that you also convey the
++machine-readable Corresponding Source under the terms of this License,
++in one of these ways:
++
++ a) Convey the object code in, or embodied in, a physical product
++ (including a physical distribution medium), accompanied by the
++ Corresponding Source fixed on a durable physical medium
++ customarily used for software interchange.
++
++ b) Convey the object code in, or embodied in, a physical product
++ (including a physical distribution medium), accompanied by a
++ written offer, valid for at least three years and valid for as
++ long as you offer spare parts or customer support for that product
++ model, to give anyone who possesses the object code either (1) a
++ copy of the Corresponding Source for all the software in the
++ product that is covered by this License, on a durable physical
++ medium customarily used for software interchange, for a price no
++ more than your reasonable cost of physically performing this
++ conveying of source, or (2) access to copy the
++ Corresponding Source from a network server at no charge.
++
++ c) Convey individual copies of the object code with a copy of the
++ written offer to provide the Corresponding Source. This
++ alternative is allowed only occasionally and noncommercially, and
++ only if you received the object code with such an offer, in accord
++ with subsection 6b.
++
++ d) Convey the object code by offering access from a designated
++ place (gratis or for a charge), and offer equivalent access to the
++ Corresponding Source in the same way through the same place at no
++ further charge. You need not require recipients to copy the
++ Corresponding Source along with the object code. If the place to
++ copy the object code is a network server, the Corresponding Source
++ may be on a different server (operated by you or a third party)
++ that supports equivalent copying facilities, provided you maintain
++ clear directions next to the object code saying where to find the
++ Corresponding Source. Regardless of what server hosts the
++ Corresponding Source, you remain obligated to ensure that it is
++ available for as long as needed to satisfy these requirements.
++
++ e) Convey the object code using peer-to-peer transmission, provided
++ you inform other peers where the object code and Corresponding
++ Source of the work are being offered to the general public at no
++ charge under subsection 6d.
++
++ A separable portion of the object code, whose source code is excluded
++from the Corresponding Source as a System Library, need not be
++included in conveying the object code work.
++
++ A "User Product" is either (1) a "consumer product", which means any
++tangible personal property which is normally used for personal, family,
++or household purposes, or (2) anything designed or sold for incorporation
++into a dwelling. In determining whether a product is a consumer product,
++doubtful cases shall be resolved in favor of coverage. For a particular
++product received by a particular user, "normally used" refers to a
++typical or common use of that class of product, regardless of the status
++of the particular user or of the way in which the particular user
++actually uses, or expects or is expected to use, the product. A product
++is a consumer product regardless of whether the product has substantial
++commercial, industrial or non-consumer uses, unless such uses represent
++the only significant mode of use of the product.
++
++ "Installation Information" for a User Product means any methods,
++procedures, authorization keys, or other information required to install
++and execute modified versions of a covered work in that User Product from
++a modified version of its Corresponding Source. The information must
++suffice to ensure that the continued functioning of the modified object
++code is in no case prevented or interfered with solely because
++modification has been made.
++
++ If you convey an object code work under this section in, or with, or
++specifically for use in, a User Product, and the conveying occurs as
++part of a transaction in which the right of possession and use of the
++User Product is transferred to the recipient in perpetuity or for a
++fixed term (regardless of how the transaction is characterized), the
++Corresponding Source conveyed under this section must be accompanied
++by the Installation Information. But this requirement does not apply
++if neither you nor any third party retains the ability to install
++modified object code on the User Product (for example, the work has
++been installed in ROM).
++
++ The requirement to provide Installation Information does not include a
++requirement to continue to provide support service, warranty, or updates
++for a work that has been modified or installed by the recipient, or for
++the User Product in which it has been modified or installed. Access to a
++network may be denied when the modification itself materially and
++adversely affects the operation of the network or violates the rules and
++protocols for communication across the network.
++
++ Corresponding Source conveyed, and Installation Information provided,
++in accord with this section must be in a format that is publicly
++documented (and with an implementation available to the public in
++source code form), and must require no special password or key for
++unpacking, reading or copying.
++
++ 7. Additional Terms.
++
++ "Additional permissions" are terms that supplement the terms of this
++License by making exceptions from one or more of its conditions.
++Additional permissions that are applicable to the entire Program shall
++be treated as though they were included in this License, to the extent
++that they are valid under applicable law. If additional permissions
++apply only to part of the Program, that part may be used separately
++under those permissions, but the entire Program remains governed by
++this License without regard to the additional permissions.
++
++ When you convey a copy of a covered work, you may at your option
++remove any additional permissions from that copy, or from any part of
++it. (Additional permissions may be written to require their own
++removal in certain cases when you modify the work.) You may place
++additional permissions on material, added by you to a covered work,
++for which you have or can give appropriate copyright permission.
++
++ Notwithstanding any other provision of this License, for material you
++add to a covered work, you may (if authorized by the copyright holders of
++that material) supplement the terms of this License with terms:
++
++ a) Disclaiming warranty or limiting liability differently from the
++ terms of sections 15 and 16 of this License; or
++
++ b) Requiring preservation of specified reasonable legal notices or
++ author attributions in that material or in the Appropriate Legal
++ Notices displayed by works containing it; or
++
++ c) Prohibiting misrepresentation of the origin of that material, or
++ requiring that modified versions of such material be marked in
++ reasonable ways as different from the original version; or
++
++ d) Limiting the use for publicity purposes of names of licensors or
++ authors of the material; or
++
++ e) Declining to grant rights under trademark law for use of some
++ trade names, trademarks, or service marks; or
++
++ f) Requiring indemnification of licensors and authors of that
++ material by anyone who conveys the material (or modified versions of
++ it) with contractual assumptions of liability to the recipient, for
++ any liability that these contractual assumptions directly impose on
++ those licensors and authors.
++
++ All other non-permissive additional terms are considered "further
++restrictions" within the meaning of section 10. If the Program as you
++received it, or any part of it, contains a notice stating that it is
++governed by this License along with a term that is a further
++restriction, you may remove that term. If a license document contains
++a further restriction but permits relicensing or conveying under this
++License, you may add to a covered work material governed by the terms
++of that license document, provided that the further restriction does
++not survive such relicensing or conveying.
++
++ If you add terms to a covered work in accord with this section, you
++must place, in the relevant source files, a statement of the
++additional terms that apply to those files, or a notice indicating
++where to find the applicable terms.
++
++ Additional terms, permissive or non-permissive, may be stated in the
++form of a separately written license, or stated as exceptions;
++the above requirements apply either way.
++
++ 8. Termination.
++
++ You may not propagate or modify a covered work except as expressly
++provided under this License. Any attempt otherwise to propagate or
++modify it is void, and will automatically terminate your rights under
++this License (including any patent licenses granted under the third
++paragraph of section 11).
++
++ However, if you cease all violation of this License, then your
++license from a particular copyright holder is reinstated (a)
++provisionally, unless and until the copyright holder explicitly and
++finally terminates your license, and (b) permanently, if the copyright
++holder fails to notify you of the violation by some reasonable means
++prior to 60 days after the cessation.
++
++ Moreover, your license from a particular copyright holder is
++reinstated permanently if the copyright holder notifies you of the
++violation by some reasonable means, this is the first time you have
++received notice of violation of this License (for any work) from that
++copyright holder, and you cure the violation prior to 30 days after
++your receipt of the notice.
++
++ Termination of your rights under this section does not terminate the
++licenses of parties who have received copies or rights from you under
++this License. If your rights have been terminated and not permanently
++reinstated, you do not qualify to receive new licenses for the same
++material under section 10.
++
++ 9. Acceptance Not Required for Having Copies.
++
++ You are not required to accept this License in order to receive or
++run a copy of the Program. Ancillary propagation of a covered work
++occurring solely as a consequence of using peer-to-peer transmission
++to receive a copy likewise does not require acceptance. However,
++nothing other than this License grants you permission to propagate or
++modify any covered work. These actions infringe copyright if you do
++not accept this License. Therefore, by modifying or propagating a
++covered work, you indicate your acceptance of this License to do so.
++
++ 10. Automatic Licensing of Downstream Recipients.
++
++ Each time you convey a covered work, the recipient automatically
++receives a license from the original licensors, to run, modify and
++propagate that work, subject to this License. You are not responsible
++for enforcing compliance by third parties with this License.
++
++ An "entity transaction" is a transaction transferring control of an
++organization, or substantially all assets of one, or subdividing an
++organization, or merging organizations. If propagation of a covered
++work results from an entity transaction, each party to that
++transaction who receives a copy of the work also receives whatever
++licenses to the work the party's predecessor in interest had or could
++give under the previous paragraph, plus a right to possession of the
++Corresponding Source of the work from the predecessor in interest, if
++the predecessor has it or can get it with reasonable efforts.
++
++ You may not impose any further restrictions on the exercise of the
++rights granted or affirmed under this License. For example, you may
++not impose a license fee, royalty, or other charge for exercise of
++rights granted under this License, and you may not initiate litigation
++(including a cross-claim or counterclaim in a lawsuit) alleging that
++any patent claim is infringed by making, using, selling, offering for
++sale, or importing the Program or any portion of it.
++
++ 11. Patents.
++
++ A "contributor" is a copyright holder who authorizes use under this
++License of the Program or a work on which the Program is based. The
++work thus licensed is called the contributor's "contributor version".
++
++ A contributor's "essential patent claims" are all patent claims
++owned or controlled by the contributor, whether already acquired or
++hereafter acquired, that would be infringed by some manner, permitted
++by this License, of making, using, or selling its contributor version,
++but do not include claims that would be infringed only as a
++consequence of further modification of the contributor version. For
++purposes of this definition, "control" includes the right to grant
++patent sublicenses in a manner consistent with the requirements of
++this License.
++
++ Each contributor grants you a non-exclusive, worldwide, royalty-free
++patent license under the contributor's essential patent claims, to
++make, use, sell, offer for sale, import and otherwise run, modify and
++propagate the contents of its contributor version.
++
++ In the following three paragraphs, a "patent license" is any express
++agreement or commitment, however denominated, not to enforce a patent
++(such as an express permission to practice a patent or covenant not to
++sue for patent infringement). To "grant" such a patent license to a
++party means to make such an agreement or commitment not to enforce a
++patent against the party.
++
++ If you convey a covered work, knowingly relying on a patent license,
++and the Corresponding Source of the work is not available for anyone
++to copy, free of charge and under the terms of this License, through a
++publicly available network server or other readily accessible means,
++then you must either (1) cause the Corresponding Source to be so
++available, or (2) arrange to deprive yourself of the benefit of the
++patent license for this particular work, or (3) arrange, in a manner
++consistent with the requirements of this License, to extend the patent
++license to downstream recipients. "Knowingly relying" means you have
++actual knowledge that, but for the patent license, your conveying the
++covered work in a country, or your recipient's use of the covered work
++in a country, would infringe one or more identifiable patents in that
++country that you have reason to believe are valid.
++
++ If, pursuant to or in connection with a single transaction or
++arrangement, you convey, or propagate by procuring conveyance of, a
++covered work, and grant a patent license to some of the parties
++receiving the covered work authorizing them to use, propagate, modify
++or convey a specific copy of the covered work, then the patent license
++you grant is automatically extended to all recipients of the covered
++work and works based on it.
++
++ A patent license is "discriminatory" if it does not include within
++the scope of its coverage, prohibits the exercise of, or is
++conditioned on the non-exercise of one or more of the rights that are
++specifically granted under this License. You may not convey a covered
++work if you are a party to an arrangement with a third party that is
++in the business of distributing software, under which you make payment
++to the third party based on the extent of your activity of conveying
++the work, and under which the third party grants, to any of the
++parties who would receive the covered work from you, a discriminatory
++patent license (a) in connection with copies of the covered work
++conveyed by you (or copies made from those copies), or (b) primarily
++for and in connection with specific products or compilations that
++contain the covered work, unless you entered into that arrangement,
++or that patent license was granted, prior to 28 March 2007.
++
++ Nothing in this License shall be construed as excluding or limiting
++any implied license or other defenses to infringement that may
++otherwise be available to you under applicable patent law.
++
++ 12. No Surrender of Others' Freedom.
++
++ If conditions are imposed on you (whether by court order, agreement or
++otherwise) that contradict the conditions of this License, they do not
++excuse you from the conditions of this License. If you cannot convey a
++covered work so as to satisfy simultaneously your obligations under this
++License and any other pertinent obligations, then as a consequence you may
++not convey it at all. For example, if you agree to terms that obligate you
++to collect a royalty for further conveying from those to whom you convey
++the Program, the only way you could satisfy both those terms and this
++License would be to refrain entirely from conveying the Program.
++
++ 13. Remote Network Interaction; Use with the GNU General Public License.
++
++ Notwithstanding any other provision of this License, if you modify the
++Program, your modified version must prominently offer all users
++interacting with it remotely through a computer network (if your version
++supports such interaction) an opportunity to receive the Corresponding
++Source of your version by providing access to the Corresponding Source
++from a network server at no charge, through some standard or customary
++means of facilitating copying of software. This Corresponding Source
++shall include the Corresponding Source for any work covered by version 3
++of the GNU General Public License that is incorporated pursuant to the
++following paragraph.
++
++ Notwithstanding any other provision of this License, you have
++permission to link or combine any covered work with a work licensed
++under version 3 of the GNU General Public License into a single
++combined work, and to convey the resulting work. The terms of this
++License will continue to apply to the part which is the covered work,
++but the work with which it is combined will remain governed by version
++3 of the GNU General Public License.
++
++ 14. Revised Versions of this License.
++
++ The Free Software Foundation may publish revised and/or new versions of
++the GNU Affero General Public License from time to time. Such new versions
++will be similar in spirit to the present version, but may differ in detail to
++address new problems or concerns.
++
++ Each version is given a distinguishing version number. If the
++Program specifies that a certain numbered version of the GNU Affero General
++Public License "or any later version" applies to it, you have the
++option of following the terms and conditions either of that numbered
++version or of any later version published by the Free Software
++Foundation. If the Program does not specify a version number of the
++GNU Affero General Public License, you may choose any version ever published
++by the Free Software Foundation.
++
++ If the Program specifies that a proxy can decide which future
++versions of the GNU Affero General Public License can be used, that proxy's
++public statement of acceptance of a version permanently authorizes you
++to choose that version for the Program.
++
++ Later license versions may give you additional or different
++permissions. However, no additional obligations are imposed on any
++author or copyright holder as a result of your choosing to follow a
++later version.
++
++ 15. Disclaimer of Warranty.
++
++ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
++APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
++HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
++OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
++THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
++PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
++IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
++ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
++
++ 16. Limitation of Liability.
++
++ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
++WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
++THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
++GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
++USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
++DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
++PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
++EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
++SUCH DAMAGES.
++
++ 17. Interpretation of Sections 15 and 16.
++
++ If the disclaimer of warranty and limitation of liability provided
++above cannot be given local legal effect according to their terms,
++reviewing courts shall apply local law that most closely approximates
++an absolute waiver of all civil liability in connection with the
++Program, unless a warranty or assumption of liability accompanies a
++copy of the Program in return for a fee.
++
++ END OF TERMS AND CONDITIONS
++
++ How to Apply These Terms to Your New Programs
++
++ If you develop a new program, and you want it to be of the greatest
++possible use to the public, the best way to achieve this is to make it
++free software which everyone can redistribute and change under these terms.
++
++ To do so, attach the following notices to the program. It is safest
++to attach them to the start of each source file to most effectively
++state the exclusion of warranty; and each file should have at least
++the "copyright" line and a pointer to where the full notice is found.
++
++ <one line to give the program's name and a brief idea of what it does.>
++ Copyright (C) <year> <name of author>
++
++ This program is free software: you can redistribute it and/or modify
++ it under the terms of the GNU Affero General Public License as published by
++ the Free Software Foundation, either version 3 of the License, or
++ (at your option) any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU Affero General Public License for more details.
++
++ You should have received a copy of the GNU Affero General Public License
++ along with this program. If not, see <http://www.gnu.org/licenses/>.
++
++Also add information on how to contact you by electronic and paper mail.
++
++ If your software can interact with users remotely through a computer
++network, you should also make sure that it provides a way for users to
++get its source. For example, if your program is a web application, its
++interface could display a "Source" link that leads users to an archive
++of the code. There are many ways you could offer source, and different
++solutions will be better for different programs; see section 13 for the
++specific requirements.
++
++ You should also get your employer (if you work as a programmer) or school,
++if any, to sign a "copyright disclaimer" for the program, if necessary.
++For more information on this, and how to apply and follow the GNU AGPL, see
++<http://www.gnu.org/licenses/>.
diff --cc build/git/hooks/coding-standards.sh
index 0000000,d4e4c71..d4e4c71
mode 000000,100755..100755
--- a/build/git/hooks/coding-standards.sh
+++ b/build/git/hooks/coding-standards.sh
diff --cc build/install/easy-docker-install.sh
index 0000000,fe6e186..fe6e186
mode 000000,100755..100755
--- a/build/install/easy-docker-install.sh
+++ b/build/install/easy-docker-install.sh
diff --cc build/jenkins/create-plot-data-from-log.sh
index 0000000,ce3bfed..ce3bfed
mode 000000,100755..100755
--- a/build/jenkins/create-plot-data-from-log.sh
+++ b/build/jenkins/create-plot-data-from-log.sh
diff --cc build/jenkins/libcloud-pin
index 0000000,3fa07e6..3fa07e6
mode 000000,100644..100644
--- a/build/jenkins/libcloud-pin
+++ b/build/jenkins/libcloud-pin
diff --cc build/jenkins/package-build-dockerfiles/.gitignore
index 0000000,ceee9fa..ceee9fa
mode 000000,100644..100644
--- a/build/jenkins/package-build-dockerfiles/.gitignore
+++ b/build/jenkins/package-build-dockerfiles/.gitignore
diff --cc build/jenkins/package-build-dockerfiles/Makefile
index 0000000,70fbf28..70fbf28
mode 000000,100644..100644
--- a/build/jenkins/package-build-dockerfiles/Makefile
+++ b/build/jenkins/package-build-dockerfiles/Makefile
diff --cc build/jenkins/package-build-dockerfiles/README
index 0000000,0dfab94..0dfab94
mode 000000,100644..100644
--- a/build/jenkins/package-build-dockerfiles/README
+++ b/build/jenkins/package-build-dockerfiles/README
diff --cc build/jenkins/package-build-dockerfiles/build-all-build-containers.sh
index 0000000,34ffcce..34ffcce
mode 000000,100755..100755
--- a/build/jenkins/package-build-dockerfiles/build-all-build-containers.sh
+++ b/build/jenkins/package-build-dockerfiles/build-all-build-containers.sh
diff --cc build/jenkins/package-build-dockerfiles/centos6/Dockerfile
index 0000000,cfd94c8..cfd94c8
mode 000000,100644..100644
--- a/build/jenkins/package-build-dockerfiles/centos6/Dockerfile
+++ b/build/jenkins/package-build-dockerfiles/centos6/Dockerfile
diff --cc build/jenkins/package-build-dockerfiles/debian7/Dockerfile
index 0000000,0d04590..0d04590
mode 000000,100644..100644
--- a/build/jenkins/package-build-dockerfiles/debian7/Dockerfile
+++ b/build/jenkins/package-build-dockerfiles/debian7/Dockerfile
diff --cc build/jenkins/package-build-dockerfiles/debian8/Dockerfile
index 0000000,fcd390f..fcd390f
mode 000000,100644..100644
--- a/build/jenkins/package-build-dockerfiles/debian8/Dockerfile
+++ b/build/jenkins/package-build-dockerfiles/debian8/Dockerfile
diff --cc build/jenkins/package-build-dockerfiles/ubuntu1204/Dockerfile
index 0000000,158053c..158053c
mode 000000,100644..100644
--- a/build/jenkins/package-build-dockerfiles/ubuntu1204/Dockerfile
+++ b/build/jenkins/package-build-dockerfiles/ubuntu1204/Dockerfile
diff --cc build/jenkins/package-build-dockerfiles/ubuntu1404/Dockerfile
index 0000000,0b8ee7a..0b8ee7a
mode 000000,100644..100644
--- a/build/jenkins/package-build-dockerfiles/ubuntu1404/Dockerfile
+++ b/build/jenkins/package-build-dockerfiles/ubuntu1404/Dockerfile
diff --cc build/jenkins/package-test-dockerfiles/centos6/Dockerfile
index 0000000,69927a1..69927a1
mode 000000,100644..100644
--- a/build/jenkins/package-test-dockerfiles/centos6/Dockerfile
+++ b/build/jenkins/package-test-dockerfiles/centos6/Dockerfile
diff --cc build/jenkins/package-test-dockerfiles/centos6/localrepo.repo
index 0000000,ac6b898..ac6b898
mode 000000,100644..100644
--- a/build/jenkins/package-test-dockerfiles/centos6/localrepo.repo
+++ b/build/jenkins/package-test-dockerfiles/centos6/localrepo.repo
diff --cc build/jenkins/package-test-dockerfiles/debian7/Dockerfile
index 0000000,c9a2fdc..c9a2fdc
mode 000000,100644..100644
--- a/build/jenkins/package-test-dockerfiles/debian7/Dockerfile
+++ b/build/jenkins/package-test-dockerfiles/debian7/Dockerfile
diff --cc build/jenkins/package-test-dockerfiles/debian8/Dockerfile
index 0000000,cde1847..cde1847
mode 000000,100644..100644
--- a/build/jenkins/package-test-dockerfiles/debian8/Dockerfile
+++ b/build/jenkins/package-test-dockerfiles/debian8/Dockerfile
diff --cc build/jenkins/package-test-dockerfiles/ubuntu1204/Dockerfile
index 0000000,0cb77c8..0cb77c8
mode 000000,100644..100644
--- a/build/jenkins/package-test-dockerfiles/ubuntu1204/Dockerfile
+++ b/build/jenkins/package-test-dockerfiles/ubuntu1204/Dockerfile
diff --cc build/jenkins/package-test-dockerfiles/ubuntu1404/Dockerfile
index 0000000,6c4d0e9..6c4d0e9
mode 000000,100644..100644
--- a/build/jenkins/package-test-dockerfiles/ubuntu1404/Dockerfile
+++ b/build/jenkins/package-test-dockerfiles/ubuntu1404/Dockerfile
diff --cc build/jenkins/package-testing/common-test-packages.sh
index 0000000,2dc67ab..2dc67ab
mode 000000,100755..100755
--- a/build/jenkins/package-testing/common-test-packages.sh
+++ b/build/jenkins/package-testing/common-test-packages.sh
diff --cc build/jenkins/package-testing/deb-common-test-packages.sh
index 0000000,5f32a60..5f32a60
mode 000000,100755..100755
--- a/build/jenkins/package-testing/deb-common-test-packages.sh
+++ b/build/jenkins/package-testing/deb-common-test-packages.sh
diff --cc build/jenkins/package-testing/test-package-arvados-api-server.sh
index 0000000,e975448..e975448
mode 000000,100755..100755
--- a/build/jenkins/package-testing/test-package-arvados-api-server.sh
+++ b/build/jenkins/package-testing/test-package-arvados-api-server.sh
diff --cc build/jenkins/package-testing/test-package-arvados-node-manager.sh
index 0000000,2f416d1..2f416d1
mode 000000,100755..100755
--- a/build/jenkins/package-testing/test-package-arvados-node-manager.sh
+++ b/build/jenkins/package-testing/test-package-arvados-node-manager.sh
diff --cc build/jenkins/package-testing/test-package-arvados-sso-server.sh
index 0000000,c1a377e..c1a377e
mode 000000,100755..100755
--- a/build/jenkins/package-testing/test-package-arvados-sso-server.sh
+++ b/build/jenkins/package-testing/test-package-arvados-sso-server.sh
diff --cc build/jenkins/package-testing/test-package-arvados-workbench.sh
index 0000000,1be4dea..1be4dea
mode 000000,100755..100755
--- a/build/jenkins/package-testing/test-package-arvados-workbench.sh
+++ b/build/jenkins/package-testing/test-package-arvados-workbench.sh
diff --cc build/jenkins/package-testing/test-package-python27-python-arvados-fuse.sh
index 0000000,1654be9..1654be9
mode 000000,100755..100755
--- a/build/jenkins/package-testing/test-package-python27-python-arvados-fuse.sh
+++ b/build/jenkins/package-testing/test-package-python27-python-arvados-fuse.sh
diff --cc build/jenkins/package-testing/test-package-python27-python-arvados-python-client.sh
index 0000000,0772fbf..0772fbf
mode 000000,100755..100755
--- a/build/jenkins/package-testing/test-package-python27-python-arvados-python-client.sh
+++ b/build/jenkins/package-testing/test-package-python27-python-arvados-python-client.sh
diff --cc build/jenkins/package-testing/test-packages-centos6.sh
index 0000000,4e05364..4e05364
mode 000000,100755..100755
--- a/build/jenkins/package-testing/test-packages-centos6.sh
+++ b/build/jenkins/package-testing/test-packages-centos6.sh
diff --cc build/jenkins/package-testing/test-packages-debian7.sh
index 0000000,54ce94c..54ce94c
mode 000000,120000..120000
--- a/build/jenkins/package-testing/test-packages-debian7.sh
+++ b/build/jenkins/package-testing/test-packages-debian7.sh
diff --cc build/jenkins/package-testing/test-packages-debian8.sh
index 0000000,54ce94c..54ce94c
mode 000000,120000..120000
--- a/build/jenkins/package-testing/test-packages-debian8.sh
+++ b/build/jenkins/package-testing/test-packages-debian8.sh
diff --cc build/jenkins/package-testing/test-packages-ubuntu1204.sh
index 0000000,54ce94c..54ce94c
mode 000000,120000..120000
--- a/build/jenkins/package-testing/test-packages-ubuntu1204.sh
+++ b/build/jenkins/package-testing/test-packages-ubuntu1204.sh
diff --cc build/jenkins/package-testing/test-packages-ubuntu1404.sh
index 0000000,54ce94c..54ce94c
mode 000000,120000..120000
--- a/build/jenkins/package-testing/test-packages-ubuntu1404.sh
+++ b/build/jenkins/package-testing/test-packages-ubuntu1404.sh
diff --cc build/jenkins/rails-package-scripts/README.md
index 0000000,3a93c31..3a93c31
mode 000000,100644..100644
--- a/build/jenkins/rails-package-scripts/README.md
+++ b/build/jenkins/rails-package-scripts/README.md
diff --cc build/jenkins/rails-package-scripts/arvados-api-server.sh
index 0000000,c2b99f0..c2b99f0
mode 000000,100644..100644
--- a/build/jenkins/rails-package-scripts/arvados-api-server.sh
+++ b/build/jenkins/rails-package-scripts/arvados-api-server.sh
diff --cc build/jenkins/rails-package-scripts/arvados-sso-server.sh
index 0000000,10b2ee2..10b2ee2
mode 000000,100644..100644
--- a/build/jenkins/rails-package-scripts/arvados-sso-server.sh
+++ b/build/jenkins/rails-package-scripts/arvados-sso-server.sh
diff --cc build/jenkins/rails-package-scripts/arvados-workbench.sh
index 0000000,f2b8a56..f2b8a56
mode 000000,100644..100644
--- a/build/jenkins/rails-package-scripts/arvados-workbench.sh
+++ b/build/jenkins/rails-package-scripts/arvados-workbench.sh
diff --cc build/jenkins/rails-package-scripts/postinst.sh
index 0000000,6fac26b..6fac26b
mode 000000,100644..100644
--- a/build/jenkins/rails-package-scripts/postinst.sh
+++ b/build/jenkins/rails-package-scripts/postinst.sh
diff --cc build/jenkins/rails-package-scripts/postrm.sh
index 0000000,2d63f0b..2d63f0b
mode 000000,100644..100644
--- a/build/jenkins/rails-package-scripts/postrm.sh
+++ b/build/jenkins/rails-package-scripts/postrm.sh
diff --cc build/jenkins/rails-package-scripts/prerm.sh
index 0000000,4ef5904..4ef5904
mode 000000,100644..100644
--- a/build/jenkins/rails-package-scripts/prerm.sh
+++ b/build/jenkins/rails-package-scripts/prerm.sh
diff --cc build/jenkins/rails-package-scripts/step2.sh
index 0000000,816b906..816b906
mode 000000,100644..100644
--- a/build/jenkins/rails-package-scripts/step2.sh
+++ b/build/jenkins/rails-package-scripts/step2.sh
diff --cc build/jenkins/run-build-docker-images.sh
index 0000000,0a5841d..0a5841d
mode 000000,100755..100755
--- a/build/jenkins/run-build-docker-images.sh
+++ b/build/jenkins/run-build-docker-images.sh
diff --cc build/jenkins/run-build-docker-jobs-image.sh
index 0000000,fcf849b..fcf849b
mode 000000,100755..100755
--- a/build/jenkins/run-build-docker-jobs-image.sh
+++ b/build/jenkins/run-build-docker-jobs-image.sh
diff --cc build/jenkins/run-build-packages-all-targets.sh
index 0000000,f1a1e1c..f1a1e1c
mode 000000,100755..100755
--- a/build/jenkins/run-build-packages-all-targets.sh
+++ b/build/jenkins/run-build-packages-all-targets.sh
diff --cc build/jenkins/run-build-packages-one-target.sh
index 0000000,c5e0a89..c5e0a89
mode 000000,100755..100755
--- a/build/jenkins/run-build-packages-one-target.sh
+++ b/build/jenkins/run-build-packages-one-target.sh
diff --cc build/jenkins/run-build-packages-sso.sh
index 0000000,cc673a6..cc673a6
mode 000000,100755..100755
--- a/build/jenkins/run-build-packages-sso.sh
+++ b/build/jenkins/run-build-packages-sso.sh
diff --cc build/jenkins/run-build-packages.sh
index 0000000,136b73c..136b73c
mode 000000,100755..100755
--- a/build/jenkins/run-build-packages.sh
+++ b/build/jenkins/run-build-packages.sh
diff --cc build/jenkins/run-cwl-tests.sh
index 0000000,53c0538..53c0538
mode 000000,100755..100755
--- a/build/jenkins/run-cwl-tests.sh
+++ b/build/jenkins/run-cwl-tests.sh
diff --cc build/jenkins/run-deploy.sh
index 0000000,1b06c65..1b06c65
mode 000000,100755..100755
--- a/build/jenkins/run-deploy.sh
+++ b/build/jenkins/run-deploy.sh
diff --cc build/jenkins/run-diagnostics-suite.sh
index 0000000,015a053..015a053
mode 000000,100755..100755
--- a/build/jenkins/run-diagnostics-suite.sh
+++ b/build/jenkins/run-diagnostics-suite.sh
diff --cc build/jenkins/run-library.sh
index 0000000,c2e9b40..c2e9b40
mode 000000,100755..100755
--- a/build/jenkins/run-library.sh
+++ b/build/jenkins/run-library.sh
diff --cc build/jenkins/run-performance-suite.sh
index 0000000,2944bda..2944bda
mode 000000,100755..100755
--- a/build/jenkins/run-performance-suite.sh
+++ b/build/jenkins/run-performance-suite.sh
diff --cc build/jenkins/run-tapestry-tests.sh
index 0000000,851a81d..851a81d
mode 000000,100755..100755
--- a/build/jenkins/run-tapestry-tests.sh
+++ b/build/jenkins/run-tapestry-tests.sh
diff --cc build/jenkins/run-tests.sh
index 0000000,a17d610..a17d610
mode 000000,100755..100755
--- a/build/jenkins/run-tests.sh
+++ b/build/jenkins/run-tests.sh
diff --cc build/jenkins/run_upload_packages.py
index 0000000,04e6c80..04e6c80
mode 000000,100755..100755
--- a/build/jenkins/run_upload_packages.py
+++ b/build/jenkins/run_upload_packages.py
commit 2b9b7518a60a71315a1504bf96b3182122bec702
Author: Tom Clegg <tom at curoverse.com>
Date: Mon Mar 7 14:28:10 2016 -0500
8345: Uninstall old llfuse from reused virtualenv, if necessary.
diff --git a/jenkins/run-tests.sh b/jenkins/run-tests.sh
index 1289095..a17d610 100755
--- a/jenkins/run-tests.sh
+++ b/jenkins/run-tests.sh
@@ -425,6 +425,12 @@ pip freeze 2>/dev/null | egrep ^apache-libcloud==$LIBCLOUD_PIN \
|| pip install --pre --ignore-installed https://github.com/curoverse/libcloud/archive/apache-libcloud-$LIBCLOUD_PIN.zip >/dev/null \
|| fatal "pip install apache-libcloud failed"
+# Uninstall old llfuse, because services/fuse "pip install" won't
+# upgrade it by default.
+if pip freeze | egrep '^llfuse==0\.41\.'; then
+ yes | pip uninstall 'llfuse<0.42'
+fi
+
# Deactivate Python 2 virtualenv
deactivate
commit 8eda2e72fc37cdb9f947c19ad994ac094aa0a507
Merge: 1659fd3 2213311
Author: Tom Clegg <tom at curoverse.com>
Date: Mon Mar 7 00:47:10 2016 -0500
8345: Merge branch 'master' into 8345-llfuse-unpin
commit 1659fd3eca62ac51e7628af3464dd03787e2d84f
Author: Tom Clegg <tom at curoverse.com>
Date: Mon Mar 7 00:46:08 2016 -0500
8345: Fix up log messages to show which distro/package is being built/tested.
diff --git a/jenkins/run-build-packages-one-target.sh b/jenkins/run-build-packages-one-target.sh
index 34d8c08..c5e0a89 100755
--- a/jenkins/run-build-packages-one-target.sh
+++ b/jenkins/run-build-packages-one-target.sh
@@ -138,7 +138,7 @@ if test -z "$packages" ; then
centos6)
packages="$packages python27-python-arvados-fuse
python27-python-arvados-python-client"
- ;;
+ ;;
*)
packages="$packages python-arvados-fuse
python-arvados-python-client"
@@ -164,6 +164,8 @@ docker_volume_args=(
if [[ -n "$test_packages" ]]; then
for p in $packages ; do
+ echo
+ echo "START: $p test on $IMAGE" >&2
if docker run --rm \
"${docker_volume_args[@]}" \
--env ARVADOS_DEBUG=1 \
@@ -171,24 +173,26 @@ if [[ -n "$test_packages" ]]; then
--env "WORKSPACE=/arvados" \
"$IMAGE" $COMMAND $p
then
- true
+ echo "OK: $p test on $IMAGE succeeded" >&2
else
FINAL_EXITCODE=$?
package_fails="$package_fails $p"
- echo "ERROR: $tag test failed with exit status $FINAL_EXITCODE." >&2
+ echo "ERROR: $p test on $IMAGE failed with exit status $FINAL_EXITCODE" >&2
fi
done
else
+ echo
+ echo "START: build packages on $IMAGE" >&2
if docker run --rm \
"${docker_volume_args[@]}" \
--env ARVADOS_DEBUG=1 \
"$IMAGE" $COMMAND
then
echo
- echo "Build packages for $TARGET succeeded." >&2
+ echo "OK: build packages on $IMAGE succeeded" >&2
else
FINAL_EXITCODE=$?
- echo "ERROR: $tag build failed with exit status $FINAL_EXITCODE." >&2
+ echo "ERROR: build packages on $IMAGE failed with exit status $FINAL_EXITCODE" >&2
fi
fi
diff --git a/jenkins/run-library.sh b/jenkins/run-library.sh
index bec5279..c2e9b40 100755
--- a/jenkins/run-library.sh
+++ b/jenkins/run-library.sh
@@ -225,6 +225,10 @@ fpm_build () {
fi
fi
+ if [[ "${DEBUG:-0}" != "0" ]]; then
+ COMMAND_ARR+=('--verbose' '--log' 'info')
+ fi
+
if [[ "$PACKAGE_NAME" != "$PACKAGE" ]]; then
COMMAND_ARR+=('-n' "$PACKAGE_NAME")
fi
commit 27ac5631c777fefc89839089109d0b06d596019d
Author: Tom Clegg <tom at curoverse.com>
Date: Mon Mar 7 00:44:46 2016 -0500
8345: Build contextlib2 backport, needed by python-llfuse on debian7.
diff --git a/jenkins/run-build-packages.sh b/jenkins/run-build-packages.sh
index 21cc6c6..136b73c 100755
--- a/jenkins/run-build-packages.sh
+++ b/jenkins/run-build-packages.sh
@@ -93,7 +93,7 @@ case "$TARGET" in
oauth2client==1.5.2 pyasn1==0.1.7 pyasn1-modules==0.0.5 \
rsa uritemplate httplib2 ws4py pykka six pyexecjs jsonschema \
ciso8601 pycrypto backports.ssl_match_hostname llfuse \
- 'pycurl<7.21.5')
+ 'pycurl<7.21.5' contextlib2)
PYTHON3_BACKPORTS=(docker-py six requests websocket-client)
;;
debian8)
commit a4f8a4e24e7a778194878c200391c4a3dca55961
Author: Tom Clegg <tom at curoverse.com>
Date: Thu Mar 3 13:02:41 2016 -0500
8345: Add build-essential to ubuntu1204 package-building image
diff --git a/jenkins/package-build-dockerfiles/ubuntu1204/Dockerfile b/jenkins/package-build-dockerfiles/ubuntu1204/Dockerfile
index 7d480a5..158053c 100644
--- a/jenkins/package-build-dockerfiles/ubuntu1204/Dockerfile
+++ b/jenkins/package-build-dockerfiles/ubuntu1204/Dockerfile
@@ -2,7 +2,7 @@ FROM ubuntu:precise
MAINTAINER Ward Vandewege <ward at curoverse.com>
# Install dependencies and set up system.
-RUN /usr/bin/apt-get update && /usr/bin/apt-get install -q -y python2.7-dev python3 python-setuptools python3-setuptools libcurl4-gnutls-dev curl git libattr1-dev libfuse-dev libpq-dev python-pip
+RUN /usr/bin/apt-get update && /usr/bin/apt-get install -q -y python2.7-dev python3 python-setuptools python3-setuptools libcurl4-gnutls-dev curl git libattr1-dev libfuse-dev libpq-dev python-pip build-essential
# Install RVM
RUN gpg --keyserver pool.sks-keyservers.net --recv-keys D39DC0E3 && \
commit cdbcd6d4e3af4d99aeec97263ad12774e1ef81e4
Author: Tom Clegg <tom at curoverse.com>
Date: Wed Mar 2 20:05:26 2016 -0500
8345: Build and install new fuse libs before building llfuse.
diff --git a/jenkins/run-build-packages.sh b/jenkins/run-build-packages.sh
index ccea8a2..21cc6c6 100755
--- a/jenkins/run-build-packages.sh
+++ b/jenkins/run-build-packages.sh
@@ -288,75 +288,12 @@ handle_python_package
rm -rf "$SRC_BUILD_DIR"
)
-# Go binaries
-export GOPATH=$(mktemp -d)
-package_go_binary services/keepstore keepstore \
- "Keep storage daemon, accessible to clients on the LAN"
-package_go_binary services/keepproxy keepproxy \
- "Make a Keep cluster accessible to clients that are not on the LAN"
-package_go_binary services/keep-web keep-web \
- "Static web hosting service for user data stored in Arvados Keep"
-package_go_binary services/datamanager arvados-data-manager \
- "Ensure block replication levels, report disk usage, and determine which blocks should be deleted when space is needed"
-package_go_binary services/arv-git-httpd arvados-git-httpd \
- "Provide authenticated http access to Arvados-hosted git repositories"
-package_go_binary services/crunchstat crunchstat \
- "Gather cpu/memory/network statistics of running Crunch jobs"
-package_go_binary tools/keep-rsync keep-rsync \
- "Copy all data from one set of Keep servers to another"
-
-# The Python SDK
-# Please resist the temptation to add --no-python-fix-name to the fpm call here
-# (which would remove the python- prefix from the package name), because this
-# package is a dependency of arvados-fuse, and fpm can not omit the python-
-# prefix from only one of the dependencies of a package... Maybe I could
-# whip up a patch and send it upstream, but that will be for another day. Ward,
-# 2014-05-15
+# On older platforms we need to publish a backport of libfuse >=2.9.2,
+# and we need to build and install it here in order to even build an
+# llfuse package.
cd $WORKSPACE/packages/$TARGET
-rm -rf "$WORKSPACE/sdk/python/build"
-fpm_build $WORKSPACE/sdk/python "${PYTHON2_PKG_PREFIX}-arvados-python-client" 'Curoverse, Inc.' 'python' "$(awk '($1 == "Version:"){print $2}' $WORKSPACE/sdk/python/arvados_python_client.egg-info/PKG-INFO)" "--url=https://arvados.org" "--description=The Arvados Python SDK" --deb-recommends=git
-
-# The PAM module
-if [[ $TARGET =~ debian|ubuntu ]]; then
- cd $WORKSPACE/packages/$TARGET
- rm -rf "$WORKSPACE/sdk/pam/build"
- fpm_build $WORKSPACE/sdk/pam libpam-arvados 'Curoverse, Inc.' 'python' "$(awk '($1 == "Version:"){print $2}' $WORKSPACE/sdk/pam/arvados_pam.egg-info/PKG-INFO)" "--url=https://arvados.org" "--description=PAM module for authenticating shell logins using Arvados API tokens" --depends libpam-python
-fi
-
-# The FUSE driver
-# Please see comment about --no-python-fix-name above; we stay consistent and do
-# not omit the python- prefix first.
-cd $WORKSPACE/packages/$TARGET
-rm -rf "$WORKSPACE/services/fuse/build"
-fpm_build $WORKSPACE/services/fuse "${PYTHON2_PKG_PREFIX}-arvados-fuse" 'Curoverse, Inc.' 'python' "$(awk '($1 == "Version:"){print $2}' $WORKSPACE/services/fuse/arvados_fuse.egg-info/PKG-INFO)" "--url=https://arvados.org" "--description=The Keep FUSE driver"
-
-# The node manager
-cd $WORKSPACE/packages/$TARGET
-rm -rf "$WORKSPACE/services/nodemanager/build"
-fpm_build $WORKSPACE/services/nodemanager arvados-node-manager 'Curoverse, Inc.' 'python' "$(awk '($1 == "Version:"){print $2}' $WORKSPACE/services/nodemanager/arvados_node_manager.egg-info/PKG-INFO)" "--url=https://arvados.org" "--description=The Arvados node manager"
-
-# The Docker image cleaner
-cd $WORKSPACE/packages/$TARGET
-rm -rf "$WORKSPACE/services/dockercleaner/build"
-fpm_build $WORKSPACE/services/dockercleaner arvados-docker-cleaner 'Curoverse, Inc.' 'python3' "$(awk '($1 == "Version:"){print $2}' $WORKSPACE/services/dockercleaner/arvados_docker_cleaner.egg-info/PKG-INFO)" "--url=https://arvados.org" "--description=The Arvados Docker image cleaner"
-
-# Forked libcloud
-LIBCLOUD_DIR=$(mktemp -d)
-(
- cd $LIBCLOUD_DIR
- git clone $DASHQ_UNLESS_DEBUG https://github.com/curoverse/libcloud.git .
- git checkout apache-libcloud-$LIBCLOUD_PIN
- # libcloud is absurdly noisy without -q, so force -q here
- OLD_DASHQ_UNLESS_DEBUG=$DASHQ_UNLESS_DEBUG
- DASHQ_UNLESS_DEBUG=-q
- handle_python_package
- DASHQ_UNLESS_DEBUG=$OLD_DASHQ_UNLESS_DEBUG
-)
-fpm_build $LIBCLOUD_DIR "$PYTHON2_PKG_PREFIX"-apache-libcloud
-rm -rf $LIBCLOUD_DIR
-
if [[ $TARGET =~ ubuntu1204 ]]; then
- # port libfuse 2.9.2 to Ubuntu 12.04
+ # port libfuse 2.9.2 to Ubuntu 12.04
LIBFUSE_DIR=$(mktemp -d)
(
cd $LIBFUSE_DIR
@@ -392,6 +329,11 @@ if [[ $TARGET =~ ubuntu1204 ]]; then
fpm_build "$LIBFUSE_DIR/fuse_2.9.2-5_amd64.deb" fuse "Ubuntu Developers" deb "2.9.2" --iteration 5
fpm_build "$LIBFUSE_DIR/libfuse2_2.9.2-5_amd64.deb" libfuse2 "Ubuntu Developers" deb "2.9.2" --iteration 5
fpm_build "$LIBFUSE_DIR/libfuse-dev_2.9.2-5_amd64.deb" libfuse-dev "Ubuntu Developers" deb "2.9.2" --iteration 5
+ dpkg -i \
+ "$WORKSPACE/packages/$TARGET/fuse_2.9.2-5_amd64.deb" \
+ "$WORKSPACE/packages/$TARGET/libfuse2_2.9.2-5_amd64.deb" \
+ "$WORKSPACE/packages/$TARGET/libfuse-dev_2.9.2-5_amd64.deb"
+ apt-get -y --no-install-recommends -f install
rm -rf $LIBFUSE_DIR
elif [[ $TARGET =~ centos6 ]]; then
# port fuse 2.9.2 to centos 6
@@ -421,8 +363,80 @@ elif [[ $TARGET =~ centos6 ]]; then
fpm_build "$LIBFUSE_DIR/fuse-libs-2.9.2-6.el6.x86_64.rpm" fuse-libs "Centos Developers" rpm "2.9.2" --iteration 5
fpm_build "$LIBFUSE_DIR/fuse-2.9.2-6.el6.x86_64.rpm" fuse "Centos Developers" rpm "2.9.2" --iteration 5 --no-auto-depends
fpm_build "$LIBFUSE_DIR/fuse-devel-2.9.2-6.el6.x86_64.rpm" fuse-devel "Centos Developers" rpm "2.9.2" --iteration 5 --no-auto-depends
+ yum install \
+ "$WORKSPACE/packages/$TARGET/fuse-libs-2.9.2-5.x86_64.rpm" \
+ "$WORKSPACE/packages/$TARGET/fuse-2.9.2-5.x86_64.rpm" \
+ "$WORKSPACE/packages/$TARGET/fuse-devel-2.9.2-5.x86_64.rpm"
+fi
+
+# Go binaries
+cd $WORKSPACE/packages/$TARGET
+export GOPATH=$(mktemp -d)
+package_go_binary services/keepstore keepstore \
+ "Keep storage daemon, accessible to clients on the LAN"
+package_go_binary services/keepproxy keepproxy \
+ "Make a Keep cluster accessible to clients that are not on the LAN"
+package_go_binary services/keep-web keep-web \
+ "Static web hosting service for user data stored in Arvados Keep"
+package_go_binary services/datamanager arvados-data-manager \
+ "Ensure block replication levels, report disk usage, and determine which blocks should be deleted when space is needed"
+package_go_binary services/arv-git-httpd arvados-git-httpd \
+ "Provide authenticated http access to Arvados-hosted git repositories"
+package_go_binary services/crunchstat crunchstat \
+ "Gather cpu/memory/network statistics of running Crunch jobs"
+package_go_binary tools/keep-rsync keep-rsync \
+ "Copy all data from one set of Keep servers to another"
+
+# The Python SDK
+# Please resist the temptation to add --no-python-fix-name to the fpm call here
+# (which would remove the python- prefix from the package name), because this
+# package is a dependency of arvados-fuse, and fpm can not omit the python-
+# prefix from only one of the dependencies of a package... Maybe I could
+# whip up a patch and send it upstream, but that will be for another day. Ward,
+# 2014-05-15
+cd $WORKSPACE/packages/$TARGET
+rm -rf "$WORKSPACE/sdk/python/build"
+fpm_build $WORKSPACE/sdk/python "${PYTHON2_PKG_PREFIX}-arvados-python-client" 'Curoverse, Inc.' 'python' "$(awk '($1 == "Version:"){print $2}' $WORKSPACE/sdk/python/arvados_python_client.egg-info/PKG-INFO)" "--url=https://arvados.org" "--description=The Arvados Python SDK" --deb-recommends=git
+
+# The PAM module
+if [[ $TARGET =~ debian|ubuntu ]]; then
+ cd $WORKSPACE/packages/$TARGET
+ rm -rf "$WORKSPACE/sdk/pam/build"
+ fpm_build $WORKSPACE/sdk/pam libpam-arvados 'Curoverse, Inc.' 'python' "$(awk '($1 == "Version:"){print $2}' $WORKSPACE/sdk/pam/arvados_pam.egg-info/PKG-INFO)" "--url=https://arvados.org" "--description=PAM module for authenticating shell logins using Arvados API tokens" --depends libpam-python
fi
+# The FUSE driver
+# Please see comment about --no-python-fix-name above; we stay consistent and do
+# not omit the python- prefix first.
+cd $WORKSPACE/packages/$TARGET
+rm -rf "$WORKSPACE/services/fuse/build"
+fpm_build $WORKSPACE/services/fuse "${PYTHON2_PKG_PREFIX}-arvados-fuse" 'Curoverse, Inc.' 'python' "$(awk '($1 == "Version:"){print $2}' $WORKSPACE/services/fuse/arvados_fuse.egg-info/PKG-INFO)" "--url=https://arvados.org" "--description=The Keep FUSE driver"
+
+# The node manager
+cd $WORKSPACE/packages/$TARGET
+rm -rf "$WORKSPACE/services/nodemanager/build"
+fpm_build $WORKSPACE/services/nodemanager arvados-node-manager 'Curoverse, Inc.' 'python' "$(awk '($1 == "Version:"){print $2}' $WORKSPACE/services/nodemanager/arvados_node_manager.egg-info/PKG-INFO)" "--url=https://arvados.org" "--description=The Arvados node manager"
+
+# The Docker image cleaner
+cd $WORKSPACE/packages/$TARGET
+rm -rf "$WORKSPACE/services/dockercleaner/build"
+fpm_build $WORKSPACE/services/dockercleaner arvados-docker-cleaner 'Curoverse, Inc.' 'python3' "$(awk '($1 == "Version:"){print $2}' $WORKSPACE/services/dockercleaner/arvados_docker_cleaner.egg-info/PKG-INFO)" "--url=https://arvados.org" "--description=The Arvados Docker image cleaner"
+
+# Forked libcloud
+LIBCLOUD_DIR=$(mktemp -d)
+(
+ cd $LIBCLOUD_DIR
+ git clone $DASHQ_UNLESS_DEBUG https://github.com/curoverse/libcloud.git .
+ git checkout apache-libcloud-$LIBCLOUD_PIN
+ # libcloud is absurdly noisy without -q, so force -q here
+ OLD_DASHQ_UNLESS_DEBUG=$DASHQ_UNLESS_DEBUG
+ DASHQ_UNLESS_DEBUG=-q
+ handle_python_package
+ DASHQ_UNLESS_DEBUG=$OLD_DASHQ_UNLESS_DEBUG
+)
+fpm_build $LIBCLOUD_DIR "$PYTHON2_PKG_PREFIX"-apache-libcloud
+rm -rf $LIBCLOUD_DIR
+
# Python 2 dependencies
declare -a PIP_DOWNLOAD_SWITCHES=(--no-deps)
# Add --no-use-wheel if this pip knows it.
commit 2213311cb8647e41604a94d64ddd02b21ae78411
Author: Ward Vandewege <ward at curoverse.com>
Date: Wed Mar 2 10:35:55 2016 -0500
Build arvbox instead of the old docker images.
refs #8231
diff --git a/jenkins/run-build-docker-images.sh b/jenkins/run-build-docker-images.sh
index 71910c2..0a5841d 100755
--- a/jenkins/run-build-docker-images.sh
+++ b/jenkins/run-build-docker-images.sh
@@ -124,15 +124,16 @@ timer_reset
# clean up the docker build environment
cd "$WORKSPACE"
-cd docker
-./build.sh realclean
-rm -f config.yml
+tools/arvbox/bin/arvbox build dev
+ECODE=$?
-# Get test config.yml file
-cp $HOME/docker/config.yml .
+if [[ "$ECODE" != "0" ]]; then
+ title "!!!!!! docker BUILD FAILED !!!!!!"
+ EXITCODE=$(($EXITCODE + $ECODE))
+fi
-./build.sh
+tools/arvbox/bin/arvbox build localdemo
ECODE=$?
@@ -155,14 +156,8 @@ else
## even though credentials are already in .dockercfg
docker login -u arvados
- docker_push arvados/api
- docker_push arvados/compute
- docker_push arvados/doc
- docker_push arvados/workbench
- docker_push arvados/keep
- docker_push arvados/keepproxy
- docker_push arvados/shell
- docker_push arvados/sso
+ docker_push arvados/arvbox-dev
+ docker_push arvados/arvbox-demo
title "upload arvados images complete (`timer`)"
else
title "upload arvados images SKIPPED because no --upload option set"
commit 659d7361e7a0fc1f6537e6851ffd3d29ce19bb26
Author: Tom Clegg <tom at curoverse.com>
Date: Wed Mar 2 10:34:58 2016 -0500
8345: Use a separate vendor/cache for each OS target. See dev.arvados.org/issues/8345#note-11
diff --git a/jenkins/run-build-packages-one-target.sh b/jenkins/run-build-packages-one-target.sh
index 9597703..34d8c08 100755
--- a/jenkins/run-build-packages-one-target.sh
+++ b/jenkins/run-build-packages-one-target.sh
@@ -150,13 +150,27 @@ FINAL_EXITCODE=0
package_fails=""
+mkdir -p "$WORKSPACE/apps/workbench/vendor/cache-$TARGET"
+mkdir -p "$WORKSPACE/services/api/vendor/cache-$TARGET"
+
+docker_volume_args=(
+ -v "$JENKINS_DIR:/jenkins"
+ -v "$WORKSPACE:/arvados"
+ -v /arvados/services/api/vendor/bundle
+ -v /arvados/apps/workbench/vendor/bundle
+ -v "$WORKSPACE/services/api/vendor/cache-$TARGET:/arvados/services/api/vendor/cache"
+ -v "$WORKSPACE/apps/workbench/vendor/cache-$TARGET:/arvados/apps/workbench/vendor/cache"
+)
+
if [[ -n "$test_packages" ]]; then
for p in $packages ; do
- if docker run --rm -v "$JENKINS_DIR:/jenkins" -v "$WORKSPACE:/arvados" \
- --env ARVADOS_DEBUG=1 \
- --env "TARGET=$TARGET" \
- --env "WORKSPACE=/arvados" \
- "$IMAGE" $COMMAND $p ; then
+ if docker run --rm \
+ "${docker_volume_args[@]}" \
+ --env ARVADOS_DEBUG=1 \
+ --env "TARGET=$TARGET" \
+ --env "WORKSPACE=/arvados" \
+ "$IMAGE" $COMMAND $p
+ then
true
else
FINAL_EXITCODE=$?
@@ -165,8 +179,11 @@ if [[ -n "$test_packages" ]]; then
fi
done
else
- if docker run --rm -v "$JENKINS_DIR:/jenkins" -v "$WORKSPACE:/arvados" \
- --env ARVADOS_DEBUG=1 "$IMAGE" $COMMAND ; then
+ if docker run --rm \
+ "${docker_volume_args[@]}" \
+ --env ARVADOS_DEBUG=1 \
+ "$IMAGE" $COMMAND
+ then
echo
echo "Build packages for $TARGET succeeded." >&2
else
commit 97424aa89b3f279986621ec5f574670dacb5a836
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date: Wed Mar 2 10:24:08 2016 -0500
Remove arvbox from arvados-dev (now in arvados/tools) refs #8231
diff --git a/arvbox/README.md b/arvbox/README.md
deleted file mode 100644
index 8098686..0000000
--- a/arvbox/README.md
+++ /dev/null
@@ -1,121 +0,0 @@
-# Arvados-in-a-box
-
-Self-contained development, demonstration and testing environment for Arvados.
-
-## Quick start
-
-```
-$ bin/arvbox reboot localdemo
-```
-
-## Usage
-
-```
-Arvados-in-a-box
-
-arvbox (build|start|run|open|shell|ip|stop|reboot|reset|destroy|log|svrestart)
-
-build <config> build arvbox Docker image
-start|run <config> start arvbox container
-open open arvbox workbench in a web browser
-shell enter arvbox shell
-ip print arvbox ip address
-stop stop arvbox container
-restart <config> stop, then run again
-reboot <config> stop, build arvbox Docker image, run
-reset delete arvbox arvados data (be careful!)
-destroy delete all arvbox code and data (be careful!)
-log <service> tail log of specified service
-svrestart <service> restart specified service inside arvbox
-clone <from> <to> clone an arvbox
-```
-
-## Requirements
-
-* Linux 3.x+ and Docker 1.9+
-* Minimum of 3 GiB of RAM + additional memory to run jobs
-* Minimum of 3 GiB of disk + storage for actual data
-
-## Configs
-
-### dev
-Development configuration. Boots a complete Arvados environment inside the
-container. The "arvados", "arvado-dev" and "sso-devise-omniauth-provider" code
-directories along data directories "postgres", "var", "passenger" and "gems"
-are bind mounted from the host file system for easy access and persistence
-across container rebuilds. Services are bound to the Docker container's
-network IP address and can only be accessed on the local host.
-
-In "dev" mode, you can override the default autogenerated settings of Rails
-projects by adding "application.yml.override" to any Rails project (sso, api,
-workbench). This can be used to test out API server settings or point
-Workbench at an alternate API server.
-
-### localdemo
-Demo configuration. Boots a complete Arvados environment inside the container.
-Unlike the development configuration, code directories are included in the demo
-image, and data directories are stored in a separate data volume container.
-Services are bound to the Docker container's network IP address and can only be
-accessed on the local host.
-
-### test
-Run the test suite.
-
-### publicdev
-Publicly accessible development configuration. Similar to 'dev' except that
-service ports are published to the host's IP address and can accessed by anyone
-who can connect to the host system. WARNING! The public arvbox configuration
-is NOT SECURE and must not be placed on a public IP address or used for
-production work.
-
-### publicdemo
-Publicly accessible development configuration. Similar to 'localdemo' except
-that service ports are published to the host's IP address and can accessed by
-anyone who can connect to the host system. WARNING! The public arvbox configuration
-is NOT SECURE and must not be placed on a public IP address or used for
-production work.
-
-## Environment variables
-
-### ARVBOX_DOCKER
-The location of Dockerfile.base and associated files used by "arvbox build".
-default: result of $(readlink -f $(dirname $0)/../lib/arvbox/docker)
-
-### ARVBOX_CONTAINER
-The name of the Docker container to manipulate.
-default: arvbox
-
-### ARVBOX_BASE
-The base directory to store persistent data for arvbox containers.
-default: $HOME/.arvbox
-
-### ARVBOX_DATA
-The base directory to store persistent data for the current container.
-default: $ARVBOX_BASE/$ARVBOX_CONTAINER
-
-### ARVADOS_ROOT
-The root directory of the Arvados source tree
-default: $ARVBOX_DATA/arvados
-
-### ARVADOS_DEV_ROOT
-The root directory of the Arvados-dev source tree
-default: $ARVBOX_DATA/arvados-dev
-
-### SSO_ROOT
-The root directory of the SSO source tree
-default: $ARVBOX_DATA/sso-devise-omniauth-provider
-
-### ARVBOX_PUBLISH_IP
-The IP address on which to publish services when running in public
-configuration. Overrides default detection of the host's IP address.
-
-## Notes
-
-Services are designed to install and auto-configure on start or restart. For
-example, the service script for keepstore always compiles keepstore from source
-and registers the daemon with the API server.
-
-Services are run with process supervision, so a service which exits will be
-restarted. Dependencies between services are handled by repeatedly trying and
-failing the service script until dependencies are fulfilled (by other service
-scripts) enabling the service script to complete.
diff --git a/arvbox/bin/arvbox b/arvbox/bin/arvbox
deleted file mode 100755
index d790cb6..0000000
--- a/arvbox/bin/arvbox
+++ /dev/null
@@ -1,402 +0,0 @@
-#!/bin/sh
-
-set -e
-
-if ! test -d /sys/fs/cgroup ; then
- echo "Arvbox requires cgroups to be mounted at /sys/fs/cgroup in order to use"
- echo "Docker-in-Docker. Older operating systems that put cgroups in other"
- echo "places (such as /cgroup) are not supported."
- exit 1
-fi
-
-if ! which docker >/dev/null 2>/dev/null ; then
- echo "Arvbox requires Docker. To install, run the following command as root:"
- echo "curl -sSL https://get.docker.com/ | sh"
- exit 1
-fi
-
-if test -z "$ARVBOX_DOCKER" ; then
- if which greadlink >/dev/null 2>/dev/null ; then
- ARVBOX_DOCKER=$(greadlink -f $(dirname $0)/../lib/arvbox/docker)
- else
- ARVBOX_DOCKER=$(readlink -f $(dirname $0)/../lib/arvbox/docker)
- fi
-fi
-
-if test -z "$ARVBOX_CONTAINER" ; then
- ARVBOX_CONTAINER=arvbox
-fi
-
-if test -z "$ARVBOX_BASE" ; then
- ARVBOX_BASE="$HOME/.arvbox"
-fi
-
-if test -z "$ARVBOX_DATA" ; then
- ARVBOX_DATA="$ARVBOX_BASE/$ARVBOX_CONTAINER"
-fi
-
-if test -z "$ARVADOS_ROOT" ; then
- ARVADOS_ROOT="$ARVBOX_DATA/arvados"
-fi
-
-if test -z "$ARVADOS_DEV_ROOT" ; then
- ARVADOS_DEV_ROOT="$ARVBOX_DATA/arvados-dev"
-fi
-
-if test -z "$SSO_ROOT" ; then
- SSO_ROOT="$ARVBOX_DATA/sso-devise-omniauth-provider"
-fi
-
-PG_DATA="$ARVBOX_DATA/postgres"
-VAR_DATA="$ARVBOX_DATA/var"
-PASSENGER="$ARVBOX_DATA/passenger"
-GEMS="$ARVBOX_DATA/gems"
-
-getip() {
- docker inspect $ARVBOX_CONTAINER | grep \"IPAddress\" | head -n1 | tr -d ' ":,\n' | cut -c10-
-}
-
-updateconf() {
- if test -f ~/.config/arvados/$ARVBOX_CONTAINER.conf ; then
- sed "s/ARVADOS_API_HOST=.*/ARVADOS_API_HOST=$(getip):8000/" <$HOME/.config/arvados/$ARVBOX_CONTAINER.conf >$HOME/.config/arvados/$ARVBOX_CONTAINER.conf.tmp
- mv ~/.config/arvados/$ARVBOX_CONTAINER.conf.tmp ~/.config/arvados/$ARVBOX_CONTAINER.conf
- else
- mkdir -p $HOME/.config/arvados
- cat >$HOME/.config/arvados/$ARVBOX_CONTAINER.conf <<EOF
-ARVADOS_API_HOST=$(getip):8000
-ARVADOS_API_TOKEN=
-ARVADOS_API_HOST_INSECURE=true
-EOF
- fi
-}
-
-wait_for_arvbox() {
- FF=/tmp/arvbox-fifo-$$
- mkfifo $FF
- docker logs -f $ARVBOX_CONTAINER > $FF &
- LOGPID=$!
- while read line ; do
- echo $line
- if echo $line | grep "Workbench is running at" >/dev/null ; then
- kill $LOGPID
- fi
- done < $FF
- rm $FF
- echo
- if test -n "$localip" ; then
- echo "export ARVADOS_API_HOST=$localip:8000"
- else
- echo "export ARVADOS_API_HOST=$(getip):8000"
- fi
-}
-
-run() {
- if docker ps -a | grep -E "$ARVBOX_CONTAINER$" -q ; then
- echo "Container $ARVBOX_CONTAINER is already running, use stop, restart or reboot"
- exit 0
- fi
-
- if echo "$1" | grep '^public' ; then
- if test -n "$ARVBOX_PUBLISH_IP" ; then
- localip=$ARVBOX_PUBLISH_IP
- else
- defaultdev=$(/sbin/ip route|awk '/default/ { print $5 }')
- localip=$(ip addr show $defaultdev | grep 'inet ' | sed 's/ *inet \(.*\)\/.*/\1/')
- fi
- iptemp=$(tempfile)
- echo $localip > $iptemp
- chmod og+r $iptemp
- PUBLIC="--volume=$iptemp:/var/run/localip_override
- --publish=80:80
- --publish=8000:8000
- --publish=8900:8900
- --publish=9001:9001
- --publish=9002:9002
- --publish=25100:25100
- --publish=25107:25107
- --publish=25108:25108
- --publish=8001:8001"
- else
- PUBLIC=""
- fi
-
- if echo "$1" | grep 'demo$' ; then
- if test -d "$ARVBOX_DATA" ; then
- echo "It looks like you already have a development container named $ARVBOX_CONTAINER."
- echo "Set ARVBOX_CONTAINER to set a different name for your demo container"
- exit 1
- fi
-
- if ! (docker ps -a | grep -E "$ARVBOX_CONTAINER-data$" -q) ; then
- docker create -v /var/lib/postgresql -v /var/lib/arvados --name $ARVBOX_CONTAINER-data arvados/arvbox-demo /bin/true
- fi
-
- docker run \
- --detach \
- --name=$ARVBOX_CONTAINER \
- --privileged \
- --volumes-from $ARVBOX_CONTAINER-data \
- $PUBLIC \
- arvados/arvbox-demo
- updateconf
- wait_for_arvbox
- else
- mkdir -p "$PG_DATA" "$VAR_DATA" "$PASSENGER" "$GEMS"
-
- if ! test -d "$ARVADOS_ROOT" ; then
- git clone https://github.com/curoverse/arvados.git "$ARVADOS_ROOT"
- fi
- if ! test -d "$SSO_ROOT" ; then
- git clone https://github.com/curoverse/sso-devise-omniauth-provider.git "$SSO_ROOT"
- fi
-
- if test "$1" = test ; then
- shift
-
- if ! test -d "$ARVADOS_DEV_ROOT" ; then
- git clone https://github.com/curoverse/arvados-dev.git "$ARVADOS_DEV_ROOT"
- fi
-
- mkdir -p $VAR_DATA/test
-
- docker run \
- --detach \
- --name=$ARVBOX_CONTAINER \
- --privileged \
- "--volume=$ARVADOS_ROOT:/usr/src/arvados:rw" \
- "--volume=$ARVADOS_DEV_ROOT:/usr/src/arvados-dev:rw" \
- "--volume=$SSO_ROOT:/usr/src/sso:rw" \
- "--volume=$PG_DATA:/var/lib/postgresql:rw" \
- "--volume=$VAR_DATA:/var/lib/arvados:rw" \
- "--volume=$PASSENGER:/var/lib/passenger:rw" \
- "--volume=$GEMS:/var/lib/gems:rw" \
- arvados/arvbox-dev \
- /usr/local/bin/runsvinit -svdir=/etc/test-service
-
- docker exec -ti \
- $ARVBOX_CONTAINER \
- /usr/local/lib/arvbox/runsu.sh \
- /usr/local/lib/arvbox/waitforpostgres.sh
-
- docker exec -ti \
- $ARVBOX_CONTAINER \
- /usr/local/lib/arvbox/runsu.sh \
- /var/lib/arvbox/service/sso/run-service --only-setup
-
- docker exec -ti \
- $ARVBOX_CONTAINER \
- /usr/local/lib/arvbox/runsu.sh \
- /var/lib/arvbox/service/api/run-service --only-setup
-
- docker exec -ti \
- $ARVBOX_CONTAINER \
- /usr/local/lib/arvbox/runsu.sh \
- /usr/src/arvados-dev/jenkins/run-tests.sh \
- --temp /var/lib/arvados/test \
- WORKSPACE=/usr/src/arvados \
- GEM_HOME=/var/lib/gems \
- "$@"
- elif echo "$1" | grep 'dev$' ; then
- docker run \
- --detach \
- --name=$ARVBOX_CONTAINER \
- --privileged \
- "--volume=$ARVADOS_ROOT:/usr/src/arvados:rw" \
- "--volume=$SSO_ROOT:/usr/src/sso:rw" \
- "--volume=$PG_DATA:/var/lib/postgresql:rw" \
- "--volume=$VAR_DATA:/var/lib/arvados:rw" \
- "--volume=$PASSENGER:/var/lib/passenger:rw" \
- "--volume=$GEMS:/var/lib/gems:rw" \
- $PUBLIC \
- arvados/arvbox-dev
- updateconf
- wait_for_arvbox
- echo "The Arvados source code is checked out at: $ARVADOS_ROOT"
- else
- echo "Unknown configuration '$1'"
- fi
- fi
-}
-
-stop() {
- if docker ps -a --filter "status=running" | grep -E "$ARVBOX_CONTAINER$" -q ; then
- docker stop $ARVBOX_CONTAINER
- fi
-
- VOLUMES=--volumes=true
- if docker ps -a --filter "status=created" | grep -E "$ARVBOX_CONTAINER$" -q ; then
- docker rm $VOLUMES $ARVBOX_CONTAINER
- fi
- if docker ps -a --filter "status=exited" | grep -E "$ARVBOX_CONTAINER$" -q ; then
- docker rm $VOLUMES $ARVBOX_CONTAINER
- fi
-}
-
-build() {
- if ! test -f "$ARVBOX_DOCKER/Dockerfile.base" ; then
- echo "Could not find Dockerfile ($ARVBOX_DOCKER/Dockerfile.base)"
- exit 1
- fi
- docker build -t arvados/arvbox-base -f "$ARVBOX_DOCKER/Dockerfile.base" "$ARVBOX_DOCKER"
- if test "$1" = localdemo -o "$1" = publicdemo ; then
- docker build -t arvados/arvbox-demo -f "$ARVBOX_DOCKER/Dockerfile.demo" "$ARVBOX_DOCKER"
- else
- docker build -t arvados/arvbox-dev -f "$ARVBOX_DOCKER/Dockerfile.dev" "$ARVBOX_DOCKER"
- fi
-}
-
-check() {
- case "$1" in
- localdemo|publicdemo|dev|publicdev|test)
- true
- ;;
- *)
- echo "Argument to $subcmd must be one of localdemo, publicdemo, dev, publicdev, test"
- exit 1
- ;;
- esac
-}
-
-subcmd="$1"
-if test -n "$subcmd" ; then
- shift
-fi
-case "$subcmd" in
- build)
- check $@
- build $@
- ;;
-
- start|run)
- check $@
- run $@
- ;;
-
- sh*)
- docker exec -ti $ARVBOX_CONTAINER /usr/bin/env TERM=$TERM GEM_HOME=/var/lib/gems /bin/bash
- ;;
-
- stop)
- stop
- ;;
-
- restart)
- check $@
- stop
- run $@
- ;;
-
- reboot)
- check $@
- stop
- build $@
- run $@
- ;;
-
- ip|open)
- if test "$subcmd" = 'ip' ; then
- echo $(getip)
- else
- xdg-open http://$(getip)
- fi
- ;;
-
- status)
- echo "Selected: $ARVBOX_CONTAINER"
- if docker ps -a --filter "status=running" | grep -E "$ARVBOX_CONTAINER$" -q ; then
- echo "Status: running"
- echo "IP: $(getip)"
- else
- echo "Status: not running"
- fi
- if test -d "$ARVBOX_DATA" ; then
- echo "Data: $ARVBOX_DATA"
- elif docker ps -a | grep -E "$ARVBOX_CONTAINER-data$" -q ; then
- echo "Data: $ARVBOX_CONTAINER-data"
- else
- echo "Data: none"
- fi
- ;;
-
- reset|destroy)
- stop
- if test -d "$ARVBOX_DATA" ; then
- if test "$subcmd" = destroy ; then
- if test "$1" != -f ; then
- echo "WARNING! This will delete your entire arvbox ($ARVBOX_DATA)."
- echo "Use destroy -f if you really mean it."
- exit 1
- fi
- set -x
- rm -rf "$ARVBOX_DATA"
- else
- if test "$1" != -f ; then
- echo "WARNING! This will delete your arvbox data ($ARVBOX_DATA)."
- echo "Code and downloaded packages will be preserved."
- echo "Use reset -f if you really mean it."
- exit 1
- fi
- set -x
- rm -rf "$ARVBOX_DATA/postgres"
- rm -rf "$ARVBOX_DATA/var"
- fi
- else
- if test "$1" != -f ; then
- echo "WARNING! This will delete your data container $ARVBOX_CONTAINER-data. Use -f if you really mean it."
- exit 1
- fi
- set -x
- docker rm "$ARVBOX_CONTAINER-data"
- fi
- ;;
-
- log)
- if test -n "$1" ; then
- docker exec -ti $ARVBOX_CONTAINER /usr/bin/env TERM=$TERM less --follow-name +GF "/etc/service/$1/log/main/current"
- else
- docker exec -ti $ARVBOX_CONTAINER /usr/bin/env TERM=$TERM tail $(docker exec -ti $ARVBOX_CONTAINER find -L /etc -path '/etc/service/*/log/main/current' -printf " %p")
- fi
- ;;
-
- sv)
- if test -n "$1" ; then
- docker exec -ti $ARVBOX_CONTAINER sv "$1" "$2"
- else
- echo "Usage: $0 $subcmd <service>"
- echo "Available services:"
- docker exec -ti $ARVBOX_CONTAINER ls /etc/service
- fi
- ;;
-
- clone)
- if test -n "$2" ; then
- cp -r "$ARVBOX_BASE/$1" "$ARVBOX_BASE/$2"
- echo "Created new arvbox $2"
- echo "export ARVBOX_CONTAINER=$2"
- else
- echo "clone <from> <to> clone an arvbox"
- echo "available arvboxes: $(ls $ARVBOX_BASE)"
- fi
- ;;
-
- *)
- echo "Arvados-in-a-box"
- echo
- echo "$(basename $0) (build|start|run|open|shell|ip|stop|reboot|reset|destroy|log|svrestart)"
- echo
- echo "build <config> build arvbox Docker image"
- echo "start|run <config> start $ARVBOX_CONTAINER container"
- echo "open open arvbox workbench in a web browser"
- echo "shell enter arvbox shell"
- echo "ip print arvbox ip address"
- echo "status print some information about current arvbox"
- echo "stop stop arvbox container"
- echo "restart <config> stop, then run again"
- echo "reboot <config> stop, build arvbox Docker image, run"
- echo "reset delete arvbox arvados data (be careful!)"
- echo "destroy delete all arvbox code and data (be careful!)"
- echo "log <service> tail log of specified service"
- echo "sv <start|stop|restart> <service> change state of service inside arvbox"
- echo "clone <from> <to> clone an arvbox"
- ;;
-esac
diff --git a/arvbox/lib/arvbox/docker/Dockerfile.base b/arvbox/lib/arvbox/docker/Dockerfile.base
deleted file mode 100644
index 280ac68..0000000
--- a/arvbox/lib/arvbox/docker/Dockerfile.base
+++ /dev/null
@@ -1,42 +0,0 @@
-FROM debian:8
-
-RUN apt-get update && \
- DEBIAN_FRONTEND=noninteractive apt-get -yq install \
- postgresql-9.4 git gcc golang-go runit \
- ruby rake bundler curl libpq-dev \
- libcurl4-openssl-dev libssl-dev zlib1g-dev libpcre3-dev \
- openssh-server python-setuptools netcat-traditional \
- libpython-dev fuse libfuse-dev python-pip python-yaml \
- pkg-config libattr1-dev python-llfuse python-pycurl \
- libwww-perl libio-socket-ssl-perl libcrypt-ssleay-perl \
- libjson-perl nginx gitolite3 lsof python-epydoc graphviz \
- apt-transport-https ca-certificates slurm-wlm
-
-VOLUME /var/lib/docker
-VOLUME /var/log/nginx
-VOLUME /etc/ssl/private
-
-RUN apt-key adv --keyserver hkp://pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D || \
- apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
-
-RUN mkdir -p /etc/apt/sources.list.d && \
- echo deb https://apt.dockerproject.org/repo debian-jessie main > /etc/apt/sources.list.d/docker.list && \
- apt-get update && \
- DEBIAN_FRONTEND=noninteractive apt-get -yq install docker-engine=1.9.1-0~jessie
-
-RUN rm -rf /var/lib/postgresql && mkdir -p /var/lib/postgresql
-
-RUN cd /root && \
- GOPATH=$PWD go get github.com/curoverse/runsvinit && \
- install bin/runsvinit /usr/local/bin
-
-ADD fuse.conf /etc/
-
-ADD crunch-setup.sh gitolite.rc \
- keep-setup.sh common.sh createusers.sh \
- logger runsu.sh waitforpostgres.sh \
- application_yml_override.py \
- /usr/local/lib/arvbox/
-
-# Start the supervisor.
-CMD ["/usr/local/bin/runsvinit"]
diff --git a/arvbox/lib/arvbox/docker/Dockerfile.demo b/arvbox/lib/arvbox/docker/Dockerfile.demo
deleted file mode 100644
index 1f13415..0000000
--- a/arvbox/lib/arvbox/docker/Dockerfile.demo
+++ /dev/null
@@ -1,17 +0,0 @@
-FROM arvados/arvbox-base
-
-RUN cd /usr/src && \
- git clone https://github.com/curoverse/arvados.git && \
- git clone https://github.com/curoverse/sso-devise-omniauth-provider.git sso
-
-ADD service/ /var/lib/arvbox/service
-RUN rmdir /etc/service && ln -sf /var/lib/arvbox/service /etc
-
-RUN chown -R 1000:1000 /usr/src && /usr/local/lib/arvbox/createusers.sh
-
-RUN sudo -u arvbox /var/lib/arvbox/service/sso/run-service --only-deps
-RUN sudo -u arvbox /var/lib/arvbox/service/api/run-service --only-deps
-RUN sudo -u arvbox /var/lib/arvbox/service/workbench/run-service --only-deps
-RUN sudo -u arvbox /var/lib/arvbox/service/doc/run-service --only-deps
-RUN sudo -u arvbox /var/lib/arvbox/service/vm/run-service --only-deps
-RUN sudo -u arvbox /var/lib/arvbox/service/sdk/run-service
diff --git a/arvbox/lib/arvbox/docker/Dockerfile.dev b/arvbox/lib/arvbox/docker/Dockerfile.dev
deleted file mode 100644
index 051c274..0000000
--- a/arvbox/lib/arvbox/docker/Dockerfile.dev
+++ /dev/null
@@ -1,16 +0,0 @@
-FROM arvados/arvbox-base
-
-RUN apt-get update && \
- DEBIAN_FRONTEND=noninteractive apt-get -yq install \
- python-virtualenv python3-virtualenv linkchecker xvfb iceweasel
-
-RUN set -e && \
- PJS=phantomjs-1.9.7-linux-x86_64 && \
- curl -L -o/tmp/$PJS.tar.bz2 https://bitbucket.org/ariya/phantomjs/downloads/$PJS.tar.bz2 && \
- tar -C /usr/local -xjf /tmp/$PJS.tar.bz2 && \
- ln -s ../$PJS/bin/phantomjs /usr/local/bin/
-
-ADD service/ /var/lib/arvbox/service
-RUN rmdir /etc/service && ln -sf /var/lib/arvbox/service /etc
-
-RUN mkdir /etc/test-service && ln -sf /var/lib/arvbox/service/postgres /etc/test-service
diff --git a/arvbox/lib/arvbox/docker/application_yml_override.py b/arvbox/lib/arvbox/docker/application_yml_override.py
deleted file mode 100755
index 98a8e48..0000000
--- a/arvbox/lib/arvbox/docker/application_yml_override.py
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/usr/bin/env python
-
-import yaml
-
-try:
- with open("application.yml.override") as f:
- b = yaml.load(f)
-except IOError:
- exit()
-
-with open("application.yml") as f:
- a = yaml.load(f)
-
-def recursiveMerge(a, b):
- if isinstance(a, dict) and isinstance(b, dict):
- for k in b:
- print k
- a[k] = recursiveMerge(a.get(k), b[k])
- return a
- else:
- return b
-
-with open("application.yml", "w") as f:
- yaml.dump(recursiveMerge(a, b), f)
diff --git a/arvbox/lib/arvbox/docker/common.sh b/arvbox/lib/arvbox/docker/common.sh
deleted file mode 100644
index 4c2de47..0000000
--- a/arvbox/lib/arvbox/docker/common.sh
+++ /dev/null
@@ -1,62 +0,0 @@
-
-if test -s /var/run/localip_override ; then
- localip=$(cat /var/run/localip_override)
-else
- defaultdev=$(/sbin/ip route|awk '/default/ { print $5 }')
- localip=$(ip addr show $defaultdev | grep 'inet ' | sed 's/ *inet \(.*\)\/.*/\1/')
-fi
-
-export GEM_HOME=/var/lib/gems
-export GEM_PATH=/var/lib/gems
-
-declare -A services
-services=(
- [workbench]=80
- [api]=8000
- [sso]=8900
- [arv-git-httpd]=9001
- [keep-web]=9002
- [keepproxy]=25100
- [keepstore0]=25107
- [keepstore1]=25108
- [ssh]=22
- [doc]=8001
-)
-
-if test "$(id arvbox -u 2>/dev/null)" = 0 ; then
- PGUSER=postgres
- PGGROUP=postgres
-else
- PGUSER=arvbox
- PGGROUP=arvbox
-fi
-
-run_bundler() {
- if test -f Gemfile.lock ; then
- frozen=--frozen
- else
- frozen=""
- fi
- if ! flock /var/lib/arvados/gems.lock bundle install --path $GEM_HOME --local --no-deployment $frozen "$@" ; then
- flock /var/lib/arvados/gems.lock bundle install --path $GEM_HOME --no-deployment $frozen "$@"
- fi
-}
-
-pip_install() {
- pushd /var/lib/arvados/pip
- for p in $(ls http*.tar.gz) ; do
- if test -f $p ; then
- ln -sf $p $(echo $p | sed 's/.*%2F\(.*\)/\1/')
- fi
- done
- for p in $(ls http*.whl) ; do
- if test -f $p ; then
- ln -sf $p $(echo $p | sed 's/.*%2F\(.*\)/\1/')
- fi
- done
- popd
-
- if ! pip install --no-index --find-links /var/lib/arvados/pip $1 ; then
- pip install $1
- fi
-}
diff --git a/arvbox/lib/arvbox/docker/createusers.sh b/arvbox/lib/arvbox/docker/createusers.sh
deleted file mode 100755
index b77c9c2..0000000
--- a/arvbox/lib/arvbox/docker/createusers.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/bash
-
-set -e -o pipefail
-
-if ! grep "^arvbox:" /etc/passwd >/dev/null 2>/dev/null ; then
- HOSTUID=$(ls -nd /usr/src/arvados | sed 's/ */ /' | cut -d' ' -f4)
- HOSTGID=$(ls -nd /usr/src/arvados | sed 's/ */ /' | cut -d' ' -f5)
- FUSEGID=$(ls -nd /dev/fuse | sed 's/ */ /' | cut -d' ' -f5)
-
- mkdir -p /var/lib/arvados/git /var/lib/gems /var/lib/passenger
-
- groupadd --gid $HOSTGID --non-unique arvbox
- groupadd --gid $FUSEGID --non-unique fuse
- groupadd --gid $HOSTGID --non-unique git
- useradd --home-dir /var/lib/arvados \
- --uid $HOSTUID --gid $HOSTGID \
- --non-unique \
- --groups docker,fuse \
- arvbox
- useradd --home-dir /var/lib/arvados/git --uid $HOSTUID --gid $HOSTGID --non-unique git
- useradd --groups docker,fuse crunch
-
- chown arvbox:arvbox -R /usr/local /var/lib/arvados /var/lib/gems \
- /var/lib/passenger /var/lib/postgresql \
- /var/lib/nginx /var/log/nginx /etc/ssl/private
-
- mkdir -p /var/lib/gems/ruby/2.1.0
- chown arvbox:arvbox -R /var/lib/gems/ruby/2.1.0
-
- mkdir -p /tmp/crunch0 /tmp/crunch1
- chown crunch:crunch -R /tmp/crunch0 /tmp/crunch1
-
- echo "arvbox ALL=(crunch) NOPASSWD: ALL" >> /etc/sudoers
-fi
diff --git a/arvbox/lib/arvbox/docker/crunch-setup.sh b/arvbox/lib/arvbox/docker/crunch-setup.sh
deleted file mode 100755
index 178fec1..0000000
--- a/arvbox/lib/arvbox/docker/crunch-setup.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-
-exec 2>&1
-set -eux -o pipefail
-
-. /usr/local/lib/arvbox/common.sh
-
-mkdir -p /var/lib/arvados/gostuff
-cd /var/lib/arvados/gostuff
-
-export GOPATH=$PWD
-mkdir -p "$GOPATH/src/git.curoverse.com"
-ln -sfn "/usr/src/arvados" "$GOPATH/src/git.curoverse.com/arvados.git"
-flock /var/lib/arvados/gostuff.lock go get -t "git.curoverse.com/arvados.git/services/crunchstat"
-install bin/crunchstat /usr/local/bin
-
-export ARVADOS_API_HOST=$localip:${services[api]}
-export ARVADOS_API_HOST_INSECURE=1
-export ARVADOS_API_TOKEN=$(cat /usr/src/arvados/services/api/superuser_token)
-export CRUNCH_JOB_BIN=/usr/src/arvados/sdk/cli/bin/crunch-job
-export PERLLIB=/usr/src/arvados/sdk/perl/lib
-export CRUNCH_TMP=/tmp/$1
-export CRUNCH_DISPATCH_LOCKFILE=/var/lock/$1-dispatch
-export CRUNCH_JOB_DOCKER_BIN=docker
-export HOME=/tmp/$1
-
-cd /usr/src/arvados/services/api
-exec bundle exec ./script/crunch-dispatch.rb development
diff --git a/arvbox/lib/arvbox/docker/fuse.conf b/arvbox/lib/arvbox/docker/fuse.conf
deleted file mode 100644
index a439ab8..0000000
--- a/arvbox/lib/arvbox/docker/fuse.conf
+++ /dev/null
@@ -1 +0,0 @@
-user_allow_other
diff --git a/arvbox/lib/arvbox/docker/gitolite.rc b/arvbox/lib/arvbox/docker/gitolite.rc
deleted file mode 100644
index 03c4b29..0000000
--- a/arvbox/lib/arvbox/docker/gitolite.rc
+++ /dev/null
@@ -1,213 +0,0 @@
-# This is based on the default Gitolite configuration file with the following
-# changes applied as described here:
-# http://doc.arvados.org/install/install-arv-git-httpd.html
-
-# configuration variables for gitolite
-
-# This file is in perl syntax. But you do NOT need to know perl to edit it --
-# just mind the commas, use single quotes unless you know what you're doing,
-# and make sure the brackets and braces stay matched up!
-
-# (Tip: perl allows a comma after the last item in a list also!)
-
-# HELP for commands can be had by running the command with "-h".
-
-# HELP for all the other FEATURES can be found in the documentation (look for
-# "list of non-core programs shipped with gitolite" in the master index) or
-# directly in the corresponding source file.
-
-my $repo_aliases;
-my $aliases_src = "$ENV{HOME}/.gitolite/arvadosaliases.pl";
-if ($ENV{HOME} && (-e $aliases_src)) {
- $repo_aliases = do $aliases_src;
-}
-$repo_aliases ||= {};
-
-%RC = (
-
- REPO_ALIASES => $repo_aliases,
-
- # ------------------------------------------------------------------
-
- # default umask gives you perms of '0700'; see the rc file docs for
- # how/why you might change this
- UMASK => 0022,
-
- # look for "git-config" in the documentation
- GIT_CONFIG_KEYS => '',
-
- # comment out if you don't need all the extra detail in the logfile
- LOG_EXTRA => 1,
- # logging options
- # 1. leave this section as is for 'normal' gitolite logging (default)
- # 2. uncomment this line to log ONLY to syslog:
- # LOG_DEST => 'syslog',
- # 3. uncomment this line to log to syslog and the normal gitolite log:
- # LOG_DEST => 'syslog,normal',
- # 4. prefixing "repo-log," to any of the above will **also** log just the
- # update records to "gl-log" in the bare repo directory:
- # LOG_DEST => 'repo-log,normal',
- # LOG_DEST => 'repo-log,syslog',
- # LOG_DEST => 'repo-log,syslog,normal',
-
- # roles. add more roles (like MANAGER, TESTER, ...) here.
- # WARNING: if you make changes to this hash, you MUST run 'gitolite
- # compile' afterward, and possibly also 'gitolite trigger POST_COMPILE'
- ROLES => {
- READERS => 1,
- WRITERS => 1,
- },
-
- # enable caching (currently only Redis). PLEASE RTFM BEFORE USING!!!
- # CACHE => 'Redis',
-
- # ------------------------------------------------------------------
-
- # rc variables used by various features
-
- # the 'info' command prints this as additional info, if it is set
- # SITE_INFO => 'Please see http://blahblah/gitolite for more help',
-
- # the CpuTime feature uses these
- # display user, system, and elapsed times to user after each git operation
- # DISPLAY_CPU_TIME => 1,
- # display a warning if total CPU times (u, s, cu, cs) crosses this limit
- # CPU_TIME_WARN_LIMIT => 0.1,
-
- # the Mirroring feature needs this
- # HOSTNAME => "foo",
-
- # TTL for redis cache; PLEASE SEE DOCUMENTATION BEFORE UNCOMMENTING!
- # CACHE_TTL => 600,
-
- # ------------------------------------------------------------------
-
- # suggested locations for site-local gitolite code (see cust.html)
-
- # this one is managed directly on the server
- # LOCAL_CODE => "$ENV{HOME}/local",
-
- # or you can use this, which lets you put everything in a subdirectory
- # called "local" in your gitolite-admin repo. For a SECURITY WARNING
- # on this, see http://gitolite.com/gitolite/non-core.html#pushcode
- # LOCAL_CODE => "$rc{GL_ADMIN_BASE}/local",
-
- # ------------------------------------------------------------------
-
- # List of commands and features to enable
-
- ENABLE => [
-
- # COMMANDS
-
- # These are the commands enabled by default
- 'help',
- 'desc',
- 'info',
- 'perms',
- 'writable',
-
- # Uncomment or add new commands here.
- # 'create',
- # 'fork',
- # 'mirror',
- # 'readme',
- # 'sskm',
- # 'D',
-
- # These FEATURES are enabled by default.
-
- # essential (unless you're using smart-http mode)
- 'ssh-authkeys',
-
- # creates git-config enties from gitolite.conf file entries like 'config foo.bar = baz'
- 'git-config',
-
- # creates git-daemon-export-ok files; if you don't use git-daemon, comment this out
- 'daemon',
-
- # creates projects.list file; if you don't use gitweb, comment this out
- 'gitweb',
-
- # These FEATURES are disabled by default; uncomment to enable. If you
- # need to add new ones, ask on the mailing list :-)
-
- # user-visible behaviour
-
- # prevent wild repos auto-create on fetch/clone
- # 'no-create-on-read',
- # no auto-create at all (don't forget to enable the 'create' command!)
- # 'no-auto-create',
-
- # access a repo by another (possibly legacy) name
- 'Alias',
-
- # give some users direct shell access. See documentation in
- # sts.html for details on the following two choices.
- # "Shell $ENV{HOME}/.gitolite.shell-users",
- # 'Shell alice bob',
-
- # set default roles from lines like 'option default.roles-1 = ...', etc.
- # 'set-default-roles',
-
- # show more detailed messages on deny
- # 'expand-deny-messages',
-
- # show a message of the day
- # 'Motd',
-
- # system admin stuff
-
- # enable mirroring (don't forget to set the HOSTNAME too!)
- # 'Mirroring',
-
- # allow people to submit pub files with more than one key in them
- # 'ssh-authkeys-split',
-
- # selective read control hack
- # 'partial-copy',
-
- # manage local, gitolite-controlled, copies of read-only upstream repos
- # 'upstream',
-
- # updates 'description' file instead of 'gitweb.description' config item
- # 'cgit',
-
- # allow repo-specific hooks to be added
- # 'repo-specific-hooks',
-
- # performance, logging, monitoring...
-
- # be nice
- # 'renice 10',
-
- # log CPU times (user, system, cumulative user, cumulative system)
- # 'CpuTime',
-
- # syntactic_sugar for gitolite.conf and included files
-
- # allow backslash-escaped continuation lines in gitolite.conf
- # 'continuation-lines',
-
- # create implicit user groups from directory names in keydir/
- # 'keysubdirs-as-groups',
-
- # allow simple line-oriented macros
- # 'macros',
-
- # Kindergarten mode
-
- # disallow various things that sensible people shouldn't be doing anyway
- # 'Kindergarten',
- ],
-
-);
-
-# ------------------------------------------------------------------------------
-# per perl rules, this should be the last line in such a file:
-1;
-
-# Local variables:
-# mode: perl
-# End:
-# vim: set syn=perl:
diff --git a/arvbox/lib/arvbox/docker/keep-setup.sh b/arvbox/lib/arvbox/docker/keep-setup.sh
deleted file mode 100755
index b66463f..0000000
--- a/arvbox/lib/arvbox/docker/keep-setup.sh
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/bin/bash
-
-exec 2>&1
-sleep 2
-set -eux -o pipefail
-
-. /usr/local/lib/arvbox/common.sh
-
-mkdir -p /var/lib/arvados/gostuff
-cd /var/lib/arvados/gostuff
-
-export GOPATH=$PWD
-mkdir -p "$GOPATH/src/git.curoverse.com"
-ln -sfn "/usr/src/arvados" "$GOPATH/src/git.curoverse.com/arvados.git"
-flock /var/lib/arvados/gostuff.lock go get -t "git.curoverse.com/arvados.git/services/keepstore"
-install bin/keepstore /usr/local/bin
-
-mkdir -p /var/lib/arvados/$1
-
-export ARVADOS_API_HOST=$localip:${services[api]}
-export ARVADOS_API_HOST_INSECURE=1
-export ARVADOS_API_TOKEN=$(cat /var/lib/arvados/superuser_token)
-
-set +e
-read -rd $'\000' keepservice <<EOF
-{
- "service_host":"$localip",
- "service_port":$2,
- "service_ssl_flag":false,
- "service_type":"disk"
-}
-EOF
-set -e
-
-if test -s /var/lib/arvados/$1-uuid ; then
- keep_uuid=$(cat /var/lib/arvados/$1-uuid)
- arv keep_service update --uuid $keep_uuid --keep-service "$keepservice"
-else
- UUID=$(arv --format=uuid keep_service create --keep-service "$keepservice")
- echo $UUID > /var/lib/arvados/$1-uuid
-fi
-
-set +e
-killall -HUP keepproxy
-
-exec /usr/local/bin/keepstore \
- -listen=:$2 \
- -enforce-permissions=true \
- -blob-signing-key-file=/var/lib/arvados/blob_signing_key \
- -max-buffers=20 \
- -volume=/var/lib/arvados/$1
diff --git a/arvbox/lib/arvbox/docker/logger b/arvbox/lib/arvbox/docker/logger
deleted file mode 100755
index a79a518..0000000
--- a/arvbox/lib/arvbox/docker/logger
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-exec svlogd -tt ./main
diff --git a/arvbox/lib/arvbox/docker/runit-docker/.gitignore b/arvbox/lib/arvbox/docker/runit-docker/.gitignore
deleted file mode 100644
index bbf313b..0000000
--- a/arvbox/lib/arvbox/docker/runit-docker/.gitignore
+++ /dev/null
@@ -1,32 +0,0 @@
-# Object files
-*.o
-*.ko
-*.obj
-*.elf
-
-# Precompiled Headers
-*.gch
-*.pch
-
-# Libraries
-*.lib
-*.a
-*.la
-*.lo
-
-# Shared objects (inc. Windows DLLs)
-*.dll
-*.so
-*.so.*
-*.dylib
-
-# Executables
-*.exe
-*.out
-*.app
-*.i*86
-*.x86_64
-*.hex
-
-# Debug files
-*.dSYM/
diff --git a/arvbox/lib/arvbox/docker/runit-docker/LICENSE b/arvbox/lib/arvbox/docker/runit-docker/LICENSE
deleted file mode 100644
index d158667..0000000
--- a/arvbox/lib/arvbox/docker/runit-docker/LICENSE
+++ /dev/null
@@ -1,28 +0,0 @@
-Copyright (c) 2015, Kosma Moczek
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
-* Neither the name of runit-docker nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
diff --git a/arvbox/lib/arvbox/docker/runit-docker/Makefile b/arvbox/lib/arvbox/docker/runit-docker/Makefile
deleted file mode 100644
index 9a28963..0000000
--- a/arvbox/lib/arvbox/docker/runit-docker/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-CFLAGS=-std=c99 -Wall -O2 -fPIC -D_POSIX_SOURCE -D_GNU_SOURCE
-LDLIBS=-ldl
-
-PROGNAME=runit-docker
-
-all: $(PROGNAME).so
-
-%.so: %.c
- gcc -shared $(CFLAGS) $(LDLIBS) -o $@ $^
-
-install: runit-docker.so
- mkdir -p $(DESTDIR)/sbin
- mkdir -p $(DESTDIR)/lib
- install -m 755 $(PROGNAME) $(DESTDIR)/sbin/
- install -m 755 $(PROGNAME).so $(DESTDIR)/lib/
-
-clean:
- $(RM) $(PROGNAME).so
diff --git a/arvbox/lib/arvbox/docker/runit-docker/README.md b/arvbox/lib/arvbox/docker/runit-docker/README.md
deleted file mode 100644
index 1bcb8cc..0000000
--- a/arvbox/lib/arvbox/docker/runit-docker/README.md
+++ /dev/null
@@ -1,24 +0,0 @@
-# runit-docker
-
-Docker and `runsvdir` don't quite agree on what each signal means, causing
-TONS of frustration when attempting to use `runsvdir` as init under Docker.
-`runit-docker` is a plug'n'play adapter library which does signal translation
-without the overhead and nuisance of running a nanny process.
-
-## Features
-
-* Pressing Ctrl-C does a clean shutdown.
-* `docker stop` does a clean shutdown.
-
-Under the hood, `runit-docker` translates `SIGTERM` and `SIGINT` to `SIGHUP`.
-
-## Usage
-
-* Build with `make`, install with `make install`.
-* Add `CMD ["/sbin/runit-docker"]` to your `Dockerfile`.
-* Run `debian/rules clean build binary` to build a Debian package.
-
-## Author
-
-runit-docker was written by Kosma Moczek <kosma.moczek at pixers.pl> during a single Scrum
-planning meeting. Damn meetings.
diff --git a/arvbox/lib/arvbox/docker/runit-docker/debian/changelog b/arvbox/lib/arvbox/docker/runit-docker/debian/changelog
deleted file mode 100644
index 7d8689f..0000000
--- a/arvbox/lib/arvbox/docker/runit-docker/debian/changelog
+++ /dev/null
@@ -1,12 +0,0 @@
-runit-docker (1.1) unstable; urgency=low
-
- * Simplify logic.
- * Install for SIGINT as well.
-
- -- Kosma Moczek <kosma at kosma.pl> Mon, 11 May 2015 12:23:59 +0000
-
-runit-docker (1.0) unstable; urgency=low
-
- * Initial release
-
- -- Kosma Moczek <kosma at kosma.pl> Mon, 11 May 2015 12:23:59 +0000
diff --git a/arvbox/lib/arvbox/docker/runit-docker/debian/compat b/arvbox/lib/arvbox/docker/runit-docker/debian/compat
deleted file mode 100644
index ec63514..0000000
--- a/arvbox/lib/arvbox/docker/runit-docker/debian/compat
+++ /dev/null
@@ -1 +0,0 @@
-9
diff --git a/arvbox/lib/arvbox/docker/runit-docker/debian/control b/arvbox/lib/arvbox/docker/runit-docker/debian/control
deleted file mode 100644
index 4060915..0000000
--- a/arvbox/lib/arvbox/docker/runit-docker/debian/control
+++ /dev/null
@@ -1,14 +0,0 @@
-Source: runit-docker
-Section: contrib/admin
-Priority: optional
-Maintainer: Kosma Moczek <kosma at kosma.pl>
-Build-Depends: debhelper (>= 9)
-Standards-Version: 3.9.5
-Homepage: https://github.com/kosma/runit-docker
-#Vcs-Git: git://anonscm.debian.org/collab-maint/runit-docker.git
-#Vcs-Browser: http://anonscm.debian.org/?p=collab-maint/runit-docker.git;a=summary
-
-Package: runit-docker
-Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}
-Description: painlessly use runit in Docker containers
diff --git a/arvbox/lib/arvbox/docker/runit-docker/debian/copyright b/arvbox/lib/arvbox/docker/runit-docker/debian/copyright
deleted file mode 100644
index 8679a6a..0000000
--- a/arvbox/lib/arvbox/docker/runit-docker/debian/copyright
+++ /dev/null
@@ -1,31 +0,0 @@
-Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
-Upstream-Name: runit-docker
-Source: https://github.com/kosma/runit-docker
-
-Files: *
-Copyright: 2015 Kosma Moczek <kosma at kosma.pl>
-License: MIT
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- * Neither the name of runit-docker nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/arvbox/lib/arvbox/docker/runit-docker/debian/docs b/arvbox/lib/arvbox/docker/runit-docker/debian/docs
deleted file mode 100644
index b43bf86..0000000
--- a/arvbox/lib/arvbox/docker/runit-docker/debian/docs
+++ /dev/null
@@ -1 +0,0 @@
-README.md
diff --git a/arvbox/lib/arvbox/docker/runit-docker/debian/rules b/arvbox/lib/arvbox/docker/runit-docker/debian/rules
deleted file mode 100755
index ce15cce..0000000
--- a/arvbox/lib/arvbox/docker/runit-docker/debian/rules
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/usr/bin/make -f
-# See debhelper(7) (uncomment to enable)
-# output every command that modifies files on the build system.
-#DH_VERBOSE = 1
-
-# see EXAMPLES in dpkg-buildflags(1) and read /usr/share/dpkg/*
-DPKG_EXPORT_BUILDFLAGS = 1
-include /usr/share/dpkg/default.mk
-
-# see FEATURE AREAS in dpkg-buildflags(1)
-#export DEB_BUILD_MAINT_OPTIONS = hardening=+all
-
-# see ENVIRONMENT in dpkg-buildflags(1)
-# package maintainers to append CFLAGS
-#export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic
-# package maintainers to append LDFLAGS
-#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
-
-
-# main packaging script based on dh7 syntax
-%:
- dh $@
-
-# debmake generated override targets
-# This is example for Cmake (See http://bugs.debian.org/641051 )
-#override_dh_auto_configure:
-# dh_auto_configure -- \
-# -DCMAKE_LIBRARY_PATH=$(DEB_HOST_MULTIARCH)
-
-
-
-
diff --git a/arvbox/lib/arvbox/docker/runit-docker/debian/source/format b/arvbox/lib/arvbox/docker/runit-docker/debian/source/format
deleted file mode 100644
index 163aaf8..0000000
--- a/arvbox/lib/arvbox/docker/runit-docker/debian/source/format
+++ /dev/null
@@ -1 +0,0 @@
-3.0 (quilt)
diff --git a/arvbox/lib/arvbox/docker/runit-docker/runit-docker b/arvbox/lib/arvbox/docker/runit-docker/runit-docker
deleted file mode 100755
index fdbaad5..0000000
--- a/arvbox/lib/arvbox/docker/runit-docker/runit-docker
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-
-export LD_PRELOAD=/lib/runit-docker.so
-exec runsvdir /etc/service
diff --git a/arvbox/lib/arvbox/docker/runit-docker/runit-docker.c b/arvbox/lib/arvbox/docker/runit-docker/runit-docker.c
deleted file mode 100644
index 825a35f..0000000
--- a/arvbox/lib/arvbox/docker/runit-docker/runit-docker.c
+++ /dev/null
@@ -1,32 +0,0 @@
-#include <signal.h>
-#include <dlfcn.h>
-#include <stdlib.h>
-
-
-int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact)
-{
- static int (*real_sigaction)(int signum, const struct sigaction *act, struct sigaction *oldact) = NULL;
-
- // Retrieve the real sigaction we just shadowed.
- if (real_sigaction == NULL) {
- real_sigaction = (void *) dlsym(RTLD_NEXT, "sigaction");
- // Prevent further shadowing in children.
- unsetenv("LD_PRELOAD");
- }
-
- if (signum == SIGTERM) {
- // Skip this handler, it doesn't do what we want.
- return 0;
- }
-
- if (signum == SIGHUP) {
- // Install this handler for others as well.
- real_sigaction(SIGTERM, act, oldact);
- real_sigaction(SIGINT, act, oldact);
- }
-
- // Forward the call the the real sigaction.
- return real_sigaction(signum, act, oldact);
-}
-
-// vim: ts=2 sw=2 et
diff --git a/arvbox/lib/arvbox/docker/runsu.sh b/arvbox/lib/arvbox/docker/runsu.sh
deleted file mode 100755
index 1557d09..0000000
--- a/arvbox/lib/arvbox/docker/runsu.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/sh
-
-HOSTUID=$(ls -nd /usr/src/arvados | sed 's/ */ /' | cut -d' ' -f4)
-HOSTGID=$(ls -nd /usr/src/arvados | sed 's/ */ /' | cut -d' ' -f5)
-
-flock /var/lib/arvados/createusers.lock /usr/local/lib/arvbox/createusers.sh
-
-export HOME=/var/lib/arvados
-
-if test -z "$1" ; then
- exec chpst -u arvbox:arvbox:docker $0-service
-else
- exec chpst -u arvbox:arvbox:docker $@
-fi
diff --git a/arvbox/lib/arvbox/docker/service/api/log/main/.gitstub b/arvbox/lib/arvbox/docker/service/api/log/main/.gitstub
deleted file mode 100644
index e69de29..0000000
diff --git a/arvbox/lib/arvbox/docker/service/api/log/run b/arvbox/lib/arvbox/docker/service/api/log/run
deleted file mode 120000
index d6aef4a..0000000
--- a/arvbox/lib/arvbox/docker/service/api/log/run
+++ /dev/null
@@ -1 +0,0 @@
-/usr/local/lib/arvbox/logger
\ No newline at end of file
diff --git a/arvbox/lib/arvbox/docker/service/api/run b/arvbox/lib/arvbox/docker/service/api/run
deleted file mode 120000
index a388c8b..0000000
--- a/arvbox/lib/arvbox/docker/service/api/run
+++ /dev/null
@@ -1 +0,0 @@
-/usr/local/lib/arvbox/runsu.sh
\ No newline at end of file
diff --git a/arvbox/lib/arvbox/docker/service/api/run-service b/arvbox/lib/arvbox/docker/service/api/run-service
deleted file mode 100755
index 058939c..0000000
--- a/arvbox/lib/arvbox/docker/service/api/run-service
+++ /dev/null
@@ -1,102 +0,0 @@
-#!/bin/bash
-
-exec 2>&1
-set -ex -o pipefail
-
-. /usr/local/lib/arvbox/common.sh
-
-cd /usr/src/arvados/services/api
-export RAILS_ENV=development
-
-run_bundler --without=development
-bundle exec passenger start --runtime-check-only --runtime-dir=/var/lib/passenger
-
-if test "$1" = "--only-deps" ; then
- exit
-fi
-
-set -u
-
-if ! test -s /var/lib/arvados/api_uuid_prefix ; then
- ruby -e 'puts "#{rand(2**64).to_s(36)[0,5]}"' > /var/lib/arvados/api_uuid_prefix
-fi
-uuid_prefix=$(cat /var/lib/arvados/api_uuid_prefix)
-
-if ! test -s /var/lib/arvados/api_secret_token ; then
- ruby -e 'puts rand(2**400).to_s(36)' > /var/lib/arvados/api_secret_token
-fi
-secret_token=$(cat /var/lib/arvados/api_secret_token)
-
-if ! test -s /var/lib/arvados/blob_signing_key ; then
- ruby -e 'puts rand(2**400).to_s(36)' > /var/lib/arvados/blob_signing_key
-fi
-blob_signing_key=$(cat /var/lib/arvados/blob_signing_key)
-
-# self signed key will be created by SSO server script.
-test -s /var/lib/arvados/self-signed.key
-
-sso_app_secret=$(cat /var/lib/arvados/sso_app_secret)
-
-if test -s /var/lib/arvados/vm-uuid ; then
- vm_uuid=$(cat /var/lib/arvados/vm-uuid)
-else
- vm_uuid=$uuid_prefix-2x53u-$(ruby -e 'puts rand(2**400).to_s(36)[0,15]')
- echo $vm_uuid > /var/lib/arvados/vm-uuid
-fi
-
-cat >config/application.yml <<EOF
-development:
- uuid_prefix: $uuid_prefix
- secret_token: $secret_token
- blob_signing_key: $blob_signing_key
- sso_app_secret: $sso_app_secret
- sso_app_id: arvados-server
- sso_provider_url: "https://$localip:${services[sso]}"
- sso_insecure: true
- workbench_address: "http://$localip/"
- git_repo_ssh_base: "git@$localip:"
- git_repo_https_base: "http://$localip:${services[arv-git-httpd]}/"
- new_users_are_active: true
- auto_admin_first_user: true
- auto_setup_new_users: true
- auto_setup_new_users_with_vm_uuid: $vm_uuid
- auto_setup_new_users_with_repository: true
- default_collection_replication: 1
-EOF
-
-(cd config && /usr/local/lib/arvbox/application_yml_override.py)
-
-if ! test -f /var/lib/arvados/api_database_pw ; then
- ruby -e 'puts rand(2**128).to_s(36)' > /var/lib/arvados/api_database_pw
-fi
-database_pw=$(cat /var/lib/arvados/api_database_pw)
-
-if ! (psql postgres -c "\du" | grep "^ arvados ") >/dev/null ; then
- psql postgres -c "create user arvados with password '$database_pw'"
- psql postgres -c "ALTER USER arvados CREATEDB;"
-fi
-
-sed "s/password:.*/password: $database_pw/" <config/database.yml.example >config/database.yml
-
-if ! test -f /var/lib/arvados/api_database_setup ; then
- bundle exec rake db:setup
- touch /var/lib/arvados/api_database_setup
-fi
-
-if ! test -s /var/lib/arvados/superuser_token ; then
- bundle exec ./script/create_superuser_token.rb > /var/lib/arvados/superuser_token
-fi
-
-rm -rf tmp
-
-bundle exec rake db:migrate
-
-set +u
-if test "$1" = "--only-setup" ; then
- exit
-fi
-
-ARVADOS_WEBSOCKETS=1 exec bundle exec passenger start --port=${services[api]} \
- --runtime-dir=/var/lib/passenger \
- --ssl --ssl-certificate=/var/lib/arvados/self-signed.pem \
- --ssl-certificate-key=/var/lib/arvados/self-signed.key
diff --git a/arvbox/lib/arvbox/docker/service/arv-git-httpd/log/main/.gitstub b/arvbox/lib/arvbox/docker/service/arv-git-httpd/log/main/.gitstub
deleted file mode 100644
index e69de29..0000000
diff --git a/arvbox/lib/arvbox/docker/service/arv-git-httpd/log/run b/arvbox/lib/arvbox/docker/service/arv-git-httpd/log/run
deleted file mode 120000
index d6aef4a..0000000
--- a/arvbox/lib/arvbox/docker/service/arv-git-httpd/log/run
+++ /dev/null
@@ -1 +0,0 @@
-/usr/local/lib/arvbox/logger
\ No newline at end of file
diff --git a/arvbox/lib/arvbox/docker/service/arv-git-httpd/run b/arvbox/lib/arvbox/docker/service/arv-git-httpd/run
deleted file mode 120000
index a388c8b..0000000
--- a/arvbox/lib/arvbox/docker/service/arv-git-httpd/run
+++ /dev/null
@@ -1 +0,0 @@
-/usr/local/lib/arvbox/runsu.sh
\ No newline at end of file
diff --git a/arvbox/lib/arvbox/docker/service/arv-git-httpd/run-service b/arvbox/lib/arvbox/docker/service/arv-git-httpd/run-service
deleted file mode 100755
index 854464e..0000000
--- a/arvbox/lib/arvbox/docker/service/arv-git-httpd/run-service
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/bash
-
-exec 2>&1
-set -eux -o pipefail
-
-. /usr/local/lib/arvbox/common.sh
-
-mkdir -p /var/lib/arvados/gostuff
-cd /var/lib/arvados/gostuff
-
-export GOPATH=$PWD
-mkdir -p "$GOPATH/src/git.curoverse.com"
-ln -sfn "/usr/src/arvados" "$GOPATH/src/git.curoverse.com/arvados.git"
-flock /var/lib/arvados/gostuff.lock go get -t "git.curoverse.com/arvados.git/services/arv-git-httpd"
-install bin/arv-git-httpd /usr/local/bin
-
-export ARVADOS_API_HOST=$localip:${services[api]}
-export ARVADOS_API_HOST_INSECURE=1
-export GITOLITE_HTTP_HOME=/var/lib/arvados/git
-export GL_BYPASS_ACCESS_CHECKS=1
-export PATH="$PATH:/var/lib/arvados/git/bin"
-cd ~git
-
-exec /usr/local/bin/arv-git-httpd \
- -address=:${services[arv-git-httpd]} \
- -git-command=/usr/share/gitolite3/gitolite-shell \
- -repo-root=/var/lib/arvados/git/repositories
diff --git a/arvbox/lib/arvbox/docker/service/crunch-dispatch-local/log/main/.gitstub b/arvbox/lib/arvbox/docker/service/crunch-dispatch-local/log/main/.gitstub
deleted file mode 100644
index e69de29..0000000
diff --git a/arvbox/lib/arvbox/docker/service/crunch-dispatch-local/log/run b/arvbox/lib/arvbox/docker/service/crunch-dispatch-local/log/run
deleted file mode 120000
index d6aef4a..0000000
--- a/arvbox/lib/arvbox/docker/service/crunch-dispatch-local/log/run
+++ /dev/null
@@ -1 +0,0 @@
-/usr/local/lib/arvbox/logger
\ No newline at end of file
diff --git a/arvbox/lib/arvbox/docker/service/crunch-dispatch-local/run b/arvbox/lib/arvbox/docker/service/crunch-dispatch-local/run
deleted file mode 120000
index a388c8b..0000000
--- a/arvbox/lib/arvbox/docker/service/crunch-dispatch-local/run
+++ /dev/null
@@ -1 +0,0 @@
-/usr/local/lib/arvbox/runsu.sh
\ No newline at end of file
diff --git a/arvbox/lib/arvbox/docker/service/crunch-dispatch-local/run-service b/arvbox/lib/arvbox/docker/service/crunch-dispatch-local/run-service
deleted file mode 100755
index 211b438..0000000
--- a/arvbox/lib/arvbox/docker/service/crunch-dispatch-local/run-service
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/bash
-
-exec 2>&1
-set -eux -o pipefail
-
-. /usr/local/lib/arvbox/common.sh
-
-mkdir -p /var/lib/arvados/gostuff
-cd /var/lib/arvados/gostuff
-
-export GOPATH=$PWD
-mkdir -p "$GOPATH/src/git.curoverse.com"
-ln -sfn "/usr/src/arvados" "$GOPATH/src/git.curoverse.com/arvados.git"
-flock /var/lib/arvados/gostuff.lock go get -t "git.curoverse.com/arvados.git/services/crunch-run"
-flock /var/lib/arvados/gostuff.lock go get -t "git.curoverse.com/arvados.git/services/crunch-dispatch-local"
-install bin/crunch-run bin/crunch-dispatch-local /usr/local/bin
-
-export ARVADOS_API_HOST=$localip:${services[api]}
-export ARVADOS_API_HOST_INSECURE=1
-export ARVADOS_API_TOKEN=$(cat /var/lib/arvados/superuser_token)
-
-exec /usr/local/bin/crunch-dispatch-local -crunch-run-command=/usr/local/bin/crunch-run
diff --git a/arvbox/lib/arvbox/docker/service/crunch-dispatch0/log/main/.gitstub b/arvbox/lib/arvbox/docker/service/crunch-dispatch0/log/main/.gitstub
deleted file mode 100644
index e69de29..0000000
diff --git a/arvbox/lib/arvbox/docker/service/crunch-dispatch0/log/run b/arvbox/lib/arvbox/docker/service/crunch-dispatch0/log/run
deleted file mode 120000
index d6aef4a..0000000
--- a/arvbox/lib/arvbox/docker/service/crunch-dispatch0/log/run
+++ /dev/null
@@ -1 +0,0 @@
-/usr/local/lib/arvbox/logger
\ No newline at end of file
diff --git a/arvbox/lib/arvbox/docker/service/crunch-dispatch0/run b/arvbox/lib/arvbox/docker/service/crunch-dispatch0/run
deleted file mode 120000
index a388c8b..0000000
--- a/arvbox/lib/arvbox/docker/service/crunch-dispatch0/run
+++ /dev/null
@@ -1 +0,0 @@
-/usr/local/lib/arvbox/runsu.sh
\ No newline at end of file
diff --git a/arvbox/lib/arvbox/docker/service/crunch-dispatch0/run-service b/arvbox/lib/arvbox/docker/service/crunch-dispatch0/run-service
deleted file mode 100755
index fa3a73a..0000000
--- a/arvbox/lib/arvbox/docker/service/crunch-dispatch0/run-service
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-exec /usr/local/lib/arvbox/crunch-setup.sh crunch0
diff --git a/arvbox/lib/arvbox/docker/service/crunch-dispatch1/log/main/.gitstub b/arvbox/lib/arvbox/docker/service/crunch-dispatch1/log/main/.gitstub
deleted file mode 100644
index e69de29..0000000
diff --git a/arvbox/lib/arvbox/docker/service/crunch-dispatch1/log/run b/arvbox/lib/arvbox/docker/service/crunch-dispatch1/log/run
deleted file mode 120000
index d6aef4a..0000000
--- a/arvbox/lib/arvbox/docker/service/crunch-dispatch1/log/run
+++ /dev/null
@@ -1 +0,0 @@
-/usr/local/lib/arvbox/logger
\ No newline at end of file
diff --git a/arvbox/lib/arvbox/docker/service/crunch-dispatch1/run b/arvbox/lib/arvbox/docker/service/crunch-dispatch1/run
deleted file mode 120000
index a388c8b..0000000
--- a/arvbox/lib/arvbox/docker/service/crunch-dispatch1/run
+++ /dev/null
@@ -1 +0,0 @@
-/usr/local/lib/arvbox/runsu.sh
\ No newline at end of file
diff --git a/arvbox/lib/arvbox/docker/service/crunch-dispatch1/run-service b/arvbox/lib/arvbox/docker/service/crunch-dispatch1/run-service
deleted file mode 100755
index 6430e9c..0000000
--- a/arvbox/lib/arvbox/docker/service/crunch-dispatch1/run-service
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-sleep 1
-exec /usr/local/lib/arvbox/crunch-setup.sh crunch1
diff --git a/arvbox/lib/arvbox/docker/service/doc/log/main/.gitstub b/arvbox/lib/arvbox/docker/service/doc/log/main/.gitstub
deleted file mode 100644
index e69de29..0000000
diff --git a/arvbox/lib/arvbox/docker/service/doc/log/run b/arvbox/lib/arvbox/docker/service/doc/log/run
deleted file mode 120000
index d6aef4a..0000000
--- a/arvbox/lib/arvbox/docker/service/doc/log/run
+++ /dev/null
@@ -1 +0,0 @@
-/usr/local/lib/arvbox/logger
\ No newline at end of file
diff --git a/arvbox/lib/arvbox/docker/service/doc/run b/arvbox/lib/arvbox/docker/service/doc/run
deleted file mode 120000
index a388c8b..0000000
--- a/arvbox/lib/arvbox/docker/service/doc/run
+++ /dev/null
@@ -1 +0,0 @@
-/usr/local/lib/arvbox/runsu.sh
\ No newline at end of file
diff --git a/arvbox/lib/arvbox/docker/service/doc/run-service b/arvbox/lib/arvbox/docker/service/doc/run-service
deleted file mode 100755
index acbe21c..0000000
--- a/arvbox/lib/arvbox/docker/service/doc/run-service
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/bin/bash
-
-exec 2>&1
-set -ex -o pipefail
-
-. /usr/local/lib/arvbox/common.sh
-
-cd /usr/src/arvados/doc
-run_bundler --without=development
-
-if test "$1" = "--only-deps" ; then
- exit
-fi
-
-set -u
-
-cat <<EOF >/var/lib/arvados/doc-nginx.conf
-worker_processes auto;
-pid /var/lib/arvados/doc-nginx.pid;
-daemon off;
-
-events {
- worker_connections 64;
-}
-
-http {
- include /etc/nginx/mime.types;
- default_type application/octet-stream;
- server {
- listen ${services[doc]} default_server;
- listen [::]:${services[doc]} default_server;
- root /usr/src/arvados/doc/.site;
- index index.html;
- server_name _;
- }
-}
-EOF
-
-bundle exec rake generate baseurl=http://$localip:${services[doc]} arvados_api_host=$localip:${services[api]} arvados_workbench_host=http://$localip
-
-exec nginx -c /var/lib/arvados/doc-nginx.conf
diff --git a/arvbox/lib/arvbox/docker/service/docker/log/main/.gitstub b/arvbox/lib/arvbox/docker/service/docker/log/main/.gitstub
deleted file mode 100644
index e69de29..0000000
diff --git a/arvbox/lib/arvbox/docker/service/docker/log/run b/arvbox/lib/arvbox/docker/service/docker/log/run
deleted file mode 120000
index d6aef4a..0000000
--- a/arvbox/lib/arvbox/docker/service/docker/log/run
+++ /dev/null
@@ -1 +0,0 @@
-/usr/local/lib/arvbox/logger
\ No newline at end of file
diff --git a/arvbox/lib/arvbox/docker/service/docker/run b/arvbox/lib/arvbox/docker/service/docker/run
deleted file mode 100755
index 1ecdc16..0000000
--- a/arvbox/lib/arvbox/docker/service/docker/run
+++ /dev/null
@@ -1,102 +0,0 @@
-#!/bin/bash
-
-# Taken from https://github.com/jpetazzo/dind
-
-exec 2>&1
-
-# Ensure that all nodes in /dev/mapper correspond to mapped devices currently loaded by the device-mapper kernel driver
-dmsetup mknodes
-
-: {LOG:=stdio}
-
-# First, make sure that cgroups are mounted correctly.
-CGROUP=/sys/fs/cgroup
-[ -d $CGROUP ] || mkdir $CGROUP
-
-if mountpoint -q $CGROUP ; then
- break
-else
- mount -n -t tmpfs -o uid=0,gid=0,mode=0755 cgroup $CGROUP
-fi
-
-if ! mountpoint -q $CGROUP ; then
- echo "Could not find or mount cgroups. Tried /sys/fs/cgroup and /cgroup. Did you use --privileged?"
- exit 1
-fi
-
-if [ -d /sys/kernel/security ] && ! mountpoint -q /sys/kernel/security
-then
- mount -t securityfs none /sys/kernel/security || {
- echo "Could not mount /sys/kernel/security."
- echo "AppArmor detection and --privileged mode might break."
- }
-fi
-
-# Mount the cgroup hierarchies exactly as they are in the parent system.
-for SUBSYS in $(cut -d: -f2 /proc/1/cgroup)
-do
- [ -d $CGROUP/$SUBSYS ] || mkdir $CGROUP/$SUBSYS
- mountpoint -q $CGROUP/$SUBSYS ||
- mount -n -t cgroup -o $SUBSYS cgroup $CGROUP/$SUBSYS
-
- # The two following sections address a bug which manifests itself
- # by a cryptic "lxc-start: no ns_cgroup option specified" when
- # trying to start containers withina container.
- # The bug seems to appear when the cgroup hierarchies are not
- # mounted on the exact same directories in the host, and in the
- # container.
-
- # Named, control-less cgroups are mounted with "-o name=foo"
- # (and appear as such under /proc/<pid>/cgroup) but are usually
- # mounted on a directory named "foo" (without the "name=" prefix).
- # Systemd and OpenRC (and possibly others) both create such a
- # cgroup. To avoid the aforementioned bug, we symlink "foo" to
- # "name=foo". This shouldn't have any adverse effect.
- echo $SUBSYS | grep -q ^name= && {
- NAME=$(echo $SUBSYS | sed s/^name=//)
- ln -s $SUBSYS $CGROUP/$NAME
- }
-
- # Likewise, on at least one system, it has been reported that
- # systemd would mount the CPU and CPU accounting controllers
- # (respectively "cpu" and "cpuacct") with "-o cpuacct,cpu"
- # but on a directory called "cpu,cpuacct" (note the inversion
- # in the order of the groups). This tries to work around it.
- [ $SUBSYS = cpuacct,cpu ] && ln -s $SUBSYS $CGROUP/cpu,cpuacct
-done
-
-# Note: as I write those lines, the LXC userland tools cannot setup
-# a "sub-container" properly if the "devices" cgroup is not in its
-# own hierarchy. Let's detect this and issue a warning.
-grep -q :devices: /proc/1/cgroup ||
- echo "WARNING: the 'devices' cgroup should be in its own hierarchy."
-grep -qw devices /proc/1/cgroup ||
- echo "WARNING: it looks like the 'devices' cgroup is not mounted."
-
-# Now, close extraneous file descriptors.
-pushd /proc/self/fd >/dev/null
-for FD in *
-do
- case "$FD" in
- # Keep stdin/stdout/stderr
- [012])
- ;;
- # Nuke everything else
- *)
- eval exec "$FD>&-"
- ;;
- esac
-done
-popd >/dev/null
-
-
-# If a pidfile is still around (for example after a container restart),
-# delete it so that docker can start.
-rm -rf /var/run/docker.pid
-
-read pid cmd state ppid pgrp session tty_nr tpgid rest < /proc/self/stat
-trap "kill -TERM -$pgrp; exit" EXIT TERM KILL SIGKILL SIGTERM SIGQUIT
-
-if ! docker daemon --storage-driver=overlay $DOCKER_DAEMON_ARGS ; then
- docker daemon $DOCKER_DAEMON_ARGS
-fi
diff --git a/arvbox/lib/arvbox/docker/service/gitolite/log/main/.gitstub b/arvbox/lib/arvbox/docker/service/gitolite/log/main/.gitstub
deleted file mode 100644
index e69de29..0000000
diff --git a/arvbox/lib/arvbox/docker/service/gitolite/log/run b/arvbox/lib/arvbox/docker/service/gitolite/log/run
deleted file mode 120000
index d6aef4a..0000000
--- a/arvbox/lib/arvbox/docker/service/gitolite/log/run
+++ /dev/null
@@ -1 +0,0 @@
-/usr/local/lib/arvbox/logger
\ No newline at end of file
diff --git a/arvbox/lib/arvbox/docker/service/gitolite/run b/arvbox/lib/arvbox/docker/service/gitolite/run
deleted file mode 120000
index a388c8b..0000000
--- a/arvbox/lib/arvbox/docker/service/gitolite/run
+++ /dev/null
@@ -1 +0,0 @@
-/usr/local/lib/arvbox/runsu.sh
\ No newline at end of file
diff --git a/arvbox/lib/arvbox/docker/service/gitolite/run-service b/arvbox/lib/arvbox/docker/service/gitolite/run-service
deleted file mode 100755
index e0e8771..0000000
--- a/arvbox/lib/arvbox/docker/service/gitolite/run-service
+++ /dev/null
@@ -1,116 +0,0 @@
-#!/bin/bash
-
-exec 2>&1
-set -eux -o pipefail
-
-. /usr/local/lib/arvbox/common.sh
-
-mkdir -p /var/lib/arvados/git
-
-export ARVADOS_API_HOST=$localip:${services[api]}
-export ARVADOS_API_HOST_INSECURE=1
-export ARVADOS_API_TOKEN=$(cat /var/lib/arvados/superuser_token)
-
-export USER=git
-export USERNAME=git
-export LOGNAME=git
-export HOME=/var/lib/arvados/git
-
-cd ~arvbox
-
-mkdir -p ~arvbox/.ssh ~git/.ssh
-chmod 0700 ~arvbox/.ssh ~git/.ssh
-
-if ! test -s ~arvbox/.ssh/id_rsa ; then
- ssh-keygen -t rsa -P '' -f .ssh/id_rsa
- cp ~arvbox/.ssh/id_rsa ~arvbox/.ssh/id_rsa.pub ~git/.ssh
-fi
-
-if test -s ~arvbox/.ssh/known_hosts ; then
- ssh-keygen -f ".ssh/known_hosts" -R localhost
-fi
-
-if ! test -f /var/lib/arvados/gitolite-setup ; then
- cd ~git
-
- # Do a no-op login to populate known_hosts
- # with the hostkey, so it won't try to ask
- # about it later.
- cp .ssh/id_rsa.pub .ssh/authorized_keys
- ssh -o stricthostkeychecking=no git at localhost true
- rm .ssh/authorized_keys
-
- cp /usr/local/lib/arvbox/gitolite.rc .gitolite.rc
-
- gitolite setup -pk .ssh/id_rsa.pub
-
- if ! test -d gitolite-admin ; then
- git clone git at localhost:gitolite-admin
- fi
-
- cd gitolite-admin
- git config user.email arvados
- git config user.name arvados
- git config push.default simple
- git push
-
- touch /var/lib/arvados/gitolite-setup
-else
- # Do a no-op login to populate known_hosts
- # with the hostkey, so it won't try to ask
- # about it later. Don't run anything,
- # get the default gitolite behavior.
- ssh -o stricthostkeychecking=no git at localhost
-fi
-
-prefix=$(arv --format=uuid user current | cut -d- -f1)
-
-if ! test -s /var/lib/arvados/arvados-git-uuid ; then
- repo_uuid=$(arv --format=uuid repository create --repository "{\"owner_uuid\":\"$prefix-tpzed-000000000000000\", \"name\":\"arvados\"}")
- echo $repo_uuid > /var/lib/arvados/arvados-git-uuid
-fi
-
-repo_uuid=$(cat /var/lib/arvados/arvados-git-uuid)
-
-if ! test -s /var/lib/arvados/arvados-git-link-uuid ; then
- all_users_group_uuid="$prefix-j7d0g-fffffffffffffff"
-
- set +e
- read -rd $'\000' newlink <<EOF
-{
- "tail_uuid":"$all_users_group_uuid",
- "head_uuid":"$repo_uuid",
- "link_class":"permission",
- "name":"can_read"
-}
-EOF
- set -e
- link_uuid=$(arv --format=uuid link create --link "$newlink")
- echo $link_uuid > /var/lib/arvados/arvados-git-link-uuid
-fi
-
-if ! test -d /var/lib/arvados/git/repositories/$repo_uuid.git ; then
- git clone --bare /usr/src/arvados /var/lib/arvados/git/repositories/$repo_uuid.git
-else
- git --git-dir=/var/lib/arvados/git/repositories/$repo_uuid.git fetch -f /usr/src/arvados master:master
-fi
-
-cd /usr/src/arvados/services/api
-export RAILS_ENV=development
-
-git_user_key=$(cat ~git/.ssh/id_rsa.pub)
-
-cat > config/arvados-clients.yml <<EOF
-development:
- gitolite_url: /var/lib/arvados/git/repositories/gitolite-admin.git
- gitolite_tmp: /var/lib/arvados/git
- arvados_api_host: $localip:${services[api]}
- arvados_api_token: "$ARVADOS_API_TOKEN"
- arvados_api_host_insecure: true
- gitolite_arvados_git_user_key: "$git_user_key"
-EOF
-
-while true ; do
- bundle exec script/arvados-git-sync.rb development
- sleep 120
-done
diff --git a/arvbox/lib/arvbox/docker/service/keep-web/log/main/.gitstub b/arvbox/lib/arvbox/docker/service/keep-web/log/main/.gitstub
deleted file mode 100644
index e69de29..0000000
diff --git a/arvbox/lib/arvbox/docker/service/keep-web/log/run b/arvbox/lib/arvbox/docker/service/keep-web/log/run
deleted file mode 120000
index d6aef4a..0000000
--- a/arvbox/lib/arvbox/docker/service/keep-web/log/run
+++ /dev/null
@@ -1 +0,0 @@
-/usr/local/lib/arvbox/logger
\ No newline at end of file
diff --git a/arvbox/lib/arvbox/docker/service/keep-web/run b/arvbox/lib/arvbox/docker/service/keep-web/run
deleted file mode 120000
index a388c8b..0000000
--- a/arvbox/lib/arvbox/docker/service/keep-web/run
+++ /dev/null
@@ -1 +0,0 @@
-/usr/local/lib/arvbox/runsu.sh
\ No newline at end of file
diff --git a/arvbox/lib/arvbox/docker/service/keep-web/run-service b/arvbox/lib/arvbox/docker/service/keep-web/run-service
deleted file mode 100755
index a2c6aa1..0000000
--- a/arvbox/lib/arvbox/docker/service/keep-web/run-service
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/bash
-
-exec 2>&1
-set -eux -o pipefail
-
-. /usr/local/lib/arvbox/common.sh
-
-mkdir -p /var/lib/arvados/gostuff
-cd /var/lib/arvados/gostuff
-
-export GOPATH=$PWD
-mkdir -p "$GOPATH/src/git.curoverse.com"
-ln -sfn "/usr/src/arvados" "$GOPATH/src/git.curoverse.com/arvados.git"
-flock /var/lib/arvados/gostuff.lock go get -t "git.curoverse.com/arvados.git/services/keep-web"
-install bin/keep-web /usr/local/bin
-
-export ARVADOS_API_HOST=$localip:${services[api]}
-export ARVADOS_API_HOST_INSECURE=1
-export ARVADOS_API_TOKEN=$(cat /var/lib/arvados/superuser_token)
-
-exec /usr/local/bin/keep-web -trust-all-content -listen=:${services[keep-web]}
diff --git a/arvbox/lib/arvbox/docker/service/keepproxy/log/main/.gitstub b/arvbox/lib/arvbox/docker/service/keepproxy/log/main/.gitstub
deleted file mode 100644
index e69de29..0000000
diff --git a/arvbox/lib/arvbox/docker/service/keepproxy/log/run b/arvbox/lib/arvbox/docker/service/keepproxy/log/run
deleted file mode 120000
index d6aef4a..0000000
--- a/arvbox/lib/arvbox/docker/service/keepproxy/log/run
+++ /dev/null
@@ -1 +0,0 @@
-/usr/local/lib/arvbox/logger
\ No newline at end of file
diff --git a/arvbox/lib/arvbox/docker/service/keepproxy/run b/arvbox/lib/arvbox/docker/service/keepproxy/run
deleted file mode 120000
index a388c8b..0000000
--- a/arvbox/lib/arvbox/docker/service/keepproxy/run
+++ /dev/null
@@ -1 +0,0 @@
-/usr/local/lib/arvbox/runsu.sh
\ No newline at end of file
diff --git a/arvbox/lib/arvbox/docker/service/keepproxy/run-service b/arvbox/lib/arvbox/docker/service/keepproxy/run-service
deleted file mode 100755
index 413a67e..0000000
--- a/arvbox/lib/arvbox/docker/service/keepproxy/run-service
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/bin/bash
-
-exec 2>&1
-sleep 2
-set -eux -o pipefail
-
-. /usr/local/lib/arvbox/common.sh
-
-mkdir -p /var/lib/arvados/gostuff
-cd /var/lib/arvados/gostuff
-
-export GOPATH=$PWD
-mkdir -p "$GOPATH/src/git.curoverse.com"
-ln -sfn "/usr/src/arvados" "$GOPATH/src/git.curoverse.com/arvados.git"
-flock /var/lib/arvados/gostuff.lock go get -t "git.curoverse.com/arvados.git/services/keepproxy"
-install bin/keepproxy /usr/local/bin
-
-export ARVADOS_API_HOST=$localip:${services[api]}
-export ARVADOS_API_HOST_INSECURE=1
-export ARVADOS_API_TOKEN=$(cat /var/lib/arvados/superuser_token)
-
-set +e
-read -rd $'\000' keepservice <<EOF
-{
- "service_host":"$localip",
- "service_port":${services[keepproxy]},
- "service_ssl_flag":false,
- "service_type":"proxy"
-}
-EOF
-set -e
-
-if test -s /var/lib/arvados/keepproxy-uuid ; then
- keep_uuid=$(cat /var/lib/arvados/keepproxy-uuid)
- arv keep_service update --uuid $keep_uuid --keep-service "$keepservice"
-else
- UUID=$(arv --format=uuid keep_service create --keep-service "$keepservice")
- echo $UUID > /var/lib/arvados/keepproxy-uuid
-fi
-
-exec /usr/local/bin/keepproxy -listen=:${services[keepproxy]}
diff --git a/arvbox/lib/arvbox/docker/service/keepstore0/log/main/.gitstub b/arvbox/lib/arvbox/docker/service/keepstore0/log/main/.gitstub
deleted file mode 100644
index e69de29..0000000
diff --git a/arvbox/lib/arvbox/docker/service/keepstore0/log/run b/arvbox/lib/arvbox/docker/service/keepstore0/log/run
deleted file mode 120000
index d6aef4a..0000000
--- a/arvbox/lib/arvbox/docker/service/keepstore0/log/run
+++ /dev/null
@@ -1 +0,0 @@
-/usr/local/lib/arvbox/logger
\ No newline at end of file
diff --git a/arvbox/lib/arvbox/docker/service/keepstore0/run b/arvbox/lib/arvbox/docker/service/keepstore0/run
deleted file mode 120000
index a388c8b..0000000
--- a/arvbox/lib/arvbox/docker/service/keepstore0/run
+++ /dev/null
@@ -1 +0,0 @@
-/usr/local/lib/arvbox/runsu.sh
\ No newline at end of file
diff --git a/arvbox/lib/arvbox/docker/service/keepstore0/run-service b/arvbox/lib/arvbox/docker/service/keepstore0/run-service
deleted file mode 100755
index cf411e4..0000000
--- a/arvbox/lib/arvbox/docker/service/keepstore0/run-service
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-. /usr/local/lib/arvbox/common.sh
-exec /usr/local/lib/arvbox/keep-setup.sh keep0 ${services[keepstore0]}
diff --git a/arvbox/lib/arvbox/docker/service/keepstore1/log/main/.gitstub b/arvbox/lib/arvbox/docker/service/keepstore1/log/main/.gitstub
deleted file mode 100644
index e69de29..0000000
diff --git a/arvbox/lib/arvbox/docker/service/keepstore1/log/run b/arvbox/lib/arvbox/docker/service/keepstore1/log/run
deleted file mode 120000
index d6aef4a..0000000
--- a/arvbox/lib/arvbox/docker/service/keepstore1/log/run
+++ /dev/null
@@ -1 +0,0 @@
-/usr/local/lib/arvbox/logger
\ No newline at end of file
diff --git a/arvbox/lib/arvbox/docker/service/keepstore1/run b/arvbox/lib/arvbox/docker/service/keepstore1/run
deleted file mode 120000
index a388c8b..0000000
--- a/arvbox/lib/arvbox/docker/service/keepstore1/run
+++ /dev/null
@@ -1 +0,0 @@
-/usr/local/lib/arvbox/runsu.sh
\ No newline at end of file
diff --git a/arvbox/lib/arvbox/docker/service/keepstore1/run-service b/arvbox/lib/arvbox/docker/service/keepstore1/run-service
deleted file mode 100755
index 8d34d06..0000000
--- a/arvbox/lib/arvbox/docker/service/keepstore1/run-service
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-. /usr/local/lib/arvbox/common.sh
-exec /usr/local/lib/arvbox/keep-setup.sh keep1 ${services[keepstore1]}
diff --git a/arvbox/lib/arvbox/docker/service/postgres/log/main/.gitstub b/arvbox/lib/arvbox/docker/service/postgres/log/main/.gitstub
deleted file mode 100644
index e69de29..0000000
diff --git a/arvbox/lib/arvbox/docker/service/postgres/log/run b/arvbox/lib/arvbox/docker/service/postgres/log/run
deleted file mode 120000
index d6aef4a..0000000
--- a/arvbox/lib/arvbox/docker/service/postgres/log/run
+++ /dev/null
@@ -1 +0,0 @@
-/usr/local/lib/arvbox/logger
\ No newline at end of file
diff --git a/arvbox/lib/arvbox/docker/service/postgres/run b/arvbox/lib/arvbox/docker/service/postgres/run
deleted file mode 100755
index 4918bd7..0000000
--- a/arvbox/lib/arvbox/docker/service/postgres/run
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/bash
-
-flock /var/lib/arvados/createusers.lock /usr/local/lib/arvbox/createusers.sh
-
-. /usr/local/lib/arvbox/common.sh
-
-chown -R $PGUSER:$PGGROUP /var/lib/postgresql
-chown -R $PGUSER:$PGGROUP /var/run/postgresql
-chown -R $PGUSER:$PGGROUP /etc/postgresql
-chown -R $PGUSER:$PGGROUP /etc/ssl/private
-
-exec chpst -u $PGUSER:$PGGROUP $0-service
diff --git a/arvbox/lib/arvbox/docker/service/postgres/run-service b/arvbox/lib/arvbox/docker/service/postgres/run-service
deleted file mode 100755
index a05be62..0000000
--- a/arvbox/lib/arvbox/docker/service/postgres/run-service
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/bash
-
-exec 2>&1
-set -eux -o pipefail
-
-if ! test -d /var/lib/postgresql/9.4/main ; then
- /usr/lib/postgresql/9.4/bin/initdb -D /var/lib/postgresql/9.4/main
- sh -c "while ! (psql postgres -c'\du' | grep '^ arvbox ') >/dev/null ; do createuser -s arvbox ; sleep 1 ; done" &
-fi
-mkdir -p /var/run/postgresql/9.4-main.pg_stat_tmp
-
-rm -f /var/lib/postgresql/9.4/main/postmaster.pid
-
-exec /usr/lib/postgresql/9.4/bin/postgres -D /var/lib/postgresql/9.4/main -c config_file=/etc/postgresql/9.4/main/postgresql.conf
diff --git a/arvbox/lib/arvbox/docker/service/ready/run b/arvbox/lib/arvbox/docker/service/ready/run
deleted file mode 120000
index a388c8b..0000000
--- a/arvbox/lib/arvbox/docker/service/ready/run
+++ /dev/null
@@ -1 +0,0 @@
-/usr/local/lib/arvbox/runsu.sh
\ No newline at end of file
diff --git a/arvbox/lib/arvbox/docker/service/ready/run-service b/arvbox/lib/arvbox/docker/service/ready/run-service
deleted file mode 100755
index f560de0..0000000
--- a/arvbox/lib/arvbox/docker/service/ready/run-service
+++ /dev/null
@@ -1,96 +0,0 @@
-#!/bin/bash
-
-. /usr/local/lib/arvbox/common.sh
-
-set -eu -o pipefail
-
-if ! [[ -d /tmp/arvbox-ready ]] ; then
- echo
- echo "Arvados-in-a-box starting"
- echo
- echo "Note: if this is a fresh arvbox installation, it may take 10-15 minutes (or longer) to download and"
- echo "install dependencies. Use \"arvbox log\" to monitor the progress of specific services."
- echo
- mkdir -p /tmp/arvbox-ready
-fi
-
-sleep 3
-
-waiting=""
-
-for s in "${!services[@]}"
-do
- if ! [[ -f /tmp/arvbox-ready/$s ]] ; then
- if nc -z localhost ${services[$s]} ; then
- echo "$s is ready at $localip:${services[$s]}"
- touch /tmp/arvbox-ready/$s
- else
- waiting="$waiting $s"
- fi
- fi
-done
-
-if ! docker version >/dev/null 2>/dev/null ; then
- waiting="$waiting docker"
-fi
-
-if ! which arv >/dev/null ; then
- waiting="$waiting sdk"
-elif ! which arv-get >/dev/null ; then
- waiting="$waiting sdk"
-fi
-
-if ! (ps x | grep -v grep | grep "crunch-dispatch") > /dev/null ; then
- waiting="$waiting crunch-dispatch"
-fi
-
-export ARVADOS_API_HOST=$localip:${services[api]}
-export ARVADOS_API_HOST_INSECURE=1
-
-vm_ok=0
-if test -s /var/lib/arvados/vm-uuid -a -s /var/lib/arvados/superuser_token; then
- vm_uuid=$(cat /var/lib/arvados/vm-uuid)
- export ARVADOS_API_TOKEN=$(cat /var/lib/arvados/superuser_token)
- if (which arv && arv virtual_machine get --uuid $vm_uuid) >/dev/null 2>/dev/null ; then
- vm_ok=1
- fi
-fi
-
-if test $vm_ok = 0 ; then
- waiting="$waiting vm"
-fi
-
-if ! [[ -z "$waiting" ]] ; then
- if ps x | grep -v grep | grep "bundle install" > /dev/null; then
- gemcount=$(ls /var/lib/gems/ruby/2.1.0/gems 2>/dev/null | wc -l)
-
- gemlockcount=0
- for l in /usr/src/arvados/services/api/Gemfile.lock \
- /usr/src/arvados/apps/workbench/Gemfile.lock \
- /usr/src/sso/Gemfile.lock ; do
- gc=$(cat $l \
- | grep -vE "(GEM|PLATFORMS|DEPENDENCIES|$^|remote:|specs:)" \
- | sed 's/^ *//' | sed 's/(.*)//' | sed 's/ *$//' | sort | uniq | wc -l)
- gemlockcount=$(($gemlockcount + $gc))
- done
- waiting="$waiting (installing ruby gems $gemcount/$gemlockcount)"
- fi
-
- if ps x | grep -v grep | grep "c++.*/var/lib/passenger" > /dev/null ; then
- waiting="$waiting (compiling passenger)"
- fi
-
- if ps x | grep -v grep | grep "pip install" > /dev/null; then
- waiting="$waiting (installing python packages)"
- fi
- echo " Waiting for$waiting ..."
- exit 1
-fi
-
-echo
-echo "Your Arvados-in-a-box is ready!"
-echo "Workbench is running at http://$localip"
-
-rm -r /tmp/arvbox-ready
-
-sv stop ready >/dev/null
diff --git a/arvbox/lib/arvbox/docker/service/sdk/log/main/.gitstub b/arvbox/lib/arvbox/docker/service/sdk/log/main/.gitstub
deleted file mode 100644
index e69de29..0000000
diff --git a/arvbox/lib/arvbox/docker/service/sdk/log/run b/arvbox/lib/arvbox/docker/service/sdk/log/run
deleted file mode 120000
index d6aef4a..0000000
--- a/arvbox/lib/arvbox/docker/service/sdk/log/run
+++ /dev/null
@@ -1 +0,0 @@
-/usr/local/lib/arvbox/logger
\ No newline at end of file
diff --git a/arvbox/lib/arvbox/docker/service/sdk/run b/arvbox/lib/arvbox/docker/service/sdk/run
deleted file mode 100755
index 816b166..0000000
--- a/arvbox/lib/arvbox/docker/service/sdk/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-set -e
-
-/usr/local/lib/arvbox/runsu.sh $0-service
-sv stop sdk
diff --git a/arvbox/lib/arvbox/docker/service/sdk/run-service b/arvbox/lib/arvbox/docker/service/sdk/run-service
deleted file mode 100755
index b51f0fc..0000000
--- a/arvbox/lib/arvbox/docker/service/sdk/run-service
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash
-
-exec 2>&1
-set -eux -o pipefail
-
-. /usr/local/lib/arvbox/common.sh
-
-mkdir -p ~/.pip /var/lib/arvados/pip
-cat > ~/.pip/pip.conf <<EOF
-[global]
-download_cache = /var/lib/arvados/pip
-EOF
-
-cd /usr/src/arvados/sdk/cli
-run_bundler --binstubs=$PWD/binstubs
-ln -sf /usr/src/arvados/sdk/cli/binstubs/arv /usr/local/bin/arv
-
-cd /usr/src/arvados/sdk/python
-python setup.py sdist
-pip_install $(ls dist/arvados-python-client-*.tar.gz | tail -n1)
-
-cd /usr/src/arvados/services/fuse
-python setup.py sdist
-pip_install $(ls dist/arvados_fuse-*.tar.gz | tail -n1)
diff --git a/arvbox/lib/arvbox/docker/service/slurmctld/log/main/.gitstub b/arvbox/lib/arvbox/docker/service/slurmctld/log/main/.gitstub
deleted file mode 100644
index e69de29..0000000
diff --git a/arvbox/lib/arvbox/docker/service/slurmctld/log/run b/arvbox/lib/arvbox/docker/service/slurmctld/log/run
deleted file mode 120000
index d6aef4a..0000000
--- a/arvbox/lib/arvbox/docker/service/slurmctld/log/run
+++ /dev/null
@@ -1 +0,0 @@
-/usr/local/lib/arvbox/logger
\ No newline at end of file
diff --git a/arvbox/lib/arvbox/docker/service/slurmctld/run b/arvbox/lib/arvbox/docker/service/slurmctld/run
deleted file mode 100755
index bd75bd0..0000000
--- a/arvbox/lib/arvbox/docker/service/slurmctld/run
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/bash
-
-exec 2>&1
-set -eux -o pipefail
-
-. /usr/local/lib/arvbox/common.sh
-
-cat > /etc/slurm-llnl/slurm.conf <<EOF
-ControlMachine=$HOSTNAME
-ControlAddr=$HOSTNAME
-AuthType=auth/munge
-DefaultStorageLoc=/var/log/slurm-llnl
-SelectType=select/cons_res
-SelectTypeParameters=CR_CPU_Memory
-SlurmUser=arvbox
-SlurmdUser=arvbox
-SlurmctldPort=7002
-SlurmctldTimeout=300
-SlurmdPort=7003
-SlurmdSpoolDir=/var/tmp/slurmd.spool
-SlurmdTimeout=300
-StateSaveLocation=/var/tmp/slurm.state
-NodeName=$HOSTNAME
-PartitionName=compute State=UP Default=YES Nodes=$HOSTNAME
-EOF
-
-mkdir -p /var/run/munge
-
-/usr/sbin/munged -f
-
-exec /usr/sbin/slurmctld -v -D
diff --git a/arvbox/lib/arvbox/docker/service/slurmd/log/main/.gitstub b/arvbox/lib/arvbox/docker/service/slurmd/log/main/.gitstub
deleted file mode 100644
index e69de29..0000000
diff --git a/arvbox/lib/arvbox/docker/service/slurmd/log/run b/arvbox/lib/arvbox/docker/service/slurmd/log/run
deleted file mode 120000
index d6aef4a..0000000
--- a/arvbox/lib/arvbox/docker/service/slurmd/log/run
+++ /dev/null
@@ -1 +0,0 @@
-/usr/local/lib/arvbox/logger
\ No newline at end of file
diff --git a/arvbox/lib/arvbox/docker/service/slurmd/run b/arvbox/lib/arvbox/docker/service/slurmd/run
deleted file mode 100755
index 865a7e6..0000000
--- a/arvbox/lib/arvbox/docker/service/slurmd/run
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash
-
-exec 2>&1
-set -eux -o pipefail
-
-exec /usr/local/lib/arvbox/runsu.sh /usr/sbin/slurmd -v -D
diff --git a/arvbox/lib/arvbox/docker/service/ssh/log/main/.gitstub b/arvbox/lib/arvbox/docker/service/ssh/log/main/.gitstub
deleted file mode 100644
index e69de29..0000000
diff --git a/arvbox/lib/arvbox/docker/service/ssh/log/run b/arvbox/lib/arvbox/docker/service/ssh/log/run
deleted file mode 120000
index d6aef4a..0000000
--- a/arvbox/lib/arvbox/docker/service/ssh/log/run
+++ /dev/null
@@ -1 +0,0 @@
-/usr/local/lib/arvbox/logger
\ No newline at end of file
diff --git a/arvbox/lib/arvbox/docker/service/ssh/run b/arvbox/lib/arvbox/docker/service/ssh/run
deleted file mode 100755
index 0f23542..0000000
--- a/arvbox/lib/arvbox/docker/service/ssh/run
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-
-exec 2>&1
-set -eux -o pipefail
-
-if ! test -d /var/run/sshd ; then
- mkdir /var/run/sshd
- chmod 0755 /var/run/sshd
-fi
-/usr/sbin/sshd -D
diff --git a/arvbox/lib/arvbox/docker/service/sso/log/main/.gitstub b/arvbox/lib/arvbox/docker/service/sso/log/main/.gitstub
deleted file mode 100644
index e69de29..0000000
diff --git a/arvbox/lib/arvbox/docker/service/sso/log/run b/arvbox/lib/arvbox/docker/service/sso/log/run
deleted file mode 120000
index d6aef4a..0000000
--- a/arvbox/lib/arvbox/docker/service/sso/log/run
+++ /dev/null
@@ -1 +0,0 @@
-/usr/local/lib/arvbox/logger
\ No newline at end of file
diff --git a/arvbox/lib/arvbox/docker/service/sso/run b/arvbox/lib/arvbox/docker/service/sso/run
deleted file mode 120000
index a388c8b..0000000
--- a/arvbox/lib/arvbox/docker/service/sso/run
+++ /dev/null
@@ -1 +0,0 @@
-/usr/local/lib/arvbox/runsu.sh
\ No newline at end of file
diff --git a/arvbox/lib/arvbox/docker/service/sso/run-service b/arvbox/lib/arvbox/docker/service/sso/run-service
deleted file mode 100755
index da413e0..0000000
--- a/arvbox/lib/arvbox/docker/service/sso/run-service
+++ /dev/null
@@ -1,87 +0,0 @@
-#!/bin/bash
-
-exec 2>&1
-set -ex -o pipefail
-
-. /usr/local/lib/arvbox/common.sh
-
-cd /usr/src/sso
-export RAILS_ENV=development
-
-run_bundler --without=development
-bundle exec passenger start --runtime-check-only --runtime-dir=/var/lib/passenger
-
-if test "$1" = "--only-deps" ; then
- exit
-fi
-
-set -u
-
-if ! test -s /var/lib/arvados/sso_uuid_prefix ; then
- ruby -e 'puts "#{rand(2**64).to_s(36)[0,5]}"' > /var/lib/arvados/sso_uuid_prefix
-fi
-uuid_prefix=$(cat /var/lib/arvados/sso_uuid_prefix)
-
-if ! test -s /var/lib/arvados/sso_secret_token ; then
- ruby -e 'puts rand(2**400).to_s(36)' > /var/lib/arvados/sso_secret_token
-fi
-secret_token=$(cat /var/lib/arvados/sso_secret_token)
-
-if ! test -s /var/lib/arvados/self-signed.key ; then
- openssl req -new -x509 -nodes -out /var/lib/arvados/self-signed.pem -keyout /var/lib/arvados/self-signed.key -days 365 -subj '/CN=localhost'
-fi
-
-cat >config/application.yml <<EOF
-development:
- uuid_prefix: $uuid_prefix
- secret_token: $secret_token
- default_link_url: "http://$localip"
- allow_account_registration: true
-EOF
-
-(cd config && /usr/local/lib/arvbox/application_yml_override.py)
-
-if ! test -f /var/lib/arvados/sso_database_pw ; then
- ruby -e 'puts rand(2**128).to_s(36)' > /var/lib/arvados/sso_database_pw
-fi
-database_pw=$(cat /var/lib/arvados/sso_database_pw)
-
-if ! (psql postgres -c "\du" | grep "^ arvados_sso ") >/dev/null ; then
- psql postgres -c "create user arvados_sso with password '$database_pw'"
- psql postgres -c "ALTER USER arvados_sso CREATEDB;"
-fi
-
-sed "s/password:.*/password: $database_pw/" <config/database.yml.example >config/database.yml
-
-if ! test -f /var/lib/arvados/sso_database_setup ; then
- bundle exec rake db:setup
-
- if ! test -s /var/lib/arvados/sso_app_secret ; then
- ruby -e 'puts rand(2**400).to_s(36)' > /var/lib/arvados/sso_app_secret
- fi
- app_secret=$(cat /var/lib/arvados/sso_app_secret)
-
- bundle exec rails console <<EOF
-c = Client.new
-c.name = "joshid"
-c.app_id = "arvados-server"
-c.app_secret = "$app_secret"
-c.save!
-EOF
-
- touch /var/lib/arvados/sso_database_setup
-fi
-
-rm -rf tmp
-
-bundle exec rake db:migrate
-
-set +u
-if test "$1" = "--only-setup" ; then
- exit
-fi
-
-exec bundle exec passenger start --port=${services[sso]} \
- --runtime-dir=/var/lib/passenger \
- --ssl --ssl-certificate=/var/lib/arvados/self-signed.pem \
- --ssl-certificate-key=/var/lib/arvados/self-signed.key
diff --git a/arvbox/lib/arvbox/docker/service/vm/log/main/.gitstub b/arvbox/lib/arvbox/docker/service/vm/log/main/.gitstub
deleted file mode 100644
index e69de29..0000000
diff --git a/arvbox/lib/arvbox/docker/service/vm/log/run b/arvbox/lib/arvbox/docker/service/vm/log/run
deleted file mode 120000
index d6aef4a..0000000
--- a/arvbox/lib/arvbox/docker/service/vm/log/run
+++ /dev/null
@@ -1 +0,0 @@
-/usr/local/lib/arvbox/logger
\ No newline at end of file
diff --git a/arvbox/lib/arvbox/docker/service/vm/run b/arvbox/lib/arvbox/docker/service/vm/run
deleted file mode 100755
index 0c10cb0..0000000
--- a/arvbox/lib/arvbox/docker/service/vm/run
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/bash
-set -e
-
-. /usr/local/lib/arvbox/common.sh
-
-git config --system "credential.http://$localip:${services[arv-git-httpd]}/.username" none
-git config --system "credential.http://$localip:${services[arv-git-httpd]}/.helper" '!cred(){ cat >/dev/null; if [ "$1" = get ]; then echo password=$ARVADOS_API_TOKEN; fi; };cred'
-
-/usr/local/lib/arvbox/runsu.sh $0-service
-
-cd /usr/src/arvados/services/login-sync
-
-export ARVADOS_API_HOST=$localip:${services[api]}
-export ARVADOS_API_HOST_INSECURE=1
-export ARVADOS_API_TOKEN=$(cat /var/lib/arvados/superuser_token)
-export ARVADOS_VIRTUAL_MACHINE_UUID=$(cat /var/lib/arvados/vm-uuid)
-
-while true ; do
- bundle exec arvados-login-sync
- sleep 120
-done
diff --git a/arvbox/lib/arvbox/docker/service/vm/run-service b/arvbox/lib/arvbox/docker/service/vm/run-service
deleted file mode 100755
index fb209f5..0000000
--- a/arvbox/lib/arvbox/docker/service/vm/run-service
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/bash
-
-exec 2>&1
-sleep 2
-set -ex -o pipefail
-
-. /usr/local/lib/arvbox/common.sh
-
-cd /usr/src/arvados/services/login-sync
-run_bundler
-
-if test "$1" = "--only-deps" ; then
- exit
-fi
-
-set -u
-
-export ARVADOS_API_HOST=$localip:${services[api]}
-export ARVADOS_API_HOST_INSECURE=1
-export ARVADOS_API_TOKEN=$(cat /var/lib/arvados/superuser_token)
-export ARVADOS_VIRTUAL_MACHINE_UUID=$(cat /var/lib/arvados/vm-uuid)
-
-set +e
-read -rd $'\000' vm <<EOF
-{
- "uuid": "$ARVADOS_VIRTUAL_MACHINE_UUID",
- "hostname":"$localip"
-}
-EOF
-set -e
-
-if arv virtual_machine get --uuid $ARVADOS_VIRTUAL_MACHINE_UUID ; then
- arv virtual_machine update --uuid $ARVADOS_VIRTUAL_MACHINE_UUID --virtual-machine "$vm"
-else
- arv virtual_machine create --virtual-machine "$vm"
-fi
diff --git a/arvbox/lib/arvbox/docker/service/workbench/log/main/.gitstub b/arvbox/lib/arvbox/docker/service/workbench/log/main/.gitstub
deleted file mode 100644
index e69de29..0000000
diff --git a/arvbox/lib/arvbox/docker/service/workbench/log/run b/arvbox/lib/arvbox/docker/service/workbench/log/run
deleted file mode 120000
index d6aef4a..0000000
--- a/arvbox/lib/arvbox/docker/service/workbench/log/run
+++ /dev/null
@@ -1 +0,0 @@
-/usr/local/lib/arvbox/logger
\ No newline at end of file
diff --git a/arvbox/lib/arvbox/docker/service/workbench/run b/arvbox/lib/arvbox/docker/service/workbench/run
deleted file mode 100755
index 6ac0476..0000000
--- a/arvbox/lib/arvbox/docker/service/workbench/run
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/sh
-set -e
-
-/usr/local/lib/arvbox/runsu.sh $0-service $1
-
-cd /usr/src/arvados/apps/workbench
-
-rm -rf tmp
-mkdir tmp
-chown arvbox:arvbox tmp
-
-if test "$1" != "--only-deps" ; then
- exec bundle exec passenger start --port 80 \
- --user arvbox --runtime-dir=/var/lib/passenger
-fi
diff --git a/arvbox/lib/arvbox/docker/service/workbench/run-service b/arvbox/lib/arvbox/docker/service/workbench/run-service
deleted file mode 100755
index 850022a..0000000
--- a/arvbox/lib/arvbox/docker/service/workbench/run-service
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/bash
-
-exec 2>&1
-set -ex -o pipefail
-
-. /usr/local/lib/arvbox/common.sh
-
-cd /usr/src/arvados/apps/workbench
-export RAILS_ENV=development
-
-run_bundler --without=development
-bundle exec passenger start --runtime-check-only --runtime-dir=/var/lib/passenger
-
-if test "$1" = "--only-deps" ; then
- exit
-fi
-
-set -u
-
-if ! test -s /var/lib/arvados/workbench_secret_token ; then
- ruby -e 'puts rand(2**400).to_s(36)' > /var/lib/arvados/workbench_secret_token
-fi
-secret_token=$(cat /var/lib/arvados/workbench_secret_token)
-
-if ! test -s self-signed.key ; then
- openssl req -new -x509 -nodes -out self-signed.pem -keyout self-signed.key -days 365 -subj '/CN=localhost'
-fi
-
-cat >config/application.yml <<EOF
-development:
- secret_token: $secret_token
- arvados_login_base: https://$localip:${services[api]}/login
- arvados_v1_base: https://$localip:${services[api]}/arvados/v1
- arvados_insecure_https: true
- keep_web_download_url: http://$localip:${services[keep-web]}/c=%{uuid_or_pdh}
- keep_web_url: http://$localip:${services[keep-web]}/c=%{uuid_or_pdh}
- arvados_docsite: http://$localip:${services[doc]}/
-EOF
-
-(cd config && /usr/local/lib/arvbox/application_yml_override.py)
diff --git a/arvbox/lib/arvbox/docker/waitforpostgres.sh b/arvbox/lib/arvbox/docker/waitforpostgres.sh
deleted file mode 100755
index 84d9904..0000000
--- a/arvbox/lib/arvbox/docker/waitforpostgres.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-while ! psql postgres -c\\du >/dev/null 2>/dev/null ; do
- sleep 1
-done
commit d64b434147ba00224c937d192573a46d4543089d
Merge: d7bda40 623af8e
Author: Tom Clegg <tom at curoverse.com>
Date: Tue Mar 1 02:42:46 2016 -0500
Merge branch 'master' into 8345-llfuse-unpin
commit 623af8e46e921f59abeeee9e7ae8ec4aef890b5b
Author: Brett Smith <brett at curoverse.com>
Date: Mon Feb 29 12:45:39 2016 -0500
8371, 8413: Bump Rails package iteration.
Build these bug fixes into new packages.
Closes #8371, #8413.
diff --git a/jenkins/run-library.sh b/jenkins/run-library.sh
index 23ed383..02d8d0d 100755
--- a/jenkins/run-library.sh
+++ b/jenkins/run-library.sh
@@ -148,9 +148,8 @@ handle_rails_package() {
local -a pos_args=("$srcdir/=$railsdir" "$pkgname" "Curoverse, Inc." dir
"$(cat "$version_file")")
local license_arg="$license_path=$railsdir/$(basename "$license_path")"
- # --iteration=3 accommodates the package scripts change from #8014.
- # --iteration=4 accommodates the packaging changes (inclusion of vendor/cache) from #8008.
- local -a switches=(--iteration=4
+ # --iteration=5 accommodates the package script bugfixes #8371 and #8413.
+ local -a switches=(--iteration=5
--after-install "$scripts_dir/postinst"
--before-remove "$scripts_dir/prerm"
--after-remove "$scripts_dir/postrm")
commit f0a79eeed911157a9095b04e34e7da79c45d4340
Merge: 3c78487 8a067f3
Author: Brett Smith <brett at curoverse.com>
Date: Mon Feb 29 12:43:38 2016 -0500
Merge branch '8413-fix-rails-postinst-chgrp-wip'
Refs #8413. Closes #8475.
commit 8a067f3805be65efd9200a8d772cc4301707dcb0
Author: Brett Smith <brett at curoverse.com>
Date: Fri Feb 26 18:13:19 2016 -0500
8413: Rails postinst doesn't chgrp root /etc/arvados.
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.
diff --git a/jenkins/rails-package-scripts/postinst.sh b/jenkins/rails-package-scripts/postinst.sh
index 5ff2a9b..6fac26b 100644
--- a/jenkins/rails-package-scripts/postinst.sh
+++ b/jenkins/rails-package-scripts/postinst.sh
@@ -94,11 +94,13 @@ setup_conffile() {
# If there's a config file in /var/www identical to the one in /etc,
# overwrite it with a symlink after porting its permissions.
elif cmp --quiet "$release_conffile" "$etc_conffile"; then
- local ownership="$(stat -c "%U:%G" "$release_conffile")"
+ local ownership="$(stat -c "%u:%g" "$release_conffile")"
+ local owning_group="${ownership#*:}"
+ if [ 0 != "$owning_group" ]; then
+ chgrp "$owning_group" "$CONFIG_PATH" /etc/arvados
+ fi
chown "$ownership" "$etc_conffile"
chmod --reference="$release_conffile" "$etc_conffile"
- chgrp "${ownership#*:}" "$CONFIG_PATH" /etc/arvados
- chmod g+rx "$CONFIG_PATH" /etc/arvados
ln --force -s "$etc_conffile" "$release_conffile"
fi
fi
commit 3c7848724d18912317d3198192004cc2fceeaa3f
Merge: ec60d7f acab2f7
Author: Brett Smith <brett at curoverse.com>
Date: Mon Feb 29 12:43:11 2016 -0500
Merge branch '8371-centos-postrm-bugfix-wip'
Refs #8371. Closes #8476.
commit acab2f7c338f245baa7e5d9dca57476d12d863bf
Author: Brett Smith <brett at curoverse.com>
Date: Fri Feb 26 18:20:41 2016 -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.
diff --git a/jenkins/rails-package-scripts/postrm.sh b/jenkins/rails-package-scripts/postrm.sh
index 8c45d2f..2d63f0b 100644
--- a/jenkins/rails-package-scripts/postrm.sh
+++ b/jenkins/rails-package-scripts/postrm.sh
@@ -14,7 +14,7 @@ purge () {
if [ "$1" = 'purge' ]; then
# This is a debian-based system and purge was requested
purge
-elif [ "$1" = "0" ] || [ "$1" = "1" ] || [ "$1" = "2" ]; then
+elif [ "$1" = "0" ]; then
# This is an rpm-based system, no guarantees are made, always purge
# Apparently yum doesn't actually remember what it installed.
# Clean those files up here, then purge.
commit ec60d7fd235835947efd8dba97213015d37b036a
Merge: 65a3779 f03b416
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date: Thu Feb 25 11:16:20 2016 -0500
Merge branch 'arvbox-fixes' no issue #
commit f03b4165fd33b2f8844a4bcda7f650a7023986f1
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date: Thu Feb 25 11:15:47 2016 -0500
Tweak slurm configuration to run as non-root user.
diff --git a/arvbox/lib/arvbox/docker/service/slurmctld/run b/arvbox/lib/arvbox/docker/service/slurmctld/run
index 7b3c6e1..bd75bd0 100755
--- a/arvbox/lib/arvbox/docker/service/slurmctld/run
+++ b/arvbox/lib/arvbox/docker/service/slurmctld/run
@@ -9,9 +9,11 @@ cat > /etc/slurm-llnl/slurm.conf <<EOF
ControlMachine=$HOSTNAME
ControlAddr=$HOSTNAME
AuthType=auth/munge
-DefaultStorageLoc=/var/log/slurm
+DefaultStorageLoc=/var/log/slurm-llnl
SelectType=select/cons_res
+SelectTypeParameters=CR_CPU_Memory
SlurmUser=arvbox
+SlurmdUser=arvbox
SlurmctldPort=7002
SlurmctldTimeout=300
SlurmdPort=7003
diff --git a/arvbox/lib/arvbox/docker/service/slurmd/run b/arvbox/lib/arvbox/docker/service/slurmd/run
index 697f7a2..865a7e6 100755
--- a/arvbox/lib/arvbox/docker/service/slurmd/run
+++ b/arvbox/lib/arvbox/docker/service/slurmd/run
@@ -3,4 +3,4 @@
exec 2>&1
set -eux -o pipefail
-exec /usr/sbin/slurmd -v -D
+exec /usr/local/lib/arvbox/runsu.sh /usr/sbin/slurmd -v -D
commit 1aa0a5407d6a4e6b861d1fcf52d8268d62b9d6d4
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date: Thu Feb 25 11:14:21 2016 -0500
Fix arvados-login-sync for vm account creation
diff --git a/arvbox/lib/arvbox/docker/service/vm/run b/arvbox/lib/arvbox/docker/service/vm/run
index b7fb9cc..0c10cb0 100755
--- a/arvbox/lib/arvbox/docker/service/vm/run
+++ b/arvbox/lib/arvbox/docker/service/vm/run
@@ -6,4 +6,16 @@ set -e
git config --system "credential.http://$localip:${services[arv-git-httpd]}/.username" none
git config --system "credential.http://$localip:${services[arv-git-httpd]}/.helper" '!cred(){ cat >/dev/null; if [ "$1" = get ]; then echo password=$ARVADOS_API_TOKEN; fi; };cred'
-exec /usr/local/lib/arvbox/runsu.sh $0-service
+/usr/local/lib/arvbox/runsu.sh $0-service
+
+cd /usr/src/arvados/services/login-sync
+
+export ARVADOS_API_HOST=$localip:${services[api]}
+export ARVADOS_API_HOST_INSECURE=1
+export ARVADOS_API_TOKEN=$(cat /var/lib/arvados/superuser_token)
+export ARVADOS_VIRTUAL_MACHINE_UUID=$(cat /var/lib/arvados/vm-uuid)
+
+while true ; do
+ bundle exec arvados-login-sync
+ sleep 120
+done
diff --git a/arvbox/lib/arvbox/docker/service/vm/run-service b/arvbox/lib/arvbox/docker/service/vm/run-service
index 5bb6825..fb209f5 100755
--- a/arvbox/lib/arvbox/docker/service/vm/run-service
+++ b/arvbox/lib/arvbox/docker/service/vm/run-service
@@ -34,8 +34,3 @@ if arv virtual_machine get --uuid $ARVADOS_VIRTUAL_MACHINE_UUID ; then
else
arv virtual_machine create --virtual-machine "$vm"
fi
-
-while true ; do
- bundle exec arvados-login-sync
- sleep 120
-done
commit e7ddc93ee0608266c34efbbfd4a84464eb8e81d2
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date: Thu Feb 25 11:12:00 2016 -0500
Generalize arvbox 'svrestart' to 'sv' no issue #
diff --git a/arvbox/bin/arvbox b/arvbox/bin/arvbox
index 7be361b..d790cb6 100755
--- a/arvbox/bin/arvbox
+++ b/arvbox/bin/arvbox
@@ -358,10 +358,9 @@ case "$subcmd" in
fi
;;
- svrestart)
+ sv)
if test -n "$1" ; then
- docker exec -ti $ARVBOX_CONTAINER sv restart "$1"
- docker exec -ti $ARVBOX_CONTAINER sv restart ready
+ docker exec -ti $ARVBOX_CONTAINER sv "$1" "$2"
else
echo "Usage: $0 $subcmd <service>"
echo "Available services:"
@@ -397,7 +396,7 @@ case "$subcmd" in
echo "reset delete arvbox arvados data (be careful!)"
echo "destroy delete all arvbox code and data (be careful!)"
echo "log <service> tail log of specified service"
- echo "svrestart <service> restart specified service inside arvbox"
+ echo "sv <start|stop|restart> <service> change state of service inside arvbox"
echo "clone <from> <to> clone an arvbox"
;;
esac
commit d7bda40439a964ab2117933aba3694cb635e23dc
Merge: 07c0534 65a3779
Author: Tom Clegg <tom at curoverse.com>
Date: Sat Feb 20 04:49:20 2016 -0500
Merge branch 'master' into 8345-llfuse-unpin
Conflicts:
jenkins/run-build-packages.sh
diff --cc jenkins/run-build-packages.sh
index d850cb2,ec19b28..ccea8a2
--- a/jenkins/run-build-packages.sh
+++ b/jenkins/run-build-packages.sh
@@@ -89,10 -89,10 +89,10 @@@ case "$TARGET" i
PYTHON2_PKG_PREFIX=python
PYTHON3_PACKAGE=python$PYTHON3_VERSION
PYTHON3_PKG_PREFIX=python3
- PYTHON_BACKPORTS=(python-gflags pyvcf google-api-python-client \
- oauth2client pyasn1==0.1.7 pyasn1-modules==0.0.5 \
+ PYTHON_BACKPORTS=(python-gflags pyvcf google-api-python-client==1.4.2 \
+ oauth2client==1.5.2 pyasn1==0.1.7 pyasn1-modules==0.0.5 \
rsa uritemplate httplib2 ws4py pykka six pyexecjs jsonschema \
- ciso8601 pycrypto backports.ssl_match_hostname llfuse==0.41.1 \
+ ciso8601 pycrypto backports.ssl_match_hostname llfuse \
'pycurl<7.21.5')
PYTHON3_BACKPORTS=(docker-py six requests websocket-client)
;;
@@@ -102,10 -102,10 +102,10 @@@
PYTHON2_PKG_PREFIX=python
PYTHON3_PACKAGE=python$PYTHON3_VERSION
PYTHON3_PKG_PREFIX=python3
- PYTHON_BACKPORTS=(python-gflags pyvcf google-api-python-client \
- oauth2client pyasn1==0.1.7 pyasn1-modules==0.0.5 \
+ PYTHON_BACKPORTS=(python-gflags pyvcf google-api-python-client==1.4.2 \
+ oauth2client==1.5.2 pyasn1==0.1.7 pyasn1-modules==0.0.5 \
rsa uritemplate httplib2 ws4py pykka six pyexecjs jsonschema \
- ciso8601 pycrypto backports.ssl_match_hostname llfuse==0.41.1 \
+ ciso8601 pycrypto backports.ssl_match_hostname llfuse \
'pycurl<7.21.5')
PYTHON3_BACKPORTS=(docker-py six requests websocket-client)
;;
@@@ -115,11 -115,10 +115,11 @@@
PYTHON2_PKG_PREFIX=python
PYTHON3_PACKAGE=python$PYTHON3_VERSION
PYTHON3_PKG_PREFIX=python3
- PYTHON_BACKPORTS=(python-gflags pyvcf google-api-python-client \
- oauth2client pyasn1==0.1.7 pyasn1-modules==0.0.5 \
+ PYTHON_BACKPORTS=(python-gflags pyvcf google-api-python-client==1.4.2 \
+ oauth2client==1.5.2 pyasn1==0.1.7 pyasn1-modules==0.0.5 \
rsa uritemplate httplib2 ws4py pykka six pyexecjs jsonschema \
- ciso8601 pycrypto backports.ssl_match_hostname llfuse==0.41.1 \
+ ciso8601 pycrypto backports.ssl_match_hostname llfuse \
+ contextlib2 \
'pycurl<7.21.5')
PYTHON3_BACKPORTS=(docker-py six requests websocket-client)
;;
@@@ -129,8 -128,8 +129,8 @@@
PYTHON2_PKG_PREFIX=python
PYTHON3_PACKAGE=python$PYTHON3_VERSION
PYTHON3_PKG_PREFIX=python3
- PYTHON_BACKPORTS=(pyasn1==0.1.7 pyvcf pyasn1-modules==0.0.5 llfuse==0.41.1 ciso8601 \
+ PYTHON_BACKPORTS=(pyasn1==0.1.7 pyvcf pyasn1-modules==0.0.5 llfuse ciso8601 \
- google-api-python-client six uritemplate oauth2client httplib2 \
+ google-api-python-client==1.4.2 six uritemplate oauth2client==1.5.2 httplib2 \
rsa 'pycurl<7.21.5' backports.ssl_match_hostname)
PYTHON3_BACKPORTS=(docker-py requests websocket-client)
;;
@@@ -140,11 -139,11 +140,11 @@@
PYTHON2_PKG_PREFIX=$PYTHON2_PACKAGE
PYTHON3_PACKAGE=$(rpm -qf "$(which python$PYTHON3_VERSION)" --queryformat '%{NAME}\n')
PYTHON3_PKG_PREFIX=$PYTHON3_PACKAGE
- PYTHON_BACKPORTS=(python-gflags pyvcf google-api-python-client \
- oauth2client pyasn1==0.1.7 pyasn1-modules==0.0.5 \
+ PYTHON_BACKPORTS=(python-gflags pyvcf google-api-python-client==1.4.2 \
+ oauth2client==1.5.2 pyasn1==0.1.7 pyasn1-modules==0.0.5 \
rsa uritemplate httplib2 ws4py pykka six pyexecjs jsonschema \
ciso8601 pycrypto backports.ssl_match_hostname 'pycurl<7.21.5' \
- python-daemon lockfile llfuse==0.41.1 'pbr<1.0')
+ python-daemon lockfile llfuse 'pbr<1.0')
PYTHON3_BACKPORTS=(docker-py six requests websocket-client)
export PYCURL_SSL_LIBRARY=nss
;;
commit 65a3779e6968835bc0b1fc1b103a408fd4eec4aa
Author: Tom Clegg <tom at curoverse.com>
Date: Sat Feb 20 03:39:03 2016 -0500
Install bundler gem in all build containers.
RVM used to install bundler by default, but now it doesn't.
https://github.com/rvm/rvm/commit/dc07790042d78c525d7d52616c78cb2d55c0e764
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.
No issue #
diff --git a/jenkins/package-build-dockerfiles/centos6/Dockerfile b/jenkins/package-build-dockerfiles/centos6/Dockerfile
index 2bbec2e..8a9d931 100644
--- a/jenkins/package-build-dockerfiles/centos6/Dockerfile
+++ b/jenkins/package-build-dockerfiles/centos6/Dockerfile
@@ -13,7 +13,7 @@ RUN gpg --keyserver pool.sks-keyservers.net --recv-keys D39DC0E3 && \
curl -L https://get.rvm.io | bash -s stable && \
/usr/local/rvm/bin/rvm install 2.1 && \
/usr/local/rvm/bin/rvm alias create default ruby-2.1 && \
- /usr/local/rvm/bin/rvm-exec default gem install bundle fpm
+ /usr/local/rvm/bin/rvm-exec default gem install bundler fpm
# Need to "touch" RPM database to workaround bug in interaction between
# overlayfs and yum (https://bugzilla.redhat.com/show_bug.cgi?id=1213602)
diff --git a/jenkins/package-build-dockerfiles/debian7/Dockerfile b/jenkins/package-build-dockerfiles/debian7/Dockerfile
index 21b554f..0d04590 100644
--- a/jenkins/package-build-dockerfiles/debian7/Dockerfile
+++ b/jenkins/package-build-dockerfiles/debian7/Dockerfile
@@ -9,7 +9,7 @@ RUN gpg --keyserver pool.sks-keyservers.net --recv-keys D39DC0E3 && \
curl -L https://get.rvm.io | bash -s stable && \
/usr/local/rvm/bin/rvm install 2.1 && \
/usr/local/rvm/bin/rvm alias create default ruby-2.1 && \
- /usr/local/rvm/bin/rvm-exec default gem install fpm
+ /usr/local/rvm/bin/rvm-exec default gem install bundler fpm
# Install golang binary
ADD generated/golang-amd64.tar.gz /usr/local/
diff --git a/jenkins/package-build-dockerfiles/debian8/Dockerfile b/jenkins/package-build-dockerfiles/debian8/Dockerfile
index 6fb622a..fcd390f 100644
--- a/jenkins/package-build-dockerfiles/debian8/Dockerfile
+++ b/jenkins/package-build-dockerfiles/debian8/Dockerfile
@@ -9,7 +9,7 @@ RUN gpg --keyserver pool.sks-keyservers.net --recv-keys D39DC0E3 && \
curl -L https://get.rvm.io | bash -s stable && \
/usr/local/rvm/bin/rvm install 2.1 && \
/usr/local/rvm/bin/rvm alias create default ruby-2.1 && \
- /usr/local/rvm/bin/rvm-exec default gem install fpm
+ /usr/local/rvm/bin/rvm-exec default gem install bundler fpm
# Install golang binary
ADD generated/golang-amd64.tar.gz /usr/local/
diff --git a/jenkins/package-build-dockerfiles/ubuntu1204/Dockerfile b/jenkins/package-build-dockerfiles/ubuntu1204/Dockerfile
index 4984d37..7d480a5 100644
--- a/jenkins/package-build-dockerfiles/ubuntu1204/Dockerfile
+++ b/jenkins/package-build-dockerfiles/ubuntu1204/Dockerfile
@@ -9,7 +9,7 @@ RUN gpg --keyserver pool.sks-keyservers.net --recv-keys D39DC0E3 && \
curl -L https://get.rvm.io | bash -s stable && \
/usr/local/rvm/bin/rvm install 2.1 && \
/usr/local/rvm/bin/rvm alias create default ruby-2.1 && \
- /usr/local/rvm/bin/rvm-exec default gem install fpm
+ /usr/local/rvm/bin/rvm-exec default gem install bundler fpm
# Install golang binary
ADD generated/golang-amd64.tar.gz /usr/local/
diff --git a/jenkins/package-build-dockerfiles/ubuntu1404/Dockerfile b/jenkins/package-build-dockerfiles/ubuntu1404/Dockerfile
index a3d6c8d..0b8ee7a 100644
--- a/jenkins/package-build-dockerfiles/ubuntu1404/Dockerfile
+++ b/jenkins/package-build-dockerfiles/ubuntu1404/Dockerfile
@@ -9,7 +9,7 @@ RUN gpg --keyserver pool.sks-keyservers.net --recv-keys D39DC0E3 && \
curl -L https://get.rvm.io | bash -s stable && \
/usr/local/rvm/bin/rvm install 2.1 && \
/usr/local/rvm/bin/rvm alias create default ruby-2.1 && \
- /usr/local/rvm/bin/rvm-exec default gem install fpm
+ /usr/local/rvm/bin/rvm-exec default gem install bundler fpm
# Install golang binary
ADD generated/golang-amd64.tar.gz /usr/local/
commit 07c05348740cd932e54aecfa52bf2a1260b3948e
Author: Tom Clegg <tom at curoverse.com>
Date: Sat Feb 20 03:04:50 2016 -0500
Fix dependencies after installing built package. refs #8345
diff --git a/jenkins/run-library.sh b/jenkins/run-library.sh
index 117e2d2..0534b3d 100755
--- a/jenkins/run-library.sh
+++ b/jenkins/run-library.sh
@@ -269,6 +269,7 @@ fpm_build () {
echo "Attemping to install build_dep $pkg using apt-get"
apt-get install -y "$pkg"
fi
+ apt-get -y -f install
else
pkg_rpm=$(ls "$WORKSPACE/packages/$TARGET/$pkg"-[0-9]*.rpm | sort -rg | awk 'NR==1')
if [[ -e $pkg_rpm ]]; then
commit 726ff8da135916c0cd6e3e0e4c9614a91d3ccfca
Author: Ward Vandewege <ward at curoverse.com>
Date: Fri Feb 19 23:58:09 2016 -0500
Pin package builds of the google-api-python-client and oauth2client
packages to a known-working version.
no issue #
diff --git a/jenkins/run-build-packages.sh b/jenkins/run-build-packages.sh
index 97251c5..ec19b28 100755
--- a/jenkins/run-build-packages.sh
+++ b/jenkins/run-build-packages.sh
@@ -89,8 +89,8 @@ case "$TARGET" in
PYTHON2_PKG_PREFIX=python
PYTHON3_PACKAGE=python$PYTHON3_VERSION
PYTHON3_PKG_PREFIX=python3
- PYTHON_BACKPORTS=(python-gflags pyvcf google-api-python-client \
- oauth2client pyasn1==0.1.7 pyasn1-modules==0.0.5 \
+ PYTHON_BACKPORTS=(python-gflags pyvcf google-api-python-client==1.4.2 \
+ oauth2client==1.5.2 pyasn1==0.1.7 pyasn1-modules==0.0.5 \
rsa uritemplate httplib2 ws4py pykka six pyexecjs jsonschema \
ciso8601 pycrypto backports.ssl_match_hostname llfuse==0.41.1 \
'pycurl<7.21.5')
@@ -102,8 +102,8 @@ case "$TARGET" in
PYTHON2_PKG_PREFIX=python
PYTHON3_PACKAGE=python$PYTHON3_VERSION
PYTHON3_PKG_PREFIX=python3
- PYTHON_BACKPORTS=(python-gflags pyvcf google-api-python-client \
- oauth2client pyasn1==0.1.7 pyasn1-modules==0.0.5 \
+ PYTHON_BACKPORTS=(python-gflags pyvcf google-api-python-client==1.4.2 \
+ oauth2client==1.5.2 pyasn1==0.1.7 pyasn1-modules==0.0.5 \
rsa uritemplate httplib2 ws4py pykka six pyexecjs jsonschema \
ciso8601 pycrypto backports.ssl_match_hostname llfuse==0.41.1 \
'pycurl<7.21.5')
@@ -115,8 +115,8 @@ case "$TARGET" in
PYTHON2_PKG_PREFIX=python
PYTHON3_PACKAGE=python$PYTHON3_VERSION
PYTHON3_PKG_PREFIX=python3
- PYTHON_BACKPORTS=(python-gflags pyvcf google-api-python-client \
- oauth2client pyasn1==0.1.7 pyasn1-modules==0.0.5 \
+ PYTHON_BACKPORTS=(python-gflags pyvcf google-api-python-client==1.4.2 \
+ oauth2client==1.5.2 pyasn1==0.1.7 pyasn1-modules==0.0.5 \
rsa uritemplate httplib2 ws4py pykka six pyexecjs jsonschema \
ciso8601 pycrypto backports.ssl_match_hostname llfuse==0.41.1 \
'pycurl<7.21.5')
@@ -129,7 +129,7 @@ case "$TARGET" in
PYTHON3_PACKAGE=python$PYTHON3_VERSION
PYTHON3_PKG_PREFIX=python3
PYTHON_BACKPORTS=(pyasn1==0.1.7 pyvcf pyasn1-modules==0.0.5 llfuse==0.41.1 ciso8601 \
- google-api-python-client six uritemplate oauth2client httplib2 \
+ google-api-python-client==1.4.2 six uritemplate oauth2client==1.5.2 httplib2 \
rsa 'pycurl<7.21.5' backports.ssl_match_hostname)
PYTHON3_BACKPORTS=(docker-py requests websocket-client)
;;
@@ -139,8 +139,8 @@ case "$TARGET" in
PYTHON2_PKG_PREFIX=$PYTHON2_PACKAGE
PYTHON3_PACKAGE=$(rpm -qf "$(which python$PYTHON3_VERSION)" --queryformat '%{NAME}\n')
PYTHON3_PKG_PREFIX=$PYTHON3_PACKAGE
- PYTHON_BACKPORTS=(python-gflags pyvcf google-api-python-client \
- oauth2client pyasn1==0.1.7 pyasn1-modules==0.0.5 \
+ PYTHON_BACKPORTS=(python-gflags pyvcf google-api-python-client==1.4.2 \
+ oauth2client==1.5.2 pyasn1==0.1.7 pyasn1-modules==0.0.5 \
rsa uritemplate httplib2 ws4py pykka six pyexecjs jsonschema \
ciso8601 pycrypto backports.ssl_match_hostname 'pycurl<7.21.5' \
python-daemon lockfile llfuse==0.41.1 'pbr<1.0')
commit 4640c72bbd678b70827a6d3ecaf13a8e502dfd2a
Author: Tom Clegg <tom at curoverse.com>
Date: Fri Feb 19 22:46:34 2016 -0500
8345: Add libselinux-dev build-dep missed by awk script, skip "recommended" packages
diff --git a/jenkins/run-build-packages.sh b/jenkins/run-build-packages.sh
index 82d8d70..d850cb2 100755
--- a/jenkins/run-build-packages.sh
+++ b/jenkins/run-build-packages.sh
@@ -366,7 +366,7 @@ if [[ $TARGET =~ ubuntu1204 ]]; then
file="fuse_2.9.2-4ubuntu4.14.04.1.dsc" && curl -L -o "${file}" "http://archive.ubuntu.com/ubuntu/pool/main/f/fuse/${file}"
# install dpkg-source and dpkg-buildpackage commands
- apt-get install -y dpkg-dev
+ apt-get install -y --no-install-recommends dpkg-dev
# extract source and apply patches
dpkg-source -x fuse_2.9.2-4ubuntu4.14.04.1.dsc
@@ -386,7 +386,7 @@ if [[ $TARGET =~ ubuntu1204 ]]; then
mv debian/changelog.new debian/changelog
# install build-deps and build
- apt-get install -y $(awk 'BEGIN {FS=":"} $1=="Build-Depends" {n=split($2,deps,","); for (i=0; i<n; i++) {split(deps[i],pkg," "); if (pkg[1]!="") {print pkg[1]}}}' debian/control)
+ apt-get install -y --no-install-recommends debhelper dh-autoreconf libselinux-dev
dpkg-buildpackage -rfakeroot -b
)
fpm_build "$LIBFUSE_DIR/fuse_2.9.2-5_amd64.deb" fuse "Ubuntu Developers" deb "2.9.2" --iteration 5
commit 8600760481ba1724cc18bd9b8be7b99bbca29dea
Author: Joshua C. Randall <jcrandall at alum.mit.edu>
Date: Fri Feb 19 14:26:35 2016 +0000
uses variable for curl output filename and makes curl foLlow redirects
diff --git a/jenkins/run-build-packages.sh b/jenkins/run-build-packages.sh
index 7b0c8ec..82d8d70 100755
--- a/jenkins/run-build-packages.sh
+++ b/jenkins/run-build-packages.sh
@@ -361,9 +361,9 @@ if [[ $TARGET =~ ubuntu1204 ]]; then
(
cd $LIBFUSE_DIR
# download fuse 2.9.2 ubuntu 14.04 source package
- curl -o fuse_2.9.2.orig.tar.xz http://archive.ubuntu.com/ubuntu/pool/main/f/fuse/fuse_2.9.2.orig.tar.xz
- curl -o fuse_2.9.2-4ubuntu4.14.04.1.debian.tar.xz http://archive.ubuntu.com/ubuntu/pool/main/f/fuse/fuse_2.9.2-4ubuntu4.14.04.1.debian.tar.xz
- curl -o fuse_2.9.2-4ubuntu4.14.04.1.dsc http://archive.ubuntu.com/ubuntu/pool/main/f/fuse/fuse_2.9.2-4ubuntu4.14.04.1.dsc
+ file="fuse_2.9.2.orig.tar.xz" && curl -L -o "${file}" "http://archive.ubuntu.com/ubuntu/pool/main/f/fuse/${file}"
+ file="fuse_2.9.2-4ubuntu4.14.04.1.debian.tar.xz" && curl -L -o "${file}" "http://archive.ubuntu.com/ubuntu/pool/main/f/fuse/${file}"
+ file="fuse_2.9.2-4ubuntu4.14.04.1.dsc" && curl -L -o "${file}" "http://archive.ubuntu.com/ubuntu/pool/main/f/fuse/${file}"
# install dpkg-source and dpkg-buildpackage commands
apt-get install -y dpkg-dev
@@ -401,7 +401,7 @@ elif [[ $TARGET =~ centos6 ]]; then
(
cd "$LIBFUSE_DIR"
# download fuse 2.9.2 centos 7 source rpm
- curl -o fuse-2.9.2-6.el7.src.rpm "http://vault.centos.org/7.2.1511/os/Source/SPackages/fuse-2.9.2-6.el7.src.rpm"
+ file="fuse-2.9.2-6.el7.src.rpm" && curl -L -o "${file}" "http://vault.centos.org/7.2.1511/os/Source/SPackages/${file}"
(
# modify source rpm spec to remove conflict on filesystem version
mkdir -p /root/rpmbuild/SOURCES
commit b7e4507cfe19368f0f80dddfde111f2dd0a690fb
Author: Joshua C. Randall <jcrandall at alum.mit.edu>
Date: Fri Feb 19 14:18:06 2016 +0000
cleans up debian/changelog generation per tomclegg's comment
diff --git a/jenkins/run-build-packages.sh b/jenkins/run-build-packages.sh
index 56a67f1..7b0c8ec 100755
--- a/jenkins/run-build-packages.sh
+++ b/jenkins/run-build-packages.sh
@@ -374,17 +374,18 @@ if [[ $TARGET =~ ubuntu1204 ]]; then
# add new version to changelog
cd fuse-2.9.2
- mv debian/changelog debian/changelog.old
- echo "fuse (2.9.2-5) precise; urgency=low" > debian/changelog
- echo "" >> debian/changelog
- echo " * Backported from trusty-security to precise" >> debian/changelog
- echo "" >> debian/changelog
- echo " -- Joshua Randall <jcrandall at alum.mit.edu> Thu, 4 Feb 2016 11:31:00 -0000" >> debian/changelog
- echo "" >> debian/changelog
- cat debian/changelog.old >> debian/changelog
- rm -f debian/changelog.old
-
- # install build-deps and build
+ (
+ echo "fuse (2.9.2-5) precise; urgency=low"
+ echo
+ echo " * Backported from trusty-security to precise"
+ echo
+ echo " -- Joshua Randall <jcrandall at alum.mit.edu> Thu, 4 Feb 2016 11:31:00 -0000"
+ echo
+ cat debian/changelog
+ ) > debian/changelog.new
+ mv debian/changelog.new debian/changelog
+
+ # install build-deps and build
apt-get install -y $(awk 'BEGIN {FS=":"} $1=="Build-Depends" {n=split($2,deps,","); for (i=0; i<n; i++) {split(deps[i],pkg," "); if (pkg[1]!="") {print pkg[1]}}}' debian/control)
dpkg-buildpackage -rfakeroot -b
)
commit abb1db4b4dcb4931c7fa2c03e21b994ddd911a3c
Author: Joshua C. Randall <jcrandall at alum.mit.edu>
Date: Fri Feb 19 14:11:47 2016 +0000
adds safety quotes and '-[0-9]' before wildcard as suggested in PR #6 comments
diff --git a/jenkins/run-library.sh b/jenkins/run-library.sh
index 7198345..117e2d2 100755
--- a/jenkins/run-library.sh
+++ b/jenkins/run-library.sh
@@ -270,7 +270,7 @@ fpm_build () {
apt-get install -y "$pkg"
fi
else
- pkg_rpm=$(ls $WORKSPACE/packages/$TARGET/$pkg*.rpm | sort -rg | awk 'NR==1')
+ pkg_rpm=$(ls "$WORKSPACE/packages/$TARGET/$pkg"-[0-9]*.rpm | sort -rg | awk 'NR==1')
if [[ -e $pkg_rpm ]]; then
echo "Installing build_dep $pkg from $pkg_rpm"
rpm -i "$pkg_rpm"
commit 99e1256022759020b0bba971ea5c4e252dab4611
Author: Joshua C. Randall <jcrandall at alum.mit.edu>
Date: Fri Feb 19 14:09:34 2016 +0000
adds safety quotes and '_' before wildcard as suggested in PR #6 comments
diff --git a/jenkins/run-library.sh b/jenkins/run-library.sh
index 3901882..7198345 100755
--- a/jenkins/run-library.sh
+++ b/jenkins/run-library.sh
@@ -261,7 +261,7 @@ fpm_build () {
fi
for pkg in "${build_depends[@]}"; do
if [[ $TARGET =~ debian|ubuntu ]]; then
- pkg_deb=$(ls $WORKSPACE/packages/$TARGET/$pkg*.deb | sort -rg | awk 'NR==1')
+ pkg_deb=$(ls "$WORKSPACE/packages/$TARGET/$pkg_"*.deb | sort -rg | awk 'NR==1')
if [[ -e $pkg_deb ]]; then
echo "Installing build_dep $pkg from $pkg_deb"
dpkg -i "$pkg_deb"
commit e407a1d4db57c41cebebaf8f3d663785df8f5fb4
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date: Thu Feb 18 16:28:29 2016 -0500
Run slurmctld and slurmd inside arvbox. refs #6518
diff --git a/arvbox/lib/arvbox/docker/Dockerfile.base b/arvbox/lib/arvbox/docker/Dockerfile.base
index 160afee..280ac68 100644
--- a/arvbox/lib/arvbox/docker/Dockerfile.base
+++ b/arvbox/lib/arvbox/docker/Dockerfile.base
@@ -10,7 +10,7 @@ RUN apt-get update && \
pkg-config libattr1-dev python-llfuse python-pycurl \
libwww-perl libio-socket-ssl-perl libcrypt-ssleay-perl \
libjson-perl nginx gitolite3 lsof python-epydoc graphviz \
- apt-transport-https ca-certificates
+ apt-transport-https ca-certificates slurm-wlm
VOLUME /var/lib/docker
VOLUME /var/log/nginx
@@ -38,8 +38,5 @@ ADD crunch-setup.sh gitolite.rc \
application_yml_override.py \
/usr/local/lib/arvbox/
-ADD service/ /var/lib/arvbox/service
-RUN rmdir /etc/service && ln -sf /var/lib/arvbox/service /etc
-
# Start the supervisor.
CMD ["/usr/local/bin/runsvinit"]
diff --git a/arvbox/lib/arvbox/docker/Dockerfile.demo b/arvbox/lib/arvbox/docker/Dockerfile.demo
index d3e36c6..1f13415 100644
--- a/arvbox/lib/arvbox/docker/Dockerfile.demo
+++ b/arvbox/lib/arvbox/docker/Dockerfile.demo
@@ -4,6 +4,9 @@ RUN cd /usr/src && \
git clone https://github.com/curoverse/arvados.git && \
git clone https://github.com/curoverse/sso-devise-omniauth-provider.git sso
+ADD service/ /var/lib/arvbox/service
+RUN rmdir /etc/service && ln -sf /var/lib/arvbox/service /etc
+
RUN chown -R 1000:1000 /usr/src && /usr/local/lib/arvbox/createusers.sh
RUN sudo -u arvbox /var/lib/arvbox/service/sso/run-service --only-deps
diff --git a/arvbox/lib/arvbox/docker/Dockerfile.dev b/arvbox/lib/arvbox/docker/Dockerfile.dev
index 5ec73bb..051c274 100644
--- a/arvbox/lib/arvbox/docker/Dockerfile.dev
+++ b/arvbox/lib/arvbox/docker/Dockerfile.dev
@@ -10,4 +10,7 @@ RUN set -e && \
tar -C /usr/local -xjf /tmp/$PJS.tar.bz2 && \
ln -s ../$PJS/bin/phantomjs /usr/local/bin/
+ADD service/ /var/lib/arvbox/service
+RUN rmdir /etc/service && ln -sf /var/lib/arvbox/service /etc
+
RUN mkdir /etc/test-service && ln -sf /var/lib/arvbox/service/postgres /etc/test-service
diff --git a/arvbox/lib/arvbox/docker/service/slurmctld/log/main/.gitstub b/arvbox/lib/arvbox/docker/service/slurmctld/log/main/.gitstub
new file mode 100644
index 0000000..e69de29
diff --git a/arvbox/lib/arvbox/docker/service/slurmctld/log/run b/arvbox/lib/arvbox/docker/service/slurmctld/log/run
new file mode 120000
index 0000000..d6aef4a
--- /dev/null
+++ b/arvbox/lib/arvbox/docker/service/slurmctld/log/run
@@ -0,0 +1 @@
+/usr/local/lib/arvbox/logger
\ No newline at end of file
diff --git a/arvbox/lib/arvbox/docker/service/slurmctld/run b/arvbox/lib/arvbox/docker/service/slurmctld/run
new file mode 100755
index 0000000..7b3c6e1
--- /dev/null
+++ b/arvbox/lib/arvbox/docker/service/slurmctld/run
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+exec 2>&1
+set -eux -o pipefail
+
+. /usr/local/lib/arvbox/common.sh
+
+cat > /etc/slurm-llnl/slurm.conf <<EOF
+ControlMachine=$HOSTNAME
+ControlAddr=$HOSTNAME
+AuthType=auth/munge
+DefaultStorageLoc=/var/log/slurm
+SelectType=select/cons_res
+SlurmUser=arvbox
+SlurmctldPort=7002
+SlurmctldTimeout=300
+SlurmdPort=7003
+SlurmdSpoolDir=/var/tmp/slurmd.spool
+SlurmdTimeout=300
+StateSaveLocation=/var/tmp/slurm.state
+NodeName=$HOSTNAME
+PartitionName=compute State=UP Default=YES Nodes=$HOSTNAME
+EOF
+
+mkdir -p /var/run/munge
+
+/usr/sbin/munged -f
+
+exec /usr/sbin/slurmctld -v -D
diff --git a/arvbox/lib/arvbox/docker/service/slurmd/log/main/.gitstub b/arvbox/lib/arvbox/docker/service/slurmd/log/main/.gitstub
new file mode 100644
index 0000000..e69de29
diff --git a/arvbox/lib/arvbox/docker/service/slurmd/log/run b/arvbox/lib/arvbox/docker/service/slurmd/log/run
new file mode 120000
index 0000000..d6aef4a
--- /dev/null
+++ b/arvbox/lib/arvbox/docker/service/slurmd/log/run
@@ -0,0 +1 @@
+/usr/local/lib/arvbox/logger
\ No newline at end of file
diff --git a/arvbox/lib/arvbox/docker/service/slurmd/run b/arvbox/lib/arvbox/docker/service/slurmd/run
new file mode 100755
index 0000000..697f7a2
--- /dev/null
+++ b/arvbox/lib/arvbox/docker/service/slurmd/run
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+exec 2>&1
+set -eux -o pipefail
+
+exec /usr/sbin/slurmd -v -D
commit f46095f12c8470a4eac64997bef622e5f26cafb9
Author: Joshua Randall <joshua.randall at sanger.ac.uk>
Date: Fri Feb 5 15:16:37 2016 +0000
adds centos6 backport of fuse 2.9.2
diff --git a/jenkins/package-build-dockerfiles/centos6/Dockerfile b/jenkins/package-build-dockerfiles/centos6/Dockerfile
index 2bbec2e..64905b1 100644
--- a/jenkins/package-build-dockerfiles/centos6/Dockerfile
+++ b/jenkins/package-build-dockerfiles/centos6/Dockerfile
@@ -2,7 +2,7 @@ FROM centos:6
MAINTAINER Brett Smith <brett at curoverse.com>
# Install build dependencies provided in base distribution
-RUN yum -q -y install make automake gcc gcc-c++ libyaml-devel patch readline-devel zlib-devel libffi-devel openssl-devel bzip2 libtool bison sqlite-devel rpm-build git perl-ExtUtils-MakeMaker fuse-devel libattr-devel nss-devel libcurl-devel which tar scl-utils centos-release-SCL postgresql-devel
+RUN yum -q -y install make automake gcc gcc-c++ libyaml-devel patch readline-devel zlib-devel libffi-devel openssl-devel bzip2 libtool bison sqlite-devel rpm-build git perl-ExtUtils-MakeMaker libattr-devel nss-devel libcurl-devel which tar scl-utils centos-release-SCL postgresql-devel
# Install golang binary
ADD generated/golang-amd64.tar.gz /usr/local/
diff --git a/jenkins/run-build-packages.sh b/jenkins/run-build-packages.sh
index 792325a..56a67f1 100755
--- a/jenkins/run-build-packages.sh
+++ b/jenkins/run-build-packages.sh
@@ -355,8 +355,8 @@ LIBCLOUD_DIR=$(mktemp -d)
fpm_build $LIBCLOUD_DIR "$PYTHON2_PKG_PREFIX"-apache-libcloud
rm -rf $LIBCLOUD_DIR
-# libfuse 2.9.2 on Ubuntu 12.04
if [[ $TARGET =~ ubuntu1204 ]]; then
+ # port libfuse 2.9.2 to Ubuntu 12.04
LIBFUSE_DIR=$(mktemp -d)
(
cd $LIBFUSE_DIR
@@ -365,11 +365,12 @@ if [[ $TARGET =~ ubuntu1204 ]]; then
curl -o fuse_2.9.2-4ubuntu4.14.04.1.debian.tar.xz http://archive.ubuntu.com/ubuntu/pool/main/f/fuse/fuse_2.9.2-4ubuntu4.14.04.1.debian.tar.xz
curl -o fuse_2.9.2-4ubuntu4.14.04.1.dsc http://archive.ubuntu.com/ubuntu/pool/main/f/fuse/fuse_2.9.2-4ubuntu4.14.04.1.dsc
- # install dpkg-dev for dpkg-source and dpkg-buildpackage commands
+ # install dpkg-source and dpkg-buildpackage commands
apt-get install -y dpkg-dev
# extract source and apply patches
dpkg-source -x fuse_2.9.2-4ubuntu4.14.04.1.dsc
+ rm -f fuse_2.9.2.orig.tar.xz fuse_2.9.2-4ubuntu4.14.04.1.debian.tar.xz fuse_2.9.2-4ubuntu4.14.04.1.dsc
# add new version to changelog
cd fuse-2.9.2
@@ -381,16 +382,44 @@ if [[ $TARGET =~ ubuntu1204 ]]; then
echo " -- Joshua Randall <jcrandall at alum.mit.edu> Thu, 4 Feb 2016 11:31:00 -0000" >> debian/changelog
echo "" >> debian/changelog
cat debian/changelog.old >> debian/changelog
- rm debian/changelog.old
+ rm -f debian/changelog.old
# install build-deps and build
apt-get install -y $(awk 'BEGIN {FS=":"} $1=="Build-Depends" {n=split($2,deps,","); for (i=0; i<n; i++) {split(deps[i],pkg," "); if (pkg[1]!="") {print pkg[1]}}}' debian/control)
dpkg-buildpackage -rfakeroot -b
)
- fpm_build $LIBFUSE_DIR/fuse_2.9.2-5_amd64.deb fuse "Ubuntu Developers" deb "2.9.2" --iteration 5
- fpm_build $LIBFUSE_DIR/libfuse2_2.9.2-5_amd64.deb libfuse2 "Ubuntu Developers" deb "2.9.2" --iteration 5
- fpm_build $LIBFUSE_DIR/libfuse-dev_2.9.2-5_amd64.deb libfuse-dev "Ubuntu Developers" deb "2.9.2" --iteration 5
+ fpm_build "$LIBFUSE_DIR/fuse_2.9.2-5_amd64.deb" fuse "Ubuntu Developers" deb "2.9.2" --iteration 5
+ fpm_build "$LIBFUSE_DIR/libfuse2_2.9.2-5_amd64.deb" libfuse2 "Ubuntu Developers" deb "2.9.2" --iteration 5
+ fpm_build "$LIBFUSE_DIR/libfuse-dev_2.9.2-5_amd64.deb" libfuse-dev "Ubuntu Developers" deb "2.9.2" --iteration 5
rm -rf $LIBFUSE_DIR
+elif [[ $TARGET =~ centos6 ]]; then
+ # port fuse 2.9.2 to centos 6
+ # install tools to build rpm from source
+ yum install -y rpm-build redhat-rpm-config
+ LIBFUSE_DIR=$(mktemp -d)
+ (
+ cd "$LIBFUSE_DIR"
+ # download fuse 2.9.2 centos 7 source rpm
+ curl -o fuse-2.9.2-6.el7.src.rpm "http://vault.centos.org/7.2.1511/os/Source/SPackages/fuse-2.9.2-6.el7.src.rpm"
+ (
+ # modify source rpm spec to remove conflict on filesystem version
+ mkdir -p /root/rpmbuild/SOURCES
+ cd /root/rpmbuild/SOURCES
+ rpm2cpio ${LIBFUSE_DIR}/fuse-2.9.2-6.el7.src.rpm | cpio -i
+ perl -pi -e 's/Conflicts:\s*filesystem.*//g' fuse.spec
+ )
+ # build rpms from source
+ rpmbuild -bb /root/rpmbuild/SOURCES/fuse.spec
+ rm -f fuse-2.9.2-6.el7.src.rpm
+ # move built RPMs to LIBFUSE_DIR
+ mv "/root/rpmbuild/RPMS/x86_64/fuse-2.9.2-6.el6.x86_64.rpm" ${LIBFUSE_DIR}/
+ mv "/root/rpmbuild/RPMS/x86_64/fuse-libs-2.9.2-6.el6.x86_64.rpm" ${LIBFUSE_DIR}/
+ mv "/root/rpmbuild/RPMS/x86_64/fuse-devel-2.9.2-6.el6.x86_64.rpm" ${LIBFUSE_DIR}/
+ rm -rf /root/rpmbuild
+ )
+ fpm_build "$LIBFUSE_DIR/fuse-libs-2.9.2-6.el6.x86_64.rpm" fuse-libs "Centos Developers" rpm "2.9.2" --iteration 5
+ fpm_build "$LIBFUSE_DIR/fuse-2.9.2-6.el6.x86_64.rpm" fuse "Centos Developers" rpm "2.9.2" --iteration 5 --no-auto-depends
+ fpm_build "$LIBFUSE_DIR/fuse-devel-2.9.2-6.el6.x86_64.rpm" fuse-devel "Centos Developers" rpm "2.9.2" --iteration 5 --no-auto-depends
fi
# Python 2 dependencies
commit 11280265c0ce229e5bd617583a06e630901a8617
Author: Joshua Randall <joshua.randall at sanger.ac.uk>
Date: Wed Feb 3 12:48:19 2016 +0000
Unpins llfuse version and adds fuse 2.9.2 backport
diff --git a/jenkins/run-build-packages.sh b/jenkins/run-build-packages.sh
index 97251c5..792325a 100755
--- a/jenkins/run-build-packages.sh
+++ b/jenkins/run-build-packages.sh
@@ -92,7 +92,7 @@ case "$TARGET" in
PYTHON_BACKPORTS=(python-gflags pyvcf google-api-python-client \
oauth2client pyasn1==0.1.7 pyasn1-modules==0.0.5 \
rsa uritemplate httplib2 ws4py pykka six pyexecjs jsonschema \
- ciso8601 pycrypto backports.ssl_match_hostname llfuse==0.41.1 \
+ ciso8601 pycrypto backports.ssl_match_hostname llfuse \
'pycurl<7.21.5')
PYTHON3_BACKPORTS=(docker-py six requests websocket-client)
;;
@@ -105,7 +105,7 @@ case "$TARGET" in
PYTHON_BACKPORTS=(python-gflags pyvcf google-api-python-client \
oauth2client pyasn1==0.1.7 pyasn1-modules==0.0.5 \
rsa uritemplate httplib2 ws4py pykka six pyexecjs jsonschema \
- ciso8601 pycrypto backports.ssl_match_hostname llfuse==0.41.1 \
+ ciso8601 pycrypto backports.ssl_match_hostname llfuse \
'pycurl<7.21.5')
PYTHON3_BACKPORTS=(docker-py six requests websocket-client)
;;
@@ -118,7 +118,8 @@ case "$TARGET" in
PYTHON_BACKPORTS=(python-gflags pyvcf google-api-python-client \
oauth2client pyasn1==0.1.7 pyasn1-modules==0.0.5 \
rsa uritemplate httplib2 ws4py pykka six pyexecjs jsonschema \
- ciso8601 pycrypto backports.ssl_match_hostname llfuse==0.41.1 \
+ ciso8601 pycrypto backports.ssl_match_hostname llfuse \
+ contextlib2 \
'pycurl<7.21.5')
PYTHON3_BACKPORTS=(docker-py six requests websocket-client)
;;
@@ -128,7 +129,7 @@ case "$TARGET" in
PYTHON2_PKG_PREFIX=python
PYTHON3_PACKAGE=python$PYTHON3_VERSION
PYTHON3_PKG_PREFIX=python3
- PYTHON_BACKPORTS=(pyasn1==0.1.7 pyvcf pyasn1-modules==0.0.5 llfuse==0.41.1 ciso8601 \
+ PYTHON_BACKPORTS=(pyasn1==0.1.7 pyvcf pyasn1-modules==0.0.5 llfuse ciso8601 \
google-api-python-client six uritemplate oauth2client httplib2 \
rsa 'pycurl<7.21.5' backports.ssl_match_hostname)
PYTHON3_BACKPORTS=(docker-py requests websocket-client)
@@ -143,7 +144,7 @@ case "$TARGET" in
oauth2client pyasn1==0.1.7 pyasn1-modules==0.0.5 \
rsa uritemplate httplib2 ws4py pykka six pyexecjs jsonschema \
ciso8601 pycrypto backports.ssl_match_hostname 'pycurl<7.21.5' \
- python-daemon lockfile llfuse==0.41.1 'pbr<1.0')
+ python-daemon lockfile llfuse 'pbr<1.0')
PYTHON3_BACKPORTS=(docker-py six requests websocket-client)
export PYCURL_SSL_LIBRARY=nss
;;
@@ -354,6 +355,44 @@ LIBCLOUD_DIR=$(mktemp -d)
fpm_build $LIBCLOUD_DIR "$PYTHON2_PKG_PREFIX"-apache-libcloud
rm -rf $LIBCLOUD_DIR
+# libfuse 2.9.2 on Ubuntu 12.04
+if [[ $TARGET =~ ubuntu1204 ]]; then
+ LIBFUSE_DIR=$(mktemp -d)
+ (
+ cd $LIBFUSE_DIR
+ # download fuse 2.9.2 ubuntu 14.04 source package
+ curl -o fuse_2.9.2.orig.tar.xz http://archive.ubuntu.com/ubuntu/pool/main/f/fuse/fuse_2.9.2.orig.tar.xz
+ curl -o fuse_2.9.2-4ubuntu4.14.04.1.debian.tar.xz http://archive.ubuntu.com/ubuntu/pool/main/f/fuse/fuse_2.9.2-4ubuntu4.14.04.1.debian.tar.xz
+ curl -o fuse_2.9.2-4ubuntu4.14.04.1.dsc http://archive.ubuntu.com/ubuntu/pool/main/f/fuse/fuse_2.9.2-4ubuntu4.14.04.1.dsc
+
+ # install dpkg-dev for dpkg-source and dpkg-buildpackage commands
+ apt-get install -y dpkg-dev
+
+ # extract source and apply patches
+ dpkg-source -x fuse_2.9.2-4ubuntu4.14.04.1.dsc
+
+ # add new version to changelog
+ cd fuse-2.9.2
+ mv debian/changelog debian/changelog.old
+ echo "fuse (2.9.2-5) precise; urgency=low" > debian/changelog
+ echo "" >> debian/changelog
+ echo " * Backported from trusty-security to precise" >> debian/changelog
+ echo "" >> debian/changelog
+ echo " -- Joshua Randall <jcrandall at alum.mit.edu> Thu, 4 Feb 2016 11:31:00 -0000" >> debian/changelog
+ echo "" >> debian/changelog
+ cat debian/changelog.old >> debian/changelog
+ rm debian/changelog.old
+
+ # install build-deps and build
+ apt-get install -y $(awk 'BEGIN {FS=":"} $1=="Build-Depends" {n=split($2,deps,","); for (i=0; i<n; i++) {split(deps[i],pkg," "); if (pkg[1]!="") {print pkg[1]}}}' debian/control)
+ dpkg-buildpackage -rfakeroot -b
+ )
+ fpm_build $LIBFUSE_DIR/fuse_2.9.2-5_amd64.deb fuse "Ubuntu Developers" deb "2.9.2" --iteration 5
+ fpm_build $LIBFUSE_DIR/libfuse2_2.9.2-5_amd64.deb libfuse2 "Ubuntu Developers" deb "2.9.2" --iteration 5
+ fpm_build $LIBFUSE_DIR/libfuse-dev_2.9.2-5_amd64.deb libfuse-dev "Ubuntu Developers" deb "2.9.2" --iteration 5
+ rm -rf $LIBFUSE_DIR
+fi
+
# Python 2 dependencies
declare -a PIP_DOWNLOAD_SWITCHES=(--no-deps)
# Add --no-use-wheel if this pip knows it.
diff --git a/jenkins/run-library.sh b/jenkins/run-library.sh
index 83e0ea0..3901882 100755
--- a/jenkins/run-library.sh
+++ b/jenkins/run-library.sh
@@ -243,17 +243,43 @@ fpm_build () {
# the package source dir. These are added last so they can override
# the arguments added by this script.
declare -a fpm_args=()
+ declare -a build_depends=()
declare -a fpm_depends=()
declare -a fpm_exclude=()
+ FPM_INFO=""
if [[ -d "$PACKAGE_DIR" ]]; then
FPM_INFO="$PACKAGE_DIR/fpm-info.sh"
- else
+ elif [[ -e "${WORKSPACE}/backports/${PACKAGE_TYPE}-${PACKAGE}/fpm-info.sh" ]]; then
FPM_INFO="${WORKSPACE}/backports/${PACKAGE_TYPE}-${PACKAGE}/fpm-info.sh"
+ debug_echo "Found fpm-info.sh in backports: $FPM_INFO"
+ elif [[ -e "${WORKSPACE}/backports/${PACKAGE_TYPE}-${PACKAGE_NAME}/fpm-info.sh" ]]; then
+ FPM_INFO="${WORKSPACE}/backports/${PACKAGE_TYPE}-${PACKAGE_NAME}/fpm-info.sh"
fi
if [[ -e "$FPM_INFO" ]]; then
debug_echo "Loading fpm overrides from $FPM_INFO"
source "$FPM_INFO"
fi
+ for pkg in "${build_depends[@]}"; do
+ if [[ $TARGET =~ debian|ubuntu ]]; then
+ pkg_deb=$(ls $WORKSPACE/packages/$TARGET/$pkg*.deb | sort -rg | awk 'NR==1')
+ if [[ -e $pkg_deb ]]; then
+ echo "Installing build_dep $pkg from $pkg_deb"
+ dpkg -i "$pkg_deb"
+ else
+ echo "Attemping to install build_dep $pkg using apt-get"
+ apt-get install -y "$pkg"
+ fi
+ else
+ pkg_rpm=$(ls $WORKSPACE/packages/$TARGET/$pkg*.rpm | sort -rg | awk 'NR==1')
+ if [[ -e $pkg_rpm ]]; then
+ echo "Installing build_dep $pkg from $pkg_rpm"
+ rpm -i "$pkg_rpm"
+ else
+ echo "Attemping to install build_dep $pkg"
+ rpm -i "$pkg"
+ fi
+ fi
+ done
for i in "${fpm_depends[@]}"; do
COMMAND_ARR+=('--depends' "$i")
done
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list