From 411f98039ed21823247efc1ad5b65259d4ec8080 Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Mon, 14 Feb 2022 01:30:37 +0100 Subject: [PATCH] Rework README - Merge INSTALL.libxml2, CONTRIBUTING and AUTHORS into README - Convert to Markdown - Redact and update content - Update links --- AUTHORS | 5 -- CONTRIBUTING | 20 -------- INSTALL.libxml2 | 71 ---------------------------- README | 40 ---------------- README.md | 121 ++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 121 insertions(+), 136 deletions(-) delete mode 100644 AUTHORS delete mode 100644 CONTRIBUTING delete mode 100644 INSTALL.libxml2 delete mode 100644 README create mode 100644 README.md diff --git a/AUTHORS b/AUTHORS deleted file mode 100644 index cf2e9a6fa..000000000 --- a/AUTHORS +++ /dev/null @@ -1,5 +0,0 @@ -Daniel Veillard -Bjorn Reese -William Brack -Igor Zlatkovic for the Windows port -Aleksey Sanin diff --git a/CONTRIBUTING b/CONTRIBUTING deleted file mode 100644 index dad456768..000000000 --- a/CONTRIBUTING +++ /dev/null @@ -1,20 +0,0 @@ -The current version of the code can be found in the GNOME Git Repository: - - https://gitlab.gnome.org/GNOME/libxml2 - -There's mirror on GitHub: - - https://github.com/GNOME/libxml2 - -Start discussions and send patches to the mailing list, or file a bug and -add a patch as attachment. - - https://mail.gnome.org/mailman/listinfo/xml - https://gitlab.gnome.org/GNOME/libxml2/issues - -Format patches with git-format-patch and use plain text attachments -if possible. - -All code must conform to C89 and pass the "make check" tests. Avoid -compiler warnings and add regression tests if possible. - diff --git a/INSTALL.libxml2 b/INSTALL.libxml2 deleted file mode 100644 index d369ef69c..000000000 --- a/INSTALL.libxml2 +++ /dev/null @@ -1,71 +0,0 @@ -See also the generic INSTALL file for configure options - -Compilation - - 1. What is the process to compile libxml? - - As most UNIX libraries libxml follows the "standard": - - gunzip -c xxx.tar.gz | tar xvf - - cd libxml-xxxx - - ./configure --help - - to see the options, then the compilation/installation proper - - ./configure [possible options] - make - make install - - At that point you may have to rerun ldconfig or similar utility to - update your list of installed shared libs. - - At this point you can check that the library is properly functioning - by running - - make check - - Please report test failures to the mailing list or bug tracker. - - Another option for compiling libxml is using CMake: - - cmake -E tar xf libxml2-xxx.tar.gz - cmake -S libxml2-xxx -B libxml2-xxx-build [possible options] - cmake --build libxml2-xxx-build - cmake --install libxml2-xxx-build - - Common CMake options include: - - -D BUILD_SHARED_LIBS=OFF # build static libraries - -D CMAKE_BUILD_TYPE=Release # specify build type - -D CMAKE_INSTALL_PREFIX=/usr/local # specify the install path - -D LIBXML2_WITH_ICONV=OFF # disable iconv - -D LIBXML2_WITH_LZMA=OFF # disable liblzma - -D LIBXML2_WITH_PYTHON=OFF # disable Python - -D LIBXML2_WITH_ZLIB=OFF # disable libz - - You can also open the libxml source directory with its CMakeLists.txt - directly in various IDEs such as CLion, QtCreator, or Visual Studio. - - 2. What other libraries are needed to compile/install libxml? - - Libxml does not require any other libraries. A platform with somewhat - recent POSIX support should be sufficient (please report any violation - to this rule you may find). - - However if found at configuration time, libxml will detect and use - the following libs: - - libz: a highly portable and widely available compression library - https://zlib.net/ - liblzma: another compression library - https://tukaani.org/xz/ - iconv: a powerful character encoding conversion library. It's - part of POSIX.1-2001, so it doesn't need to be installed - on modern UNIX-like systems, specifically on Linux. - https://www.gnu.org/software/libiconv/ - ICU: Mainly used by Chromium on Windows. Unnecessary on most - systems. - -Daniel -veillard@redhat.com diff --git a/README b/README deleted file mode 100644 index 9bffc5eb2..000000000 --- a/README +++ /dev/null @@ -1,40 +0,0 @@ - - XML toolkit from the GNOME project - -Full documentation is available on-line at - https://gitlab.gnome.org/GNOME/libxml2/-/wikis/home - -This code is released under the MIT Licence see the Copyright file. - -To build on an Unixised setup: - ./configure ; make ; make install - if the ./configure file does not exist, run ./autogen.sh instead. -To build on Windows: - see instructions on win32/Readme.txt - -To assert build quality: - on an Unixised setup: - run make tests - otherwise: - There is 3 standalone tools runtest.c runsuite.c testapi.c, which - should compile as part of the build or as any application would. - Launch them from this directory to get results, runtest checks - the proper functioning of libxml2 main APIs while testapi does - a full coverage check. Report failures to the list. - -Bugs should be reported at: - https://gitlab.gnome.org/GNOME/libxml2/-/issues - -A mailing-list xml@gnome.org is available, to subscribe: - http://mail.gnome.org/mailman/listinfo/xml - -The list archive is at: - http://mail.gnome.org/archives/xml/ - -All technical answers asked privately will be automatically answered on -the list and archived for public access unless privacy is explicitly -required and justified. - -Daniel Veillard - -$Id$ diff --git a/README.md b/README.md new file mode 100644 index 000000000..ce83d6201 --- /dev/null +++ b/README.md @@ -0,0 +1,121 @@ +# libxml2 + +libxml2 is an XML toolkit implemented in C, originally developed for +the GNOME Project. + +Full documentation is available at +. + +Bugs should be reported at +. + +A mailing list xml@gnome.org is available. You can subscribe at +. The list archive is at +. + +## License + +This code is released under the MIT License, see the Copyright file. + +## Build instructions + +libxml2 can be built with GNU Autotools, CMake, or several other build +systems in platform-specific subdirectories. + +### Autotools (for POSIX systems like Linux, BSD, macOS) + +If you build from a Git tree, you have to install Autotools and start +by generating the configuration files with: + + ./autogen.sh + +If you build from a source tarball, extract the archive with: + + tar xf libxml2-xxx.tar.gz + cd libxml2-xxx + +To see a list of build options: + + ./configure --help + +Also see the INSTALL file for additional instructions. Then you can +configure and build the library: + + ./configure [possible options] + make + +Now you can run the test suite with: + + make check + +Please report test failures to the mailing list or bug tracker. + +Then you can install the library: + + make install + +At that point you may have to rerun ldconfig or a similar utility to +update your list of installed shared libs. + +### CMake (mainly for Windows) + +Another option for compiling libxml is using CMake: + + cmake -E tar xf libxml2-xxx.tar.gz + cmake -S libxml2-xxx -B libxml2-xxx-build [possible options] + cmake --build libxml2-xxx-build + cmake --install libxml2-xxx-build + +Common CMake options include: + + -D BUILD_SHARED_LIBS=OFF # build static libraries + -D CMAKE_BUILD_TYPE=Release # specify build type + -D CMAKE_INSTALL_PREFIX=/usr/local # specify the install path + -D LIBXML2_WITH_ICONV=OFF # disable iconv + -D LIBXML2_WITH_LZMA=OFF # disable liblzma + -D LIBXML2_WITH_PYTHON=OFF # disable Python + -D LIBXML2_WITH_ZLIB=OFF # disable libz + +You can also open the libxml source directory with its CMakeLists.txt +directly in various IDEs such as CLion, QtCreator, or Visual Studio. + +## Dependencies + +Libxml does not require any other libraries. A platform with somewhat +recent POSIX support should be sufficient (please report any violation +to this rule you may find). + +However, if found at configuration time, libxml will detect and use +the following libraries: + +- [libz](https://zlib.net/), a highly portable and widely available + compression library. +- [liblzma](https://tukaani.org/xz/), another compression library. +- [libiconv](https://www.gnu.org/software/libiconv/), a character encoding + conversion library. The iconv function is part of POSIX.1-2001, so + libiconv isn't required on modern UNIX-like systems like Linux, BSD or + macOS. +- [ICU](https://icu.unicode.org/), a Unicode library. Mainly useful as an + alternative to iconv on Windows. Unnecessary on most other systems. + +## Contributing + +The current version of the code can be found in GNOME's GitLab at +at . The best way to get involved +is by creating issues and merge requests on GitLab. Alternatively, you can +start discussions and send patches to the mailing list. If you want to +work with patches, please format them with git-format-patch and use plain +text attachments. + +All code must conform to C89 and pass the GitLab CI tests. Add regression +tests if possible. + +## Authors + +- Daniel Veillard +- Bjorn Reese +- William Brack +- Igor Zlatkovic for the Windows port +- Aleksey Sanin +- Nick Wellnhofer +