File git.spec of Package git

#
# spec file for package git (Version 1.6.0.2)
#
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#



Name:           git
%if 0%{?suse_version} < 1030
%define dist_has_fdupes 0
%else
%define dist_has_fdupes 1
%endif
BuildRequires:  asciidoc
BuildRequires:  curl-devel
%if %{dist_has_fdupes}
BuildRequires:  fdupes
%endif
%if 0%{?suse_version} < 1030
BuildRequires:  openssl-devel
%else
BuildRequires:  libopenssl-devel
%endif
BuildRequires:  sgml-skel
BuildRequires:  xmlto
Version:        1.6.0.2
Release:        6
Summary:        Fast, scalable, distributed revision control system
License:        GPL v2 or later
Group:          Development/Tools/Version Control
Url:            http://git.or.cz
Source0:        http://kernel.org/pub/software/scm/git/%name-%{version}.tar.bz2
Source1:        apache2-gitweb.conf
Source2:        sysconfig.git-daemon
Source3:        git-daemon.init
Source4:        git.xinetd
Patch:          asciidoc.diff
Patch1:         git-install-git-shell.diff
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
Requires:       git-core = %{version}


%description
Git is a fast, scalable, distributed revision control system with an
unusually rich command set that provides both high-level operations and
full access to internals.

This package itself only provides the README of git but with the
packages it requires, it brings you a complete Git environment
including GTK and email interfaces and tools for importing source code
repositories from other revision control systems such as subversion,
CVS, and GNU arch.



Authors:
--------
    Linus Torvalds <torvalds@osdl.org>

%package core
License:        GPL v2 or later
Summary:        Core git tools
Group:          Development/Tools/Version Control
Requires:       rsync, less, openssh
Requires:       perl-base

%description core
Git is a fast, scalable, distributed revision control system with an
unusually rich command set that provides both high-level operations and
full access to internals.

These are the core tools with minimal dependencies.



Authors:
--------
    Linus Torvalds <torvalds@osdl.org>
    Junio C Hamano <junkio@cox.net>

%package svn
License:        GPL v2 or later
Summary:        Git tools for importing Subversion repositories
Group:          Development/Tools/Version Control
Requires:       git-core = %{version}, subversion
Requires:       subversion-perl

%description svn
Tools for importing Subversion repositories to the Git version control
system.



Authors:
--------
    Linus Torvalds <torvalds@osdl.org>
    Junio C Hamano <junkio@cox.net>

%package cvs
License:        GPL v2 or later
Summary:        Git tools for importing CVS repositories
Group:          Development/Tools/Version Control
Requires:       git-core = %{version}, cvs, cvsps, perl-DBD-SQLite

%description cvs
Tools for importing CVS repositories to the Git version control system.



Authors:
--------
    Linus Torvalds <torvalds@osdl.org>
    Junio C Hamano <junkio@cox.net>

%package arch
License:        GPL v2 or later
Summary:        git-arch - Git tools for importing Arch repositories
Group:          Development/Tools/Version Control
Requires:       git-core = %{version}, tla

%description arch
Tools for importing GNU Arch repositories to the GIT version control
system.



Authors:
--------
    Linus Torvalds <torvalds@osdl.org>
    Junio C Hamano <junkio@cox.net>

%package email
License:        GPL v2 or later
Summary:        Git tools for sending email
Group:          Development/Tools/Version Control
Requires:       git-core = %{version}

%description email
Email interface for the GIT version control system.



Authors:
--------
    Linus Torvalds <torvalds@osdl.org>
    Junio C Hamano <junkio@cox.net>

%package daemon
License:        GPL v2 or later
Summary:        Simple Server for Git Repositories
Group:          Development/Tools/Version Control
Requires:       git-core = %{version}
PreReq:         /usr/sbin/useradd %fillup_prereq %insserv_prereq

%description daemon
A really simple TCP git daemon. In the default configuration it allows
read only access to repositories in /srv/git/ that contain the
'git-daemon-export-ok' file.



