- use upstream non-autotools buildsystem

- build with external libdvdread for older releases
- fix version.h
- fix soname
- fix lib paths on 64bit
This commit is contained in:
Dominik Mierzejewski 2007-11-21 22:24:52 +00:00
parent ae476d6878
commit 3cc2eda72a
7 changed files with 380 additions and 23 deletions

91
libdvdnav-destdir.patch Normal file
View File

@ -0,0 +1,91 @@
diff -up libdvdnav-4.1.1/Makefile.destdir libdvdnav-4.1.1/Makefile
--- libdvdnav-4.1.1/Makefile.destdir 2007-11-21 21:00:45.000000000 +0100
+++ libdvdnav-4.1.1/Makefile 2007-11-21 21:01:59.000000000 +0100
@@ -112,39 +112,39 @@ ${DVDREAD_SHLIB}: version.h $(.OBJDIR) $
# Install targets
install-headers:
- install -d $(incdir)
- install -m 644 $(HEADERS) $(incdir)
- install -d $(dvdread_incdir)
- install -m 644 $(DVDREAD_HEADERS) $(dvdread_incdir)
+ install -d $(DESTDIR)$(incdir)
+ install -m 644 $(HEADERS) $(DESTDIR)$(incdir)
+ install -d $(DESTDIR)$(dvdread_incdir)
+ install -m 644 $(DVDREAD_HEADERS) $(DESTDIR)$(dvdread_incdir)
install-shared: $(SHLIB)
- install -d $(shlibdir)
+ install -d $(DESTDIR)$(shlibdir)
install $(INSTALLSTRIP) -m 755 $(.OBJDIR)/$(SHLIB) \
- $(shlibdir)/$(SHLIB).$(SHLIB_VERSION)
+ $(DESTDIR)$(shlibdir)/$(SHLIB).$(SHLIB_VERSION)
install $(INSTALLSTRIP) -m 755 $(.OBJDIR)/$(MINI_SHLIB) \
- $(shlibdir)/$(MINI_SHLIB).$(SHLIB_VERSION)
+ $(DESTDIR)$(shlibdir)/$(MINI_SHLIB).$(SHLIB_VERSION)
install $(INSTALLSTRIP) -m 755 $(.OBJDIR)/$(DVDREAD_SHLIB) \
- $(shlibdir)/$(DVDREAD_SHLIB).$(SHLIB_VERSION)
+ $(DESTDIR)$(shlibdir)/$(DVDREAD_SHLIB).$(SHLIB_VERSION)
- cd $(shlibdir) && \
+ cd $(DESTDIR)$(shlibdir) && \
ln -sf $(SHLIB).$(SHLIB_VERSION) $(SHLIB).$(SHLIB_MAJOR)
- cd $(shlibdir) && \
+ cd $(DESTDIR)$(shlibdir) && \
ln -sf $(MINI_SHLIB).$(SHLIB_VERSION) $(MINI_SHLIB).$(SHLIB_MAJOR)
- cd $(shlibdir) && \
+ cd $(DESTDIR)$(shlibdir) && \
ln -sf $(DVDREAD_SHLIB).$(SHLIB_VERSION) $(DVDREAD_SHLIB).$(SHLIB_MAJOR)
- cd $(shlibdir) && \
+ cd $(DESTDIR)$(shlibdir) && \
ln -sf $(SHLIB).$(SHLIB_MAJOR) $(SHLIB)
- cd $(shlibdir) && \
+ cd $(DESTDIR)$(shlibdir) && \
ln -sf $(MINI_SHLIB).$(SHLIB_MAJOR) $(MINI_SHLIB)
- cd $(shlibdir) && \
+ cd $(DESTDIR)$(shlibdir) && \
ln -sf $(DVDREAD_SHLIB).$(SHLIB_MAJOR) $(DVDREAD_SHLIB)
install-static: $(LIB)
- install -d $(libdir)
+ install -d $(DESTDIR)$(libdir)
- install $(INSTALLSTRIP) -m 755 $(.OBJDIR)/$(LIB) $(libdir)/$(LIB)
- install $(INSTALLSTRIP) -m 755 $(.OBJDIR)/$(DVDREAD_LIB) $(libdir)/$(DVDREAD_LIB)
+ install $(INSTALLSTRIP) -m 755 $(.OBJDIR)/$(LIB) $(DESTDIR)$(libdir)/$(LIB)
+ install $(INSTALLSTRIP) -m 755 $(.OBJDIR)/$(DVDREAD_LIB) $(DESTDIR)$(libdir)/$(DVDREAD_LIB)
# Clean targets
@@ -168,8 +168,8 @@ dvdnav-config: $(.OBJDIR)
chmod 0755 $(SRC_PATH_BARE)/$(.OBJDIR)/dvdnav-config
install-dvdnav-config: dvdnav-config
- install -d $(PREFIX)/bin
- install -m 0755 $(.OBJDIR)/dvdnav-config $(PREFIX)/bin/dvdnav-config
+ install -d $(DESTDIR)$(PREFIX)/bin
+ install -m 0755 $(.OBJDIR)/dvdnav-config $(DESTDIR)$(PREFIX)/bin/dvdnav-config
vpath %.so ${.OBJDIR}
diff -up libdvdnav-4.1.1/configure2.destdir libdvdnav-4.1.1/configure2
--- libdvdnav-4.1.1/configure2.destdir 2007-11-21 21:00:45.000000000 +0100
+++ libdvdnav-4.1.1/configure2 2007-11-21 21:00:45.000000000 +0100
@@ -127,11 +127,11 @@ esac
cat > config.mak << EOF
# Automatically generated by configure, do not edit
DESTDIR =
-PREFIX=\$(DESTDIR)$PREFIX
-libdir=\$(DESTDIR)$libdir
-shlibdir=\$(DESTDIR)$shlibdir
-incdir=\$(DESTDIR)$incdir
-dvdread_incdir=\$(DESTDIR)$dvdread_incdir
+PREFIX=$PREFIX
+libdir=$libdir
+shlibdir=$shlibdir
+incdir=$incdir
+dvdread_incdir=$dvdread_incdir
THREADLIB=$threadlib
BUILD_SHARED=$SHARED
BUILD_STATIC=$STATIC

