[yap] Enable chr and clpqr libraries installation

Petr Pisar ppisar at fedoraproject.org
Tue Jan 4 10:46:46 UTC 2011


commit a51a466f2d3108cface8b811636381e6f8e7635e
Author: Petr Písař <ppisar at redhat.com>
Date:   Mon Jan 3 17:39:56 2011 +0100

    Enable chr and clpqr libraries installation
    
    The two libraries are copied from SWI Prolog (LGPLv2+ license) and they are
    still bundled with the tar ball. VCS repository handles them as git module.

 chr_translate.pl                          |21472 -----------------------------
 chr_translate_bootstrap1.pl               | 2609 ----
 chr_translate_bootstrap2.pl               | 3708 -----
 guard_entailment.pl                       |18061 ------------------------
 sources                                   |    4 -
 yap-6.2.0-fix-chr-install-from-Keri.patch |  106 +
 yap.spec                                  |   33 +-
 7 files changed, 116 insertions(+), 45877 deletions(-)
---
diff --git a/sources b/sources
index 3f3fc92..42ac065 100644
--- a/sources
+++ b/sources
@@ -1,5 +1 @@
 d04265acead9286b363f7209ac382490  Yap-5.1.3.tar.gz
-89b0825d04a5615b78ca0ff67908b047  chr_translate_bootstrap1.pl
-ebbc6fe2972f03696e8b5397b0076726  chr_translate_bootstrap2.pl
-773fa939564fb229fc7e541e5a74515a  chr_translate.pl
-72541b7579caf15bebe19fc2fc80dd08  guard_entailment.pl
diff --git a/yap-6.2.0-fix-chr-install-from-Keri.patch b/yap-6.2.0-fix-chr-install-from-Keri.patch
new file mode 100644
index 0000000..bbdee5f
--- /dev/null
+++ b/yap-6.2.0-fix-chr-install-from-Keri.patch
@@ -0,0 +1,106 @@
+From 23d07e2d78cf285e32b6f42c635edf506ff70c78 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?V=C3=ADtor=20Santos=20Costa?= <vsc at xato.(none)>
+Date: Tue, 9 Nov 2010 16:39:34 +0000
+Subject: [PATCH] fix chr install (from Keri)
+
+---
+ configure.in |   20 ++++++++++----------
+ 1 files changed, 10 insertions(+), 10 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index 920d01a..3bc0c1d 100755
+--- a/configure.in
++++ b/configure.in
+@@ -924,7 +924,7 @@ case "$target_os" in
+         then 
+            YAPLIB_LD="\$(CC) -shared"
+            EXTRA_LIBS_FOR_DLLS="$EXTRA_LIBS_FOR_DLLS -L\$(abs_top_builddir) -lYap -Wl,-R,\$(YAPLIBDIR) -Wl,-R,\$(LIBDIR)"
+-           INSTALL_ENV="LD_LIBRARY_PATH=\$(DESTDIR)\$(LIBDIR): YAPSHAREDIR=\$(DESTDIR)\$(SHAREDIR) YAPLIBDIR=\$(DESTDIR)\$(YAPLIBDIR)"
++           INSTALL_ENV="LD_LIBRARY_PATH=\$(DESTDIR)\$(LIBDIR):\$(DESTDIR)\$(YAPLIBDIR): YAPSHAREDIR=\$(DESTDIR)\$(SHAREDIR) YAPLIBDIR=\$(DESTDIR)\$(YAPLIBDIR)"
+            PRE_INSTALL_ENV="LD_LIBRARY_PATH=\$(abs_top_builddir)"
+         else
+            YAPLIB_LD="\$(CC)"
+@@ -946,7 +946,7 @@ case "$target_os" in
+         DYNYAPLIB=libYap."$SO"
+         EXTRA_LIBS_FOR_DLLS="$EXTRA_LIBS_FOR_DLLS -L\$(abs_top_builddir) -lYap -Wl,-R,\$(YAPLIBDIR) -Wl,-R,\$(LIBDIR)"
+         PRE_INSTALL_ENV="LD_LIBRARY_PATH=\$(abs_top_builddir)"
+-        INSTALL_ENV="LD_LIBRARY_PATH=\$(DESTDIR)\$(LIBDIR): YAPSHAREDIR=\$(DESTDIR)\$(SHAREDIR) YAPLIBDIR=\$(DESTDIR)\$(YAPLIBDIR)"
++        INSTALL_ENV="LD_LIBRARY_PATH=\$(DESTDIR)\$(LIBDIR):\$(DESTDIR)\$(YAPLIBDIR): YAPSHAREDIR=\$(DESTDIR)\$(SHAREDIR) YAPLIBDIR=\$(DESTDIR)\$(YAPLIBDIR)"
+ 	;;
+       *hpux*)
+ 	#do not use the first memory quadrant
+@@ -985,7 +985,7 @@ case "$target_os" in
+         DYNYAPLIB=libYap."$SO"
+         EXTRA_LIBS_FOR_DLLS="$EXTRA_LIBS_FOR_DLLS -L\$(abs_top_builddir) -lYap -Wl,-R,\$(YAPLIBDIR) -Wl,-R,\$(LIBDIR)"
+         PRE_INSTALL_ENV="LD_LIBRARY_PATH=\$(abs_top_builddir)"
+-        INSTALL_ENV="LD_LIBRARY_PATH=\$(DESTDIR)\$(LIBDIR): YAPSHAREDIR=\$(DESTDIR)\$(SHAREDIR) YAPLIBDIR=\$(DESTDIR)\$(YAPLIBDIR)"
++        INSTALL_ENV="LD_LIBRARY_PATH=\$(DESTDIR)\$(LIBDIR):\$(DESTDIR)\$(YAPLIBDIR): YAPSHAREDIR=\$(DESTDIR)\$(SHAREDIR) YAPLIBDIR=\$(DESTDIR)\$(YAPLIBDIR)"
+ 	;;
+       *aix*)
+ 	# To actually use dlls in AIX I'd need to build YAP as a DLL first.
+@@ -998,7 +998,7 @@ case "$target_os" in
+         DYNYAPLIB=libYap."$SO"
+         EXTRA_LIBS_FOR_DLLS="$EXTRA_LIBS_FOR_DLLS -L\$(abs_top_builddir) -lYap -Wl,-R,\$(YAPLIBDIR) -Wl,\$(LIBDIR)"
+         PRE_INSTALL_ENV="LD_LIBRARY_PATH=\$(abs_top_builddir)"
+-        INSTALL_ENV="LD_LIBRARY_PATH=\$(DESTDIR)\$(LIBDIR): YAPSHAREDIR=\$(DESTDIR)\$(SHAREDIR) YAPLIBDIR=\$(DESTDIR)\$(YAPLIBDIR)"
++        INSTALL_ENV="LD_LIBRARY_PATH=\$(DESTDIR)\$(LIBDIR):\$(DESTDIR)\$(YAPLIBDIR): YAPSHAREDIR=\$(DESTDIR)\$(SHAREDIR) YAPLIBDIR=\$(DESTDIR)\$(YAPLIBDIR)"
+ 	;;
+       *osf*)
+         if ${use_condor} = no
+@@ -1016,7 +1016,7 @@ dnl Linux has both elf and a.out, in this case we found elf
+         DYNYAPLIB=libYap."$SO"
+         EXTRA_LIBS_FOR_DLLS="$EXTRA_LIBS_FOR_DLLS -L\$(abs_top_builddir) -lYap -Wl,-R,\$(YAPLIBDIR) -Wl,-R,\$(LIBDIR)"
+         PRE_INSTALL_ENV="LD_LIBRARY_PATH=\$(abs_top_builddir)"
+-        INSTALL_ENV="LD_LIBRARY_PATH=\$(DESTDIR)\$(LIBDIR): YAPSHAREDIR=\$(DESTDIR)\$(SHAREDIR) YAPLIBDIR=\$(DESTDIR)\$(YAPLIBDIR)"
++        INSTALL_ENV="LD_LIBRARY_PATH=\$(DESTDIR)\$(LIBDIR):\$(DESTDIR)\$(YAPLIBDIR): YAPSHAREDIR=\$(DESTDIR)\$(SHAREDIR) YAPLIBDIR=\$(DESTDIR)\$(YAPLIBDIR)"
+ 	;;
+       *irix6*)
+ 	SHLIB_CFLAGS="$CFLAGS"
+@@ -1030,7 +1030,7 @@ dnl Linux has both elf and a.out, in this case we found elf
+         DYNYAPLIB=libYap."$SO"
+         EXTRA_LIBS_FOR_DLLS="$EXTRA_LIBS_FOR_DLLS -L\$(abs_top_builddir) -lYap -Wl,-R,\$(YAPLIBDIR) -Wl,-R,\$(LIBDIR)"
+         PRE_INSTALL_ENV="LD_LIBRARY_PATH=\$(abs_top_builddir)"
+-        INSTALL_ENV="LD_LIBRARY_PATH=\$(DESTDIR)\$(LIBDIR): YAPSHAREDIR=\$(DESTDIR)\$(SHAREDIR) YAPLIBDIR=\$(DESTDIR)\$(YAPLIBDIR)"
++        INSTALL_ENV="LD_LIBRARY_PATH=\$(DESTDIR)\$(LIBDIR):\$(DESTDIR)\$(YAPLIBDIR): YAPSHAREDIR=\$(DESTDIR)\$(SHAREDIR) YAPLIBDIR=\$(DESTDIR)\$(YAPLIBDIR)"
+ 	;;
+       *darwin*)
+ 	if test ${use_dlcompat} = yes
+@@ -1051,7 +1051,7 @@ dnl Linux has both elf and a.out, in this case we found elf
+ 	   SHLIB_LD="$CC  -dynamiclib"
+            SHLIB_CXX_LD="$CXX  -dynamiclib"
+            EXTRA_LIBS_FOR_DLLS="$EXTRA_LIBS_FOR_DLLS -L\$(abs_top_builddir) -lYap   -Wl,-install_name,\$(YAPLIBDIR)/\$@"
+-           INSTALL_ENV="DYLD_LIBRARY_PATH=\$(DESTDIR)\$(LIBDIR): YAPSHAREDIR=\$(DESTDIR)\$(SHAREDIR) YAPLIBDIR=\$(DESTDIR)\$(YAPLIBDIR)"
++           INSTALL_ENV="DYLD_LIBRARY_PATH=\$(DESTDIR)\$(LIBDIR):\$(DESTDIR)\$(YAPLIBDIR): YAPSHAREDIR=\$(DESTDIR)\$(SHAREDIR) YAPLIBDIR=\$(DESTDIR)\$(YAPLIBDIR)"
+         else
+ 	   SHLIB_LD="$CC  -dynamiclib -Wl,-undefined,dynamic_lookup"
+            SHLIB_CXX_LD="$CXX  -dynamiclib -Wl,-undefined,dynamic_lookup"
+@@ -1091,7 +1091,7 @@ dnl Linux has both elf and a.out, in this case we found elf
+         DYNYAPLIB=libYap."$SO"
+         EXTRA_LIBS_FOR_DLLS="$EXTRA_LIBS_FOR_DLLS -L\$(abs_top_builddir) -Wl,-R,\$(YAPLIBDIR)"
+         PRE_INSTALL_ENV="LD_LIBRARY_PATH=\$(abs_top_builddir)"
+-        INSTALL_ENV="LD_LIBRARY_PATH=\$(DESTDIR)\$(LIBDIR): YAPSHAREDIR=\$(DESTDIR)\$(SHAREDIR) YAPLIBDIR=\$(DESTDIR)\$(YAPLIBDIR)"
++        INSTALL_ENV="LD_LIBRARY_PATH=\$(DESTDIR)\$(LIBDIR):\$(DESTDIR)\$(YAPLIBDIR): YAPSHAREDIR=\$(DESTDIR)\$(SHAREDIR) YAPLIBDIR=\$(DESTDIR)\$(YAPLIBDIR)"
+ 	;;
+       *solaris*)
+        #an elf system
+@@ -1110,7 +1110,7 @@ dnl Linux has both elf and a.out, in this case we found elf
+            YAPLIB_LD="\$(CC)"
+            EXTRA_LIBS_FOR_DLLS="$EXTRA_LIBS_FOR_DLLS -L\$(abs_top_builddir) -lYap -Wl,-R,\$(YAPLIBDIR) -Wl,-R,\$(LIBDIR)"
+            PRE_INSTALL_ENV="LD_LIBRARY_PATH=\$(abs_top_builddir)"
+-           INSTALL_ENV="LD_LIBRARY_PATH=\$(DESTDIR)\$(LIBDIR): YAPSHAREDIR=\$(DESTDIR)\$(SHAREDIR) YAPLIBDIR=\$(DESTDIR)\$(YAPLIBDIR)"
++           INSTALL_ENV="LD_LIBRARY_PATH=\$(DESTDIR)\$(LIBDIR):\$(DESTDIR)\$(YAPLIBDIR): YAPSHAREDIR=\$(DESTDIR)\$(SHAREDIR) YAPLIBDIR=\$(DESTDIR)\$(YAPLIBDIR)"
+         else
+            EXTRA_LIBS_FOR_DLLS="$EXTRA_LIBS_FOR_DLLS -Wl,-R,\$(YAPLIBDIR) -Wl,-R,\$(LIBDIR)"
+            PRE_INSTALL_ENV=""
+@@ -1165,7 +1165,7 @@ dnl Linux has both elf and a.out, in this case we found elf
+         DYNYAPLIB=libYap."$SO"
+         EXTRA_LIBS_FOR_DLLS="$EXTRA_LIBS_FOR_DLLS -L\$(abs_top_builddir) -lYap -Wl,-R,\$(YAPLIBDIR) -Wl,-R,\$(LIBDIR)"
+         PRE_INSTALL_ENV="LD_LIBRARY_PATH=\$(abs_top_builddir)"
+-        INSTALL_ENV="LD_LIBRARY_PATH=\$(DESTDIR)\$(LIBDIR): YAPSHAREDIR=\$(DESTDIR)\$(SHAREDIR) YAPLIBDIR=\$(DESTDIR)\$(YAPLIBDIR)"
++        INSTALL_ENV="LD_LIBRARY_PATH=\$(DESTDIR)\$(LIBDIR):\$(DESTDIR)\$(YAPLIBDIR): YAPSHAREDIR=\$(DESTDIR)\$(SHAREDIR) YAPLIBDIR=\$(DESTDIR)\$(YAPLIBDIR)"
+ 	;;
+ esac
+ 
+-- 
+1.7.3.4
+
diff --git a/yap.spec b/yap.spec
index b0ae1de..de09838 100644
--- a/yap.spec
+++ b/yap.spec
@@ -6,10 +6,6 @@ Group:      Development/Languages
 License:    Artistic 2.0 or LGPLv2+
 URL:        http://www.ncc.up.pt/~vsc/Yap
 Source:     http://www.ncc.up.pt/~vsc/Yap/%{name}-%{version}.tar.gz
