diff options
53 files changed, 1527 insertions, 503 deletions
diff --git a/configure b/configure index 997139fdc1a8..6a8de10e3376 100755 --- a/configure +++ b/configure @@ -309,7 +309,7 @@ ac_includes_default="\ # include <unistd.h> #endif" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS EGREP AWK SED LOCAL_SOLENV _solenv UPD SOURCEVERSION build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os GNUTAR OSVERSION PTHREAD_CFLAGS PTHREAD_LIBS ENABLE_CRASHDUMP VC_STANDARD ENABLE_WERROR ENABLE_DEBUG PRODUCT PROFULLSWITCH PROEXT ENABLE_SYMBOLS DISABLE_STRIP ENABLE_CUPS ENABLE_FONTCONFIG TARFILE_LOCATION DO_FETCH_TARBALLS WITH_BINFILTER ENABLE_DIRECTX DISABLE_ACTIVEX DISABLE_ATL ENABLE_RPATH WITH_MYSPELL_DICTS SYSTEM_DICTS DICT_SYSTEM_DIR HYPH_SYSTEM_DIR THES_SYSTEM_DIR WITH_MINGWIN SHELLPATH GCC_HOME CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT COMPATH GCCVER HAVE_LD_BSYMBOLIC_FUNCTIONS ENABLE_PCH NO_HIDS GNUMAKE _cc HAVE_LD_HASH_STYLE PERL MSPDB_PATH COMEX USE_MINGW MIDL_PATH CSC_PATH FRAME_HOME CPP CXX CXXFLAGS ac_ct_CXX CXXCPP SIZEOF_LONG WORDS_BIGENDIAN LFS_CFLAGS ENABLE_VBA VBA_EXTENSION PAM NEW_SHADOW_API PAM_LINK CRYPT_LINK GXX_INCLUDE_PATH MINGW_LIB_INCLUDE_PATH MINGW_BACKWARD_INCLUDE_PATH MINGW_CLIB_DIR MINGW_SHARED_GCCLIB MINGW_GCCLIB_EH MINGW_SHARED_GXXLIB MINGW_GCCDLL MINGW_GXXDLL EXCEPTIONS STLPORT4 STLPORT_VER USE_SYSTEM_STL USE_CCACHE CCACHE HAVE_GCC_VISIBILITY_FEATURE ALLOC BUILD_VER_STRING SOLAR_JAVA JAVAINTERPRETER JAVACOMPILER JAVACISGCJ JAVADOC AWTLIB JAVAAOTCOMPILER JAVA_HOME JDK JAVAFLAGS JAVAIFLAGS DMAKE BUILD_DMAKE EPM DPKG PKGMK BUILD_EPM PKGFORMAT RPM GPERF MINGWCXX ac_ct_MINGWCXX MINGWSTRIP ac_ct_MINGWSTRIP BUILD_UNOWINREG SYSTEM_STDLIBS SYSTEM_ZLIB SYSTEM_JPEG SYSTEM_EXPAT PKG_CONFIG LIBWPD_CFLAGS LIBWPD_LIBS SYSTEM_LIBWPD CPPUNIT_CFLAGS CPPUNIT_LIBS SYSTEM_CPPUNIT FREETYPE_CFLAGS FREETYPE_LIBS USE_FT_EMBOLDEN LIBXSLT_CFLAGS LIBXSLT_LIBS XSLTPROC SYSTEM_LIBXSLT LIBXML_CFLAGS LIBXML_LIBS SYSTEM_LIBXML PYTHON PYTHON_VERSION PYTHON_PREFIX PYTHON_EXEC_PREFIX PYTHON_PLATFORM pythondir pkgpythondir pyexecdir pkgpyexecdir BZIP2 SYSTEM_PYTHON PYTHON_CFLAGS PYTHON_LIBS HOME SYSTEM_DB DB_VERSION DB_INCLUDES DB_JAR SYSTEM_LUCENE LUCENE_CORE_JAR LUCENE_ANALYZERS_JAR ENABLE_MYSQLC MYSQLCONFIG SYSTEM_MYSQL MYSQL_INC MYSQL_LIB MYSQL_DEFINES LIBMYSQL_PATH SYSTEM_MYSQL_CPPCONN SYSTEM_HSQLDB HSQLDB_JAR SYSTEM_BSH BSH_JAR SERIALIZER_JAR SYSTEM_SAXON SAXON_JAR CURLCONFIG SYSTEM_CURL CURL_CFLAGS CURL_LIBS SYSTEM_MDDS SYSTEM_BOOST SYSTEM_VIGRA SYSTEM_ODBC_HEADERS WITH_MOZILLA WITH_LDAP WITH_OPENLDAP MOZ_NSS_CFLAGS MOZ_NSS_LIBS NSS_LIB MOZ_NSPR_CFLAGS MOZ_NSPR_LIBS NSPR_LIB MOZILLAXPCOM_CFLAGS MOZILLAXPCOM_LIBS MOZILLA_VERSION MOZILLA_TOOLKIT MOZGTK2_CFLAGS MOZGTK2_LIBS MOZLIBREQ_CFLAGS MOZLIBREQ_LIBS BUILD_MOZAB ENABLE_NSS_MODULE MOZILLABUILD SYSTEM_MOZILLA MOZ_FLAVOUR MOZ_INC MOZ_LIB MOZ_LIB_XPCOM MOZ_LDAP_CFLAGS SYSTEM_SANE_HEADER SYSTEM_GENBRK SYSTEM_GENCCODE SYSTEM_GENCMN SYSTEM_ICU GRAPHITE_CFLAGS GRAPHITE_LIBS ENABLE_GRAPHITE SYSTEM_GRAPHITE X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS XINC XLIB XAU_LIBS DISABLE_XAW SYSTEM_XRENDER_HEADERS XRENDER_LINK XRANDR_CFLAGS XRANDR_LIBS XRANDR_DLOPEN ENABLE_RANDR DISABLE_NEON NEON_CFLAGS NEON_LIBS SYSTEM_NEON NEON_VERSION OPENSSL_CFLAGS OPENSSL_LIBS SYSTEM_OPENSSL ENABLE_AGG AGG_CFLAGS AGG_LIBS SYSTEM_AGG AGG_VERSION REDLAND_CFLAGS REDLAND_LIBS SYSTEM_REDLAND HUNSPELL_CFLAGS HUNSPELL_LIBS SYSTEM_HUNSPELL SYSTEM_HYPH HYPHEN_LIB MYTHES_CFLAGS MYTHES_LIBS SYSTEM_MYTHES SYSTEM_LPSOLVE HAVE_GETOPT HAVE_READDIR_R SYSTEM_LIBC PSDK_HOME WINDOWS_VISTA_PSDK DIRECTXSDK_HOME DIRECTXSDK_LIB NSIS_PATH BISON FLEX PATCH GNUCP GNUPATCH CYGWIN_PATH ML_EXE ASM_HOME ZIP UNZIP ZIP_HOME ENABLE_GTK ENABLE_KDE ENABLE_KDE4 GCONF_CFLAGS GCONF_LIBS ENABLE_GCONF GNOMEVFS_CFLAGS GNOMEVFS_LIBS ENABLE_GNOMEVFS GTK_CFLAGS GTK_LIBS DBUS_CFLAGS DBUS_LIBS GIO_CFLAGS GIO_LIBS ENABLE_GIO ENABLE_DBUS ENABLE_SYSTRAY_GTK CAIRO_CFLAGS CAIRO_LIBS ENABLE_CAIRO BUILD_PIXMAN SYSTEM_CAIRO ENABLE_OPENGL ENABLE_PRESENTER_EXTRA_UI ENABLE_MINIMIZER ENABLE_PRESENTER_SCREEN POPPLER_CFLAGS POPPLER_LIBS ENABLE_PDFIMPORT SYSTEM_POPPLER ENABLE_MEDIAWIKI SYSTEM_SERVLETAPI SERVLETAPI_JAR ENABLE_REPORTBUILDER SYSTEM_JFREEREPORT SAC_JAR LIBXML_JAR FLUTE_JAR JFREEREPORT_JAR LIBBASE_JAR LIBLAYOUT_JAR LIBLOADER_JAR LIBFORMULA_JAR LIBREPOSITORY_JAR LIBFONTS_JAR LIBSERIALIZER_JAR SYSTEM_APACHE_COMMONS COMMONS_CODEC_JAR COMMONS_LANG_JAR COMMONS_HTTPCLIENT_JAR COMMONS_LOGGING_JAR MOC KDE_CFLAGS KDE_LIBS MOC4 KDE4_CFLAGS KDE4_LIBS ENABLE_LOCKDOWN GOBJECT_CFLAGS GOBJECT_LIBS ENABLE_EVOAB2 ENABLE_KAB WITH_FONTS WITHOUT_PPDS WITHOUT_AFMS SCPDEFS USE_XINERAMA XINERAMA_LINK ANT ANT_HOME ANT_LIB OOO_JUNIT_JAR WITH_LANG WITH_POOR_HELP_LOCALIZATIONS WITH_DICT INTRO_BITMAPS ABOUT_BITMAPS OOO_VENDOR UNIXWRAPPERNAME ENABLE_STATIC_GTK ENABLE_LAYOUT VERBOSE nodep LOCAL_SOLVER BUILD_TYPE LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS EGREP AWK SED LOCAL_SOLENV _solenv UPD SOURCEVERSION build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os GNUTAR OSVERSION PTHREAD_CFLAGS PTHREAD_LIBS ENABLE_CRASHDUMP VC_STANDARD ENABLE_WERROR ENABLE_DEBUG PRODUCT PROFULLSWITCH PROEXT ENABLE_SYMBOLS DISABLE_STRIP ENABLE_CUPS ENABLE_FONTCONFIG TARFILE_LOCATION DO_FETCH_TARBALLS WITH_BINFILTER ENABLE_DIRECTX DISABLE_ACTIVEX DISABLE_ATL ENABLE_RPATH WITH_MYSPELL_DICTS SYSTEM_DICTS DICT_SYSTEM_DIR HYPH_SYSTEM_DIR THES_SYSTEM_DIR WITH_MINGWIN SHELLPATH GCC_HOME CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT COMPATH GCCVER HAVE_LD_BSYMBOLIC_FUNCTIONS ENABLE_PCH NO_HIDS GNUMAKE _cc HAVE_LD_HASH_STYLE PERL MSPDB_PATH COMEX USE_MINGW MIDL_PATH CSC_PATH FRAME_HOME CPP CXX CXXFLAGS ac_ct_CXX CXXCPP SIZEOF_LONG WORDS_BIGENDIAN LFS_CFLAGS ENABLE_VBA VBA_EXTENSION PAM NEW_SHADOW_API PAM_LINK CRYPT_LINK GXX_INCLUDE_PATH MINGW_LIB_INCLUDE_PATH MINGW_BACKWARD_INCLUDE_PATH MINGW_CLIB_DIR MINGW_SHARED_GCCLIB MINGW_GCCLIB_EH MINGW_SHARED_GXXLIB MINGW_GCCDLL MINGW_GXXDLL EXCEPTIONS STLPORT4 STLPORT_VER USE_SYSTEM_STL USE_CCACHE CCACHE HAVE_GCC_VISIBILITY_FEATURE ALLOC BUILD_VER_STRING SOLAR_JAVA JAVAINTERPRETER JAVACOMPILER JAVACISGCJ JAVADOC AWTLIB JAVAAOTCOMPILER JAVA_HOME JDK JAVAFLAGS JAVAIFLAGS DMAKE BUILD_DMAKE EPM DPKG PKGMK BUILD_EPM RPM PKGFORMAT GPERF BUILD_STAX MINGWCXX ac_ct_MINGWCXX MINGWSTRIP ac_ct_MINGWSTRIP BUILD_UNOWINREG SYSTEM_STDLIBS SYSTEM_ZLIB SYSTEM_JPEG SYSTEM_EXPAT PKG_CONFIG LIBWPD_CFLAGS LIBWPD_LIBS SYSTEM_LIBWPD CPPUNIT_CFLAGS CPPUNIT_LIBS SYSTEM_CPPUNIT FREETYPE_CFLAGS FREETYPE_LIBS USE_FT_EMBOLDEN LIBXSLT_CFLAGS LIBXSLT_LIBS XSLTPROC SYSTEM_LIBXSLT LIBXML_CFLAGS LIBXML_LIBS SYSTEM_LIBXML PYTHON PYTHON_VERSION PYTHON_PREFIX PYTHON_EXEC_PREFIX PYTHON_PLATFORM pythondir pkgpythondir pyexecdir pkgpyexecdir BZIP2 SYSTEM_PYTHON PYTHON_CFLAGS PYTHON_LIBS HOME SYSTEM_DB DB_VERSION DB_INCLUDES DB_JAR SYSTEM_LUCENE LUCENE_CORE_JAR LUCENE_ANALYZERS_JAR ENABLE_MYSQLC MYSQLCONFIG SYSTEM_MYSQL MYSQL_INC MYSQL_LIB MYSQL_DEFINES LIBMYSQL_PATH SYSTEM_MYSQL_CPPCONN SYSTEM_HSQLDB HSQLDB_JAR SYSTEM_BSH BSH_JAR SERIALIZER_JAR SYSTEM_SAXON SAXON_JAR CURLCONFIG SYSTEM_CURL CURL_CFLAGS CURL_LIBS SYSTEM_MDDS SYSTEM_BOOST SYSTEM_VIGRA SYSTEM_ODBC_HEADERS WITH_MOZILLA WITH_LDAP WITH_OPENLDAP MOZ_NSS_CFLAGS MOZ_NSS_LIBS NSS_LIB MOZ_NSPR_CFLAGS MOZ_NSPR_LIBS NSPR_LIB MOZILLAXPCOM_CFLAGS MOZILLAXPCOM_LIBS MOZILLA_VERSION MOZILLA_TOOLKIT MOZGTK2_CFLAGS MOZGTK2_LIBS MOZLIBREQ_CFLAGS MOZLIBREQ_LIBS BUILD_MOZAB ENABLE_NSS_MODULE MOZILLABUILD SYSTEM_MOZILLA MOZ_FLAVOUR MOZ_INC MOZ_LIB MOZ_LIB_XPCOM MOZ_LDAP_CFLAGS SYSTEM_SANE_HEADER SYSTEM_GENBRK SYSTEM_GENCCODE SYSTEM_GENCMN SYSTEM_ICU GRAPHITE_CFLAGS GRAPHITE_LIBS ENABLE_GRAPHITE SYSTEM_GRAPHITE X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS XINC XLIB XAU_LIBS DISABLE_XAW SYSTEM_XRENDER_HEADERS XRENDER_LINK XRANDR_CFLAGS XRANDR_LIBS XRANDR_DLOPEN ENABLE_RANDR DISABLE_NEON NEON_CFLAGS NEON_LIBS SYSTEM_NEON NEON_VERSION OPENSSL_CFLAGS OPENSSL_LIBS SYSTEM_OPENSSL ENABLE_AGG AGG_CFLAGS AGG_LIBS SYSTEM_AGG AGG_VERSION REDLAND_CFLAGS REDLAND_LIBS SYSTEM_REDLAND HUNSPELL_CFLAGS HUNSPELL_LIBS SYSTEM_HUNSPELL SYSTEM_HYPH HYPHEN_LIB MYTHES_CFLAGS MYTHES_LIBS SYSTEM_MYTHES SYSTEM_LPSOLVE HAVE_GETOPT HAVE_READDIR_R SYSTEM_LIBC PSDK_HOME WINDOWS_VISTA_PSDK DIRECTXSDK_HOME DIRECTXSDK_LIB NSIS_PATH BISON FLEX PATCH GNUCP GNUPATCH CYGWIN_PATH ML_EXE ASM_HOME ZIP UNZIP ZIP_HOME ENABLE_GTK ENABLE_KDE ENABLE_KDE4 GCONF_CFLAGS GCONF_LIBS ENABLE_GCONF GNOMEVFS_CFLAGS GNOMEVFS_LIBS ENABLE_GNOMEVFS GTK_CFLAGS GTK_LIBS DBUS_CFLAGS DBUS_LIBS GIO_CFLAGS GIO_LIBS ENABLE_GIO ENABLE_DBUS ENABLE_SYSTRAY_GTK CAIRO_CFLAGS CAIRO_LIBS ENABLE_CAIRO BUILD_PIXMAN SYSTEM_CAIRO ENABLE_OPENGL ENABLE_PRESENTER_EXTRA_UI ENABLE_MINIMIZER ENABLE_PRESENTER_SCREEN POPPLER_CFLAGS POPPLER_LIBS ENABLE_PDFIMPORT SYSTEM_POPPLER ENABLE_MEDIAWIKI SYSTEM_SERVLETAPI SERVLETAPI_JAR ENABLE_REPORTBUILDER SYSTEM_JFREEREPORT SAC_JAR LIBXML_JAR FLUTE_JAR JFREEREPORT_JAR LIBBASE_JAR LIBLAYOUT_JAR LIBLOADER_JAR LIBFORMULA_JAR LIBREPOSITORY_JAR LIBFONTS_JAR LIBSERIALIZER_JAR SYSTEM_APACHE_COMMONS COMMONS_CODEC_JAR COMMONS_LANG_JAR COMMONS_HTTPCLIENT_JAR COMMONS_LOGGING_JAR MOC KDE_CFLAGS KDE_LIBS MOC4 KDE4_CFLAGS KDE4_LIBS ENABLE_LOCKDOWN GOBJECT_CFLAGS GOBJECT_LIBS ENABLE_EVOAB2 ENABLE_KAB WITH_FONTS WITHOUT_PPDS WITHOUT_AFMS SCPDEFS USE_XINERAMA XINERAMA_LINK ANT ANT_HOME ANT_LIB OOO_JUNIT_JAR WITH_LANG WITH_POOR_HELP_LOCALIZATIONS WITH_DICT INTRO_BITMAPS ABOUT_BITMAPS OOO_VENDOR UNIXWRAPPERNAME ENABLE_STATIC_GTK ENABLE_LAYOUT VERBOSE nodep LOCAL_SOLVER BUILD_TYPE LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -1444,7 +1444,9 @@ Optional Packages: Usage: --with-build-version="Built by Jim" --with-alloc Define which allocator to build with - (choices are oo, system, tcmalloc) + (choices are oo, system, tcmalloc, jemalloc) + + Note that on FreeBSD/NetBSD system==jemalloc --with-x use the X Window System @@ -4886,7 +4888,7 @@ done COMPATH=`echo $COMPATH | $SED "s@/[^/:]*\\\$@@"`; fi COMPATH=`echo $COMPATH | $SED "s@/[Bb][Ii][Nn]\\\$@@"`; -echo $COMPATH + GCCVER=20995 if test \( "$_os" != "WINNT" -o "$WITH_MINGWIN" = "yes" \) -a "$GCC" = "yes"; then echo "$as_me:$LINENO: checking the GNU gcc compiler version" >&5 @@ -10503,6 +10505,203 @@ fi ALLOC="TCMALLOC"; fi +if test "$with_alloc" = "jemalloc"; then + if test "$_os" != "FreeBSD" -o "$_os" != "NetBSD"; then + echo "$as_me:$LINENO: result: jemalloc" >&5 +echo "${ECHO_T}jemalloc" >&6 + save_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -pthread" + +echo "$as_me:$LINENO: checking for malloc in -ljemalloc" >&5 +echo $ECHO_N "checking for malloc in -ljemalloc... $ECHO_C" >&6 +if test "${ac_cv_lib_jemalloc_malloc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ljemalloc $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char malloc (); +int +main () +{ +malloc (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_jemalloc_malloc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_jemalloc_malloc=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_jemalloc_malloc" >&5 +echo "${ECHO_T}$ac_cv_lib_jemalloc_malloc" >&6 +if test $ac_cv_lib_jemalloc_malloc = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBJEMALLOC 1 +_ACEOF + + LIBS="-ljemalloc $LIBS" + +else + { { echo "$as_me:$LINENO: error: jemalloc not found or functional. Install the jemalloc allocator." >&5 +echo "$as_me: error: jemalloc not found or functional. Install the jemalloc allocator." >&2;} + { (exit 1); exit 1; }; } +fi + + ALLOC="JEMALLOC"; + CFLAGS=$save_CFLAGS + else + echo "$as_me:$LINENO: result: system" >&5 +echo "${ECHO_T}system" >&6 + ALLOC="SYS_ALLOC"; + + + + +for ac_func in malloc realloc calloc free +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func. + For example, HP-UX 11i <limits.h> declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer <limits.h> to <assert.h> if __STDC__ is defined, since + <limits.h> exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include <limits.h> +#else +# include <assert.h> +#endif + +#undef $ac_func + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != $ac_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_var=no" +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + fi +fi if test "$with_alloc" = "internal" -o -z "$with_alloc"; then echo "$as_me:$LINENO: result: internal" >&5 echo "${ECHO_T}internal" >&6 @@ -10950,7 +11149,7 @@ echo "$as_me: error: $_javadoc_path not found set with_jdk_home" >&2;} fi if test "$SOLAR_JAVA" != ""; then - if test "$JDK" == "gcj" -a -z "$JAVA_HOME"; then + if test "$JDK" = "gcj" -a -z "$JAVA_HOME"; then if test "x$with_jdk_home" = "x" -a "$_gij_longver" -ge "40200"; then cat > findhome.java <<_ACEOF import java.io.File; @@ -11051,7 +11250,7 @@ echo "$as_me: WARNING: in case JAVA_HOME is incorrectly set, some projects with echo "JAVA_HOME was not explicitly informed with --with-jdk-home. the configure script" >> warn echo "attempted to find JAVA_HOME automatically, but apparently it failed" >> warn echo "in case JAVA_HOME is incorrectly set, some projects with not be built correctly" >> warn -# if test "$JDK" == "gcj"; then +# if test "$JDK" = "gcj"; then # echo "e.g. install java-1.4.2-gcj-compat-devel and use --with-jdk-home=/usr/lib/jvm/java-1.4.2-gcj" >> warn # fi fi @@ -11970,10 +12169,14 @@ echo $ECHO_N "checking for rpm... $ECHO_C" >&6 { { echo "$as_me:$LINENO: error: not found" >&5 echo "$as_me: error: not found" >&2;} { (exit 1); exit 1; }; } - else - RPM_PATH=`which $RPM` + elif "$RPM" --usage 2>&1 | $EGREP -- -bb >/dev/null; then + RPM_PATH=`which $RPM` echo "$as_me:$LINENO: result: $RPM_PATH" >&5 echo "${ECHO_T}$RPM_PATH" >&6 + else + { { echo "$as_me:$LINENO: error: cannot build packages. Try installing rpmbuild." >&5 +echo "$as_me: error: cannot build packages. Try installing rpmbuild." >&2;} + { (exit 1); exit 1; }; } fi fi if echo "$PKGFORMAT" | $EGREP deb 2>&1 >/dev/null; then @@ -12127,14 +12330,15 @@ echo "$as_me: error: pkgmk needed for Solaris pkg creation. Install it." >&2;} - else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 EPM=NO + PKGFORMAT=native fi + # Extract the first word of "gperf", so it can be a program name with args. set dummy gperf; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 @@ -12190,6 +12394,19 @@ echo "$as_me: error: too old, you need at least 3.0.0" >&2;} { (exit 1); exit 1; }; } fi +echo "$as_me:$LINENO: checking whether to build the stax" >&5 +echo $ECHO_N "checking whether to build the stax... $ECHO_C" >&6 +if test -f "./stax/download/jsr173_1.0_api.jar"; then + BUILD_STAX=NO + echo "$as_me:$LINENO: result: no, will use the prebuilt stax/download/jsr173_1.0_api.jar" >&5 +echo "${ECHO_T}no, will use the prebuilt stax/download/jsr173_1.0_api.jar" >&6 +else + BUILD_STAX=YES + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 +fi + + echo "$as_me:$LINENO: checking whether to build the ODK" >&5 echo $ECHO_N "checking whether to build the ODK... $ECHO_C" >&6 if test "z$enable_odk" = "z" -o "$enable_odk" != "no"; then @@ -13895,7 +14112,7 @@ fi if test -n "$with_system_libxslt" -o -n "$with_system_libs" && \ test "$with_system_libxslt" != "no"; then if test -z "$with_system_libxml" -a -z "$with_system_libs" || \ - test "$with_system_libxml" == "no"; then + test "$with_system_libxml" = "no"; then # somehow AC_MSG_WARN won't work... echo "to prevent incompatibilities between internal libxml2 and libxslt, the office will be build with system-libxml" echo "to prevent incompatibilities between internal libxml2 and libxslt, the office will be build with system-libxml" >> warn @@ -13905,7 +14122,7 @@ fi if test -n "$with_system_libxml" -o -n "$with_system_libs" && \ test "$with_system_libxml" != "no"; then if test -z "$with_system_libxslt" -a -z "$with_system_libs" || \ - test "$with_system_libxslt" == "no"; then + test "$with_system_libxslt" = "no"; then # somehow AC_MSG_WARN won't work... echo "to prevent incompatibilities between internal libxslt and libxml2, the office will be build with system-libxslt" echo "to prevent incompatibilities between internal libxslt and libxml2, the office will be build with system-libxslt" >> warn @@ -14929,25 +15146,25 @@ if test $ac_cv_file__usr_share_java_lucene_core_2_3_jar = yes; then LUCENE_CORE_JAR=/usr/share/java/lucene-core-2.3.jar else - echo "$as_me:$LINENO: checking for /usr/share/java/lucene.jar" >&5 -echo $ECHO_N "checking for /usr/share/java/lucene.jar... $ECHO_C" >&6 -if test "${ac_cv_file__usr_share_java_lucene_jar+set}" = set; then + echo "$as_me:$LINENO: checking for /usr/share/java/lucene-core.jar" >&5 +echo $ECHO_N "checking for /usr/share/java/lucene-core.jar... $ECHO_C" >&6 +if test "${ac_cv_file__usr_share_java_lucene_core_jar+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else test "$cross_compiling" = yes && { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5 echo "$as_me: error: cannot check for file existence when cross compiling" >&2;} { (exit 1); exit 1; }; } -if test -r "/usr/share/java/lucene.jar"; then - ac_cv_file__usr_share_java_lucene_jar=yes +if test -r "/usr/share/java/lucene-core.jar"; then + ac_cv_file__usr_share_java_lucene_core_jar=yes else - ac_cv_file__usr_share_java_lucene_jar=no + ac_cv_file__usr_share_java_lucene_core_jar=no fi fi -echo "$as_me:$LINENO: result: $ac_cv_file__usr_share_java_lucene_jar" >&5 -echo "${ECHO_T}$ac_cv_file__usr_share_java_lucene_jar" >&6 -if test $ac_cv_file__usr_share_java_lucene_jar = yes; then - LUCENE_CORE_JAR=/usr/share/java/lucene.jar +echo "$as_me:$LINENO: result: $ac_cv_file__usr_share_java_lucene_core_jar" >&5 +echo "${ECHO_T}$ac_cv_file__usr_share_java_lucene_core_jar" >&6 +if test $ac_cv_file__usr_share_java_lucene_core_jar = yes; then + LUCENE_CORE_JAR=/usr/share/java/lucene-core.jar else { { echo "$as_me:$LINENO: error: lucene-core.jar replacement not found" >&5 echo "$as_me: error: lucene-core.jar replacement not found" >&2;} @@ -15068,6 +15285,26 @@ echo "$as_me: error: lucene-analyzers.jar not found." >&2;} fi fi + echo "$as_me:$LINENO: checking whether lucene is version 2.x" >&5 +echo $ECHO_N "checking whether lucene is version 2.x... $ECHO_C" >&6 + export LUCENE_CORE_JAR + if $PERL -e 'use Archive::Zip; + my $file = "$ENV{'LUCENE_CORE_JAR'}"; + my $zip = Archive::Zip->new( $file ); + my $mf = $zip->contents ( "META-INF/MANIFEST.MF" ); + if ( $mf =~ m/Specification-Version: 2.*/ ) { + exit 0; + } else { + exit 1; + }'; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + else + { { echo "$as_me:$LINENO: error: no, you need lucene 2" >&5 +echo "$as_me: error: no, you need lucene 2" >&2;} + { (exit 1); exit 1; }; } + fi + else echo "$as_me:$LINENO: result: internal" >&5 echo "${ECHO_T}internal" >&6 @@ -15564,35 +15801,35 @@ echo "$as_me: error: hsqldb.jar not found." >&2;} { (exit 1); exit 1; }; } fi - echo "$as_me:$LINENO: checking whether hsqldb is >= 1.8.0.9" >&5 -echo $ECHO_N "checking whether hsqldb is >= 1.8.0.9... $ECHO_C" >&6 + echo "$as_me:$LINENO: checking whether hsqldb is 1.8.0.x" >&5 +echo $ECHO_N "checking whether hsqldb is 1.8.0.x... $ECHO_C" >&6 export HSQLDB_JAR if $PERL -e 'use Archive::Zip; my $file = "$ENV{'HSQLDB_JAR'}"; my $zip = Archive::Zip->new( $file ); my $mf = $zip->contents ( "META-INF/MANIFEST.MF" ); - if ( $mf =~ m/Specification-Version: 1.8.*/ ) { - push @l, split(/\n/, $mf); - foreach my $line (@l) { - if ($line =~ m/Specification-Version:/) { - ($t, $version) = split (/:/,$line); - $version =~ s/^\s//; - ($a, $b, $c, $d) = split (/\./,$version); - if (($c == "0" && $d > "8") || $c > 0) { - exit 0; - } else { - exit 1; - } - } - } - } else { - exit 1; + if ( $mf =~ m/Specification-Version: 1.8.*/ ) { + push @l, split(/\n/, $mf); + foreach my $line (@l) { + if ($line =~ m/Specification-Version:/) { + ($t, $version) = split (/:/,$line); + $version =~ s/^\s//; + ($a, $b, $c, $d) = split (/\./,$version); + if ($c == "0" && $d > "8") { + exit 0; + } else { + exit 1; + } + } + } + } else { + exit 1; }'; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else - { { echo "$as_me:$LINENO: error: no, hsqldb >= 1.8.0.9 is needed" >&5 -echo "$as_me: error: no, hsqldb >= 1.8.0.9 is needed" >&2;} + { { echo "$as_me:$LINENO: error: no, you need hsqldb >= 1.8.0.9 but < 1.8.1" >&5 +echo "$as_me: error: no, you need hsqldb >= 1.8.0.9 but < 1.8.1" >&2;} { (exit 1); exit 1; }; } fi else @@ -16431,8 +16668,8 @@ fi if test $ac_cv_header_boost_spirit_include_classic_core_hpp = yes; then : else - { { echo "$as_me:$LINENO: error: boost/spirit/include/classic_core.hpp not found. install boost >= 1.38" >&5 -echo "$as_me: error: boost/spirit/include/classic_core.hpp not found. install boost >= 1.38" >&2;} + { { echo "$as_me:$LINENO: error: boost/spirit/include/classic_core.hpp not found. install boost >= 1.36" >&5 +echo "$as_me: error: boost/spirit/include/classic_core.hpp not found. install boost >= 1.36" >&2;} { (exit 1); exit 1; }; } fi @@ -18129,7 +18366,7 @@ Please recompile $tmp with --enable-ldap or use --with-openldap." >&2;} #e.g. http://fedoraproject.org/wiki/Releases/FeatureXULRunnerAPIChanges #the plugin pkg-config etc. reverts to "mozilla-plugin" with libxul - if test "$MOZ_FLAVOUR" == "libxul"; then + if test "$MOZ_FLAVOUR" = "libxul"; then MOZ_FLAVOUR="mozilla" fi @@ -19368,7 +19605,7 @@ fi echo "$as_me:$LINENO: checking whether to enable graphite support" >&5 echo $ECHO_N "checking whether to enable graphite support... $ECHO_C" >&6 -if test "$_os" = "WINNT" -o "$_os" = "Linux" && test "z$enable_graphite" == "z" -o "$enable_graphite" != "no" ; then +if test "$_os" = "WINNT" -o "$_os" = "Linux" && test "z$enable_graphite" = "z" -o "$enable_graphite" != "no" ; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 ENABLE_GRAPHITE="TRUE" @@ -19620,7 +19857,7 @@ ac_x_header_dirs=' /usr/openwin/share/include' if test "$ac_x_includes" = no; then - # Guess where to find include files, by looking for Xlib.h. + # Guess where to find include files, by looking for Intrinsic.h. # First, try using that file with no special directory specified. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -19628,7 +19865,7 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include <X11/Xlib.h> +#include <X11/Intrinsic.h> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 @@ -19655,7 +19892,7 @@ else sed 's/^/| /' conftest.$ac_ext >&5 for ac_dir in $ac_x_header_dirs; do - if test -r "$ac_dir/X11/Xlib.h"; then + if test -r "$ac_dir/X11/Intrinsic.h"; then ac_x_includes=$ac_dir break fi @@ -19669,18 +19906,18 @@ if test "$ac_x_libraries" = no; then # See if we find them without any special options. # Don't add to $LIBS permanently. ac_save_LIBS=$LIBS - LIBS="-lX11 $LIBS" + LIBS="-lXt $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include <X11/Xlib.h> +#include <X11/Intrinsic.h> int main () { -XrmInitialize () +XtMalloc (0) ; return 0; } @@ -24190,6 +24427,155 @@ echo "$as_me: error: lpsolve headers not found." >&2;} fi + # some systems need this. Like Ubuntu.... + +echo "$as_me:$LINENO: checking for floor in -lm" >&5 +echo $ECHO_N "checking for floor in -lm... $ECHO_C" >&6 +if test "${ac_cv_lib_m_floor+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lm $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char floor (); +int +main () +{ +floor (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_m_floor=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_m_floor=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_m_floor" >&5 +echo "${ECHO_T}$ac_cv_lib_m_floor" >&6 +if test $ac_cv_lib_m_floor = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBM 1 +_ACEOF + + LIBS="-lm $LIBS" + +fi + + +echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 +echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 +if test "${ac_cv_lib_dl_dlopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char dlopen (); +int +main () +{ +dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_dl_dlopen=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_dl_dlopen=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 +echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 +if test $ac_cv_lib_dl_dlopen = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBDL 1 +_ACEOF + + LIBS="-ldl $LIBS" + +fi + echo "$as_me:$LINENO: checking for make_lp in -llpsolve55" >&5 echo $ECHO_N "checking for make_lp in -llpsolve55... $ECHO_C" >&6 @@ -25154,14 +25540,12 @@ echo "$as_me: error: Configure did not find ml.exe assembler." >&2;} with_asm_home="ASM_IN_PATH" fi fi -else - with_asm_home="NO_ASM_HOME" -fi -ASM_HOME="$with_asm_home" -if test -n "$ASM_HOME"; then echo "$as_me:$LINENO: result: $ASM_HOME" >&5 echo "${ECHO_T}$ASM_HOME" >&6 +else + with_asm_home="NO_ASM_HOME" fi +ASM_HOME="$with_asm_home" if test -z "$with_zip_home"; then @@ -26798,7 +27182,7 @@ echo "${ECHO_T}no" >&6 fi -if test "$ENABLE_MEDIAWIKI" == "YES"; then +if test "$ENABLE_MEDIAWIKI" = "YES"; then echo "$as_me:$LINENO: checking which Servlet API Jar to use" >&5 echo $ECHO_N "checking which Servlet API Jar to use... $ECHO_C" >&6 if test -n "$with_system_servlet_api"; then @@ -26862,9 +27246,9 @@ echo "$as_me: error: not existing. get it (did you get the -extensions tarball?) fi echo "$as_me:$LINENO: checking which jfreereport libs to use" >&5 echo $ECHO_N "checking which jfreereport libs to use... $ECHO_C" >&6 - if test "$with_system_jfreereport" == "yes"; then - SYSTEM_JFREEREPORT=YES - echo "$as_me:$LINENO: result: external" >&5 + if test "$with_system_jfreereport" = "yes"; then + SYSTEM_JFREEREPORT=YES + echo "$as_me:$LINENO: result: external" >&5 echo "${ECHO_T}external" >&6 if test -z $SAC_JAR; then SAC_JAR=/usr/share/java/sac.jar @@ -28276,7 +28660,7 @@ if test "$test_kde4" = "yes" -a "$ENABLE_KDE4" = "TRUE" ; then kde_incdirs="/usr/include $x_includes" kde_libdirs="/usr/lib $x_libraries" - if test "$build_cpu" == "x86_64" ; then + if test "$build_cpu" = "x86_64" ; then qt_libdirs="$qt_libdirs /usr/lib64/qt4 /usr/lib64/qt /usr/lib64" kde_libdirs="$kde_libdirs /usr/lib64 /usr/lib64/kde4" fi @@ -29090,32 +29474,6 @@ else export ANT_HOME fi - ant_minver=1.6.0 - # update for more extensions... - if test "$ENABLE_MEDIAWIKI" = "YES"; then - ant_minver=1.7.0 - fi - ant_minminor1=`echo $ant_minver | cut -d"." -f2` - - echo "$as_me:$LINENO: checking whether ant is >= $ant_minver" >&5 -echo $ECHO_N "checking whether ant is >= $ant_minver... $ECHO_C" >&6 - ant_version=`$ANT -version | $AWK '{ print $4; }'` - ant_version_major=`echo $ant_version | cut -d. -f1` - ant_version_minor=`echo $ant_version | cut -d. -f2` -echo "configure: ant_version $ant_version " >&5 -echo "configure: ant_version_major $ant_version_major " >&5 -echo "configure: ant_version_minor $ant_version_minor " >&5 - if test "$ant_version_major" -ge "2"; then - echo "$as_me:$LINENO: result: yes, $ant_version" >&5 -echo "${ECHO_T}yes, $ant_version" >&6 - elif test "$ant_version_major" = "1" && test "$ant_version_minor" -ge "$ant_minminor1"; then - echo "$as_me:$LINENO: result: yes, $ant_version" >&5 -echo "${ECHO_T}yes, $ant_version" >&6 - else - { { echo "$as_me:$LINENO: error: no, you need at least ant >= $ant_minver" >&5 -echo "$as_me: error: no, you need at least ant >= $ant_minver" >&2;} - { (exit 1); exit 1; }; } - fi echo "$as_me:$LINENO: checking if $ANT works" >&5 echo $ECHO_N "checking if $ANT works... $ECHO_C" >&6 cat > conftest.java << EOF @@ -29206,6 +29564,33 @@ fi fi +ant_minver=1.6.0 +# update for more extensions... +if test "$ENABLE_MEDIAWIKI" = "YES"; then + ant_minver=1.7.0 +fi +ant_minminor1=`echo $ant_minver | cut -d"." -f2` + +echo "$as_me:$LINENO: checking whether ant is >= $ant_minver" >&5 +echo $ECHO_N "checking whether ant is >= $ant_minver... $ECHO_C" >&6 +ant_version=`$ANT -version | $AWK '{ print $4; }'` +ant_version_major=`echo $ant_version | cut -d. -f1` +ant_version_minor=`echo $ant_version | cut -d. -f2` +echo "configure: ant_version $ant_version " >&5 +echo "configure: ant_version_major $ant_version_major " >&5 +echo "configure: ant_version_minor $ant_version_minor " >&5 +if test "$ant_version_major" -ge "2"; then + echo "$as_me:$LINENO: result: yes, $ant_version" >&5 +echo "${ECHO_T}yes, $ant_version" >&6 +elif test "$ant_version_major" = "1" && test "$ant_version_minor" -ge "$ant_minminor1"; then + echo "$as_me:$LINENO: result: yes, $ant_version" >&5 +echo "${ECHO_T}yes, $ant_version" >&6 +else + { { echo "$as_me:$LINENO: error: no, you need at least ant >= $ant_minver" >&5 +echo "$as_me: error: no, you need at least ant >= $ant_minver" >&2;} + { (exit 1); exit 1; }; } +fi + if test "$ENABLE_MEDIAWIKI" = "YES"; then echo "$as_me:$LINENO: checking whether ant supports mapper type=\"regexp\"" >&5 echo $ECHO_N "checking whether ant supports mapper type=\"regexp\"... $ECHO_C" >&6 @@ -29213,18 +29598,18 @@ rm -rf confdir mkdir confdir cat > conftest.java << EOF public class conftest { - int testmethod(int a, int b) { + int testmethod(int a, int b) { return a + b; - } + } } EOF cat > conftest.xml << EOF <project name="conftest" default="conftest"> - <target name="conftest" depends="copytest"> + <target name="conftest" depends="copytest"> <javac srcdir="." includes="conftest.java"> - </javac> - </target> + </javac> + </target> <target name="copytest"> <copy todir="confdir"> <fileset dir="confdir" includes="**/*.abc" casesensitive="yes"/> @@ -29437,12 +29822,12 @@ fi echo "$as_me:$LINENO: checking build verbosity" >&5 echo $ECHO_N "checking build verbosity... $ECHO_C" >&6 if test -n "$enable_verbose"; then - if test "$enable_verbose" == "yes"; then + if test "$enable_verbose" = "yes"; then VERBOSE="TRUE" echo "$as_me:$LINENO: result: high" >&5 echo "${ECHO_T}high" >&6 fi - if test "$enable_verbose" == "no"; then + if test "$enable_verbose" = "no"; then VERBOSE="FALSE" echo "$as_me:$LINENO: result: low" >&5 echo "${ECHO_T}low" >&6 @@ -30252,9 +30637,10 @@ s,@EPM@,$EPM,;t t s,@DPKG@,$DPKG,;t t s,@PKGMK@,$PKGMK,;t t s,@BUILD_EPM@,$BUILD_EPM,;t t -s,@PKGFORMAT@,$PKGFORMAT,;t t s,@RPM@,$RPM,;t t +s,@PKGFORMAT@,$PKGFORMAT,;t t s,@GPERF@,$GPERF,;t t +s,@BUILD_STAX@,$BUILD_STAX,;t t s,@MINGWCXX@,$MINGWCXX,;t t s,@ac_ct_MINGWCXX@,$ac_ct_MINGWCXX,;t t s,@MINGWSTRIP@,$MINGWSTRIP,;t t diff --git a/configure.in b/configure.in index 00a5d5dde8b5..2d276e9ffde8 100644 --- a/configure.in +++ b/configure.in @@ -810,7 +810,9 @@ AC_ARG_WITH(build-version, ],with_build_version=$withval) AC_ARG_WITH(alloc, [ --with-alloc Define which allocator to build with - (choices are oo, system, tcmalloc) + (choices are oo, system, tcmalloc, jemalloc) + + Note that on FreeBSD/NetBSD system==jemalloc ],,) AC_ARG_ENABLE(verbose, [ --enable-verbose Increase build verbosity. @@ -1430,7 +1432,7 @@ if test "$COMPATH" = "." ; then COMPATH=`echo $COMPATH | $SED "s@/[[^/:]]*\\\$@@"`; fi COMPATH=`echo $COMPATH | $SED "s@/[[Bb]][[Ii]][[Nn]]\\\$@@"`; -echo $COMPATH + dnl =================================================================== dnl Test the gcc version, 3 is OK dnl =================================================================== @@ -2683,6 +2685,21 @@ if test "$with_alloc" = "tcmalloc"; then [AC_MSG_ERROR(tcmalloc not found or functional. Install the Google Profiling Tools)], []) ALLOC="TCMALLOC"; fi +if test "$with_alloc" = "jemalloc"; then + if test "$_os" != "FreeBSD" -o "$_os" != "NetBSD"; then + AC_MSG_RESULT(jemalloc) + save_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -pthread" + AC_CHECK_LIB(jemalloc, malloc, [], + [AC_MSG_ERROR(jemalloc not found or functional. Install the jemalloc allocator.)], []) + ALLOC="JEMALLOC"; + CFLAGS=$save_CFLAGS + else + AC_MSG_RESULT([system]) + ALLOC="SYS_ALLOC"; + AC_CHECK_FUNCS([malloc realloc calloc free]) + fi +fi if test "$with_alloc" = "internal" -o -z "$with_alloc"; then AC_MSG_RESULT([internal]) fi @@ -2974,7 +2991,7 @@ fi if test "$SOLAR_JAVA" != ""; then dnl first check if we have been asked to autodetect JAVA_HOME with a recent gij - if test "$JDK" == "gcj" -a -z "$JAVA_HOME"; then + if test "$JDK" = "gcj" -a -z "$JAVA_HOME"; then if test "x$with_jdk_home" = "x" -a "$_gij_longver" -ge "40200"; then cat > findhome.java <<_ACEOF [import java.io.File; @@ -3062,7 +3079,7 @@ _ACEOF echo "JAVA_HOME was not explicitly informed with --with-jdk-home. the configure script" >> warn echo "attempted to find JAVA_HOME automatically, but apparently it failed" >> warn echo "in case JAVA_HOME is incorrectly set, some projects with not be built correctly" >> warn -# if test "$JDK" == "gcj"; then +# if test "$JDK" = "gcj"; then # echo "e.g. install java-1.4.2-gcj-compat-devel and use --with-jdk-home=/usr/lib/jvm/java-1.4.2-gcj" >> warn # fi fi @@ -3337,9 +3354,11 @@ msi - Windows .msi done if test -z "$RPM" ; then AC_MSG_ERROR([not found]) - else - RPM_PATH=`which $RPM` + elif "$RPM" --usage 2>&1 | $EGREP -- -bb >/dev/null; then + RPM_PATH=`which $RPM` AC_MSG_RESULT([$RPM_PATH]) + else + AC_MSG_ERROR([cannot build packages. Try installing rpmbuild.]) fi fi if echo "$PKGFORMAT" | $EGREP deb 2>&1 >/dev/null; then @@ -3393,15 +3412,16 @@ msi - Windows .msi fi fi AC_SUBST(BUILD_EPM) - AC_SUBST(PKGFORMAT) AC_SUBST(RPM) AC_SUBST(DPKG) AC_SUBST(PKGMK) else AC_MSG_RESULT([no]) EPM=NO + PKGFORMAT=native fi AC_SUBST(EPM) +AC_SUBST(PKGFORMAT) dnl =================================================================== dnl Check for gperf @@ -3418,6 +3438,19 @@ else fi dnl =================================================================== +dnl Check for building stax +dnl =================================================================== +AC_MSG_CHECKING([whether to build the stax]) +if test -f "./stax/download/jsr173_1.0_api.jar"; then + BUILD_STAX=NO + AC_MSG_RESULT([no, will use the prebuilt stax/download/jsr173_1.0_api.jar]) +else + BUILD_STAX=YES + AC_MSG_RESULT([yes]) +fi +AC_SUBST(BUILD_STAX) + +dnl =================================================================== dnl Check for building ODK dnl =================================================================== AC_MSG_CHECKING([whether to build the ODK]) @@ -3652,7 +3685,7 @@ AC_SUBST(USE_FT_EMBOLDEN) if test -n "$with_system_libxslt" -o -n "$with_system_libs" && \ test "$with_system_libxslt" != "no"; then if test -z "$with_system_libxml" -a -z "$with_system_libs" || \ - test "$with_system_libxml" == "no"; then + test "$with_system_libxml" = "no"; then # somehow AC_MSG_WARN won't work... echo "to prevent incompatibilities between internal libxml2 and libxslt, the office will be build with system-libxml" echo "to prevent incompatibilities between internal libxml2 and libxslt, the office will be build with system-libxml" >> warn @@ -3662,7 +3695,7 @@ fi if test -n "$with_system_libxml" -o -n "$with_system_libs" && \ test "$with_system_libxml" != "no"; then if test -z "$with_system_libxslt" -a -z "$with_system_libs" || \ - test "$with_system_libxslt" == "no"; then + test "$with_system_libxslt" = "no"; then # somehow AC_MSG_WARN won't work... echo "to prevent incompatibilities between internal libxslt and libxml2, the office will be build with system-libxslt" echo "to prevent incompatibilities between internal libxslt and libxml2, the office will be build with system-libxslt" >> warn @@ -3817,8 +3850,8 @@ if test -n "$with_system_lucene" -o -n "$with_system_libs" && \ AC_CHECK_FILE(/usr/share/java/lucene-core-2.3.jar, [ LUCENE_CORE_JAR=/usr/share/java/lucene-core-2.3.jar ], [ - AC_CHECK_FILE(/usr/share/java/lucene.jar, - [ LUCENE_CORE_JAR=/usr/share/java/lucene.jar ], + AC_CHECK_FILE(/usr/share/java/lucene-core.jar, + [ LUCENE_CORE_JAR=/usr/share/java/lucene-core.jar ], [ AC_MSG_ERROR(lucene-core.jar replacement not found)] ) ] @@ -3842,6 +3875,22 @@ if test -n "$with_system_lucene" -o -n "$with_system_libs" && \ AC_CHECK_FILE($LUCENE_CORE_JAR, [], [ AC_MSG_ERROR(lucene-analyzers.jar not found.)], []) fi + AC_MSG_CHECKING([whether lucene is version 2.x]) + export LUCENE_CORE_JAR + if $PERL -e 'use Archive::Zip; + my $file = "$ENV{'LUCENE_CORE_JAR'}"; + my $zip = Archive::Zip->new( $file ); + my $mf = $zip->contents ( "META-INF/MANIFEST.MF" ); + if ( $mf =~ m/Specification-Version: 2.*/ ) { + exit 0; + } else { + exit 1; + }'; then + AC_MSG_RESULT([yes]) + else + AC_MSG_ERROR([no, you need lucene 2]) + fi + else AC_MSG_RESULT([internal]) SYSTEM_LUCENE=NO @@ -3979,32 +4028,32 @@ if test -n "$with_system_hsqldb" -o -n "$with_system_libs" && \ fi AC_CHECK_FILE($HSQLDB_JAR, [], [AC_MSG_ERROR(hsqldb.jar not found.)], []) - AC_MSG_CHECKING([whether hsqldb is >= 1.8.0.9]) + AC_MSG_CHECKING([whether hsqldb is 1.8.0.x]) export HSQLDB_JAR if $PERL -e 'use Archive::Zip; my $file = "$ENV{'HSQLDB_JAR'}"; my $zip = Archive::Zip->new( $file ); my $mf = $zip->contents ( "META-INF/MANIFEST.MF" ); - if ( $mf =~ m/Specification-Version: 1.8.*/ ) { - push @l, split(/\n/, $mf); - foreach my $line (@l) { - if ($line =~ m/Specification-Version:/) { - ($t, $version) = split (/:/,$line); - $version =~ s/^\s//; - ($a, $b, $c, $d) = split (/\./,$version); - if (($c == "0" && $d > "8") || $c > 0) { - exit 0; - } else { - exit 1; - } - } - } - } else { - exit 1; + if ( $mf =~ m/Specification-Version: 1.8.*/ ) { + push @l, split(/\n/, $mf); + foreach my $line (@l) { + if ($line =~ m/Specification-Version:/) { + ($t, $version) = split (/:/,$line); + $version =~ s/^\s//; + ($a, $b, $c, $d) = split (/\./,$version); + if ($c == "0" && $d > "8") { + exit 0; + } else { + exit 1; + } + } + } + } else { + exit 1; }'; then AC_MSG_RESULT([yes]) else - AC_MSG_ERROR([no, hsqldb >= 1.8.0.9 is needed]) + AC_MSG_ERROR([no, you need hsqldb >= 1.8.0.9 but < 1.8.1]) fi else AC_MSG_RESULT([internal]) @@ -4211,7 +4260,7 @@ if test -n "$with_system_boost" -o -n "$with_system_headers" && \ AC_CHECK_HEADER(boost/shared_ptr.hpp, [], [AC_MSG_ERROR(boost/shared_ptr.hpp not found. install boost)], []) AC_CHECK_HEADER(boost/spirit/include/classic_core.hpp, [], - [AC_MSG_ERROR(boost/spirit/include/classic_core.hpp not found. install boost >= 1.38)], []) + [AC_MSG_ERROR(boost/spirit/include/classic_core.hpp not found. install boost >= 1.36)], []) AC_CHECK_HEADER(boost/function.hpp, [], [AC_MSG_ERROR(boost/function.hpp not found. install boost)], []) @@ -4428,7 +4477,7 @@ Please recompile $tmp with --enable-ldap or use --with-openldap.]) #e.g. http://fedoraproject.org/wiki/Releases/FeatureXULRunnerAPIChanges #the plugin pkg-config etc. reverts to "mozilla-plugin" with libxul - if test "$MOZ_FLAVOUR" == "libxul"; then + if test "$MOZ_FLAVOUR" = "libxul"; then MOZ_FLAVOUR="mozilla" fi @@ -4689,7 +4738,7 @@ dnl Graphite dnl =================================================================== AC_MSG_CHECKING([whether to enable graphite support]) -if test "$_os" = "WINNT" -o "$_os" = "Linux" && test "z$enable_graphite" == "z" -o "$enable_graphite" != "no" ; then +if test "$_os" = "WINNT" -o "$_os" = "Linux" && test "z$enable_graphite" = "z" -o "$enable_graphite" != "no" ; then AC_MSG_RESULT([yes]) ENABLE_GRAPHITE="TRUE" AC_MSG_CHECKING([which graphite to use]) @@ -5133,6 +5182,9 @@ if test -n "$with_system_lpsolve" -o -n "$with_system_libs" && \ SYSTEM_LPSOLVE=YES AC_CHECK_HEADER(lpsolve/lp_lib.h, [], [ AC_MSG_ERROR(lpsolve headers not found.)], []) + # some systems need this. Like Ubuntu.... + AC_CHECK_LIB(m, floor) + AC_CHECK_LIB(dl, dlopen) AC_CHECK_LIB(lpsolve55, make_lp, , [ AC_MSG_ERROR(lpsolve library not found or too old.)], []) else @@ -5446,13 +5498,11 @@ if test "$_os" = "WINNT" -a "$WITH_MINGWIN" != "yes"; then with_asm_home="ASM_IN_PATH" fi fi + AC_MSG_RESULT([$ASM_HOME]) else - with_asm_home="NO_ASM_HOME" + with_asm_home="NO_ASM_HOME" fi ASM_HOME="$with_asm_home" -if test -n "$ASM_HOME"; then - AC_MSG_RESULT([$ASM_HOME]) -fi AC_SUBST(ASM_HOME) dnl =================================================================== @@ -5869,7 +5919,7 @@ else fi AC_SUBST(ENABLE_MEDIAWIKI) -if test "$ENABLE_MEDIAWIKI" == "YES"; then +if test "$ENABLE_MEDIAWIKI" = "YES"; then AC_MSG_CHECKING([which Servlet API Jar to use]) if test -n "$with_system_servlet_api"; then AC_MSG_RESULT([external]) @@ -5899,9 +5949,9 @@ if test -n "$enable_report_builder" -a "$enable_report_builder" != "no" && test AC_MSG_ERROR([not existing. get it (did you get the -extensions tarball?)]) fi AC_MSG_CHECKING([which jfreereport libs to use]) - if test "$with_system_jfreereport" == "yes"; then - SYSTEM_JFREEREPORT=YES - AC_MSG_RESULT([external]) + if test "$with_system_jfreereport" = "yes"; then + SYSTEM_JFREEREPORT=YES + AC_MSG_RESULT([external]) if test -z $SAC_JAR; then SAC_JAR=/usr/share/java/sac.jar fi @@ -6306,7 +6356,7 @@ if test "$test_kde4" = "yes" -a "$ENABLE_KDE4" = "TRUE" ; then kde_incdirs="/usr/include $x_includes" kde_libdirs="/usr/lib $x_libraries" - if test "$build_cpu" == "x86_64" ; then + if test "$build_cpu" = "x86_64" ; then qt_libdirs="$qt_libdirs /usr/lib64/qt4 /usr/lib64/qt /usr/lib64" kde_libdirs="$kde_libdirs /usr/lib64 /usr/lib64/kde4" fi @@ -6605,27 +6655,6 @@ else export ANT_HOME fi - ant_minver=1.6.0 - # update for more extensions... - if test "$ENABLE_MEDIAWIKI" = "YES"; then - ant_minver=1.7.0 - fi - ant_minminor1=`echo $ant_minver | cut -d"." -f2` - - AC_MSG_CHECKING([whether ant is >= $ant_minver]) - ant_version=`$ANT -version | $AWK '{ print $4; }'` - ant_version_major=`echo $ant_version | cut -d. -f1` - ant_version_minor=`echo $ant_version | cut -d. -f2` -echo "configure: ant_version $ant_version " >&5 -echo "configure: ant_version_major $ant_version_major " >&5 -echo "configure: ant_version_minor $ant_version_minor " >&5 - if test "$ant_version_major" -ge "2"; then - AC_MSG_RESULT([yes, $ant_version]) - elif test "$ant_version_major" = "1" && test "$ant_version_minor" -ge "$ant_minminor1"; then - AC_MSG_RESULT([yes, $ant_version]) - else - AC_MSG_ERROR([no, you need at least ant >= $ant_minver]) - fi AC_MSG_CHECKING([if $ANT works]) cat > conftest.java << EOF public class conftest { @@ -6706,24 +6735,46 @@ fi AC_SUBST(ANT_LIB) fi +ant_minver=1.6.0 +# update for more extensions... +if test "$ENABLE_MEDIAWIKI" = "YES"; then + ant_minver=1.7.0 +fi +ant_minminor1=`echo $ant_minver | cut -d"." -f2` + +AC_MSG_CHECKING([whether ant is >= $ant_minver]) +ant_version=`$ANT -version | $AWK '{ print $4; }'` +ant_version_major=`echo $ant_version | cut -d. -f1` +ant_version_minor=`echo $ant_version | cut -d. -f2` +echo "configure: ant_version $ant_version " >&5 +echo "configure: ant_version_major $ant_version_major " >&5 +echo "configure: ant_version_minor $ant_version_minor " >&5 +if test "$ant_version_major" -ge "2"; then + AC_MSG_RESULT([yes, $ant_version]) +elif test "$ant_version_major" = "1" && test "$ant_version_minor" -ge "$ant_minminor1"; then + AC_MSG_RESULT([yes, $ant_version]) +else + AC_MSG_ERROR([no, you need at least ant >= $ant_minver]) +fi + if test "$ENABLE_MEDIAWIKI" = "YES"; then AC_MSG_CHECKING([whether ant supports mapper type="regexp"]) rm -rf confdir mkdir confdir cat > conftest.java << EOF public class conftest { - int testmethod(int a, int b) { + int testmethod(int a, int b) { return a + b; - } + } } EOF cat > conftest.xml << EOF <project name="conftest" default="conftest"> - <target name="conftest" depends="copytest"> + <target name="conftest" depends="copytest"> <javac srcdir="." includes="conftest.java"> - </javac> - </target> + </javac> + </target> <target name="copytest"> <copy todir="confdir"> <fileset dir="confdir" includes="**/*.abc" casesensitive="yes"/> @@ -6892,11 +6943,11 @@ AC_SUBST(ENABLE_LAYOUT) # =================================================================== AC_MSG_CHECKING([build verbosity]) if test -n "$enable_verbose"; then - if test "$enable_verbose" == "yes"; then + if test "$enable_verbose" = "yes"; then VERBOSE="TRUE" AC_MSG_RESULT([high]) fi - if test "$enable_verbose" == "no"; then + if test "$enable_verbose" = "no"; then VERBOSE="FALSE" AC_MSG_RESULT([low]) fi diff --git a/instsetoo_native/inc_ooolangpack/windows/msi_templates/ControlE.idt b/instsetoo_native/inc_ooolangpack/windows/msi_templates/ControlE.idt index dea5e9767a6e..21f7fe7726a5 100644 --- a/instsetoo_native/inc_ooolangpack/windows/msi_templates/ControlE.idt +++ b/instsetoo_native/inc_ooolangpack/windows/msi_templates/ControlE.idt @@ -132,7 +132,6 @@ SetupResume Next EndDialog Return OutOfNoRbDiskSpace <> 1 0 SetupResume Next NewDialog OutOfSpace OutOfNoRbDiskSpace = 1 0 SetupType Back NewDialog CustomerInformation 1 0 SetupType Cancel SpawnDialog CancelSetup 1 0 -SetupType Next AddLocal ALL _IsSetupTypeMin = "Typical" 0 SetupType Next NewDialog CustomSetup _IsSetupTypeMin = "Custom" 0 SetupType Next NewDialog ReadyToInstall _IsSetupTypeMin <> "Custom" 0 SplashBitmap Cancel SpawnDialog CancelSetup 1 0 diff --git a/instsetoo_native/inc_openoffice/windows/msi_languages/Control.ulf b/instsetoo_native/inc_openoffice/windows/msi_languages/Control.ulf index 7fcb566af0e3..ec904cd5e904 100644 --- a/instsetoo_native/inc_openoffice/windows/msi_languages/Control.ulf +++ b/instsetoo_native/inc_openoffice/windows/msi_languages/Control.ulf @@ -620,7 +620,7 @@ en-US = "< &Back" en-US = "Cancel" [OOO_CONTROL_255] -en-US = "All program features will be installed. (Requires the most disk space.)" +en-US = "The main components will be installed. Recommended for most users." [OOO_CONTROL_256] en-US = "Choose which program features you want installed and where they will be installed. Recommended for advanced users." diff --git a/instsetoo_native/inc_openoffice/windows/msi_languages/RadioBut.ulf b/instsetoo_native/inc_openoffice/windows/msi_languages/RadioBut.ulf index da2d44cdb983..24b51774bacb 100644 --- a/instsetoo_native/inc_openoffice/windows/msi_languages/RadioBut.ulf +++ b/instsetoo_native/inc_openoffice/windows/msi_languages/RadioBut.ulf @@ -8,7 +8,7 @@ en-US = "{&MSSansBold8}Re&pair" en-US = "{&MSSansBold8}&Remove" [OOO_RADIOBUTTON_4] -en-US = "{&MSSansBold8}&Complete" +en-US = "{&MSSansBold8}&Typical" [OOO_RADIOBUTTON_5] en-US = "{&MSSansBold8}Cu&stom" diff --git a/instsetoo_native/inc_openoffice/windows/msi_templates/ControlE.idt b/instsetoo_native/inc_openoffice/windows/msi_templates/ControlE.idt index 2200f4d28a3a..56bf6b92d757 100644 --- a/instsetoo_native/inc_openoffice/windows/msi_templates/ControlE.idt +++ b/instsetoo_native/inc_openoffice/windows/msi_templates/ControlE.idt @@ -145,7 +145,6 @@ SetupResume Next EndDialog Return OutOfNoRbDiskSpace <> 1 0 SetupResume Next NewDialog OutOfSpace OutOfNoRbDiskSpace = 1 0 SetupType Back NewDialog CustomerInformation 1 0 SetupType Cancel SpawnDialog CancelSetup 1 0 -SetupType Next AddLocal ALL _IsSetupTypeMin = "Typical" 0 SetupType Next NewDialog CustomSetup _IsSetupTypeMin = "Custom" 0 SetupType Next [FILETYPEDIALOGUSED] 0 _IsSetupTypeMin <> "Custom" 5 SetupType Next NewDialog ReadyToInstall _IsSetupTypeMin <> "Custom" 6 diff --git a/instsetoo_native/inc_sdkoo/windows/msi_templates/ControlE.idt b/instsetoo_native/inc_sdkoo/windows/msi_templates/ControlE.idt index 332945b50bdb..49407d4770da 100644 --- a/instsetoo_native/inc_sdkoo/windows/msi_templates/ControlE.idt +++ b/instsetoo_native/inc_sdkoo/windows/msi_templates/ControlE.idt @@ -133,7 +133,6 @@ SetupResume Next EndDialog Return OutOfNoRbDiskSpace <> 1 0 SetupResume Next NewDialog OutOfSpace OutOfNoRbDiskSpace = 1 0 SetupType Back NewDialog CustomerInformation 1 0 SetupType Cancel SpawnDialog CancelSetup 1 0 -SetupType Next AddLocal ALL _IsSetupTypeMin = "Typical" 0 SetupType Next NewDialog CustomSetup _IsSetupTypeMin = "Custom" 0 SetupType Next NewDialog ReadyToInstall _IsSetupTypeMin <> "Custom" 0 SplashBitmap Cancel SpawnDialog CancelSetup 1 0 diff --git a/instsetoo_native/inc_ure/windows/msi_templates/ControlE.idt b/instsetoo_native/inc_ure/windows/msi_templates/ControlE.idt index 332945b50bdb..49407d4770da 100644 --- a/instsetoo_native/inc_ure/windows/msi_templates/ControlE.idt +++ b/instsetoo_native/inc_ure/windows/msi_templates/ControlE.idt @@ -133,7 +133,6 @@ SetupResume Next EndDialog Return OutOfNoRbDiskSpace <> 1 0 SetupResume Next NewDialog OutOfSpace OutOfNoRbDiskSpace = 1 0 SetupType Back NewDialog CustomerInformation 1 0 SetupType Cancel SpawnDialog CancelSetup 1 0 -SetupType Next AddLocal ALL _IsSetupTypeMin = "Typical" 0 SetupType Next NewDialog CustomSetup _IsSetupTypeMin = "Custom" 0 SetupType Next NewDialog ReadyToInstall _IsSetupTypeMin <> "Custom" 0 SplashBitmap Cancel SpawnDialog CancelSetup 1 0 diff --git a/instsetoo_native/util/makefile.mk b/instsetoo_native/util/makefile.mk index 72f4262b1c4e..19a6214f8dc6 100644 --- a/instsetoo_native/util/makefile.mk +++ b/instsetoo_native/util/makefile.mk @@ -210,7 +210,7 @@ $(MAKETARGETS){$(PKGFORMAT:^".")} : $(ADDDEPS) .ENDIF # "$(MAKETARGETS:e)"=="" && "$(MAKETARGETS:s/_//)"!="$(MAKETARGETS)" .ENDIF # "$(MAKETARGETS)"!="" openoffice_%{$(PKGFORMAT:^".") .archive} : - $(PERL) -w $(SOLARENV)$/bin$/make_installer.pl -f $(PRJ)$/util$/openoffice.lst -l $(subst,$(@:s/_/ /:1)_, $(@:b)) -p OpenOffice -u $(OUT) -buildid $(BUILD) -msitemplate $(MSIOFFICETEMPLATEDIR) -msilanguage $(COMMONMISC)$/win_ulffiles -format $(@:e:s/.//) $(VERBOSESWITCH) -log + $(PERL) -w $(SOLARENV)$/bin$/make_installer.pl -f $(PRJ)$/util$/openoffice.lst -l $(subst,$(@:s/_/ /:1)_, $(@:b)) -p OpenOffice -u $(OUT) -buildid $(BUILD) -msitemplate $(MSIOFFICETEMPLATEDIR) -msilanguage $(COMMONMISC)$/win_ulffiles -format $(@:e:s/.//) $(VERBOSESWITCH) $(PERL) -w $(SOLARENV)$/bin$/gen_update_info.pl --buildid $(BUILD) --arch "$(RTL_ARCH)" --os "$(RTL_OS)" --lstfile $(PRJ)$/util$/openoffice.lst --product OpenOffice --languages $(subst,$(@:s/_/ /:1)_, $(@:b)) $(PRJ)$/util$/update.xml > $(MISC)/$(@:b)_$(RTL_OS)_$(RTL_ARCH)$(@:e).update.xml $(foreach,i,$(alllangiso) openofficewithjre_$i) : $$@{$(PKGFORMAT:^".")} diff --git a/instsetoo_native/util/openoffice.lst b/instsetoo_native/util/openoffice.lst index 221aee9868b2..a391ff38130e 100644 --- a/instsetoo_native/util/openoffice.lst +++ b/instsetoo_native/util/openoffice.lst @@ -66,7 +66,7 @@ OpenOffice PCPFILENAME openoffice.pcp UPDATEURL http://update36.services.openoffice.org/ProductUpdateService/check.Update ODFNOTIFYURL http://odfnotify.services.openoffice.org/OOo3.0/notification.jsp?version=ODF - ADD_INCLUDE_FILES cliureversion.mk,clioootypesversion.mk,userland.txt + ADD_INCLUDE_FILES cliureversion.mk,clioootypesversion.mk,userland.txt,version.lst REMOVE_UPGRADE_CODE_FILE upgradecode_remove_ooo.txt ADDSYSTEMINTEGRATION 1 EVAL @@ -130,7 +130,7 @@ OpenOffice_wJRE BASEPRODUCTVERSION 3.3 UPDATEURL http://update36.services.openoffice.org/ProductUpdateService/check.Update ODFNOTIFYURL http://odfnotify.services.openoffice.org/OOo3.0/notification.jsp?version=ODF - ADD_INCLUDE_FILES cliureversion.mk,clioootypesversion.mk,javaversion2.dat,userland.txt + ADD_INCLUDE_FILES cliureversion.mk,clioootypesversion.mk,javaversion2.dat,userland.txt,version.lst REMOVE_UPGRADE_CODE_FILE upgradecode_remove_ooo.txt ADDSYSTEMINTEGRATION 1 EVAL @@ -203,7 +203,7 @@ OpenOffice_Dev SERVICETAG_URN urn:uuid:1680b00d-e45c-11de-82d6-080020a9ed93 UPDATEURL http://update36.services.openoffice.org/ProductUpdateService/check.Update ODFNOTIFYURL http://odfnotify.services.openoffice.org/OOo3.0/notification.jsp?version=ODF - ADD_INCLUDE_FILES cliureversion.mk,clioootypesversion.mk,javaversion2.dat,userland.txt + ADD_INCLUDE_FILES cliureversion.mk,clioootypesversion.mk,javaversion2.dat,userland.txt,version.lst EVAL FILEFORMATNAME OpenOffice.org FILEFORMATVERSION 1.0 @@ -280,7 +280,7 @@ URE STARTCENTER_INFO_URL http://tools.services.openoffice.org/forward/OpenOffice.org/homepage.jsp STARTCENTER_TEMPLREP_URL http://tools.services.openoffice.org/forward/OpenOffice.org/templates.jsp?cid=926383 STARTCENTER_LAYOUT_STYLE 0 - ADD_INCLUDE_FILES cliureversion.mk,clioootypesversion.mk + ADD_INCLUDE_FILES cliureversion.mk,clioootypesversion.mk,version.lst PACKAGEMAP package_names_ext.txt DICT_REPO_URL http://tools.services.openoffice.org/forward/OpenOffice.org/dictionaries.jsp } @@ -411,7 +411,7 @@ BrOffice NATIVEPROGRESS UPDATEURL http://update36.services.openoffice.org/ProductUpdateService/check.Update ODFNOTIFYURL http://odfnotify.services.openoffice.org/OOo3.0/notification.jsp?version=ODF - ADD_INCLUDE_FILES cliureversion.mk,clioootypesversion.mk,userland.txt + ADD_INCLUDE_FILES cliureversion.mk,clioootypesversion.mk,userland.txt,version.lst REMOVE_UPGRADE_CODE_FILE upgradecode_remove_ooo.txt ADDSYSTEMINTEGRATION 1 EVAL @@ -481,7 +481,7 @@ BrOffice_wJRE NATIVEPROGRESS UPDATEURL http://update36.services.openoffice.org/ProductUpdateService/check.Update ODFNOTIFYURL http://odfnotify.services.openoffice.org/OOo3.0/notification.jsp?version=ODF - ADD_INCLUDE_FILES cliureversion.mk,clioootypesversion.mk,javaversion2.dat,userland.txt + ADD_INCLUDE_FILES cliureversion.mk,clioootypesversion.mk,javaversion2.dat,userland.txt,version.lst REMOVE_UPGRADE_CODE_FILE upgradecode_remove_ooo.txt ADDSYSTEMINTEGRATION 1 EVAL @@ -555,7 +555,7 @@ BrOffice_Dev SERVICETAG_URN urn:uuid:1680b00d-e45c-11de-82d6-080020a9ed93 UPDATEURL http://update36.services.openoffice.org/ProductUpdateService/check.Update ODFNOTIFYURL http://odfnotify.services.openoffice.org/OOo3.0/notification.jsp?version=ODF - ADD_INCLUDE_FILES cliureversion.mk,clioootypesversion.mk,javaversion2.dat,userland.txt + ADD_INCLUDE_FILES cliureversion.mk,clioootypesversion.mk,javaversion2.dat,userland.txt,version.lst EVAL FILEFORMATNAME OpenOffice.org FILEFORMATVERSION 1.0 diff --git a/ooo.lst b/ooo.lst index 0887e5981d4f..9f51cf668a73 100644..100755 --- a/ooo.lst +++ b/ooo.lst @@ -1,5 +1,5 @@ http://hg.services.openoffice.org/binaries -05a0ece1372392a2cf310ebb96333025-openssl-0.9.8l.tar.gz +63ddc5116488985e820075e65fbe6aa4-openssl-0.9.8o.tar.gz 09357cc74975b01714e00c5899ea1881-pixman-0.12.0.tar.gz 0b49ede71c21c0599b0cc19b353a6cb3-README_apache-commons.txt 68dd2e8253d9a7930e9fd50e2d7220d0-hunspell-1.2.9.tar.gz @@ -15,7 +15,7 @@ http://hg.services.openoffice.org/binaries 2ae988b339daec234019a7066f96733e-commons-lang-2.3-src.tar.gz 2c9b0f83ed5890af02c0df1c1776f39b-commons-httpclient-3.1-src.tar.gz 2f6ecca935948f7db92d925d88d0d078-icu4c-4_0_1-src.tgz -ef9ab6c1740682fbd730606d5f6922e6-liberation-fonts-ttf-1.05.3.20100427.zip +ca4870d899fd7e943ffc310a5421ad4d-liberation-fonts-ttf-1.06.0.20100721.tar.gz 35c94d2df8893241173de1d16b6034c0-swingExSrc.zip 35efabc239af896dfb79be7ebdd6e6b9-gentiumbasic-fonts-1.10.zip 377a60170e5185eb63d3ed2fae98e621-README_silgraphite-2.3.1.txt @@ -28,7 +28,7 @@ ef9ab6c1740682fbd730606d5f6922e6-liberation-fonts-ttf-1.05.3.20100427.zip 4ea70ea87b47e92d318d4e7f5b940f47-cairo-1.8.0.tar.gz 599dc4cc65a07ee868cf92a667a913d2-xpdf-3.02.tar.gz 5aba06ede2daa9f2c11892fbd7bc3057-libserializer.zip -6244eb0b6e2647ee50470951fa6efb47-nss_3_12_5.tar.gz +b92261a5679276c400555004937af965-nss-3.12.6-with-nspr-4.8.4.tar.gz 67b42915c8432abf0a922438f00860a2-libxml.zip 7740a8ec23878a2f50120e1faa2730f2-libxml2-2.7.6.tar.gz 7376930b0d3f3d77a685d94c4a3acda8-STLport-4.5-0119.tar.gz diff --git a/scp2/source/binfilter/module_binfilter.scp b/scp2/source/binfilter/module_binfilter.scp index d7cba78f6101..ca3c94b759e0 100644 --- a/scp2/source/binfilter/module_binfilter.scp +++ b/scp2/source/binfilter/module_binfilter.scp @@ -33,7 +33,7 @@ Module gid_Module_Optional_Binfilter Sortkey = "700"; InstallOrder = "1100"; ParentID = gid_Module_Optional; - Default = YES; + Default = NO; Files = (gid_File_Share_Registry_Binfilter_Xcd, gid_Starregistry_Legacy_Binfilters_Rdb, gid_File_Lib_Bf_Go, @@ -60,6 +60,7 @@ Module gid_Module_Langpack_Binfilter_Template ParentID = gid_Module_Optional_Binfilter; Name = "gid_Module_Langpack_Binfilter_Template"; Description = "gid_Module_Langpack_Binfilter_Template"; + Default = NO; Styles = (TEMPLATEMODULE); Files = (gid_File_Res_Bf_Sch, gid_File_Res_Bf_Svx, diff --git a/scp2/source/ooo/common_brand.scp b/scp2/source/ooo/common_brand.scp index f505a886cba8..5ed8c9739f9c 100644 --- a/scp2/source/ooo/common_brand.scp +++ b/scp2/source/ooo/common_brand.scp @@ -43,6 +43,8 @@ Module gid_Module_Root_Brand gid_Brand_Dir_Share_C05_Faq, gid_Brand_Dir_Share_Config, gid_Brand_Dir_Share_Extension, + gid_Brand_Dir_Share_Extensions, + gid_Brand_Dir_Share_Prereg, gid_Brand_Dir_Share_Uno_Packages, gid_Brand_Dir_Share_Uno_Packages_Cache, gid_Brand_Dir_Share_Registry, @@ -85,7 +87,7 @@ Module gid_Module_Root_Brand gid_Brand_File_Lib_Npsoplugin, gid_Brand_File_Lib_Subscrib_C05, gid_Brand_File_Share_Registry_Brand_Xcd, - gid_Brand_File_Share_Registry_O5oo_Xcd + gid_Brand_File_Share_Registry_O5oo_Xcd, gid_Brand_File_Script_Unopkg, gid_Brand_File_Share_Xdg_Base, gid_Brand_File_Share_Xdg_Calc, @@ -97,7 +99,8 @@ Module gid_Module_Root_Brand gid_Brand_File_Share_Xdg_Printeradmin, gid_Brand_File_Share_Xdg_QStart, gid_Brand_File_Share_Xdg_StartCenter, - gid_Brand_File_Share_Xdg_Writer); + gid_Brand_File_Share_Xdg_Writer, + gid_Brand_File_Txt_Package); Unixlinks = (gid_Brand_Unixlink_BasisLink, gid_Brand_Unixlink_Program, gid_Brand_Unixlink_Unopkg, @@ -221,6 +224,12 @@ Directory gid_Brand_Dir_Share_Extensions DosName = "extensions"; End +Directory gid_Brand_Dir_Share_Prereg + ParentID = gid_Brand_Dir_Share; + DosName = "prereg"; + Styles = (CREATE); +End + Directory gid_Brand_Dir_Share_Extensions_Install ParentID = gid_Brand_Dir_Share_Extension; DosName = "install"; @@ -644,6 +653,13 @@ File gid_Brand_File_Images_Brand_Zip Styles = (PACKED); End +File gid_Brand_File_Txt_Package + TXT_FILE_BODY; + Dir = gid_Brand_Dir_Share_Extensions; + Name = "package.txt"; + Styles = (PACKED); +End + File gid_Brand_File_Share_Registry_Brand_Xcd TXT_FILE_BODY; Styles = (PACKED, SCPZIP_REPLACE); diff --git a/scp2/source/ooo/file_font_ooo.scp b/scp2/source/ooo/file_font_ooo.scp index 8ad8526d9ef6..10e2dca219fb 100644 --- a/scp2/source/ooo/file_font_ooo.scp +++ b/scp2/source/ooo/file_font_ooo.scp @@ -142,7 +142,7 @@ STD_FONT_FILE( gid_File_Fnt_GentiumBookBasicBoldItalic, GenBkBasBI.ttf, Gentium File gid_File_FcLocal_Conf Dir = gid_Dir_Fonts_Truetype; USER_FILE_BODY; -# Styles = (); +// Styles = (); Name = "fc_local.conf"; End #endif diff --git a/scp2/source/ooo/module_ooo.scp b/scp2/source/ooo/module_ooo.scp index 5b1de3897f77..dcd29c2ed31d 100644 --- a/scp2/source/ooo/module_ooo.scp +++ b/scp2/source/ooo/module_ooo.scp @@ -51,9 +51,8 @@ Module gid_Module_Optional End Module gid_Module_Dictionaries - ParentID = gid_Module_Root; - XPDParentID = "root"; - Sortkey = "300"; + ParentID = gid_Module_Optional; + Sortkey = "215"; MOD_NAME_DESC ( MODULE_DICTIONARIES ); End diff --git a/scp2/source/ooo/profileitem_ooo.scp b/scp2/source/ooo/profileitem_ooo.scp index 9818d5b26749..724316ba6f5e 100644 --- a/scp2/source/ooo/profileitem_ooo.scp +++ b/scp2/source/ooo/profileitem_ooo.scp @@ -461,4 +461,3 @@ ProfileItem gid_Basis_Profileitem_Version_Ooopackageversion Key = "OOOPackageVersion"; Value = "${OOOPACKAGEVERSION}"; End - diff --git a/scp2/source/ooo/windowscustomaction_ooo.scp b/scp2/source/ooo/windowscustomaction_ooo.scp index 568b3996a8b7..7bd6c18fae99 100755 --- a/scp2/source/ooo/windowscustomaction_ooo.scp +++ b/scp2/source/ooo/windowscustomaction_ooo.scp @@ -199,6 +199,25 @@ WindowsCustomAction gid_Customaction_Shellextensionsdll7 Assignment1 = ("InstallExecuteSequence", "REMOVE=\"ALL\" And Not PATCH", "InstallValidate"); End +WindowsCustomAction gid_Customaction_Register_Extensions + Name = "RegisterExtensions"; + Typ = "65"; + Source = "shlxtmsi.dll"; + Target = "RegisterExtensions"; + Inbinarytable = 1; + Assignment1 = ("InstallExecuteSequence", "Not REMOVE=\"ALL\"", "end"); + Assignment2 = ("AdminExecuteSequence", "Not REMOVE=\"ALL\"", "end"); +End + +WindowsCustomAction gid_Customaction_Remove_Extensions + Name = "RemoveExtensions"; + Typ = "65"; + Source = "shlxtmsi.dll"; + Target = "RemoveExtensions"; + Inbinarytable = 1; + Assignment1 = ("InstallExecuteSequence", "REMOVE=\"ALL\" And Not PATCH", "FileCost"); +End + WindowsCustomAction gid_Customaction_Set_Admininstall Name = "SetAdminInstallProperty"; Typ = "65"; @@ -287,6 +306,16 @@ WindowsCustomAction gid_Customaction_Patch_InstallExchangeFiles Assignment2 = ("AdminExecuteSequence", "", "behind_InstallFinalize"); End +WindowsCustomAction gid_Customaction_Langpack_Register_Extensions + Name = "RegisterExtensions"; + Typ = "65"; + Source = "lngpckinsthlp.dll"; + Target = "RegisterExtensions"; + Inbinarytable = 1; + Assignment1 = ("InstallExecuteSequence", "", "end"); + Assignment2 = ("AdminExecuteSequence", "", "end"); +End + WindowsCustomAction gid_Customaction_Patch_SetFeatureState Name = "SetFeatureState"; Typ = "65"; @@ -401,6 +430,16 @@ WindowsCustomAction gid_Customaction_MigrateInstallPath Assignment2 = ("InstallUISequence", "Not REMOVE=\"ALL\" And Not PATCH", "CostInitialize"); End +WindowsCustomAction gid_Customaction_CompleteInstallPath + Name = "CompleteInstallPath"; + Typ = "321"; + Source = "shlxtmsi.dll"; + Target = "CompleteInstallPath"; + Inbinarytable = 1; + Assignment1 = ("InstallExecuteSequence", "Not REMOVE=\"ALL\" And Not PATCH", "MigrateInstallPath"); + Assignment2 = ("InstallUISequence", "Not REMOVE=\"ALL\" And Not PATCH", "MigrateInstallPath"); +End + WindowsCustomAction gid_Customaction_CheckVersions Name = "CheckVersions"; Typ = "321"; diff --git a/scp2/source/templates/module_langpack_binfilter.sct b/scp2/source/templates/module_langpack_binfilter.sct index 76f389049580..72c209228849 100644 --- a/scp2/source/templates/module_langpack_binfilter.sct +++ b/scp2/source/templates/module_langpack_binfilter.sct @@ -28,6 +28,7 @@ Module gid_Module_Langpack_Binfilter_<LANGUAGE_> ParentID = gid_Module_Langpack_Root_<LANGUAGE_>; Sortkey = "900"; + Default = NO; Language = "<LANGUAGE>"; Assigns = gid_Module_Langpack_Binfilter_Template; Name = "gid_Module_Langpack_Binfilter_<LANGUAGE_>"; diff --git a/set_soenv.in b/set_soenv.in index e827c3cb3eef..94fab67f15c9 100644 --- a/set_soenv.in +++ b/set_soenv.in @@ -1384,7 +1384,7 @@ if ($platform =~ m/linux|freebsd|netbsd/) # This simply adds an include path, so even cases that break the FHS work $SOLARINC .= $STLPORT_inc_stlport; } -if ($platform =~ m/solaris/ && $CC !=~ "gcc") +if ($platform =~ m/solaris/ && ! $CC =~ "gcc") { $SOLARINC .= '/SC5 '; } @@ -1909,6 +1909,7 @@ ToFile( "ENABLE_AGG", "@ENABLE_AGG@", "e" ); ToFile( "SYSTEM_AGG", "@SYSTEM_AGG@", "e" ); ToFile( "AGG_VERSION", "@AGG_VERSION@", "e" ); ToFile( "BUILD_DMAKE", "@BUILD_DMAKE@", "e" ); +ToFile( "BUILD_STAX", "@BUILD_STAX@", "e" ); ToFile( "BUILD_UNOWINREG", "@BUILD_UNOWINREG@", "e" ); ToFile( "USE_XINERAMA", "@USE_XINERAMA@", "e" ); ToFile( "XINERAMA_LINK", "@XINERAMA_LINK@", "e" ); diff --git a/solenv/bin/build.pl b/solenv/bin/build.pl index 66afeec6e2c7..987d7fbb5bea 100755..100644 --- a/solenv/bin/build.pl +++ b/solenv/bin/build.pl @@ -45,6 +45,7 @@ use lib ("$ENV{SOLARENV}/bin/modules"); use SourceConfig; + use RepositoryHelper; my $in_so_env = 0; if (defined $ENV{COMMON_ENV_TOOLS}) { @@ -139,6 +140,8 @@ $html = ''; @ignored_errors = (); %incompatibles = (); + %skip_modules = (); + %exclude_branches = (); $only_platform = ''; # the only platform to prepare $only_common = ''; # the only common output tree to delete when preparing %build_modes = (); @@ -167,8 +170,8 @@ $html_last_updated = 0; %jobs_hash = (); $html_path = undef; - $html_file = CorrectPath($ENV{SOLARSRC} . '/' . $ENV{INPATH}. '.build.html'); $build_finished = 0; + $html_file = ''; %had_error = (); # hack for misteriuos windows problems - try run dmake 2 times if first time there was an error $mkout = CorrectPath("$ENV{SOLARENV}/bin/mkout.pl"); %weights_hash = (); # hash contains info about how many modules are dependent from one module @@ -209,7 +212,6 @@ get_options(); - $html_file = CorrectPath($html_path . '/' . $ENV{INPATH}. '.build.html') if (defined $html_path); # my $temp_html_file = CorrectPath($tmp_dir. '/' . $ENV{INPATH}. '.build.html'); get_build_modes(); %deliver_env = (); @@ -225,12 +227,26 @@ $deliver_env{'OUTPATH'}++; $deliver_env{'L10N_framework'}++; }; + $StandDir = get_stand_dir(); # This also sets $initial_module + $source_config = SourceConfig -> new($StandDir); + + if ($html) { + if (defined $html_path) { + $html_file = CorrectPath($html_path . '/' . $ENV{INPATH}. '.build.html'); + } else { + my $log_directory = Cwd::realpath(CorrectPath($StandDir . '/..')) . '/log'; + if ((!-d $log_directory) && (!mkdir($log_directory))) { + print_error("Cannot create $log_directory for writing html file\n"); + }; + $html_file = $log_directory . '/' . $ENV{INPATH}. '.build.html'; + print "\nPath to html status page: $html_file\n"; + }; + }; if ($generate_config && ($clear_config || (scalar keys %remove_from_config)||(scalar keys %add_to_config))) { generate_config_file(); exit 0; } - $StandDir = get_stand_dir(); # This also sets $initial_module get_module_and_buildlist_paths(); provide_consistency() if (defined $ENV{CWS_WORK_STAMP} && defined($ENV{COMMON_ENV_TOOLS})); @@ -342,7 +358,6 @@ sub rename_file { }; sub generate_config_file { - my $source_config = SourceConfig->new(); $source_config->add_active_modules([keys %add_to_config], 1) if (scalar %add_to_config); $source_config->remove_activated_modules([keys %remove_from_config], 1) if (scalar %remove_from_config); $source_config->remove_all_activated_modules() if ($clear_config); @@ -556,23 +571,36 @@ sub get_build_list_path { # Get dependencies hash of the current and all parent projects # sub get_parent_deps { - my (%parents_deps_hash, $module, $parent); my $prj_dir = shift; my $deps_hash = shift; - my @unresolved_parents = get_parents_array($prj_dir); - $parents_deps_hash{$_}++ foreach (@unresolved_parents); - $$deps_hash{$prj_dir} = \%parents_deps_hash; - while ($module = pop(@unresolved_parents)) { + my @unresolved_parents = ($prj_dir); + my %skipped_branches = (); + while (my $module = pop(@unresolved_parents)) { + next if (defined $$deps_hash{$module}); my %parents_deps_hash = (); - $parents_deps_hash{$_}++ foreach (get_parents_array($module)); + foreach (get_parents_array($module)) { + if (defined $exclude_branches{$_}) { + $skipped_branches{$_}++; + next; + }; + $parents_deps_hash{$_}++; + } $$deps_hash{$module} = \%parents_deps_hash; foreach $Parent (keys %parents_deps_hash) { - if (!defined($$deps_hash{$Parent})) { + if (!defined($$deps_hash{$Parent}) && (!defined $exclude_branches{$module})) { push (@unresolved_parents, $Parent); }; }; }; check_deps_hash($deps_hash); + foreach (keys %skipped_branches) { + print $echo . "Skipping module's $_ branch\n"; + delete $exclude_branches{$_}; + }; + my @missing_branches = keys %exclude_branches; + if (scalar @missing_branches) { + print_error("For $prj_dir branche(s): \"@missing_branches\" not found\n"); + }; }; sub store_weights { @@ -605,18 +633,18 @@ sub expand_dependencies { }; # -# This procedure fills out the %reversed_dependencies hash, -# the hash contaninig the info about modules "waiting" for the module +# This procedure fills the second hash with reversed dependencies, +# ie, with info about modules "waiting" for the module # sub reverse_dependensies { - my $deps_hash = shift; + my ($deps_hash, $reversed) = @_; foreach my $module (keys %$deps_hash) { foreach (keys %{$$deps_hash{$module}}) { - if (defined $reversed_dependencies{$_}) { - ${$reversed_dependencies{$_}}{$module}++ + if (defined $$reversed{$_}) { + ${$$reversed{$_}}{$module}++ } else { my %single_module_dep_hash = ($module => 1); - $reversed_dependencies{$_} = \%single_module_dep_hash; + $$reversed{$_} = \%single_module_dep_hash; }; }; }; @@ -635,8 +663,12 @@ sub build_all { }; modules_classify(keys %global_deps_hash); expand_dependencies (\%global_deps_hash); -# prepare_build_from(\%global_deps_hash) if (scalar keys %incompatibles); - prepare_incompatible_build(\%global_deps_hash) if ($incompatible); + prepare_incompatible_build(\%global_deps_hash) if ($incompatible && (!$build_from_with_branches)); + if ($build_from_with_branches) { + my %reversed_full_deps_hash = (); + reverse_dependensies(\%global_deps_hash, \%reversed_full_deps_hash); + prepare_build_from_with_branches(\%global_deps_hash, \%reversed_full_deps_hash); + } if ($build_all_cont || $build_since) { prepare_build_all_cont(\%global_deps_hash); }; @@ -653,13 +685,13 @@ sub build_all { print_error("There are modules:\n@missing_modules\n\nthat should be built, but they are not activated. Please, verify your $source_config_file.\n"); }; }; - foreach my $module (%dead_parents) { + foreach my $module (keys %dead_parents, keys %skip_modules) { remove_from_dependencies($module, \%global_deps_hash); delete ($global_deps_hash{$module}) if (defined $global_deps_hash{$module}); }; store_weights(\%global_deps_hash); backup_deps_hash(\%global_deps_hash, \%global_deps_hash_backup); - reverse_dependensies(\%global_deps_hash_backup); + reverse_dependensies(\%global_deps_hash_backup, \%reversed_dependencies); $modules_number = scalar keys %global_deps_hash; initialize_html_info($_) foreach (keys %global_deps_hash); if ($processes_to_run) { @@ -1100,6 +1132,7 @@ sub get_commands { while ($arg = pop(@dmake_args)) { $dmake .= ' '.$arg; }; + $dmake .= ' verbose=true' if ($html); }; # @@ -1110,34 +1143,44 @@ sub get_stand_dir { $ENV{mk_tmp} = ''; die "No environment set\n"; }; - my $StandDir; - if ( defined $ENV{PWD} ) { - $StandDir = $ENV{PWD}; - } elsif (defined $ENV{_cwd}) { - $StandDir = $ENV{_cwd}; - } else { - $StandDir = cwd(); - }; - my $previous_dir = ''; - do { - foreach (@possible_build_lists) {# ('build.lst', 'build.xlist'); - if (-e $StandDir . '/prj/'.$_) { - $initial_module = File::Basename::basename($StandDir); - $build_list_paths{$initial_module} =$StandDir . '/prj/'.$_; - $StandDir = File::Basename::dirname($StandDir); - $module_paths{$initial_module} = $StandDir . "/$initial_module"; + my $repository_helper = RepositoryHelper->new(); + my $StandDir = $repository_helper->get_repository_root(); + my $initial_dir = $repository_helper->get_initial_directory(); + if ($StandDir eq $initial_dir) { + print_error('Found no project to build'); + }; + $initial_module = substr($initial_dir, length($StandDir) + 1); + if ($initial_module =~ /(\\|\/)/) { + $initial_module = $`; + }; + $module_paths{$initial_module} = $StandDir . "/$initial_module"; +# $build_list_paths{$initial_module} =$StandDir . '/prj/'.$_; +# if ( defined $ENV{PWD} ) { +# $StandDir = $ENV{PWD}; +# } elsif (defined $ENV{_cwd}) { +# $StandDir = $ENV{_cwd}; +# } else { +# $StandDir = cwd(); +# }; +# my $previous_dir = ''; +# do { +# foreach (@possible_build_lists) {# ('build.lst', 'build.xlist'); +# if (-e $StandDir . '/prj/'.$_) { +# $initial_module = File::Basename::basename($StandDir); +# $build_list_paths{$initial_module} =$StandDir . '/prj/'.$_; +# $StandDir = File::Basename::dirname($StandDir); +# $module_paths{$initial_module} = $StandDir . "/$initial_module"; return $StandDir; - } elsif ($StandDir eq $previous_dir) { - $ENV{mk_tmp} = ''; - print_error('Found no project to build'); - }; - }; - $previous_dir = $StandDir; - $StandDir = File::Basename::dirname(Cwd::realpath($StandDir)); - print_error('Found no project to build') if (!$StandDir); - } -# while (chdir '..'); - while (chdir "$StandDir"); +# } elsif ($StandDir eq $previous_dir) { +# $ENV{mk_tmp} = ''; +# print_error('Found no project to build'); +# }; +# }; +# $previous_dir = $StandDir; +# $StandDir = File::Basename::dirname(Cwd::realpath($StandDir)); +# print_error('Found no project to build') if (!$StandDir); +# } +# while (chdir "$StandDir"); }; # @@ -1236,7 +1279,7 @@ sub check_deps_hash { $jobs_hash{$key} = { SHORT_NAME => $string, BUILD_NUMBER => $build_number, STATUS => 'waiting', - LOG_PATH => $module . "/$ENV{INPATH}/misc/logs/$log_name", + LOG_PATH => '../' . $source_config->get_module_repository($module) . "/$module/$ENV{INPATH}/misc/logs/$log_name", LONG_LOG_PATH => CorrectPath($module_paths{$module} . "/$ENV{INPATH}/misc/logs/$log_name"), START_TIME => 0, FINISH_TIME => 0, @@ -1392,7 +1435,7 @@ sub print_error { sub usage { print STDERR "\nbuild\n"; - print STDERR "Syntax: build [--all|-a[:prj_name]]|[--from|-f prj_name1[:prj_name2] [prj_name3 [...]]]|[--since|-c prj_name] [--with_branches|-b]|[--prepare|-p][:platform] [--deliver|-d [--dlv_switch deliver_switch]]] [-P processes|--server [--setenvstring \"string\"] [--client_timeout MIN] [--port port1[:port2:...:portN]]] [--show|-s] [--help|-h] [--file|-F] [--ignore|-i] [--version|-V] [--mode|-m OOo[,SO[,EXT]] [--html [--html_path html_file_path] [--dontgraboutput]] [--pre_job=pre_job_sring] [--job=job_string|-j] [--post_job=post_job_sring] [--stoponerror] [--genconf [--removeall|--clear|--remove|--add [module1,module2[,...,moduleN]]]] [--interactive]\n"; + print STDERR "Syntax: build [--all|-a[:prj_name]]|[--from|-f prj_name1[:prj_name2] [prj_name3 [...]]]|[--since|-c prj_name] [--with_branches prj_name1[:prj_name2] [--skip prj_name1[:prj_name2] [prj_name3 [...]] [prj_name3 [...]|-b]|[--prepare|-p][:platform] [--deliver|-d [--dlv_switch deliver_switch]]] [-P processes|--server [--setenvstring \"string\"] [--client_timeout MIN] [--port port1[:port2:...:portN]]] [--show|-s] [--help|-h] [--file|-F] [--ignore|-i] [--version|-V] [--mode|-m OOo[,SO[,EXT]] [--html [--html_path html_file_path] [--dontgraboutput]] [--pre_job=pre_job_sring] [--job=job_string|-j] [--post_job=post_job_sring] [--stoponerror] [--genconf [--removeall|--clear|--remove|--add [module1,module2[,...,moduleN]]]] [--exclude_branch_from prj_name1[:prj_name2] [prj_name3 [...]]] [--interactive]\n"; print STDERR "Example1: build --from sfx2\n"; print STDERR " - build all projects dependent from sfx2, starting with sfx2, finishing with the current module\n"; print STDERR "Example2: build --all:sfx2\n"; @@ -1405,9 +1448,11 @@ sub usage { print STDERR "\nSwitches:\n"; print STDERR " --all - build all projects from very beginning till current one\n"; print STDERR " --from - build all projects dependent from the specified (including it) till current one\n"; + print STDERR " --exclude_branch_from - exclude module(s) and its branch from the build\n"; print STDERR " --mode OOo - build only projects needed for OpenOffice.org\n"; print STDERR " --prepare - clear all projects for incompatible build from prj_name till current one [for platform] (cws version)\n"; - print STDERR " --with_branches- build all projects in neighbour branches and current branch starting from actual project\n"; + print STDERR " --with_branches- the same as \"--from\" but with build all projects in neighbour branches\n"; + print STDERR " --skip - do not build certain module(s)\n"; print STDERR " --since - build all projects beginning from the specified till current one (the same as \"--all:prj_name\", but skipping prj_name)\n"; print STDERR " --checkmodules - check if all required parent projects are availlable\n"; print STDERR " --show - show what is going to be built\n"; @@ -1462,19 +1507,25 @@ sub get_options { $arg =~ /^--dlv_switch$/ and $dlv_switch = shift @ARGV and next; $arg =~ /^--file$/ and $cmd_file = shift @ARGV and next; $arg =~ /^-F$/ and $cmd_file = shift @ARGV and next; + $arg =~ /^--skip$/ and get_modules_passed(\%skip_modules) and next; - $arg =~ /^--with_branches$/ and $build_all_parents = 1 - and $build_from_with_branches = shift @ARGV and next; - $arg =~ /^-b$/ and $build_all_parents = 1 - and $build_from_with_branches = shift @ARGV and next; - + if ($arg =~ /^--with_branches$/ || $arg =~ /^-b$/) { + $build_from_with_branches = 1; + $build_all_parents = 1; + get_modules_passed(\%incompatibles); + next; + }; $arg =~ /^--all:(\S+)$/ and $build_all_parents = 1 and $build_all_cont = $1 and next; $arg =~ /^-a:(\S+)$/ and $build_all_parents = 1 and $build_all_cont = $1 and next; if ($arg =~ /^--from$/ || $arg =~ /^-f$/) { $build_all_parents = 1; - get_incomp_projects(); + get_modules_passed(\%incompatibles); + next; + }; + if ($arg =~ /^--exclude_branch_from$/) { + get_modules_passed(\%exclude_branches); next; }; $arg =~ /^--prepare$/ and $prepare = 1 and next; @@ -1527,8 +1578,12 @@ sub get_options { print_error("\"--html_path\" switch is used only with \"--html\"") if ($html_path); print_error("\"--dontgraboutput\" switch is used only with \"--html\"") if ($dont_grab_output); }; + if ((scalar keys %exclude_branches) && !$build_all_parents) { + print_error("\"--exclude_branch_from\" is not applicable for one module builds!!"); + }; $grab_output = 0 if ($dont_grab_output); print_error('Switches --with_branches and --all collision') if ($build_from_with_branches && $build_all_cont); + print_error('Switch --skip is for building multiple modules only!!') if ((scalar keys %skip_modules) && (!$build_all_parents)); # print_error('Please prepare the workspace on one of UNIX platforms') if ($prepare && ($ENV{GUI} ne 'UNX')); print_error('Switches --with_branches and --since collision') if ($build_from_with_branches && $build_since); if ($show) { @@ -1593,7 +1648,6 @@ sub get_options { sub get_module_and_buildlist_paths { if ($build_all_parents || $checkparents) { - my $source_config = SourceConfig -> new($StandDir); $source_config_file = $source_config->get_config_file_path(); $active_modules{$_}++ foreach ($source_config->get_active_modules()); my %active_modules_copy = %active_modules; @@ -1652,7 +1706,13 @@ sub cancel_build { $message_part .= "--from @broken_modules_names\n"; }; } else { - $message_part .= "--all:@broken_modules_names\n"; + if ($processes_to_run) { + $message_part .= "--from "; + } else { + $message_part .= "--all:"; + }; + $message_part .= "@broken_modules_names\n"; + }; if ($broken_modules_number && $build_all_parents) { print "\n"; @@ -2109,12 +2169,12 @@ sub modules_classify { # # This procedure provides consistency for cws -# and optimized build (ie in case of -with_branches, -all:prj_name +# and optimized build (ie in case of --with_branches, -all:prj_name # and -since switches) # sub provide_consistency { check_dir(); - foreach $var_ref (\$build_from_with_branches, \$build_all_cont, \$build_since) { + foreach $var_ref (\$build_all_cont, \$build_since) { if ($$var_ref) { return if (defined $module_paths{$$var_ref}); print_error("Cannot find module '$$var_ref'", 9); @@ -2257,6 +2317,20 @@ sub fix_permissions { chmod '0664', $file; }; +sub prepare_build_from_with_branches { + ($full_deps_hash, $reversed_full_deps_hash) = @_; + foreach my $prerequisite (keys %$full_deps_hash) { + foreach my $dependent_module (keys %incompatibles) { + if (defined ${$$reversed_full_deps_hash{$prerequisite}}{$dependent_module}) { + remove_from_dependencies($prerequisite, $full_deps_hash); + delete $$full_deps_hash{$prerequisite}; +# print "Removed $prerequisite\n"; + last; + }; + }; + }; +}; + # # Removes projects which it is not necessary to build # in incompatible build @@ -2268,7 +2342,6 @@ sub prepare_incompatible_build { if (!defined $$deps_hash{$module}) { print_error("The module $initial_module is independent from $module\n"); } - delete $incompatibles{$module}; $incompatibles{$module} = $$deps_hash{$module}; delete $$deps_hash{$module}; } @@ -2286,8 +2359,8 @@ sub prepare_incompatible_build { @modules_built = keys %$deps_hash; %add_to_config = %$deps_hash; if ($prepare) { - if ((!defined $ENV{UPDATER}) || (defined $ENV{CWS_WORK_STAMP})) { - SourceConfig->new()->add_active_modules([keys %add_to_config], 0); + if ((!(defined $ENV{UPDATER} && (!defined $ENV{CWS_WORK_STAMP}))) || (defined $ENV{CWS_WORK_STAMP})) { + $source_config->add_active_modules([keys %add_to_config], 0); } clear_delivered(); } @@ -2332,21 +2405,6 @@ sub prepare_incompatible_build { # # Removes projects which it is not necessary to build -# with -with_branches switch -# -#sub prepare_build_from { -# my ($prj, $deps_hash); -# $deps_hash = shift; -# my %from_deps_hash = (); # hash of dependencies of the -from project -# get_parent_deps($build_from_with_branches, \%from_deps_hash); -# foreach $prj (keys %from_deps_hash) { -# delete $$deps_hash{$prj}; -# remove_from_dependencies($prj, $deps_hash); -# }; -#}; - -# -# Removes projects which it is not necessary to build # with --all:prj_name or --since switch # sub prepare_build_all_cont { @@ -2412,7 +2470,8 @@ sub get_list_of_modules { # }; }; -sub get_incomp_projects { +sub get_modules_passed { + my $hash_ref = shift; my $option = ''; while ($option = shift @ARGV) { if ($option =~ /^-+/) { @@ -2424,7 +2483,7 @@ sub get_incomp_projects { print_error("\'--from\' switch collision") if ($build_all_cont); $build_all_cont = $'; }; - $incompatibles{$option}++; + $$hash_ref{$option}++; }; }; }; diff --git a/solenv/bin/jpropex b/solenv/bin/jpropex deleted file mode 100755 index 2d62d13b093e..000000000000 --- a/solenv/bin/jpropex +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -if [ x${SOLARENV}x = xx ]; then - echo No environment found, please use 'configure' or 'setsolar' - exit 1 -fi -if [ x${JAVA_HOME}x = xx ]; then - echo No Java found! - exit 1 -fi -exec java -DSOLARSRC=${SOLARSRC} -DWORK_STAMP=${WORK_STAMP} -DUSE_SHELL= -jar ${SOLARVER}/${INPATH}/bin${UPDMINOREXT}/jpropex.jar "$@" diff --git a/solenv/bin/make_installer.pl b/solenv/bin/make_installer.pl index 127f28cd7631..335ecf961253 100644 --- a/solenv/bin/make_installer.pl +++ b/solenv/bin/make_installer.pl @@ -655,7 +655,6 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) $installer::globals::globalinfo_copied = 1; my $logminor = ""; - my $avoidlanginlog = 0; if ( $installer::globals::updatepack ) { $logminor = $installer::globals::lastminor; } else { $logminor = $installer::globals::minor; } @@ -663,14 +662,15 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) my $loglanguagestring_orig = $loglanguagestring; if (length($loglanguagestring) > $installer::globals::max_lang_length) { + my $number_of_languages = installer::systemactions::get_number_of_langs($loglanguagestring); chomp(my $shorter = `echo $loglanguagestring | md5sum | sed -e "s/ .*//g"`); - $loglanguagestring = $shorter; - $avoidlanginlog = 1; + my $id = substr($shorter, 0, 8); # taking only the first 8 digits + $loglanguagestring = "lang_" . $number_of_languages . "_id_" . $id; } $installer::globals::logfilename = "log_" . $installer::globals::build; if ( $logminor ne "" ) { $installer::globals::logfilename .= "_" . $logminor; } - if ( ! $avoidlanginlog ) { $installer::globals::logfilename .= "_" . $loglanguagestring; } + $installer::globals::logfilename .= "_" . $loglanguagestring; $installer::globals::logfilename .= ".log"; $loggingdir = $loggingdir . $loglanguagestring . $installer::globals::separator; installer::systemactions::create_directory($loggingdir); @@ -732,7 +732,7 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) if (!($installer::globals::is_copy_only_project)) { - if ( $installer::globals::iswindowsbuild ) + if (( $installer::globals::iswindowsbuild ) && ( $installer::globals::packageformat ne "archive" ) && ( $installer::globals::packageformat ne "installed" )) { installer::windows::msiglobal::set_global_code_variables($languagesarrayref, $languagestringref, $allvariableshashref, $alloldproperties); } diff --git a/solenv/bin/modules/RepositoryHelper.pm b/solenv/bin/modules/RepositoryHelper.pm new file mode 100644 index 000000000000..7677376be70e --- /dev/null +++ b/solenv/bin/modules/RepositoryHelper.pm @@ -0,0 +1,205 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +#************************************************************************* +# +# RepositoryHelper - Perl for working with repositories and underlying SCM +# +# usage: see below +# +#************************************************************************* + +package RepositoryHelper; + +use strict; + + +use Carp; +use Cwd qw (cwd); +use File::Basename; +#use File::Temp qw(tmpnam); + +my $debug = 0; + +##### profiling ##### + +##### ctor ##### + +sub new { + my $proto = shift; + my $class = ref($proto) || $proto; + my $initial_directory = shift; + if ($initial_directory) { + $initial_directory = Cwd::realpath($initial_directory); + } else { + if ( defined $ENV{PWD} ) { + $initial_directory = $ENV{PWD}; + } elsif (defined $ENV{_cwd}) { + $initial_directory = $ENV{_cwd}; + } else { + $initial_directory = cwd(); + }; + }; + my $self = {}; + $self->{INITIAL_DIRECTORY} = $initial_directory; + $self->{REPOSITORY_ROOT} = undef; + $self->{REPOSITORY_NAME} = undef; + $self->{SCM_NAME} = undef; + detect_repository($self); + bless($self, $class); + return $self; +} + +##### methods ##### +sub get_repository_root +{ + my $self = shift; + return $self->{REPOSITORY_ROOT}; +} + +sub get_initial_directory +{ + my $self = shift; + return $self->{INITIAL_DIRECTORY}; +} + +sub get_scm_name +{ + my $self = shift; + return$self->{SCM_NAME}; +} + +##### private methods ##### +sub search_for_hg { + my $self = shift; + my $hg_root; + my $scm_name = 'hg'; + if (open(COMMAND, "$scm_name root 2>&1 |")) { + foreach (<COMMAND>) { + next if (/^Not trusting file/); + chomp; + $hg_root = $_; + last; + }; + close COMMAND; + chomp $hg_root; + if ($hg_root !~ /There is no Mercurial repository here/) { + $self->{REPOSITORY_ROOT} = $hg_root; + $self->{SCM_NAME} = $scm_name; + return 1; + }; + }; + return 0; +}; + +sub search_via_build_lst { + my $self = shift; + my @possible_build_lists = ('build.lst', 'build.xlist'); # build lists names + my $previous_dir = ''; + my $rep_root_candidate = $self->{INITIAL_DIRECTORY}; + do { + foreach (@possible_build_lists) {# ('build.lst', 'build.xlist'); + if (-e $rep_root_candidate . '/prj/'.$_) { + $self->{REPOSITORY_ROOT} = File::Basename::dirname($rep_root_candidate); + return 1; + } elsif ($rep_root_candidate eq $previous_dir) { + return 0; + }; + }; + $previous_dir = $rep_root_candidate; + $rep_root_candidate = File::Basename::dirname(Cwd::realpath($rep_root_candidate)); + return 0 if (!$rep_root_candidate); + } + while (chdir "$rep_root_candidate"); +}; + +sub detect_repository { + my $self = shift; + return if (search_via_build_lst($self)); + chdir $self->{INITIAL_DIRECTORY}; + return if (search_for_hg($self)); + croak('Cannot determine source directory/repository for ' . $self->{INITIAL_DIRECTORY}); +}; + +##### finish ##### + +1; # needed by use or require + +__END__ + +=head1 NAME + +RepositoryHelper - Perl module for working with repositories and underlying SCM + +=head1 SYNOPSIS + + # example that will analyze sources and return the source root directory + + use RepositoryHelper; + + # Create a new instance: + $a = RepositoryHelper->new(); + + # Get repositories for the actual workspace: + $a->get_repository_root(); + + +=head1 DESCRIPTION + +RepositoryHelper is a perlPerl module for working with repositories and underlying SCM +in the database. + +Methods: + +RepositoryHelper::new() + +Creates a new instance of RepositoryHelper. Can be initialized by: some path which likely to belong to a repository, default - empty, the current dir will be taken. + +RepositoryHelper::get_repository_root() + +Returns the repository root, retrieved by SCM methods or on educated guess... + +RepositoryHelper::get_initial_directory() + +Returns full path to the initialistion directory. + +=head2 EXPORT + +RepositoryHelper::new() +RepositoryHelper::get_repository_root() +RepositoryHelper::get_scm_name() +RepositoryHelper::get_initial_directory() + +=head1 AUTHOR + +Vladimir Glazunov, vg@openoffice.org + +=head1 SEE ALSO + +perl(1). + +=cut diff --git a/solenv/bin/modules/SourceConfig.pm b/solenv/bin/modules/SourceConfig.pm index 9379b7764d0a..dfaa797d8f48 100644..100755 --- a/solenv/bin/modules/SourceConfig.pm +++ b/solenv/bin/modules/SourceConfig.pm @@ -38,10 +38,11 @@ package SourceConfig; use strict; use constant SOURCE_CONFIG_FILE_NAME => 'source_config'; -use constant SOURCE_CONFIG_VERSION => 2; +use constant SOURCE_CONFIG_VERSION => 3; use Carp; use Cwd; +use RepositoryHelper; use File::Basename; use File::Temp qw(tmpnam); @@ -75,8 +76,9 @@ sub new { $source_root .= '/..'; } } else { - $source_root = Cwd::realpath($ENV{SOURCE_ROOT_DIR}); + $source_root = $ENV{SOURCE_ROOT_DIR}; }; + $source_root = Cwd::realpath($source_root); $self->{SOURCE_ROOT} = $source_root; $self->{DEBUG} = 0; $self->{VERBOSE} = 0; @@ -94,14 +96,16 @@ sub new { $self->{WARNINGS} = []; $self->{REPORT_MESSAGES} = []; $self->{CONFIG_FILE_CONTENT} = []; - $self->{DEFAULT_REPOSITORY} = undef; if (defined $self->{USER_SOURCE_ROOT}) { ${$self->{REPOSITORIES}}{File::Basename::basename($self->{USER_SOURCE_ROOT})} = $self->{USER_SOURCE_ROOT}; - $self->{DEFAULT_REPOSITORY} = File::Basename::basename($self->{USER_SOURCE_ROOT}); }; $self->{SOURCE_CONFIG_FILE} = get_config_file($self->{SOURCE_ROOT}) if (!defined $self->{SOURCE_CONFIG_FILE}); $self->{SOURCE_CONFIG_DEFAULT} = $self->{SOURCE_ROOT} .'/'.SOURCE_CONFIG_FILE_NAME; + if (defined $self->{USER_SOURCE_ROOT}) { + ${$self->{REPOSITORIES}}{File::Basename::basename($self->{USER_SOURCE_ROOT})} = $self->{USER_SOURCE_ROOT}; + }; read_config_file($self); + get_module_paths($self); bless($self, $class); return $self; } @@ -118,6 +122,19 @@ sub get_repositories return sort keys %{$self->{REPOSITORIES}}; } +sub add_repository +{ + my $self = shift; + my $new_rep_path = shift; + $new_rep_path = Cwd::realpath($new_rep_path); + my $new_rep_name = File::Basename::basename($new_rep_path); + if (defined ${$self->{REPOSITORIES}}{$new_rep_name}) { + croak("Repository $new_rep_name is already defined!!"); + }; + ${$self->{REPOSITORIES}}{$new_rep_name} = $new_rep_path; + $self -> get_repository_module_paths($new_rep_name); +} + sub get_config_file_default_path { my $self = shift; return $self->{SOURCE_CONFIG_DEFAULT}; @@ -131,7 +148,6 @@ sub get_config_file_path { sub get_module_repository { my $self = shift; my $module = shift; - $self -> get_module_paths() if (!scalar keys %{$self->{MODULE_PATHS}}); if (defined ${$self->{MODULE_REPOSITORY}}{$module}) { return ${$self->{MODULE_REPOSITORY}}{$module}; } else { @@ -143,7 +159,6 @@ sub get_module_repository { sub get_module_path { my $self = shift; my $module = shift; - $self -> get_module_paths() if (!scalar keys %{$self->{MODULE_PATHS}}); if (defined ${$self->{MODULE_PATHS}}{$module}) { return ${$self->{MODULE_PATHS}}{$module}; } else { @@ -155,10 +170,17 @@ sub get_module_path { sub get_module_build_list { my $self = shift; my $module = shift; - $self -> get_buildlist_paths() if (!scalar keys %{$self->{MODULE_BUILD_LIST_PATHS}}); if (defined ${$self->{MODULE_BUILD_LIST_PATHS}}{$module}) { return ${$self->{MODULE_BUILD_LIST_PATHS}}{$module}; } else { + my @possible_build_lists = ('build.lst', 'build.xlist'); # build lists names + foreach (@possible_build_lists) { + my $possible_path = ${$self->{MODULE_PATHS}}{$module} . "/prj/$_"; + if (-e $possible_path) { + ${$self->{MODULE_BUILD_LIST_PATHS}}{$module} = $possible_path; + return $possible_path; + }; + }; Carp::cluck("No build list in module $module found!!\n") if ($self->{DEBUG}); return undef; }; @@ -168,7 +190,6 @@ sub get_all_modules { my $self = shift; my $module = shift; - $self -> get_module_paths() if (!scalar keys %{$self->{MODULE_PATHS}}); return sort keys %{$self->{MODULE_PATHS}}; }; @@ -178,7 +199,6 @@ sub get_active_modules if (scalar keys %{$self->{ACTIVATED_MODULES}}) { return sort keys %{$self->{ACTIVATED_MODULES}}; } - $self -> get_module_paths() if (!scalar keys %{$self->{MODULE_PATHS}}); return sort keys %{$self->{REAL_MODULES}}; } @@ -189,49 +209,42 @@ sub is_active if (scalar keys %{$self->{ACTIVATED_MODULES}}) { return exists ($self->{ACTIVATED_MODULES}{$module}); } - $self -> get_module_paths() if (!scalar keys %{$self->{MODULE_PATHS}}); return exists ($self->{REAL_MODULES}{$module}); } ##### private methods ##### -sub get_buildlist_paths { +sub get_repository_module_paths { my $self = shift; - $self -> get_module_paths() if (!scalar keys %{$self->{MODULE_PATHS}}); - my @possible_build_lists = ('build.lst', 'build.xlist'); # build lists names - foreach my $module (keys %{$self->{MODULE_PATHS}}) { - foreach (@possible_build_lists) { - my $possible_path = ${$self->{MODULE_PATHS}}{$module} . "/prj/$_"; - ${$self->{MODULE_BUILD_LIST_PATHS}}{$module} = $possible_path if (-e $possible_path); + my $repository = shift; + my $repository_path = ${$self->{REPOSITORIES}}{$repository}; + if (opendir DIRHANDLE, $repository_path) { + foreach my $module (readdir(DIRHANDLE)) { + next if (($module =~ /^\.+/) || (!-d "$repository_path/$module")); + my $module_entry = $module; + if (($module !~ s/\.lnk$//) && ($module !~ s/\.link$//)) { + $self->{REAL_MODULES}{$module}++; + } + my $possible_path = "$repository_path/$module_entry"; + if (-d $possible_path) { + if (defined ${$self->{MODULE_PATHS}}{$module}) { + close DIRHANDLE; + croak("Ambiguous paths for module $module: $possible_path and " . ${$self->{MODULE_PATHS}}{$module}); + }; + ${$self->{MODULE_PATHS}}{$module} = $possible_path; + ${$self->{MODULE_REPOSITORY}}{$module} = $repository; + } }; + close DIRHANDLE; + } else { + croak("Cannot read $repository_path repository content"); }; }; sub get_module_paths { my $self = shift; foreach my $repository (keys %{$self->{REPOSITORIES}}) { - my $repository_path = ${$self->{REPOSITORIES}}{$repository}; - if (opendir DIRHANDLE, $repository_path) { - foreach my $module (readdir(DIRHANDLE)) { - next if (($module =~ /^\.+/) || (!-d "$repository_path/$module")); - my $module_entry = $module; - if (($module !~ s/\.lnk$//) && ($module !~ s/\.link$//)) { - $self->{REAL_MODULES}{$module}++; - } - my $possible_path = "$repository_path/$module_entry"; - if (-d $possible_path) { - if (defined ${$self->{MODULE_PATHS}}{$module}) { - close DIRHANDLE; - croak("Ambiguous paths for module $module: $possible_path and " . ${$self->{MODULE_PATHS}}{$module}); - }; - ${$self->{MODULE_PATHS}}{$module} = $possible_path; - ${$self->{MODULE_REPOSITORY}}{$module} = $repository; - } - }; - close DIRHANDLE; - } else { - croak("Cannot read $_ repository content"); - }; + get_repository_module_paths($self, $repository); }; my @false_actives = (); foreach (keys %{$self->{ACTIVATED_MODULES}}) { @@ -248,31 +261,21 @@ sub get_config_file { return ''; }; -sub get_hg_root { +# +# Fallback - fallback repository is based on RepositoryHelper educated guess +# +sub get_fallback_repository { my $self = shift; - return $self->{USER_SOURCE_ROOT} if (defined $self->{USER_SOURCE_ROOT}); - my $hg_root; - if (open(COMMAND, "hg root 2>&1 |")) { - foreach (<COMMAND>) { - next if (/^Not trusting file/); - chomp; - $hg_root = $_; - last; - }; - close COMMAND; - chomp $hg_root; - if ($hg_root !~ /There is no Mercurial repository here/) { - return $hg_root; - }; - }; - croak('Cannot open find source_config and/or determine hg root directory for ' . cwd()); + my $repository_root = RepositoryHelper->new()->get_repository_root(); + ${$self->{REPOSITORIES}}{File::Basename::basename($repository_root)} = $repository_root; }; sub read_config_file { my $self = shift; if (!$self->{SOURCE_CONFIG_FILE}) { - my $repository_root = get_hg_root($self); - ${$self->{REPOSITORIES}}{File::Basename::basename($repository_root)} = $repository_root; + if (!defined $self->{USER_SOURCE_ROOT}) { + get_fallback_repository($self); + }; return; }; my $repository_section = 0; @@ -304,11 +307,9 @@ sub read_config_file { my $repository_source_path = $self->{SOURCE_ROOT} . "/$1"; if (defined $ENV{UPDMINOREXT}) { $repository_source_path .= $ENV{UPDMINOREXT}; - }; - if ((defined $self->{DEFAULT_REPOSITORY}) && (${$self->{REPOSITORIES}}{$self->{DEFAULT_REPOSITORY}} eq $repository_source_path)) { - delete ${$self->{REPOSITORIES}}{$self->{DEFAULT_REPOSITORY}}; - $self->{DEFAULT_REPOSITORY} = undef; - + if (defined ${$self->{REPOSITORIES}}{$1.$ENV{UPDMINOREXT}}) { + delete ${$self->{REPOSITORIES}}{$1.$ENV{UPDMINOREXT}}; + }; }; ${$self->{REPOSITORIES}}{$1} = $repository_source_path; ${$self->{ACTIVATED_REPOSITORIES}}{$1}++; @@ -323,9 +324,7 @@ sub read_config_file { }; close SOURCE_CONFIG_FILE; if (!scalar keys %{$self->{REPOSITORIES}}) { - # Fallback - default repository is the directory where is our module... - my $hg_root = get_hg_root($self); - ${$self->{REPOSITORIES}}{File::Basename::basename($hg_root)} = $hg_root; + get_fallback_repository($self); }; } else { croak('Cannot open ' . $self->{SOURCE_CONFIG_FILE} . 'for reading'); @@ -379,15 +378,18 @@ sub remove_activated_modules { sub add_active_repositories { my $self = shift; $self->{NEW_REPOSITORIES} = shift; - croak('Empty module list passed for adding to source_config') if (!scalar @{$self->{NEW_REPOSITORIES}}); + croak('Empty repository list passed for addition to source_config') if (!scalar @{$self->{NEW_REPOSITORIES}}); $self->{VERBOSE} = shift; + foreach (@{$self->{NEW_REPOSITORIES}}) { + $self->add_repository($_); + }; generate_config_file($self); }; sub add_active_modules { my $self = shift; $self->{NEW_MODULES} = shift; - croak('Empty module list passed for adding to source_config') if (!scalar @{$self->{NEW_MODULES}}); + croak('Empty module list passed for addition to source_config') if (!scalar @{$self->{NEW_MODULES}}); $self->{VERBOSE} = shift; generate_config_file($self); }; @@ -535,6 +537,8 @@ SourceConfig - Perl extension for parsing general info databases # Get repositories for the actual workspace: $a->get_repositories(); + # Add a repository new_repository for the actual workspace (via full path): + $a->add_repository(/DEV300/new_repository); =head1 DESCRIPTION @@ -559,6 +563,11 @@ SourceConfig::get_repositories() Returns sorted list of active repositories for the actual workspace +SourceConfig::add_repository(REPOSITORY_PATH) + +Adds a repository to the list of active repositories + + SourceConfig::get_active_modules() Returns a sorted list of active modules @@ -622,6 +631,7 @@ Removes all activated repositories from the source_config file SourceConfig::new() SourceConfig::get_version() SourceConfig::get_repositories() +SourceConfig::add_repository() SourceConfig::get_active_modules() SourceConfig::get_all_modules() SourceConfig::get_module_path($module) diff --git a/solenv/bin/modules/installer/control.pm b/solenv/bin/modules/installer/control.pm index f4edc8129255..bd700be38758 100644 --- a/solenv/bin/modules/installer/control.pm +++ b/solenv/bin/modules/installer/control.pm @@ -405,6 +405,16 @@ sub determine_ship_directory my $shipdrive = $ENV{'SHIPDRIVE'}; my $languagestring = $$languagesref; + + if (length($languagestring) > $installer::globals::max_lang_length ) + { + my $number_of_languages = installer::systemactions::get_number_of_langs($languagestring); + chomp(my $shorter = `echo $languagestring | md5sum | sed -e "s/ .*//g"`); + # $languagestring = $shorter; + my $id = substr($shorter, 0, 8); # taking only the first 8 digits + $languagestring = "lang_" . $number_of_languages . "_id_" . $id; + } + my $productstring = $installer::globals::product; my $productsubdir = ""; diff --git a/solenv/bin/modules/installer/epmfile.pm b/solenv/bin/modules/installer/epmfile.pm index 136eca913dd9..8b828b85335f 100644 --- a/solenv/bin/modules/installer/epmfile.pm +++ b/solenv/bin/modules/installer/epmfile.pm @@ -762,33 +762,13 @@ sub replace_many_variables_in_shellscripts foreach $key (keys %{$variableshashref}) { my $value = $variableshashref->{$key}; - if ( ! $value =~ /.oxt/ ) { $value = lc($value); } # lowercase ! - if ( $installer::globals::issolarisbuild) { $value =~ s/\.org/org/g; } # openofficeorg instead of openoffice.org + # $value = lc($value); # lowercase ! + # if ( $installer::globals::issolarisbuild) { $value =~ s/\.org/org/g; } # openofficeorg instead of openoffice.org replace_variable_in_shellscripts($scriptref, $value, $key); } } ####################################### -# Setting oxt file name variable -####################################### - -sub set_oxt_filename -{ - my ($filesinpackage, $allvariables) = @_; - - for ( my $i = 0; $i <= $#{$filesinpackage}; $i++ ) - { - my $onefile = ${$filesinpackage}[$i]; - if ( $onefile->{'Name'} =~ /.oxt\s*$/ ) - { - $allvariables->{'OXTFILENAME'} = $onefile->{'Name'}; - # $allvariables->{'FULLOXTFILENAME'} = $onefile->{'destination'}; - last; # only one oxt file for each rpm! - } - } -} - -####################################### # Adding shell scripts to epm file ####################################### @@ -796,9 +776,6 @@ sub adding_shellscripts_to_epm_file { my ($epmfileref, $shellscriptsfilename, $localrootpath, $allvariableshashref, $filesinpackage) = @_; - # Setting variable for ${OXTFILENAME} into $allvariableshashref, if this is a RPM with an extension - set_oxt_filename($filesinpackage, $allvariableshashref); - # $installer::globals::shellscriptsfilename push( @{$epmfileref}, "\n\n" ); @@ -1803,26 +1780,27 @@ sub is_extension_package # share/extension/install ###################################################################### -sub get_extension_name +sub contains_extension_dir { my ($prototypefile) = @_; - my $extensionName = ""; + my $contains_extension_dir = 0; + + # d none opt/openoffice.org3/share/extensions/ for ( my $i = 0; $i <= $#{$prototypefile}; $i++ ) { my $line = ${$prototypefile}[$i]; - if ( $line =~ /^\s*f\s+none\s+share\/extension\/install\/(\w+?\.oxt)\s*\=/ ) + if ( $line =~ /^\s*d\s+none\s.*\/share\/extensions\// ) { - $extensionName = $1; + $contains_extension_dir = 1; last; } } - return $extensionName; + return $contains_extension_dir; } - ############################################################ # A Solaris patch contains 7 specific scripts ############################################################ @@ -1839,9 +1817,9 @@ sub add_scripts_into_prototypefile $path = $path . $installer::globals::separator; my @newlines = (); - my $extensionname = get_extension_name($prototypefile); + my $is_extension_package = contains_extension_dir($prototypefile); - if ( $extensionname ne "" ) + if ( $is_extension_package ) { for ( my $i = 0; $i <= $#installer::globals::solarispatchscriptsforextensions; $i++ ) { @@ -1865,9 +1843,7 @@ sub add_scripts_into_prototypefile my $scriptfile = installer::files::read_file($sourcefilename); # Replacing variables - my $oldstring = "\$\{OXTFILENAME\}"; - replace_variables_in_shellscripts_for_patch($scriptfile, $destpath, $oldstring, $extensionname); - $oldstring = "PRODUCTDIRECTORYNAME"; + my $oldstring = "PRODUCTDIRECTORYNAME"; replace_variables_in_shellscripts_for_patch($scriptfile, $destpath, $oldstring, $staticpath); # Saving file @@ -2308,6 +2284,55 @@ sub determine_rpm_version return $rpmversion; } +#################################################### +# Writing some info about rpm into the log file +#################################################### + +sub log_rpm_info +{ + my $systemcall = ""; + my $infoline = ""; + + $infoline = "\nLogging rpmrc content using --showrc\n\n"; + push( @installer::globals::logfileinfo, $infoline); + + if ( $installer::globals::rpm ne "" ) + { + $systemcall = "$installer::globals::rpm --showrc |"; + } + else + { + $systemcall = "rpm --showrc |"; + } + + my @fullrpmout = (); + + open (RPM, "$systemcall"); + while (<RPM>) {push(@fullrpmout, $_); } + close (RPM); + + if ( $#fullrpmout > -1 ) + { + for ( my $i = 0; $i <= $#fullrpmout; $i++ ) + { + my $rpmout = $fullrpmout[$i]; + $rpmout =~ s/\s*$//g; + + $infoline = "$rpmout\n"; + $infoline =~ s/error/e_r_r_o_r/gi; # avoiding log problems + push( @installer::globals::logfileinfo, $infoline); + } + } + else + { + $infoline = "Problem in systemcall: $systemcall : No return value\n"; + push( @installer::globals::logfileinfo, $infoline); + } + + $infoline = "End of logging rpmrc\n\n"; + push( @installer::globals::logfileinfo, $infoline); +} + ################################################# # Systemcall to start the packaging process ################################################# @@ -2560,6 +2585,12 @@ sub create_packages_without_epm mkdir($buildroot = $dir . "/" . $epmdir . "BUILD/"); } + if ( ! $installer::globals::rpminfologged ) + { + log_rpm_info(); + $installer::globals::rpminfologged = 1; + } + my $systemcall = "$rpmcommand -bb --define \"_unpackaged_files_terminate_build 0\" $specfilename --target $target $buildrootstring 2\>\&1 |"; installer::logger::print_message( "... $systemcall ...\n" ); diff --git a/solenv/bin/modules/installer/globals.pm b/solenv/bin/modules/installer/globals.pm index 71429e278f4e..582bd8c708b1 100644 --- a/solenv/bin/modules/installer/globals.pm +++ b/solenv/bin/modules/installer/globals.pm @@ -179,11 +179,12 @@ BEGIN $rpm = ""; $rpmcommand = ""; $rpmquerycommand = ""; + $rpminfologged = 0; $debian = ""; $installertypedir = ""; $controlledmakecabversion = "5"; $saved_packages_path = ""; - $max_lang_length = 65; + $max_lang_length = 50; $globalblock = "Globals"; $rootmodulegid = ""; %alllangmodules = (); diff --git a/solenv/bin/modules/installer/parameter.pm b/solenv/bin/modules/installer/parameter.pm index 0961b598902f..d3ce8a1d3a32 100644 --- a/solenv/bin/modules/installer/parameter.pm +++ b/solenv/bin/modules/installer/parameter.pm @@ -530,7 +530,7 @@ sub control_required_parameter # and the UpgradeCode for the product are defined. # The name "codes.txt" can be overwritten in Product definition with CODEFILENAME (msiglobal.pm) - if ($installer::globals::iswindowsbuild) + if (( $installer::globals::iswindowsbuild ) && ( $installer::globals::packageformat ne "archive" ) && ( $installer::globals::packageformat ne "installed" )) { $installer::globals::codefilename = $installer::globals::idttemplatepath . $installer::globals::separator . $installer::globals::codefilename; installer::files::check_file($installer::globals::codefilename); diff --git a/solenv/bin/modules/installer/scriptitems.pm b/solenv/bin/modules/installer/scriptitems.pm index a073e60a6697..7a2c4cb3f5e3 100644 --- a/solenv/bin/modules/installer/scriptitems.pm +++ b/solenv/bin/modules/installer/scriptitems.pm @@ -1868,7 +1868,7 @@ sub remove_Languagepacklibraries_from_Installset } $infoline = "\n"; - push( @installer::globals::logfileinfo, $infoline); + push( @installer::globals::globallogfileinfo, $infoline); return \@newitemsarray; } diff --git a/solenv/bin/modules/installer/simplepackage.pm b/solenv/bin/modules/installer/simplepackage.pm index fdf9fc6fa4c3..518edc683c3d 100644 --- a/solenv/bin/modules/installer/simplepackage.pm +++ b/solenv/bin/modules/installer/simplepackage.pm @@ -71,9 +71,10 @@ sub get_extensions_dir my $extensiondir = $subfolderdir . $installer::globals::separator; if ( $installer::globals::officedirhostname ne "" ) { $extensiondir = $extensiondir . $installer::globals::officedirhostname . $installer::globals::separator; } - $extensiondir = $extensiondir . "share" . $installer::globals::separator . "extensions"; + my $extensionsdir = $extensiondir . "share" . $installer::globals::separator . "extensions"; + my $preregdir = $extensiondir . "share" . $installer::globals::separator . "prereg" . $installer::globals::separator . "bundled"; - return $extensiondir; + return ( $extensionsdir, $preregdir ); } #################################################### @@ -82,21 +83,24 @@ sub get_extensions_dir sub register_extensions { - my ($officedir, $languagestringref) = @_; + my ($officedir, $languagestringref, $preregdir) = @_; + + my $infoline = ""; + + if ( $preregdir eq "" ) + { + $infoline = "ERROR: Failed to determine directory \"prereg\" for extension registration! Please check your installation set.\n"; + push( @installer::globals::logfileinfo, $infoline); + installer::exiter::exit_program($infoline, "register_extensions"); + } my $programdir = $officedir . $installer::globals::separator; - # if ( $installer::globals::sundirhostname ne "" ) { $programdir = $programdir . $installer::globals::sundirhostname . $installer::globals::separator; } if ( $installer::globals::officedirhostname ne "" ) { $programdir = $programdir . $installer::globals::officedirhostname . $installer::globals::separator; } $programdir = $programdir . "program"; my $from = cwd(); chdir($programdir); - my $infoline = ""; - - # my $unopkgfile = $officedir . $installer::globals::separator . "program" . - # $installer::globals::separator . $installer::globals::unopkgfile; - my $unopkgfile = $installer::globals::unopkgfile; my $unopkgexists = 1; @@ -107,87 +111,73 @@ sub register_extensions push( @installer::globals::logfileinfo, $infoline); } - # my $extensiondir = $officedir . $installer::globals::separator . "share" . - # $installer::globals::separator . "extension" . - # $installer::globals::separator . "install"; - - my $extensiondir = ".." . $installer::globals::separator . "share" . $installer::globals::separator . "extension" . $installer::globals::separator . "install"; - - my $allextensions = installer::systemactions::find_file_with_file_extension("oxt", $extensiondir); + if ( ! -f $unopkgfile ) + { + $unopkgexists = 0; + $infoline = "Info: File $unopkgfile does not exist! Extensions cannot be registered.\n"; + push( @installer::globals::logfileinfo, $infoline); + } - if (( $#{$allextensions} > -1 ) && ( $unopkgexists )) + if ( $unopkgexists ) { my $currentdir = cwd(); print "... current dir: $currentdir ...\n"; $infoline = "Current dir: $currentdir\n"; push( @installer::globals::logfileinfo, $infoline); - for ( my $i = 0; $i <= $#{$allextensions}; $i++ ) - { - my $oneextension = $extensiondir . $installer::globals::separator . ${$allextensions}[$i]; - - # my $systemcall = $unopkgfile . " add --shared --suppress-license " . "\"" . $oneextension . "\""; + if ( ! -f $unopkgfile ) { installer::exiter::exit_program("ERROR: $unopkgfile not found!", "register_extensions"); } - if ( ! -f $unopkgfile ) { installer::exiter::exit_program("ERROR: $unopkgfile not found!", "register_extensions"); } - if ( ! -f $oneextension ) { installer::exiter::exit_program("ERROR: $oneextension not found!", "register_extensions"); } + my $localtemppath = installer::systemactions::create_directories("uno", $languagestringref); - my $localtemppath = installer::systemactions::create_directories("uno", $languagestringref); + my $slash = ""; - if ( $installer::globals::iswindowsbuild ) + if ( $installer::globals::iswindowsbuild ) + { + if ( $^O =~ /cygwin/i ) { - if ( $^O =~ /cygwin/i ) - { - $localtemppath = $installer::globals::cyg_temppath; - } - else - { - $windowsslash = "\/"; - } - $localtemppath =~ s/\\/\//g; - $localtemppath = "/".$localtemppath; + $localtemppath = $installer::globals::cyg_temppath; + $preregdir = qx{cygpath -m "$preregdir"}; + chomp($preregdir); } - my $systemcall = $unopkgfile . " add --shared --suppress-license --verbose " . $oneextension . " -env:UserInstallation=file://" . $localtemppath . " 2\>\&1 |"; + $localtemppath =~ s/\\/\//g; + $slash = "/"; # Third slash for Windows. Other OS pathes already start with "/" + } - print "... $systemcall ...\n"; + $preregdir =~ s/\/\s*$//g; - $infoline = "Systemcall: $systemcall\n"; - push( @installer::globals::logfileinfo, $infoline); + my $systemcall = $unopkgfile . " sync --verbose -env:BUNDLED_EXTENSIONS_USER=\"file://" . $slash . $preregdir . "\"" . " -env:UserInstallation=file://" . $slash . $localtemppath . " 2\>\&1 |"; - my @unopkgoutput = (); + print "... $systemcall ...\n"; - open (UNOPKG, $systemcall); - while (<UNOPKG>) - { - my $lastline = $_; - push(@unopkgoutput, $lastline); - } - close (UNOPKG); + $infoline = "Systemcall: $systemcall\n"; + push( @installer::globals::logfileinfo, $infoline); - my $returnvalue = $?; # $? contains the return value of the systemcall + my @unopkgoutput = (); - if ($returnvalue) - { - # Writing content of @unopkgoutput only in the error case into the log file. Sometimes it - # contains strings like "Error" even in the case of success. This causes a packaging error - # when the log file is analyzed at the end, even if there is no real error. - for ( my $j = 0; $j <= $#unopkgoutput; $j++ ) { push( @installer::globals::logfileinfo, "$unopkgoutput[$j]"); } + open (UNOPKG, $systemcall); + while (<UNOPKG>) + { + my $lastline = $_; + push(@unopkgoutput, $lastline); + } + close (UNOPKG); - $infoline = "ERROR: Could not execute \"$systemcall\"!\nExitcode: '$returnvalue'\n"; - push( @installer::globals::logfileinfo, $infoline); - installer::exiter::exit_program("ERROR: $systemcall failed!", "register_extensions"); - } - else - { - $infoline = "Success: Executed \"$systemcall\" successfully!\n"; - push( @installer::globals::logfileinfo, $infoline); - } + my $returnvalue = $?; # $? contains the return value of the systemcall + + if ($returnvalue) + { + # Writing content of @unopkgoutput only in the error case into the log file. Sometimes it + # contains strings like "Error" even in the case of success. This causes a packaging error + # when the log file is analyzed at the end, even if there is no real error. + for ( my $j = 0; $j <= $#unopkgoutput; $j++ ) { push( @installer::globals::logfileinfo, "$unopkgoutput[$j]"); } + + $infoline = "ERROR: Could not execute \"$systemcall\"!\nExitcode: '$returnvalue'\n"; + push( @installer::globals::logfileinfo, $infoline); + installer::exiter::exit_program("ERROR: $systemcall failed!", "register_extensions"); } - } - else - { - if ( ! ( $#{$allextensions} > -1 )) + else { - $infoline = "No extensions located in directory $extensiondir.\n"; + $infoline = "Success: Executed \"$systemcall\" successfully!\n"; push( @installer::globals::logfileinfo, $infoline); } } @@ -662,6 +652,7 @@ sub create_simple_package if ( $onedir->{'HostName'} ) { my $destdir = $subfolderdir . $installer::globals::separator . $onedir->{'HostName'}; + if ( ! -d $destdir ) { if ( $^O =~ /cygwin/i ) # Cygwin performance check @@ -787,19 +778,18 @@ sub create_simple_package system($localcall); } - # Registering the extensions - - # installer::logger::print_message( "... registering extensions ...\n" ); - # installer::logger::include_header_into_logfile("Registering extensions:"); - # register_extensions($subfolderdir, $languagestringref); - installer::logger::print_message( "... removing superfluous directories ...\n" ); installer::logger::include_header_into_logfile("Removing superfluous directories:"); - my $extensionfolder = get_extensions_dir($subfolderdir); - + my ( $extensionfolder, $preregdir ) = get_extensions_dir($subfolderdir); installer::systemactions::remove_empty_dirs_in_folder($extensionfolder); + # Registering the extensions + + installer::logger::print_message( "... registering extensions ...\n" ); + installer::logger::include_header_into_logfile("Registering extensions:"); + register_extensions($subfolderdir, $languagestringref, $preregdir); + if ( $installer::globals::compiler =~ /^unxmacx/ ) { installer::worker::put_scpactions_into_installset("$installdir/$packagename"); diff --git a/solenv/bin/modules/installer/systemactions.pm b/solenv/bin/modules/installer/systemactions.pm index 981dc40f3209..24b070574189 100644 --- a/solenv/bin/modules/installer/systemactions.pm +++ b/solenv/bin/modules/installer/systemactions.pm @@ -292,6 +292,27 @@ sub remove_empty_directory } ####################################################################### +# Calculating the number of languages in the string +####################################################################### + +sub get_number_of_langs +{ + my ($languagestring) = @_; + + my $number = 1; + + my $workstring = $languagestring; + + while ( $workstring =~ /^\s*(.*)_(.*?)\s*$/ ) + { + $workstring = $1; + $number++; + } + + return $number; +} + +####################################################################### # Creating the directories, in which files are generated or unzipped ####################################################################### @@ -380,8 +401,11 @@ sub create_directories if (length($languagestring) > $installer::globals::max_lang_length ) { + my $number_of_languages = get_number_of_langs($languagestring); chomp(my $shorter = `echo $languagestring | md5sum | sed -e "s/ .*//g"`); - $languagestring = $shorter; + # $languagestring = $shorter; + my $id = substr($shorter, 0, 8); # taking only the first 8 digits + $languagestring = "lang_" . $number_of_languages . "_id_" . $id; } $path = $path . $languagestring . $installer::globals::separator; diff --git a/solenv/bin/modules/installer/windows/property.pm b/solenv/bin/modules/installer/windows/property.pm index e9f122a54d86..35866103d9fa 100644 --- a/solenv/bin/modules/installer/windows/property.pm +++ b/solenv/bin/modules/installer/windows/property.pm @@ -316,6 +316,11 @@ sub set_important_properties { my $onepropertyline = "OFFICEDIRHOSTNAME" . "\t" . $installer::globals::officedirhostname . "\n"; push(@{$propertyfile}, $onepropertyline); + + my $localofficedirhostname = $installer::globals::officedirhostname; + $localofficedirhostname =~ s/\//\\/g; + $onepropertyline = "OFFICEDIRHOSTNAME_" . "\t" . $localofficedirhostname . "\n"; + push(@{$propertyfile}, $onepropertyline); } if ( $installer::globals::sundirhostname ) diff --git a/solenv/bin/subsequenttests b/solenv/bin/subsequenttests index 34e6b8034c70..3caa84293f3e 100755..100644 --- a/solenv/bin/subsequenttests +++ b/solenv/bin/subsequenttests @@ -47,7 +47,7 @@ while (@ARGV) { } my @testpaths = (); -my $sc = SourceConfig->new(); +my $sc = SourceConfig->new($ENV{'SOLARSRC'}); my $module; foreach $module ($sc->get_active_modules()) { my $buildlst = $sc->get_module_build_list($module); diff --git a/solenv/config/sdev300.ini b/solenv/config/sooo330.ini index 3e80e1460885..ab42c2359aaa 100755..100644 --- a/solenv/config/sdev300.ini +++ b/solenv/config/sooo330.ini @@ -8,6 +8,7 @@ common BIG_SVX TRUE BMP_WRITES_FLAG TRUE BUILD_SPECIAL TRUE + BUILD_STAX YES BUILD_TYPE SO OOo EXT BINFILTER MORE_FONTS BSH CURL DICTIONARIES HSQLDB HUNSPELL HYPHEN MYTHES JPEG LIBXML2 LIBXMLSEC LPSOLVE MOZ NEON TWAIN PYTHON ZLIB SANE UNIXODBC X11_EXTENSIONS LIBWPD EPM ODK MSFONTEXTRACT MATHMLDTD BOOST MDDS EXPAT CRASHREP BERKELEYDB LIBXSLT SUN AGG GTK ICU SYSTRAY_GTK JAVAINSTALLER2 VIGRA OPENSSL JFREEREPORT APACHE_COMMONS TOMCAT REPORTBUILDER SDEXT SWEXT XPDF LUCENE REDLAND SAXON WRITER2LATEX NSS L10N GRAPHITE MYSQLCPPCONN MYSQLC CPPUNIT common_build TRUE COMMON_OUTDIR common @@ -66,6 +67,7 @@ common } common:3 IF %UPDATER% != YES { + ENABLE_CRASHDUMP DUMMY } crashdump { @@ -90,10 +92,11 @@ common pro:0 IF %UPDATER% == YES { DELIVER_TO_ZIP TRUE + ENABLE_CRASHDUMP TRUE product full PROEXT .pro PROFULLSWITCH product=full - WITH_LANG en-US de es fr hu it ja ko nl pl pt pt-BR ru sv th tr zh-CN zh-TW ar + WITH_LANG af ar as ast be-BY bg bn bo br brx bs ca ca-XV cs cy da de dgo dz el en-GB en-ZA eo es et eu fa fi fr ga gl gu he hi hr hu id is it ja ka kid kk km kn ko kok ks ku lt lv mai mk ml mn mni mr my nb ne nl nn nr ns oc om or pa-IN pap pl pt pt-BR ro ru rw sa-IN sat sd sh si sk sl sr ss st sv sw-TZ ta te tg th tn tr ts ug uk ur uz ve vi xh zh-CN zh-TW zu } pro:1 IF %UPDATER% != YES { diff --git a/solenv/config/ssolar.cmn b/solenv/config/ssolar.cmn index 937c345e2de8..de332146a1f0 100644 --- a/solenv/config/ssolar.cmn +++ b/solenv/config/ssolar.cmn @@ -44,6 +44,7 @@ common BUILD_TOOLS BUILD_TYPE BUILD_SPECIAL + BUILD_STAX BUILD_X64 CLASSPATH CALL_CDECL diff --git a/solenv/inc/_tg_srs.mk b/solenv/inc/_tg_srs.mk index 063f98f2f322..a71216f0a7e9 100644 --- a/solenv/inc/_tg_srs.mk +++ b/solenv/inc/_tg_srs.mk @@ -28,7 +28,7 @@ $(foreach,i,$(SRC1FILES) $(COMMONMISC)/$(TARGET)/$i) : $$(@:f) $(LOCALIZESDF) $(COMMAND_ECHO)-$(MKDIR) $(@:d) $(COMMAND_ECHO)-$(RM) $@ $(COMMAND_ECHO)-$(MKDIRHIER) $(COMMONMISC)$/$(PRJNAME) - $(COMMAND_ECHO)$(WRAPCMD) $(TRANSEX) $(TRANSEX_VERBOSITY) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all + $(COMMAND_ECHO)$(WRAPCMD) $(TRANSEX) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ $(COMMAND_ECHO)-$(RM) $@.$(INPATH) @@ -81,7 +81,7 @@ $(foreach,i,$(SRC2FILES) $(COMMONMISC)/$(TARGET)/$i) : $$(@:f) $(LOCALIZESDF) $(COMMAND_ECHO)-$(MKDIR) $(@:d) $(COMMAND_ECHO)-$(RM) $@ $(COMMAND_ECHO)-$(MKDIRHIER) $(COMMONMISC)$/$(PRJNAME) - $(COMMAND_ECHO)$(WRAPCMD) $(TRANSEX) $(TRANSEX_VERBOSITY) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all + $(COMMAND_ECHO)$(WRAPCMD) $(TRANSEX) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ $(COMMAND_ECHO)-$(RM) $@.$(INPATH) @@ -134,7 +134,7 @@ $(foreach,i,$(SRC3FILES) $(COMMONMISC)/$(TARGET)/$i) : $$(@:f) $(LOCALIZESDF) $(COMMAND_ECHO)-$(MKDIR) $(@:d) $(COMMAND_ECHO)-$(RM) $@ $(COMMAND_ECHO)-$(MKDIRHIER) $(COMMONMISC)$/$(PRJNAME) - $(COMMAND_ECHO)$(WRAPCMD) $(TRANSEX) $(TRANSEX_VERBOSITY) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all + $(COMMAND_ECHO)$(WRAPCMD) $(TRANSEX) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ $(COMMAND_ECHO)-$(RM) $@.$(INPATH) @@ -187,7 +187,7 @@ $(foreach,i,$(SRC4FILES) $(COMMONMISC)/$(TARGET)/$i) : $$(@:f) $(LOCALIZESDF) $(COMMAND_ECHO)-$(MKDIR) $(@:d) $(COMMAND_ECHO)-$(RM) $@ $(COMMAND_ECHO)-$(MKDIRHIER) $(COMMONMISC)$/$(PRJNAME) - $(COMMAND_ECHO)$(WRAPCMD) $(TRANSEX) $(TRANSEX_VERBOSITY) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all + $(COMMAND_ECHO)$(WRAPCMD) $(TRANSEX) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ $(COMMAND_ECHO)-$(RM) $@.$(INPATH) @@ -240,7 +240,7 @@ $(foreach,i,$(SRC5FILES) $(COMMONMISC)/$(TARGET)/$i) : $$(@:f) $(LOCALIZESDF) $(COMMAND_ECHO)-$(MKDIR) $(@:d) $(COMMAND_ECHO)-$(RM) $@ $(COMMAND_ECHO)-$(MKDIRHIER) $(COMMONMISC)$/$(PRJNAME) - $(COMMAND_ECHO)$(WRAPCMD) $(TRANSEX) $(TRANSEX_VERBOSITY) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all + $(COMMAND_ECHO)$(WRAPCMD) $(TRANSEX) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ $(COMMAND_ECHO)-$(RM) $@.$(INPATH) @@ -293,7 +293,7 @@ $(foreach,i,$(SRC6FILES) $(COMMONMISC)/$(TARGET)/$i) : $$(@:f) $(LOCALIZESDF) $(COMMAND_ECHO)-$(MKDIR) $(@:d) $(COMMAND_ECHO)-$(RM) $@ $(COMMAND_ECHO)-$(MKDIRHIER) $(COMMONMISC)$/$(PRJNAME) - $(COMMAND_ECHO)$(WRAPCMD) $(TRANSEX) $(TRANSEX_VERBOSITY) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all + $(COMMAND_ECHO)$(WRAPCMD) $(TRANSEX) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ $(COMMAND_ECHO)-$(RM) $@.$(INPATH) @@ -346,7 +346,7 @@ $(foreach,i,$(SRC7FILES) $(COMMONMISC)/$(TARGET)/$i) : $$(@:f) $(LOCALIZESDF) $(COMMAND_ECHO)-$(MKDIR) $(@:d) $(COMMAND_ECHO)-$(RM) $@ $(COMMAND_ECHO)-$(MKDIRHIER) $(COMMONMISC)$/$(PRJNAME) - $(COMMAND_ECHO)$(WRAPCMD) $(TRANSEX) $(TRANSEX_VERBOSITY) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all + $(COMMAND_ECHO)$(WRAPCMD) $(TRANSEX) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ $(COMMAND_ECHO)-$(RM) $@.$(INPATH) @@ -399,7 +399,7 @@ $(foreach,i,$(SRC8FILES) $(COMMONMISC)/$(TARGET)/$i) : $$(@:f) $(LOCALIZESDF) $(COMMAND_ECHO)-$(MKDIR) $(@:d) $(COMMAND_ECHO)-$(RM) $@ $(COMMAND_ECHO)-$(MKDIRHIER) $(COMMONMISC)$/$(PRJNAME) - $(COMMAND_ECHO)$(WRAPCMD) $(TRANSEX) $(TRANSEX_VERBOSITY) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all + $(COMMAND_ECHO)$(WRAPCMD) $(TRANSEX) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ $(COMMAND_ECHO)-$(RM) $@.$(INPATH) @@ -452,7 +452,7 @@ $(foreach,i,$(SRC9FILES) $(COMMONMISC)/$(TARGET)/$i) : $$(@:f) $(LOCALIZESDF) $(COMMAND_ECHO)-$(MKDIR) $(@:d) $(COMMAND_ECHO)-$(RM) $@ $(COMMAND_ECHO)-$(MKDIRHIER) $(COMMONMISC)$/$(PRJNAME) - $(COMMAND_ECHO)$(WRAPCMD) $(TRANSEX) $(TRANSEX_VERBOSITY) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all + $(COMMAND_ECHO)$(WRAPCMD) $(TRANSEX) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ $(COMMAND_ECHO)-$(RM) $@.$(INPATH) @@ -505,7 +505,7 @@ $(foreach,i,$(SRC10FILES) $(COMMONMISC)/$(TARGET)/$i) : $$(@:f) $(LOCALIZESDF) $(COMMAND_ECHO)-$(MKDIR) $(@:d) $(COMMAND_ECHO)-$(RM) $@ $(COMMAND_ECHO)-$(MKDIRHIER) $(COMMONMISC)$/$(PRJNAME) - $(COMMAND_ECHO)$(WRAPCMD) $(TRANSEX) $(TRANSEX_VERBOSITY) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all + $(COMMAND_ECHO)$(WRAPCMD) $(TRANSEX) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ $(COMMAND_ECHO)-$(RM) $@.$(INPATH) diff --git a/solenv/inc/minor.mk b/solenv/inc/minor.mk index 42eb91b48474..a6e3941d89af 100644 --- a/solenv/inc/minor.mk +++ b/solenv/inc/minor.mk @@ -1,5 +1,5 @@ -RSCVERSION=300 -RSCREVISION=300m84(Build:9512) -BUILD=9512 -LAST_MINOR=m84 -SOURCEVERSION=DEV300 +RSCVERSION=330 +RSCREVISION=330m5(Build:9521) +BUILD=9521 +LAST_MINOR=m5 +SOURCEVERSION=OOO330 diff --git a/solenv/inc/rules.mk b/solenv/inc/rules.mk index 63c4d0cef28c..7ad8fd19f33f 100644 --- a/solenv/inc/rules.mk +++ b/solenv/inc/rules.mk @@ -722,7 +722,7 @@ $(COMMONMISC)/$(TARGET)/%.ulf : %.ulf @echo "Making: " $(@:f) $(COMMAND_ECHO)-$(MKDIR) $(@:d) $(COMMAND_ECHO)-$(RM) $@ - $(COMMAND_ECHO)$(ULFEX) $(ULFEX_VERBOSITY) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all + $(COMMAND_ECHO)$(ULFEX) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ $(COMMAND_ECHO)-$(RM) $@.$(INPATH) diff --git a/solenv/inc/set_wntx64.mk b/solenv/inc/set_wntx64.mk index bf2ca9314f33..412fb3bd2821 100755..100644 --- a/solenv/inc/set_wntx64.mk +++ b/solenv/inc/set_wntx64.mk @@ -42,6 +42,10 @@ LIBMGR_X64=$(WRAPCMD) $(LIBMGR_X64_BINARY) $(NOLOGO) IMPLIB_X64=$(WRAPCMD) $(LIBMGR_X64_BINARY) USE_CFLAGS_X64=-c -nologo -Gs $(NOLOGO) -Zm500 -Zc:forScope,wchar_t- -GR + +# Stack buffer overrun detection. +CFLAGS+=-GS + USE_CDEFS_X64+= -DWIN32 -D_AMD64_=1 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NON_CONFORMING_SWPRINTFS .IF "$(debug)"!="" USE_CFLAGS_X64+=-Zi -Fd$(MISC_X64)/$(@:b).pdb @@ -78,6 +82,15 @@ CDEFSOBJMT_X64+=-D_MT LINKFLAGS_X64=/MAP /OPT:NOREF .ENDIF +# excetion handling protection +LINKFLAGS+=-safeseh + +# enable DEP +LINKFLAGS+=-nxcompat + +# enable ASLR +LINKFLAGS+=-dynamicbase + .IF "$(PRODUCT)"!="full" LINKFLAGS_X64+= -NODEFAULTLIB -DEBUG .ELSE # "$(PRODUCT)"!="full" diff --git a/solenv/inc/settings.mk b/solenv/inc/settings.mk index c5283fb1b59e..68bbc797d8af 100644 --- a/solenv/inc/settings.mk +++ b/solenv/inc/settings.mk @@ -827,6 +827,9 @@ LOCALIZESDF:=$(strip $(shell @+$(IFEXIST) $(TRYSDF) $(THEN) echo $(TRYSDF) $(FI) .IF "$(LOCALIZESDF)"=="" LOCALSDFFILE:=$(COMMONMISC)$/$(PRJNAME)$/$(PATH_IN_MODULE)$/localize.sdf LOCALIZESDF:=$(strip $(shell @+$(IFEXIST) $(SOLARCOMMONSDFDIR)$/$(PRJNAME).zip $(THEN) echo $(LOCALSDFFILE) $(FI))) +.IF "$(LOCALIZESDF)"=="" +LOCALSDFFILE!:= +.ENDIF # "$(LOCALIZESDF)"=="" .ENDIF # "$(LOCALIZESDF)"=="" # dummy target to keep the build happy. .IF "$(LOCALIZESDF)"=="" @@ -964,9 +967,6 @@ RSC=$(AUGMENT_LIBRARY_PATH) $(FLIPCMD) $(SOLARBINDIR)/rsc .IF "$(VERBOSE)" == "FALSE" VERBOSITY=-quiet ZIP_VERBOSITY=-q - TRANSEX_VERBOSITY=-QQ - CFGEX_VERBOSITY=-QQ - ULFEX_VERBOSITY=-QQ .ENDIF .ENDIF # "$(VERBOSE)" == "TRUE" COMPILE_ECHO_SWITCH= diff --git a/solenv/inc/target.mk b/solenv/inc/target.mk index 1a4ad6e182a0..0fe06145879d 100644 --- a/solenv/inc/target.mk +++ b/solenv/inc/target.mk @@ -1518,7 +1518,7 @@ $(LOCALIZE_ME_DEST) .PHONY : $(LOCALIZE_ME) $(LOCALIZESDF) .ENDIF # "$(LASTRUN_MERGED)"=="TRUE" $(COMMAND_ECHO)-$(MKDIR) $(@:d) $(COMMAND_ECHO)-$(RM) $@ - $(COMMAND_ECHO)$(TRANSEX) $(TRANSEX_VERBOSITY) -p $(PRJNAME) -i $(@:b:+"_tmpl")$(@:e) -o $(@:d)/$(@:b:+"_tmpl")$(@:e).$(INPATH) -m $(LOCALIZESDF) -l all + $(COMMAND_ECHO)$(TRANSEX) -p $(PRJNAME) -i $(@:b:+"_tmpl")$(@:e) -o $(@:d)/$(@:b:+"_tmpl")$(@:e).$(INPATH) -m $(LOCALIZESDF) -l all $(COMMAND_ECHO)$(RENAME) $(@:d)$(@:b:+"_tmpl")$(@:e).$(INPATH) $@ .ENDIF # "$(WITH_LANG)"=="" @@ -2043,6 +2043,7 @@ $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/hid.lst .PHONY : .INCLUDE : tg_merge.mk .INCLUDE : tg_propmerge.mk +.INCLUDE : tg_xmerge.mk wordcount: wc *.* >> $(TMP)/wc.lst diff --git a/solenv/inc/tg_config.mk b/solenv/inc/tg_config.mk index bbc720ed600e..cfe2fe147ebe 100644 --- a/solenv/inc/tg_config.mk +++ b/solenv/inc/tg_config.mk @@ -137,7 +137,7 @@ $(XCU_LANG) : $(LOCALIZESDF) $(PROCESSOUT)/merge/$(PACKAGEDIR)/%.xcu : %.xcu @-$(MKDIRHIER) $(@:d) - $(COMMAND_ECHO)$(CFGEX) $(CFGEX_VERBOSITY) -p $(PRJNAME) -i $(@:f) -o $@ -m $(LOCALIZESDF) -l all + $(COMMAND_ECHO)$(CFGEX) -p $(PRJNAME) -i $(@:f) -o $@ -m $(LOCALIZESDF) -l all .IF "$(XCU_LANG)" != "" $(XCU_LANG) : $(XSLDIR)/alllang.xsl diff --git a/solenv/inc/tg_help.mk b/solenv/inc/tg_help.mk index b98e0c6de3cc..b98e0c6de3cc 100755..100644 --- a/solenv/inc/tg_help.mk +++ b/solenv/inc/tg_help.mk diff --git a/solenv/inc/tg_srs.mk b/solenv/inc/tg_srs.mk index 347dd25569de..4e70eb06b1b4 100644 --- a/solenv/inc/tg_srs.mk +++ b/solenv/inc/tg_srs.mk @@ -56,7 +56,7 @@ $(foreach,i,$(SRC$(TNR)FILES) $(COMMONMISC)/$(TARGET)/$i) : $$(@:f) $(LOCALIZESD $(COMMAND_ECHO)-$(MKDIR) $(@:d) $(COMMAND_ECHO)-$(RM) $@ $(COMMAND_ECHO)-$(MKDIRHIER) $(COMMONMISC)$/$(PRJNAME) - $(COMMAND_ECHO)$(WRAPCMD) $(TRANSEX) $(TRANSEX_VERBOSITY) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all + $(COMMAND_ECHO)$(WRAPCMD) $(TRANSEX) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ $(COMMAND_ECHO)-$(RM) $@.$(INPATH) diff --git a/solenv/inc/tg_xmerge.mk b/solenv/inc/tg_xmerge.mk new file mode 100755 index 000000000000..fa3e2297184f --- /dev/null +++ b/solenv/inc/tg_xmerge.mk @@ -0,0 +1,109 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +.IF "$(XTXFILES)"!="" + +ALLTAR : $(MISC)/$(TARGET).xtx.pmerge.mk $(XTXFILES) + +.IF "$(L10NEXT)"=="" +L10NEXT:=.txt +.ENDIF + +$(MISC)/$(TARGET).xtx.pmerge.mk : $(XTXFILES) + +$(XTXFILES) : $(LOCALIZESDF) + +.INCLUDE .IGNORE : $(MISC)/$(TARGET).xtx.pmerge.mk + +.IF "$(alllangiso)"!="$(last_merge)" +XTXMERGEPHONY:=.PHONY +.ENDIF # "$(alllangiso)" != "$(last_merge)" + +$(MISC)/$(TARGET)/%$(L10NEXT) $(XTXMERGEPHONY) : %.xtx + @@-$(MKDIRHIER) $(@:d) +.IF "$(WITH_LANG)"=="" + $(COMMAND_ECHO)$(COPY) $< $@ +.ELSE # "$(WITH_LANG)"=="" + @@-$(RM) $@ + $(COMMAND_ECHO)@noop $(assign XTXMERGELIST+:=$(<:f)) + $(COMMAND_ECHO)@noop $(assign XTXDESTDIR:=$(@:d)) +.ENDIF # "$(WITH_LANG)"=="" + +$(MISC)/$(TARGET).xtx.pmerge.mk : $(XTXMERGELIST) +.IF "$(WITH_LANG)"!="" +# xtxex command file requirements: +# - one file per line +# - no spaces +# - no empty lines +# $(uniq ...) to workaround $assign adding the value twice... + @noop $(assign XTXMERGEFILELIST:=$(uniq $(XTXMERGELIST))) + $(COMMAND_ECHO) $(SOLARBINDIR)/xtxex -p $(PRJNAME) -r $(PRJ) -o $(XTXDESTDIR) -i @$(mktmp $(XTXMERGEFILELIST:t"\n":s/ //)) -l $(alllangiso:s/ /,/) -f $(alllangiso:s/ /,/) -m $(LOCALIZESDF) -s"[path]/[fileNoExt]_[language]$(L10NEXT)" +.ENDIF # "$(WITH_LANG)"!="" + + @-$(RM) $@ + $(COMMAND_ECHO)echo last_merge=$(alllangiso) > $@ +.ENDIF # "$(XTXFILES)"!="" + +.IF "$(TREEFILE)"!="" +ALLTAR : $(MISC)/$(TARGET).tree.pmerge.mk $(TREEFILE) + +$(MISC)/$(TARGET).tree.pmerge.mk : $(TREEFILE) + +$(TREEFILE) : $(LOCALIZESDF) + +.INCLUDE .IGNORE : $(MISC)/$(TARGET).tree.pmerge.mk + +.IF "$(alllangiso)"!="$(last_merge)" +TREEMERGEPHONY:=.PHONY +.ENDIF # "$(alllangiso)" != "$(last_merge)" + +$(OUT_HELP)/en-US/help.tree $(TREEMERGEPHONY) : help.tree + @@-$(MKDIRHIER) $(@:d) +.IF "$(WITH_LANG)"=="" + $(COMMAND_ECHO)$(COPY) $< $@ +.ELSE # "$(WITH_LANG)"=="" + @@-$(RM) $@ + $(COMMAND_ECHO)@noop $(assign TREEMERGELIST+:=$(<:f)) + $(COMMAND_ECHO)@noop $(assign TREEDESTDIR:=$(@:d:d:d)) +.ENDIF # "$(WITH_LANG)"=="" + +$(MISC)/$(TARGET).tree.pmerge.mk : $(TREEMERGELIST) +.IF "$(WITH_LANG)"!="" +# xtxex command file requirements: +# - one file per line +# - no spaces +# - no empty lines +# $(uniq ...) to workaround $assign adding the value twice... + @noop $(assign TREEMERGEFILELIST:=$(uniq $(TREEMERGELIST))) +# Variables for the pattern filename,fileNoExt,language,extension,pathPrefix,pathPostFix,path + $(COMMAND_ECHO) $(SOLARBINDIR)/xhtex -p $(PRJNAME) -r $(PRJ) -o $(TREEDESTDIR) -i @$(mktmp $(TREEMERGEFILELIST:t"\n":s/ //)) -l $(alllangiso:s/ /,/) -f $(alllangiso:s/ /,/) -m $(LOCALIZESDF) -s"[path]/[language]/[fileNoExt].tree" +.ENDIF # "$(WITH_LANG)"!="" + @-$(RM) $@ + $(COMMAND_ECHO)echo last_merge=$(alllangiso) > $@ +.ENDIF # "$(TREEFILE)"!="" + + diff --git a/solenv/inc/unxlng.mk b/solenv/inc/unxlng.mk index be8c5d01b714..aff552dde89c 100644 --- a/solenv/inc/unxlng.mk +++ b/solenv/inc/unxlng.mk @@ -198,6 +198,14 @@ STDLIBCUIMT+=-ltcmalloc STDSHLGUIMT+=-ltcmalloc STDSHLCUIMT+=-ltcmalloc .ENDIF + +.IF "$(ALLOC)" == "JEMALLOC" +STDLIBGUIMT+=-ljemalloc +STDLIBCUIMT+=-ljemalloc +STDSHLGUIMT+=-ljemalloc +STDSHLCUIMT+=-ljemalloc +.ENDIF + .IF "$(HAVE_LD_HASH_STYLE)" == "TRUE" LINKFLAGS += -Wl,--hash-style=both .ELSE diff --git a/solenv/inc/version.hrc b/solenv/inc/version.hrc index d4c205f942b9..9c2b9be4189a 100644 --- a/solenv/inc/version.hrc +++ b/solenv/inc/version.hrc @@ -26,14 +26,14 @@ *************************************************************************/ #define VERSION 3 -#define SUBVERSION 2 +#define SUBVERSION 3 //#define VERVARIANT 0 // never define this one, will be provided by build environment (BUILD_ID) // .0 + VER_CONCEPT // .100 + VER_ALPHA // .200 + VER_BETA // .300 + VER_GAMMA // .500 + VER_FINAL -//#define VER_CONCEPT 0 +//#define VER_CONCEPT 0 //#define VER_BETA 6 #define VER_FINAL 0 @@ -54,7 +54,7 @@ #endif // ----------------------------------------------------------------------- -// language/character set specification table +// language/character set specification table // ----------------------------------------------------------------------- RCD_LANGUAGE rcdata diff --git a/solenv/inc/version.lst b/solenv/inc/version.lst new file mode 100644 index 000000000000..ac49f6c6fcf6 --- /dev/null +++ b/solenv/inc/version.lst @@ -0,0 +1,30 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +OOOBASEVERSIONMAJOR=3 +OOOBASEVERSIONMINOR=3 +OOOBASEVERSIONMICRO=0 diff --git a/solenv/inc/version_so.hrc b/solenv/inc/version_so.hrc index 70ea1c193ee6..9773f10fdddf 100644 --- a/solenv/inc/version_so.hrc +++ b/solenv/inc/version_so.hrc @@ -26,14 +26,14 @@ *************************************************************************/ #define VERSION 9 -#define SUBVERSION 2 +#define SUBVERSION 3 //#define VERVARIANT 0 // never define this one, will be provided by build environment (BUILD_ID) // .0 + VER_CONCEPT // .100 + VER_ALPHA // .200 + VER_BETA // .300 + VER_GAMMA // .500 + VER_FINAL -//#define VER_CONCEPT 0 +//#define VER_CONCEPT 0 //#define VER_BETA 6 #define VER_FINAL 0 @@ -54,7 +54,7 @@ #endif // ----------------------------------------------------------------------- -// language/character set specification table +// language/character set specification table // ----------------------------------------------------------------------- RCD_LANGUAGE rcdata diff --git a/solenv/inc/versionlist.mk b/solenv/inc/versionlist.mk new file mode 100644 index 000000000000..31a255e48be1 --- /dev/null +++ b/solenv/inc/versionlist.mk @@ -0,0 +1,30 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +.INCLUDE: version.lst + +.EXPORT : OOOBASEVERSIONMAJOR OOOBASEVERSIONMINOR OOOBASEVERSIONMICRO diff --git a/solenv/inc/wntmsci10.mk b/solenv/inc/wntmsci10.mk index 6ed8327c8506..5c959f7d0e3c 100644 --- a/solenv/inc/wntmsci10.mk +++ b/solenv/inc/wntmsci10.mk @@ -34,7 +34,7 @@ JAVAFLAGSDEBUG=-g # SOLAR JAva Unterstuetzung nur fuer wntmsci ASM=ml -AFLAGS=/c /Cp /coff +AFLAGS=/c /Cp /coff /safeseh # architecture dependent flags for the C and C++ compiler that can be changed by # exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build diff --git a/solenv/inc/wntmsci11.mk b/solenv/inc/wntmsci11.mk index b270a6a25cfe..972feb0a8fdc 100644 --- a/solenv/inc/wntmsci11.mk +++ b/solenv/inc/wntmsci11.mk @@ -34,7 +34,7 @@ JAVAFLAGSDEBUG=-g # SOLAR JAva Unterstuetzung nur fuer wntmsci ASM=ml -AFLAGS=/c /Cp /coff +AFLAGS=/c /Cp /coff /safeseh # architecture dependent flags for the C and C++ compiler that can be changed by # exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build @@ -82,6 +82,10 @@ COMPILE_ECHO_FILE= # lookup": # -wd4251 -wd4275 -wd4290 -wd4675 -wd4786 -wd4800 CFLAGS+=-Zm500 -Zc:forScope,wchar_t- -GR + +# Stack buffer overrun detection. +CFLAGS+=-GS + CFLAGS+=-c -nologo -Gs $(NOLOGO) CDEFS+= -D_X86_=1 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NON_CONFORMING_SWPRINTFS @@ -235,8 +239,17 @@ LINKOUTPUTFILTER= $(PIPEERROR) $(GREP) -v "LNK4197:" LINKFLAGS=/MAP /OPT:NOREF .ENDIF +# excetion handling protection +LINKFLAGS+=-safeseh + +# enable DEP +LINKFLAGS+=-nxcompat + +# enable ASLR +LINKFLAGS+=-dynamicbase + .IF "$(linkinc)" != "" -LINKFLAGS=-NODEFAULTLIB -INCREMENTAL:YES -DEBUG +LINKFLAGS+=-NODEFAULTLIB -INCREMENTAL:YES -DEBUG MAPFILE= _VC_MANIFEST_INC=1 .ELSE # "$(linkinc)" != "" diff --git a/solenv/prj/d.lst b/solenv/prj/d.lst index e69de29bb2d1..edbfc190c808 100644 --- a/solenv/prj/d.lst +++ b/solenv/prj/d.lst @@ -0,0 +1,2 @@ +mkdir: %_DEST%\bin%_EXT%
+..\inc\version.lst %_DEST%\bin%_EXT%\version.lst
|