View File

@ -1,13 +0,0 @@
diff -up libdvdnav-4.1.1/src/dvdread/Makefile.am.r962 libdvdnav-4.1.1/src/dvdread/Makefile.am
--- libdvdnav-4.1.1/src/dvdread/Makefile.am.r962 2007-11-11 13:07:52.000000000 +0100
+++ libdvdnav-4.1.1/src/dvdread/Makefile.am 2007-11-11 13:07:16.000000000 +0100
@@ -13,7 +13,7 @@ libdvdread_la_SOURCES = dvd_reader.c nav
libdvdread_la_LIBADD = $(DYNAMIC_LD_LIBS)
libdvdread_la_LDFLAGS = -version-info $(DVDNAV_LT_CURRENT):$(DVDNAV_LT_REVISION):$(DVDNAV_LT_AGE) \
- -export-symbols-regex "(^dvd.*|^nav.*|^ifo.*|^DVD.*)"
+ -export-symbols-regex "(^dvd.*|^nav.*|^ifo.*|^DVD.*|^UDF.*)"
include_HEADERS = dvd_reader.h nav_read.h ifo_read.h \
- nav_print.h ifo_print.h ifo_types.h nav_types.h
+ nav_print.h ifo_print.h ifo_types.h nav_types.h dvd_udf.h

28
libdvdnav-libdir.patch Normal file
View File

