jsynacek pushed to compat-guile18 (epel7). "Make compat-package"

notifications at fedoraproject.org notifications at fedoraproject.org
Tue Apr 7 07:29:32 UTC 2015


>From de77fccde3835b9b2236de0e94d7c33df4f0fc01 Mon Sep 17 00:00:00 2001
From: Jan Synacek <jsynacek at redhat.com>
Date: Tue, 22 Jan 2013 15:34:37 +0100
Subject: Make compat-package


diff --git a/.gitignore b/.gitignore
index e69de29..b4c36ac 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/guile-1.8.8.tar.gz
diff --git a/compat-guile18.spec b/compat-guile18.spec
new file mode 100644
index 0000000..94b0839
--- /dev/null
+++ b/compat-guile18.spec
@@ -0,0 +1,204 @@
+%bcond_without emacs
+%global mver 1.8
+
+Summary: A GNU implementation of Scheme for application extensibility
+Name: compat-guile18
+Version: %{mver}.8
+Release: 5%{?dist}
+Source: ftp://ftp.gnu.org/pub/gnu/guile/guile-%{version}.tar.gz
+URL: http://www.gnu.org/software/guile/
+Patch1: guile-1.8.7-multilib.patch
+Patch2: guile-1.8.7-testsuite.patch
+Patch3: guile-1.8.8-deplibs.patch
+License: LGPLv2+
+Group: Development/Languages
+BuildRequires: libtool libtool-ltdl-devel gmp-devel readline-devel
+BuildRequires: gettext-devel
+%{?with_emacs:BuildRequires: emacs}
+Provides: guile = 5:%{version}-7
+Provides: guile%{?_isa} = 5:%{version}-7
+Obsoletes: guile < 5:%{version}-7
+Obsoletes: guile%{?_isa} < 5:%{version}-7
+
+%description
+GUILE (GNU's Ubiquitous Intelligent Language for Extension) is a library
+implementation of the Scheme programming language, written in C.  GUILE
+provides a machine-independent execution platform that can be linked in
+as a library during the building of extensible programs.
+
+Install the compat-guile18 package if you'd like to add extensibility to
+programs that you are developing.
+
+%package devel
+Summary: Libraries and header files for the GUILE extensibility library
+Group: Development/Libraries
+Requires: %{name}%{?_isa} = %{version}-%{release} gmp-devel
+Requires: pkgconfig
+Provides: guile-devel = 5:%{version}-7
+Provides: guile-devel%{?_isa} = 5:%{version}-7
+Obsoletes: guile-devel < 5:%{version}-7
+Obsoletes: guile-devel%{?_isa} < 5:%{version}-7
+
+%description devel
+The compat-guile18-devel package includes the libraries, header files, etc.,
+that you'll need to develop applications that are linked with the
+GUILE extensibility library.
+
+You need to install the compat-guile18-devel package if you want to develop
+applications that will be linked to GUILE.  You'll also need to install the
+compat-guile18 package.
+
+%prep
+%setup -q -n guile-%{version}
+
+%patch1 -p1 -b .multilib
+%patch2 -p1 -b .testsuite
+%patch3 -p1 -b .deplibs
+
+%build
+
+export LDFLAGS="-Wl,--as-needed"
+%configure --disable-static --disable-error-on-warning
+
+# Remove RPATH
+sed -i 's|" $sys_lib_dlsearch_path "|" $sys_lib_dlsearch_path %{_libdir} "|' \
+    {,guile-readline/}libtool
+
+make %{?_smp_mflags}
+
+%install
+make DESTDIR=$RPM_BUILD_ROOT install
+
+mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/guile/site
+
+rm -f ${RPM_BUILD_ROOT}%{_libdir}/libguile*.la
+
+# Necessary renaming and removing
+rm -rf ${RPM_BUILD_ROOT}%{_infodir}
+mv ${RPM_BUILD_ROOT}%{_bindir}/guile{,%{mver}}
+mv ${RPM_BUILD_ROOT}%{_bindir}/guile{,%{mver}}-tools
+mv ${RPM_BUILD_ROOT}%{_mandir}/man1/guile{,%{mver}}.1
+mv ${RPM_BUILD_ROOT}%{_bindir}/guile{,%{mver}}-config
+mv ${RPM_BUILD_ROOT}%{_bindir}/guile{,%{mver}}-snarf
+mv ${RPM_BUILD_ROOT}%{_datadir}/aclocal/guile{,%{mver}}.m4
+sed -i -e 's|/usr/bin/guile|/usr/bin/guile%{mver}|' \
+    ${RPM_BUILD_ROOT}%{_bindir}/guile%{mver}-config
+sed -i -e 's|guile-tools|guile%{mver}-tools|g' \
+    ${RPM_BUILD_ROOT}%{_bindir}/guile%{mver}-tools
+sed -i -e 's|guile-snarf|guile%{mver}-snarf|g' \
+    ${RPM_BUILD_ROOT}%{_bindir}/guile%{mver}-snarf
+
+ac=${RPM_BUILD_ROOT}%{_datadir}/aclocal/guile%{mver}.m4
+sed -i -e 's|,guile|,guile%{mver}|g' $ac
+sed -i -e 's|guile-tools|guile%{mver}-tools|g' $ac
+sed -i -e 's|guile-config|guile%{mver}-config|g' $ac
+sed -i -e 's|GUILE_PROGS|GUILE1_8_PROGS|g' $ac
+sed -i -e 's|GUILE_FLAGS|GUILE1_8_FLAGS|g' $ac
+sed -i -e 's|GUILE_SITE_DIR|GUILE1_8_SITE_DIR|g' $ac
+sed -i -e 's|GUILE_CHECK|GUILE1_8_CHECK|g' $ac
+sed -i -e 's|GUILE_MODULE_CHECK|GUILE1_8_MODULE_CHECK|g' $ac
+sed -i -e 's|GUILE_MODULE_AVAILABLE|GUILE1_8_MODULE_AVAILABLE|g' $ac
+sed -i -e 's|GUILE_MODULE_REQUIRED|GUILE1_8_MODULE_REQUIRED|g' $ac
+sed -i -e 's|GUILE_MODULE_EXPORTS|GUILE1_8_MODULE_EXPORTS|g' $ac
+sed -i -e 's|GUILE_MODULE_REQUIRED_EXPORT|GUILE1_8_MODULE_REQUIRED_EXPORT|g' $ac
+
+# Compress large documentation
+bzip2 NEWS
+
+touch $RPM_BUILD_ROOT%{_datadir}/guile/%{mver}/slibcat
+ln -s ../../slib $RPM_BUILD_ROOT%{_datadir}/guile/%{mver}/slib
+
+%check
+make %{?_smp_mflags} check
+
+%post -p /sbin/ldconfig
+
+%postun -p /sbin/ldconfig
+
+%triggerin -- slib
+# Remove files created in guile < 1.8.3-2
+rm -f %{_datadir}/guile/site/slib{,cat}
+
+ln -sfT ../../slib %{_datadir}/guile/%{mver}/slib
+rm -f %{_datadir}/guile/%{mver}/slibcat
+export SCHEME_LIBRARY_PATH=%{_datadir}/slib/
+
+# Build SLIB catalog
+for pre in \
+    "(use-modules (ice-9 slib))" \
+    "(load \"%{_datadir}/slib/guile.init\")"
+do
+    %{_bindir}/guile%{mver} -c "$pre
+        (set! implementation-vicinity (lambda ()
+        \"%{_datadir}/guile/%{mver}/\"))
+        (require 'new-catalog)" &> /dev/null && break
+    rm -f %{_datadir}/guile/%{mver}/slibcat
+done
+:
+
+%triggerun -- slib
+if [ "$2" = 0 ]; then
+    rm -f %{_datadir}/guile/%{mver}/slib{,cat}
+fi
+
+%files
+%doc AUTHORS COPYING* ChangeLog HACKING NEWS.bz2 README THANKS
+%{_bindir}/guile%{mver}
+%{_bindir}/guile%{mver}-tools
+%{_libdir}/libguile*.so.*
+# The following unversioned libraries are needed in runtime
+%{_libdir}/libguilereadline-*.so
+%{_libdir}/libguile-srfi-srfi-*.so
+%dir %{_datadir}/guile
+%dir %{_datadir}/guile/%{mver}
+%{_datadir}/guile/%{mver}/ice-9
+%{_datadir}/guile/%{mver}/lang
+%{_datadir}/guile/%{mver}/oop
+%{_datadir}/guile/%{mver}/scripts
+%{_datadir}/guile/%{mver}/srfi
+%{_datadir}/guile/%{mver}/guile-procedures.txt
+%ghost %{_datadir}/guile/%{mver}/slibcat
+%ghost %{_datadir}/guile/%{mver}/slib
+%dir %{_datadir}/guile/site
+%if %{with emacs}
+%dir %{_datadir}/emacs/site-lisp
+%{_datadir}/emacs/site-lisp/*.el
+%endif
+%{_mandir}/man1/guile%{mver}.1*
+
+%files devel
+%{_bindir}/guile%{mver}-config
+%{_bindir}/guile%{mver}-snarf
+%{_datadir}/aclocal/*
+%{_libdir}/libguile.so
+%{_libdir}/pkgconfig/*.pc
+%{_includedir}/guile
+%{_includedir}/libguile
+%{_includedir}/libguile.h
+
+%changelog
+* Mon Jan 21 2013 Jan Synáček <jsynacek at redhat.com> - 1.8.8-5
+- Add additional Provides and Obsoletes with %%{?_isa} to fix upgrade path
+
+* Fri Jan 18 2013 Jan Synáček <jsynacek at redhat.com> - 1.8.8-4
+- Bump Provides/Obsoletes by a release
+- Add Provides/Obsoletes to -devel package as well
+- Add a comment about unversion libraries
+- Fix mixed tabs/spaces (remove tabs)
+
+* Thu Jan 17 2013 Jan Synáček <jsynacek at redhat.com> - 5:1.8.8-3
+- Move .so files back to the main package (needed in runtime)
+
+* Thu Jan 17 2013 Jan Synáček <jsynacek at redhat.com> - 5:1.8.8-2
+- Move unversioned .so files to -devel package
+- Remove unnecessary %%clear
+- Use %%global instead of %%define
+- Remove unnecessary (compatible) licenses
+- Fix %%post onliner
+- Compile with --as-needed
+- Add _isa flag where appropriate
+- Correctly specify Provides and Obsoletes
+- Rename to guile-compat18
+
+* Fri Oct 19 2012 Jan Synáček <jsynacek at redhat.com> - 5:1.8.8-1
+- Make compat-package
diff --git a/guile-1.8.7-multilib.patch b/guile-1.8.7-multilib.patch
new file mode 100644
index 0000000..81d441b
--- /dev/null
+++ b/guile-1.8.7-multilib.patch
@@ -0,0 +1,45 @@
+diff -up guile-1.8.7/libguile/Makefile.in.multilib guile-1.8.7/libguile/Makefile.in
+--- guile-1.8.7/libguile/Makefile.in.multilib	2009-07-05 22:25:09.000000000 +0200
++++ guile-1.8.7/libguile/Makefile.in	2009-07-16 18:07:44.000000000 +0200
+@@ -1717,6 +1717,11 @@ install-nodist_modincludeHEADERS: $(nodi
+ 	while read files; do \
+ 	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(modincludedir)'"; \
+ 	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(modincludedir)" || exit $$?; \
++	  for f in $$files; do if [ "$$f" = "scmconfig.h" ]; then \
++ 	    grep -q "SCM_SIZEOF_LONG 4" "$(DESTDIR)$(modincludedir)/$$f" && g=32 || g=64; \
++ 	    mv "$(DESTDIR)$(modincludedir)/$$f" "$(DESTDIR)$(modincludedir)/scmconfig-$$g.h"; \
++ 	    $(INSTALL_HEADER) "$${d}scmconfig.h.mlib" "$(DESTDIR)$(modincludedir)/$$f"; \
++ 	  fi; done \
+ 	done
+ 
+ uninstall-nodist_modincludeHEADERS:
+diff -up guile-1.8.7/libguile/guile-snarf.in.multilib guile-1.8.7/libguile/guile-snarf.in
+--- guile-1.8.7/libguile/guile-snarf.in.multilib	2009-07-04 00:19:00.000000000 +0200
++++ guile-1.8.7/libguile/guile-snarf.in	2009-07-16 18:06:48.000000000 +0200
+@@ -39,7 +39,6 @@
+ #   #endif
+ # 
+ # If the environment variable CPP is set, use its value instead of the
+-# C pre-processor determined at Guile configure-time: "@CPP@".
+ 
+ # Code:
+ 
+@@ -75,7 +74,7 @@ tempdir="$TMPDIR/guile-snarf.$$"
+ (umask 077 && mkdir $tempdir) || exit 1
+ temp="$tempdir/tmp"
+ 
+-if [ x"$CPP" = x ] ; then cpp="@CPP@" ; else cpp="$CPP" ; fi
++if [ x"$CPP" = x ] ; then cpp="gcc -E" ; else cpp="$CPP" ; fi
+ 
+ trap "rm -rf $tempdir" 0 1 2 15
+ 
+diff -up /dev/null guile-1.8.7/libguile/scmconfig.h.mlib
+--- /dev/null	2009-06-24 16:43:53.264001725 +0200
++++ guile-1.8.7/libguile/scmconfig.h.mlib	2009-07-16 18:06:48.000000000 +0200
+@@ -0,0 +1,6 @@
++#include <bits/wordsize.h>
++#if __WORDSIZE == 32
++#include "libguile/scmconfig-32.h"
++#else
++#include "libguile/scmconfig-64.h"
++#endif
diff --git a/guile-1.8.7-testsuite.patch b/guile-1.8.7-testsuite.patch
new file mode 100644
index 0000000..f4d5269
--- /dev/null
+++ b/guile-1.8.7-testsuite.patch
@@ -0,0 +1,12 @@
+diff -up guile-1.8.7/test-suite/tests/popen.test.testsuite guile-1.8.7/test-suite/tests/popen.test
+--- guile-1.8.7/test-suite/tests/popen.test.testsuite	2009-07-04 00:19:00.000000000 +0200
++++ guile-1.8.7/test-suite/tests/popen.test	2009-07-16 17:09:57.000000000 +0200
+@@ -168,7 +168,7 @@
+ 	   (port (with-error-to-port (cdr c2p)
+ 		   (lambda ()
+ 		     (open-output-pipe
+-		      "exec 0</dev/null; while true; do echo closed 1>&2; done")))))
++		      "exec 0</dev/null; echo closed 1>&2; sleep 3")))))
+       (close-port (cdr c2p))   ;; write side
+       (with-epipe
+        (lambda ()
diff --git a/guile-1.8.8-deplibs.patch b/guile-1.8.8-deplibs.patch
new file mode 100644
index 0000000..b9fa9ca
--- /dev/null
+++ b/guile-1.8.8-deplibs.patch
@@ -0,0 +1,59 @@
+diff -up guile-1.8.8/guile-1.8.pc.in.deplibs guile-1.8.8/guile-1.8.pc.in
+--- guile-1.8.8/guile-1.8.pc.in.deplibs	2010-12-13 18:24:39.000000000 +0100
++++ guile-1.8.8/guile-1.8.pc.in	2011-06-16 15:37:57.614346208 +0200
+@@ -11,5 +11,6 @@ libguileinterface=@LIBGUILE_INTERFACE@
+ Name: GNU Guile
+ Description: GNU's Ubiquitous Intelligent Language for Extension
+ Version: @GUILE_VERSION@
+-Libs: -L${libdir} -lguile @GUILE_LIBS@
++Libs: -L${libdir} -lguile
++Libs.private: @GUILE_LIBS@
+ Cflags: -I${includedir} @GUILE_CFLAGS@
+diff -up guile-1.8.8/guile-config/guile-config.in.deplibs guile-1.8.8/guile-config/guile-config.in
+--- guile-1.8.8/guile-config/guile-config.in.deplibs	2010-12-13 18:24:39.000000000 +0100
++++ guile-1.8.8/guile-config/guile-config.in	2010-12-14 13:49:50.703230447 +0100
+@@ -152,10 +152,10 @@
+ 	      (list
+ 	       (get-build-info 'CFLAGS)
+                (if (or (string=? libdir "/usr/lib")
+-                       (string=? libdir "/usr/lib/"))
++                       (string=? libdir "/usr/lib64"))
+ 		   ""
+ 		   (string-append "-L" (get-build-info 'libdir)))
+-               "-lguile -lltdl"
++               "-lguile"
+ 	       (string-join other-flags)
+ 
+ 	       )))
+diff -up guile-1.8.8/libguile/Makefile.in.deplibs guile-1.8.8/libguile/Makefile.in
+--- guile-1.8.8/libguile/Makefile.in.deplibs	2010-12-14 13:49:50.698230252 +0100
++++ guile-1.8.8/libguile/Makefile.in	2010-12-14 13:49:50.705230526 +0100
+@@ -471,7 +471,7 @@ noinst_HEADERS = convert.i.c					\
+ 
+ libguile_la_DEPENDENCIES = @LIBLOBJS@
+ libguile_la_LIBADD = @LIBLOBJS@
+-libguile_la_LDFLAGS = @LTLIBINTL@ -version-info @LIBGUILE_INTERFACE_CURRENT@:@LIBGUILE_INTERFACE_REVISION@:@LIBGUILE_INTERFACE_AGE@ -export-dynamic -no-undefined
++libguile_la_LDFLAGS = @LTLIBINTL@ -version-info @LIBGUILE_INTERFACE_CURRENT@:@LIBGUILE_INTERFACE_REVISION@:@LIBGUILE_INTERFACE_AGE@ -export-dynamic -no-undefined -pthread
+ 
+ # These are headers visible as <guile/mumble.h>
+ pkginclude_HEADERS = gh.h
+@@ -2131,8 +2131,8 @@ libpath.h: $(srcdir)/Makefile.in  $(top_
+ 	@echo '#define SCM_LIBRARY_DIR "$(pkgdatadir)/$(GUILE_EFFECTIVE_VERSION)"'>>libpath.tmp
+ 	@echo '#define SCM_SITE_DIR "$(pkgdatadir)/site"' >> libpath.tmp
+ 	@echo '#define SCM_BUILD_INFO { \' >> libpath.tmp
+-	@echo '	{ "srcdir", "'"`cd @srcdir@; pwd`"'" }, \' >> libpath.tmp
+-	@echo ' { "top_srcdir",    "@top_srcdir_absolute@" }, \' >> libpath.tmp
++	@echo '	{ "srcdir", "" }, \' >> libpath.tmp
++	@echo ' { "top_srcdir",    "" }, \' >> libpath.tmp
+ 	@echo '	{ "prefix",	   "@prefix@" }, \' >> libpath.tmp
+ 	@echo '	{ "exec_prefix",   "@exec_prefix@" }, \' >> libpath.tmp
+ 	@echo '	{ "bindir",	   "@bindir@" }, \' >> libpath.tmp
+@@ -2153,7 +2153,7 @@ libpath.h: $(srcdir)/Makefile.in  $(top_
+ 	@echo '	{ "guileversion", "@GUILE_VERSION@" }, \' >> libpath.tmp
+ 	@echo '	{ "libguileinterface", "@LIBGUILE_INTERFACE@" }, \' \
+ 		>> libpath.tmp
+-	@echo '	{ "LIBS",	   "@GUILE_LIBS@" }, \' >> libpath.tmp
++	@echo '	{ "LIBS",	   "" }, \' >> libpath.tmp
+ 	@echo '	{ "CFLAGS",	   "@GUILE_CFLAGS@" }, \' >> libpath.tmp
+ 	@echo '	{ "buildstamp",    "'"`date`"'" }, \' >> libpath.tmp
+ 	@echo '}' >> libpath.tmp
diff --git a/sources b/sources
index e69de29..7149ae6 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+18661a8fdfef13e2fcb7651720aa53f3  guile-1.8.8.tar.gz
-- 
cgit v0.10.2


	http://pkgs.fedoraproject.org/cgit/compat-guile18.git/commit/?h=epel7&id=de77fccde3835b9b2236de0e94d7c33df4f0fc01


More information about the scm-commits mailing list