Andrea Veri cb295c5
%if 0%{?rhel}
Andrea Veri cb295c5
%global apxs /usr/sbin/apxs
Andrea Veri cb295c5
%endif
Andrea Veri cb295c5
%if 0%{?fedora}
Andrea Veri cb295c5
%global apxs /usr/bin/apxs
Andrea Veri cb295c5
%endif
Andrea Veri cb295c5
%global mirrorbrain_user mirrorbrain
Andrea Veri cb295c5
%global mirrorbrain_group mirrorbrain
Andrea Veri cb295c5
%global apache apache
Andrea Veri cb295c5
%global apache_libexecdir %(%{apxs} -q LIBEXECDIR)
Andrea Veri cb295c5
%global apache_sysconfdir %(%{apxs} -q SYSCONFDIR)
Andrea Veri cb295c5
%global apache_includedir %(%{apxs} -q INCLUDEDIR)
Andrea Veri cb295c5
%global apache_serverroot %(%{apxs} -q PREFIX)
Andrea Veri cb295c5
%global apache_localstatedir %(%{apxs} -q LOCALSTATEDIR)
Andrea Veri cb295c5
Andrea Veri cb295c5
Name:		mirrorbrain
Andrea Veri cb295c5
Summary:	A download redirector and metalink generator
Andrea Veri cb295c5
Url:		http://mirrorbrain.org/
Andrea Veri f052ed8
Version:	2.18.1
dc10a4b
Release:	2%{?dist}
Andrea Veri cb295c5
# ASL licensed files are: mod_autoindex_mb.c, mod_mirrorbrain.c, null-rsync
Andrea Veri cb295c5
# Other files are licensed under the GPLv2
Andrea Veri cb295c5
License:	ASL 2.0 and GPLv2
Andrea Veri cb295c5
Group:		Applications/Internet
Andrea Veri cb295c5
Source:		http://mirrorbrain.org/files/releases/mirrorbrain-%{version}.tar.gz
Andrea Veri cb295c5
# Mirrorbrain ships a modified version of the zsync library.
Andrea Veri cb295c5
Patch0:         zsync_modified_version.patch 
Andrea Veri cb295c5
Requires(pre):	shadow-utils	
Andrea Veri cb295c5
Andrea Veri cb295c5
BuildRequires:	httpd-devel
Andrea Veri cb295c5
BuildRequires:	geoip
Andrea Veri cb295c5
BuildRequires:	geoip-devel
Andrea Veri cb295c5
BuildRequires:	mod_form
Andrea Veri cb295c5
BuildRequires:	python2-devel
Andrea Veri cb295c5
Andrea Veri cb295c5
%description
Andrea Veri cb295c5
This apache module redirects clients to mirror servers, using an SQL backend,
Andrea Veri cb295c5
and generates metalinks.
Andrea Veri cb295c5
Andrea Veri cb295c5
%package doc
Andrea Veri cb295c5
License:        ASL 2.0 and GPLv2
Andrea Veri cb295c5
Summary:        MirrorBrain redirector Apache module
Andrea Veri cb295c5
Group:          Applications/Internet
Andrea Veri cb295c5
Requires:	%{name}%{?_isa} = %{version}-%{release}
Andrea Veri cb295c5
Andrea Veri cb295c5
%description doc
Andrea Veri cb295c5
MirrorBrain is a scalable download redirector.
Andrea Veri cb295c5
Andrea Veri cb295c5
This package contains the documentation.
Andrea Veri cb295c5
Andrea Veri cb295c5
Andrea Veri cb295c5
%package -n mod_mirrorbrain
Andrea Veri cb295c5
License:	ASL 2.0 and GPLv2
Andrea Veri cb295c5
Summary:	MirrorBrain redirector Apache module
Andrea Veri cb295c5
Group:		Applications/Internet
Andrea Veri cb295c5
Requires:	httpd
Andrea Veri cb295c5
Requires:	apr-util-pgsql
Andrea Veri cb295c5
Requires:	geoip
Andrea Veri cb295c5
Requires:	mod_geoip
Andrea Veri cb295c5
Requires:	mod_form
Andrea Veri cb295c5
Requires:	%{name}%{?_isa} = %{version}-%{release}
Andrea Veri cb295c5
Andrea Veri cb295c5
Andrea Veri cb295c5
%description -n mod_mirrorbrain
Andrea Veri cb295c5
MirrorBrain is a scalable download redirector.
Andrea Veri cb295c5
Andrea Veri cb295c5
This package contains mod_mirrorbrain, the Apache module which represents the
Andrea Veri cb295c5
core of MirrorBrain.
Andrea Veri cb295c5
Andrea Veri cb295c5
Andrea Veri cb295c5
%package -n mod_autoindex_mb
Andrea Veri cb295c5
License:	ASL 2.0 and GPLv2
Andrea Veri cb295c5
Summary:	Apache module generating directory indexes for MirrorBrain
Andrea Veri cb295c5
Group:		Applications/Internet
Andrea Veri cb295c5
Requires:	mod_mirrorbrain
Andrea Veri cb295c5
Requires:       %{name}%{?_isa} = %{version}-%{release}
Andrea Veri cb295c5
Andrea Veri cb295c5
%description -n mod_autoindex_mb
Andrea Veri cb295c5
Andrea Veri cb295c5
This package contains mod_autoindex_mb, the Apache module which represents the
Andrea Veri cb295c5
core of MirrorBrain.
Andrea Veri cb295c5
Andrea Veri cb295c5
This package contains mod_autoindex_mb, which is a patched mod_autoindex. It
Andrea Veri cb295c5
adds a little further capability as index option.
Andrea Veri cb295c5
Andrea Veri cb295c5
It adds these two options:
Andrea Veri cb295c5
Andrea Veri cb295c5
        <IfModule mod_autoindex_mb.c>
