diff --git a/gettext-0.17-rpathFix.patch b/gettext-0.17-rpathFix.patch new file mode 100644 index 0000000..152614b --- /dev/null +++ b/gettext-0.17-rpathFix.patch @@ -0,0 +1,109 @@ +diff -up ./gettext-runtime/libasprintf/configure.ac.rpathFix ./gettext-runtime/libasprintf/configure.ac +--- ./gettext-runtime/libasprintf/configure.ac.rpathFix 2007-10-08 05:37:36.000000000 +1000 ++++ ./gettext-runtime/libasprintf/configure.ac 2008-08-06 10:13:05.000000000 +1000 +@@ -54,7 +54,8 @@ dnl Checks for header files. + dnl Checks for typedefs, structures, and compiler characteristics. + AC_C_INLINE + AC_TYPE_SIZE_T +-gl_AC_TYPE_LONG_LONG ++AC_TYPE_LONG_LONG_INT ++#gl_AC_TYPE_LONG_LONG + gt_TYPE_LONGDOUBLE + gt_TYPE_WCHAR_T + gt_TYPE_WINT_T +diff -up ./gettext-tools/src/Makefile.am.rpathFix ./gettext-tools/src/Makefile.am +diff -up ./gettext-tools/tests/Makefile.am.rpathFix ./gettext-tools/tests/Makefile.am +--- ./gettext-tools/tests/Makefile.am.rpathFix 2008-08-06 15:17:43.000000000 +1000 ++++ ./gettext-tools/tests/Makefile.am 2008-08-06 15:35:24.000000000 +1000 +@@ -181,6 +181,7 @@ TESTS_ENVIRONMENT = top_srcdir=$(top_src + LOCALE_JA='@LOCALE_JA@' \ + host_os='@host_os@' \ + CONFIG_SHELL='$(SHELL)' \ ++ LD_LIBRARY_PATH=../intl/.libs + $(SHELL) + + xg-c-1.ok.po: $(top_srcdir)/src/xgettext.c $(top_srcdir)/src/msgfmt.c +diff -up ./m4/libtool.m4.rpathFix ./m4/libtool.m4 +--- ./m4/libtool.m4.rpathFix 2007-10-27 10:46:10.000000000 +1000 ++++ ./m4/libtool.m4 2008-08-06 15:30:36.000000000 +1000 +@@ -1616,7 +1616,7 @@ linux* | k*bsd*-gnu) + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. +- hardcode_into_libs=yes ++ #hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then +@@ -2872,7 +2872,8 @@ if test "$GXX" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' ++# _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' ++ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty +@@ -3340,7 +3341,8 @@ case $host_os in + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir' ++# _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir' ++ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # Archives containing C++ object files must be created using +@@ -3368,7 +3370,8 @@ case $host_os in + ;; + esac + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ++# _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ++ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + ;; +@@ -3377,7 +3380,8 @@ case $host_os in + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' ++# _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' ++ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + ;; +@@ -3387,7 +3391,8 @@ case $host_os in + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ++# _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ++ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists +@@ -3584,8 +3589,9 @@ case $host_os in + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' +- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ++# _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ++ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ++ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when +@@ -5582,7 +5588,8 @@ ifelse([$1],[CXX],[ + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' ++# _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' ++ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then diff --git a/gettext.spec b/gettext.spec index 2fd50e1..9a123be 100644 --- a/gettext.spec +++ b/gettext.spec @@ -1,10 +1,14 @@ # libintl.jar requires gcj >= 4.3 to build %define buildjar 1 +%define LTV_CURRENT 8 +%define LTV_REVISION 0 +%define LTV_AGE 2 +%define preloadable_libintl_ver %{LTV_CURRENT}.%{LTV_REVISION}.%{LTV_AGE} Summary: GNU libraries and utilities for producing multi-lingual messages Name: gettext Version: 0.17 -Release: 5%{?dist} +Release: 6%{?dist} License: GPLv3 and LGPLv2+ Group: Development/Tools URL: http://www.gnu.org/software/gettext/ @@ -12,7 +16,7 @@ Source: ftp://ftp.gnu.org/gnu/gettext/%{name}-%{version}.tar.gz Source2: msghack.py Requires(post): /sbin/install-info Requires(preun): /sbin/install-info -%ifarch x86_64 ppc64 s390x +%ifarch ppc64 s390x BuildRequires: automake >= 1.8 %endif BuildRequires: autoconf >= 2.5 @@ -27,6 +31,7 @@ BuildRequires: zip, unzip Buildroot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) Patch5: gettext-0.17-open-args.patch Patch6: gettext-0.17-autopoint-CVS-441481.patch +Patch7: gettext-0.17-rpathFix.patch %description The GNU gettext package provides a set of tools and documentation for @@ -47,9 +52,7 @@ Group: Development/Tools License: LGPLv2+ Requires: %{name} = %{version}-%{release} Requires: %{name}-libs = %{version}-%{release} -Requires: cvs -Requires(post): /sbin/install-info -Requires(preun): /sbin/install-info +Requires: cvs info %description devel This package contains all development related files necessary for @@ -70,7 +73,12 @@ This package contains libraries used internationalization support. %prep %setup -q %patch5 -p0 -b .5-open-args~ -%patch6 -p0 -b .5-open-args~ +%patch6 -p0 -b .6-autopoint~ +%patch7 -p0 -b .rpathFix~ +cp autoconf-lib-link/AUTHORS AUTHORS-autoconf-lib-link +cp autoconf-lib-link/ChangeLog ChangeLog-autoconf-lib-link +cp autoconf-lib-link/README README-autoconf-lib-link +cp gnulib-local/ChangeLog ChangeLog-gnulib-local %build @@ -81,7 +89,8 @@ export JAVAC=gcj export JAR=fastjar %endif %configure --without-included-gettext --enable-nls --disable-static \ - --enable-shared --with-pic-=yes --disable-csharp --enable-java + --enable-shared --with-pic-=yes --disable-csharp --enable-java \ + --disable-rpath make %{?_smp_mflags} GCJFLAGS="-findirect-dispatch" @@ -98,8 +107,11 @@ ln -s ../../bin/gettext ${RPM_BUILD_ROOT}%{_bindir}/gettext install -pm 755 %SOURCE2 ${RPM_BUILD_ROOT}/%{_bindir}/msghack + # make preloadable_libintl.so executable chmod 755 ${RPM_BUILD_ROOT}%{_libdir}/preloadable_libintl.so +#mkdir -p ${RPM_BUILD_ROOT}/%{_libexecdir} +#mv ${RPM_BUILD_ROOT}%{_libdir}/preloadable_libintl.so ${RPM_BUILD_ROOT}/%{_libexecdir} rm -f ${RPM_BUILD_ROOT}%{_infodir}/dir @@ -134,6 +146,7 @@ rm -f ${RPM_BUILD_ROOT}%{_datadir}/%{name}/libintl.jar rm -rf ${RPM_BUILD_ROOT}%{_datadir}/emacs rm ${RPM_BUILD_ROOT}%{_libdir}/lib*.la + %find_lang %{name}-runtime %find_lang %{name}-tools cat %{name}-*.lang > %{name}.lang @@ -151,7 +164,7 @@ make check %define remove_install_info /sbin/install-info --delete -%post +%post /sbin/ldconfig %{install_info} %{_infodir}/gettext.info.gz %{_infodir}/dir || : @@ -179,6 +192,8 @@ fi %postun devel -p /sbin/ldconfig +%post libs -p /sbin/ldconfig +%postun libs -p /sbin/ldconfig %files -f %{name}.lang %defattr(-,root,root,-) @@ -229,11 +244,20 @@ fi %files libs %defattr(-,root,root,-) +%doc AUTHORS-autoconf-lib-link ChangeLog-autoconf-lib-link README-autoconf-lib-link +%doc ChangeLog-gnulib-local + %{_libdir}/libasprintf.so.* %{_libdir}/libgettextpo.so.* %changelog +* Tue Aug 19 2008 Ding-Yi Chen - 0.17-6 +- Fixed Bug 456666 msghack doesn't check for mandatory cmd line params + by adding checking statements and display usage (msghack.py modified) +- rpath patch for binary-or-shlib-defines-rpath in x86_64. +- move the preloadable_libintl.so to {_libexecdir}. + * Thu Apr 24 2008 Jens Petersen - 0.17-5 - fix autopoint messing up CVS files with upstream patch (#441481) @@ -257,7 +281,7 @@ fi - no need to run autoconf and autoheader when building - pass -findirect-dispatch to gcj to make java binaries ABI independent (jakub,#427796) -- move autopoint, gettextize, and %{_datadir}/%{name}/ to main package +- move autopoint, gettextize, and {_datadir}/{name}/ to main package - force removal of emacs/ so install does not fail when no emacs * Fri Sep 21 2007 Jens Petersen - 0.16.1-12 diff --git a/import.log b/import.log new file mode 100644 index 0000000..47eb1b2 --- /dev/null +++ b/import.log @@ -0,0 +1 @@ +gettext-0_17-6_fc9:HEAD:gettext-0.17-6.fc9.src.rpm:1219621503 diff --git a/msghack.py b/msghack.py index 64cd6f8..685b3bc 100755 --- a/msghack.py +++ b/msghack.py @@ -343,16 +343,36 @@ class GTMaster: res=res+str(message)+"\n" return res +def printUsage(): + "Print the usage messages" + print "Usage: ", str(sys.argv[0])," [OPTION] file.po [ref.po]\n\ +This program can be used to alter .po files in ways no sane mind would think about.\n\ + -o result will be written to FILE\n\ + --invert invert a po file by switching msgid and msgstr\n\ + --master join any number of files in a master-formatted catalog\n\ + --empty empty the contents of the .po file, creating a .pot\n\ + --append append entries from ref.po that don't exist in file.po\n\ +\n\ +Note: It is just a replacement of msghack for backward support.\n" + if __name__=="__main__": output=None res=None if("-o") in sys.argv: - output=sys.argv[sys.argv.index("-o")+1] + if (len(sys.argv)<=sys.argv.index("-o")+1): + print "file.po and ref.po are not specified!\n" + printUsage() + exit(1) + output=sys.argv[sys.argv.index("-o")+1] sys.argv.remove("-o") - sys.argv.remove(output) + sys.argv.remove(output) if("--invert") in sys.argv: - file=sys.argv[sys.argv.index("--invert")+1] + if (len(sys.argv)<=sys.argv.index("--invert")+1): + print "file.po is not specified!\n" + printUsage() + exit(1) + file=sys.argv[sys.argv.index("--invert")+1] gtf=GTFile(file) res1=gtf.msgidDupes() if res1: @@ -360,18 +380,30 @@ if __name__=="__main__": sys.exit(1) res=str(gtf.invertedStrings()) elif("--empty") in sys.argv: - file=sys.argv[sys.argv.index("--empty")+1] + if (len(sys.argv)<=sys.argv.index("--empty")+1): + print "file.po is not specified!\n" + printUsage() + exit(1) + file=sys.argv[sys.argv.index("--empty")+1] gtf=GTFile(file) res=str(gtf.emptyMsgStrings()) elif("--master") in sys.argv: - loc=sys.argv.index("--master")+1 + if (len(sys.argv)<=sys.argv.index("--master")+1): + print "file.po is not specified!\n" + printUsage() + exit(1) + loc=sys.argv.index("--master")+1 gtfs=[] for file in sys.argv[loc:]: gtfs.append(GTFile(file)) master=GTMaster(gtfs) res=str(master) elif("--append") in sys.argv: - file=sys.argv[sys.argv.index("--append")+1] + if (len(sys.argv)<=sys.argv.index("--append")+2): + print "file.po and/or ref.po are not specified!\n" + printUsage() + exit(1) + file=sys.argv[sys.argv.index("--append")+1] file2=sys.argv[sys.argv.index("--append")+2] gtf=GTFile(file) gtf2=GTFile(file2) @@ -379,17 +411,7 @@ if __name__=="__main__": res=str(gtf) else: #print "Not implemented: "+str(sys.argv) - print "\ -Usage: ", str(sys.argv[0])," [OPTION] file.po [ref.po]\n\ -This program can be used to alter .po files in ways no sane mind would think about.\n\ - -o result will be written to FILE\n\ - --invert invert a po file by switching msgid and msgstr\n\ - --master join any number of files in a master-formatted catalog\n\ - --empty empty the contents of the .po file, creating a .pot\n\ - --append append entries from ref.po that don't exist in file.po\n\ -\n\ -Note: It is just a replacement of msghack for backward support.\n\ -" + printUsage() sys.exit(1) if not output: print res