Authors:
--------
    Linus Torvalds <torvalds@osdl.org>

%package -n gitk
License:        GPL v2 or later
Summary:        Git revision tree visualiser
Group:          Development/Tools/Version Control
Requires:       git-core = %{version}, tk >= 8.4
Supplements:    packageand(git-core:tk)

%description -n gitk
Grapical tool for visualization of revision trees of projects
maintained in the Git version control system. It name gitk indicates
that it's written using the Tk Widget set.

A simple Tk based graphical interface for common Git operations is
found in the package git-gui.



Authors:
--------
    Linus Torvalds <torvalds@osdl.org>
    Junio C Hamano <junkio@cox.net>

%package gui
License:        GPL v2 or later
Summary:        Grapical tool for common git operations
Group:          Development/Tools/Version Control
Requires:       git-core = %{version}, tk >= 8.4
Supplements:    packageand(git-core:tk)

%description gui
A Tcl/Tk based graphical user interface to Git. git-gui focuses on
allowing users to make changes to their repository by making new
commits, amending existing ones, creating branches, performing local
merges, and fetching/pushing to remote repositories.

Unlike gitk, git-gui focuses on commit generation and single file
annotation, and does not show project history. It does however supply
menu actions to start a gitk session from within git-gui.



Authors:
--------
    Linus Torvalds <torvalds@osdl.org>

%package web
License:        GPL v2 or later
Summary:        Git Web Interface
Group:          Development/Tools/Version Control
Requires:       git-core = %{version}
Supplements:    packageand(git-core:apache2)

%description web
CGI script that allows browsing git repositories via web interface.

The apache2 configuration contained in this package installs a virtual
directory /git/ that calls the cgi script.



Authors:
--------
    Linus Torvalds <torvalds@osdl.org>

%prep
%setup -q
%patch -p1
%patch1

%build
make %{_smp_mflags} CFLAGS="$RPM_OPT_FLAGS" \
       GITWEB_CONFIG="/etc/gitweb.conf" \
       GITWEB_PROJECTROOT="/srv/git" \
       WITH_OWN_SUBPROCESS_PY=YesPlease NO_EXPAT=1 \
       V=1 \
       prefix=%{_prefix} mandir=%{_mandir} \
       gitexecdir=%{_libdir}/git \
       all %{!?_without_docs: doc} %{?jobs:-j %jobs}

%install
make %{_smp_mflags} CFLAGS="$RPM_OPT_FLAGS" DESTDIR=$RPM_BUILD_ROOT WITH_OWN_SUBPROCESS_PY=YesPlease NO_EXPAT=1 \
     prefix=%{_prefix} mandir=%{_mandir} \
     gitexecdir=%{_libdir}/git \
     install %{!?_without_docs: install-doc}
### git-web
cp gitweb/INSTALL INSTALL.gitweb
cp gitweb/README README.gitweb
install -d ${RPM_BUILD_ROOT}/usr/share/git-web
install -d ${RPM_BUILD_ROOT}/etc/apache2/conf.d
install -m 755 gitweb/gitweb.cgi $RPM_BUILD_ROOT/usr/share/git-web/gitweb.cgi
install -m 644 %{SOURCE1} $RPM_BUILD_ROOT/etc/apache2/conf.d/gitweb.conf
for i in git-favicon.png git-logo.png gitweb.css; do
  install -m 644 gitweb/$i $RPM_BUILD_ROOT/usr/share/git-web