-Source1:    guard_entailment.pl
-Source2:    chr_translate_bootstrap1.pl
-Source3:    chr_translate_bootstrap2.pl
-Source4:    chr_translate.pl
 Patch1:     Yap-noni386.patch
 Patch2:     yap-6.2.0-Locate-mysql-by-mysql_config.patch
 Patch3:     yap-6.2.0-Install-directory-for-info-pages.patch
@@ -17,6 +13,8 @@ Patch4:     yap-6.2.0-Install-http-CSS-files-into-PLTARGET.patch
 Patch5:     yap-6.2.0-Do-not-install-README-etc.patch
 Patch6:     yap-6.2.0-Install-info-pages-non-executable.patch
 Patch7:     yap-6.2.0-Do-not-install-info-dir-index.patch
+# In upstream already
+Patch8:     yap-6.2.0-fix-chr-install-from-Keri.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 BuildRequires:  autoconf
 BuildRequires:  gmp-devel
@@ -70,6 +68,7 @@ Documentation for Yap.
 %patch5 -p1 -b .do_not_install_readme
 %patch6 -p1 -b .non_executable_info
 %patch7 -p1 -b .do_not_install_info_index
+%patch8 -p1 -b .fix_chr_install
 
 # remove redundant RPATH
 sed -i 's/-Wl,-R\(,\)\{0,1\}\\$(LIBDIR)//' configure.in
