Compile SpiderMonkey 1.8.5 everywhere with --disable-methodjit
Fixes apache/couchdb#551 by addressing the one segmentation violation
we're sure happens, which involves the JIT.
A replacement for SM 1.8.5 can't come soon enough.
diff --git a/ansible/centos-6-base.yml b/ansible/centos-6-base.yml
index 1fdaa03..6b93f03 100644
--- a/ansible/centos-6-base.yml
+++ b/ansible/centos-6-base.yml
@@ -23,3 +23,4 @@
- geerlingguy.repo-epel
- dependencies-centos
- common
+ - spidermonkey
diff --git a/ansible/centos-7-base.yml b/ansible/centos-7-base.yml
index 9633ec4..a58864e 100644
--- a/ansible/centos-7-base.yml
+++ b/ansible/centos-7-base.yml
@@ -23,3 +23,4 @@
- geerlingguy.repo-epel
- dependencies-centos
- common
+ - spidermonkey
diff --git a/ansible/debian-8-base.yml b/ansible/debian-8-base.yml
index d99f45e..a5652f8 100644
--- a/ansible/debian-8-base.yml
+++ b/ansible/debian-8-base.yml
@@ -23,3 +23,4 @@
- dependencies-debian
- lintian-debian
- common
+ - spidermonkey
diff --git a/ansible/roles/dependencies-centos/tasks/main.yml b/ansible/roles/dependencies-centos/tasks/main.yml
index 9ea3393..3932be7 100644
--- a/ansible/roles/dependencies-centos/tasks/main.yml
+++ b/ansible/roles/dependencies-centos/tasks/main.yml
@@ -34,10 +34,14 @@
yum: name={{item}} state=present
with_items:
- autoconf
+ - autoconf213
- automake
- curl-devel
- libicu-devel
- libtool
+ - ncurses-devel
+ - nspr-devel
+ - zip
# special case since autoconf-archive on CentOS 6 is not in EPEL
- name: install autoconf-archive
@@ -57,9 +61,6 @@
name: nodejs
state: present
-# download, compile and install Spidermonkey
-- include: spidermonkey.yml
-
# download and install shunit2
- include: shunit.yml
@@ -98,7 +99,7 @@
command: "/usr/bin/python3.4 /tmp/get-pip.py"
- name: install up to date version of sphinx via pip
- shell: pip install sphinx==1.5.3
+ shell: pip install docutils==0.13.1 sphinx==1.5.3
- name: dependencies for packages
yum: name={{item}} state=present
diff --git a/ansible/roles/dependencies-debian/tasks/main.yml b/ansible/roles/dependencies-debian/tasks/main.yml
index deda609..6555e47 100644
--- a/ansible/roles/dependencies-debian/tasks/main.yml
+++ b/ansible/roles/dependencies-debian/tasks/main.yml
@@ -33,7 +33,9 @@
- pkg-config
- python
- python-pip
+ - python-requests
- sudo
+ - zip
# dependencies for make couch, except erlang
- name: install packages required to build CouchDB
@@ -43,7 +45,7 @@
- ca-certificates
- libcurl4-openssl-dev
- libicu-dev
- - libmozjs185-dev
+ - libnspr4-dev
- shunit2
# required for make docs
@@ -56,7 +58,7 @@
# Fix broken sphinx on ubuntu 12.04 only
# Hack, but prevents needing a unique debian/ dir for this dist
- name: install up to date version of sphinx via pip
- shell: pip install sphinx==1.5.3
+ shell: pip install docutils==0.13.1 sphinx==1.5.3
when: ansible_distribution == "Ubuntu" and ansible_distribution_version == "12.04"
# dependencies for Debian/Ubuntu package building
diff --git a/ansible/roles/dependencies-centos/tasks/spidermonkey.yml b/ansible/roles/spidermonkey/tasks/main.yml
similarity index 89%
rename from ansible/roles/dependencies-centos/tasks/spidermonkey.yml
rename to ansible/roles/spidermonkey/tasks/main.yml
index 8bfca73..34ed1e1 100644
--- a/ansible/roles/dependencies-centos/tasks/spidermonkey.yml
+++ b/ansible/roles/spidermonkey/tasks/main.yml
@@ -25,7 +25,7 @@
dest: /opt
copy: no
- name: configure Spidermonkey 1.8.5
- command: ./configure --prefix=/usr
+ command: ./configure --prefix=/usr --with-system-nspr --disable-tests --disable-strip --enable-ctypes --enable-threadsafe --disable-methodjit
args:
chdir: /opt/js-1.8.5/js/src
- name: make Spidermonkey 1.8.5
diff --git a/ansible/ubuntu-12.04-base.yml b/ansible/ubuntu-12.04-base.yml
index f3a8615..f2f5d60 100644
--- a/ansible/ubuntu-12.04-base.yml
+++ b/ansible/ubuntu-12.04-base.yml
@@ -23,3 +23,4 @@
- dependencies-debian
- lintian-ubuntu
- common
+ - spidermonkey
diff --git a/ansible/ubuntu-14.04-base.yml b/ansible/ubuntu-14.04-base.yml
index b2a0f48..c176659 100644
--- a/ansible/ubuntu-14.04-base.yml
+++ b/ansible/ubuntu-14.04-base.yml
@@ -23,3 +23,4 @@
- dependencies-debian
- lintian-ubuntu
- common
+ - spidermonkey
diff --git a/ansible/ubuntu-16.04-base.yml b/ansible/ubuntu-16.04-base.yml
index c0406de..1e010a2 100644
--- a/ansible/ubuntu-16.04-base.yml
+++ b/ansible/ubuntu-16.04-base.yml
@@ -23,3 +23,4 @@
- dependencies-debian
- lintian-ubuntu
- common
+ - spidermonkey