done
### git-daemon
install -d -m 755 $RPM_BUILD_ROOT/etc/init.d
install -m 755 %{SOURCE3} $RPM_BUILD_ROOT/etc/init.d/git-daemon
install -d -m 755 $RPM_BUILD_ROOT%{_sbindir}
ln -s ../../etc/init.d/git-daemon $RPM_BUILD_ROOT%{_sbindir}/rcgit-daemon
install -d -m 755 $RPM_BUILD_ROOT/var/adm/fillup-templates
install -m 644 %{SOURCE2} $RPM_BUILD_ROOT/var/adm/fillup-templates/sysconfig.git-daemon
install -d -m 755 $RPM_BUILD_ROOT/srv/git
install -d -m 755 $RPM_BUILD_ROOT/etc/xinetd.d
install -m 644 %{S:4} $RPM_BUILD_ROOT/etc/xinetd.d/git
###
(find $RPM_BUILD_ROOT%{_bindir} -type f | grep -vE "archimport|svn|cvs|email|gitk|daemon|gui" | sed -e s@^$RPM_BUILD_ROOT@@)                   > bin-man-doc-files
(find $RPM_BUILD_ROOT%{_libdir}/git -type f | grep -vE "archimport|svn|cvs|email|gitk|daemon|gui" | sed -e s@^$RPM_BUILD_ROOT@@)               >> bin-man-doc-files
(find $RPM_BUILD_ROOT%{_mandir} $RPM_BUILD_ROOT/Documentation -type f | grep -vE "archimport|svn|git-cvs|email|gitk|daemon|gui" | sed -e s@^$RPM_BUILD_ROOT@@ -e 's/$/*/' ) >> bin-man-doc-files
( pushd perl
  perl Makefile.PL
  make -f perl.mak DESTDIR=${RPM_BUILD_ROOT}  install_vendor
)
rm -rf ${RPM_BUILD_ROOT}/usr/lib/perl5/site_perl
%perl_process_packlist
find $RPM_BUILD_ROOT/%_mandir -type f -print0 | xargs -0 chmod 644
install -m 644 -D contrib/completion/git-completion.bash $RPM_BUILD_ROOT/etc/bash_completion.d/git.sh
%if %{dist_has_fdupes}
# use symlinks instead of hardlinks in sub-commands
%fdupes -s $RPM_BUILD_ROOT
%endif

%clean
rm -rf $RPM_BUILD_ROOT

%pre daemon
if ! /usr/bin/getent passwd git-daemon >/dev/null; then
  /usr/sbin/useradd -r -d /var/lib/empty -s /bin/false -c "git daemon" -g nogroup git-daemon || :
fi

%post daemon
%{fillup_and_insserv -n git-daemon}

%postun daemon
%{insserv_cleanup}

%preun daemon
%stop_on_removal

%files
%defattr(-,root,root)
%doc README

