- Install git-* commands in %{_libexecdir}/git-core, the upstream default

- Remove libcurl from Requires, rpm will pick this up automatically
- Consolidate build/install options in %make_git (Roland McGrath)
- Include DirectoryIndex in gitweb httpd-config (bug 471692)
- Define DOCBOOK_XSL_172 to fix minor manpage issues
- Rename %{_var}/lib/git-daemon to %{_var}/lib/git
- Preserve timestamps on installed files
- Quiet some rpmlint complaints
- Use macros more consistently
This commit is contained in:
Todd Zullinger 2009-01-03 16:36:21 +00:00
parent 413c55e528
commit f1f8cabac8
5 changed files with 100 additions and 76 deletions

View File

@ -1 +1 @@
git-1.6.0.6.tar.bz2 git-1.6.1.tar.bz2

View File

@ -3,4 +3,5 @@ Alias /git /var/www/git
<Directory /var/www/git> <Directory /var/www/git>
Options +ExecCGI Options +ExecCGI
AddHandler cgi-script .cgi AddHandler cgi-script .cgi
DirectoryIndex gitweb.cgi
</Directory> </Directory>

167
git.spec
View File

@ -1,23 +1,23 @@
# Pass --without docs to rpmbuild if you don't want the documentation # Pass --without docs to rpmbuild if you don't want the documentation
Name: git Name: git
Version: 1.6.0.6 Version: 1.6.1
Release: 1%{?dist} Release: 1%{?dist}
Summary: Core git tools Summary: Core git tools
License: GPLv2 License: GPLv2
Group: Development/Tools Group: Development/Tools
URL: http://kernel.org/pub/software/scm/git/ URL: http://kernel.org/pub/software/scm/git/
Source: http://kernel.org/pub/software/scm/git/%{name}-%{version}.tar.bz2 Source0: http://kernel.org/pub/software/scm/git/%{name}-%{version}.tar.bz2
Source1: git-init.el Source1: git-init.el
Source2: git.xinetd Source2: git.xinetd
Source3: git.conf.httpd Source3: git.conf.httpd
Patch0: git-1.5-gitweb-home-link.patch Patch0: git-1.5-gitweb-home-link.patch
BuildRequires: zlib-devel >= 1.2, openssl-devel, libcurl-devel, expat-devel, emacs, gettext %{!?_without_docs:, xmlto, asciidoc > 6.0.3} BuildRequires: zlib-devel >= 1.2, openssl-devel, libcurl-devel, expat-devel, emacs, gettext %{!?_without_docs:, xmlto, asciidoc > 6.0.3}
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Requires: perl-Git = %{version}-%{release} Requires: perl-Git = %{version}-%{release}
Requires: zlib >= 1.2, rsync, libcurl, less, openssh-clients, expat, perl(Error) Requires: zlib >= 1.2, rsync, less, openssh-clients, expat, perl(Error)
Provides: git-core = %{version}-%{release} Provides: git-core = %{version}-%{release}
Obsoletes: git-core <= 1.5.4.3 Obsoletes: git-core <= 1.5.4.3
%description %description
Git is a fast, scalable, distributed revision control system with an Git is a fast, scalable, distributed revision control system with an
@ -29,18 +29,18 @@ install all git packages, including tools for integrating with other
SCMs, install the git-all meta-package. SCMs, install the git-all meta-package.
%package all %package all
Summary: Meta-package to pull in all git tools Summary: Meta-package to pull in all git tools
Group: Development/Tools Group: Development/Tools
Requires: git = %{version}-%{release} Requires: git = %{version}-%{release}
Requires: git-svn = %{version}-%{release} Requires: git-svn = %{version}-%{release}
Requires: git-cvs = %{version}-%{release} Requires: git-cvs = %{version}-%{release}
Requires: git-arch = %{version}-%{release} Requires: git-arch = %{version}-%{release}
Requires: git-email = %{version}-%{release} Requires: git-email = %{version}-%{release}
Requires: gitk = %{version}-%{release} Requires: gitk = %{version}-%{release}
Requires: git-gui = %{version}-%{release} Requires: git-gui = %{version}-%{release}
Requires: perl-Git = %{version}-%{release} Requires: perl-Git = %{version}-%{release}
Requires: emacs-git = %{version}-%{release} Requires: emacs-git = %{version}-%{release}
Obsoletes: git <= 1.5.4.3 Obsoletes: git <= 1.5.4.3
%description all %description all
Git is a fast, scalable, distributed revision control system with an Git is a fast, scalable, distributed revision control system with an
@ -50,9 +50,9 @@ and full access to internals.
This is a dummy package which brings in all subpackages. This is a dummy package which brings in all subpackages.
%package daemon %package daemon
Summary: Git protocol dæmon Summary: Git protocol dæmon
Group: Development/Tools Group: Development/Tools
Requires: git = %{version}-%{release} Requires: git = %{version}-%{release}
%description daemon %description daemon
The git dæmon for supporting git:// access to git repositories The git dæmon for supporting git:// access to git repositories
@ -89,8 +89,8 @@ Git tools for importing Arch repositories.
%package email %package email
Summary: Git tools for sending email Summary: Git tools for sending email
Group: Development/Tools Group: Development/Tools
Requires: git = %{version}-%{release}, perl-Git = %{version}-%{release} Requires: git = %{version}-%{release}, perl-Git = %{version}-%{release}
Requires: perl(Net::SMTP::SSL) Requires: perl(Net::SMTP::SSL)
%description email %description email
Git tools for sending email. Git tools for sending email.
@ -120,9 +120,9 @@ BuildRequires: perl(Error), perl(ExtUtils::MakeMaker)
Perl interface to Git. Perl interface to Git.
%package -n emacs-git %package -n emacs-git
Summary: Git version control system support for Emacs Summary: Git version control system support for Emacs
Group: Applications/Editors Group: Applications/Editors
Requires: git = %{version}-%{release}, emacs-common Requires: git = %{version}-%{release}, emacs-common
%description -n emacs-git %description -n emacs-git
%{summary}. %{summary}.
@ -131,51 +131,61 @@ Requires: git = %{version}-%{release}, emacs-common
%setup -q %setup -q
%patch0 -p1 %patch0 -p1
# Use these same options for every invocation of 'make'.
# Otherwise it will rebuild in %%install due to flags changes.
%define make_git \
make %{_smp_mflags} CFLAGS="$RPM_OPT_FLAGS" \\\
ETC_GITCONFIG=%{_sysconfdir}/gitconfig \\\
DESTDIR=$RPM_BUILD_ROOT \\\
DOCBOOK_XSL_172=YesPlease \\\
INSTALL="install -p" \\\
INSTALLDIRS=vendor \\\
prefix=%{_prefix}
%build %build
make %{_smp_mflags} CFLAGS="$RPM_OPT_FLAGS" \ %{make_git} all %{!?_without_docs: doc}
ETC_GITCONFIG=/etc/gitconfig \
gitexecdir=%{_bindir} \
prefix=%{_prefix} all %{!?_without_docs: doc}
make -C contrib/emacs make -C contrib/emacs
%install %install
rm -rf $RPM_BUILD_ROOT rm -rf $RPM_BUILD_ROOT
make %{_smp_mflags} CFLAGS="$RPM_OPT_FLAGS" DESTDIR=$RPM_BUILD_ROOT \ %{make_git} install %{!?_without_docs: install-doc}
prefix=%{_prefix} mandir=%{_mandir} \
ETC_GITCONFIG=/etc/gitconfig \
gitexecdir=%{_bindir} \
INSTALLDIRS=vendor install %{!?_without_docs: install-doc}
make -C contrib/emacs install \ make -C contrib/emacs install \
emacsdir=$RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp emacsdir=$RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp
for elc in $RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp/*.elc ; do for elc in $RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp/*.elc ; do
install -pm 644 contrib/emacs/$(basename $elc .elc).el \ install -pm 644 contrib/emacs/$(basename $elc .elc).el \
$RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp $RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp
done done
install -Dpm 644 %{SOURCE1} \ install -Dpm 644 %{SOURCE1} \
$RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp/site-start.d/git-init.el $RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp/site-start.d/git-init.el
mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/xinetd.d mkdir -p $RPM_BUILD_ROOT%{_var}/www/git
install -m 644 %SOURCE2 $RPM_BUILD_ROOT/%{_sysconfdir}/xinetd.d/git install -pm 644 -t $RPM_BUILD_ROOT%{_var}/www/git gitweb/*.png gitweb/*.css
mkdir -p $RPM_BUILD_ROOT/var/www/git install -pm 755 -t $RPM_BUILD_ROOT%{_var}/www/git gitweb/gitweb.cgi
install -m 644 -t $RPM_BUILD_ROOT/var/www/git gitweb/*.png gitweb/*.css
install -m 755 -t $RPM_BUILD_ROOT/var/www/git gitweb/gitweb.cgi
mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/httpd/conf.d mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/httpd/conf.d
install -m 0644 %SOURCE3 $RPM_BUILD_ROOT/%{_sysconfdir}/httpd/conf.d/git.conf install -pm 0644 %{SOURCE3} $RPM_BUILD_ROOT/%{_sysconfdir}/httpd/conf.d/git.conf
find $RPM_BUILD_ROOT -type f -name .packlist -exec rm -f {} ';' find $RPM_BUILD_ROOT -type f -name .packlist -exec rm -f {} ';'
find $RPM_BUILD_ROOT -type f -name '*.bs' -empty -exec rm -f {} ';' find $RPM_BUILD_ROOT -type f -name '*.bs' -empty -exec rm -f {} ';'
find $RPM_BUILD_ROOT -type f -name perllocal.pod -exec rm -f {} ';' find $RPM_BUILD_ROOT -type f -name perllocal.pod -exec rm -f {} ';'
(find $RPM_BUILD_ROOT%{_bindir} -type f | grep -vE "archimport|svn|cvs|email|gitk|git-gui|git-citooli|git-daemon" | sed -e s@^$RPM_BUILD_ROOT@@) > bin-man-doc-files (find $RPM_BUILD_ROOT{%{_bindir},%{_libexecdir}} -type f | grep -vE "archimport|svn|cvs|email|gitk|git-gui|git-citooli|git-daemon" | sed -e s@^$RPM_BUILD_ROOT@@) > bin-man-doc-files
(find $RPM_BUILD_ROOT%{perl_vendorlib} -type f | sed -e s@^$RPM_BUILD_ROOT@@) >> perl-files (find $RPM_BUILD_ROOT%{perl_vendorlib} -type f | sed -e s@^$RPM_BUILD_ROOT@@) >> perl-files
%if %{!?_without_docs:1}0 %if %{!?_without_docs:1}0
(find $RPM_BUILD_ROOT%{_mandir} $RPM_BUILD_ROOT/Documentation -type f | grep -vE "archimport|svn|git-cvs|email|gitk|git-gui|git-citool" | sed -e s@^$RPM_BUILD_ROOT@@ -e 's/$/*/' ) >> bin-man-doc-files (find $RPM_BUILD_ROOT%{_mandir} -type f | grep -vE "archimport|svn|git-cvs|email|gitk|git-gui|git-citool" | sed -e s@^$RPM_BUILD_ROOT@@ -e 's/$/*/' ) >> bin-man-doc-files
%else %else
rm -rf $RPM_BUILD_ROOT%{_mandir} rm -rf $RPM_BUILD_ROOT%{_mandir}
%endif %endif
mkdir -p $RPM_BUILD_ROOT/var/lib/git-daemon
mkdir -p $RPM_BUILD_ROOT%{_var}/lib/git
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d
install -pm 0644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d/git
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d
install -m 644 -T contrib/completion/git-completion.bash $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d/git install -pm 644 -T contrib/completion/git-completion.bash $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d/git
# quiet some rpmlint complaints
chmod g-w $RPM_BUILD_ROOT%{_libexecdir}/git-core/*
rm -f Documentation/technical/.gitignore
chmod a-x Documentation/technical/api-index.sh
%clean %clean
@ -185,6 +195,7 @@ rm -rf $RPM_BUILD_ROOT
%files -f bin-man-doc-files %files -f bin-man-doc-files
%defattr(-,root,root) %defattr(-,root,root)
%{_datadir}/git-core/ %{_datadir}/git-core/
%dir %{_libexecdir}/git-core/
%doc README COPYING Documentation/*.txt contrib/hooks %doc README COPYING Documentation/*.txt contrib/hooks
%{!?_without_docs: %doc Documentation/*.html Documentation/docbook-xsl.css} %{!?_without_docs: %doc Documentation/*.html Documentation/docbook-xsl.css}
%{!?_without_docs: %doc Documentation/howto Documentation/technical} %{!?_without_docs: %doc Documentation/howto Documentation/technical}
@ -193,7 +204,7 @@ rm -rf $RPM_BUILD_ROOT
%files svn %files svn
%defattr(-,root,root) %defattr(-,root,root)
%{_bindir}/*svn* %{_libexecdir}/git-core/*svn*
%doc Documentation/*svn*.txt %doc Documentation/*svn*.txt
%{!?_without_docs: %{_mandir}/man1/*svn*.1*} %{!?_without_docs: %{_mandir}/man1/*svn*.1*}
%{!?_without_docs: %doc Documentation/*svn*.html } %{!?_without_docs: %doc Documentation/*svn*.html }
@ -201,28 +212,29 @@ rm -rf $RPM_BUILD_ROOT
%files cvs %files cvs
%defattr(-,root,root) %defattr(-,root,root)
%doc Documentation/*git-cvs*.txt %doc Documentation/*git-cvs*.txt
%{_bindir}/*cvs* %{_bindir}/git-cvsserver
%{_libexecdir}/git-core/*cvs*
%{!?_without_docs: %{_mandir}/man1/*cvs*.1*} %{!?_without_docs: %{_mandir}/man1/*cvs*.1*}
%{!?_without_docs: %doc Documentation/*git-cvs*.html } %{!?_without_docs: %doc Documentation/*git-cvs*.html }
%files arch %files arch
%defattr(-,root,root) %defattr(-,root,root)
%doc Documentation/git-archimport.txt %doc Documentation/git-archimport.txt
%{_bindir}/git-archimport %{_libexecdir}/git-core/git-archimport
%{!?_without_docs: %{_mandir}/man1/git-archimport.1*} %{!?_without_docs: %{_mandir}/man1/git-archimport.1*}
%{!?_without_docs: %doc Documentation/git-archimport.html } %{!?_without_docs: %doc Documentation/git-archimport.html }
%files email %files email
%defattr(-,root,root) %defattr(-,root,root)
%doc Documentation/*email*.txt %doc Documentation/*email*.txt
%{_bindir}/*email* %{_libexecdir}/git-core/*email*
%{!?_without_docs: %{_mandir}/man1/*email*.1*} %{!?_without_docs: %{_mandir}/man1/*email*.1*}
%{!?_without_docs: %doc Documentation/*email*.html } %{!?_without_docs: %doc Documentation/*email*.html }
%files gui %files gui
%defattr(-,root,root) %defattr(-,root,root)
%{_bindir}/git-gui %{_libexecdir}/git-core/git-gui*
%{_bindir}/git-citool %{_libexecdir}/git-core/git-citool
%{_datadir}/git-gui/ %{_datadir}/git-gui/
%{!?_without_docs: %{_mandir}/man1/git-gui.1*} %{!?_without_docs: %{_mandir}/man1/git-gui.1*}
%{!?_without_docs: %doc Documentation/git-gui.html} %{!?_without_docs: %doc Documentation/git-gui.html}
@ -247,13 +259,13 @@ rm -rf $RPM_BUILD_ROOT
%files daemon %files daemon
%defattr(-,root,root) %defattr(-,root,root)
%{_bindir}/git-daemon %{_libexecdir}/git-core/git-daemon
%config(noreplace)%{_sysconfdir}/xinetd.d/git %config(noreplace)%{_sysconfdir}/xinetd.d/git
/var/lib/git-daemon %{_var}/lib/git
%files -n gitweb %files -n gitweb
%defattr(-,root,root) %defattr(-,root,root)
/var/www/git/ %{_var}/www/git/
%config(noreplace)%{_sysconfdir}/httpd/conf.d/git.conf %config(noreplace)%{_sysconfdir}/httpd/conf.d/git.conf
@ -261,6 +273,17 @@ rm -rf $RPM_BUILD_ROOT
# No files for you! # No files for you!
%changelog %changelog
* Sat Jan 03 2009 Todd Zullinger <tmz@pobox.com> 1.6.1-1
- Install git-* commands in %%{_libexecdir}/git-core, the upstream default
- Remove libcurl from Requires, rpm will pick this up automatically
- Consolidate build/install options in %%make_git (Roland McGrath)
- Include DirectoryIndex in gitweb httpd-config (bug 471692)
- Define DOCBOOK_XSL_172 to fix minor manpage issues
- Rename %%{_var}/lib/git-daemon to %%{_var}/lib/git
- Preserve timestamps on installed files
- Quiet some rpmlint complaints
- Use macros more consistently
* Sat Dec 20 2008 Todd Zullinger <tmz@pobox.com> 1.6.0.6-1 * Sat Dec 20 2008 Todd Zullinger <tmz@pobox.com> 1.6.0.6-1
- git-1.6.0.6 - git-1.6.0.6
- Fixes a local privilege escalation bug in gitweb - Fixes a local privilege escalation bug in gitweb
@ -514,7 +537,7 @@ rm -rf $RPM_BUILD_ROOT
* Tue Jan 10 2006 Chris Wright <chrisw@redhat.com> 1.1.0-1 * Tue Jan 10 2006 Chris Wright <chrisw@redhat.com> 1.1.0-1
- Update to latest git-1.1.0 (drop git-email for now) - Update to latest git-1.1.0 (drop git-email for now)
- Now creates multiple packages: - Now creates multiple packages:
- git-core, git-svn, git-cvs, git-arch, gitk - git-core, git-svn, git-cvs, git-arch, gitk
* Mon Nov 14 2005 H. Peter Anvin <hpa@zytor.com> 0.99.9j-1 * Mon Nov 14 2005 H. Peter Anvin <hpa@zytor.com> 0.99.9j-1
- Change subpackage names to git-<name> instead of git-core-<name> - Change subpackage names to git-<name> instead of git-core-<name>
@ -551,7 +574,7 @@ rm -rf $RPM_BUILD_ROOT
* Wed Aug 17 2005 Tom "spot" Callaway <tcallawa@redhat.com> 0.99.4-3 * Wed Aug 17 2005 Tom "spot" Callaway <tcallawa@redhat.com> 0.99.4-3
- use dist tag to differentiate between branches - use dist tag to differentiate between branches
- use rpm optflags by default (patch0) - use rpm optflags by default (patch0)
- own %{_datadir}/git-core/ - own %%{_datadir}/git-core/
* Mon Aug 15 2005 Chris Wright <chrisw@osdl.org> * Mon Aug 15 2005 Chris Wright <chrisw@osdl.org>
- update spec file to fix Buildroot, Requires, and drop Vendor - update spec file to fix Buildroot, Requires, and drop Vendor

View File

@ -8,8 +8,8 @@ service git
socket_type = stream socket_type = stream
wait = no wait = no
user = nobody user = nobody
server = /usr/bin/git-daemon server = /usr/bin/git
server_args = --base-path=/srv/git --export-all --user-path=public_git --syslog --inetd --verbose server_args = daemon --base-path=/var/lib/git --export-all --user-path=public_git --syslog --inetd --verbose
log_on_failure += USERID log_on_failure += USERID
# xinetd doesn't do this by default. bug #195265 # xinetd doesn't do this by default. bug #195265
flags = IPv6 flags = IPv6

View File

@ -1 +1 @@
b5be9b34b441cb57f92086bfaf59f255 git-1.6.0.6.tar.bz2 66265d85593473b23290232b9dccef77 git-1.6.1.tar.bz2