From 0c6cd463976e71aad2eb61f38e8afc60ffa08d6a Mon Sep 17 00:00:00 2001 From: DongHun Kwak Date: Tue, 29 Jun 2021 14:58:00 +0900 Subject: [PATCH] Bump to libxml2 2.9.12 Change-Id: I4c0631eb040d2a87101f0988cd531580335f7433 Signed-off-by: DongHun Kwak --- .gitattributes | 2 - .gitignore | 127 --------------- .gitlab-ci.yml | 277 --------------------------------- .travis.yml | 23 --- packaging/Add_pie_compile_option.patch | 22 +++ packaging/baselibs.conf | 3 + packaging/libxml2.manifest | 5 + packaging/libxml2.spec | 124 +++++++++++++++ 8 files changed, 154 insertions(+), 429 deletions(-) delete mode 100644 .gitattributes delete mode 100644 .gitignore delete mode 100644 .gitlab-ci.yml delete mode 100644 .travis.yml create mode 100644 packaging/Add_pie_compile_option.patch create mode 100644 packaging/baselibs.conf create mode 100644 packaging/libxml2.manifest create mode 100644 packaging/libxml2.spec diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index a688634..0000000 --- a/.gitattributes +++ /dev/null @@ -1,2 +0,0 @@ -/result/** -text -/test/** -text diff --git a/.gitignore b/.gitignore deleted file mode 100644 index ad751e8..0000000 --- a/.gitignore +++ /dev/null @@ -1,127 +0,0 @@ -*.exe -*.o -*.lo -*.log -*.pyc -*.patch -.deps -.libs -.memdump -COPYING -CVE-* -INSTALL -Makefile -Makefile.in -aclocal.m4 -autom4te.cache -bissect* -compile -config.guess -config.h -config.h.in -config.h.in~ -config.log -config.status -config.sub -configure -dba100000.xml -depcomp -doc/Makefile -doc/Makefile.in -doc/devhelp/Makefile -doc/devhelp/Makefile.in -doc/examples/.deps -doc/examples/Makefile -doc/examples/Makefile.in -doc/examples/io1 -doc/examples/io2 -doc/examples/parse1 -doc/examples/parse2 -doc/examples/parse3 -doc/examples/parse4 -doc/examples/reader1 -doc/examples/reader2 -doc/examples/reader3 -doc/examples/reader4 -doc/examples/testWriter -doc/examples/tree1 -doc/examples/tree2 -doc/examples/xpath1 -doc/examples/xpath2 -example/.deps -example/Makefile -example/Makefile.in -example/gjobread -include/Makefile -include/Makefile.in -include/libxml/Makefile -include/libxml/Makefile.in -include/libxml/xmlversion.h -install-sh -libtool -libxml-2.0-uninstalled.pc -libxml-2.0.pc -libxml2-config.cmake -libxml2.la -libxml2.spec -list -ltmain.sh -log -missing -missing.lst -m4 -python/.deps -python/.libs -python/Makefile -python/Makefile.in -python/gen_prog -python/libxml2-export.c -python/libxml2-py.c -python/libxml2-py.h -python/libxml2.py -python/libxml2class.py -python/libxml2class.txt -python/libxml2mod.la -python/setup.py -python/tests/Makefile -python/tests/Makefile.in -python/tests/tmp.xml -runsuite -runtest -runxmlconf -runxmlconf.log -stamp-h1 -tags -test.out -testAutomata -testC14N -testHTML -testModule -testReader -testRegexp -testRelax -testSAX -testSchemas -testThreads -testURI -testXPath -testapi -testapi.c.new -testchar -testdict -testdso.la -testlimits -testrecurse -tmp -tst.c -tst -xml2-config -xml2Conf.sh -xmlcatalog -xmlconf -xmllint -xstc/*-test.py -xstc/Makefile -xstc/Makefile.in -xstc/Tests -xstc/xsts-*.tar.gz diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index e58ebd0..0000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,277 +0,0 @@ -.test: - # The image was generated with the following Dockerfile. It is also used - # for libxslt, that's why we need git and libgcrypt-dev. - # - # FROM ubuntu:20.04 - # ENV DEBIAN_FRONTEND=noninteractive - # RUN apt-get update && \ - # apt-get upgrade -y && \ - # apt-get install -y --no-install-recommends \ - # curl git ca-certificates \ - # autoconf automake libtool pkg-config \ - # make gcc clang llvm \ - # zlib1g-dev liblzma-dev libgcrypt-dev \ - # python-dev python3-dev \ - # cmake - # WORKDIR /tests - # RUN curl https://www.w3.org/XML/Test/xmlts20080827.tar.gz |tar xz - image: registry.gitlab.gnome.org/gnome/libxml2 - script: - - | - ln -s /tests/xmlconf - sh autogen.sh $CONFIG - make -j$(nproc) V=1 CFLAGS="$CFLAGS -Werror" - make check - -gcc: - extends: .test - variables: - CFLAGS: "-O2 -std=c89 -D_XOPEN_SOURCE=700" - -gcc:python3: - extends: .test - only: - - schedules - variables: - CONFIG: "--with-python=/usr/bin/python3" - CFLAGS: "-O2" - -clang:asan: - extends: .test - variables: - CONFIG: "--without-python" - CC: clang - CFLAGS: "-O2 -g -fno-omit-frame-pointer -fsanitize=address,undefined,unsigned-integer-overflow -fno-sanitize-recover=all -Wno-error=cast-align" - # LeakSanitizer requires SYS_CAP_PTRACE - ASAN_OPTIONS: "detect_leaks=0" - UBSAN_OPTIONS: "print_stacktrace=1" - -clang:msan: - extends: .test - only: - - schedules - variables: - CONFIG: "--without-python --without-zlib --without-lzma" - CC: clang - CFLAGS: "-O2 -g -fno-omit-frame-pointer -fsanitize=memory -Wno-error=cast-align" - -.cmake:linux: - image: registry.gitlab.gnome.org/gnome/libxml2 - script: - - cmake -DBUILD_SHARED_LIBS=$BUILD_SHARED_LIBS -DCMAKE_INSTALL_PREFIX=libxml2-install -DCMAKE_BUILD_TYPE=RelWithDebInfo -DLIBXML2_XMLCONF_WORKING_DIR=/tests -S . -B libxml2-build - - cmake --build libxml2-build --target install - - mkdir -p libxml2-install/share/libxml2 - - cp Copyright libxml2-install/share/libxml2 - - cd libxml2-build - - ctest -VV - after_script: - - cd libxml2-install - - tar -czf ../libxml2-$CI_COMMIT_SHORT_SHA-$CC-$SUFFIX.tar.gz * - artifacts: - paths: - - libxml2-$CI_COMMIT_SHORT_SHA-$CC-$SUFFIX.tar.gz - expire_in: 1 day - -cmake:linux:gcc:shared: - extends: .cmake:linux - only: - - schedules - variables: - BUILD_SHARED_LIBS: "ON" - CC: gcc - SUFFIX: shared - -cmake:linux:gcc:static: - extends: .cmake:linux - only: - - schedules - variables: - BUILD_SHARED_LIBS: "OFF" - CC: gcc - SUFFIX: static - -cmake:linux:clang:shared: - extends: .cmake:linux - only: - - schedules - variables: - BUILD_SHARED_LIBS: "ON" - CC: clang - SUFFIX: shared - -cmake:linux:clang:static: - extends: .cmake:linux - only: - - schedules - variables: - BUILD_SHARED_LIBS: "OFF" - CC: clang - SUFFIX: static - -.cmake:mingw: - tags: - - win32-ps - before_script: - - "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12" - - $Env:Path="C:\msys64\$Env:MINGW_PATH\bin;C:\msys64\usr\bin;$Env:Path" - - pacman --noconfirm -Syu - - pacman --noconfirm -S - $Env:MINGW_PACKAGE_PREFIX-cmake - $Env:MINGW_PACKAGE_PREFIX-libiconv - $Env:MINGW_PACKAGE_PREFIX-ninja - $Env:MINGW_PACKAGE_PREFIX-python - $Env:MINGW_PACKAGE_PREFIX-python2 - $Env:MINGW_PACKAGE_PREFIX-xz - $Env:MINGW_PACKAGE_PREFIX-zlib - - if (-not (Test-Path 7za.exe)) { - Invoke-WebRequest -Uri https://www.7-zip.org/a/7z1900-extra.7z -OutFile 7z1900-extra.7z ; - cmake -E tar xf 7z1900-extra.7z 7za.exe - } - - if (-not (Test-Path libxml2-build/xmlconf)) { - Invoke-WebRequest -Uri https://www.w3.org/XML/Test/xmlts20080827.tar.gz -OutFile xmlts20080827.tar.gz ; - .\7za.exe x xmlts20080827.tar.gz -olibxml2-build - } - script: - - cmake -G Ninja -DBUILD_SHARED_LIBS="$Env:BUILD_SHARED_LIBS" -DCMAKE_INSTALL_PREFIX=libxml2-install -DCMAKE_BUILD_TYPE=RelWithDebInfo -S . -B libxml2-build - - cmake --build libxml2-build --target install - - New-Item -ItemType Directory libxml2-install\share\libxml2 - - Copy-Item Copyright libxml2-install\share\libxml2 - - cd libxml2-build - - ctest -VV - after_script: - - .\7za.exe a libxml2-$Env:CI_COMMIT_SHORT_SHA-$Env:MINGW_PACKAGE_PREFIX-$Env:SUFFIX.7z .\libxml2-install\* - cache: - key: "$MINGW_PACKAGE_PREFIX" - paths: - - libxml2-build/xmlconf/ - - 7za.exe - artifacts: - paths: - - libxml2-$Env:CI_COMMIT_SHORT_SHA-$Env:MINGW_PACKAGE_PREFIX-$Env:SUFFIX.7z - expire_in: 1 day - -cmake:mingw:w64-i686:shared: - extends: .cmake:mingw - only: - - schedules - variables: - BUILD_SHARED_LIBS: "ON" - MINGW_PACKAGE_PREFIX: mingw-w64-i686 - MINGW_PATH: mingw32 - SUFFIX: shared - -cmake:mingw:w64-i686:static: - extends: .cmake:mingw - only: - - schedules - variables: - BUILD_SHARED_LIBS: "OFF" - MINGW_PACKAGE_PREFIX: mingw-w64-i686 - MINGW_PATH: mingw32 - SUFFIX: static - -cmake:mingw:w64-x86_64:shared: - extends: .cmake:mingw - variables: - BUILD_SHARED_LIBS: "ON" - MINGW_PACKAGE_PREFIX: mingw-w64-x86_64 - MINGW_PATH: mingw64 - SUFFIX: shared - -cmake:mingw:w64-x86_64:static: - extends: .cmake:mingw - only: - - schedules - variables: - BUILD_SHARED_LIBS: "OFF" - MINGW_PACKAGE_PREFIX: mingw-w64-x86_64 - MINGW_PATH: mingw64 - SUFFIX: static - -.cmake:msvc: - tags: - - win32-ps - variables: - CMAKE_VERSION: 3.19.4 - before_script: - - "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12" - - if (-not (Test-Path cmake-$Env:CMAKE_VERSION-win64-x64)) { - Invoke-WebRequest -Uri http://github.com/Kitware/CMake/releases/download/v$Env:CMAKE_VERSION/cmake-$Env:CMAKE_VERSION-win64-x64.zip -OutFile cmake-$Env:CMAKE_VERSION-win64-x64.zip ; - Expand-Archive cmake-$Env:CMAKE_VERSION-win64-x64.zip -DestinationPath . - } - - $Env:Path="$Env:CI_PROJECT_DIR\cmake-$Env:CMAKE_VERSION-win64-x64\bin;$Env:Path" - - if (-not (Test-Path 7za.exe)) { - Invoke-WebRequest -Uri https://www.7-zip.org/a/7z1900-extra.7z -OutFile 7z1900-extra.7z ; - cmake -E tar xf 7z1900-extra.7z 7za.exe - } - - if (-not (Test-Path libxml2-build/xmlconf)) { - Invoke-WebRequest -Uri https://www.w3.org/XML/Test/xmlts20080827.tar.gz -OutFile xmlts20080827.tar.gz ; - .\7za.exe x xmlts20080827.tar.gz -olibxml2-build - } - script: - - cmake -DBUILD_SHARED_LIBS="$Env:BUILD_SHARED_LIBS" -DCMAKE_INSTALL_PREFIX=libxml2-install -DLIBXML2_WITH_ICONV=OFF -DLIBXML2_WITH_LZMA=OFF -DLIBXML2_WITH_PYTHON=OFF -DLIBXML2_WITH_ZLIB=OFF -S . -B libxml2-build - - cmake --build libxml2-build --config Debug --target install - - cmake --build libxml2-build --config Release --target install - - New-Item -ItemType Directory libxml2-install\share\libxml2 - - Copy-Item Copyright libxml2-install\share\libxml2 - - cd libxml2-build - - ctest -C Debug -VV - - ctest -C Release -VV - after_script: - - .\7za.exe a libxml2-$Env:CI_COMMIT_SHORT_SHA-$Env:CMAKE_GENERATOR_TOOLSET-$Env:CMAKE_GENERATOR_PLATFORM-$Env:SUFFIX.7z .\libxml2-install\* - cache: - key: "msvc" - paths: - - cmake-$Env:CMAKE_VERSION-win64-x64/ - - libxml2-build/xmlconf/ - - 7za.exe - artifacts: - paths: - - libxml2-$Env:CI_COMMIT_SHORT_SHA-$Env:CMAKE_GENERATOR_TOOLSET-$Env:CMAKE_GENERATOR_PLATFORM-$Env:SUFFIX.7z - expire_in: 1 day - -.cmake:msvc:v141: - extends: .cmake:msvc - variables: - CMAKE_GENERATOR: Visual Studio 15 2017 - CMAKE_GENERATOR_TOOLSET: v141 - -.cmake:msvc:v141:x64: - extends: .cmake:msvc:v141 - variables: - CMAKE_GENERATOR_PLATFORM: x64 - -cmake:msvc:v141:x64:shared: - extends: .cmake:msvc:v141:x64 - variables: - BUILD_SHARED_LIBS: "ON" - SUFFIX: shared - -cmake:msvc:v141:x64:static: - extends: .cmake:msvc:v141:x64 - only: - - schedules - variables: - BUILD_SHARED_LIBS: "OFF" - SUFFIX: static - -.cmake:msvc:v141:x86: - extends: .cmake:msvc:v141 - only: - - schedules - variables: - CMAKE_GENERATOR_PLATFORM: Win32 - -cmake:msvc:v141:x86:shared: - extends: .cmake:msvc:v141:x86 - only: - - schedules - variables: - BUILD_SHARED_LIBS: "ON" - SUFFIX: shared - -cmake:msvc:v141:x86:static: - extends: .cmake:msvc:v141:x86 - variables: - BUILD_SHARED_LIBS: "OFF" - SUFFIX: static diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 358e8cb..0000000 --- a/.travis.yml +++ /dev/null @@ -1,23 +0,0 @@ -language: c -sudo: false -addons: - apt: - packages: - # Some tests require the DTDs. - w3c-sgml-lib -matrix: - include: - # Try to emulate a C89 compiler on a POSIX system by disabling as many - # GNU extensions as possible. - - compiler: gcc - env: CFLAGS="-O2 -std=c89 -D_XOPEN_SOURCE=700 -Werror -Wno-error=array-bounds" - # clang with AddressSanitizer and UndefinedBehaviorSanitizer. - - compiler: clang - sudo: required - dist: trusty - env: CONFIG="--without-python" - CFLAGS="-O2 -g -fno-omit-frame-pointer -fsanitize=address,undefined,unsigned-integer-overflow -fno-sanitize-recover=all -Werror -Wno-error=cast-align" - UBSAN_OPTIONS=print_stacktrace=1 -script: sh autogen.sh $CONFIG && make -j2 V=1 && make check -git: - depth: 10 diff --git a/packaging/Add_pie_compile_option.patch b/packaging/Add_pie_compile_option.patch new file mode 100644 index 0000000..4b778f2 --- /dev/null +++ b/packaging/Add_pie_compile_option.patch @@ -0,0 +1,22 @@ +diff --git a/Makefile.am b/Makefile.am +index a9284b9..83096cb 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -97,7 +97,7 @@ runsuite_DEPENDENCIES = $(DEPS) + runsuite_LDADD= $(RDL_LIBS) $(LDADDS) + + xmllint_SOURCES=xmllint.c +-xmllint_LDFLAGS = ++xmllint_LDFLAGS = -pie + xmllint_DEPENDENCIES = $(DEPS) + xmllint_LDADD= $(RDL_LIBS) $(LDADDS) + +@@ -112,7 +112,7 @@ testHTML_DEPENDENCIES = $(DEPS) + testHTML_LDADD= $(LDADDS) + + xmlcatalog_SOURCES=xmlcatalog.c +-xmlcatalog_LDFLAGS = ++xmlcatalog_LDFLAGS = -pie + xmlcatalog_DEPENDENCIES = $(DEPS) + xmlcatalog_LDADD = $(RDL_LIBS) $(LDADDS) + diff --git a/packaging/baselibs.conf b/packaging/baselibs.conf new file mode 100644 index 0000000..b3d6bf8 --- /dev/null +++ b/packaging/baselibs.conf @@ -0,0 +1,3 @@ +libxml2 +libxml2-devel + requires "libxml2- = " diff --git a/packaging/libxml2.manifest b/packaging/libxml2.manifest new file mode 100644 index 0000000..017d22d --- /dev/null +++ b/packaging/libxml2.manifest @@ -0,0 +1,5 @@ + + + + + diff --git a/packaging/libxml2.spec b/packaging/libxml2.spec new file mode 100644 index 0000000..fb08363 --- /dev/null +++ b/packaging/libxml2.spec @@ -0,0 +1,124 @@ +Name: libxml2 +Version: 2.9.12 +Release: 0 +Summary: A Library to Manipulate XML Files +License: MIT +Group: System/Libraries +Url: http://xmlsoft.org +# Source ftp://xmlsoft.org/libxml2/libxml2-git-snapshot.tar.gz changes every day +Source: ftp://xmlsoft.org/libxml2/%{name}-%{version}.tar.gz +Source2: baselibs.conf +Source3: Add_pie_compile_option.patch +Source1001: libxml2.manifest +BuildRequires: pkg-config +BuildRequires: readline-devel +BuildRequires: xz-devel +BuildRequires: zlib-devel + +%description +The XML C library was initially developed for the GNOME project. It is +now used by many programs to load and save extensible data structures +or manipulate any kind of XML files. + +This library implements a number of existing standards related to +markup languages, including the XML standard, name spaces in XML, XML +Base, RFC 2396, XPath, XPointer, HTML4, XInclude, SGML catalogs, and +XML catalogs. In most cases, libxml tries to implement the +specification in a rather strict way. To some extent, it provides +support for the following specifications, but does not claim to +implement them: DOM, FTP client, HTTP client, and SAX. + +The library also supports RelaxNG. Support for W3C XML Schemas is in +progress. + + +%package tools +Summary: Tools using libxml +Group: System/Libraries + +%description tools +This package contains xmllint, a very useful tool proving libxml's power. + +%package devel +Summary: Include Files and Libraries mandatory for Development +Group: Development/Libraries +Requires: %{name} = %{version} +Requires: %{name}-tools = %{version} +Requires: glibc-devel +Requires: readline-devel +Requires: xz-devel +Requires: zlib-devel + +%description devel +This package contains all necessary include files and libraries needed +to develop applications that require these. + +%prep +%setup -q +cp %{SOURCE1001} . +%{__patch} -p1 < %{SOURCE3} + +%build +export CFLAGS+=" -fPIC" +chmod +x autogen.sh +%autogen +%configure --disable-static \ + --docdir=%_docdir/%name \ + --with-html-dir=%_docdir/%name/html \ + --with-fexceptions \ + --with-history \ + --without-python \ + --enable-ipv6 \ + --with-sax1 \ + --with-regexps \ + --with-threads \ + --with-reader \ + --with-http + +make %{?_smp_mflags} BASE_DIR="%_docdir" DOC_MODULE="%name" + +%check +rm -f /tmp/%{name}_test +%__make runtests + + +%install +make install DESTDIR="%buildroot" BASE_DIR="%_docdir" DOC_MODULE="%name" +ln -s libxml2/libxml %{buildroot}%{_includedir}/libxml + +%remove_docs + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + +%files +%manifest %{name}.manifest +%defattr(-, root, root) +%license Copyright +%{_libdir}/lib*.so.* + +%files tools +%manifest %{name}.manifest +%defattr(-, root, root) +%license Copyright +%{_bindir}/xmllint +%{_bindir}/xmlcatalog + +%files devel +%manifest %{name}.manifest +%defattr(-, root, root) +%license Copyright +%{_bindir}/xml2-config +%dir %{_datadir}/aclocal +%{_datadir}/aclocal/libxml.m4 +%{_includedir}/libxml +%{_includedir}/libxml2 +%{_libdir}/lib*.so +# libxml2.la is needed for the python-libxml2 build. Deleting it breaks build of python-libxml2. +%{_libdir}/libxml2.la +%{_libdir}/*.sh +%{_libdir}/pkgconfig/*.pc +%{_libdir}/cmake/libxml2/libxml2-config.cmake + +%changelog -- 2.7.4