@ -0,0 +1,28 @@
Index: misc/dvdnav-config2.sh
===================================================================
--- misc/dvdnav-config2.sh (revision 966)
+++ misc/dvdnav-config2.sh (working copy)
@@ -73,9 +73,9 @@
fi
if test "$echo_libs" = "yes"; then
- echo -L$prefix/lib -ldvdnav $dvdreadlib $threadlib
+ echo -L$libdir -ldvdnav $dvdreadlib $threadlib
fi
if test "$echo_minilibs" = "yes"; then
- echo -L$prefix/lib -ldvdnavmini $threadlib
+ echo -L$libdir -ldvdnavmini $threadlib
fi
Index: Makefile
===================================================================
--- Makefile (revision 966)
+++ Makefile (working copy)
@@ -159,6 +159,7 @@
dvdnav-config: $(.OBJDIR)
echo -e '#!/bin/sh\n\nprefix='$(PREFIX)'\n' > $(.OBJDIR)/dvdnav-config
+ echo -e 'libdir='$(shlibdir)'\n' >> $(.OBJDIR)/dvdnav-config
echo -e 'version='$(SHLIB_VERSION)'\n' >> $(.OBJDIR)/dvdnav-config
echo -e 'dvdread='$(DVDREAD)'\n' >> $(.OBJDIR)/dvdnav-config
echo -e 'dvdreaddir='$(DVDREAD_DIR)'\n' >> $(.OBJDIR)/dvdnav-config

19
libdvdnav-soname.patch Normal file
View File

@ -0,0 +1,19 @@
Index: Makefile
===================================================================
--- Makefile (revision 966)
+++ Makefile (working copy)
@@ -96,11 +96,11 @@
cd $(.OBJDIR) && $(RANLIB) $@
${SHLIB}: version.h $(.OBJDIR) $(SHOBJS) $(BUILDDEPS)
- cd $(.OBJDIR) && $(CC) $(SHLDFLAGS) -o $@ $(SHOBJS) -ldvdread $(THREADLIB)
+ cd $(.OBJDIR) && $(CC) $(SHLDFLAGS) -Wl,-soname=$(SHLIB).$(SHLIB_MAJOR) -o $@ $(SHOBJS) -ldvdread $(THREADLIB)
${MINI_SHLIB}: version.h $(.OBJDIR) $(SHOBJS) $(BUILDDEPS)
- cd $(.OBJDIR) && $(CC) $(SHLDFLAGS) -o $@ $(SHOBJS) $(THREADLIB)
+ cd $(.OBJDIR) && $(CC) $(SHLDFLAGS) -Wl,-soname=$(MINI_SHLIB).$(SHLIB_MAJOR) -o $@ $(SHOBJS) $(THREADLIB)
${DVDREAD_SHLIB}: version.h $(.OBJDIR) $(DVDREAD_SHOBJS) $(BUILDDEPS)
- cd $(.OBJDIR) && $(CC) $(SHLDFLAGS) -ldl -o $@ $(DVDREAD_SHOBJS)
+ cd $(.OBJDIR) && $(CC) $(SHLDFLAGS) -ldl -Wl,-soname=$(DVDREAD_SHLIB).$(SHLIB_MAJOR) -o $@ $(DVDREAD_SHOBJS)
.c.so: $(BUILDDEPS)
cd $(.OBJDIR) && $(CC) -fPIC -DPIC -MD $(CFLAGS) -c -o $@ $<

191
libdvdnav-svn.patch Normal file
View File

