yaz, new recipe (#10133)

This commit is contained in:
Schrijvers Luc
2024-02-23 15:09:15 +00:00
committed by GitHub
parent e890d96585
commit ba7552d670
2 changed files with 376 additions and 0 deletions

View File

@@ -0,0 +1,187 @@
From 2ea7588c18ef673137062804b1ecb50e32748ae9 Mon Sep 17 00:00:00 2001
From: Mamoru TASAKA <mtasaka@fedoraproject.org>
Date: Tue, 21 Nov 2023 23:39:48 +0900
Subject: FIX: fix build error with libxml2 2.12.0
libxml2 2.12.0 changed which header file to define functions
and header inclusion. Due to this refactoring, some yaz source
files need additional inclusion of libxml2 header file,
especially for libxml/parser.h .
Closes #102 .
diff --git a/client/client.c b/client/client.c
index 34e6a77..369564a 100644
--- a/client/client.c
+++ b/client/client.c
@@ -73,6 +73,10 @@
#include <readline/history.h>
#endif
+#if YAZ_HAVE_XML2
+#include <libxml/parser.h>
+#endif
+
#include "admin.h"
#include "tabcomplete.h"
diff --git a/src/record_render.c b/src/record_render.c
index 82fa698..654aca4 100644
--- a/src/record_render.c
+++ b/src/record_render.c
@@ -23,6 +23,7 @@
#include <yaz/base64.h>
#if YAZ_HAVE_XML2
+#include <libxml/parser.h>
#include <libxml/xpath.h>
#include <libxml/xpathInternals.h>
#endif
diff --git a/test/test_ccl.c b/test/test_ccl.c
index bb3e932..b970870 100644
--- a/test/test_ccl.c
+++ b/test/test_ccl.c
@@ -11,6 +11,9 @@
#include <yaz/log.h>
#include <yaz/test.h>
+#if YAZ_HAVE_XML2
+#include <libxml/parser.h>
+#endif
static int tst_ccl_query(CCL_bibset bibset,
const char *query,
diff --git a/test/test_icu.c b/test/test_icu.c
index 18e2866..309621a 100644
--- a/test/test_icu.c
+++ b/test/test_icu.c
@@ -28,6 +28,7 @@
#endif
#if YAZ_HAVE_XML2
+#include <libxml/parser.h>
#include <libxml/xmlmemory.h>
#endif
diff --git a/test/test_xml_include.c b/test/test_xml_include.c
index aec8308..ff1f1a1 100644
--- a/test/test_xml_include.c
+++ b/test/test_xml_include.c
@@ -12,6 +12,9 @@
#include <yaz/xml_include.h>
#include <yaz/test.h>
+#if YAZ_HAVE_XML2
+#include <libxml/parser.h>
+#endif
static void tst_xml_include1(void)
{
diff --git a/util/cclsh.c b/util/cclsh.c
index 419fcb7..c40061c 100644
--- a/util/cclsh.c
+++ b/util/cclsh.c
@@ -20,6 +20,9 @@
#include <readline/history.h>
#endif
+#if YAZ_HAVE_XML2
+#include <libxml/parser.h>
+#endif
static int debug = 0;
static char *prog;
diff --git a/util/yaz-icu.c b/util/yaz-icu.c
index 3087e13..767cb20 100644
--- a/util/yaz-icu.c
+++ b/util/yaz-icu.c
@@ -17,6 +17,8 @@
#if YAZ_HAVE_ICU
+#include <libxml/parser.h>
+
#include <unicode/ucnv.h>
#include <unicode/ustring.h>
#include <unicode/ucol.h>
diff --git a/util/yaz-record-conv.c b/util/yaz-record-conv.c
index 75be066..b386e2a 100644
--- a/util/yaz-record-conv.c
+++ b/util/yaz-record-conv.c
@@ -13,6 +13,10 @@
#include <yaz/record_conv.h>
#include <yaz/backtrace.h>
+#if YAZ_HAVE_XML2
+#include <libxml/parser.h>
+#endif
+
const char *prog = "yaz-record-conv";
static void usage(void)
--
2.42.1
From 5e57b3aa8a468e3cc8ff56795a8448021d1f3f8a Mon Sep 17 00:00:00 2001
From: Mamoru TASAKA <mtasaka@fedoraproject.org>
Date: Tue, 21 Nov 2023 23:47:18 +0900
Subject: FIX: fix build error with glibc 2.39
glibc 2.39 does some refactoring for header file inclusion
and some additional header inclusion is needed for yaz
source.
Closes #104 .
diff --git a/src/record_conv.c b/src/record_conv.c
index 6ec066f..6daaa9a 100644
--- a/src/record_conv.c
+++ b/src/record_conv.c
@@ -11,6 +11,7 @@
#include <config.h>
#endif
+#include <stdlib.h>
#include <string.h>
#include <yaz/log.h>
#include <yaz/yaz-iconv.h>
diff --git a/src/xmlquery.c b/src/xmlquery.c
index 543be2a..dc2bfd3 100644
--- a/src/xmlquery.c
+++ b/src/xmlquery.c
@@ -10,6 +10,7 @@
#endif
#include <stdio.h>
+#include <stdlib.h>
#include <string.h>
#include <assert.h>
diff --git a/test/test_record_conv.c b/test/test_record_conv.c
index bb417a5..7fdca22 100644
--- a/test/test_record_conv.c
+++ b/test/test_record_conv.c
@@ -9,6 +9,7 @@
#include <yaz/record_conv.h>
#include <yaz/test.h>
#include <yaz/wrbuf.h>
+#include <stdlib.h>
#include <string.h>
#include <yaz/log.h>
#include <yaz/proto.h>
diff --git a/test/test_retrieval.c b/test/test_retrieval.c
index 25711af..6065c5c 100644
--- a/test/test_retrieval.c
+++ b/test/test_retrieval.c
@@ -9,6 +9,7 @@
#include <yaz/retrieval.h>
#include <yaz/test.h>
#include <yaz/wrbuf.h>
+#include <stdlib.h>
#include <string.h>
#include <yaz/log.h>
#include <yaz/oid_db.h>
--
2.42.1

View File

@@ -0,0 +1,189 @@
SUMMARY="C/C++ toolkit for Z39.50v3 clients and servers"
DESCRIPTION="YAZ is a C/C++ library for information retrieval applications using the Z39.50/SRU/\
Solr protocols for information retrieval.
Properties of YAZ:
* Complete Z39.50 version 3 support. Amendments and Z39.50-2002 revision is supported.
* Supports SRU GET/POST/SOAP version 1.1, 1.2 and 2.0 (over HTTP and HTTPS).
* Includes BER encoders/decoders for the ISO ILL protocol.
* Supports Apache Solr Web Service version 1.4.x (client side only)
* Supports the following transports: BER over TCP/IP (RFC1729), BER over Unix local socket, and \
HTTP 1.1.
* Secure Socket Layer support using GnuTLS. If enabled, YAZ uses HTTPS transport (for SOAP) or \
'Secure BER' (for Z39.50).
* Offers ZOOM C API implementing Z39.50, SRU and Solr Web Service.
* The YAZ library offers a set of useful utilities related to the protocols, such as MARC \
(ISO2709) parser, CCL (ISO8777) parser, CQL parser, memory management routines, character set \
conversion.
* Portable code. YAZ compiles out-of-the box on most Unixes and on Windows using Microsoft Visual \
C++.
* Fast operation. The C based BER encoders/decoders as well as the server component of YAZ is \
very fast.
* Liberal license that allows for commercial use of YAZ."
HOMEPAGE="http://www.indexdata.com/yaz"
COPYRIGHT="1995-2023 Index Data"
LICENSE="BSD (3-clause)"
REVISION="1"
SOURCE_URI="https://download.indexdata.com/pub/yaz/yaz-$portVersion.tar.gz"
CHECKSUM_SHA256="bcbea894599a13342910003401c17576f0fb910092aecb51cb54065d0cd2d613"
PATCHES="yaz-$portVersion.patchset"
ARCHITECTURES="all x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
commandSuffix=$secondaryArchSuffix
commandBinDir=$binDir
if [ "$targetArchitecture" = x86_gcc2 ]; then
commandSuffix=
commandBinDir=$prefix/bin
fi
libVersion="5.0.0"
libVersionCompat="$libVersion compat >= ${libVersion%.*}"
PROVIDES="
yaz$secondaryArchSuffix = $portVersion
cmd:yaz_client$commandSuffix
lib:libyaz_icu$secondaryArchSuffix = $libVersionCompat
lib:libyaz_server$secondaryArchSuffix = $libVersionCompat
lib:libyaz$secondaryArchSuffix = $libVersionCompat
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libexslt$secondaryArchSuffix
lib:libgnutls$secondaryArchSuffix
lib:libhiredis$secondaryArchSuffix
lib:libhistory$secondaryArchSuffix
lib:libiconv$secondaryArchSuffix
lib:libicudata$secondaryArchSuffix
lib:libicui18n$secondaryArchSuffix
lib:libicuuc$secondaryArchSuffix
lib:libncurses$secondaryArchSuffix
lib:libreadline$secondaryArchSuffix
lib:libxml2$secondaryArchSuffix
lib:libxslt$secondaryArchSuffix
"
PROVIDES_devel="
yaz${secondaryArchSuffix}_devel = $portVersion
cmd:yaz_config$commandSuffix
devel:libyaz_icu$secondaryArchSuffix = $libVersionCompat
devel:libyaz_server$secondaryArchSuffix = $libVersionCompat
devel:libyaz$secondaryArchSuffix = $libVersionCompat
"
REQUIRES_devel="
yaz$secondaryArchSuffix == $portVersion base
devel:libxml2$secondaryArchSuffix
devel:libxslt$secondaryArchSuffix
devel:libz$secondaryArchSuffix
"
PROVIDES_tools="
yaz${secondaryArchSuffix}_tools = $portVersion
cmd:yaz_asncomp$commandSuffix
cmd:yaz_iconv$commandSuffix
cmd:yaz_icu$commandSuffix
cmd:yaz_illclient$commandSuffix
cmd:yaz_json_parse$commandSuffix
cmd:yaz_marcdump$commandSuffix
cmd:yaz_record_conv$commandSuffix
cmd:yaz_url$commandSuffix
cmd:yaz_ztest$commandSuffix
cmd:zoomsh$commandSuffix
"
REQUIRES_tools="
yaz$secondaryArchSuffix == $portVersion
$REQUIRES
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libgnutls$secondaryArchSuffix
devel:libhiredis$secondaryArchSuffix
devel:libiconv$secondaryArchSuffix
devel:libicui18n$secondaryArchSuffix >= 74
devel:libncurses$secondaryArchSuffix
devel:libreadline$secondaryArchSuffix
devel:libtclstub8.6$secondaryArchSuffix
devel:libxml2$secondaryArchSuffix
devel:libxslt$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:awk
cmd:bison
cmd:autoreconf
cmd:gcc$secondaryArchSuffix
cmd:libtoolize$secondaryArchSuffix
cmd:make
cmd:pkg_config$secondaryArchSuffix
cmd:xsltproc
"
defineDebugInfoPackage yaz$secondaryArchSuffix \
$libDir/libyaz_icu.so.$libVersion \
$libDir/libyaz_server.so.$libVersion \
$libDir/libyaz.so.$libVersion
PATCH()
{
# Hardcoded assumption of libraries residing in lib/,
sed -i -e "s|/lib\"|/$libDir\"|" configure.ac
}
BUILD()
{
export LDFLAGS="-lnetwork"
autoreconf -fi
runConfigure --omit-dirs "binDir" ./configure \
--bindir=$commandBinDir \
--with-gnutls \
--disable-static
make $jobArgs
}
INSTALL()
{
make install
# remove libtool files
rm -f $libDir/*.la
prepareInstalledDevelLibs \
libyaz_icu \
libyaz_server \
libyaz
fixPkgconfig
packageEntries devel \
$developDir \
$commandBinDir/yaz-config \
$manDir/man1/yaz-config.1 \
$dataDir/doc
packageEntries tools \
$commandBinDir/yaz-asncomp \
$commandBinDir/yaz-iconv \
$commandBinDir/yaz-icu \
$commandBinDir/yaz-illclient \
$commandBinDir/yaz-json-parse \
$commandBinDir/yaz-marcdump \
$commandBinDir/yaz-record-conv \
$commandBinDir/yaz-url \
$commandBinDir/yaz-ztest \
$commandBinDir/zoomsh \
$manDir/man8 \
$manDir/man1/yaz-asncomp.1 \
$manDir/man1/yaz-iconv.1 \
$manDir/man1/yaz-icu.1 \
$manDir/man1/yaz-illclient.1 \
$manDir/man1/yaz-json-parse.1 \
$manDir/man1/yaz-marcdump.1 \
$manDir/man1/yaz-record-conv.1 \
$manDir/man1/yaz-url.1 \
$manDir/man1/zoomsh.1
}
TEST()
{
make check
}