summary refs log tree commit diff
path: root/pkgs/servers/consul
diff options
context:
space:
mode:
authorJohn Boehr <john@johnboehr.is>2018-05-30 10:40:18 -0700
committerJohn Boehr <john@johnboehr.is>2018-05-30 10:40:18 -0700
commit711f96ee1df662ae04a237eddf5fd9f572e4a730 (patch)
treeda04bd789bba0599c25b3e535ffe30063e66f82b /pkgs/servers/consul
parenteee16f8ecc977f1848b77964720790b50f3fca55 (diff)
downloadnixlib-711f96ee1df662ae04a237eddf5fd9f572e4a730.tar
nixlib-711f96ee1df662ae04a237eddf5fd9f572e4a730.tar.gz
nixlib-711f96ee1df662ae04a237eddf5fd9f572e4a730.tar.bz2
nixlib-711f96ee1df662ae04a237eddf5fd9f572e4a730.tar.lz
nixlib-711f96ee1df662ae04a237eddf5fd9f572e4a730.tar.xz
nixlib-711f96ee1df662ae04a237eddf5fd9f572e4a730.tar.zst
nixlib-711f96ee1df662ae04a237eddf5fd9f572e4a730.zip
consul-ui: fix build
Update the dependencies used for building consul-ui. therubyracer
is no longer required and fails to build. Instead, a nodejs
binary is required to build the assets. Patch out unnecessary
executions of `bundle` which can cause failures.
Diffstat (limited to 'pkgs/servers/consul')
-rw-r--r--pkgs/servers/consul/Gemfile1
-rw-r--r--pkgs/servers/consul/Gemfile.lock27
-rw-r--r--pkgs/servers/consul/gemset.nix57
-rw-r--r--pkgs/servers/consul/ui-no-bundle-exec.patch17
-rw-r--r--pkgs/servers/consul/ui.nix8
5 files changed, 67 insertions, 43 deletions
diff --git a/pkgs/servers/consul/Gemfile b/pkgs/servers/consul/Gemfile
index 77b884c352dc..0e782af6b000 100644
--- a/pkgs/servers/consul/Gemfile
+++ b/pkgs/servers/consul/Gemfile
@@ -3,4 +3,3 @@ source "https://rubygems.org"
 
 gem "uglifier"
 gem "sass"
-gem "therubyracer"
diff --git a/pkgs/servers/consul/Gemfile.lock b/pkgs/servers/consul/Gemfile.lock
index cc4df6b24309..60a565f66951 100644
--- a/pkgs/servers/consul/Gemfile.lock
+++ b/pkgs/servers/consul/Gemfile.lock
@@ -1,22 +1,25 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    execjs (2.3.0)
-    json (1.8.2)
-    libv8 (3.16.14.11)
-    ref (1.0.5)
-    sass (3.4.11)
-    therubyracer (0.12.1)
-      libv8 (~> 3.16.14.0)
-      ref
-    uglifier (2.7.0)
-      execjs (>= 0.3.0)
-      json (>= 1.8.0)
+    execjs (2.7.0)
+    ffi (1.9.23)
+    rb-fsevent (0.10.3)
+    rb-inotify (0.9.10)
+      ffi (>= 0.5.0, < 2)
+    sass (3.5.6)
+      sass-listen (~> 4.0.0)
+    sass-listen (4.0.0)
+      rb-fsevent (~> 0.9, >= 0.9.4)
+      rb-inotify (~> 0.9, >= 0.9.7)
+    uglifier (4.1.10)
+      execjs (>= 0.3.0, < 3)
 
 PLATFORMS
   ruby
 
 DEPENDENCIES
   sass
-  therubyracer
   uglifier
+
+BUNDLED WITH
+   1.14.6
diff --git a/pkgs/servers/consul/gemset.nix b/pkgs/servers/consul/gemset.nix
index f87038775be7..2a5425ccf5f5 100644
--- a/pkgs/servers/consul/gemset.nix
+++ b/pkgs/servers/consul/gemset.nix
@@ -1,59 +1,62 @@
 {
   execjs = {
-    version = "2.3.0";
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1yz55sf2nd3l666ms6xr18sm2aggcvmb8qr3v53lr4rir32y1yp1";
       type = "gem";
-      sha256 = "097v02bhmzc70j7n0yyf8j0z5wms88zcmgpmggby4hnvqxf41y1h";
     };
+    version = "2.7.0";
   };
