Initial package import

This commit is contained in:
David Shea 2019-02-07 14:37:00 -05:00
parent 6225bdc115
commit d01a35a2c3
5 changed files with 288 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/mandoc-1.14.4.tar.gz

39
mandoc-install-hdr.patch Normal file
View File

@ -0,0 +1,39 @@
diff -purN mandoc-1.14.4.orig/Makefile mandoc-1.14.4/Makefile
--- mandoc-1.14.4.orig/Makefile 2019-02-07 12:03:35.614493086 -0500
+++ mandoc-1.14.4/Makefile 2019-02-07 12:04:04.825552194 -0500
@@ -430,7 +430,7 @@ lib-install: libmandoc.so.$(SOVERSION)
$(INSTALL_LIB) libmandoc.so.$(SOVERSION) $(DESTDIR)$(LIBDIR)
ln -s libmandoc.so.$(SOVERSION) $(DESTDIR)$(LIBDIR)/libmandoc.so.$(SOMAJOR)
ln -s libmandoc.so.$(SOVERSION) $(DESTDIR)$(LIBDIR)/libmandoc.so
- $(INSTALL_LIB) man.h mandoc.h mandoc_aux.h mdoc.h roff.h \
+ $(INSTALL_HDR) man.h mandoc.h mandoc_aux.h mdoc.h roff.h \
$(DESTDIR)$(INCLUDEDIR)
$(INSTALL_MAN) mandoc.3 mandoc_escape.3 mandoc_malloc.3 \
mansearch.3 mchars_alloc.3 tbl.3 $(DESTDIR)$(MANDIR)/man3
diff -purN mandoc-1.14.4.orig/configure mandoc-1.14.4/configure
--- mandoc-1.14.4.orig/configure 2018-08-08 10:51:51.000000000 -0400
+++ mandoc-1.14.4/configure 2019-02-07 12:04:04.826552196 -0500
@@ -119,6 +119,7 @@ MANM_TBL="tbl"
INSTALL="install"
INSTALL_PROGRAM=
INSTALL_LIB=
+INSTALL_HDR=
INSTALL_MAN=
INSTALL_DATA=
LN="ln -f"
@@ -523,6 +524,7 @@ exec > Makefile.local
[ -z "${INSTALL_PROGRAM}" ] && INSTALL_PROGRAM="${INSTALL} -m 0555"
[ -z "${INSTALL_LIB}" ] && INSTALL_LIB="${INSTALL} -m 0444"
+[ -z "${INSTALL_HDR}" ] && INSTALL_HDR="${INSTALL} -m 0444"
[ -z "${INSTALL_MAN}" ] && INSTALL_MAN="${INSTALL} -m 0444"
[ -z "${INSTALL_DATA}" ] && INSTALL_DATA="${INSTALL} -m 0444"
@@ -569,6 +571,7 @@ MANM_TBL = ${MANM_TBL}
INSTALL = ${INSTALL}
INSTALL_PROGRAM = ${INSTALL_PROGRAM}
INSTALL_LIB = ${INSTALL_LIB}
+INSTALL_HDR = ${INSTALL_HDR}
INSTALL_MAN = ${INSTALL_MAN}
INSTALL_DATA = ${INSTALL_DATA}
LN = ${LN}

104
mandoc-shared-library.patch Normal file
View File

