# Note that this is NOT a relocatable package

%define legacy_rhel 0%{?el4}%{?el3}

%if %{legacy_rhel}
        %define _with_screen --with-screen=ncurses
        %define _with_glib_static --with-glib-static
        %define glib_version 2.12
        %define glib_stepping .3
%else
        %define _with_screen --with-screen=slang
%endif

%define mc_version @DISTR_VERSION@
%define mc_release @DISTR_RELEASE@
%define mc_tarball @VERSION@

Summary:        User-friendly text console file manager and visual shell
Name:           mc
Version:        %{mc_version}
Release:        %{mc_release}%{?dist}
Epoch:          3
License:        GPL3+
Group:          System Environment/Shells
Source0:        %{name}-%{mc_tarball}.tar.gz

%if %{legacy_rhel}
Source1:        http://ftp.gnome.org/pub/gnome/sources/glib/%{glib_version}/glib-%{glib_version}%{?glib_stepping}.tar.bz2
Patch0:         glib2-CVE-2008-4316.patch
%endif

URL:            http://www.midnight-commander.org/
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires:  e2fsprogs-devel gpm-devel perl

%if %{legacy_rhel}%{?el5}
BuildRequires:  pcre-devel
%endif

%if %{legacy_rhel}

BuildRequires:  ncurses-devel

# From Glib
BuildRequires:  pkgconfig gettext

%else
BuildRequires:  glib2-devel slang-devel
%endif

%description
GNU Midnight Commander is a visual file manager. It's a feature rich
full-screen text mode application that allows you to copy, move and
delete files and whole directory trees, search for files and run
commands in the subshell. Internal viewer and editor are included. Mouse
is supported on Linux console. VFS (Virtual Filesystem) allows you to
view archives and files on remote servers (via SAMBA, FTP or SSH).

%prep

%setup -q -n %{name}-%{mc_tarball}

%if %{legacy_rhel}

%setup -q -T -D -a 1 -n %{name}-%{mc_tarball}

cd glib-%{glib_version}%{?glib_stepping}
%patch0 -p1 -b .CVE-2008-4316

%endif

%build

%if %{legacy_rhel}

pushd glib-%{glib_version}%{?glib_stepping}
RESULT_DIR=`pwd`/result

./configure \
        --disable-gtk-doc \
        --disable-shared \
        --enable-static \
        --prefix="$RESULT_DIR" \
        --exec-prefix="$RESULT_DIR" \
        --libdir="$RESULT_DIR/usr/%{_lib}"

%{__make} %{?_smp_mflags} CFLAGS="%{optflags} -fno-strict-aliasing" install
popd

PKG_CONFIG_PATH="$RESULT_DIR/usr/%{_lib}/pkgconfig:$PKG_CONFIG_PATH" ; export PKG_CONFIG_PATH ;
%endif

%configure \
        %{_with_screen} \
        %{?_with_glib_static} \
        --enable-charset \
        --enable-vfs-smb \
        --without-x \
        --with-gpm-mouse \
        --disable-doxygen-doc

%{__make} %{?_smp_mflags} CFLAGS="%{optflags}"

%install
rm -rf $RPM_BUILD_ROOT

make install DESTDIR="$RPM_BUILD_ROOT"

install -d -m 755 $RPM_BUILD_ROOT%{_sysconfdir}/profile.d
install contrib/{mc.sh,mc.csh} $RPM_BUILD_ROOT%{_sysconfdir}/profile.d

%find_lang %{name}

%clean
rm -rf $RPM_BUILD_ROOT

%files -f %{name}.lang
%defattr(-, root, root)

%doc doc/FAQ doc/COPYING doc/NEWS doc/README
%{_bindir}/mc
%{_bindir}/mcedit
%{_bindir}/mcview
%{_bindir}/mcdiff