%files svn
%defattr(-,root,root)
%{_libdir}/git/*svn*
%doc Documentation/*svn*.txt
%{!?_without_docs: %{_mandir}/man1/*svn*.1*}
%{!?_without_docs: %doc Documentation/*svn*.html }

%files cvs
%defattr(-,root,root)
%doc Documentation/*git-cvs*.txt
%{_bindir}/git-cvs*
%{_libdir}/git/*cvs*
%{!?_without_docs: %{_mandir}/man1/*cvs*.1*}
%{!?_without_docs: %doc Documentation/*git-cvs*.html }

%files arch
%defattr(-,root,root)
%doc Documentation/git-archimport.txt
%{_libdir}/git/git-archimport
%{!?_without_docs: %{_mandir}/man1/git-archimport.1*}
%{!?_without_docs: %doc Documentation/git-archimport.html }

%files email
%defattr(-,root,root)
%doc Documentation/*email*.txt
%{_libdir}/git/*email*
%{!?_without_docs: %{_mandir}/man1/*email*.1*}
%{!?_without_docs: %doc Documentation/*email*.html }

%files daemon
%defattr(-,root,root)
%doc Documentation/*daemon*.txt
%{_libdir}/git/*daemon*
/etc/init.d/git-daemon
%{_sbindir}/rcgit-daemon
%dir /srv/git
/var/adm/fillup-templates/sysconfig.git-daemon
%{!?_without_docs: %{_mandir}/man1/*daemon*.1*}
%{!?_without_docs: %doc Documentation/*daemon*.html }
%config(noreplace) /etc/xinetd.d/git

%files -n gitk
%defattr(-,root,root)
%doc Documentation/*gitk*.txt
%{_bindir}/gitk
/usr/share/gitk
%{!?_without_docs: %{_mandir}/man1/*gitk*.1*}
%{!?_without_docs: %doc Documentation/*gitk*.html }

%files gui
%defattr(-,root,root)
%doc Documentation/*gui*.txt
%{_libdir}/git/git-gui
/usr/share/git-gui
%{!?_without_docs: %{_mandir}/man1/*gui*.1*}
%{!?_without_docs: %doc Documentation/*gui*.html }

%files web
%defattr(-,root,root)
%doc README.gitweb INSTALL.gitweb
%dir /etc/apache2
%dir /etc/apache2/conf.d
%config(noreplace) /etc/apache2/conf.d/gitweb.conf
/usr/share/git-web

%files core -f bin-man-doc-files
%defattr(-,root,root)
%{_datadir}/git-core/
%dir %{_libdir}/git
%doc README COPYING Documentation/*.txt
%{!?_without_docs: %doc Documentation/*.html }
/var/adm/perl-modules/%{name}
%{perl_vendorlib}/Error.pm
%{perl_vendorlib}/Git.pm
%{perl_vendorarch}/auto/Git/
/etc/bash_completion.d/git.sh

%changelog
* Wed Nov 19 2008 tiwai@suse.de
- install git-shell and git-cvsserver as in the upstream
  (bnc#446049)
* Tue Nov 04 2008 olh@suse.de
- use fdupes only if the distribution provides it
- use libopenssl-devel only if the distribution provides it
* Fri Oct 24 2008 tiwai@suse.de
- fix git.xinetd not to run the old git-daemon (bnc#438715)
* Mon Oct 06 2008 tiwai@suse.de
- fix git-daemon init script to start (bnc#432610)
* Fri Sep 26 2008 schwab@suse.de
- Fix manual pages.
* Thu Sep 25 2008 tiwai@suse.de
- updated to 1.6.0.2:
  Mostly small bug fixes, see details in
  http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.6.0.2.txt
* Thu Sep 25 2008 tiwai@suse.de
- fix file selections of git-core package
- use symlinks for git sub-commands instead of hardlinks to make
  build system happy
* Tue Sep 09 2008 tiwai@suse.de
- updated to 1.6.0:
  * http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.6.0.txt
- updated to 1.6.0.1:
  * http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.6.0.1.txt
- install git subcommands now to libdir/git
  users have to set up properly if they want to keep the old style
  (refer git --execpath)
* Tue Sep 09 2008 lnussel@suse.de
- split off gui and web subpackages
* Mon Aug 18 2008 schwab@suse.de
- Fix name of completions file.
* Tue Aug 12 2008 tiwai@suse.de
- updated to 1.5.6.5:
  * http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.5.6.5.txt
  * http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.5.6.4.txt
  * http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.5.6.3.txt
  * http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.5.6.2.txt
  * http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.5.6.1.txt
* Wed Aug 06 2008 anosek@suse.cz
- fixed Add git xinetd.d file for ability to use yast2 (bnc#398361)
  - created file git.xinetd to run git under xinetd daemon
* Tue Jun 24 2008 dmueller@suse.de
- update to 1.5.6:
  * http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.5.6.txt
* Mon Jun 16 2008 lnussel@suse.de
- use separate package for git-daemon (bnc#382710)
- add user and install init script for git-daemon
* Tue May 20 2008 lnussel@suse.de
- install gitweb icons, style sheet and README (bnc#359882)
- build using V=1 so use of cflags can be verified by brp scripts
- fix build using --without docs
* Mon Apr 07 2008 dmueller@suse.de
- update to 1.5.4.5:
  * http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.5.4.5.txt
* Tue Mar 18 2008 dmueller@suse.de
- update to 1.5.4.4:
  * git svnimport was removed in favor of git svn
  * git runstatus has been removed
  * changes are available under
  http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.5.4.txt
  http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.5.4.1.txt
  http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.5.4.2.txt
  http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.5.4.3.txt
  http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.5.4.4.txt
* Mon Jan 28 2008 mmarek@suse.de
- added libopenssl-devel to BuildRequires to fix build
* Wed Jan 09 2008 schwab@suse.de
- Update to version 1.5.3.8.
  * Some documentation used "email.com" as an example domain.
  * git-svn fix to handle funky branch and project names going over
  http/https correctly.
  * git-svn fix to tone down a needlessly alarming warning message.
  * git-clone did not correctly report errors while fetching over http.
  * git-send-email added redundant Message-Id: header to the outgoing
  e-mail when the patch text already had one.
  * a read-beyond-end-of-buffer bug in configuration file updater was fixed.
  * git-grep used to show the same hit repeatedly for unmerged paths.
  * After amending the patch title in "git-am -i", the command did not
  report the patch it applied with the updated title.
* Tue Jan 08 2008 crrodriguez@suse.de
- git-cvsserver was unusable, it produced a perl failed-compilation error
  due to missing dependency on perl-DBD-Sqlite.
- update to version 1.5.3.7
  * git-send-email added 8-bit contents to the payload without
  marking it as 8-bit in a CTE header.
  * "git-bundle create a.bndl HEAD" dereferenced the symref and
  did not record the ref as 'HEAD'; this prevented a bundle
  from being used as a normal source of git-clone.
  * The code to reject nonsense command line of the form
  "git-commit -a paths..." and "git-commit --interactive
  paths..." were broken.
  * Adding a signature that is not ASCII-only to an original
  commit that is ASCII-only would make the result non-ASCII.
  "git-format-patch -s" did not mark such a message correctly
  with MIME encoding header.
  * git-add sometimes did not mark the resulting index entry
  stat-clean.  This affected only cases when adding the
  contents with the same length as the previously staged
  contents, and the previous staging made the index entry
  "racily clean".
  * git-commit did not honor GIT_INDEX_FILE the user had in the
  environment.
  * When checking out a revision, git-checkout did not report where the
  updated HEAD is if you happened to have a file called HEAD in the
  work tree.
  * "git-rev-list --objects" mishandled a tree that points at a
  submodule.
  * "git cvsimport" was not ready for packed refs that "git gc" can
  produce and gave incorrect results.
  * Many scripted Porcelains were confused when you happened to have a
  file called "HEAD" in your work tree.
* Wed Nov 28 2007 dmueller@suse.de
- update to 1.5.3.6:
  * various smaller bugfixes
- remove requires on release (#305826)
- install bash completion (#336848)
* Tue Oct 09 2007 dmueller@suse.de
- update to 1.5.3.4:
  * submodule support
  * many new features and bugfixes
* Mon Aug 06 2007 dmueller@suse.de
- update to 1.5.2.4:
  * "git checkout" failed to switch back and forth between
  branches, one of which has "frotz -> xyzzy" symlink and
  file "xyzzy/filfre", while the other one has a file
  "frotz/filfre".
  * "git prune" used to segfault upon seeing a commit that is
  referred to by a tree object (aka "subproject").
  * "git diff --name-status --no-index" mishandled an added file.
  * "git apply --reverse --whitespace=warn" still complained
  about whitespaces that a forward application would have
  introduced.
* Thu Jul 05 2007 dmueller@suse.de
- Update to 1.5.2.3:
  * fix many segfaults with the SVN gateway
  * various bugfixes
* Thu May 17 2007 dmueller@suse.de
- Update to 1.5.1.4:
  * GIT <-> SVN gateway
  * New porcelain, much improved index handling
  * git-config
  * Bare repositories refuse commands that need a working tree
  * packed ref support
  * 3-way merges can be done without rcs
  * python dependency dropped
* Sat Nov 18 2006 pbaudis@suse.cz
- Fix build failure from previous change (trivial omission)
* Fri Nov 17 2006 pbaudis@suse.cz
- Fix git-arch package containing git-archive and git-upload-archive
  [#222074]
* Fri Nov 17 2006 pbaudis@suse.cz
- Upgrade to git-1.4.3.4 - only few bugfixes, most importantly
  git-apply wouldn't apply creation/deletion patches
* Tue Nov 07 2006 ro@suse.de
- fix permissions for manpages
* Sat Oct 28 2006 meissner@suse.de
- use RPM_OPT_FLAGS also in %%install make
* Thu Oct 26 2006 pbaudis@suse.cz
- Upgrade to git-1.4.3.3 - bugfixes release
* Thu Oct 19 2006 pbaudis@suse.cz
- Update to git-1.4.3 - UI improvements, speedups, random new
  features (e.g. git-daemon name-based virtual hosting support),
  basic Git.pm
- Fixes build failures due to asciidoc incompatibilities
* Tue Jul 25 2006 pbaudis@suse.cz
- Update to git-1.4.1.1 - includes gitweb, many bugfixes, some
  commands are converted from shell to C, aliasing support,
  documentation improvements and so on.
- Junio's patch got applied upstream.
- Pre-create /srv/git for bare Git repositories hosting.
- Install gitweb to /srv/www/cgi-bin pre-configured to look
  for packages at /srv/git.
* Mon May 15 2006 pbaudis@suse.cz
- Update to git-core-1.3.1 - git-cvsserver pserver interface,
  .git/refs/remotes branches support, blame/annotate tools,
  builtin diff, faster and better rename detection and number
  of other stuff.
- Add Junio's patch for saner handling of symlink refs. This is
  an important bugfix since without this, it is impossible to
  bisect behind kernel linux-v2.6.15-g117a93d.
- Olaf Hering's cutnpaste patch got applied upstream.
* Mon Mar 13 2006 ro@suse.de
- change requires from "openssh-clients" to "openssh"
  (former does not exist)
* Fri Mar 10 2006 pbaudis@suse.cz
- Add Olaf Hering's patch for easier cut'n'pasting.
* Tue Mar 07 2006 pbaudis@suse.cz
- Update to git-core 1.2.4.
- This is a security fix: there was a buffer overflow when checking
  out a tree with an insanely long symlink. (No Bugzilla id.)
* Wed Jan 25 2006 mls@suse.de
- converted neededforbuild to BuildRequires
* Tue Jan 17 2006 pbaudis@suse.cz
- Fix the specfile build (no expat and asciidoc, xmlto problems)
* Mon Jan 16 2006 pbaudis@suse.cz
- Update to git-core 1.1.3.
- Modify the specfile so that it looks more like the stock one.
- Split bits to subpackages
* Sun Dec 04 2005 schwab@suse.de
- Fix embedded paths.
* Wed Oct 05 2005 schwab@suse.de
- Don't build documentation in parallel.
* Mon Sep 19 2005 schwab@suse.de
- Update to git-core 0.99.7.
- Install manpages.
* Fri Aug 05 2005 kasievers@suse.de
- New version 0.99.3git20050905
  rename git to git-core, to match the upstream package name
* Sun Jul 03 2005 kasievers@suse.de
- New version 0.7git20050703
* Thu Jun 30 2005 kasievers@suse.de
- New version 20050630
* Fri Jun 24 2005 kasievers@suse.de
- New version 20050624
* Sun Jun 12 2005 kay.sievers@suse.de
- New version 20050612
* Thu Jun 02 2005 kay.sievers@suse.de
- Split git/Cogito into separate packages
- Update git to version 20050602
* Fri May 20 2005 schwab@suse.de
- Use RPM_OPT_FLAGS.
- Specfile cleanup.
* Fri May 20 2005 mmj@suse.de
- %%_libdir -> FHS libexec
* Fri May 20 2005 skh@suse.de
- initial package

  
openSUSE Build Service is sponsored by