@ -0,0 +1,191 @@
Index: src/dvdread/ifo_print.h
===================================================================
--- src/dvdread/ifo_print.h (revision 956)
+++ src/dvdread/ifo_print.h (revision 966)
@@ -24,7 +24,7 @@
#ifdef DVDNAV_COMPILE
# include "ifo_types.h"
#else
-# include <dvdnav/ifo_types.h> /* Only for vm_cmd_t */
+# include <dvdread/ifo_types.h> /* Only for vm_cmd_t */
#endif
void ifo_print(dvd_reader_t *dvd, int title);
Index: src/dvdread/Makefile.am
===================================================================
--- src/dvdread/Makefile.am (revision 956)
+++ src/dvdread/Makefile.am (revision 966)
@@ -13,7 +13,7 @@
libdvdread_la_LIBADD = $(DYNAMIC_LD_LIBS)
libdvdread_la_LDFLAGS = -version-info $(DVDNAV_LT_CURRENT):$(DVDNAV_LT_REVISION):$(DVDNAV_LT_AGE) \
- -export-symbols-regex "(^dvd.*|^nav.*|^ifo.*|^DVD.*)"
+ -export-symbols-regex "(^dvd.*|^nav.*|^ifo.*|^DVD.*|^UDF.*)"
include_HEADERS = dvd_reader.h nav_read.h ifo_read.h \
- nav_print.h ifo_print.h ifo_types.h nav_types.h
+ nav_print.h ifo_print.h ifo_types.h nav_types.h dvd_udf.h
Index: misc/dvdnav-config2.sh
===================================================================
--- misc/dvdnav-config2.sh (revision 956)
+++ misc/dvdnav-config2.sh (revision 966)
@@ -1,6 +1,7 @@
+dvdreadlib="-ldvdread"
+dvdreadmsg="[--minilibs]"
if test "$dvdread" = "external"; then
- dvdreadlib="-ldvdread"
- dvdreadmsg="[--minilibs --minicflags]"
+ dvdreadmsg="[--minicflags]"
dvdreadcflags="-I$dvdreaddir"
extracflags="-DDVDNAV_USES_EXTERNAL_DVDREAD"
fi
@@ -50,11 +51,7 @@
echo_libs=yes
;;
--minilibs)
- if test "$dvdread" = "external"; then
echo_minilibs=yes
- else
- usage 1 1>&2
- fi
;;
*)
usage 1 1>&2
Index: configure2
===================================================================
--- configure2 (revision 956)
+++ configure2 (revision 966)
@@ -102,7 +102,7 @@
test -z $libdir && libdir=$PREFIX/lib
test -z $shlibdir && shlibdir=$PREFIX/lib
-test -z $incdir && incdir=$PREFIX/include/dvdnav
+test -z $incdir && incdir=$PREFIX/include/dvdnav && dvdread_incdir=$PREFIX/include/dvdread
if [ "$DVDREAD" != "internal" ] ; then
if [ -d "$DVDREAD" -a -f "$DVDREAD/dvd_reader.h" ] ; then
@@ -131,6 +131,7 @@
libdir=\$(DESTDIR)$libdir
shlibdir=\$(DESTDIR)$shlibdir
incdir=\$(DESTDIR)$incdir
+dvdread_incdir=\$(DESTDIR)$dvdread_incdir
THREADLIB=$threadlib
BUILD_SHARED=$SHARED
BUILD_STATIC=$STATIC
Index: Makefile
===================================================================
--- Makefile (revision 956)
+++ Makefile (revision 966)
@@ -23,15 +23,18 @@
ifeq ($(DVDREAD),internal)
L=libdvdnav
+MINI_L=libdvdnavmini
+DVDREAD_L=libdvdread
VPATH+= $(SRC_PATH_BARE)/src/dvdread
-HEADERS += src/dvdread/dvd_reader.h \
+DVDREAD_HEADERS = src/dvdread/dvd_reader.h \
src/dvdread/ifo_print.h \
src/dvdread/ifo_read.h \
src/dvdread/ifo_types.h \
src/dvdread/nav_print.h \
src/dvdread/nav_read.h \
+ src/dvdread/dvd_udf.h \
src/dvdread/nav_types.h
-SRCS+= dvd_input.c dvd_reader.c dvd_udf.c ifo_print.c ifo_read.c \
+DVDREAD_SRCS = dvd_input.c dvd_reader.c dvd_udf.c ifo_print.c ifo_read.c \
md5.c nav_print.c nav_read.c
CFLAGS += -I$(SRC_PATH)/src/dvdread
else
@@ -40,25 +43,31 @@
endif
LIB = $(L).a
+DVDREAD_LIB = $(DVDREAD_L).a
SHLIB = $(L).so
+MINI_SHLIB = $(MINI_L).so
+DVDREAD_SHLIB = $(DVDREAD_L).so
.OBJDIR= obj
DEPFLAG = -M
OBJS = $(patsubst %.c,%.o, $(SRCS))
+DVDREAD_OBJS = $(patsubst %.c,%.o, $(DVDREAD_SRCS))
SHOBJS = $(patsubst %.c,%.so, $(SRCS))
+DVDREAD_SHOBJS = $(patsubst %.c,%.so, $(DVDREAD_SRCS))
DEPS= ${OBJS:%.o=%.d}
+DVDREAD_DEPS= ${DVDREAD_OBJS:%.o=%.d}
BUILDDEPS = Makefile config.mak
ifeq ($(BUILD_SHARED),yes)
-all: $(SHLIB) dvdnav-config
-install: $(SHLIB) install-shared install-dvdnav-config
+all: $(SHLIB) $(MINI_SHLIB) $(DVDREAD_SHLIB) dvdnav-config
+install: $(SHLIB) $(DVDREAD_SHLIB) install-shared install-dvdnav-config
endif
ifeq ($(BUILD_STATIC),yes)
-all: $(LIB) dvdnav-config
-install: $(LIB) install-static install-dvdnav-config
+all: $(LIB) $(DVDREAD_LIB) dvdnav-config
+install: $(LIB) $(DVDREAD_LIB) install-static install-dvdnav-config
endif
install: install-headers
@@ -82,9 +91,16 @@
${LIB}: version.h $(.OBJDIR) $(OBJS) $(BUILDDEPS)
cd $(.OBJDIR) && $(AR) rc $@ $(OBJS)
cd $(.OBJDIR) && $(RANLIB) $@
+${DVDREAD_LIB}: version.h $(.OBJDIR) $(DVDREAD_OBJS) $(BUILDDEPS)
+ cd $(.OBJDIR) && $(AR) rc $@ $(DVDREAD_OBJS)
+ cd $(.OBJDIR) && $(RANLIB) $@
${SHLIB}: version.h $(.OBJDIR) $(SHOBJS) $(BUILDDEPS)
- cd $(.OBJDIR) && $(CC) $(SHLDFLAGS) $(THREADLIB) -o $@ $(SHOBJS)
+ cd $(.OBJDIR) && $(CC) $(SHLDFLAGS) -o $@ $(SHOBJS) -ldvdread $(THREADLIB)
+${MINI_SHLIB}: version.h $(.OBJDIR) $(SHOBJS) $(BUILDDEPS)
+ cd $(.OBJDIR) && $(CC) $(SHLDFLAGS) -o $@ $(SHOBJS) $(THREADLIB)
+${DVDREAD_SHLIB}: version.h $(.OBJDIR) $(DVDREAD_SHOBJS) $(BUILDDEPS)
+ cd $(.OBJDIR) && $(CC) $(SHLDFLAGS) -ldl -o $@ $(DVDREAD_SHOBJS)
.c.so: $(BUILDDEPS)
cd $(.OBJDIR) && $(CC) -fPIC -DPIC -MD $(CFLAGS) -c -o $@ $<
@@ -98,22 +114,37 @@
install-headers:
install -d $(incdir)
install -m 644 $(HEADERS) $(incdir)
+ install -d $(dvdread_incdir)
+ install -m 644 $(DVDREAD_HEADERS) $(dvdread_incdir)
install-shared: $(SHLIB)
install -d $(shlibdir)
install $(INSTALLSTRIP) -m 755 $(.OBJDIR)/$(SHLIB) \
$(shlibdir)/$(SHLIB).$(SHLIB_VERSION)
+ install $(INSTALLSTRIP) -m 755 $(.OBJDIR)/$(MINI_SHLIB) \
+ $(shlibdir)/$(MINI_SHLIB).$(SHLIB_VERSION)
+ install $(INSTALLSTRIP) -m 755 $(.OBJDIR)/$(DVDREAD_SHLIB) \
+ $(shlibdir)/$(DVDREAD_SHLIB).$(SHLIB_VERSION)
cd $(shlibdir) && \
ln -sf $(SHLIB).$(SHLIB_VERSION) $(SHLIB).$(SHLIB_MAJOR)
cd $(shlibdir) && \
+ ln -sf $(MINI_SHLIB).$(SHLIB_VERSION) $(MINI_SHLIB).$(SHLIB_MAJOR)
+ cd $(shlibdir) && \
+ ln -sf $(DVDREAD_SHLIB).$(SHLIB_VERSION) $(DVDREAD_SHLIB).$(SHLIB_MAJOR)
+ cd $(shlibdir) && \
ln -sf $(SHLIB).$(SHLIB_MAJOR) $(SHLIB)
+ cd $(shlibdir) && \
+ ln -sf $(MINI_SHLIB).$(SHLIB_MAJOR) $(MINI_SHLIB)
+ cd $(shlibdir) && \
+ ln -sf $(DVDREAD_SHLIB).$(SHLIB_MAJOR) $(DVDREAD_SHLIB)
install-static: $(LIB)
install -d $(libdir)
install $(INSTALLSTRIP) -m 755 $(.OBJDIR)/$(LIB) $(libdir)/$(LIB)
+ install $(INSTALLSTRIP) -m 755 $(.OBJDIR)/$(DVDREAD_LIB) $(libdir)/$(DVDREAD_LIB)
# Clean targets

