-%define libzen_ver 0.4.17
+# TODO: system libs:
+# - pkgconfig(aes_gladman)
+# - pkgconfig(sha1_gladman)
+# - pkgconfig(sha2_gladman)
+# - pkgconfig(hmac_gladman)
+# - md5? (which implementation? pkgconfig(md5) is checked)
+#
+# Conditional build:
+%bcond_without curl # cURL support
+%bcond_without mms # MMS support
+%bcond_without graphviz # graphviz support
+%bcond_without apidocs # API documentation (doxygen generated)
+%bcond_without static_libs # static library
+
+%define libzen_ver 0.4.40
Summary: Supplies technical and tag information about a video or audio file
+Summary(pl.UTF-8): Informacje techniczne i znaczniki dla plików wideo i dźwiękowych
Name: libmediainfo
-Version: 0.7.39
+Version: 23.06
Release: 1
-License: GPL
+License: BSD or Apache v2.0+ or LGPL v2.1+ or GPL v2+ or MPL v2.0+
Group: Libraries
-URL: http://mediainfo.sourceforge.net/
-Source0: http://downloads.sourceforge.net/project/mediainfo/source/libmediainfo/%{version}/%{name}_%{version}.tar.bz2
-# Source0-md5: 111bb16f4515c5e58235272650ab4b35
-BuildRequires: autoconf
-BuildRequires: automake
-BuildRequires: dos2unix
+Source0: https://github.com/MediaArea/MediaInfoLib/archive/v%{version}/MediaInfoLib-%{version}.tar.gz
+# Source0-md5: 99fd221c2aaf614fb2f081ed44acec95
+URL: https://github.com/MediaArea/MediaInfoLib
+BuildRequires: autoconf >= 2.50
+BuildRequires: automake >= 1:1.11
+%{?with_curl:BuildRequires: curl-devel}
BuildRequires: doxygen
+%{?with_graphviz:BuildRequires: graphviz-devel}
+%{?with_mms:BuildRequires: libmms-devel}
BuildRequires: libstdc++-devel
-BuildRequires: libtool
+BuildRequires: libtool >= 2:1.5
BuildRequires: libzen-devel >= %{libzen_ver}
BuildRequires: pkgconfig
+BuildRequires: rpm-build >= 4.6
+BuildRequires: rpmbuild(macros) >= 1.752
+BuildRequires: tar >= 1:1.22
+BuildRequires: tinyxml2-devel
+BuildRequires: xz
BuildRequires: zlib-devel
Requires: libzen >= %{libzen_ver}
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
- Text: language of subtitle
- Chapters: number of chapters, list of chapters
-DivX, XviD, H263, H.263, H264, x264, ASP, AVC, iTunes, MPEG-1, MPEG1,
-MPEG-2, MPEG2, MPEG-4, MPEG4, MP4, M4A, M4V, QuickTime, RealVideo,
-RealAudio, RA, RM, MSMPEG4v1, MSMPEG4v2, MSMPEG4v3, VOB, DVD, WMA,
-VMW, ASF, 3GP, 3GPP, 3GP2
+Supported files: DivX, XviD, H263, H.263, H264, x264, ASP, AVC,
+iTunes, MPEG-1, MPEG1, MPEG-2, MPEG2, MPEG-4, MPEG4, MP4, M4A, M4V,
+QuickTime, RealVideo, RealAudio, RA, RM, MSMPEG4v1, MSMPEG4v2,
+MSMPEG4v3, VOB, DVD, WMA, VMW, ASF, 3GP, 3GPP, 3GP2
-What format (container) does MediaInfo support?
+Supported formats/containers:
- Video: MKV, OGM, AVI, DivX, WMV, QuickTime, Real, MPEG-1, MPEG-2,
MPEG-4, DVD (VOB) (Codecs: DivX, XviD, MSMPEG4, ASP, H.264, AVC...)
- Audio: OGG, MP3, WAV, RA, AC3, DTS, AAC, M4A, AU, AIFF
This package contains the shared library for MediaInfo.
+%description -l pl.UTF-8
+MediaInfo udostępnia informacje techniczne oraz znaczniki dla plików
+wideo i dźwiękowych.
+
+Dostępne są informacje:
+- ogólne: tytuł, autor, reżyser, album, numer ścieżki, data, czas
+ trwania...
+- wideo: kodek, proporcje, liczba klatek na sekundę, pasmo...
+- dźwięk: kodek, częstotliwość próbkowania, liczba kanałów, język,
+ pasmo...
+- tekst: język napisów
+- książki: liczba rozdziałów, ich lista
+
+Obsługiwane pliki: DivX, XviD, H263, H.263, H264, x264, ASP, AVC,
+iTunes, MPEG-1, MPEG1, MPEG-2, MPEG2, MPEG-4, MPEG4, MP4, M4A, M4V,
+QuickTime, RealVideo, RealAudio, RA, RM, MSMPEG4v1, MSMPEG4v2,
+MSMPEG4v3, VOB, DVD, WMA, VMW, ASF, 3GP, 3GPP, 3GP2
+
+Obsługiwane formaty/kontenery:
+- wideo: MKV, OGM, AVI, DivX, WMV, QuickTime, Real, MPEG-1, MPEG-2,
+ MPEG-4, DVD (VOB) (kodeki: DivX, XviD, MSMPEG4, ASP, H.264, AVC...)
+- dźwięk: OGG, MP3, WAV, RA, AC3, DTS, AAC, M4A, AU, AIFF
+- napisy: SRT, SSA, ASS, SAMI
+
+Ten pakiet zawiera bibliotekę współdzieloną MediaInfo.
+
%package devel
-Summary: Include files and mandatory libraries for development
+Summary: Header files for MediaInfo library
+Summary(pl.UTF-8): Pliki nagłówkowe biblioteki MediaInfo
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
-Requires: libzen-devel >= 0.4.9
+%{?with_curl:Requires: curl-devel}
+%{?with_mms:Requires: libmms-devel}
+Requires: libstdc++-devel
+Requires: libzen-devel >= %{libzen_ver}
+Requires: tinyxml2-devel
+Requires: zlib-devel
%description devel
-Include files and mandatory libraries for development.
+Header files for MediaInfo library.
+
+%description devel -l pl.UTF-8
+Pliki nagłówkowe biblioteki MediaInfo.
%package static
-Summary: Static libmediainfo library
+Summary: Static MediaInfo library
+Summary(pl.UTF-8): Statyczna biblioteka MediaInfo
Group: Development/Libraries
Requires: %{name}-devel = %{version}-%{release}
%description static
-Static libmediainfo library.
+Static MediaInfo library.
-%prep
-%setup -q -n MediaInfoLib
-cp Release/ReadMe_DLL_Linux.txt ReadMe.txt
-mv History_DLL.txt History.txt
-dos2unix *.txt *.html Source/Doc/*.html
-chmod 644 *.txt *.html Source/Doc/*.html
+%description static -l pl.UTF-8
+Statyczna biblioteka MediaInfo.
-%build
-export CFLAGS="%{rpmcflags}"
-export CPPFLAGS="%{rpmcppflags}"
-export CXXFLAGS="%{rpmcxxflags}"
+%package apidocs
+Summary: API documentation for MediaInfo library
+Summary(pl.UTF-8): Dokumentacja API biblioteki MediaInfo
+Group: Documentation
+BuildArch: noarch
-cd Source/Doc
- doxygen Doxyfile
-cd ../..
+%description apidocs
+API documentation for MediaInfo library.
-cp Source/Doc/*.html ./
+%description apidocs -l pl.UTF-8
+Dokumentacja API biblioteki MediaInfo.
-cd Project/GNU/Library
- chmod +x autogen
- ./autogen
- %configure \
- --enable-shared \
- --with-libcurl=no \
- --with-libmms=no
+%prep
+%setup -q -n MediaInfoLib-%{version}
+cp -p Release/ReadMe_DLL_Linux.txt ReadMe.txt
+%{__mv} History_DLL.txt History.txt
+%undos *.txt *.html Source/Doc/*.html
+chmod 644 *.txt *.html Source/Doc/*.html
- %{__make} clean
- %{__make}
-cd ../../..
+%build
+cd Project/GNU/Library
+%{__libtoolize}
+%{__aclocal}
+%{__autoconf}
+%{__automake}
+%configure \
+ %{?with_static_libs:--enable-static} \
+ %{?with_graphviz:--with-graphviz} \
+ %{?with_curl:--with-libcurl} \
+ %{?with_mms:--with-libmms} \
+ --with-libtinyxml2
+
+%{__make} clean
+%{__make}
+
+%if %{with apidocs}
+cd ../../../Source/Doc
+doxygen Doxyfile
+%endif
%install
rm -rf $RPM_BUILD_ROOT
-%{__make} -C Project/GNU/Library \
- install \
+%{__make} -C Project/GNU/Library install \
DESTDIR=$RPM_BUILD_ROOT
-# MediaInfoDLL headers and MediaInfo-config
-for i in MediaInfo MediaInfoDLL; do
- install -dm 755 $RPM_BUILD_ROOT%{_includedir}/$i
- install -m 644 Source/$i/*.h $RPM_BUILD_ROOT%{_includedir}/$i
-done
-
-%{__sed} -i -e 's|Version: |Version: %{version}|g' Project/GNU/Library/libmediainfo.pc
-install -dm 755 $RPM_BUILD_ROOT%{_libdir}/pkgconfig
-install Project/GNU/Library/libmediainfo.pc $RPM_BUILD_ROOT%{_libdir}/pkgconfig
+# obsoleted by pkg-config
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/libmediainfo.la
%clean
rm -rf $RPM_BUILD_ROOT
-%post -p /sbin/ldconfig
-%postun -p /sbin/ldconfig
+%post -p /sbin/ldconfig
+%postun -p /sbin/ldconfig
%files
%defattr(644,root,root,755)
-%doc History.txt License.html ReadMe.txt
-%attr(755,root,root) %{_libdir}/libmediainfo.so.*
+%doc Changes.txt History.txt License.html README.md ReadMe.txt
+%attr(755,root,root) %{_libdir}/libmediainfo.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libmediainfo.so.0
%files devel
%defattr(644,root,root,755)
-%doc Changes.txt Documentation.html Doc/* Source/Example/HowToUse*
+%attr(755,root,root) %{_libdir}/libmediainfo.so
%{_includedir}/MediaInfo
%{_includedir}/MediaInfoDLL
-%{_libdir}/libmediainfo.la
-%attr(755,root,root) %{_libdir}/libmediainfo.so
-%{_pkgconfigdir}/*.pc
+%{_pkgconfigdir}/libmediainfo.pc
+%if %{with static_libs}
%files static
%defattr(644,root,root,755)
%{_libdir}/libmediainfo.a
+%endif
+
+%if %{with apidocs}
+%files apidocs
+%defattr(644,root,root,755)
+# Documentation.html expects Doc/index.html
+%doc Source/Doc/Documentation.html Doc Source/Example/HowToUse*
+%endif