[Pacemaker] building on Mac OS X (Snow Leopard)

Ray Kiddy ray at ganymede.org
Mon Mar 29 13:00:25 EDT 2010


On Mar 27, 2010, at 1:59 PM, Andrew Beekhof wrote:

> On Sat, Mar 27, 2010 at 6:04 PM, Ray Kiddy <ray at ganymede.org> wrote:
>> 
>> I hope this is not an aggressively obnoxious first post, but I did look for archives....
> 
> I figured I was the only one doing this :-)
> I usually just use the same prefix as used by the ports system...
> 
> For glue I use:
>  ./configure --prefix /opt/local --with-daemon-user=root
> --with-daemon-group=admin
> 
> Then for agents, heartbeat and pacemaker:
>  ./configure --prefix /opt/local
> 
> For corosync I used:
>  ./configure --prefix /opt/local --disable-nss
> 
> 
> Let me know how that works for you.
> If you still have trouble, I can send a list of the ports I have
> installed (its a lot and not just for pacemaker).
> 

Thanks for the assist, Andrew.

I did get farther with this suggestion. Then I installed the port for "libnet" and I got farther still.

Then one I ran configure with --disable-fatal-warnings, I was able to build and install the "Reusable-Cluster-Components" stuff.

I only want Heartbeat and Pacemaker, so I tried to build Heartbeat next.

Then, trying to build Hearbeat, I got this:

	configure: error: cannot find install-sh or install.sh in . "."/.

Doing a search for other posts, I discovered that install-sh, config,sub and config,guess need to be copied out of the automake directory I have. Apparently, this is not necessary on other platforms? And configure cannot check or is not checking for automake correctly?

Now I am stopped in the configure of Hearbeat with this:

	....
	configure: WARNING: The following recommended components noted earlier are missing:
	     init defaults directory
	    We will continue but you may have lost some non-critical functionality.
	configure: error: The following required components noted earlier are missing:
	     init directory
	    Please supply them and try again.
	# 

Is there something else I need to install. AFAIK, MOSX does not use the "init.rc" method of starting daemons. Is there something extra I can do to make these daemons manageable by launchctl? Or is that something I could set up and contribute? On Mac systems, launchctl does seem to be a much better way to manage things....

Any suggestions or questions would be appreciated.

cheers - ray


