diff --git a/.gitignore b/.gitignore
index e69de29..e73cd78 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1,2 @@
+OpenSP-1.5.1.tar.gz
+OpenSP-1.5.2.tar.gz
diff --git a/opensp-manpage.patch b/opensp-manpage.patch
new file mode 100644
index 0000000..0039d19
--- /dev/null
+++ b/opensp-manpage.patch
@@ -0,0 +1,39 @@
+diff -urNp OpenSP-1.5.2-orig/docsrc/osgmlnorm.xml OpenSP-1.5.2/docsrc/osgmlnorm.xml
+--- OpenSP-1.5.2-orig/docsrc/osgmlnorm.xml 2005-12-08 20:34:01.000000000 +0100
++++ OpenSP-1.5.2/docsrc/osgmlnorm.xml 2013-08-15 14:58:01.284430911 +0200
+@@ -173,6 +173,15 @@
+ Show error numbers in error messages.
+
+
++
++
++
++
++
++ Show the generic identifiers of open elements in error
++ messages.
++
++
+
+
+
+diff -urNp OpenSP-1.5.2-orig/docsrc/ospam.xml OpenSP-1.5.2/docsrc/ospam.xml
+--- OpenSP-1.5.2-orig/docsrc/ospam.xml 2005-12-08 20:34:01.000000000 +0100
++++ OpenSP-1.5.2/docsrc/ospam.xml 2013-08-15 14:53:58.414782217 +0200
+@@ -151,6 +151,16 @@
+ of stderr.
+
+
++
++
++
++
++
++ Show the generic identifiers of open elements in error
++ messages.
++
++
++
+
+
+
diff --git a/opensp-multilib.patch b/opensp-multilib.patch
new file mode 100644
index 0000000..a988613
--- /dev/null
+++ b/opensp-multilib.patch
@@ -0,0 +1,91 @@
+--- OpenSP-1.5.2/configure.in.multilib 2005-12-23 14:15:21.000000000 +0000
++++ OpenSP-1.5.2/configure.in 2006-06-13 13:36:49.000000000 +0100
+@@ -90,7 +90,7 @@
+ #define SP_SIZEOF_BOOL_1
+ #endif
+
+-#if (SIZEOF_WCHAR_T == SIZEOF_UNSIGNED_SHORT)
++#if (WCHAR_MAX == SHRT_MAX)
+ #define SP_WCHAR_T_USHORT
+ #endif
+
+--- OpenSP-1.5.2/lib/parser_inst.cxx.multilib 2005-07-21 16:33:41.000000000 +0100
++++ OpenSP-1.5.2/lib/parser_inst.cxx 2006-06-13 13:36:49.000000000 +0100
+@@ -9,6 +9,7 @@
+ // Copyright (c) 1994 James Clark
+ // See the file COPYING for copying permission.
+
++#include
+ #include "splib.h"
+
+ #ifdef SP_MANUAL_INST
+@@ -1338,7 +1339,7 @@
+ #endif
+ #endif
+ // we really just want to test if size_t == unsigned int
+-#if !defined(SIZEOF_SIZE_T) || !defined(SIZEOF_UNSIGNED_INT) || (SIZEOF_SIZE_T != SIZEOF_UNSIGNED_INT)
++#if INT_MAX != SSIZE_MAX
+ #ifdef __DECCXX
+ #pragma define_template Vector
+ #else
+--- OpenSP-1.5.2/lib/parser_inst.m4.multilib 2005-05-14 10:17:35.000000000 +0100
++++ OpenSP-1.5.2/lib/parser_inst.m4 2006-06-13 13:36:49.000000000 +0100
+@@ -1,6 +1,7 @@
+ // Copyright (c) 1994 James Clark
+ // See the file COPYING for copying permission.
+
++#include
+ #include "splib.h"
+
+ #ifdef SP_MANUAL_INST
+@@ -166,7 +167,7 @@
+ __instantiate(Vector)
+ __instantiate(Vector)
+ // we really just want to test if size_t == unsigned int
+-#if !defined(SIZEOF_SIZE_T) || !defined(SIZEOF_UNSIGNED_INT) || (SIZEOF_SIZE_T != SIZEOF_UNSIGNED_INT)
++#if INT_MAX != SSIZE_MAX
+ __instantiate(Vector)
+ #endif
+
+--- OpenSP-1.5.2/config.h.in.multilib 2005-11-05 09:43:42.000000000 +0000
++++ OpenSP-1.5.2/config.h.in 2006-06-13 13:41:45.000000000 +0100
+@@ -1,5 +1,7 @@
+ /* config.h.in. Generated from configure.in by autoheader. */
+
++#include
++
+ /* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
+ systems. This function is required for `alloca.c' support on those systems.
+ */
+@@ -333,22 +335,6 @@
+ /* The size of a `bool', as computed by sizeof. */
+ #undef SIZEOF_BOOL
+
+-/* The size of a `size_t', as computed by sizeof. */
+-#undef SIZEOF_SIZE_T
+-
+-/* The size of a `unsigned int', as computed by sizeof. */
+-#undef SIZEOF_UNSIGNED_INT
+-
+-/* The size of a `unsigned short', as computed by sizeof. */
+-#undef SIZEOF_UNSIGNED_SHORT
+-
+-/* The size of a `wchar_t', as computed by sizeof. */
+-#undef SIZEOF_WCHAR_T
+-
+-/* Define as the maximum value of type 'size_t', if the system doesn't define
+- it. */
+-#undef SIZE_MAX
+-
+ /* define this if h_errno should be declared extern int */
+ #undef SP_DECLARE_H_ERRNO
+
+@@ -503,7 +489,7 @@
+ #define SP_SIZEOF_BOOL_1
+ #endif
+
+-#if (SIZEOF_WCHAR_T == SIZEOF_UNSIGNED_SHORT)
++#if (WCHAR_MAX == SHRT_MAX)
+ #define SP_WCHAR_T_USHORT
+ #endif
+
diff --git a/opensp-nodeids.patch b/opensp-nodeids.patch
new file mode 100644
index 0000000..4e539d0
--- /dev/null
+++ b/opensp-nodeids.patch
@@ -0,0 +1,128 @@
+--- OpenSP-1.5.2/docsrc/releasenotes.xml.nodeids 2006-10-13 13:54:59.000000000 +0100
++++ OpenSP-1.5.2/docsrc/releasenotes.xml 2006-10-13 13:58:25.000000000 +0100
+@@ -1,7 +1,7 @@
+
+
+-
++
+
+ OpenSP 1.5.2
+ Release Notes
+@@ -16,7 +16,7 @@
+
+
+
+- OpenSP 1.5.2 Release Notes
++ OpenSP 1.5.2 Release Notes
+
+ The OpenJade project provides a suite of tools and libraries for
+ validating, processing and applying DSSSL (Document Style Semantics and
+@@ -29,7 +29,7 @@
+ can be used as a basis for either open source or commerical projects. The
+ library can be built as either a dynamic or static library.
+
+- Applications of OpenSP
++ Applications of OpenSP
+ The OpenSP library has been used in a number of projects. The
+ World Wide Web consortium on-line HTML and XHTML validator is based on the
+ OpenSP library. In addition to the OpenSP library a set of command line tools
+@@ -41,7 +41,7 @@
+ tools.
+
+
+- Obtaining OpenSP
++ Obtaining OpenSP
+ OpenSP is a project hosted at sourceforge.net and is available
+ from the OpenJade web site at http://openjade.sourceforge.net or directly from
+ the OpenJade project page at http://sourceforge.net/projects/openjade
+@@ -49,7 +49,7 @@
+ linkend="bindist"/> for information on how to obtain pre-compiled
+ binary packages.
+
+- Supported Platforms
++ Supported Platforms
+ OpenSP is intended to be as portable as possible. It should be
+ possible to compile and build on most contemporary UNIX type platforms. In
+ addition OpenSP should also build on Microsoft's Win32 based operating
+@@ -166,7 +166,7 @@
+ openjade-devel@lists.sourceforge.net, including any
+ diffs/patches you have used.
+
+- Building OpenSP from Source
++ Building OpenSP from Source
+ OpenSP requires 20Mb to 50Mb of disk space to build. An
+ installation will require around 10Mb to 20Mb depending on
+ architecture.
+@@ -249,7 +249,7 @@
+ the latest version of OpenSP to be available from your distributor in due
+ course.
+
+- Installation
++ Installation
+ In addition to the OpenSP executables and libraries you will also
+ need various DTDs and declaration files. Some DTDs and associated files
+ (entity definitions) are available in the pubtext
+@@ -263,7 +263,7 @@
+ recommended that you set up and use such a catalog system.
+
+
+- Support
++ Support
+ If, after reading the documentation, you still have a problem,
+ then you may require some additional help. The OpenJade project is a volunteer
+ effort and as such does not provide any formal support. Instead, you should
+@@ -299,7 +299,7 @@
+ often the case that someone has had the same problem before.
+
+
+- Version 1.5.2
++ Version 1.5.2
+ Released December 2005.
+ The release contains a number of enhancements together with
+ support for version 4.0 of the GNU C++ compiler.
+@@ -418,7 +418,7 @@
+
+
+
+- Version 1.5.1
++ Version 1.5.1
+ Released October 2003.
+ The release contains a number of new features together with
+ support for version 3.3 for the GNU C++ compiler.
+@@ -613,7 +613,7 @@
+
+
+
+- Version 1.5
++ Version 1.5
+ Released November 2002.
+ In addition to many new features this version also supports the
+ latest GNU C++ compiler: gcc 3.2 at the time of writing.
+@@ -976,7 +976,7 @@
+
+
+
+-
++
+ Version 1.4
+ Released February 2000
+ Version 1.4 added many improvements. Changes
+@@ -1023,7 +1023,7 @@
+
+
+
+- Version 1.3.4
++ Version 1.3.4
+ Released October 1999
+ The second release from the OpenJade project. This version was
+ distributed as part of OpenJade 1.3
+@@ -1040,7 +1040,7 @@
+
+
+
+- Version 1.3.3
++ Version 1.3.3
+ The first release from the OpenJade project
+
+
diff --git a/opensp-sigsegv.patch b/opensp-sigsegv.patch
new file mode 100644
index 0000000..69bd3a9
--- /dev/null
+++ b/opensp-sigsegv.patch
@@ -0,0 +1,20 @@
+--- OpenSP-1.5.2/lib/ExtendEntityManager.cxx 2005-11-05 10:05:20.000000000 +0100
++++ OpenSP-1.5.2.new/lib/ExtendEntityManager.cxx 2007-06-21 12:56:26.000000000 +0200
+@@ -1238,7 +1238,8 @@ StorageObjectSpec::StorageObjectSpec()
+ }
+
+ StorageObjectSpec::StorageObjectSpec(const StorageObjectSpec& x)
+-: codingSystemName(x.codingSystemName),
++: storageManager(x.storageManager),
++ codingSystemName(x.codingSystemName),
+ codingSystem(x.codingSystem),
+ specId(x.specId),
+ baseId(x.baseId),
+@@ -1253,6 +1254,7 @@ StorageObjectSpec::StorageObjectSpec(con
+ StorageObjectSpec& StorageObjectSpec::operator=(const StorageObjectSpec& x)
+ {
+ if (this != &x) {
++ storageManager = x.storageManager;
+ codingSystemName = x.codingSystemName;
+ codingSystem = x.codingSystem;
+ specId = x.specId;
diff --git a/opensp.spec b/opensp.spec
new file mode 100644
index 0000000..088f08d
--- /dev/null
+++ b/opensp.spec
@@ -0,0 +1,259 @@
+Summary: SGML and XML parser
+Name: opensp
+Version: 1.5.2
+Release: 35%{?dist}
+Requires: sgml-common >= 0.5
+Provides: bundled(gettext) = 0.14.5
+URL: http://openjade.sourceforge.net/
+Source: http://download.sourceforge.net/openjade/OpenSP-%{version}.tar.gz
+Patch0: opensp-multilib.patch
+Patch1: opensp-nodeids.patch
+Patch2: opensp-sigsegv.patch
+Patch3: opensp-manpage.patch
+License: MIT
+
+BuildRequires: gcc-c++
+
+%if ! 0%{?_module_build}
+BuildRequires: xmlto, jadetex
+%endif
+
+%description
+OpenSP is an implementation of the ISO/IEC 8879:1986 standard SGML
+(Standard Generalized Markup Language). OpenSP is based on James
+Clark's SP implementation of SGML. OpenSP is a command-line
+application and a set of components, including a generic API.
+
+%package devel
+Summary: Files for developing applications that use OpenSP
+Requires: %{name} = %{version}-%{release}
+
+%description devel
+Header files and libtool library for developing applications that use OpenSP.
+
+
+%prep
+%setup -q -n OpenSP-%{version}
+%patch0 -p1 -b .multilib
+%patch1 -p1 -b .nodeids
+%patch2 -p1 -b .sigsegv
+%patch3 -p1 -b .manpage
+# convert files to UTF-8
+iconv -f latin1 -t utf8 ChangeLog -o ChangeLog.tmp
+mv -f ChangeLog.tmp ChangeLog
+
+# ensure that applying the above patches doesn't cause lib/parser_inst.cxx to
+# be regenerated
+
+touch lib/parser_inst.cxx
+
+%build
+%configure \
+%if 0%{?_module_build}
+ --disable-doc-build \
+%endif
+ --disable-dependency-tracking --disable-static --enable-http \
+ --enable-default-catalog=%{_sysconfdir}/sgml/catalog \
+ --enable-default-search-path=%{_datadir}/sgml:%{_datadir}/xml
+make %{?_smp_mflags}
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+make install DESTDIR=$RPM_BUILD_ROOT
+
+# Get rid of libtool libraries
+rm $RPM_BUILD_ROOT%{_libdir}/*.la
+
+# oMy, othis ois osilly.
+for file in nsgmls sgmlnorm spam spent sx ; do
+ ln -s o$file $RPM_BUILD_ROOT%{_bindir}/$file
+%if ! 0%{?_module_build}
+ echo ".so man1/o${file}.1" > $RPM_BUILD_ROOT%{_mandir}/man1/${file}.1
+%endif
+done
+
+#
+# Rename sx to sgml2xml.
+mv $RPM_BUILD_ROOT%{_bindir}/sx $RPM_BUILD_ROOT%{_bindir}/sgml2xml
+%if ! 0%{?_module_build}
+mv $RPM_BUILD_ROOT%{_mandir}/man1/{sx,sgml2xml}.1
+%endif
+
+#
+# Clean out (installed) redundant copies of the docs and DTDs.
+rm -rf $RPM_BUILD_ROOT%{_docdir}/OpenSP
+rm -rf $RPM_BUILD_ROOT%{_datadir}/OpenSP
+
+%find_lang sp5
+
+
+%check
+make check || : # TODO: failures as of 1.5.2 :(
+
+
+%ldconfig_scriptlets
+
+
+%files -f sp5.lang
+%if ! 0%{?_module_build}
+%doc doc/*.htm
+%doc docsrc/releasenotes.html
+%endif
+%doc AUTHORS BUGS COPYING ChangeLog NEWS README
+%doc pubtext/opensp-implied.dcl
+%{_bindir}/*
+%{_libdir}/libosp.so.*
+%if ! 0%{?_module_build}
+%{_mandir}/man1/*.1*
+%endif
+
+%files devel
+%{_includedir}/OpenSP/
+%{_libdir}/libosp.so
+
+
+%changelog
+* Tue Jul 28 2020 Fedora Release Engineering - 1.5.2-35
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
+
+* Wed Jan 29 2020 Fedora Release Engineering - 1.5.2-34
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
+
+* Thu Jul 25 2019 Fedora Release Engineering - 1.5.2-33
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+
+* Fri Feb 01 2019 Fedora Release Engineering - 1.5.2-32
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
+
+* Tue Nov 27 2018 Ondrej Vasik - 1.5.2-31
+- add note about bundled old gettext library
+
+* Sat Jul 21 2018 Ondrej Vasik - 1.5.2-30
+- BuildRequires: gcc-c++ (#1605338)
+
+* Fri Jul 13 2018 Fedora Release Engineering - 1.5.2-29
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
+
+* Thu Feb 08 2018 Fedora Release Engineering - 1.5.2-28
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
+* Thu Aug 03 2017 Fedora Release Engineering - 1.5.2-27
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
+
+* Thu Jul 27 2017 Fedora Release Engineering - 1.5.2-26
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
+
+* Tue Apr 25 2017 Nils Philippsen - 1.5.2-25
+- don't regenerate lib/parser_inst.cxx, this would require perl as a build
+ dependency
+
+* Mon Apr 24 2017 Nils Philippsen - 1.5.2-25
+- don't build documentation during modular build
+- fix bogus changelog date
+
+* Sat Feb 11 2017 Fedora Release Engineering - 1.5.2-24
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
+
+* Thu Feb 04 2016 Fedora Release Engineering - 1.5.2-23
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
+
+* Thu Jun 18 2015 Fedora Release Engineering - 1.5.2-22
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
+
+* Sat May 02 2015 Kalev Lember - 1.5.2-21
+- Rebuilt for GCC 5 C++11 ABI change
+
+* Sun Aug 17 2014 Fedora Release Engineering - 1.5.2-20
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
+
+* Sat Jun 07 2014 Fedora Release Engineering - 1.5.2-19
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
+
+* Thu Aug 15 2013 Ondrej Vasik - 1.5.2-18
+- fix the inconsistency between man page and help (#854941)
+
+* Sat Aug 03 2013 Fedora Release Engineering - 1.5.2-17
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
+
+* Thu Feb 14 2013 Fedora Release Engineering - 1.5.2-16
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
+
+* Fri Jul 20 2012 Fedora Release Engineering - 1.5.2-15
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Fri Jan 13 2012 Fedora Release Engineering - 1.5.2-14
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
+
+* Tue Feb 08 2011 Fedora Release Engineering - 1.5.2-13
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
+* Sat Jul 25 2009 Fedora Release Engineering - 1.5.2-12
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
+
+* Thu Feb 26 2009 Fedora Release Engineering - 1.5.2-11
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
+
+* Fri Oct 24 2008 Ondrej Vasik 1.5.2-10
+- move conversion to prep, do not convert html doc(#226217)
+
+* Thu Oct 23 2008 Ondrej Vasik 1.5.2-9
+- convert doc files to UTF-8 (#226217)
+
+* Wed Oct 22 2008 Ondrej Vasik 1.5.2-8
+- merge review by V.Skyttä (#226217), changed license to
+ MIT, dropped .la, adjusted comments
+
+* Mon Feb 11 2008 Ondrej Vasik 1.5.2-7
+- gcc43 rebuild
+
+* Mon Aug 27 2007 Ondrej Vasik 1.5.2-6
+- License tag change to BSD
+- Rebuilt for F8
+
+* Thu Jun 21 2007 Ondrej Vasik 1.5.2-5
+- fixed SIGSEGV (bug #245104)
+
+* Mon Feb 12 2007 Tim Waugh 1.5.2-4
+- Fixed build root.
+- Give IDs to nodes in the release notes source to prevent releasenotes.html
+ having multilib conflicts (bug #228320).
+
+* Wed Jul 12 2006 Jesse Keating - 1.5.2-3.1
+- rebuild
+
+* Tue Jun 13 2006 Tim Waugh 1.5.2-3
+- Fixed multilib fix (bug #194702).
+
+* Fri May 26 2006 Tim Waugh 1.5.2-2
+- Fixed multilib devel conflicts (bug #192741).
+
+* Fri Feb 10 2006 Jesse Keating - 1.5.2-1.2
+- bump again for double-long bug on ppc(64)
+
+* Tue Feb 07 2006 Jesse Keating - 1.5.2-1.1
+- rebuilt for new gcc4.1 snapshot and glibc changes
+
+* Thu Jan 5 2006 Tim Waugh 1.5.2-1
+- 1.5.2.
+
+* Wed Dec 14 2005 Tim Waugh 1.5.1-2
+- Backported patch from 1.5.2pre1 to fix ArcEngine crash.
+
+* Tue Dec 13 2005 Tim Waugh 1.5.1-1
+- Back down to 1.5.1 for now.
+- Fixes for GCC4.1.
+
+* Sun Dec 4 2005 Ville Skyttä - 1.5.2-0.1.pre1
+- Fix build dependencies.
+- Require exact version of main package in -devel.
+- Build with dependency tracking disabled.
+- Add %%{_datadir}/xml to default search path.
+- Run test suite during build.
+- Add URL tag.
+- Use %%find_lang.
+- Cosmetic improvements.
+
+* Tue Nov 29 2005 Terje Bless 1.5.2-0.pre1
+- New package OpenSP.
+
diff --git a/sources b/sources
new file mode 100644
index 0000000..3fb028b
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+670b223c5d12cee40c9137be86b6c39b OpenSP-1.5.2.tar.gz