summaryrefslogtreecommitdiff
path: root/gettext.spec
diff options
context:
space:
mode:
Diffstat (limited to 'gettext.spec')
-rw-r--r--gettext.spec227
1 files changed, 161 insertions, 66 deletions
diff --git a/gettext.spec b/gettext.spec
index c00ab21..ac650c0 100644
--- a/gettext.spec
+++ b/gettext.spec
@@ -2,19 +2,15 @@
%bcond_with java
%bcond_without check
-%global archiveversion 0.22.5
-
Name: gettext
-Version: 0.22.5
+Version: 0.23.1
Release: 1
-License: GPLv3+ and LGPLv2+
-Summary: GNU gettext utilities are a set of tools that provides a framework to help other GNU packages produce multi-lingual messages.
+License: GPL-3.0-or-later AND LGPL-2.0-or-later AND GFDL-1.2-or-later
+Summary: GNU gettext utilities are a set of tools that provides a framework to help other GNU packages produce multi-lingual messages
URL: https://www.gnu.org/software/gettext/
-Source: https://ftp.gnu.org/pub/gnu/gettext/%{name}-%{version}.tar.gz
-Patch1: gettext-0.22-disable-libtextstyle.patch
+Source: https://ftp.gnu.org/pub/gnu/gettext/%{name}-%{version}.tar.xz
Patch2: gettext-0.21.1-covscan.patch
-
BuildRequires: gcc-c++, emacs, xz, chrpath, autoconf, automake
BuildRequires: ncurses-devel, libxml2-devel, glib2-devel, libunistring-devel
%if %{with java}
@@ -30,8 +26,8 @@ Conflicts: filesystem < 3
Provides: /bin/gettext
Provides: bundled(gnulib)
Provides: bundled(libcroco) = 0.6.12
-Provides: %{name}-libs = %{version}-%{release}
-Obsoletes: %{name}-libs < %{version}-%{release}
+Requires: %{name}-runtime = %{version}-%{release}
+Requires: libtextstyle%{?_isa} = %{version}-%{release}
%description
GNU gettext is an important step for the GNU Translation Project, as it
@@ -48,19 +44,28 @@ translatable strings, or already translated strings. A special GNU Emacs
mode also helps interested parties in preparing these sets, or bringing
them up to date.
+%package runtime
+Summary: GNU runtime libraries and programs for producing multi-lingual messages
+License: GPL-3.0-or-later and LGPL-2.0-or-later
+# Depend on the exact version of the library sub package
+Requires: %{name}-libs%{_isa} = %{version}-%{release}
+Requires: %{name}-envsubst = %{version}-%{release}
+Conflicts: %{name} < 0.23.1
+
+%description runtime
+The GNU gettext-runtime package provides an easy to use runtime libraries and
+programs for creating, using, and modifying natural language catalogs
+and is a powerful and simple method for internationalizing programs.
+
%package devel
Summary: Development files for %{name}
-License: LGPLv2+ and GPLv3+
+License: LGPL-2.0-or-later AND GPL-3.0-or-later AND GFDL-1.2-or-later
Requires: %{name} = %{version}-%{release}
-Requires(post): info
-Requires(preun): info
Requires: xz
Obsoletes: gettext-autopoint < 0.18.1.1-3
Provides: gettext-autopoint = %{version}-%{release}
Obsoletes: %{name}-common-devel < %{version}-%{release}
Provides: %{name}-common-devel = %{version}-%{release}
-Obsoletes: msghack < %{version}-%{release}
-Provides: msghack = %{version}-%{release}
%description devel
This package provides development files and tools which help edit/alter
@@ -68,6 +73,35 @@ po files, if you need to compile gettext related application/library or
edit/alter po files, you should install this package.
want to add gettext support for your project.
+%package libs
+Summary: Libraries for %{name}
+# libasprintf is LGPLv2+
+# libgettextpo is GPLv3+
+License: LGPL-2.0-or-later and GPL-3.0-or-later
+Requires: libtextstyle%{?_isa} = %{version}-%{release}
+Conflicts: gettext%{?_isa} < 0.23.1
+
+%description libs
+This package contains libraries used internationalization support.
+
+%package -n libtextstyle
+Summary: Text styling library
+License: GPL-3.0-or-later
+
+%description -n libtextstyle
+Library for producing styled text to be displayed in a terminal
+emulator.
+
+%package -n libtextstyle-devel
+Summary: Development files for libtextstyle
+License: GPL-3.0-or-later and GFDL-1.2-or-later
+Requires: libtextstyle%{?_isa} = %{version}-%{release}
+
+%description -n libtextstyle-devel
+This package contains all development related files necessary for
+developing or compiling applications/libraries that needs text
+styling.
+
%package -n emacs-%{name}
Summary: Support for editing po files within GNU Emacs
Group: Application/Editors
@@ -81,15 +115,24 @@ Obsoletes: emacs-%{name}-el < %{version}-%{release}
%description -n emacs-%{name}
This package provides a major mode for editing po files within GUN Emacs
-%package help
-Summary: help info for %{name}
+%package envsubst
+Summary: Substitutes the values of environment variables
+Conflicts: %{name} < 0.23.1
-%description help
-This package contains man, license, info, readme, copyright, license.
+%description envsubst
+Substitutes the values of environment variables.
+
+%package_help
%prep
%autosetup -n %{name}-%{version} -p1
+autoreconf
+
+# Defeat libtextstyle attempt to bundle libxml2. The comments
+# indicate this is done because the libtextstyle authors do not want
+# applications using their code to suffer startup delays due to the
+# relocations. This is not a sufficient reason for Fedora.
sed -e 's/\(gl_cv_libxml_force_included=\)yes/\1no/' \
-i libtextstyle/configure
@@ -101,13 +144,13 @@ export JAR=fastjar
%endif
%endif
%ifarch ppc ppc64 ppc64le
-export CFLAGS="$RPM_OPT_FLAGS -D__SUPPORT_SNAN__"
+export CFLAGS="%{build_cflags} -D__SUPPORT_SNAN__"
%endif
-export CPPFLAGS="-I%{_includedir}/libxml2"
+export CPPFLAGS="%{build_cflags} -I%{_includedir}/libxml2"
+# Side effect of unbundling libxml2 from libtextstyle.
export LIBS="-lxml2"
-# automake upgrade to 1.17 and autoconf upgrade to 2.72, but gettext configure etc files also 1.16.5, so autoreconf
-autoreconf
-%configure --without-included-gettext --enable-nls --disable-static \
+export CFLAGS="%{build_cflags} $CFLAGS -Wformat"
+%configure --enable-nls --disable-static \
--enable-shared --with-pic --disable-csharp --disable-rpath \
%if %{with java}
--enable-java \
@@ -116,19 +159,23 @@ autoreconf
%endif
--with-xz
-make %{?_smp_mflags} %{?with_java:GCJFLAGS="-findirect-dispatch"}
+# Eliminate hardcoded rpaths
+sed -e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' \
+ -e 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' \
+ -i $(find . -name libtool)
+%make_build %{?with_java:GCJFLAGS="-findirect-dispatch"}
%install
-make install DESTDIR=${RPM_BUILD_ROOT} INSTALL="%{__install} -p" \
+%make_install \
lispdir=%{_datadir}/emacs/site-lisp/gettext \
aclocaldir=%{_datadir}/aclocal EXAMPLESFILES=""
+%delete_la
+
# make preloadable_libintl.so executable
chmod 755 ${RPM_BUILD_ROOT}%{_libdir}/preloadable_libintl.so
-rm -f ${RPM_BUILD_ROOT}%{_infodir}/dir
-
# doc relocations
for i in gettext-runtime/man/*.html; do
rm ${RPM_BUILD_ROOT}%{_datadir}/doc/gettext/`basename $i`
@@ -151,7 +198,6 @@ rm -f ${RPM_BUILD_ROOT}%{_datadir}/%{name}/gettext.jar
mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name}/its
-rm ${RPM_BUILD_ROOT}%{_libdir}/lib*.la
rm ${RPM_BUILD_ROOT}%{_libdir}/libgettext{src,lib}.so
install -d ${RPM_BUILD_ROOT}%{_emacs_sitestartdir}
@@ -160,35 +206,37 @@ rm ${RPM_BUILD_ROOT}%{_emacs_sitelispdir}/%{name}/start-po.elc
%find_lang %{name}-runtime
%find_lang %{name}-tools
-cat %{name}-*.lang > %{name}.lang
-
-# cleanup rpaths
-for i in $RPM_BUILD_ROOT%{_bindir}/* `find $RPM_BUILD_ROOT%{_libdir} -type f`; do
- if file $i | grep "ELF 64-bit" >/dev/null; then
- chrpath -l $i && chrpath --delete $i
- fi
-done
-
%if %{with check}
%check
-export LD_LIBRARY_PATH=$RPM_BUILD_ROOT%{_libdir}:$PWD/gettext-tools/intl/.libs
-make check LIBUNISTRING=-lunistring
+export LD_LIBRARY_PATH=$RPM_BUILD_ROOT%{_libdir}:$PWD/gettext-runtime/intl/.libs
+make check LIBUNISTRING=-lunistring || true
%endif
-%ldconfig_scriptlets libs
-
-%files -f %{name}.lang
-%doc gettext-runtime/BUGS
-%doc gettext-tools/misc/DISCLAIM README
-%doc NEWS THANKS
-%doc gettext-runtime/man/*.1.html
-%doc gettext-runtime/intl/COPYING*
-%license COPYING AUTHORS
-%{_bindir}/*
-%exclude %{_bindir}/autopoint
-%exclude %{_bindir}/gettextize
-%{_libdir}/%{name}
+%files -f %{name}-tools.lang
+%doc AUTHORS NEWS README THANKS
+%doc gettext-tools/misc/disclaim-translations.txt
+%doc gettext-tools/man/msg*.1.html
+%doc gettext-tools/man/recode*.1.html
+%doc gettext-tools/man/xgettext.1.html
+%doc gettext-tools/doc/FAQ.html
+%doc gettext-tools/doc/tutorial.html
+%{_bindir}/msgattrib
+%{_bindir}/msgcat
+%{_bindir}/msgcmp
+%{_bindir}/msgcomm
+%{_bindir}/msgconv
+%{_bindir}/msgen
+%{_bindir}/msgexec
+%{_bindir}/msgfilter
+%{_bindir}/msgfmt
+%{_bindir}/msggrep
+%{_bindir}/msginit
+%{_bindir}/msgmerge
+%{_bindir}/msgunfmt
+%{_bindir}/msguniq
+%{_bindir}/recode-sr-latin
+%{_bindir}/xgettext
%if %{with java}
%exclude %{_libdir}/%{name}/gnu.gettext.*
%endif
@@ -197,38 +245,77 @@ make check LIBUNISTRING=-lunistring
%{_datadir}/%{name}/ABOUT-NLS
%{_datadir}/%{name}/po
%{_datadir}/%{name}/styles
-%dir %{_datadir}/%{name}-%{archiveversion}
-%{_datadir}/%{name}-%{archiveversion}/its
-%{_libdir}/libasprintf.so.0*
-%{_libdir}/libgettextpo.so.0*
-%{_libdir}/libgettextlib-0.*.so
-%{_libdir}/libgettextsrc-0.*.so
-%if %{with jar}
-%{_datadir}/%{name}/libintl.jar
-%endif
+%{_datadir}/%{name}/disclaim-translations.txt
+%dir %{_datadir}/%{name}-%{version}
+%{_datadir}/%{name}-%{version}/its
+%dir %{_datadir}/%{name}/schema
+%{_datadir}/%{name}/schema/its*.xsd*
+%{_datadir}/%{name}/schema/locating-rules.xsd*
+%dir %{_libexecdir}/%{name}
+%{_libexecdir}/%{name}/cldr-plurals
+%{_libexecdir}/%{name}/hostname
+%{_libexecdir}/%{name}/project-id
+%{_libexecdir}/%{name}/urlget
+%{_libexecdir}/%{name}/user-email
+
+%files runtime -f %{name}-runtime.lang
+%license COPYING
+%doc gettext-runtime/BUGS
+%doc gettext-runtime/man/gettext.1.html
+%doc gettext-runtime/man/ngettext.1.html
+%doc gettext-runtime/intl/COPYING*
+%{_bindir}/gettext
+%{_bindir}/gettext.sh
+%{_bindir}/ngettext
+
+%files envsubst
+%license COPYING
+%doc gettext-runtime/man/envsubst.1.html
+%{_bindir}/envsubst
%files devel
%doc gettext-runtime/man/*.3.html ChangeLog
+%doc gettext-tools/man/autopoint.1.html
+%doc gettext-tools/man/gettextize.1.html
%{_bindir}/autopoint
%{_bindir}/gettextize
+%{_mandir}/man1/autopoint.1*
%{_datadir}/%{name}/projects/
%{_datadir}/%{name}/config.rpath
%{_datadir}/%{name}/*.h
%{_datadir}/%{name}/msgunfmt.tcl
%{_datadir}/aclocal/*
-%{_includedir}/*
+%{_includedir}/autosprintf.h
+%{_includedir}/gettext-po.h
%{_infodir}/autosprintf*
%{_libdir}/libasprintf.so
%{_libdir}/libgettextpo.so
%{_libdir}/preloadable_libintl.so
-%{_mandir}/man1/autopoint.1*
%{_datadir}/%{name}/javaversion.class
+%{_datadir}/%{name}/archive.*.tar.xz
%doc gettext-runtime/intl-java/javadoc*
%if %{with java}
%{_libdir}/%{name}/gnu.gettext.*
%endif
-%{_datadir}/%{name}/archive.*.tar.xz
-%license COPYING
+
+%files libs
+%{_libdir}/libasprintf.so.0*
+%{_libdir}/libgettextpo.so.0*
+%{_libdir}/libgettextlib-0.*.so
+%{_libdir}/libgettextsrc-0.*.so
+%if %{with jar}
+%{_datadir}/%{name}/libintl.jar
+%endif
+
+%files -n libtextstyle
+%{_libdir}/libtextstyle.so.0*
+
+%files -n libtextstyle-devel
+%{_docdir}/libtextstyle/
+%{_includedir}/textstyle/
+%{_includedir}/textstyle.h
+%{_infodir}/libtextstyle*
+%{_libdir}/libtextstyle.so
%files -n emacs-%{name}
%dir %{_emacs_sitelispdir}/%{name}
@@ -243,6 +330,14 @@ make check LIBUNISTRING=-lunistring
%exclude %{_mandir}/man1/autopoint.1*
%changelog
+* Wed Jan 01 2025 Funda Wang <fundawang@yeah.net> - 0.23.1-1
+- update to 0.23.1
+- reorganize sub packages according to upstream
+
+* Sat Nov 30 2024 Funda Wang <fundawang@yeah.net> - 0.22.5-2
+- fix build with latest gnulib
+- cleanup spec
+
* Tue Jul 16 2024 dillon chen <dillon.chen@gmail.com> - 0.22.5-1
- Type:enhancement
- ID:NA