Blob Blame History Raw
%?mingw_package_header

%global mingw_build_win32 1
%global mingw_build_win64 1

Name:           mingw-readline
Version:        5.2
Release:        12%{?dist}
Summary:        MinGW port of readline for editing typed command lines

License:        GPLv2+
Group:          System Environment/Libraries
URL:            http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html
Source0:        ftp://ftp.gnu.org/gnu/readline/readline-%{version}.tar.gz

Patch1:         readline-5.2-shlib.patch
Patch2:         readline-5.2-001.patch
Patch3:         readline-5.2-002.patch
Patch4:         readline-5.2-003.patch
Patch5:         readline-5.2-004.patch
Patch6:         readline-5.2-005.patch
Patch7:         readline-5.2-006.patch
Patch8:         readline-5.2-007.patch
Patch9:         readline-5.2-008.patch
Patch10:        readline-5.2-009.patch
Patch11:        readline-5.2-010.patch
Patch12:        readline-5.2-011.patch
Patch13:        readline-5.2-redisplay-sigint.patch

BuildArch:      noarch

BuildRequires:  mingw32-filesystem >= 95
BuildRequires:  mingw32-gcc
BuildRequires:  mingw32-binutils
BuildRequires:  mingw32-termcap

BuildRequires:  mingw64-filesystem >= 95
BuildRequires:  mingw64-gcc
BuildRequires:  mingw64-binutils
BuildRequires:  mingw64-termcap


%description
The Readline library provides a set of functions that allow users to
edit command lines. Both Emacs and vi editing modes are available. The
Readline library includes additional functions for maintaining a list
of previously-entered command lines for recalling or editing those
lines, and for performing csh-like history expansion on previous
commands.

This is a port of the library and development tools to Windows.


# Win32
%package -n mingw32-readline
Summary:        MinGW port of readline for editing typed command lines

%description -n mingw32-readline
The Readline library provides a set of functions that allow users to
edit command lines. Both Emacs and vi editing modes are available. The
Readline library includes additional functions for maintaining a list
of previously-entered command lines for recalling or editing those
lines, and for performing csh-like history expansion on previous
commands.

This is a port of the library and development tools to Windows.

%package -n mingw32-readline-static
Summary:        Static version of the cross compiled readline library
Requires:       mingw32-readline = %{version}-%{release}

%description -n mingw32-readline-static
Static version of the cross compiled readline library.

# Win64
%package -n mingw64-readline
Summary:        MinGW port of readline for editing typed command lines

%description -n mingw64-readline
The Readline library provides a set of functions that allow users to
edit command lines. Both Emacs and vi editing modes are available. The
Readline library includes additional functions for maintaining a list
of previously-entered command lines for recalling or editing those
lines, and for performing csh-like history expansion on previous
commands.

This is a port of the library and development tools to Windows.

%package -n mingw64-readline-static
Summary:        Static version of the cross compiled readline library
Requires:       mingw64-readline = %{version}-%{release}

%description -n mingw64-readline-static
Static version of the cross compiled readline library.


%?mingw_debug_package


%prep
%setup -q -n readline-%{version}
%patch1 -p1 -b .shlib
%patch2 -p0 -b .001
%patch3 -p0 -b .002
%patch4 -p0 -b .003
%patch5 -p0 -b .004
%patch6 -p0 -b .005
%patch7 -p0 -b .006
%patch8 -p0 -b .007
%patch9 -p0 -b .008
%patch10 -p0 -b .009
%patch11 -p0 -b .010
%patch12 -p0 -b .011
%patch13 -p1 -b .redisplay-sigint

pushd examples
rm -f rlfe/configure
iconv -f iso8859-1 -t utf8 -o rl-fgets.c{_,}
touch -r rl-fgets.c{,_}
mv -f rl-fgets.c{_,}
popd


%build
%mingw_configure "--enable-shared"
%mingw_make SHLIB_LIBS=-ltermcap

# Rebuild the DLLs correctly and create implibs.
pushd build_win32/shlib
%{mingw32_cc} -shared -o readline.dll -Wl,--out-implib,libreadline.dll.a readline.so vi_mode.so funmap.so keymaps.so parens.so search.so rltty.so complete.so bind.so isearch.so display.so signals.so util.so kill.so undo.so macro.so input.so callback.so terminal.so text.so nls.so misc.so xmalloc.so history.so histexpand.so histfile.so histsearch.so shell.so mbutil.so tilde.so compat.so -ltermcap
%{mingw32_cc} -shared -o history.dll -Wl,--out-implib,libhistory.dll.a history.so histexpand.so histfile.so histsearch.so shell.so mbutil.so xmalloc.so
popd