Andrea Veri cb295c5
            IndexOptions Metalink
Andrea Veri cb295c5
            IndexOptions Mirrorlist
Andrea Veri cb295c5
        </IfModule>
Andrea Veri cb295c5
Andrea Veri cb295c5
The Metalink option adds a link named "Metalink" to the index, which links to
Andrea Veri cb295c5
the same file but with ".metalink" appended.
Andrea Veri cb295c5
Andrea Veri cb295c5
The MirrorList option adds a link named "Mirrors" to the index, which links to
Andrea Veri cb295c5
the same resources but with "?mirrorlist" appended.
Andrea Veri cb295c5
Andrea Veri cb295c5
Andrea Veri cb295c5
%package tools
Andrea Veri cb295c5
License:	ASL 2.0 and GPLv2
Andrea Veri cb295c5
Summary:	MirrorBrain commandline tools
Andrea Veri cb295c5
Group:		Applications/Internet
Andrea Veri cb295c5
Requires:	python-mb
Andrea Veri cb295c5
Requires:	python-cmdln
Andrea Veri cb295c5
Requires:	python-sqlobject
Andrea Veri cb295c5
Requires:	python-psycopg2
Andrea Veri cb295c5
Requires:	geoip
Andrea Veri cb295c5
Requires:	logrotate
Andrea Veri cb295c5
Requires:       %{name}%{?_isa} = %{version}-%{release}
Andrea Veri cb295c5
Andrea Veri cb295c5
%description tools
Andrea Veri cb295c5
MirrorBrain is a scalable download redirector.
Andrea Veri cb295c5
Andrea Veri cb295c5
This package contains utilities provided by the MirrorBrain framework to
Andrea Veri cb295c5
maintain the database and scan mirrors.
Andrea Veri cb295c5
Andrea Veri cb295c5
Andrea Veri cb295c5
%package -n python-mb
Andrea Veri cb295c5
License:	ASL 2.0 and GPLv2
Andrea Veri cb295c5
Summary:	Python module used by the MirrorBrain commandline tools
Andrea Veri cb295c5
Group:		Applications/Internet
Andrea Veri cb295c5
Requires:	python-sqlobject
Andrea Veri cb295c5
Requires:	python-psycopg2
Andrea Veri cb295c5
Requires:	geoip
Andrea Veri cb295c5
Requires:       %{name}%{?_isa} = %{version}-%{release}
Andrea Veri cb295c5
Andrea Veri cb295c5
%description -n python-mb
Andrea Veri cb295c5
MirrorBrain is a scalable download redirector.
Andrea Veri cb295c5
Andrea Veri cb295c5
This package contains a Python module (named "mb") for easily maintaining
Andrea Veri cb295c5
MirrorBrain.
Andrea Veri cb295c5
Andrea Veri cb295c5
Andrea Veri cb295c5
%package scanner
Andrea Veri cb295c5
License:	ASL 2.0 and GPLv2
Andrea Veri cb295c5
Summary:	MirrorBrain scanner
Andrea Veri cb295c5
Group:		Applications/Internet
Andrea Veri cb295c5
Requires:	perl(Config::IniFiles)
Andrea Veri cb295c5
Requires:	perl(Digest::MD4)
Andrea Veri cb295c5
Requires:	perl(DBD::Pg)
Andrea Veri cb295c5
Requires:	perl-TimeDate
Andrea Veri cb295c5
Requires:	perl-libwww-perl
Andrea Veri cb295c5
Requires:       perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version))
Andrea Veri cb295c5
Requires:       %{name}%{?_isa} = %{version}-%{release}
Andrea Veri cb295c5
Andrea Veri cb295c5
%description scanner
Andrea Veri cb295c5
MirrorBrain is a scalable download redirector.
Andrea Veri cb295c5
Andrea Veri cb295c5
This package contains the mirror scanner.
Andrea Veri cb295c5
Andrea Veri cb295c5
Andrea Veri cb295c5
%prep
Andrea Veri cb295c5
%setup -q -n mirrorbrain-%{version}
Andrea Veri cb295c5
%patch0 -p1
Andrea Veri cb295c5
Andrea Veri cb295c5
%build
Andrea Veri cb295c5
cd mod_mirrorbrain
Andrea Veri cb295c5
%{apxs} -c -Wc,"%{optflags}" -lm mod_mirrorbrain.c
Andrea Veri cb295c5
cd ../mod_autoindex_mb
Andrea Veri cb295c5
%{apxs} -c -Wc,"%{optflags}" mod_autoindex_mb.c
Andrea Veri cb295c5
cd ../tools
Andrea Veri cb295c5
gcc %{optflags} -Wall -o geoiplookup_continent geoiplookup_continent.c -lGeoIP
Andrea Veri cb295c5
gcc %{optflags} -Wall -o geoiplookup_city geoiplookup_city.c -lGeoIP
Andrea Veri cb295c5
cd ../mb
Andrea Veri cb295c5
CFLAGS="%{optflags}" \
Andrea Veri cb295c5
%{__python2} setup.py build
Andrea Veri cb295c5
Andrea Veri cb295c5
Andrea Veri cb295c5
%install
Andrea Veri cb295c5
mkdir -p %{buildroot}/%{apache_libexecdir}
Andrea Veri cb295c5
cp -p mod_mirrorbrain/.libs/mod_mirrorbrain.so %{buildroot}/%{apache_libexecdir}
Andrea Veri cb295c5
cp -p mod_autoindex_mb/.libs/mod_autoindex_mb.so %{buildroot}/%{apache_libexecdir}
Andrea Veri cb295c5
# tools
Andrea Veri cb295c5
install -D -p -m 755 tools/geoiplookup_continent %{buildroot}/%{_bindir}/geoiplookup_continent
Andrea Veri cb295c5
install -D -p -m 755 tools/geoiplookup_city %{buildroot}/%{_bindir}/geoiplookup_city
Andrea Veri cb295c5
install -D -p -m 755 tools/bdecode %{buildroot}/%{_bindir}/bdecode
Andrea Veri cb295c5
install -D -p -m 755 tools/rsyncinfo %{buildroot}/%{_bindir}/rsyncinfo
Andrea Veri cb295c5
install -D -p -m 755 tools/rsyncusers %{buildroot}/%{_bindir}/rsyncusers
Andrea Veri cb295c5
install -D -p -m 755 tools/geoip-lite-update %{buildroot}/%{_bindir}/geoip-lite-update
Andrea Veri cb295c5
install -D -p -m 755 tools/create_timestamp %{buildroot}/%{_bindir}/create_timestamp
Andrea Veri cb295c5
install -D -p -m 755 tools/null-rsync %{buildroot}/%{_bindir}/null-rsync
Andrea Veri cb295c5
install -D -p -m 755 tools/scanner.pl %{buildroot}/%{_bindir}/scanner
Andrea Veri cb295c5
install -D -p -m 755 mirrorprobe/mirrorprobe.py %{buildroot}/%{_bindir}/mirrorprobe
Andrea Veri cb295c5
install -D -p -m 644 tools/mirrorprobe-logrotate %{buildroot}/%{_sysconfdir}/logrotate.d/mirrorprobe
Andrea Veri cb295c5
Andrea Veri cb295c5
# Python mb module
Andrea Veri cb295c5
cd mb
Andrea Veri cb295c5
%{__python2} setup.py install --prefix=%{_prefix} --root %{buildroot}
Andrea Veri cb295c5
Andrea Veri cb295c5
# Icons
Andrea Veri cb295c5
mkdir -p %{buildroot}/%{_datadir}/mirrorbrain
Andrea Veri cb295c5
cp -a famfamfam_flag_icons %{buildroot}/%{_datadir}/mirrorbrain/
Andrea Veri cb295c5
Andrea Veri cb295c5
# log directory
Andrea Veri cb295c5
mkdir -p %{buildroot}/%{_localstatedir}/log/mirrorbrain
Andrea Veri cb295c5
Andrea Veri cb295c5
# Fix permissions on the python-mb file
Andrea Veri cb295c5
chmod a+x %{buildroot}%{python2_sitearch}/mb/*
Andrea Veri cb295c5
chmod 644 %{buildroot}%{python2_sitearch}/mb/zsync.so
Andrea Veri cb295c5
Andrea Veri cb295c5
%pre
Andrea Veri cb295c5
getent group %{mirrorbrain_group} >/dev/null || groupadd -r %{mirrorbrain_group}
Andrea Veri cb295c5
getent passwd %{mirrorbrain_user} >/dev/null || useradd -r -g %{mirrorbrain_group} -M -s /sbin/nologin %{mirrorbrain_user}
Andrea Veri cb295c5
exit 0
Andrea Veri cb295c5
Andrea Veri cb295c5
%files
Andrea Veri cb295c5
%doc COPYING FAQ TODO 
Andrea Veri cb295c5
%doc mod_autoindex_mb/NOTICE
Andrea Veri cb295c5
%doc mod_mirrorbrain/*.conf
Andrea Veri cb295c5
%dir %attr(750,%{mirrorbrain_user},%{mirrorbrain_group}) %{_localstatedir}/log/mirrorbrain
Andrea Veri cb295c5
Andrea Veri cb295c5
%files doc
Andrea Veri cb295c5
%doc docs
Andrea Veri cb295c5
%doc sql
Andrea Veri cb295c5
Andrea Veri cb295c5
%files -n mod_mirrorbrain
Andrea Veri cb295c5
%{apache_libexecdir}/mod_mirrorbrain.so
Andrea Veri cb295c5
Andrea Veri cb295c5
%files -n mod_autoindex_mb
Andrea Veri cb295c5
%{apache_libexecdir}/mod_autoindex_mb.so
Andrea Veri cb295c5
Andrea Veri cb295c5
%files tools
Andrea Veri cb295c5
%{_bindir}/bdecode
Andrea Veri cb295c5
%{_bindir}/create_timestamp
Andrea Veri cb295c5
%{_bindir}/geoip-lite-update
Andrea Veri cb295c5
%{_bindir}/geoiplookup_city
Andrea Veri cb295c5
%{_bindir}/geoiplookup_continent
Andrea Veri cb295c5
%{_bindir}/mirrorprobe
Andrea Veri cb295c5
%{_bindir}/null-rsync
Andrea Veri cb295c5
%{_bindir}/rsyncinfo
Andrea Veri cb295c5
%{_bindir}/rsyncusers
Andrea Veri cb295c5
%config(noreplace) %{_sysconfdir}/logrotate.d/mirrorprobe
Andrea Veri cb295c5
%{_datadir}/mirrorbrain
Andrea Veri cb295c5
Andrea Veri cb295c5
%files -n python-mb
Andrea Veri cb295c5
%{_bindir}/mb
Andrea Veri cb295c5
%{python2_sitearch}/mb*
Andrea Veri cb295c5
Andrea Veri cb295c5
%files scanner
Andrea Veri cb295c5
%{_bindir}/scanner
Andrea Veri cb295c5
Andrea Veri cb295c5
%changelog 
dc10a4b
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.18.1-2
dc10a4b
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
dc10a4b
Andrea Veri f052ed8
* Tue Feb 04 2014 Andrea Veri <averi@fedoraproject.org> 2.18.1-1
Andrea Veri f052ed8
- New upstream release.
Andrea Veri f052ed8
Andrea Veri cb295c5
* Thu Dec 05 2013 Andrea Veri <averi@fedoraproject.org> 2.17.0-3
Andrea Veri cb295c5
- Added a note about what files are licensed under the ASL 2.0.
Andrea Veri cb295c5
- Moved shadow-utils as a Require(pre)
Andrea Veri cb295c5
- Add a zsync_modified_version patch, we're shipping zsync.so on 
Andrea Veri cb295c5
  python_sitearch/mb given this specific zsync release just contains
Andrea Veri cb295c5
  the code needed for the checksums to happen.
Andrea Veri cb295c5
Andrea Veri cb295c5
* Thu Dec 05 2013 Andrea Veri <averi@fedoraproject.org> 2.17.0-2
Andrea Veri cb295c5
- Make use of optflags.
Andrea Veri cb295c5
- Don't mix $-style and %-style.
Andrea Veri cb295c5
- Make sure each package depends on the base package.
Andrea Veri cb295c5
- Put the docs that exceed 1M on their own package.
Andrea Veri cb295c5
- Fix permissions on the python-mb's files.
Andrea Veri cb295c5
Andrea Veri cb295c5
* Thu Nov 28 2013 Andrea Veri <averi@fedoraproject.org> 2.17.0-1 
Andrea Veri cb295c5
- First package release.