# Tests by default. No tests: rpmbuild -ba --define 'dotests 0' gettext*.spec %{!?dotests: %define dotests 1} Summary: GNU libraries and utilities for producing multi-lingual messages. Name: gettext Version: 0.19.8.1 Release: 5 License: GPLv3 and LGPLv2+ Group: Development/Tools URL: http://www.gnu.org/software/%{name}/ Source0: http://ftp.gnu.org/gnu/gettext/gettext-%{version}.tar.xz Source1: libintl.so.1-aix32 Source2: libintl.so.1-aix64 Source3: libgettextlib-0.19.7.so-aix32 Source4: libgettextlib-0.19.7.so-aix64 Source5: libgettextsrc-0.19.7.so-aix32 Source6: libgettextsrc-0.19.7.so-aix64 Patch0: %{name}-0.19.7-aixconf.patch # Below patch is needed because packages like sudo_ids requires /usr/lib first in the LIBPATH # And AIX has it's own libiconv in /usr/lib which conflicts with /opt/freeware/lib/libiconv.a Patch1: gettext-hardcode-libiconv-fix.patch Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root Requires: libiconv >= 1.14 Requires: ncurses >= 6.1-2 Requires: libxml2 >= 2.9.7 Requires: glib2 >= 2.56.1-2 Requires: libunistring >= 0.9.9-2 %description The GNU gettext package provides a set of tools and documentation for producing multi-lingual messages in programs. Tools include a set of conventions about how programs should be written to support message catalogs, a directory and file naming organization for the message catalogs, a runtime library which supports the retrieval of translated messages, and stand-alone programs for handling the translatable and the already translated strings. Gettext provides an easy to use library and tools for creating, using, and modifying natural language catalogs and is a powerful and simple method for internationalizing programs. The library is available as 32-bit and 64-bit. %package devel Summary: Development files for %{name} Group: Development/Tools License: LGPLv2+ Requires: %{name} = %{version}-%{release} %description devel This package contains all development related files necessary for developing or compiling applications/libraries that needs internationalization capability. You also need this package if you want to add gettext support for your project. %prep export PATH=/opt/freeware/bin:$PATH %setup -q %patch0 -p1 -b .aixconf %patch1 -p1 -b .hardcode rm -rf /tmp/%{name}-%{version}-32bit cp -pr . /tmp/%{name}-%{version}-32bit rm -fr * mv /tmp/%{name}-%{version}-32bit 32bit cp -pr 32bit 64bit %build export RM="rm -f" # setup environment for 32-bit and 64-bit builds export AR="/usr/bin/ar -X32_64" export NM="/usr/bin/nm -X32_64" export CC="/usr/vac/bin/xlc_r" export CXX="/usr/vacpp/bin/xlC_r" # first build the 64-bit version (-q64 for xlc, -maix64 for gcc) cd 64bit export OBJECT_MODE=64 export CFLAGS="-q64 -qlanglv=extc99 -O2 -I/opt/freeware/include" export CXXFLAGS="-q64 -O2 -I/opt/freeware/include" export LDFLAGS="-L/opt/freeware/lib64 -L/opt/freeware/lib -Wl,-blibpath:/opt/freeware/lib64:/opt/freeware/lib:/usr/lib" ./configure \ --prefix=%{_prefix} \ --infodir=%{_infodir} \ --libdir=%{_libdir}64 \ --mandir=%{_mandir} \ --enable-shared --disable-static --with-included-gettext \ --disable-libasprintf \ --disable-openmp \ --with-libiconv-prefix=/opt/freeware make %{?_smp_mflags} if [ "%{dotests}" == 1 ] then (gmake -k check || true) fi # now build the 32-bit version cd ../32bit export OBJECT_MODE=32 export CFLAGS="-qlanglv=extc99 -O2 -D_LARGE_FILES -I/opt/freeware/include" export CXXFLAGS="-O2 -D_LARGE_FILES -I/opt/freeware/include" export LDFLAGS="-L/opt/freeware/lib -Wl,-blibpath:/opt/freeware/lib:/usr/lib" ./configure \ --prefix=%{_prefix} \ --infodir=%{_infodir} \ --libdir=%{_libdir} \ --mandir=%{_mandir} \ --enable-shared --disable-static --with-included-gettext \ --disable-libasprintf \ --disable-openmp \ --with-libiconv-prefix=/opt/freeware make %{?_smp_mflags} if [ "%{dotests}" == 1 ] then (gmake -k check || true) fi %install export RM="/usr/bin/rm -f" [ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT} #Install on 64bit mode export OBJECT_MODE=64 export LDFLAGS="-L/opt/freeware/lib64 -L/opt/freeware/lib -Wl,-blibpath:/opt/freeware/lib64:/opt/freeware/lib:/usr/lib" cd 64bit make DESTDIR=${RPM_BUILD_ROOT} install /usr/bin/strip ${RPM_BUILD_ROOT}%{_bindir}/* || : ( cd ${RPM_BUILD_ROOT}%{_prefix}/bin for fic in $(ls -1| grep -v -e _32 -e _64) do mv $fic "$fic"_64 done ) #Install on 32bit mode export OBJECT_MODE=32 export LDFLAGS="-L/opt/freeware/lib -Wl,-blibpath:/opt/freeware/lib:/usr/lib" cd ../32bit make DESTDIR=${RPM_BUILD_ROOT} install /usr/bin/strip ${RPM_BUILD_ROOT}%{_bindir}/* || : rm -f ${RPM_BUILD_ROOT}%{_infodir}/dir gzip --best ${RPM_BUILD_ROOT}%{_infodir}/*info* ( cd ${RPM_BUILD_ROOT}/%{_prefix}/bin for fic in $(ls -1| grep -v -e _32 -e _64) do mv $fic "$fic"_32 ln -sf "$fic"_64 $fic done ) # Add 64bit shared libraries inside 32bit library archives ( cd ${RPM_BUILD_ROOT}%{_libdir}64 for i in libintl libgettextlib-%{version} libgettextpo libgettextsrc-%{version} do /usr/bin/ar -X64 -x ${i}.a done /usr/bin/ar -X64 -q ${RPM_BUILD_ROOT}%{_libdir}/libintl.a libintl.so.8 /usr/bin/ar -X64 -q ${RPM_BUILD_ROOT}%{_libdir}/libgettextlib-%{version}.a libgettextlib-%{version}.so /usr/bin/ar -X64 -q ${RPM_BUILD_ROOT}%{_libdir}/libgettextpo.a libgettextpo.so.0 /usr/bin/ar -X64 -q ${RPM_BUILD_ROOT}%{_libdir}/libgettextsrc-%{version}.a libgettextsrc-%{version}.so ) #libintl 32bit cp %{SOURCE1} libintl.so.1 /usr/bin/strip -X32 -e libintl.so.1 /usr/bin/ar -X32 -q ${RPM_BUILD_ROOT}%{_libdir}/libintl.a libintl.so.1 #libintl 64bit cp %{SOURCE2} libintl.so.1 /usr/bin/strip -X64 -e libintl.so.1 /usr/bin/ar -X64 -q ${RPM_BUILD_ROOT}%{_libdir}/libintl.a libintl.so.1 slibclean /usr/bin/ar -X64 -q ${RPM_BUILD_ROOT}%{_libdir}64/libintl.a libintl.so.1 #libgettextlib 32bit cp %{SOURCE3} libgettextlib-0.19.7.so /usr/bin/strip -X32 -e libgettextlib-0.19.7.so /usr/bin/ar -X32 -q ${RPM_BUILD_ROOT}%{_libdir}/libgettextlib-0.19.8.1.a libgettextlib-0.19.7.so #libgettextlib 64bit cp %{SOURCE4} libgettextlib-0.19.7.so /usr/bin/strip -X64 -e libgettextlib-0.19.7.so /usr/bin/ar -X64 -q ${RPM_BUILD_ROOT}%{_libdir}/libgettextlib-0.19.8.1.a libgettextlib-0.19.7.so /usr/bin/ar -X64 -q ${RPM_BUILD_ROOT}%{_libdir}64/libgettextlib-0.19.8.1.a libgettextlib-0.19.7.so #libgettextsrc 32bit cp %{SOURCE5} libgettextsrc-0.19.7.so /usr/bin/strip -X32 -e libgettextsrc-0.19.7.so /usr/bin/ar -X32 -q ${RPM_BUILD_ROOT}%{_libdir}/libgettextsrc-0.19.8.1.a libgettextsrc-0.19.7.so #libgettextsrc 64bit cp %{SOURCE6} libgettextsrc-0.19.7.so /usr/bin/strip -X64 -e libgettextsrc-0.19.7.so /usr/bin/ar -X64 -q ${RPM_BUILD_ROOT}%{_libdir}/libgettextsrc-0.19.8.1.a libgettextsrc-0.19.7.so /usr/bin/ar -X64 -q ${RPM_BUILD_ROOT}%{_libdir}64/libgettextsrc-0.19.8.1.a libgettextsrc-0.19.7.so ( cd ${RPM_BUILD_ROOT} for dir in bin include lib lib64 do mkdir -p usr/${dir} cd usr/${dir} ln -sf ../..%{_prefix}/${dir}/* . cd - done ) %post /sbin/install-info %{_infodir}/gettext.info.gz %{_infodir}/dir || : %preun if [ "$1" = 0 ]; then /sbin/install-info --delete %{_infodir}/gettext.info.gz %{_infodir}/dir || : fi %pre if test -e %{_libdir}/libintl.a.savgettext; then rm -f %{_libdir}/libintl.a.savgettext fi %clean [ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT} %files %defattr(-,root,system) %doc 32bit/gettext-runtime/ABOUT-NLS 32bit/AUTHORS 32bit/gettext-runtime/BUGS %doc 32bit/COPYING 32bit/gettext-tools/misc/DISCLAIM 32bit/README %doc 32bit/NEWS 32bit/THANKS %doc 32bit/gettext-runtime/man/*.1.html %doc 32bit/gettext-runtime/intl/COPYING* %{_bindir}/[emnrx]* %{_bindir}/gettext %{_bindir}/gettext_64 %{_bindir}/gettext_32 %{_bindir}/gettext.sh* %{_libdir}/charset.alias %{_libdir}/libintl.a %{_libdir}/libgettextlib*.a %{_libdir}/libgettextpo.a %{_libdir}/libgettextsrc*.a %{_libdir}/%{name} %{_libdir}64/charset.alias %{_libdir}64/libintl.a %{_libdir}64/libgettextlib*.a %{_libdir}64/libgettextpo.a %{_libdir}64/libgettextsrc*.a %{_libdir}64/%{name} %{_infodir}/gettext* %{_mandir}/man1/[emnrx]* %{_mandir}/man1/gettext.1 %{_datadir}/locale/*/LC_MESSAGES/* /usr/bin/[emnrx]* /usr/bin/gettext /usr/bin/gettext_64 /usr/bin/gettext_32 /usr/bin/gettext.sh* /usr/lib/*.a /usr/lib64/*.a %files devel %defattr(-,root,system,-) %doc 32bit/gettext-runtime/man/*.3.html 32bit/ChangeLog %doc 32bit/gettext-runtime/intl-java/javadoc* %{_bindir}/autopoint* %{_bindir}/gettextize* %{_includedir}/* %{_mandir}/man1/autopoint.1 %{_mandir}/man1/gettextize.1 %{_mandir}/man3/* %{_datadir}/aclocal/* %{_datadir}/%{name} /usr/bin/autopoint* /usr/bin/gettextize* /usr/include/* %changelog * Tue Jan 14 2020 Ayappan P - 0.19.8.1-5 - Hardcode GNU libiconv in library search path * Wed Nov 19 2019 Ayappan P - 0.19.8.1-4 - Link with GNU libiconv and remove .la files * Wed Nov 21 2018 Ayappan P 0.19.8.1-3 - Include the .la files needed for other packages build * Fri Nov 02 2018 Ayappan P 0.19.8.1-2 - Fix the overwriting of libintl.a by older version 0.19.7 * Tue Jun 20 2017 Reshma V Kumar 0.19.8.1-1 - Update to version 0.19.8.1 * Mon May 30 2016 Ayappan P 0.19.7-1 - Update to version 0.19.7 * Wed Sep 11 2013 Gerard Visiedo 0.18.3.1-1 - Update to version 0.18.3.1 * Mon Jan 30 2012 Patricia Cugny 0.17-7 - Add patch for building on aix 6.1 * Wed Aug 31 2011 Patricia Cugny 0.17-6 - Add installed libintl.so.1 to libintl.a lib * Wed May 04 2011 Patricia Cugny 0.17-5 - Add 64bits library and older libintl.so.1 * Mon Mar 14 2011 Gerard Visiedo 0.17-4 - Add patches for workaround bugs on aix6 * Thu Jan 27 2011 Jean-noel Cordenner 0.17-3 - add missing files * Thu Apr 23 2009 Jean-noel Cordenner 0.17-2 - add %pre and %postun scripts to preserve previous version of libintl.a * Wed Mar 18 2009 Jean-noel Cordenner 0.17 - port to AIX