@ -0,0 +1,104 @@
diff -purN mandoc-1.14.4.orig/Makefile mandoc-1.14.4/Makefile
--- mandoc-1.14.4.orig/Makefile 2018-08-08 10:51:51.000000000 -0400
+++ mandoc-1.14.4/Makefile 2019-02-07 12:23:55.743962101 -0500
@@ -17,6 +17,10 @@
VERSION = 1.14.4
+# version for the shared object file
+SOMAJOR = 1
+SOVERSION = $(SOMAJOR).0
+
# === LIST OF FILES ====================================================
TESTSRCS = test-be32toh.c \
@@ -357,7 +361,7 @@ include Makefile.local
# === DEPENDENCY HANDLING ==============================================
-all: mandoc demandoc soelim $(BUILD_TARGETS) Makefile.local
+all: mandoc demandoc soelim $(BUILD_TARGETS) Makefile.local libmandoc.so.$(SOMAJOR)
install: base-install $(INSTALL_TARGETS)
@@ -372,11 +376,15 @@ include Makefile.depend
# === TARGETS CONTAINING SHELL COMMANDS ================================
+LIBMANDOC_PIC_OBJS = $(COMPAT_OBJS:.o=.pic.o) $(LIBMANDOC_OBJS:.o=.pic.o)
+%.pic.o: %.c
+ $(CC) -c $(CFLAGS) $(CPPFLAGS) -fPIC $< -o $@
+
distclean: clean
rm -f Makefile.local config.h config.h.old config.log config.log.old
clean:
- rm -f libmandoc.a $(LIBMANDOC_OBJS) $(COMPAT_OBJS)
+ rm -f libmandoc.a libmandoc.so.$(SOVERSION) $(LIBMANDOC_OBJS) $(LIBMANDOC_PIC_OBJS) $(COMPAT_OBJS)
rm -f mandoc $(MAIN_OBJS)
rm -f man.cgi $(CGI_OBJS)
rm -f mandocd catman catman.o $(MANDOCD_OBJS)
@@ -415,11 +423,13 @@ base-install: mandoc demandoc soelim
$(INSTALL_MAN) makewhatis.8 \
$(DESTDIR)$(MANDIR)/man8/$(BINM_MAKEWHATIS).8
-lib-install: libmandoc.a
+lib-install: libmandoc.so.$(SOVERSION)
mkdir -p $(DESTDIR)$(LIBDIR)
mkdir -p $(DESTDIR)$(INCLUDEDIR)
mkdir -p $(DESTDIR)$(MANDIR)/man3
- $(INSTALL_LIB) libmandoc.a $(DESTDIR)$(LIBDIR)
+ $(INSTALL_LIB) libmandoc.so.$(SOVERSION) $(DESTDIR)$(LIBDIR)
+ ln -s libmandoc.so.$(SOVERSION) $(DESTDIR)$(LIBDIR)/libmandoc.so.$(SOMAJOR)
+ ln -s libmandoc.so.$(SOVERSION) $(DESTDIR)$(LIBDIR)/libmandoc.so
$(INSTALL_LIB) man.h mandoc.h mandoc_aux.h mdoc.h roff.h \
$(DESTDIR)$(INCLUDEDIR)
$(INSTALL_MAN) mandoc.3 mandoc_escape.3 mandoc_malloc.3 \
@@ -468,7 +478,8 @@ uninstall:
rm -f $(DESTDIR)$(SBINDIR)/$(BINM_CATMAN)
rm -f $(DESTDIR)$(MANDIR)/man8/mandocd.8
rm -f $(DESTDIR)$(MANDIR)/man8/$(BINM_CATMAN).8
- rm -f $(DESTDIR)$(LIBDIR)/libmandoc.a
+ rm -f $(DESTDIR)$(LIBDIR)/libmandoc.so.$(SOVERSION)
+ rm -f $(DESTDIR)$(LIBDIR)/libmandoc.so
rm -f $(DESTDIR)$(MANDIR)/man3/mandoc.3
rm -f $(DESTDIR)$(MANDIR)/man3/mandoc_escape.3
rm -f $(DESTDIR)$(MANDIR)/man3/mandoc_malloc.3
@@ -495,20 +506,29 @@ Makefile.local config.h: configure $(TES
libmandoc.a: $(COMPAT_OBJS) $(LIBMANDOC_OBJS)
ar rs $@ $(COMPAT_OBJS) $(LIBMANDOC_OBJS)
-mandoc: $(MAIN_OBJS) libmandoc.a
- $(CC) -o $@ $(LDFLAGS) $(MAIN_OBJS) libmandoc.a $(LDADD)
+libmandoc.so.$(SOVERSION): $(LIBMANDOC_PIC_OBJS)
+ $(CC) -shared -Wl,-soname=libmandoc.so.$(SOMAJOR) -o $@ $(LIBMANDOC_PIC_OBJS)
+
+libmandoc.so.$(SOMAJOR): libmandoc.so.$(SOVERSION)
+ ln -sf libmandoc.so.$(SOVERSION) libmandoc.so.$(SOMAJOR)
+
+libmandoc.so: libmandoc.so.$(SOVERSION)
+ ln -sf libmandoc.so.$(SOVERSION) libmandoc.so
+
+mandoc: $(MAIN_OBJS) libmandoc.so
+ $(CC) -o $@ -L. -lmandoc $(LDFLAGS) $(MAIN_OBJS) $(LDADD)
man.cgi: $(CGI_OBJS) libmandoc.a
$(CC) $(STATIC) -o $@ $(LDFLAGS) $(CGI_OBJS) libmandoc.a $(LDADD)
-mandocd: $(MANDOCD_OBJS) libmandoc.a
- $(CC) -o $@ $(LDFLAGS) $(MANDOCD_OBJS) libmandoc.a $(LDADD)
+mandocd: $(MANDOCD_OBJS) libmandoc.so
+ $(CC) -o $@ -L. -lmandoc $(LDFLAGS) $(MANDOCD_OBJS) $(LDADD)
-catman: catman.o libmandoc.a
- $(CC) -o $@ $(LDFLAGS) catman.o libmandoc.a $(LDADD)
+catman: catman.o libmandoc.so
+ $(CC) -o $@ -L. -lmandoc $(LDFLAGS) catman.o $(LDADD)
-demandoc: $(DEMANDOC_OBJS) libmandoc.a
- $(CC) -o $@ $(LDFLAGS) $(DEMANDOC_OBJS) libmandoc.a $(LDADD)
+demandoc: $(DEMANDOC_OBJS) libmandoc.so
+ $(CC) -o $@ -L. -lmandoc $(LDFLAGS) $(DEMANDOC_OBJS) $(LDADD)
soelim: $(SOELIM_OBJS)
$(CC) -o $@ $(LDFLAGS) $(SOELIM_OBJS)

143
mandoc.spec Normal file
View File

@ -0,0 +1,143 @@
Name: mandoc
Version: 1.14.4
Release: 1%{?dist}
Summary: A suite of tools for compiling mdoc and man
License: ISC
URL: https://mandoc.bsd.lv/
Source0: https://mandoc.bsd.lv/snapshots/mandoc-%{version}.tar.gz
Patch0: mandoc-shared-library.patch
# Separate the commands for installing libraries and headers
Patch1: mandoc-install-hdr.patch
BuildRequires: gcc
BuildRequires: make
BuildRequires: zlib-devel
# requirements for %%check
BuildRequires: perl(IPC::Open3)
Requires: libmandoc%{?_isa} = %{version}-%{release}
%description
mandoc is a suite of tools compiling mdoc, the roff macro language of choice
for BSD manual pages, and man, the predominant historical language for UNIX
manuals. It is small, ISO C, ISC-licensed, and quite fast. The main component
of the toolset is the mandoc utility program, based on the libmandoc validating
compiler, to format output for UTF-8 and ASCII UNIX terminals, HTML 5,
PostScript, and PDF.
%package -n libmandoc
Summary: A validating compiler for mdoc and man
%description -n libmandoc
The mandoc library parses a UNIX manual into an abstract syntax tree (AST).
UNIX manuals are composed of mdoc(7) or man(7), and may be mixed with roff(7),
tbl(7), and eqn(7) invocations.
%package -n libmandoc-devel
Summary: Development libraries and headers for libmandoc
Requires: libmandoc%{?_isa} = %{version}-%{release}
%description -n libmandoc-devel
The mandoc library parses a UNIX manual into an abstract syntax tree (AST).
UNIX manuals are composed of mdoc(7) or man(7), and may be mixed with roff(7),
tbl(7), and eqn(7) invocations.
%prep
%autosetup -p1
%build
# NB: not an autoconf script
# settings are read in through configure.local
echo 'PREFIX=%{_prefix}' > configure.local
echo 'BINDIR=%{_bindir}' >> configure.local
echo 'SBINDIR=%{_sbindir}' >> configure.local
echo 'MANDIR=%{_mandir}' >> configure.local
echo 'INCLUDEDIR=%{_includedir}' >> configure.local
echo 'LIBDIR=%{_libdir}' >> configure.local
# with default settings rpmlint complains about cross-directory hardlinks
echo 'LN="ln -sf"' >> configure.local
# change the names of binaries, conf files, and section 7 man pages
# to avoid conflicts with man-db and groff
echo 'MANM_MANCONF=mandoc.conf' >> configure.local
echo 'MANM_MAN=mandoc_man' >> configure.local
echo 'BINM_MAN=mman' >> configure.local
echo 'BINM_APROPOS=mapropos' >> configure.local
echo 'BINM_WHATIS=mwhatis' >> configure.local
echo 'BINM_MAKEWHATIS=mandocdb' >> configure.local
echo 'BINM_SOELIM=msoelim' >> configure.local
# override the install permissions so that owner-write bits are set,
# so rpmbuild can do whatever modifications it does post-%%install
echo 'INSTALL_PROGRAM="${INSTALL} -m 0755"' >> configure.local
echo 'INSTALL_LIB="${INSTALL} -m 0755"' >> configure.local
echo 'INSTALL_HDR="${INSTALL} -m 0644"' >> configure.local
echo 'INSTALL_MAN="${INSTALL} -m 0644"' >> configure.local
echo 'INSTALL_DATA="${INSTALL} -m 0644"' >> configure.local
echo 'INSTALL_LIBMANDOC=1' >> configure.local
echo 'CFLAGS="%{optflags}"' >> configure.local
./configure
make %{?_smp_mflags}
%install
%make_install
%check
env LD_LIBRARY_PATH="$PWD" make regress
%ldconfig_scriptlets -n libmandoc
%files
%license LICENSE
%{_bindir}/demandoc
%{_bindir}/mandoc
%{_bindir}/mapropos
%{_bindir}/mman
%{_bindir}/msoelim
%{_bindir}/mwhatis
%{_sbindir}/mandocdb
%{_mandir}/man1/demandoc.1*
%{_mandir}/man1/mandoc.1*
%{_mandir}/man1/mapropos.1*
%{_mandir}/man1/mman.1*
%{_mandir}/man1/msoelim.1*
%{_mandir}/man1/mwhatis.1*
%{_mandir}/man5/mandoc.conf.5*
%{_mandir}/man5/mandoc.db.5*
%{_mandir}/man7/eqn.7*
%{_mandir}/man7/mandoc_char.7*
%{_mandir}/man7/mandoc_man.7*
%{_mandir}/man7/mdoc.7*
%{_mandir}/man7/roff.7*
%{_mandir}/man7/tbl.7*
%{_mandir}/man8/mandocdb.8*
%files -n libmandoc
%license LICENSE
%{_libdir}/libmandoc.so.1.0
%{_libdir}/libmandoc.so.1
%files -n libmandoc-devel
%license LICENSE
%{_libdir}/libmandoc.so
%{_includedir}/man.h
%{_includedir}/mandoc.h
%{_includedir}/mandoc_aux.h
%{_includedir}/mdoc.h
%{_includedir}/roff.h
%{_mandir}/man3/mandoc.3*
%{_mandir}/man3/mandoc_escape.3*
%{_mandir}/man3/mandoc_malloc.3*
%{_mandir}/man3/mansearch.3*
%{_mandir}/man3/mchars_alloc.3*
%{_mandir}/man3/tbl.3*
%changelog
* Thu Feb 7 2019 David Shea <dshea@redhat.com> - 1.14.4-1
- Initial package

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (mandoc-1.14.4.tar.gz) = c68390711a739284ad9a61364f3fea76c0c48c02b4830d6326b07c4188d099e3720ae3b91fc3b083269381b417b7e3f3647d13a54ed2548f8c2f94122f8a7d97