Git Product home page Git Product logo

Comments (9)

rhowardiv avatar rhowardiv commented on September 24, 2024

I guess it's not SELinux actually, derp:

$ sudo /usr/sbin/sestatus
SELinux status:                 disabled

from build-couchdb.

rhowardiv avatar rhowardiv commented on September 24, 2024

I think I got around it by making autoconf-2.59 w/o rake:

$ cd dependencies/autoconf-2.59
$ sudo ./configure --prefix=/usr/local/build-couchdb/build --program-suffix=2.59
$ sudo make && sudo make install

... but now I'm seeing a similar error later in the process

STDERR make[2]: execvp: /tmp/tracemonkey_build20111207-5353-1a9cdxi/config/nsinstall: Permission denied

Trying to figure out how to get around this. current rake.log: http://richardhoward.net/rake.log

from build-couchdb.

rhowardiv avatar rhowardiv commented on September 24, 2024

Did the same thing for autoconf-2.13, since it's required to build spidermonkey:

$ cd dependencies/autoconf-2.13
$ sudo ./configure --prefix=/usr/local/build-couchdb/build --program-suffix=2.13
$ sudo make && sudo make install

Then built spidermonkey manually (according to https://developer.mozilla.org/En/SpiderMonkey/Build_Documentation but using our local autoconf2.13):

$ cd dependencies/js_src
$ sudo ../../build/bin/autoconf2.13
$ sudo ./configure --prefix=/usr/local/build-couchdb/build --without-x
$ sudo make && sudo make install

Then rake failed on ICU4C so attempting to build that manually now...

$ cd dependencies/icu4c-4_4
$ sudo ./configure --prefix=/usr/local/build-couchdb/build
$ sudo make && sudo make install

from build-couchdb.

rhowardiv avatar rhowardiv commented on September 24, 2024

OK, built curl manually:

$ cd dependencies/curl
$ sudo ../../build/bin/autoconf2.59
$ sudo ./buildconf
$ env LDFLAGS='-Xlinker -rpath=/usr/local/build-couchdb/build/lib -L/usr/local/build-couchdb/build/lib' CPPFLAGS='-I/usr/local/build-couchdb/build/include -I/usr/local/build-couchdb/build/include/js' sudo /usr/local/build-couchdb/dependencies/curl/configure --prefix='/usr/local/build-couchdb/build' --with-js-include='/usr/local/build-couchdb/build/include/js' --with-js-lib='/usr/local/build-couchdb/build/lib' --with-erlang=/usr/local/build-couchdb/build/lib/erlang/usr/include

Looks like I must now build couchdb manually:

$ sudo mkdir -p /usr/local/build-couchdb/build/var/run/couchdb
$ cd dependencies/couchdb
$ sudo ./bootstrap
$ env LDFLAGS='-Xlinker -rpath=/usr/local/build-couchdb/build/lib -L/usr/local/build-couchdb/build/lib' CPPFLAGS='-I/usr/local/build-couchdb/build/include -I/usr/local/build-couchdb/build/include/js' sudo /usr/local/build-couchdb/dependencies/couchdb/configure --prefix='/usr/local/build-couchdb/build' --with-js-include='/usr/local/build-couchdb/build/include/js' --with-js-lib='/usr/local/build-couchdb/build/lib' --with-erlang=/usr/local/build-couchdb/build/lib/erlang/usr/include

Okay, that failed with a message about a missing icu-config, I'll have to see if I built ICU4C correctly...

from build-couchdb.

rhowardiv avatar rhowardiv commented on September 24, 2024

Down to chewing gum and baling wire.

Rebuild icu4c using its runConfigureICU script. Still not sure I'm building that correctly.

Ended up hard-coding the paths to icu-config, curl-config, erl, erlc in the couchdb configure script.

Also added a newline to the end of a utf8.h file that hung the first make pass (?).

after make && make install, the icu4c lib still doesn't appear to be linked properly; running couchdb results in this error:

=CRASH REPORT==== 8-Dec-2011::10:02:08 ===
  crasher:
    initial call: application_master:init/4
    pid: <0.30.0>
    registered_name: []
    exception exit: {bad_return,
                        {{couch_app,start,
                             [normal,
                              ["/usr/local/build-couchdb/build/etc/couchdb/default.ini",
                               "/usr/local/build-couchdb/build/etc/couchdb/local.ini"]]},
                         {'EXIT',
                             "libicuuc.so.44: cannot open shared object file: No such file or directory"}}}
      in function  application_master:init/4
    ancestors: [<0.29.0>]
    messages: [{'EXIT',<0.31.0>,normal}]
    links: [<0.29.0>,<0.7.0>]
    dictionary: []
    trap_exit: true
    status: running
    heap_size: 1597
    stack_size: 24
    reductions: 141
  neighbours:

=INFO REPORT==== 8-Dec-2011::10:02:08 ===
    application: couch
    exited: {bad_return,{{couch_app,start,
                                    [normal,
                                     ["/usr/local/build-couchdb/build/etc/couchdb/default.ini",
                                      "/usr/local/build-couchdb/build/etc/couchdb/local.ini"]]},
                         {'EXIT',"libicuuc.so.44: cannot open shared object file: No such file or directory"}}}
    type: temporary

I guess that's about it for this approach, which was probably foolish anyhow. (I may try to rebuild icu4c again if I can figure out what I'm doing wrong there.)

Checked my versions of ruby and rake against a machine where build-couchdb worked. Both are at 1.8.5 and 0.8.7, respectively, so that's not the root problem; hmm...

from build-couchdb.

jhs avatar jhs commented on September 24, 2024

Thanks for all the valuable feedback. I need to install a new VM, and I'm unsure if I have a RHEL release. It may have to be CentOS.

Based on your difficulties doing it manually, I am starting to think that it would be better to correct that first bug which derailed the build. It is likely that subsequent steps will work correctly and you'll get a nice build.

"Permission denied" can mean that the execution bits aren't set correctly, or also a noexec flag in the mount options, and I vaguely remember it can even come up if there are linker or some kind of error with the script language (sh, bash, etc.)--but I don't remember how that works anymore.

I have never tested building as root so you may want to try a fresh checkout and build as a standard user. (Unfortunately it still tries to run sudo which was a design mistake that I have not corrected yet.)

from build-couchdb.

rhowardiv avatar rhowardiv commented on September 24, 2024

Actually just doing a regular build from source was pretty painless, given that I'm accessing epel. Yum handled libicu-devel and js-devel, and latest curl (in this case to /usr/local) and erlang from source were straightforward. Only problem is that --enable-js-trunk was required to configure couchdb; I'm unsure of the precise ramifications of this; is it just that all our view functions will need to be named?

I'll try running build-couchdb as a standard user just in case that works...

from build-couchdb.

rhowardiv avatar rhowardiv commented on September 24, 2024

Trying build-couchdb as standard user did not result in any differences--got the same original "permission denied" error.

I'm inclined to close this issue since RHEL 5.4 is technically unsupported and just doing a regular build from source was straightforward.

I'll try to get clear on the exact consequences of --enable-js-trunk first, though.

from build-couchdb.

jhs avatar jhs commented on September 24, 2024

Thanks for the update. Yes, Couch isn't that bad, and most of build-couchdb is just running the make, configure, etc. commands you would usually do.

When you say RHEL 5.4 is technically unsupported, do you mean by Red Hat, or by build-couchdb? Ideally, I want build-couchdb to support all major Linux releases which are still supported by their vendors. But we're not there yet of course.

from build-couchdb.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.