[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