CouchDB
  1. CouchDB
  2. COUCHDB-592

Build and configure without the js library

    Details

    • Type: New Feature New Feature
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: Build System
    • Labels:
      None
    • Environment:

      Any?

    • Skill Level:
      Regular Contributors Level (Easy to Medium)

      Description

      I am trying to use couchdb without the requirements of the js library. I will not be accessing couch (nor do I want access) through an http interface, but an erlang client library.

      Thanks

        Activity

        Hide
        Noah Slater added a comment -

        I'm not sure what you want.

        Do you want to be able to disable the building of any JS component at all? Why?

        What has that to do with HTTP? There is no way to use CouchDB without using HTTP at the emoment.

        Show
        Noah Slater added a comment - I'm not sure what you want. Do you want to be able to disable the building of any JS component at all? Why? What has that to do with HTTP? There is no way to use CouchDB without using HTTP at the emoment.
        Hide
        Ari Lerner added a comment -

        I don't want to have to require the SpiderMonkey javascript library when building couch.

        Show
        Ari Lerner added a comment - I don't want to have to require the SpiderMonkey javascript library when building couch.
        Hide
        Paul Joseph Davis added a comment -

        The quickest thing to do would be to delete the relevant sections from configure.ac and src/couchdb/priv/Makefile to avoid that. Though be aware that at some time in the nearish future JS might be a test time dependency so you won't be able to run the test suite from make check.

        Show
        Paul Joseph Davis added a comment - The quickest thing to do would be to delete the relevant sections from configure.ac and src/couchdb/priv/Makefile to avoid that. Though be aware that at some time in the nearish future JS might be a test time dependency so you won't be able to run the test suite from make check.
        Hide
        Glenn Rempe added a comment -

        Noah,

        I believe you can use CouchDB without http access if you use the Hovercraft Erlang library.

        http://github.com/jchris/hovercraft
        http://github.com/grempe/hovercraft (Includes fixes for trunk couchdb pending merge to jchris master)

        If you mixed that with Erlang views wouldn't that be a reason to want to eliminate any external build time dependencies other than Erlang? CouchDB should optimally be able to operate in pure erlang mode. No? This is something the couchdb team should encourage imho.

        Show
        Glenn Rempe added a comment - Noah, I believe you can use CouchDB without http access if you use the Hovercraft Erlang library. http://github.com/jchris/hovercraft http://github.com/grempe/hovercraft (Includes fixes for trunk couchdb pending merge to jchris master) If you mixed that with Erlang views wouldn't that be a reason to want to eliminate any external build time dependencies other than Erlang? CouchDB should optimally be able to operate in pure erlang mode. No? This is something the couchdb team should encourage imho.
        Hide
        Ari Lerner added a comment -

        That's exactly what I want Glenn.

        The extra dependency of the JS library is limiting and somewhat of a deal-breaker for the project I'm working on (in an environment where every dependency is a hurdle for implementation)

        Show
        Ari Lerner added a comment - That's exactly what I want Glenn. The extra dependency of the JS library is limiting and somewhat of a deal-breaker for the project I'm working on (in an environment where every dependency is a hurdle for implementation)
        Hide
        Paul Joseph Davis added a comment -

        Don't forget the ICU dependency that you'd have to remove as well then.

        Show
        Paul Joseph Davis added a comment - Don't forget the ICU dependency that you'd have to remove as well then.
        Hide
        Paul Joseph Davis added a comment -

        Also, I should mention that I don't really foresee providing this as part of any official distribution. Its pretty core to CouchDB to provide these things, and removing them should be considered a private modification. It really shouldn't be too hard though.

        Show
        Paul Joseph Davis added a comment - Also, I should mention that I don't really foresee providing this as part of any official distribution. Its pretty core to CouchDB to provide these things, and removing them should be considered a private modification. It really shouldn't be too hard though.
        Hide
        Ari Lerner added a comment -

        Perhaps I'm mistaken, but I don't see the downsides to providing a --without-js-libs option to the configure script...

        Show
        Ari Lerner added a comment - Perhaps I'm mistaken, but I don't see the downsides to providing a --without-js-libs option to the configure script...
        Hide
        Paul Joseph Davis added a comment -

        The downside is on the theoretical side and for me its a hold the line type of position. I wouldn't veto a patch for it but I'm not about to write it.

        The issue is that once we start doing allowing the official releases to have all sorts of conditional compilation options we have to officially support each permutation of those options. Spending extra time tracking down weird compilation configurations is not something I would enjoy.

        And there's also the fact that this is a pretty easy hack to remove all parts of the build system that'd require JS, cURL, and ICU. And the build system doesn't change that often so it wouldn't be hard too hard to keep in sync outside of trunk.

        Show
        Paul Joseph Davis added a comment - The downside is on the theoretical side and for me its a hold the line type of position. I wouldn't veto a patch for it but I'm not about to write it. The issue is that once we start doing allowing the official releases to have all sorts of conditional compilation options we have to officially support each permutation of those options. Spending extra time tracking down weird compilation configurations is not something I would enjoy. And there's also the fact that this is a pretty easy hack to remove all parts of the build system that'd require JS, cURL, and ICU. And the build system doesn't change that often so it wouldn't be hard too hard to keep in sync outside of trunk.
        Hide
        Noah Slater added a comment -

        I am happy to review and apply a patch that adds this as an option to configure, as long as the actual build is taken care of properly.

        Show
        Noah Slater added a comment - I am happy to review and apply a patch that adds this as an option to configure, as long as the actual build is taken care of properly.
        Hide
        Randall Leeds added a comment -

        If anyone wants to take this task on, the first thing would be to find all the etap tests that depend on a working JS query server. Examples of these are tests which exercise validate_doc_update or other permissions related things. I suspect there are at least a few places the test suite touches JavaScript, even if it's not through the JS tests themselves.

        If that issue is cleared up, I think this is probably easy.

        Show
        Randall Leeds added a comment - If anyone wants to take this task on, the first thing would be to find all the etap tests that depend on a working JS query server. Examples of these are tests which exercise validate_doc_update or other permissions related things. I suspect there are at least a few places the test suite touches JavaScript, even if it's not through the JS tests themselves. If that issue is cleared up, I think this is probably easy.

          People

          • Assignee:
            Unassigned
            Reporter:
            Ari Lerner
          • Votes:
            1 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:

              Development