16
libdvdnav-version.patch Normal file
View File

@ -0,0 +1,16 @@
diff -up libdvdnav-4.1.1/version.sh.r libdvdnav-4.1.1/version.sh
--- libdvdnav-4.1.1/version.sh.r 2007-04-15 23:58:42.000000000 +0200
+++ libdvdnav-4.1.1/version.sh 2007-11-21 17:46:55.000000000 +0100
@@ -1,11 +1,6 @@
#!/bin/sh
-svn_revision=`cd "$1" && LC_ALL=C svn info 2> /dev/null | grep Revision | cut -d' ' -f2`
-test $svn_revision || svn_revision=`cd "$1" && grep revision .svn/entries | \
- cut -d '"' -f2 2> /dev/null`
-test $svn_revision || svn_revision=UNKNOWN
-
-NEW_REVISION="#define VERSION \"SVN-r$svn_revision\""
+NEW_REVISION="#define VERSION \"4.1.1\""
OLD_REVISION=`cat version.h 2> /dev/null`
# Update version.h only on revision changes to avoid spurious rebuilds

View File

@ -1,16 +1,20 @@
Name: libdvdnav
Version: 4.1.1
Release: 1%{?dist}
Release: 2%{?dist}
Summary: A library for reading DVD video discs based on Ogle code
Group: System Environment/Libraries
License: GPLv2+
Source: http://www.mplayerhq.hu/MPlayer/releases/dvdnav/libdvdnav-4.1.1.tar.gz
Patch0: %{name}-dvdread-udf.patch
Patch1: %{name}-svn.patch
Patch2: %{name}-version.patch
Patch3: %{name}-libdir.patch
Patch4: %{name}-soname.patch
Patch5: %{name}-external-dvdread.patch
Patch6: %{name}-destdir.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: doxygen
BuildRequires: libtool
%description
libdvdnav provides a simple library for reading DVD video discs.
@ -47,13 +51,29 @@ This package contains development files for libdvdread.
%prep
%setup -q
%patch0 -p1
%patch1 -p0
%patch2 -p1
%patch3 -p0
%patch4 -p0
#%patch5 -p1 -b .dvdread
%patch6 -p1 -b .destdir
%build
./autogen.sh noconfig
%configure --disable-static --disable-dependency-tracking
make %{?_smp_mflags}
make -C doc docs
./configure2 \
--disable-opts \
--disable-static \
--disable-strip \
--extra-cflags="$RPM_OPT_FLAGS" \
--libdir=%{_libdir} \
--prefix=%{_prefix} \
--shlibdir=%{_libdir} \
#parallel make fails
#make %{?_smp_mflags}
make
pushd doc
doxygen doxy.conf
popd
%install
rm -rf $RPM_BUILD_ROOT
@ -61,8 +81,6 @@ make install DESTDIR=$RPM_BUILD_ROOT
install -d -m 755 $RPM_BUILD_ROOT/%{_datadir}/aclocal
install -p -m 644 m4/dvdnav.m4 $RPM_BUILD_ROOT/%{_datadir}/aclocal
find $RPM_BUILD_ROOT -type f -name "*.la" | xargs rm
%clean
rm -rf $RPM_BUILD_ROOT
@ -99,6 +117,13 @@ rm -rf $RPM_BUILD_ROOT
%{_libdir}/libdvdread.so
%changelog
* Wed Nov 21 2007 Dominik Mierzejewski <rpm[AT]greysector.net> 4.1.1-2
- use upstream non-autotools buildsystem
- build with external libdvdread for older releases
- fix version.h
- fix soname
- fix lib paths on 64bit
* Thu Nov 01 2007 Dominik Mierzejewski <rpm[AT]greysector.net> 4.1.1-1
- switch to new upstream
- libdvdread comes from here now