@@ -80,8 +79,8 @@ sed -i 's/-Wl,-R/-Wl,--enable-new-dtags,-R/g' configure.in
 # Regerenate configure because of patching
 autoconf
 
-# chr and clpqr are optional and they are a copy from SWI Prolog
-# TODO: Bundle chr and clpqr libraries: cp %%{SOURCE1} LGPL/chr
+# chr and clpqr are optional and they are a copy from SWI Prolog (LGPLv2+)
+# TODO: Unbundle chr and clpqr libraries as subpackages
 
 # Add soname to library and symlink from unversioned to versioned one
 sed -i \
@@ -89,22 +88,6 @@ sed -i \
     -e '/@INSTALL_DLLS at .* @YAPLIB@/ s/\(@YAPLIB@\)\(.*\)/\1.%{version}\2\n\t at LN_S@ @YAPLIB at .%{version} $(DESTDIR)$(LIBDIR)\/@YAPLIB@/' \
     Makefile.in
 
-# TODO: Bumdle SWI chr and clpqr libraries
-## Hack LGPL/chr build environment to run just build interpreter
-## yap-6.2.0 have those SWI compatible libraries optional and separate. Package
-## them as standalone package in the future and remove this ugly thing:
-## Provide path to just built library and libc bindings
-#sed -i '/LGPL\/chr/ s|\(make install\)|LD_LIBRARY_PATH='"${PWD}:${PWD}/library/system"' \1|' Makefile.in
-## Provide paths to Prolog libraries
-#mkdir -p LGPL/chr/usr/share && ln -s ../../../../library LGPL/chr/usr/share/Yap
-#mkdir -p library/usr/share && ln -s ../.. library/usr/share/Yap
-## Provide paths to parent Prolog libraries
-#ln -s {../LGPL,library}/maplist.pl
-#ln -s {../GPL,library}/aggregate.pl
-#ln -s {../GPL,library}/occurs.yap
-#ln -s {../GPL,library}/pairs.pl
-#ln -s {../GPL,library}/error.pl
-
 # Fix file encoding
 for F in README changes.css; do
     tr -d '\r' < "$F" > "${F}.new"
@@ -131,7 +114,9 @@ find -name '*.c' -exec chmod 0644 '{}' ';'
     --enable-max-performance \
     --enable-depth-limit \
     --enable-dynamic-loading \
-    --enable-myddas 
+    --enable-myddas \
+    --enable-chr \
+    --enable-clpqr
 # TODO: --with-java
 
 make %{?_smp_mflags}
@@ -223,6 +208,8 @@ rm -rf $RPM_BUILD_ROOT
 - Fix Source URL
 - Clean exported Requires
 - Correct RPATH
+- Enable chr and clpqr libraries installation (still bundled with source tar
+  ball) 
 
 * Wed Dec 08 2010 Petr Pisar <ppisar at redhat.com> - 5.1.3-3
 - Hack SWI-compatible libraries build system to be compilable (bug #660965)


More information about the scm-commits mailing list