pushd build_win64/shlib
%{mingw64_cc} -shared -o readline.dll -Wl,--out-implib,libreadline.dll.a readline.so vi_mode.so funmap.so keymaps.so parens.so search.so rltty.so complete.so bind.so isearch.so display.so signals.so util.so kill.so undo.so macro.so input.so callback.so terminal.so text.so nls.so misc.so xmalloc.so history.so histexpand.so histfile.so histsearch.so shell.so mbutil.so tilde.so compat.so -ltermcap
%{mingw64_cc} -shared -o history.dll -Wl,--out-implib,libhistory.dll.a history.so histexpand.so histfile.so histsearch.so shell.so mbutil.so xmalloc.so
popd


%install
%mingw_make_install DESTDIR=$RPM_BUILD_ROOT

# Remove the fake .so files and install our DLLs and implibs.
pushd build_win32/shlib
rm $RPM_BUILD_ROOT%{mingw32_libdir}/lib*.so.*
mkdir -p $RPM_BUILD_ROOT%{mingw32_bindir}
install readline.dll $RPM_BUILD_ROOT%{mingw32_bindir}
install libreadline.dll.a $RPM_BUILD_ROOT%{mingw32_libdir}
install history.dll $RPM_BUILD_ROOT%{mingw32_bindir}
install libhistory.dll.a $RPM_BUILD_ROOT%{mingw32_libdir}
popd

pushd build_win64/shlib
rm $RPM_BUILD_ROOT%{mingw64_libdir}/lib*.so.*
mkdir -p $RPM_BUILD_ROOT%{mingw64_bindir}
install readline.dll $RPM_BUILD_ROOT%{mingw64_bindir}
install libreadline.dll.a $RPM_BUILD_ROOT%{mingw64_libdir}
install history.dll $RPM_BUILD_ROOT%{mingw64_bindir}
install libhistory.dll.a $RPM_BUILD_ROOT%{mingw64_libdir}
popd

# Don't want the info files or manpages which duplicate the native package.
rm -rf $RPM_BUILD_ROOT%{mingw32_mandir}
rm -rf $RPM_BUILD_ROOT%{mingw32_infodir}

rm -rf $RPM_BUILD_ROOT%{mingw64_mandir}
rm -rf $RPM_BUILD_ROOT%{mingw64_infodir}


# Win32
%files -n mingw32-readline
%{mingw32_bindir}/readline.dll
%{mingw32_bindir}/history.dll
%{mingw32_libdir}/libreadline.dll.a
%{mingw32_libdir}/libhistory.dll.a
%{mingw32_includedir}/readline/

%files -n mingw32-readline-static
%{mingw32_libdir}/libhistory.a
%{mingw32_libdir}/libreadline.a

# Win64
%files -n mingw64-readline
%{mingw64_bindir}/readline.dll
%{mingw64_bindir}/history.dll
%{mingw64_libdir}/libreadline.dll.a
%{mingw64_libdir}/libhistory.dll.a
%{mingw64_includedir}/readline/

%files -n mingw64-readline-static
%{mingw64_libdir}/libhistory.a
%{mingw64_libdir}/libreadline.a


%changelog
* Sat Mar 10 2012 Erik van Pienbroek <epienbro@fedoraproject.org> - 5.2-12
- Added win64 support
- Automatically generate debuginfo subpackage
- Added -static subpackage

* Wed Mar 07 2012 Kalev Lember <kalevlember@gmail.com> - 5.2-11
- Renamed the source package to mingw-readline (#801022)
- Modernize the spec file
- Use mingw macros without leading underscore

* Mon Feb 27 2012 Erik van Pienbroek <epienbro@fedoraproject.org> - 5.2-10
- Rebuild against the mingw-w64 toolchain

* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 5.2-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild

* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 5.2-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild

* Sat Jul 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 5.2-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild

* Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 5.2-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild

* Fri Feb 20 2009 Richard W.M. Jones <rjones@redhat.com> - 5.2-5
- Rebuild for mingw32-gcc 4.4

* Sat Nov 22 2008 Richard W.M. Jones <rjones@redhat.com> - 5.2-4
- Rename *.dll.a to lib*.dll.a so that libtool can use these libraries.

* Wed Nov 19 2008 Richard W.M. Jones <rjones@redhat.com> - 5.2-3
- Fix paths to mandir, infodir.

* Fri Oct 31 2008 Richard W.M. Jones <rjones@redhat.com> - 5.2-2
- Rebuild against latest termcap.

* Thu Sep 25 2008 Richard W.M. Jones <rjones@redhat.com> - 5.2-1
- Initial RPM release.