Package: libxml2
Version: 2.12.4
Revision: 1
Maintainer: The Gnome Core Team <fink-gnome-core@lists.sourceforge.net>
Depends: %N-bin (= %v-%r), %N-shlibs (= %v-%r)
BuildDepends: <<
	fink (>= 0.32.0),
	fink-package-precedence,
	libiconv-dev,
	liblzma5,
	libncurses5,
	ppkg-config,
	readline8
<<
Conflicts: %N-32bit
Replaces: %N-32bit
Source: https://download.gnome.org/sources/libxml2/2.12/%n-%v.tar.xz
Source-Checksum: SHA256(497360e423cf0bd99eacdb7c6215dea92e6d6e89ee940393c2bae0e77cb9b7d0)
PatchFile: %n.patch
PatchFile-MD5: 3ee7b3b13c28f2b1072addcecf8e21ec
# Upstream patch for
# https://gitlab.gnome.org/GNOME/libxml2/-/issues/669
PatchFile2: %n-clang-sanitizer.patch
PatchFile2-MD5: 5ddce5617a9315e4c80e4251e7b5cea3
PatchScript: <<
	sed 's|@PREFIX@|%p|g' <%{PatchFile} | patch -p1
	perl -pi -e 's|/etc|%p/etc|g' *.[ch] doc/*.html doc/*.1 doc/*.xml
	rm test/ebcdic_566012.xml
	patch -p1 < %{PatchFile2}
<<
ConfigureParams: <<
	--with-iconv=%p \
	--with-history \
	--disable-static \
	--without-python \
	--with-legacy \
	--with-xptr-locs \
	--enable-dependency-tracking \
	--disable-silent-rules \
	PKG_CONFIG=%p/bin/ppkg-config \
	XSLTPROC=/usr/bin/true
<<
CompileScript: <<
	%{default_script}
	fink-package-precedence --prohibit-bdep=%n .
<<
InfoTest: <<
	TestScript: <<
		make check || exit 2
		fink-package-precedence --prohibit-bdep=%n . || exit 2
	<<
<<
InstallScript: <<
	make install DESTDIR=%d DOC_MODULE=%n
	mkdir -p %i/etc/xml/catalog.d
	mkdir -p %i/etc/sgml/catalog.d
	mkdir -p %i/sbin
	install -c -m 755 update-xml-catalog %i/sbin/
	install -c -m 755 update-sgml-catalog %i/sbin/
<<
DocFiles: Copyright NEWS README.md
BuildDependsOnly: True
SplitOff: <<
	Package: %N-shlibs
	Depends: <<
		libiconv,
		liblzma5-shlibs
	<<
	Replaces: libxml2 (<< 2.4.18-2)
	Suggests: %N-bin
	Files: lib/libxml2.2.dylib
	Shlibs: %p/lib/libxml2.2.dylib 15.0.0 %n (>= 2.12.4-1)
	DocFiles: Copyright NEWS README.md
<<
SplitOff2: <<
	Package: %N-bin
	Depends: <<
		%N-shlibs (>= %v-%r),
		libiconv,
		liblzma5-shlibs,
		libncurses5-shlibs,
		readline8-shlibs
	<<
	Conflicts: %N-32bit-bin
	Replaces: %N-32bit-bin, libxml2 (<< 2.4.18-2)
	Files: <<
		bin/xmlcatalog
		bin/xmllint
		sbin
		share/man/man1/xmlcatalog.1
		share/man/man1/xmllint.1
		etc/xml
	<<
	DocFiles: Copyright NEWS README.md
	RuntimeVars: <<
		SGML_CATALOG_FILES: %p/etc/sgml/catalog
		XML_CATALOG_FILES: %p/etc/xml/catalog
	<<
	PostInstScript: <<
		case "$1" in
			configure)
				export SGML_CATALOG_FILES=%p/etc/sgml/catalog
				export XML_CATALOG_FILES=%p/etc/xml/catalog
				%p/sbin/update-xml-catalog
				%p/sbin/update-sgml-catalog
			;;
		esac
	<<
	PostRmScript: <<
		case "$1" in
			abort-install|purge|remove)
				rm -f %p/etc/xml/catalog
				rm -f %p/etc/sgml/catalog
				;;
		esac
	<<
<<
Description: XML parsing library, version 2
DescDetail: <<
	This set of packages does *not* contain the python bindings. Those
	are in libxml2-pyXX for various pythonX.X versions.
<<
DescUsage: <<
libxml2 uses XML/SGML super catalog to know location of DTDs installed
on the local system. They are managed by update-xml-catalog and
update-sgml-catalog scripts. Each package that provides DTDs should
also provide configuration file(s) for these scripts and call them
within Pre/PostInstScript.

When update-xml-catalog is called, it reads every configuration file
in the %p/etc/xml/catalog.d/ directory. Each line of them contains 3
fields, TYPE, ORIG and REPLACE, corresponding to arguments of
`xmlcatalog --add'. See xmlcatalog(1) for detail.

When update-sgml-catalog is called, it reads every configuration file
in the %p/etc/sgml/catalog.d/ directory. Each line of them contains
only 1 field, a reference to other SGML catalog file.
<<
DescPort: <<
	disable the self-test of ebcdic handling because GNU
	libiconv doesn't support ebcdic. See:
	https://bugzilla.gnome.org/show_bug.cgi?id=603432
	Should we switch to libicu support?
<<
DescPackaging: <<
	Previous versions by Christoph Pfisterer <chrisp@users.sourceforge.net>

	Hide xsltproc executables from ./configure to avoid circular
	dependencies (on libxslt-bin (depends on libxml2)) and network
	access during build. Fortunately, these executables are only
	used to build docs that already come prebuilt (we patch the
	targets instead of patching sources and rebuilding).

	As of 2.9.4-1, scrap static lib, which means we can avoid
	publishing any internal-implementation flags. See also
	Debian's 0001-modify-xml2-config-and-pkgconfig-behaviour.patch

	Use ppkg-config to avoid having glib2 as a BDep (and possible
	circular, because new glib might have libxml2 deps, and apple
	scrapped /usr/bin/python but python needs pkg-config to
	compile).

	Follow Debian's lead in assuming all linking is dynamic and
	remove --dynamic from *-config, but be lenient and don't have
	*-config crash when the flag is passed.

	Upstream intentionally broke ABI around 2.10. We follow
	redhat's lead to use options that re-enable what upstream
	calls "legacy".
	https://bugzilla.redhat.com/show_bug.cgi?id=2139546
	https://gitlab.gnome.org/GNOME/libxml2/-/issues/433
<<
License: BSD
Homepage: http://www.xmlsoft.org/