>> 
>> I followed the (very concise) instructions on http://clusterlabs.org/wiki/install#Darwin.2FMacOS_X and got:
>> 
>>        sh-3.2# pwd
>>        /Users/ray/Projects/Clustering/Reusable-Cluster-Components-f46f8eb768f4
>>        sh-3.2#
>>        sh-3.2# ./autogen.sh && ./configure --prefix=3D$PREFIX --with-daemon-user=3D${CLUSTER_USER} --with-daemon-group=3D${CLUSTER_GROUP}
>>        ....
>>        checking for CRYPTO_free in -lcrypto... yes
>>        using /opt/local/bin/pkg-config glib-2.0
>>        checking for gettext in -lc... no
>>        checking for gettext in -lintl... no
>>        configure: error: You need gettext installed in order to build cluster-glue
>>        sh-3.2#
>>        sh-3.2#
>>        sh-3.2# port install gettext
>>        --->  Computing dependencies for gettext
>>        --->  Cleaning gettext
>>        sh-3.2#
>> 
>> I had set the PREFIX to a directory inside my home directory (to /Users/ray/Projects/Clustering/). But I also set the PREFIX to /usr and this did not help.
>> 
>> Obviously I got gettext via port at some time in the past. And I got the direct dependencies for this via port. Is there another bit of advice, like the "make sure the default autoconf understands the pkg-config macros..." bit?
>> 
>> I see a few errors below, in the getpid() and byteorder checks, but I cannot see that that would cause my problem....
>> 
>> I will update the wiki, if necessary, if I find something or if someone has a suggestion.
>> 
>> cheers - ray
>> 
>> -------
>> ps:
>> 
>> sh-3.2# pwd
>> /Users/ray/Projects/Clustering/Reusable-Cluster-Components-f46f8eb768f4
>> sh-3.2#
>> sh-3.2# port install gettext
>> --->  Computing dependencies for gettext
>> --->  Cleaning gettext
>> sh-3.2#
>> sh-3.2# ./autogen.sh && ./configure --prefix=3D$PREFIX --with-daemon-user=3D${CLUSTER_USER} --with-daemon-group=3D${CLUSTER_GROUP}
>> autoconf:       autoconf (GNU Autoconf) 2.61
>> automake:       automake (GNU automake) 1.10
>> glibtoolize --ltdl --force --copy
>> glibtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `.'.
>> glibtoolize: copying file `./ltmain.sh'
>> glibtoolize: putting auxiliary files in `.'.
>> glibtoolize: copying file `libltdl/config/compile'
>> glibtoolize: copying file `libltdl/config/config.guess'
>> glibtoolize: copying file `libltdl/config/config.sub'
>> glibtoolize: copying file `libltdl/config/depcomp'
>> glibtoolize: copying file `libltdl/config/install-sh'
>> glibtoolize: copying file `libltdl/config/missing'
>> glibtoolize: copying file `libltdl/config/ltmain.sh'
>> glibtoolize: putting macros in `libltdl/m4'.
>> glibtoolize: copying file `libltdl/m4/argz.m4'
>> glibtoolize: copying file `libltdl/m4/libtool.m4'
>> glibtoolize: copying file `libltdl/m4/ltdl.m4'
>> glibtoolize: copying file `libltdl/m4/ltoptions.m4'
>> glibtoolize: copying file `libltdl/m4/ltsugar.m4'
>> glibtoolize: copying file `libltdl/m4/ltversion.m4'
>> glibtoolize: copying file `libltdl/m4/lt~obsolete.m4'
>> glibtoolize: putting libltdl files in `libltdl'.
>> glibtoolize: `COPYING.LIB' not found in `/usr/bin/../share/libtool/libltdl'
>> aclocal
>> autoheader
>> automake --add-missing --include-deps --copy
>> configure.ac:28: installing `./config.sub'
>> configure.ac:28: installing `./config.guess'
>> autoconf
>> Now run ./configure
>> checking build system type... i386-apple-darwin10.2.0
>> checking host system type... i386-apple-darwin10.2.0
>> checking for a BSD-compatible install... /usr/bin/install -c
>> checking whether build environment is sane... yes
>> checking for a thread-safe mkdir -p... ./install-sh -c -d
>> checking for gawk... no
>> checking for mawk... no
>> checking for nawk... no
>> checking for awk... awk
>> checking whether make sets $(MAKE)... yes
>> checking for gcc... gcc
>> checking for C compiler default output file name... a.out
>> checking whether the C compiler works... yes
>> checking whether we are cross compiling... no
>> checking for suffix of executables...
>> checking for suffix of object files... o
>> checking whether we are using the GNU C compiler... yes
>> checking whether gcc accepts -g... yes
>> checking for gcc option to accept ISO C89... none needed
>> checking for style of include used by make... GNU
>> checking dependency style of gcc... gcc3
>> checking whether gcc and cc understand -c and -o together... yes
>> checking for gcc option to accept ISO C99... -std=3Dgnu99
>> checking for gcc -std=3Dgnu99 option to accept ISO Standard C... (cached) -std=3Dgnu99
>> checking for a sed that does not truncate output... /usr/bin/sed
>> checking for grep that handles long lines and -e... /usr/bin/grep
>> checking for egrep... /usr/bin/grep -E
>> checking for fgrep... /usr/bin/grep -F
>> checking for ld used by gcc -std=3Dgnu99... /usr/libexec/gcc/i686-apple-darwin10/4.2.1/ld
>> checking if the linker (/usr/libexec/gcc/i686-apple-darwin10/4.2.1/ld) is GNU ld... no
>> checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm
>> checking the name lister (/usr/bin/nm) interface... BSD nm
>> checking whether ln -s works... yes
>> checking the maximum length of command line arguments... 196608
>> checking whether the shell understands some XSI constructs... yes
>> checking whether the shell understands "+=3D"... yes
>> checking for /usr/libexec/gcc/i686-apple-darwin10/4.2.1/ld option to reload object files... -r
>> checking how to recognize dependent libraries... pass_all
>> checking for ar... ar
>> checking for strip... strip
>> checking for ranlib... ranlib
>> checking command to parse /usr/bin/nm output from gcc -std=3Dgnu99 object... ok
>> checking for dsymutil... dsymutil
>> checking for nmedit... nmedit
>> checking for lipo... lipo
>> checking for otool... otool
>> checking for otool64... no
>> checking for -single_module linker flag... yes
>> checking for -exported_symbols_list linker flag... yes
>> checking how to run the C preprocessor... gcc -std=3Dgnu99 -E
>> checking for ANSI C header files... yes
>> checking for sys/types.h... yes
>> checking for sys/stat.h... yes
>> checking for stdlib.h... yes
>> checking for string.h... yes
>> checking for memory.h... yes
>> checking for strings.h... yes
>> checking for inttypes.h... yes
>> checking for stdint.h... yes
>> checking for unistd.h... yes
>> checking for dlfcn.h... yes
>> checking for objdir... .libs
>> checking if gcc -std=3Dgnu99 supports -fno-rtti -fno-exceptions... no
>> checking for gcc -std=3Dgnu99 option to produce PIC... -fno-common -DPIC
>> checking if gcc -std=3Dgnu99 PIC flag -fno-common -DPIC works... yes
>> checking if gcc -std=3Dgnu99 static flag -static works... no
>> checking if gcc -std=3Dgnu99 supports -c -o file.o... yes
>> checking if gcc -std=3Dgnu99 supports -c -o file.o... (cached) yes
>> checking whether the gcc -std=3Dgnu99 linker (/usr/libexec/gcc/i686-apple-darwin10/4.2.1/ld) supports shared libraries... yes
>> checking dynamic linker characteristics... darwin10.2.0 dyld
>> checking how to hardcode library paths into programs... immediate
>> checking for dlopen in -ldl... yes
>> checking whether a program can dlopen itself... yes
>> checking whether a statically linked program can dlopen itself... yes
>> checking whether stripping libraries is possible... yes
>> checking if libtool supports shared libraries... yes
>> checking whether to build shared libraries... yes
>> checking whether to build static libraries... yes
>> checking for preprocessor stringizing operator... yes
>> checking for size_t... yes
>> checking for char... yes
>> checking size of char... 1
>> checking for short... yes
>> checking size of short... 2
>> checking for int... yes
>> checking size of int... 4
>> checking for long... yes
>> checking size of long... 8
>> checking for long long... yes
>> checking size of long long... 8
>> checking whether struct tm is in sys/time.h or time.h... time.h
>> checking for struct tm.tm_zone... yes
>> Our Host OS: darwin10.2.0/i386-apple-darwin10.2.0
>> configure: Sanitizing prefix: /usr
>> configure: Sanitizing exec_prefix: NONE
>> configure: Sanitizing INITDIR
>> checking which init (rc) directory to use...
>> configure: Sanitizing libdir: ${exec_prefix}/lib
>> checking which lib directory to use... /usr/lib
>> checking for the location of the lock directory... configure: WARNING: sysconfdir directory (/usr/etc) does not exist!
>> configure: WARNING: sharedstatedir directory (/usr/com) does not exist!
>> configure: WARNING: localstatedir directory (/usr/var) does not exist!
>> configure: WARNING: INITDIR directory () does not exist!
>> configure: WARNING: docdir directory (/usr/share/doc/cluster-glue) does not exist!
>> configure: WARNING: HA_VARLOCKDIR directory (/usr/var/lock) does not exist!
>> configure: Host CPU: i386
>> checking which format is needed to print uint64_t... %llu
>> checking for hg... no
>> checking for false... /usr/bin/false
>> checking build version... f46f8eb768f4c6f18fa92c69c54b4fb273d0dddb
>> checking for getpid() consistency in multi-process/threads program... cat: ./config/pidtest.c: No such file or directory
>> fail
>> checking for byteorder... cat: ./config/byteorder_test.c: No such file or directory
>> big-endian
>> checking for glibtool... $(SHELL) $(top_builddir)/libtool
>> checking for python... /usr/bin/python
>> checking for python version... 2.6
>> checking for python platform... darwin
>> checking for python script directory... ${prefix}/lib/python2.6/site-packages
>> checking for python extension module directory... ${exec_prefix}/lib/python2.6/site-packages
>> checking for gmake... no
>> checking for make... make
>> checking for lynx... no
>> checking for w3m... no
>> checking for help2man... /opt/local/bin/help2man
>> checking for pod2man... /opt/local/bin/pod2man
>> checking for ssh... /usr/bin/ssh
>> checking for scp... /usr/bin/scp
>> checking for hg... (cached) /usr/bin/false
>> checking for tar... /usr/bin/tar
>> checking for md5... /sbin/md5
>> checking for rpm... no
>> checking for test... /bin/test
>> checking for ping... /sbin/ping
>> checking for ifconfig... /sbin/ifconfig
>> checking for mailx... /usr/bin/mailx
>> checking for egrep... (cached) /usr/bin/grep -E
>> checking for pkg-config... /opt/local/bin/pkg-config
>> checking for xml2-config... /usr/bin/xml2-config
>> checking for xsltproc... /usr/bin/xsltproc
>> checking for valgrind... no
>> checking ifconfig option to list interfaces... -a
>> checking for socket in -lsocket... no
>> checking for dlopen in -lc... yes
>> checking for dlopen in -ldl... (cached) yes
>> checking for sched_getscheduler in -lrt... no
>> checking for getopt_long in -lgnugetopt... no
>> checking for uuid_parse in -luuid... no
>> checking for uuid_create in -luuid... no
>> checking for sched_getscheduler in -lposix4... no
>> checking for CRYPTO_free in -lcrypto... yes
>> using /opt/local/bin/pkg-config glib-2.0
>> checking for gettext in -lc... no
>> checking for gettext in -lintl... no
>> configure: error: You need gettext installed in order to build cluster-glue
>> sh-3.2#
>> 
>> 
>> 
>> 
>> _______________________________________________
>> Pacemaker mailing list
>> Pacemaker at oss.clusterlabs.org
>> http://oss.clusterlabs.org/mailman/listinfo/pacemaker
>> 
> 
> _______________________________________________
> Pacemaker mailing list
> Pacemaker at oss.clusterlabs.org
> http://oss.clusterlabs.org/mailman/listinfo/pacemaker
> 





More information about the Pacemaker mailing list