msghack and rpath fixed

This commit is contained in:
Ding-Yi Chen 2008-08-25 00:04:09 +00:00
parent 8aec675b91
commit 19de18faa5
4 changed files with 182 additions and 26 deletions

109
gettext-0.17-rpathFix.patch Normal file
View File

@ -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

View File

@ -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 <dchen at redhat dot com> - 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 <petersen@redhat.com> - 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 <petersen@redhat.com> - 0.16.1-12

1
import.log Normal file
View File

@ -0,0 +1 @@
gettext-0_17-6_fc9:HEAD:gettext-0.17-6.fc9.src.rpm:1219621503

View File

@ -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