368 lines
12 KiB
RPMSpec
368 lines
12 KiB
RPMSpec
#
|
|
# spec file for package gettext-runtime
|
|
#
|
|
# Copyright (c) 2023 SUSE LLC
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
%define pacname gettext
|
|
%bcond_with mini
|
|
|
|
Name: gettext-runtime
|
|
Version: 0.21.1
|
|
Release: 0
|
|
BuildRequires: gcc-c++
|
|
BuildRequires: libtool
|
|
# To get an updated linkdupes.sh (in case there are new dupes), temproarily enable:
|
|
#BuildRequires: fdupes
|
|
%if %{without mini}
|
|
BuildRequires: automake
|
|
BuildRequires: glib2-devel
|
|
BuildRequires: libxml2-devel
|
|
BuildRequires: perl-libintl-perl
|
|
BuildRequires: tcl
|
|
# bug437293
|
|
%ifarch ppc64
|
|
Obsoletes: gettext-64bit
|
|
%endif
|
|
#
|
|
#Rename done for openSUSE 11.0
|
|
Provides: gettext = %{version}
|
|
Obsoletes: gettext < %{version}
|
|
Conflicts: gettext-runtime-mini
|
|
Conflicts: gettext-tools-mini
|
|
%else
|
|
# to allow a prjconf preference which to take per build
|
|
Provides: gettext-runtime = %{version}
|
|
# rpm-build requires gettext-tools, but we will only just be building it
|
|
#!BuildIgnore: gettext-tools
|
|
%endif
|
|
Summary: Tools for Native Language Support (NLS)
|
|
License: GPL-3.0-or-later AND LGPL-2.0-or-later
|
|
Group: Development/Tools/Other
|
|
URL: https://www.gnu.org/software/gettext/
|
|
Source0: https://ftp.gnu.org/gnu/gettext/gettext-%{version}.tar.xz
|
|
Source1: https://ftp.gnu.org/gnu/gettext/gettext-%{version}.tar.xz.sig
|
|
Source2: suse-start-po-mode.el
|
|
Source3: gettext-linkdupes.sh
|
|
Source4: baselibs.conf
|
|
Source5: gettext-rpmlintrc
|
|
Source6: gettext-runtime.keyring
|
|
Patch0: gettext-0.12.1-sigfpe.patch
|
|
Patch1: gettext-0.19.3-fix-bashisms.patch
|
|
Patch2: gettext-0.12.1-gettextize.patch
|
|
Patch3: use-acinit-for-libtextstyle.patch
|
|
Patch4: gettext-po-mode.diff
|
|
Patch5: gettext-initialize_vars.patch
|
|
# PATCH-FIX-OPENSUSE gettext-dont-test-gnulib.patch -- coolo@suse.de
|
|
Patch6: gettext-dont-test-gnulib.patch
|
|
Patch7: gettext-0.21-jdk17.patch
|
|
# PATCH-FIX-UPSTREAM boo#941629 -- pth@suse.com
|
|
Patch11: boo941629-unnessary-rpath-on-standard-path.patch
|
|
# PATCH-FIX-SUSE Bug boo#1106843
|
|
Patch13: reproducible.patch
|
|
# PATCH-FEATURE bsc#1165138
|
|
Patch14: 0001-msgcat-Add-feature-to-use-the-newest-po-file.patch
|
|
Patch15: 0002-msgcat-Merge-headers-when-use-first.patch
|
|
|
|
%description
|
|
This package contains the intl library as well as tools that ease the
|
|
creation and maintenance of message catalogs. It allows you to extract
|
|
strings from source code. The supplied Emacs mode (po-mode.el) helps
|
|
editing these catalogs (called PO files, for portable object) and
|
|
adding translations. A special compiler turns these PO files into
|
|
binary catalogs.
|
|
|
|
%package -n gettext-tools%{?with_mini:-mini}
|
|
Summary: Tools for Native Language Support (NLS)
|
|
License: LGPL-2.1-or-later
|
|
Group: Development/Tools/Other
|
|
Requires: %{name} = %{version}
|
|
Requires: xz
|
|
%if %{without mini}
|
|
Requires(post): info
|
|
Requires(preun):info
|
|
%endif
|
|
Provides: gettext-devel = %{version}
|
|
%if %{without mini}
|
|
# bug437293
|
|
%ifarch ppc64
|
|
Obsoletes: gettext-devel-64bit
|
|
%endif
|
|
#
|
|
Obsoletes: gettext-devel < %{version}
|
|
Conflicts: gettext-runtime-mini
|
|
Conflicts: gettext-tools-mini
|
|
%else
|
|
# to allow a prjconf preference which to take per build
|
|
Provides: gettext-tools = %{version}
|
|
%endif
|
|
# Several tools use bison-runtime text domain:
|
|
%if 0%{?suse_version}
|
|
Recommends: bison-lang
|
|
%endif
|
|
|
|
%description -n gettext-tools%{?with_mini:-mini}
|
|
This package contains the `intl' library as well as tools that ease the
|
|
creation and maintenance of message catalogs. With it you can extract
|
|
strings from source code. The supplied Emacs mode (po-mode.el) will aid
|
|
in editing these catalogs (called PO files, for portable object) and
|
|
add translations. A special compiler will turn these PO files into
|
|
binary catalogs.
|
|
|
|
%package tools-doc
|
|
Summary: HTML documentation and examples for gettext-runtime
|
|
License: GPL-3.0-or-later AND LGPL-2.0-or-later
|
|
Group: Documentation/HTML
|
|
BuildArch: noarch
|
|
|
|
%description tools-doc
|
|
This subpackage contains the HTML version of the gettext documentation
|
|
as well as project examples.
|
|
|
|
%if %{without mini}
|
|
%package -n libtextstyle0
|
|
Summary: Provides textstyling for console output
|
|
License: LGPL-2.1-or-later
|
|
Group: Development/Tools/Other
|
|
|
|
%description -n libtextstyle0
|
|
GNU libtextstyle provides an easy way to add styling to programs that produce output to a console or terminal emulator window.
|
|
It does this in a way that allows the end user to customize the styling using the industry standard, namely Cascading Style Sheets (CSS).
|
|
|
|
%package -n libtextstyle-devel
|
|
Summary: Devel package for libtextstyle
|
|
License: LGPL-2.1-or-later
|
|
Group: Development/Tools/Other
|
|
Requires: libtextstyle0 = %{version}
|
|
|
|
%description -n libtextstyle-devel
|
|
This package provides headers and static libraries for libtextstyle
|
|
%endif
|
|
|
|
%prep
|
|
%setup -q -n %{pacname}-%{version}
|
|
%patch0
|
|
%patch1 -p1
|
|
%patch2
|
|
%patch3 -p1
|
|
%patch4
|
|
%patch5
|
|
%patch6 -p1
|
|
%patch7 -p1
|
|
%patch11 -p1
|
|
%patch13 -p1
|
|
%patch14 -p1
|
|
%patch15 -p1
|
|
|
|
%build
|
|
%define _lto_cflags %{nil}
|
|
# expect a couple "You should update your `aclocal.m4' by running aclocal."
|
|
autoreconf -fiv
|
|
export CFLAGS="%{optflags} -pipe -W -Wall -Dgcc_is_lint"
|
|
export CXXFLAGS="$CFLAGS -Dgcc_is_lint"
|
|
export LDFLAGS="-lm"
|
|
%configure --disable-static $OPTS
|
|
%if %{with mini}
|
|
# Link statically to libtextstyle from libgettextlib.so
|
|
export CFLAGS="${CFLAGS} -fPIC"
|
|
export CXXFLAGS="${CXXFLAGS} -fPIC"
|
|
(cd libtextstyle; %configure --enable-static --disable-shared ${OPTS})
|
|
%endif
|
|
make %{?_smp_mflags} GMSGFMT=../src/msgfmt V=1
|
|
# use texinfo.tex supplied by the system (texinfo)
|
|
# make -C gettext-tools/doc gettext.pdf
|
|
|
|
%install
|
|
%define my_docdir %{_defaultdocdir}/%{name}
|
|
export LC_CTYPE=ISO-8859-15
|
|
%make_install docdir=%{my_docdir}
|
|
cp -pr AUTHORS NEWS README* %{buildroot}/%{my_docdir}
|
|
mkdir -p %{buildroot}/usr/share/emacs/site-lisp
|
|
install -m 644 %SOURCE2 %{buildroot}/usr/share/emacs/site-lisp
|
|
install -m 644 gettext-tools/emacs/po-compat.el %{buildroot}/usr/share/emacs/site-lisp
|
|
install -m 644 gettext-tools/emacs/po-mode.el %{buildroot}/usr/share/emacs/site-lisp
|
|
install -m 644 gettext-tools/emacs/start-po.el %{buildroot}/usr/share/emacs/site-lisp
|
|
#make -C gettext-tools/doc docdir=%%{buildroot}/%%{my_docdir} install-pdf
|
|
if [ -e %{buildroot}/%{_libdir}/preloadable_libintl.so ];then
|
|
chmod 755 %{buildroot}/%{_libdir}/preloadable_libintl.so
|
|
fi
|
|
# fix rpmlint invalid-lc-messages-dir:
|
|
rm -rf %{buildroot}/%_datadir/locale/en@{bold,}quot
|
|
%{find_lang} gettext-tools
|
|
%{find_lang} gettext-runtime
|
|
#remove unwanted stuff
|
|
rm -f %{buildroot}/usr/share/doc/packages/gettext/README.{mingw,vms,woe32}
|
|
rm -f %_datadir/%name/gettext.jar
|
|
rm -f %{buildroot}/%_libdir/libtextstyle.la
|
|
%if %{with mini}
|
|
rm -f %{buildroot}/usr/include/textstyle.h
|
|
rm -rf %{buildroot}/usr/include/textstyle
|
|
rm -rf %{buildroot}/usr/share/doc/packages/gettext-runtime-mini/libtextstyle_*.html
|
|
rm -f %{buildroot}/%_libdir/libtextstyle.a
|
|
rm -f %{buildroot}/%{_infodir}/libtextstyle.info
|
|
%endif
|
|
#find %%{buildroot} -maxdepth 2 -name '*html' -delete
|
|
# hardlink the dupes in the documentation:
|
|
cd %{buildroot}/%{my_docdir}/examples
|
|
sh %{SOURCE3}
|
|
# moved to gettext-java and gettext-csharp:
|
|
rm -rf *csharp* *java* ../javadoc* ../csharpdoc*
|
|
rm -f %{buildroot}%{_defaultdocdir}/%name/README.woe32
|
|
rm -f %{buildroot}%{_infodir}/dir
|
|
cd %{buildroot}/%{_mandir}/man3
|
|
echo ".so man3/dngettext.3" > dcngettext.3
|
|
echo ".so man3/dgettext.3" > dcgettext.3
|
|
|
|
%if %{without mini}
|
|
%check
|
|
# s390s fails this test,
|
|
# Starting test_recursive_lock ...test-lock: pthread_mutex_lock.c:66: __pthread_mutex_lock: Assertion `mutex->__data.__owner == 0' failed.
|
|
|
|
# These fails randomly, remove them from Makefile
|
|
sed -i -e 's/test-areadlink\$(EXEEXT) //g' \
|
|
-e 's/test-readlink\$(EXEEXT) //g' \
|
|
gettext-tools/gnulib-tests/Makefile
|
|
|
|
make check || {
|
|
%ifarch s390x
|
|
echo "got this during mbuild testing on s390x (on both times which make check ran):"
|
|
echo "Starting test_recursive_lock ...test-lock: pthread_mutex_lock.c:66: __pthread_mutex_lock: Assertion mutex->__data.__owner == 0 failed."
|
|
echo "s390x needs kernel/glibc/gcc fix, but let it continue bootstrap for now!"
|
|
%else
|
|
echo "make check failed, check it!"
|
|
exit 5
|
|
%endif
|
|
}
|
|
%endif
|
|
|
|
%post -p /sbin/ldconfig
|
|
|
|
%postun -p /sbin/ldconfig
|
|
|
|
%post -n gettext-tools%{?with_mini:-mini}
|
|
%install_info --info-dir=%{_infodir} %{_infodir}/gettext.info.gz
|
|
%install_info --info-dir=%{_infodir} %{_infodir}/autosprintf.info.gz
|
|
|
|
%preun -n gettext-tools%{?with_mini:-mini}
|
|
%install_info_delete --info-dir=%{_infodir} %{_infodir}/gettext.info.gz
|
|
%install_info_delete --info-dir=%{_infodir} %{_infodir}/autosprintf.info.gz
|
|
|
|
%if %{without mini}
|
|
%post -n libtextstyle0 -p /sbin/ldconfig
|
|
%postun -n libtextstyle0 -p /sbin/ldconfig
|
|
%endif
|
|
|
|
%files -f gettext-runtime.lang
|
|
%defattr(-,root,root)
|
|
%license COPYING
|
|
%dir %_datadir/gettext
|
|
%doc %dir %_docdir/%name/
|
|
%doc %_docdir/%name/gettext.1.html
|
|
%doc %_docdir/%name/ngettext.1.html
|
|
%doc %_docdir/%name/envsubst.1.html
|
|
%doc %_docdir/%name/*.3.html
|
|
%doc %_docdir/%name/AUTHORS
|
|
%doc %_docdir/%name/NEWS
|
|
%doc %_docdir/%name/README
|
|
%doc %_docdir/%name/FAQ.html
|
|
%_bindir/gettext
|
|
%_bindir/ngettext
|
|
%_bindir/envsubst
|
|
%_bindir/gettext.sh
|
|
%_bindir/msgfmt
|
|
%_libdir/libgettextlib-*.so
|
|
%_libdir/libgettextsrc-*.so
|
|
%_libdir/libasprintf.so.*
|
|
%doc %_mandir/man1/gettext.1.gz
|
|
%doc %_mandir/man1/ngettext.1.gz
|
|
%doc %_mandir/man1/envsubst.1.gz
|
|
%doc %_mandir/man1/msgfmt.1.gz
|
|
%doc %_mandir/man3/*
|
|
%_datadir/gettext/ABOUT-NLS
|
|
%dir %_datadir/emacs
|
|
%dir %_datadir/emacs/site-lisp
|
|
%_datadir/emacs/site-lisp/po-compat.*
|
|
%_datadir/emacs/site-lisp/po-mode.*
|
|
%_datadir/emacs/site-lisp/start-po.*
|
|
%_datadir/emacs/site-lisp/suse-start-po-mode.el
|
|
|
|
%files -n gettext-tools%{?with_mini:-mini} -f gettext-tools.lang
|
|
%defattr(-,root,root)
|
|
%_bindir/msg[a-eg-u]*
|
|
%_bindir/msgfilter
|
|
%_bindir/xgettext
|
|
%_bindir/gettextize
|
|
%_bindir/autopoint
|
|
%_bindir/recode-sr-latin
|
|
%doc %_mandir/man1/msg[a-eg-u]*.1.gz
|
|
%doc %_mandir/man1/msgfilter.1.gz
|
|
%doc %_mandir/man1/xgettext.1.gz
|
|
%doc %_mandir/man1/gettextize.1.gz
|
|
%doc %_mandir/man1/autopoint.1.gz
|
|
%doc %_mandir/man1/recode-sr-latin.1.gz
|
|
%doc %_infodir/gettext.info*
|
|
%doc %_infodir/autosprintf.info*
|
|
%_includedir/gettext-po.h
|
|
%_includedir/autosprintf.h
|
|
%_libdir/libasprintf.*a
|
|
%_libdir/libasprintf.so
|
|
%_libdir/libgettextlib.*
|
|
%_libdir/libgettextsrc.*
|
|
%_libdir/libgettextpo*
|
|
%_libdir/preloadable_libintl.so
|
|
%_libdir/gettext
|
|
%_datadir/%pacname/config.rpath
|
|
%_datadir/%pacname/po
|
|
%_datadir/%pacname/projects
|
|
%_datadir/%pacname/gettext.h
|
|
%_datadir/%pacname/msgunfmt.tcl
|
|
%_datadir/%pacname/javaversion.class
|
|
%_datadir/%pacname/styles
|
|
%_datadir/%pacname/archive.dir.tar.xz
|
|
%_datadir/aclocal
|
|
%dir %{_datadir}/%{pacname}-%{version}
|
|
%{_datadir}/%{pacname}-%{version}/its
|
|
|
|
%files tools-doc
|
|
%defattr(-,root,root)
|
|
%doc %dir %_docdir/%name/
|
|
%doc %_docdir/%name/examples/
|
|
%doc %_docdir/%name/auto*.html
|
|
%doc %_docdir/%name/gettext_*.html
|
|
%doc %_docdir/%name/gettextize*.html
|
|
%doc %_docdir/%name/msg*.html
|
|
%doc %_docdir/%name/tutorial*.html
|
|
%doc %_docdir/%name/xgettext*.html
|
|
%doc %_docdir/%name/recode-sr-latin.1.html
|
|
|
|
%if %{without mini}
|
|
%files -n libtextstyle0
|
|
%defattr(-,root,root)
|
|
%_libdir/libtextstyle.so.*
|
|
|
|
%files -n libtextstyle-devel
|
|
%defattr(-,root,root)
|
|
%dir %_includedir/textstyle
|
|
%_includedir/textstyle.h
|
|
%_includedir/textstyle/stdbool.h
|
|
%_includedir/textstyle/version.h
|
|
%_includedir/textstyle/woe32dll.h
|
|
%_libdir/libtextstyle.so
|
|
%doc %_docdir/gettext-runtime%{?with_mini:-mini}/libtextstyle*.html
|
|
%doc %_infodir/libtextstyle.info.gz
|
|
%endif
|
|
|
|
%changelog
|