[mirrorbrain] First import

averi averi at fedoraproject.org
Fri Dec 6 14:07:33 UTC 2013


commit cb295c5289a1d7be99727693c1f7b13943d44135
Author: Andrea Veri <av at gnome.org>
Date:   Fri Dec 6 15:07:28 2013 +0100

    First import

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


More information about the scm-commits mailing list