From 372636f0056121bc542824e5e7edb7294f3894a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= Date: Mon, 2 Oct 2017 15:00:28 +0200 Subject: [PATCH] Add build-conditions disabling Emacs and Java support These macros allows to build libidn package without Emacs or Java support and that is handy when building libidn for modular Fedora when these dependencies are not necessary. By default the package is built with all features enabled. --- ...n-1.33-Allow-disabling-Emacs-support.patch | 61 +++++++++++++++++++ libidn.spec | 52 +++++++++++++++- 2 files changed, 110 insertions(+), 3 deletions(-) create mode 100644 libidn-1.33-Allow-disabling-Emacs-support.patch diff --git a/libidn-1.33-Allow-disabling-Emacs-support.patch b/libidn-1.33-Allow-disabling-Emacs-support.patch new file mode 100644 index 0000000..2c7189b --- /dev/null +++ b/libidn-1.33-Allow-disabling-Emacs-support.patch @@ -0,0 +1,61 @@ +From d011a6ae00ce9abd445d6d01ce9131a7b97ef5bc Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= +Date: Tue, 3 Oct 2017 10:04:18 +0200 +Subject: [PATCH] Allow disabling Emacs support +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This patch adds --disable-emacs configure option to disable installing +LISP scripts for Emacs. + +Signed-off-by: Petr Písař +--- + configure.ac | 9 ++++++++- + src/Makefile.am | 2 ++ + 2 files changed, 10 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 649ddcd..a6dc9ff 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -50,7 +50,6 @@ AM_MISSING_PROG(HELP2MAN, help2man, $missing_dir) + AM_GNU_GETTEXT(external) + AM_GNU_GETTEXT_VERSION(0.19.3) + AM_ICONV +-AM_PATH_LISPDIR + + if test "$am_cv_func_iconv" != "yes"; then + AC_MSG_NOTICE([ +@@ -100,6 +99,14 @@ AM_CONDITIONAL(JAVA, test "$enable_java" != "no") + AC_MSG_CHECKING([if implementation in Java should be built]) + AC_MSG_RESULT($enable_java) + ++# Check for Emacs ++AC_ARG_ENABLE(emacs, AC_HELP_STRING([--disable-emacs], [disable Emacs support]), ++ enable_emacs=$enableval, enable_emacs=yes) ++AM_CONDITIONAL(EMACS, test "$enable_emacs" != "no") ++if test "$enable_emacs" != "no"; then ++ AM_PATH_LISPDIR ++fi ++ + # Check for C# + if test -n "$HAVE_CSHARPCOMP"; then + gt_CSHARPEXEC +diff --git a/src/Makefile.am b/src/Makefile.am +index 6832c20..ec99560 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -20,7 +20,9 @@ AM_CFLAGS = $(WERROR_CFLAGS) $(WARN_CFLAGS) + AM_CPPFLAGS = -I$(top_srcdir)/lib -I../lib -I$(top_srcdir)/gl -I../gl + AM_CPPFLAGS += -DLOCALEDIR=\"$(localedir)\" + ++if EMACS + dist_lisp_DATA = punycode.el idna.el ++endif + + bin_PROGRAMS = idn + idn_SOURCES = idn.c +-- +2.13.6 + diff --git a/libidn.spec b/libidn.spec index f10c86e..df2d034 100644 --- a/libidn.spec +++ b/libidn.spec @@ -1,3 +1,8 @@ +# Build with Emacs support +%bcond_without libidn_enables_emacs +# Build with Java support +%bcond_without libidn_enables_java + Summary: Internationalized Domain Name support library Name: libidn Version: 1.33 @@ -5,17 +10,27 @@ Release: 4%{?dist} URL: http://www.gnu.org/software/libidn/ License: LGPLv2+ and GPLv3+ and GFDL Source0: http://ftp.gnu.org/gnu/libidn/libidn-%{version}.tar.gz +# Allow disabling Emacs support +Patch0: libidn-1.33-Allow-disabling-Emacs-support.patch Group: System Environment/Libraries -BuildRequires: pkgconfig gettext emacs +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: gettext-devel +%if %{with libidn_enables_emacs} +BuildRequires: emacs +%endif +BuildRequires: pkgconfig gettext Requires(post): /sbin/install-info /sbin/ldconfig Requires(preun): /sbin/install-info Requires(postun): /sbin/ldconfig # gnulib is a copylib, bundling is allowed Provides: bundled(gnulib) +%if %{with libidn_enables_emacs} # emacs-libidn merged with main package in 1.30-4 Obsoletes: emacs-libidn < 1.30-4 Provides: emacs-libidn < 1.30-4 Requires: emacs-filesystem >= %{_emacs_version} +%endif %description GNU Libidn is an implementation of the Stringprep, Punycode and @@ -33,6 +48,7 @@ Requires: pkgconfig This package includes header files and libraries necessary for developing programs which use the GNU libidn library. +%if %{with libidn_enables_java} %package java Summary: Java port of the GNU Libidn library BuildRequires: java-devel @@ -55,16 +71,23 @@ BuildArch: noarch %description javadoc This package contains javadoc for %{name}-java. +%endif %prep %setup -q +%patch0 -p1 +autoreconf -fi +# Prevent from regenerating sources by gengetopt because it's broken. +touch src/idn_cmd.c src/idn_cmd.h # Cleanup find . -name '*.jar' -print -delete find . -name '*.class' -print -delete +%if %{with libidn_enables_java} # Not available test dep %pom_remove_dep com.google.caliper:caliper java/pom.xml.in +%endif # Name directory sections consistently in the info file, #209491 sed -i '/^INFO-DIR-SECTION/{s/GNU Libraries/Libraries/;s/GNU utilities/Utilities/;}' doc/libidn.info @@ -73,7 +96,18 @@ iconv -f ISO-8859-1 -t UTF-8 doc/libidn.info > iconv.tmp mv iconv.tmp doc/libidn.info %build -%configure --disable-csharp --disable-static --with-lispdir=%{_emacs_sitelispdir}/%{name} --enable-java +%configure --disable-csharp --disable-static \ +%if %{with libidn_enables_emacs} + --enable-emacs \ + --with-lispdir=%{_emacs_sitelispdir}/%{name} \ +%else + --disable-emacs \ +%endif +%if %{with libidn_enables_java} + --enable-java +%else + --disable-java +%endif # remove RPATH hardcoding sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool @@ -87,7 +121,11 @@ export LD_LIBRARY_PATH=$(pwd)/lib/.libs make %{?_smp_mflags} -C tests check VALGRIND=env %install -make install DESTDIR=$RPM_BUILD_ROOT pkgconfigdir=%{_libdir}/pkgconfig libidn_jardir=%{_javadir} +make install DESTDIR=$RPM_BUILD_ROOT pkgconfigdir=%{_libdir}/pkgconfig \ +%if %{with libidn_enables_java} + libidn_jardir=%{_javadir} \ +%endif + ; # provide more examples make %{?_smp_mflags} -C examples distclean @@ -102,8 +140,11 @@ sed -i '/gnu compiler/d' $RPM_BUILD_ROOT%{_includedir}/idn-int.h rm -f $RPM_BUILD_ROOT%{_libdir}/*.la \ $RPM_BUILD_ROOT%{_datadir}/info/*.png +%if %{with libidn_enables_emacs} %{_emacs_bytecompile} $RPM_BUILD_ROOT%{_emacs_sitelispdir}/%{name}/*.el +%endif +%if %{with libidn_enables_java} # regenerate java documentation rm -rf doc/java/* %javadoc -source 1.6 -d doc/java $(find java/src/main/java -name "*.java") @@ -112,6 +153,7 @@ rm -rf $RPM_BUILD_ROOT%{_javadir}/libidn*.jar %mvn_artifact java/pom.xml java/libidn-%{version}.jar %mvn_file org.gnu.inet:libidn libidn %mvn_install -J doc/java +%endif %find_lang %{name} @@ -134,7 +176,9 @@ fi %{_mandir}/man1/idn.1* %{_libdir}/libidn.so.* %{_infodir}/%{name}.info.gz +%if %{with libidn_enables_emacs} %{_emacs_sitelispdir}/%{name} +%endif %files devel %doc doc/libidn.html examples @@ -143,11 +187,13 @@ fi %{_libdir}/pkgconfig/*.pc %{_mandir}/man3/* +%if %{with libidn_enables_java} %files java -f .mfiles %license COPYING* java/LICENSE-2.0.txt %files javadoc -f .mfiles-javadoc %license COPYING* java/LICENSE-2.0.txt +%endif %changelog * Thu Aug 03 2017 Fedora Release Engineering - 1.33-4