After the dbus api merge, trunk (9614) fails to build on osx
1) make error due to hardcoded 'libtoolize' in autogen.sh
$ make CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh /Volumes/blue/src/Inkscape/src/inkscape-repo/mp-x11/missing --run aclocal-1.11 cd . && /bin/sh /Volumes/blue/src/Inkscape/src/inkscape-repo/mp-x11/missing --run automake-1.11 --foreign configure.ac:33: required file `./ltmain.sh' not found make: *** [Makefile.in] Error 1
On OS X libtool and libtoolize are installed as 'glibtool' and 'glibtoolize'. autogen.sh should either test for it or maybe use the environment variables ($LIBTOOL, $LIBTOOLIZE) which could be set in the packaging script (packaging/macosx/osx-build.sh).
After editing autogen.sh (replace "libtoolize" with "glibtoolize") to test the fix, autogen.sh and configure ran through:
Configuration:
Source code location: . Destination path prefix: /Volumes/blue/src/Inkscape/src/inkscape-repo/mp-x11/packaging/macosx/../../Build Compiler: ccache g++ CPPFLAGS: -Wall -Wformat -Wformat-security -W -D_FORTIFY_SOURCE=2 -I/Volumes/blue/mp-inkscape/with-a-long-long-long-directory-name/include CXXFLAGS: -Wpointer-arith -Wcast-align -Wsign-compare -Woverloaded-virtual -Wswitch -Wno-unused-parameter -O3 -Wall -Wno-strict-aliasing CFLAGS: -Wno-pointer-sign -O3 -Wall LDFLAGS: -L/Volumes/blue/mp-inkscape/with-a-long-long-long-directory-name/lib Use Xft font database: yes Use gnome-vfs: yes Use openoffice files: yes Use relocation support: no Internal Python: skipped Internal Perl: skipped Enable LittleCms: yes Enable DBUS no Enable Poppler-Cairo: yes ImageMagick Magick++: yes Libwpg: yes Doing Local Install: no
but make failed later on with:
2) link error for 'libinkdbus.la'
CCLD libinkdbus.la Undefined symbols:
...
ld: symbol(s) not found collect2: ld returned 1 exit status make[3]: *** [libinkdbus.la] Error 1 make[2]: *** [all] Error 2 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2
Any hints on how one can really disable DBUS in Inkscape for now or how to investigate if this is a problem with my local build environment (dbus, dbus-glib dependencies are installed [2]) or why this error happens on osx would be highly appreciated.
~suv
[1] from the console log building bzr trunk 9614:
LeWitt:mp-x11 suv$ make make all-recursive Making all in src dbus-binding-tool --mode=glib-server --output=extension/dbus/application-server-glue.h --prefix=application_interface extension/dbus/application-interface.xml dbus-binding-tool --mode=glib-server --output=extension/dbus/document-server-glue.h --prefix=document_interface extension/dbus/document-interface.xml dbus-binding-tool --mode=glib-client --output=extension/dbus/document-client-glue.h --prefix=document_interface extension/dbus/document-interface.xml make all-am CXX arc-context.o
...
CXX extension/print.o CXX extension/dbus/dbus-init.o extension/dbus/dbus-init.cpp:71: warning: unused parameter ‘proxy’ extension/dbus/dbus-init.cpp: In function ‘void Inkscape::Extension::Dbus::init()’: extension/dbus/dbus-init.cpp:87: warning: unused variable ‘obj’ extension/dbus/dbus-init.cpp: In function ‘gchar* Inkscape::Extension::Dbus::init_document()’: extension/dbus/dbus-init.cpp:103: warning: unused variable ‘result’ extension/dbus/dbus-init.cpp:104: warning: unused variable ‘error’ CXX extension/dbus/application-interface.o extension/dbus/application-interface.cpp:40: warning: unused parameter ‘object’ extension/dbus/application-interface.cpp:57: warning: unused parameter ‘object’ extension/dbus/application-interface.cpp:57: warning: unused parameter ‘error’ extension/dbus/application-interface.cpp:63: warning: unused parameter ‘object’ extension/dbus/application-interface.cpp:70: warning: unused parameter ‘object’ extension/dbus/application-interface.cpp:70: warning: unused parameter ‘error’ extension/dbus/application-interface.cpp:78: warning: unused parameter ‘object’ extension/dbus/application-interface.cpp:78: warning: unused parameter ‘document_name’ extension/dbus/application-interface.cpp:78: warning: unused parameter ‘error’ extension/dbus/application-interface.cpp:85: warning: unused parameter ‘object’ extension/dbus/application-interface.cpp:85: warning: unused parameter ‘error’ extension/dbus/application-interface.cpp:91: warning: unused parameter ‘object’ extension/dbus/application-interface.cpp:91: warning: unused parameter ‘error’ extension/dbus/application-interface.cpp:101: warning: unused parameter ‘object’ extension/dbus/application-interface.cpp:101: warning: unused parameter ‘error’ extension/dbus/application-interface.cpp:107: warning: unused parameter ‘object’ extension/dbus/application-interface.cpp:114: warning: unused parameter ‘object’ extension/dbus/application-interface.cpp:114: warning: unused parameter ‘error’ CXX extension/dbus/document-interface.o extension/dbus/document-interface.cpp:205: warning: unused parameter ‘error’ extension/dbus/document-interface.cpp:341: warning: unused parameter ‘error’ extension/dbus/document-interface.cpp:486: warning: unused parameter ‘error’ extension/dbus/document-interface.cpp:521: warning: unused parameter ‘error’ extension/dbus/document-interface.cpp:555: warning: unused parameter ‘error’ extension/dbus/document-interface.cpp:563: warning: unused parameter ‘error’ extension/dbus/document-interface.cpp:573: warning: unused parameter ‘error’ extension/dbus/document-interface.cpp:807: warning: unused parameter ‘object’ extension/dbus/document-interface.cpp:807: warning: unused parameter ‘shape’ extension/dbus/document-interface.cpp:841: warning: unused parameter ‘error’ extension/dbus/document-interface.cpp:853: warning: unused parameter ‘error’ extension/dbus/document-interface.cpp:877: warning: unused parameter ‘error’ extension/dbus/document-interface.cpp:933: warning: unused parameter ‘error’ extension/dbus/document-interface.cpp:944: warning: unused parameter ‘error’ extension/dbus/document-interface.cpp:958: warning: unused parameter ‘error’ extension/dbus/document-interface.cpp:975: warning: unused parameter ‘error’ extension/dbus/document-interface.cpp:1019: warning: unused parameter ‘error’ extension/dbus/document-interface.cpp:1040: warning: unused parameter ‘error’ extension/dbus/document-interface.cpp:1055: warning: unused parameter ‘error’ extension/dbus/document-interface.cpp:1079: warning: unused parameter ‘object’ extension/dbus/document-interface.cpp:1079: warning: unused parameter ‘x’ extension/dbus/document-interface.cpp:1079: warning: unused parameter ‘y’ extension/dbus/document-interface.cpp:1079: warning: unused parameter ‘x2’ extension/dbus/document-interface.cpp:1079: warning: unused parameter ‘y2’ extension/dbus/document-interface.cpp:1079: warning: unused parameter ‘replace’ extension/dbus/document-interface.cpp:1079: warning: unused parameter ‘error’ extension/dbus/document-interface.cpp:1141: warning: unused parameter ‘error’ extension/dbus/document-interface.cpp:1153: warning: unused parameter ‘error’ extension/dbus/document-interface.cpp:1160: warning: unused parameter ‘error’ extension/dbus/document-interface.cpp:1277: warning: unused parameter ‘error’ extension/dbus/document-interface.cpp:1299: warning: unused parameter ‘object’ CXX extension/implementation/implementation.o extension/implementation/implementation.cpp:100: warning: unused parameter ‘docCache’ CXX extension/implementation/script.o
...
CXX inkscape-version.o AR libinkversion.a CC extension/dbus/wrapper/libinkdbus_la-inkscape-dbus-wrapper.lo CCLD libinkdbus.la Undefined symbols: "_dbus_g_bus_get", referenced from: _dbus_get_connection in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_desktop_init_dbus in libinkdbus_la-inkscape-dbus-wrapper.o "_dbus_g_proxy_call", referenced from: _inkscape_delete_all in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_call_verb in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_rectangle in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_ellipse in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_polygon in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_star in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_spiral in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_line in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_text in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_image in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_node in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_document_get_width in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_document_get_height in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_document_get_css in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_document_set_css in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_document_merge_css in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_document_resize_to_fit_selection in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_set_attribute in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_set_int_attribute in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_set_double_attribute in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_get_attribute in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_move in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_move_to in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_object_to_path in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_get_path in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_transform in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_get_css in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_modify_css in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_merge_css in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_set_color in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_move_to_layer in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_get_node_coordinates in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_save in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_save_as in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_load in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_mark_as_unmodified in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_close in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_inkscape_exit in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_undo in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_redo in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_pause_updates in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_resume_updates in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_update in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_selection_get in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_selection_add in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_selection_add_list in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_selection_set in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_selection_set_list in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_selection_rotate in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_selection_delete in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_selection_clear in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_select_all in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_select_all_in_all_layers in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_selection_box in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_selection_invert in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_selection_group in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_selection_ungroup in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_selection_cut in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_selection_copy in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_selection_paste in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_selection_scale in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_selection_move in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_selection_move_to in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_selection_move_to_layer in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_selection_get_center in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_selection_to_path in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_selection_combine in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_selection_divide in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_selection_change_level in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_layer_new in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_layer_set in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_layer_get_all in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_layer_change_level in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_layer_next in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_layer_previous in libinkdbus_la-inkscape-dbus-wrapper.o "_dbus_g_proxy_new_for_name", referenced from: _dbus_get_proxy in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_desktop_init_dbus in libinkdbus_la-inkscape-dbus-wrapper.o "_dbus_g_type_get_collection", referenced from: _inkscape_get_node_coordinates in libinkdbus_la-inkscape-dbus-wrapper.o _inkscape_selection_get_center in libinkdbus_la-inkscape-dbus-wrapper.o ld: symbol(s) not found collect2: ld returned 1 exit status make[3]: *** [libinkdbus.la] Error 1 make[2]: *** [all] Error 2 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2 LeWitt:mp-x11 suv$
[2] installed (dbus) dependencies (via MacPorts):
dbus @1.2.24_0+no_root+no_startupitem dbus-glib @0.86_1 glib2 @2.24.1_0+darwin
On Wed, 2010-07-14 at 09:59 +0200, ~suv wrote:
- make error due to hardcoded 'libtoolize' in autogen.sh
$ make CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh /Volumes/blue/src/Inkscape/src/inkscape-repo/mp-x11/missing --run aclocal-1.11 cd . && /bin/sh /Volumes/blue/src/Inkscape/src/inkscape-repo/mp-x11/missing --run automake-1.11 --foreign configure.ac:33: required file `./ltmain.sh' not found make: *** [Makefile.in] Error 1
On OS X libtool and libtoolize are installed as 'glibtool' and 'glibtoolize'. autogen.sh should either test for it or maybe use the environment variables ($LIBTOOL, $LIBTOOLIZE) which could be set in the packaging script (packaging/macosx/osx-build.sh).
As an aside, anyone tested this on Win32?
Cheers, Josh
-----Original Message----- From: Joshua A. Andler [mailto:scislac@...400...] Sent: 14 July 2010 10:39 To: ~suv Cc: Inkscape Devel List Subject: Re: [Inkscape-devel] After the dbus api merge, trunk (9614) fails to build on osx
On Wed, 2010-07-14 at 09:59 +0200, ~suv wrote:
- make error due to hardcoded 'libtoolize' in autogen.sh
$ make CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh
/Volumes/blue/src/Inkscape/src/inkscape-repo/mp-x11/missing --run aclocal-1.11
cd . && /bin/sh /Volumes/blue/src/Inkscape/src/inkscape-repo/mp-
x11/missing --run automake-1.11 --foreign
configure.ac:33: required file `./ltmain.sh' not found make: *** [Makefile.in] Error 1
On OS X libtool and libtoolize are installed as 'glibtool' and 'glibtoolize'. autogen.sh should either test for it or maybe use the environment variables ($LIBTOOL, $LIBTOOLIZE) which could be set in
the
packaging script (packaging/macosx/osx-build.sh).
As an aside, anyone tested this on Win32?
The build is broken on Windows too. For example:
" In file included from src/extension/dbus/application-interface.cpp:18:
src/extension/dbus/application-interface.h:22:28: error: dbus/dbus-glib.h: No such file or directory
src/extension/dbus/application-interface.h:23:37: error: dbus/dbus-glib-bindings.h: No such file or directory
src/extension/dbus/application-interface.h:24:37: error: dbus/dbus-glib-lowlevel.h: No such file or directory"
-johan
On Wed, 2010-07-14 at 09:59 +0200, ~suv wrote:
- make error due to hardcoded 'libtoolize' in autogen.sh
$ make CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh /Volumes/blue/src/Inkscape/src/inkscape-repo/mp-x11/missing --run aclocal-1.11 cd . && /bin/sh /Volumes/blue/src/Inkscape/src/inkscape-repo/mp-x11/missing --run automake-1.11 --foreign configure.ac:33: required file `./ltmain.sh' not found make: *** [Makefile.in] Error 1
On OS X libtool and libtoolize are installed as 'glibtool' and 'glibtoolize'. autogen.sh should either test for it or maybe use the environment variables ($LIBTOOL, $LIBTOOLIZE) which could be set in the packaging script (packaging/macosx/osx-build.sh).
After editing autogen.sh (replace "libtoolize" with "glibtoolize") to test the fix, autogen.sh and configure ran through:
Hmm, how odd. But, sure that makes sense. Do you know what's preferred?
Configuration:
Source code location: . Destination path prefix: /Volumes/blue/src/Inkscape/src/inkscape-repo/mp-x11/packaging/macosx/../../Build Compiler: ccache g++ CPPFLAGS: -Wall -Wformat -Wformat-security -W -D_FORTIFY_SOURCE=2 -I/Volumes/blue/mp-inkscape/with-a-long-long-long-directory-name/include CXXFLAGS: -Wpointer-arith -Wcast-align -Wsign-compare -Woverloaded-virtual -Wswitch -Wno-unused-parameter -O3 -Wall -Wno-strict-aliasing CFLAGS: -Wno-pointer-sign -O3 -Wall LDFLAGS: -L/Volumes/blue/mp-inkscape/with-a-long-long-long-directory-name/lib Use Xft font database: yes Use gnome-vfs: yes Use openoffice files: yes Use relocation support: no Internal Python: skipped Internal Perl: skipped Enable LittleCms: yes Enable DBUS no Enable Poppler-Cairo: yes ImageMagick Magick++: yes Libwpg: yes Doing Local Install: no
Looks good.
but make failed later on with:
- link error for 'libinkdbus.la'
CCLD libinkdbus.la Undefined symbols:
...
ld: symbol(s) not found collect2: ld returned 1 exit status make[3]: *** [libinkdbus.la] Error 1 make[2]: *** [all] Error 2 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2
Any hints on how one can really disable DBUS in Inkscape for now or how to investigate if this is a problem with my local build environment (dbus, dbus-glib dependencies are installed [2]) or why this error happens on osx would be highly appreciated.
Uhg, I thought I tested this. Must have missed a case. You should be able to do a "--disable-dbus" to configure, but really that's the same as the message you're getting -- so it's got to be an error in the build. I'll look into it.
--Ted
On 14/7/10 16:46, Ted Gould wrote:
On Wed, 2010-07-14 at 09:59 +0200, ~suv wrote:
- make error due to hardcoded 'libtoolize' in autogen.sh
$ make CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh /Volumes/blue/src/Inkscape/src/inkscape-repo/mp-x11/missing --run aclocal-1.11 cd . && /bin/sh /Volumes/blue/src/Inkscape/src/inkscape-repo/mp-x11/missing --run automake-1.11 --foreign configure.ac:33: required file `./ltmain.sh' not found make: *** [Makefile.in] Error 1
On OS X libtool and libtoolize are installed as 'glibtool' and 'glibtoolize'. autogen.sh should either test for it or maybe use the environment variables ($LIBTOOL, $LIBTOOLIZE) which could be set in the packaging script (packaging/macosx/osx-build.sh).
After editing autogen.sh (replace "libtoolize" with "glibtoolize") to test the fix, autogen.sh and configure ran through:
Hmm, how odd. But, sure that makes sense. Do you know what's preferred?
Unfortunately I do not know what is preferred (a google search showed results with both mentioned variants, possibly others), nor am I sure it is the correct solution here - maybe overriding Apple's libtool with the local ./libtool generated by glibtoolize causes the link error below.
output of autogen.sh:
I am testing that you have the required versions of autoconf, automake, glib-gettextize and intltoolize. This test is not foolproof and if anything goes wrong, there may be guidance in the file HACKING.txt
checking for autoconf >= 2.52 ... yes (version 2.65) checking for automake >= 1.10 ... yes (version 1.11.1) checking for glib-gettextize >= 2.0.0 ... yes (version 2.24.1) checking for intltool >= 0.17 ... yes (version 0.40.6)
Running aclocal-1.11 ... Running autoheader ... Running glibtoolize ... glibtoolize: putting auxiliary files in `.'. glibtoolize: linking file `./ltmain.sh' glibtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.ac and glibtoolize: rerunning glibtoolize, to keep the correct libtool macros in-tree. glibtoolize: Consider adding `-I m4' to ACLOCAL_AMFLAGS in Makefile.am. glibtoolize: `AC_PROG_RANLIB' is rendered obsolete by `LT_INIT' Running automake-1.11 --copy --force --add-missing ... Running autoconf ... Running glib-gettextize --copy --force ... Copying file mkinstalldirs Copying file po/Makefile.in.in Running intltoolize --copy --force --automake ...
Done! Please run './configure' now.
My understanding of the compile and link process on OS X is is very limited, but "`AC_PROG_RANLIB' is rendered obsolete by `LT_INIT'" raises red flags for me - Apple's libtool and ranlib seem closely tied together [1] and differ from the GNU libtool version. Possibly linking fails because ./libtool overrides /usr/bin/libtool ?
- link error for 'libinkdbus.la'
CCLD libinkdbus.la Undefined symbols:
...
ld: symbol(s) not found collect2: ld returned 1 exit status make[3]: *** [libinkdbus.la] Error 1 make[2]: *** [all] Error 2 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2
When building Inkscape before the dbus-api merge (or the 0.48.x branch), 'CCLD' is never called AFAICT - how can I find out the full command instead of the “silent make mode”?
~suv
[1] Apple man pages
http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPag... http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPag... http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPag...
[2] glibtoolize version (installed via MacPorts):
$ which glibtoolize /Volumes/blue/mp-inkscape/with-a-long-long-long-directory-name/bin/glibtoolize $ glibtoolize --version libtoolize (GNU libtool) 2.2.6b Written by Gary V. Vaughan <gary@...570...>, 2003
Copyright (C) 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ port info libtool libtool @2.2.6b, Revision 1 (devel, sysutils) Variants: universal
Description: GNU libtool is a generic library support script. Libtool hides the complexity of using shared libraries behind a consistent, portable interface. Homepage: http://www.gnu.org/software/libtool/
Build Dependencies: automake Platforms: darwin, freebsd License: unknown Maintainers: boeyms@...2376..., openmaintainer@...2376... $ port installed libtool The following ports are currently installed: libtool @2.2.6b_0 libtool @2.2.6b_1 (active)
[3] System info:
Mac OS X 10.5.8 (9L30) Xcode version 3.1.4 i686-apple-darwin9-gcc-4.0.1 (GCC) 4.0.1 (Apple Inc. build 5493)
On Jul 14, 2010, at 4:49 PM, ~suv wrote:
On 14/7/10 16:46, Ted Gould wrote:
On Wed, 2010-07-14 at 09:59 +0200, ~suv wrote:
- make error due to hardcoded 'libtoolize' in autogen.sh
$ make CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh /Volumes/blue/src/Inkscape/src/inkscape-repo/mp-x11/missing --run aclocal-1.11 cd . && /bin/sh /Volumes/blue/src/Inkscape/src/inkscape-repo/mp-x11/missing --run automake-1.11 --foreign configure.ac:33: required file `./ltmain.sh' not found make: *** [Makefile.in] Error 1
On OS X libtool and libtoolize are installed as 'glibtool' and 'glibtoolize'. autogen.sh should either test for it or maybe use the environment variables ($LIBTOOL, $LIBTOOLIZE) which could be set in the packaging script (packaging/macosx/osx-build.sh).
After editing autogen.sh (replace "libtoolize" with "glibtoolize") to test the fix, autogen.sh and configure ran through:
Hmm, how odd. But, sure that makes sense. Do you know what's preferred?
Unfortunately I do not know what is preferred (a google search showed results with both mentioned variants, possibly others), nor am I sure it is the correct solution here - maybe overriding Apple's libtool with the local ./libtool generated by glibtoolize causes the link error below.
Do we know for sure that libtoolize is what we want to use?
By default on my one Ubuntu install I do not have libtoolize, but I *do* have libltdl
It seems like a smaller and less invasive part of libtool if it will cover our needs.
On 14/7/10 09:59, ~suv wrote:
- link error for 'libinkdbus.la'
CCLD libinkdbus.la Undefined symbols:
...
ld: symbol(s) not found collect2: ld returned 1 exit status make[3]: *** [libinkdbus.la] Error 1 make[2]: *** [all] Error 2 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2
Any hints on how one can really disable DBUS in Inkscape for now or how to investigate if this is a problem with my local build environment (dbus, dbus-glib dependencies are installed [2]) or why this error happens on osx would be highly appreciated.
As of revision 9618 Inkscape builds again on osx - with DBUS disabled.
The issue of enabling dbus with Inkscape built as packaged osx-app will need to be addressed separately (maybe similar to how GIMP on OS X does it [1]).
Thanks Krzysztof!
~suv
[1] http://gimponosx.svn.sourceforge.net/viewvc/gimponosx/Gimp-app-template/Contents/Resources/bin/gimp?revision=100&view=markup http://article.gmane.org/gmane.comp.graphics.inkscape.devel/30713
On 17/7/10 06:20, ~suv wrote:
As of revision 9618 Inkscape builds again on osx - with DBUS disabled.
Forgot to mention: I still have the change in 'autogen.sh' (the simple workaround for the libtoolize issue on osx platforms, diff attached), but did not manually run autogen.sh again, just 'make' after updating from trunk (console log attached).
~suv
=== modified file 'autogen.sh' --- autogen.sh 2010-03-26 04:34:25 +0000 +++ autogen.sh 2010-07-14 01:12:53 +0000 @@ -182,7 +182,7 @@ attempt_command '' autoheader }
-attempt_command '' libtoolize +attempt_command '' glibtoolize attempt_command '' $AUTOMAKE --copy --force --add-missing attempt_command '' autoconf attempt_command '^(Please add the files| codeset| progtest|from the|or directly|You will also|ftp://ftp.gnu.org|$)' \
LeWitt:mp-x11 suv$ make CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh /Volumes/blue/src/Inkscape/src/inkscape-repo/mp-x11/missing --run aclocal-1.11 cd . && /bin/sh /Volumes/blue/src/Inkscape/src/inkscape-repo/mp-x11/missing --run automake-1.11 --foreign CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh /Volumes/blue/src/Inkscape/src/inkscape-repo/mp-x11/missing --run autoconf /bin/sh ./config.status --recheck running CONFIG_SHELL=/bin/sh /bin/sh ./configure --enable-osxapp --prefix=/Volumes/blue/src/Inkscape/src/inkscape-repo/mp-x11/packaging/macosx/../../Build/ CXX=ccache g++ CXXFLAGS=-O3 -Wall LDFLAGS=-L/Volumes/blue/mp-inkscape/with-a-long-long-long-directory-name/lib CPPFLAGS=-I/Volumes/blue/mp-inkscape/with-a-long-long-long-directory-name/include CC=ccache gcc CFLAGS=-O3 -Wall --no-create --no-recursion checking build system type... i386-apple-darwin9.8.0 checking host system type... i386-apple-darwin9.8.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 how to create a pax tar archive... gnutar checking for style of include used by make... GNU checking whether the C++ compiler works... yes checking for C++ compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C++ compiler... yes checking whether ccache g++ accepts -g... yes checking dependency style of ccache g++... gcc3 checking for library containing strerror... none required checking whether we are using the GNU C++ compiler... (cached) yes checking whether ccache g++ accepts -g... (cached) yes checking dependency style of ccache g++... (cached) gcc3 checking for gcc... ccache gcc checking whether we are using the GNU C compiler... yes checking whether ccache gcc accepts -g... yes checking for ccache gcc option to accept ISO C89... none needed checking dependency style of ccache gcc... gcc3 checking dependency style of ccache gcc... gcc3 checking for ranlib... ranlib checking whether NLS is requested... yes checking for intltool >= 0.22... 0.40.6 found checking for intltool-update... /Volumes/blue/mp-inkscape/with-a-long-long-long-directory-name/bin/intltool-update checking for intltool-merge... /Volumes/blue/mp-inkscape/with-a-long-long-long-directory-name/bin/intltool-merge checking for intltool-extract... /Volumes/blue/mp-inkscape/with-a-long-long-long-directory-name/bin/intltool-extract checking for xgettext... /Volumes/blue/mp-inkscape/with-a-long-long-long-directory-name/bin/xgettext checking for msgmerge... /Volumes/blue/mp-inkscape/with-a-long-long-long-directory-name/bin/msgmerge checking for msgfmt... /Volumes/blue/mp-inkscape/with-a-long-long-long-directory-name/bin/msgfmt checking for gmsgfmt... /Volumes/blue/mp-inkscape/with-a-long-long-long-directory-name/bin/msgfmt checking for perl... /Volumes/blue/mp-inkscape/with-a-long-long-long-directory-name/bin/perl checking for perl >= 5.8.1... 5.8.9 checking for XML::Parser... ok checking for a sed that does not truncate output... /Volumes/blue/mp-inkscape/with-a-long-long-long-directory-name/bin/gsed checking for grep that handles long lines and -e... /Volumes/blue/mp-inkscape/with-a-long-long-long-directory-name/bin/grep checking for egrep... /Volumes/blue/mp-inkscape/with-a-long-long-long-directory-name/bin/grep -E checking for fgrep... /Volumes/blue/mp-inkscape/with-a-long-long-long-directory-name/bin/grep -F checking for ld used by ccache gcc... /usr/libexec/gcc/i686-apple-darwin9/4.0.1/ld checking if the linker (/usr/libexec/gcc/i686-apple-darwin9/4.0.1/ld) is GNU ld... no checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -p checking the name lister (/usr/bin/nm -p) 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 "+="... yes checking for /usr/libexec/gcc/i686-apple-darwin9/4.0.1/ld option to reload object files... -r checking for objdump... no checking how to recognize dependent libraries... pass_all checking for ar... ar checking for strip... strip checking for ranlib... (cached) ranlib checking command to parse /usr/bin/nm -p output from ccache gcc 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... ccache gcc -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 whether we are using the GNU C++ compiler... (cached) yes checking whether ccache g++ accepts -g... (cached) yes checking dependency style of ccache g++... (cached) gcc3 checking how to run the C++ preprocessor... ccache g++ -E checking for objdir... .libs checking if ccache gcc supports -fno-rtti -fno-exceptions... no checking for ccache gcc option to produce PIC... -fno-common -DPIC checking if ccache gcc PIC flag -fno-common -DPIC works... yes checking if ccache gcc static flag -static works... no checking if ccache gcc supports -c -o file.o... yes checking if ccache gcc supports -c -o file.o... (cached) yes checking whether the ccache gcc linker (/usr/libexec/gcc/i686-apple-darwin9/4.0.1/ld) supports shared libraries... yes checking dynamic linker characteristics... darwin9.8.0 dyld checking how to hardcode library paths into programs... immediate 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 ld used by ccache g++... /usr/libexec/gcc/i686-apple-darwin9/4.0.1/ld checking if the linker (/usr/libexec/gcc/i686-apple-darwin9/4.0.1/ld) is GNU ld... no checking whether the ccache g++ linker (/usr/libexec/gcc/i686-apple-darwin9/4.0.1/ld) supports shared libraries... yes checking for ccache g++ option to produce PIC... -fno-common -DPIC checking if ccache g++ PIC flag -fno-common -DPIC works... yes checking if ccache g++ static flag -static works... no checking if ccache g++ supports -c -o file.o... yes checking if ccache g++ supports -c -o file.o... (cached) yes checking whether the ccache g++ linker (/usr/libexec/gcc/i686-apple-darwin9/4.0.1/ld) supports shared libraries... yes checking dynamic linker characteristics... darwin9.8.0 dyld checking how to hardcode library paths into programs... immediate checking for ANSI C header files... (cached) yes checking for BZR snapshot build... yes checking for gcc... (cached) ccache gcc checking whether we are using the GNU C compiler... (cached) yes checking whether ccache gcc accepts -g... (cached) yes checking for ccache gcc option to accept ISO C89... (cached) none needed checking dependency style of ccache gcc... (cached) gcc3 checking whether ccache gcc and cc understand -c and -o together... yes checking compiler support for -Werror=format-security... no checking compiler support for -Wno-pointer-sign... yes checking linker tolerates -z relro... no checking GNU compiler version... 4.0.1 checking TR1 unordered_set usability... ok checking boost/unordered_set.hpp usability... yes checking boost/unordered_set.hpp presence... yes checking for boost/unordered_set.hpp... yes checking ext/hash_set usability... yes checking ext/hash_set presence... yes checking for ext/hash_set... yes checking for overzealous strict aliasing warnings... yes checking locale.h usability... yes checking locale.h presence... yes checking for locale.h... yes checking for LC_MESSAGES... yes checking libintl.h usability... yes checking libintl.h presence... yes checking for libintl.h... yes checking for ngettext in libc... no checking for bindtextdomain in -lintl... yes checking for ngettext in -lintl... yes checking for dgettext in -lintl... yes checking for bind_textdomain_codeset... yes checking for msgfmt... (cached) /Volumes/blue/mp-inkscape/with-a-long-long-long-directory-name/bin/msgfmt checking for dcgettext... yes checking if msgfmt accepts -c... yes checking for gmsgfmt... (cached) /Volumes/blue/mp-inkscape/with-a-long-long-long-directory-name/bin/msgfmt checking for xgettext... (cached) /Volumes/blue/mp-inkscape/with-a-long-long-long-directory-name/bin/xgettext checking for catalogs to be installed... am ar az be bg bn br ca ca@...1971... cs da de dz el en_AU en_CA en_GB en_US@...1443... eo es_MX es et eu fa fi fr ga gl he hr hu hy id it ja km ko lt mk mn nb ne nl nn pa pl pt_BR pt ro ru rw sk sl sq sr@...1894... sr sv te_IN th tr uk vi zh_CN zh_TW checking for pkg-config... /Volumes/blue/mp-inkscape/with-a-long-long-long-directory-name/bin/pkg-config checking for msgfmt... (cached) /Volumes/blue/mp-inkscape/with-a-long-long-long-directory-name/bin/msgfmt checking for gmsgfmt... (cached) /Volumes/blue/mp-inkscape/with-a-long-long-long-directory-name/bin/msgfmt checking for OpenMP flag of C++ compiler... unknown checking for png_read_info in -lpng... yes checking png.h usability... yes checking png.h presence... yes checking for png.h... yes checking for shl_load in -ldld... no checking for dlopen... yes checking gc.h usability... yes checking gc.h presence... yes checking for gc.h... yes checking for GC_init in -lgc... yes checking libgc version 6.4+... 7.1.255 yes checking sys/filio.h usability... yes checking sys/filio.h presence... yes checking for sys/filio.h... yes checking malloc.h usability... no checking malloc.h presence... no checking for malloc.h... no checking for mallinfo... no checking for freetype-config... /Volumes/blue/mp-inkscape/with-a-long-long-long-directory-name/bin/freetype-config checking for Win32 platform... no checking for Solaris platform... no checking pkg-config is at least version 0.9.0... yes checking for XFT... yes checking for PANGOFT2... yes checking for GNOME_VFS... yes checking whether byte ordering is bigendian... no checking zlib.h usability... yes checking zlib.h presence... yes checking for zlib.h... yes checking for Perl development environment... skipped checking for Python development environment... skipped checking for LCMS... yes checking for POPPLER... yes checking for POPPLER_GLIB... yes checking for CAIRO_SVG... yes checking for POPPLER_CAIRO... yes checking for POPPLER_GFXFONT... yes checking for new color space API in Poppler... yes checking for LIBWPG... yes checking for IMAGEMAGICK... yes checking for CAIRO_USER_FONTS... yes checking for INKSCAPE... yes checking for Mac OS X Carbon support... yes checking boost/concept_check.hpp usability... yes checking boost/concept_check.hpp presence... yes checking for boost/concept_check.hpp... yes checking for CAIRO_PDF... yes checking popt.h usability... yes checking popt.h presence... yes checking for popt.h... yes checking for new_aspell_config in -laspell... yes checking aspell.h usability... yes checking aspell.h presence... yes checking for aspell.h... yes checking for bind_textdomain_codeset... (cached) yes checking for gtk_window_set_default_icon_from_file... yes checking for gtk_window_fullscreen... yes checking whether binary relocation support should be enabled... no checking for pow... yes checking for sqrt... yes checking for floor... yes checking for gettimeofday... yes checking for memmove... yes checking for memset... yes checking for mkdir... yes checking for strncasecmp... yes checking for strpbrk... yes checking for strrchr... yes checking for strspn... yes checking for strstr... yes checking for strtoul... yes checking for fpsetmask... no checking for ecvt... yes checking ieeefp.h usability... no checking ieeefp.h presence... no checking for ieeefp.h... no checking fcntl.h usability... yes checking fcntl.h presence... yes checking for fcntl.h... yes checking for libintl.h... (cached) yes checking stddef.h usability... yes checking stddef.h presence... yes checking for stddef.h... yes checking sys/time.h usability... yes checking sys/time.h presence... yes checking for sys/time.h... yes checking whether lstat correctly handles trailing slash... no checking whether stat accepts an empty string... no checking for strftime... yes checking for working strtod... yes checking whether stat file-mode macros are broken... no checking whether time.h and sys/time.h may both be included... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for mode_t... yes checking return type of signal handlers... void configure: creating ./config.status
Configuration:
Source code location: . Destination path prefix: /Volumes/blue/src/Inkscape/src/inkscape-repo/mp-x11/packaging/macosx/../../Build Compiler: ccache g++ CPPFLAGS: -Wall -Wformat -Wformat-security -W -D_FORTIFY_SOURCE=2 -I/Volumes/blue/mp-inkscape/with-a-long-long-long-directory-name/include CXXFLAGS: -Wpointer-arith -Wcast-align -Wsign-compare -Woverloaded-virtual -Wswitch -Wno-unused-parameter -O3 -Wall -Wno-strict-aliasing CFLAGS: -Wno-pointer-sign -O3 -Wall LDFLAGS: -L/Volumes/blue/mp-inkscape/with-a-long-long-long-directory-name/lib
Use Xft font database: yes Use gnome-vfs: yes Use openoffice files: yes Use relocation support: no Internal Python: skipped Internal Perl: skipped Enable LittleCms: yes Enable DBUS no Enable Poppler-Cairo: yes ImageMagick Magick++: yes Libwpg: yes Doing Local Install: no
/bin/sh ./config.status config.status: creating Makefile config.status: creating src/Makefile config.status: creating src/check-header-compile config.status: creating src/application/makefile config.status: creating src/bind/makefile config.status: creating src/debug/makefile config.status: creating src/dialogs/makefile config.status: creating src/display/makefile config.status: creating src/dom/makefile config.status: creating src/extension/implementation/makefile config.status: creating src/extension/internal/makefile config.status: creating src/extension/makefile config.status: creating src/extension/script/makefile config.status: creating src/extension/dbus/wrapper/inkdbus.pc config.status: creating src/filters/makefile config.status: creating src/helper/makefile config.status: creating src/io/makefile config.status: creating src/libcroco/makefile config.status: creating src/libgdl/makefile config.status: creating src/libnr/makefile config.status: creating src/libnrtype/makefile config.status: creating src/libavoid/makefile config.status: creating src/livarot/makefile config.status: creating src/live_effects/makefile config.status: creating src/live_effects/parameter/makefile config.status: creating src/pedro/makefile config.status: creating src/jabber_whiteboard/makefile config.status: creating src/svg/makefile config.status: creating src/trace/makefile config.status: creating src/ui/cache/makefile config.status: creating src/ui/dialog/makefile config.status: creating src/ui/makefile config.status: creating src/ui/view/makefile config.status: creating src/ui/widget/makefile config.status: creating src/util/makefile config.status: creating src/widgets/makefile config.status: creating src/xml/makefile config.status: creating src/2geom/makefile config.status: creating doc/Makefile config.status: creating po/Makefile.in config.status: creating share/Makefile config.status: creating share/clipart/Makefile config.status: creating share/examples/Makefile config.status: creating share/extensions/Makefile config.status: creating share/extensions/alphabet_soup/Makefile config.status: creating share/extensions/Barcode/Makefile config.status: creating share/extensions/Poly3DObjects/Makefile config.status: creating share/extensions/test/Makefile config.status: creating share/extensions/xaml2svg/Makefile config.status: creating share/filters/Makefile config.status: creating share/fonts/Makefile config.status: creating share/gradients/Makefile config.status: creating share/icons/Makefile config.status: creating share/icons/application/Makefile config.status: creating share/icons/application/16x16/Makefile config.status: creating share/icons/application/22x22/Makefile config.status: creating share/icons/application/24x24/Makefile config.status: creating share/icons/application/32x32/Makefile config.status: creating share/icons/application/48x48/Makefile config.status: creating share/icons/application/256x256/Makefile config.status: creating share/keys/Makefile config.status: creating share/markers/Makefile config.status: creating share/palettes/Makefile config.status: creating share/patterns/Makefile config.status: creating share/screens/Makefile config.status: creating share/templates/Makefile config.status: creating share/tutorials/Makefile config.status: creating share/ui/Makefile config.status: creating packaging/autopackage/default.apspec config.status: creating inkscape.spec config.status: creating Info.plist config.status: creating inkview.1 config.status: creating config.h config.status: executing depfiles commands config.status: executing libtool commands config.status: executing default-1 commands config.status: executing po/stamp-it commands (CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh /Volumes/blue/src/Inkscape/src/inkscape-repo/mp-x11/missing --run autoheader) rm -f stamp-h1 touch config.h.in cd . && /bin/sh ./config.status config.h config.status: creating config.h config.status: config.h is unchanged make all-recursive Making all in src make all-am CXX arc-context.o
...
On 17/7/10 06:38, ~suv wrote:
On 17/7/10 06:20, ~suv wrote:
As of revision 9618 Inkscape builds again on osx - with DBUS disabled.
Yesterday on irc, theAdib reported another 'configure' issue with building trunk after the dbus-api merge on Ubuntu:
|18:43| < theAdib> I think the trunk is broken after dbus import |18:45| < su-v> theAdib: http://news.gmane.org/gmane.comp.graphics.inkscape.devel broken on windows and osx :( |18:45| < theAdib> http://pastebin.com/TZBA1LFN |18:45| < theAdib> running Ubuntu 9.10 |18:46| < su-v> http://thread.gmane.org/gmane.comp.graphics.inkscape.devel/34424 - sorry |18:46| < theAdib> ahoi su-v: :-) |18:46| < su-v> on ubuntu too? |18:47| < su-v> do you have dbus-glib installed? |18:47| < theAdib> missing the dbus-binding-tool |18:50| < theAdib> after installing libdbus-glib-1-dev it is compiling now .... |18:51| < theAdib> ... someone to update configure checks
~suv
On 17/7/10 06:38, ~suv wrote:
On 17/7/10 06:20, ~suv wrote:
As of revision 9618 Inkscape builds again on osx - with DBUS disabled.
Forgot to mention: I still have the change in 'autogen.sh' (the simple workaround for the libtoolize issue on osx platforms, diff attached), but did not manually run autogen.sh again, just 'make' after updating from trunk (console log attached).
Attaching a revised diff (against r9627) for autogen.sh, hopefully allowing to autogen/configure on osx without breaking it on linux [1].
@Michael - could you test it with the osx development snapshots? @anyone on linux - could you review and test?
Note: configure option "--enable-dbusapi" not tested on osx, fix tested with default (with_dbus="no").
~suv
[1] code heavily borrowed from Wireshark, which has a similarly structured autogen.sh as Inkscape AFAICT.
http://anonsvn.wireshark.org/viewvc/trunk/autogen.sh?revision=26209&view=markup
=== modified file 'autogen.sh' --- autogen.sh 2010-03-26 04:34:25 +0000 +++ autogen.sh 2010-07-19 21:36:17 +0000 @@ -18,6 +18,7 @@ AUTOMAKE_REQUIRED_VERSION=1.10 GLIB_REQUIRED_VERSION=2.0.0 INTLTOOL_REQUIRED_VERSION=0.17 +LIBTOOL_REQUIRED_VERSION=1.4
srcdir=`dirname "$0"` test -z "$srcdir" && srcdir=. @@ -136,6 +137,33 @@ DIE=1 fi
+echo -n "checking for libtool >= $LIBTOOL_REQUIRED_VERSION ... " +# +# Apple's Developer Tools have a "libtool" that has nothing to do with +# the GNU libtool; they call the latter "glibtool". They also call +# libtoolize "glibtoolize". +# +# Check for "glibtool" first. +# +if (glibtool --version) < /dev/null > /dev/null 2>&1; then + VER=`glibtool --version \ + | grep libtool | sed -n 's/.* ([0-9.]*)/\1/p'` + if test -z "$VER"; then + VER=`libtool --version \ + | grep libtool | sed -n 's/.* ([0-9.]*)/\1/p'` + LIBTOOLIZE=libtoolize + else + LIBTOOLIZE=glibtoolize + fi + check_version "$VER" "$LIBTOOL_REQUIRED_VERSION" +else + echo + echo " You must have libtool installed to compile $PROJECT." + echo " Get the latest version from" + echo " ftp://ftp.gnome.org/pub/GNOME/sources/libtool/" + DIE=1 +fi + if test "$DIE" -eq 1; then echo echo "Please install/upgrade the missing tools and call me again." @@ -182,7 +210,7 @@ attempt_command '' autoheader }
-attempt_command '' libtoolize +attempt_command '' $LIBTOOLIZE attempt_command '' $AUTOMAKE --copy --force --add-missing attempt_command '' autoconf attempt_command '^(Please add the files| codeset| progtest|from the|or directly|You will also|ftp://ftp.gnu.org|$)' \
On 20/07/2010, at 7:50 AM, ~suv wrote:
On 17/7/10 06:38, ~suv wrote:
On 17/7/10 06:20, ~suv wrote:
As of revision 9618 Inkscape builds again on osx - with DBUS disabled.
Forgot to mention: I still have the change in 'autogen.sh' (the simple workaround for the libtoolize issue on osx platforms, diff attached), but did not manually run autogen.sh again, just 'make' after updating from trunk (console log attached).
Attaching a revised diff (against r9627) for autogen.sh, hopefully allowing to autogen/configure on osx without breaking it on linux [1].
@Michael - could you test it with the osx development snapshots? @anyone on linux - could you review and test?
Hi ~suv,
Yes, this patch works correctly and has allowed the nightly OSX builds to work again.
The patch looks fine and I'm in favour of committing it so long as it causes no issues for the linux libtool users.
Thanks, Michael
On Mon, 2010-07-19 at 23:50 +0200, ~suv wrote:
On 17/7/10 06:38, ~suv wrote:
On 17/7/10 06:20, ~suv wrote:
As of revision 9618 Inkscape builds again on osx - with DBUS disabled.
Forgot to mention: I still have the change in 'autogen.sh' (the simple workaround for the libtoolize issue on osx platforms, diff attached), but did not manually run autogen.sh again, just 'make' after updating from trunk (console log attached).
Attaching a revised diff (against r9627) for autogen.sh, hopefully allowing to autogen/configure on osx without breaking it on linux [1].
@Michael - could you test it with the osx development snapshots? @anyone on linux - could you review and test?
Tested on Ubuntu and it doesn't seem to find libtool (which is installed and greater than the required version). So, unfortunately it needs some tweaking.
Cheers, Josh
The elephant in the room is that the hybrid Autotools + btool system is more hassle than it's worth.
The options we have are: 1. CMake, which has a scripting language so weak and verbose that it's insulting, but a lot of people use it. 2. Waf, which gives you the full expressive power of Python, but the maintainer has some ideas which make me question the long term viability of the project. 3. Our own fork of Waf that removes the maintainer problem, but ties up manpower. 4. SCons, which is also Pythonic, but slow as molasses.
There is a version of Inkscape that builds with a modified copy of Waf available at lp:~tweenk/inkscape/waf-build. The source to the modified copy of Waf is at lp:inkwaf. The amount of code in Waf scripts, compared to the existing body of Automake/Autoconf code, is rather modest.
Regards, Krzysztof
To reiterate and illuminate a bit, our options include
1. Autotools + btool. Some hassles, but very widely used and allows us to cover a *lot* of end-user platforms that we've not expected. * project overview: https://www.ohloh.net/p/autoconf * project overview: https://www.ohloh.net/p/automake
2. CMake. Very robust, widely used, and even has commercial endeavors for. Negatives include a more customized, limited scripting language. Note that many consider the more limited language a strength. * project overview: https://www.ohloh.net/p/cmake * in-depth interview: http://twit.tv/floss111
3. Waf. Fairly new, one-man project. Being new has the advantage of allowing it to start with refined ideas, but the one-man situation has major issues including some that Krzysztof touched on. Being modeled after SCons also brings up some warning flags. It also has decreasing year-over-year development activity. * project overview: https://www.ohloh.net/p/waf
4. Forking our own version of Waf. Removes the one-man problems with Waf, but introduces many many many many more.
5. SCons. Not a viable solution. When we've explored build systems before, I'd been unable to get even simple SCons projects working on OS X (including hacking at SCons sources themselves). KDE dropped SCons for CMake for many reasons, including poor cross-platform support. * project overview: https://www.ohloh.net/p/scons
At the moment CMake sounds like the best choice, *if* changing away from our current build system would be worth it. We want to be sure not to underestimate all that our current build system *is* successfully doing at the moment as that tends to be less noticeable. As KDE discovered with SCons, getting a project fully there is a different level of detail than getting smaller sub-projects and tests over.
This article has some good details on switching to CMake, and even includes a sidebar draw from Scribus' Peter Linnell:
Why the KDE project switched to CMake -- and how http://lwn.net/Articles/188693/
On 7/22/2010 1:49 AM, Jon Cruz wrote:
- Autotools + btool. Some hassles, but very widely used and allows us to cover a *lot* of end-user platforms that we've not expected.
- project overview: https://www.ohloh.net/p/autoconf
- project overview: https://www.ohloh.net/p/automake
I mean no offense to Bob or btool! I find that it just works and it is one of the reasons that often building on windows is easier than linux. But... btool is not widely used and it is a one man project. The problem here is still that we has TWO build systems. Perhaps we should switch to btool on linux. ;-)
Aaron Spike
+1 why are we talking about it like its a hybrid system? its one that works very well on win, and one seperate one that people barely seem to understand but manage to get to work most of the time on linux. btool makes life ridiculously easy on win. leave it the hell alone.
On 22 July 2010 15:30, Aaron Spike <aaron@...749...> wrote:
On 7/22/2010 1:49 AM, Jon Cruz wrote:
- Autotools + btool. Some hassles, but very widely used and allows us to cover a *lot* of end-user platforms that we've not expected.
- project overview: https://www.ohloh.net/p/autoconf
- project overview: https://www.ohloh.net/p/automake
I mean no offense to Bob or btool! I find that it just works and it is one of the reasons that often building on windows is easier than linux. But... btool is not widely used and it is a one man project. The problem here is still that we has TWO build systems. Perhaps we should switch to btool on linux. ;-)
Aaron Spike
This SF.net email is sponsored by Sprint What will you do first with EVO, the first 4G phone? Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel
2010/7/22 john cliff <john.cliff@...400...>:
+1 why are we talking about it like its a hybrid system? its one that works very well on win, and one seperate one that people barely seem to understand but manage to get to work most of the time on linux. btool makes life ridiculously easy on win. leave it the hell alone.
It only works well because the configuration on Windows is effectively fixed. It doesn't do any configure checks and doesn't know how to generate config.h, because on Windows it is written by hand and stored in build.xml.
This approach will not work well on Linux or other Unixes, because the variability of system configuration is much greater than on Windows, and we do not control the versions of compiler, libraries, etc. used by Inkscape. I don't think it's feasible to use btool on anything else than Windows.
Regards, Krzysztof
2010/7/22 Jon Cruz <jon@...18...>:
- Waf. Fairly new, one-man project. Being new has the advantage of allowing it to start with refined ideas, but the one-man situation has major issues including some that Krzysztof touched on. Being modeled after SCons also brings up some warning flags. It also has decreasing year-over-year development activity.
The one-man situation is actually the least important problem, and in some cases it could be an advantage (no design by committee). The only thing in common with SCons is that it's Python based.
The actual problems are: 1. Maintainer doesn't know how to use source control. He keeps the stable version in trunk and the new development version in a branch. 2. When I attempted to make a minor correction to a sloppy code that caused O(N) behavior instead of O(1), he rejected this as an "unnecessary optimization". The correction did not decrease readability. 3. The first change he made to the 1.6 branch was to remove backwards compatibility with Python 2.x. At the same time, he did not make sure that it worked with Python 3.x, so the branch was useless for a rather long time. 4. He doesn't keep the development version in a workable state - it is frequently broken. 5. He treats the public SVN as a remote backup of his local working tree, particularly for the dev version. 6. SVN history is not usable, because he spams it with hundreds of one line commits with incomprehensible or misleading descriptions. 7. The documentation is non-free and is almost useless, because the author keeps talking about internals and concepts that are irrelevant to the user.
That said, the software itself is very nice to use. It's almost trivial to do things that would be impossible or very hard in other build systems. For example, it's easy to define a tool that renders icons to PNG using either rsvg or Inkscape, or a tool that separates binaries into debugging symbols and stripped executable. If someone took it over, showed it some love and improved the documentation, it could become the most powerful build system in existence.
Regards, Krzysztof
On 7/22/10, Jon Cruz wrote:
- Waf. Fairly new, one-man project. Being new has the advantage of allowing
it to start with refined ideas, but the one-man situation has major issues including some that Krzysztof touched on. Being modeled after SCons also brings up some warning flags. It also has decreasing year-over-year development activity.
- project overview: https://www.ohloh.net/p/waf
However, waf is increasingly popular in Linux audio world, and I have a suspicion that as long as projects like Ardour3 and LADISH depend on it, one could rest assured that waf isn't really going to die.
Alexandre Prokoudine http://libregraphicsworld.org
On 21/7/10 23:01, Joshua A. Andler wrote:
On Mon, 2010-07-19 at 23:50 +0200, ~suv wrote:
On 17/7/10 06:38, ~suv wrote:
On 17/7/10 06:20, ~suv wrote:
As of revision 9618 Inkscape builds again on osx - with DBUS disabled.
Forgot to mention: I still have the change in 'autogen.sh' (the simple workaround for the libtoolize issue on osx platforms, diff attached), but did not manually run autogen.sh again, just 'make' after updating from trunk (console log attached).
Attaching a revised diff (against r9627) for autogen.sh, hopefully allowing to autogen/configure on osx without breaking it on linux [1].
@Michael - could you test it with the osx development snapshots? @anyone on linux - could you review and test?
Tested on Ubuntu and it doesn't seem to find libtool (which is installed and greater than the required version). So, unfortunately it needs some tweaking.
Simpler version which does not check for version/existence of libtool but prefers glibtoolize over libtoolize if present.
~suv
=== modified file 'autogen.sh' --- autogen.sh 2010-03-26 04:34:25 +0000 +++ autogen.sh 2010-07-21 21:57:14 +0000 @@ -182,7 +182,10 @@ attempt_command '' autoheader }
-attempt_command '' libtoolize +# use glibtoolize if it is available (darwin) +(glibtoolize --version) < /dev/null > /dev/null 2>&1 && LIBTOOLIZE=glibtoolize || LIBTOOLIZE=libtoolize + +attempt_command '' $LIBTOOLIZE attempt_command '' $AUTOMAKE --copy --force --add-missing attempt_command '' autoconf attempt_command '^(Please add the files| codeset| progtest|from the|or directly|You will also|ftp://ftp.gnu.org|$)' \
On 22/7/10 00:02, ~suv wrote:
On 21/7/10 23:01, Joshua A. Andler wrote:
On Mon, 2010-07-19 at 23:50 +0200, ~suv wrote:
On 17/7/10 06:38, ~suv wrote:
On 17/7/10 06:20, ~suv wrote:
As of revision 9618 Inkscape builds again on osx - with DBUS disabled.
Forgot to mention: I still have the change in 'autogen.sh' (the simple workaround for the libtoolize issue on osx platforms, diff attached), but did not manually run autogen.sh again, just 'make' after updating from trunk (console log attached).
Attaching a revised diff (against r9627) for autogen.sh, hopefully allowing to autogen/configure on osx without breaking it on linux [1].
@Michael - could you test it with the osx development snapshots? @anyone on linux - could you review and test?
Tested on Ubuntu and it doesn't seem to find libtool (which is installed and greater than the required version). So, unfortunately it needs some tweaking.
Simpler version which does not check for version/existence of libtool but prefers glibtoolize over libtoolize if present.
ScislaC has confirmed the 2nd version to work on Ubuntu. Any other reviews about using it on linux platforms?
IMHO it would be great if trunk built on osx without requiring manual patching of autogen.sh: the patch allows to do so - at least until the discussion about using libtool at all or using libltdl instead (as proposed by Jon [1]) is solved.
@Michael - could you test the second version on osx as well?
~suv
[1] http://thread.gmane.org/gmane.comp.graphics.inkscape.devel/34424/focus=34472
On 24/07/2010, at 4:40 PM, ~suv wrote:
ScislaC has confirmed the 2nd version to work on Ubuntu. Any other reviews about using it on linux platforms?
IMHO it would be great if trunk built on osx without requiring manual patching of autogen.sh: the patch allows to do so - at least until the discussion about using libtool at all or using libltdl instead (as proposed by Jon [1]) is solved.
@Michael - could you test the second version on osx as well?
Yep, this second version works fine for me.
Cheers, Michael
------ Dr. Michael Wybrow, Research Fellow Clayton School of Information Technology Monash University Wellington Rd, Clayton, Vic 3800, Australia Phone: +613 9905 2479 Mobile: +614 2577 2053
On 07/17/2010 06:20 AM, ~suv wrote:
As of revision 9618 Inkscape builds again on osx - with DBUS disabled.
The issue of enabling dbus with Inkscape built as packaged osx-app will need to be addressed separately (maybe similar to how GIMP on OS X does it [1]).
Thanks Krzysztof!
Compilation on Fedora has been fixed too, so I'll have to side with ~suv here: thanks Krzysztof!
Diederik
participants (11)
-
unknown@example.com
-
Aaron Spike
-
Alexandre Prokoudine
-
Diederik van Lierop
-
john cliff
-
Jon Cruz
-
Joshua A. Andler
-
Krzysztof Kosiński
-
Michael Wybrow
-
Ted Gould
-
~suv