%dir %{_libexecdir}/mc
%dir %{_libexecdir}/mc/extfs.d
%dir %{_libexecdir}/mc/fish
%attr(4511, vcsa, tty) %{_libexecdir}/mc/cons.saver
%{_libexecdir}/mc/mc*sh
%{_libexecdir}/mc/extfs.d/*
%{_libexecdir}/mc/fish/*

%{_mandir}/man1/*
%lang(es) %{_mandir}/es/man1/mc.1*
%lang(hu) %{_mandir}/hu/man1/mc.1*
%lang(it) %{_mandir}/it/man1/mc.1*
%lang(pl) %{_mandir}/pl/man1/mc.1*
%lang(ru) %{_mandir}/ru/man1/mc.1*
%lang(sr) %{_mandir}/sr/man1/mc.1*

%{_sysconfdir}/profile.d/*

%config(noreplace) %{_sysconfdir}/mc/filehighlight.ini
%config(noreplace) %{_sysconfdir}/mc/*edit*
%config(noreplace) %{_sysconfdir}/mc/mc.ext
%config(noreplace) %{_sysconfdir}/mc/mc.menu
%config(noreplace) %{_sysconfdir}/mc/mc.menu.*
%config(noreplace) %{_sysconfdir}/mc/sfs.ini
%config(noreplace) %{_sysconfdir}/mc/mc.keymap
%config(noreplace) %{_sysconfdir}/mc/mc.keymap.*

%dir %{_datadir}/mc
%{_datadir}/mc/*

%changelog

* Fri Oct 14 2011 Slava Zanko <slavazanko@gmail.com>
- Changed License version

* Thu Jul 14 2011 Slava Zanko <slavazanko@gmail.com>
- Added %{_libexecdir}/mc/fish directory to spec file

* Thu Sep 16 2010 Andrew Borodin <aborodin@vmail.ru>
- Some files are installed now into %%{_datadir}/mc instead of %%{_sysconfdir}/mc.

* Wed Apr 28 2010 Yury V. Zaytsev <yury@shurup.com>
- Added mcdiff to the list of packaged files.

* Tue Feb 09 2010 Andrew Borodin <aborodin@vmail.ru>
- Fixed file list because of EXTFS VFS reorganizing.

* Wed Dec 30 2009 Yury V. Zaytsev <yury@shurup.com>
- Bumped the epoch again and changed the versioning scheme.
- Thanks to Slava Zanko for all his hard work on m4 vodoo!

* Fri Dec 25 2009 Yury V. Zaytsev <yury@shurup.com>
- Had to bump the epoch because of the braindead versioning scheme used.

* Fri Nov 27 2009 Yury V. Zaytsev <yury@shurup.com>
- Fixed debug info generation for legacy distros.
- Rewritten and simplified static build procedure.

* Mon Oct 26 2009 Andrew Borodin <aborodin@vmail.ru>
- Added new %%{_sysconfdir}/mc/mc.keymap.* files.

* Fri Sep 04 2009 Slava Zanko <slavazanko@gmail.com>
- Add new file %%{_sysconfdir}/mc/filehighlight.ini.

* Sat Aug 01 2009 Yury V. Zaytsev <yury@shurup.com>
- Fixed EL4 (and supposedly EL3) builds.
- Fixed some of the rpmlint warnings.

* Sat Jul 04 2009 Yury V. Zaytsev <yury@shurup.com>
- Fix the issue when wrappers were left unpackaged.

* Thu May 21 2009 Slava Zanko <slavazanko@gmail.com>
- Fix install patches: use %%{_sysconfdir}/mc directory.

* Fri May 8 2009 Slava Zanko <slavazanko@gmail.com>
- Reviewed spec-file to build on the current distributions.
- Changed build rules.
- Fixed install paths.

* Fri Jun 22 2007 Pavel Roskin <proski@gnu.org>
- Made cons.saver suid vcsa, it's needed for Fedora 7.

* Thu Dec 21 2006 Pavel Roskin <proski@gnu.org>
- Don't rely on brace expansion, it may be disabled.

* Mon Jan 30 2006 Pavel Roskin <proski@gnu.org>
- Avoid using %%{_prefix} where more specialized macros are available.

* Tue Aug 02 2005 Pavel Roskin <proski@gnu.org>
- Replace obsolete "Copyright" with "License".

* Thu Mar 31 2005 Pavel Roskin <proski@gnu.org>
- Comment out build dependencies - they are too distribution specific.

* Tue Sep 23 2003 Pavel Roskin <proski@gnu.org>
- Remove term directory, it's obsolete and irrelevant on modern systems.
- Include translated menu files.

* Sun Feb 16 2003 Pavel Roskin <proski@gnu.org>
- Remove obsolete dependency on /sbin/chkconfig.

* Tue Dec 24 2002 Pavel Roskin <proski@gnu.org>
- Work around bug in rpm 4.1 that expands defines in comments.
- Handle --without-x.

* Mon Nov 04 2002 Andrew V. Samoilov <sav@bcs.zp.ua>
- Handle --with ext2undel.

* Fri Nov 01 2002 Pavel Roskin <proski@gnu.org>
- Add wrappers to support setting last directory on exit.  Keep all
  scripts in their original directory, just copy them.

* Tue Oct 22 2002 Pavel Roskin <proski@gnu.org>
- Don't use the included S-Lang, there is a workaround for Red Hat 8.0
  S-Lang, and binary compatibility with Red Hat 7.x doesn't work anyway.

* Tue Oct 08 2002 Pavel Roskin <proski@gnu.org>
- Use the included S-Lang again, since we include a better version now.
  This should avoid incompatibility with Red Hat 7.x.
- Add _with_glib2 option.

* Mon Oct 07 2002 Pavel Roskin <proski@gnu.org>
- Remove installed mc.sh and mc.csh from %%{_prefix}/share/mc/bin to
  suppress a warning about installed but unpackaged files.

* Mon Sep 30 2002 Andrew V. Samoilov <sav@bcs.zp.ua>
- Don't require slang-devel if _with_ncurses.
- Handle --with samba.

* Sun Sep 29 2002 Pavel Roskin <proski@gnu.org>
- Use --with-screen instead of --with-ncurses and --with-included-slang.

* Mon Sep 23 2002 Andrew V. Samoilov <sav@bcs.zp.ua>
- Restore %%config for %%{_prefix}/share/mc/mc.charsets.
- Restore %%{_prefix}/share/mc/edit.spell.rc.

* Sat Sep 21 2002 Pavel Roskin <proski@gnu.org>
- Use FHS-compliant paths.
- Drop %%config from files under /usr/share - users are not supposed to
  edit them.  Local copies under ~/.mc should be used for that.

* Wed Aug 21 2002 Pavel Roskin <proski@gnu.org>
- Change description, update URLs, allow dash in the version.

* Tue Aug 20 2002 Pavel Roskin <proski@gnu.org>
- Support conditional builds.

* Tue Aug 20 2002 Andrew V. Samoilov <sav@bcs.zp.ua>
- Add /usr/lib/mc/mc.charsets.
- Add %%{_mandir}/*/man1/*.

* Fri Aug 16 2002 Pavel Roskin <proski@gnu.org>
- Remove mc.global.

* Mon Jan 21 2002 Pavel Roskin <proski@gnu.org>
- Remove --with-gnome and --with-included-slang from configure options.
- Add BuildPrereq.

* Fri Aug 24 2001 Pavel Roskin <proski@gnu.org>
- Remove gmc.  Reunite mc and mc-common.

* Sun Aug 05 2001 Pavel Roskin <proski@gnu.org>
- Set epoch.

* Sun Jul 15 2001 Pavel Roskin <proski@gnu.org>
- Remove /usr/lib/mc/layout.

* Sat Jun 09 2001 Pavel Roskin <proski@gnu.org>
- Use %%{_prefix} and %%{_mandir}. Specify --mandir to configure.

* Fri May 25 2001 Pavel Roskin <proski@gnu.org>
- Change groups. Don't include locale directories. More config files.

* Sun May 20 2001 Pavel Roskin <proski@gnu.org>
- Don't require stylesheets, since HTML files are now in the tarball.

* Thu Apr 19 2001 Pavel Roskin <proski@gnu.org>
- Remove package mcserv. Drop dependency on PAM.

* Mon Feb 26 2001 Pavel Roskin <proski@gnu.org>
- Remove mc-gnome.ext.

* Thu Jan 11 2001 Pavel Roskin <proski@gnu.org>
- Include mcview.

* Mon Oct 23 2000 Pavel Roskin <proski@gnu.org>
- Allow mcserv.8 to be gzipped.

* Sat Sep 30 2000 Pavel Roskin <proski@gnu.org>
- New package mc-common.
- Use DESTDIR instead of misusing prefix.
- Don't install old icons - they don't exist

* Sat Sep 23 2000 Pavel Roskin <proski@gnu.org>
- Include translations with mc, not gmc.
- chkconfig --del in %%preun, not %%postun.
- --without-debug not needed.
- /etc/X11/wmconfig not needed.
- /etc/pam.d/mcserv shouldn't be executable.
- New files in %%{prefix}/lib/mc/ - translated hints, editor files.

* Thu Sep 09 1999 Elliot Lee <sopwith@redhat.com>
- Include .idl files in the package.

* Sat Sep 04 1999 Gregory McLean <gregm@comstar.net>
- Added a build prereq so that rpms get built with documentation ;)

* Mon Jul 12 1999 Kjartan Maraas  <kmaraas@online.no>
- Added help and locale files to %%files.

* Tue Jun 22 1999 Vladimir Kondratiev <vkondra@iil.intel.com>
- Added syntax files to %%files.

* Wed May 26 1999 Cody Russell <bratsche@dfw.net>
- Chmod cons.saver at $RPM_BUILD_ROOT%%{prefix}/lib rather than at
  $RPM_BUILD_ROOT/usr/lib. We can now install to somewhere other than /usr.

* Sun Apr 18 1999 Gregory McLean <gregm@comstar.net>
- Updated the specfile, removed some kludges.

* Thu Aug 20 1998 Michael Fulbright <msf@redhat.com>
- Rebuilt against gnome-libs 0.27 and gtk+-1.1.

* Thu Jul 09 1998 Michael Fulbright <msf@redhat.com>
- Made cons.saver not setuid.

* Sun Apr 19 1998 Marc Ewing <marc@redhat.com>
- Removed tkmc.

* Wed Apr 8 1998 Marc Ewing <marc@redhat.com>
- Add /usr/lib/mc/layout to gmc.