-  json = {
-    version = "1.8.2";
+  ffi = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zw6pbyvmj8wafdc7l5h7w20zkp1vbr2805ql5d941g2b20pk4zr";
       type = "gem";
-      sha256 = "0zzvv25vjikavd3b1bp6lvbgj23vv9jvmnl4vpim8pv30z8p6vr5";
     };
+    version = "1.9.23";
   };
-  libv8 = {
-    version = "3.16.14.11";
+  rb-fsevent = {
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1lm1k7wpz69jx7jrc92w3ggczkjyjbfziq5mg62vjnxmzs383xx8";
       type = "gem";
-      sha256 = "000vbiy78wk5r1f6p7qncab8ldg7qw5pjz7bchn3lw700gpaacxp";
     };
+    version = "0.10.3";
   };
-  ref = {
-    version = "1.0.5";
+  rb-inotify = {
+    dependencies = ["ffi"];
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yfsgw5n7pkpyky6a9wkf1g9jafxb0ja7gz0qw0y14fd2jnzfh71";
       type = "gem";
-      sha256 = "19qgpsfszwc2sfh6wixgky5agn831qq8ap854i1jqqhy1zsci3la";
     };
+    version = "0.9.10";
   };
   sass = {
-    version = "3.4.11";
+    dependencies = ["sass-listen"];
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19wyzp9qsg8hdkkxlsv713w0qmy66qrdp0shj42587ssx4qhrlag";
       type = "gem";
-      sha256 = "10dncnv7g5v8d1xpw2aaarxjjlm68f7nm02ns2kl8nf3yxi6wzdf";
     };
+    version = "3.5.6";
   };
-  therubyracer = {
-    version = "0.12.1";
+  sass-listen = {
+    dependencies = ["rb-fsevent" "rb-inotify"];
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xw3q46cmahkgyldid5hwyiwacp590zj2vmswlll68ryvmvcp7df";
       type = "gem";
-      sha256 = "106fqimqyaalh7p6czbl5m2j69z8gv7cm10mjb8bbb2p2vlmqmi6";
     };
-    dependencies = [
-      "libv8"
-      "ref"
-    ];
+    version = "4.0.0";
   };
   uglifier = {
-    version = "2.7.0";
+    dependencies = ["execjs"];
     source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0dycp9c5xiricla6sgvg0vf22i3axs5k1v1607dvl7nv1xkkaczi";
       type = "gem";
-      sha256 = "1x1mnakx086l83a3alj690c6n8kfmb4bk243a6m6yz99s15gbxfq";
     };
-    dependencies = [
-      "execjs"
-      "json"
-    ];
+    version = "4.1.10";
   };
-}
+}
\ No newline at end of file
diff --git a/pkgs/servers/consul/ui-no-bundle-exec.patch b/pkgs/servers/consul/ui-no-bundle-exec.patch
new file mode 100644
index 000000000000..5707b871049b
--- /dev/null
+++ b/pkgs/servers/consul/ui-no-bundle-exec.patch
@@ -0,0 +1,17 @@
+diff --git a/ui/scripts/dist.sh b/ui/scripts/dist.sh
+index 0ad6e28e..db340da0 100755
+--- a/ui/scripts/dist.sh
++++ b/ui/scripts/dist.sh
+@@ -15,10 +15,9 @@ DEPLOY="../pkg/web_ui"
+ rm -rf $DEPLOY
+ mkdir -p $DEPLOY
+ 
+-bundle check >/dev/null 2>&1 || bundle install
+-bundle exec sass styles/base.scss static/base.css
++sass styles/base.scss static/base.css
+ 
+-bundle exec ruby scripts/compile.rb
++ruby scripts/compile.rb
+ 
+ # Copy into deploy
+ shopt -s dotglob
diff --git a/pkgs/servers/consul/ui.nix b/pkgs/servers/consul/ui.nix
index b4cbca22c30a..da9b518bad73 100644
--- a/pkgs/servers/consul/ui.nix
+++ b/pkgs/servers/consul/ui.nix
@@ -1,4 +1,4 @@
-{ stdenv, consul, ruby, bundlerEnv, zip }:
+{ stdenv, consul, ruby, bundlerEnv, zip, nodejs }:
 
 let
   # `sass` et al
@@ -13,9 +13,11 @@ stdenv.mkDerivation {
 
   src = consul.src;
 
-  buildInputs = [ ruby gems zip ];
+  buildInputs = [ ruby gems zip nodejs ];
 
-  patchPhase = "patchShebangs ./ui/scripts/dist.sh";
+  patches = [ ./ui-no-bundle-exec.patch ];
+
+  postPatch = "patchShebangs ./ui/scripts/dist.sh";
 
   buildPhase = ''
     # Build ui static files