mirror of
https://abf.rosa.ru/djam/git.git
synced 2025-02-23 09:43:00 +00:00
376 lines
11 KiB
RPMSpec
376 lines
11 KiB
RPMSpec
%define devname %mklibname git -d
|
|
%define profile_branch 93git-branch.sh
|
|
%define profile_env 93git-env.sh
|
|
|
|
Summary: Global Information Tracker
|
|
Name: git
|
|
Version: 2.13.7
|
|
Release: 1
|
|
Epoch: 1
|
|
License: GPLv2+
|
|
Group: Development/Tools
|
|
Url: http://git-scm.com/
|
|
Source0: https://www.kernel.org/pub/software/scm/git/%{name}-%{version}.tar.xz
|
|
Source2: gitweb.conf
|
|
Source3: %{profile_branch}
|
|
# Do we really need it? It's not used anyway
|
|
Source4: %{profile_env}
|
|
BuildRequires: asciidoc
|
|
BuildRequires: docbook-dtd45-xml
|
|
BuildRequires: xmlto
|
|
BuildRequires: perl-CGI
|
|
BuildRequires: perl-devel
|
|
BuildRequires: pkgconfig(expat)
|
|
BuildRequires: pkgconfig(libcurl)
|
|
BuildRequires: pkgconfig(openssl)
|
|
BuildRequires: pkgconfig(zlib)
|
|
Requires: git-core = %{EVRD}
|
|
Requires: git-svn = %{EVRD}
|
|
Requires: git-email = %{EVRD}
|
|
Suggests: gitk = %{EVRD}
|
|
Suggests: git-arch = %{EVRD}
|
|
Suggests: git-core-oldies = %{EVRD}
|
|
Suggests: git-cvs = %{EVRD}
|
|
Obsoletes: python-git < 1:2.11
|
|
|
|
%description
|
|
This is a stupid (but extremely fast) directory content manager. It
|
|
doesn't do a whole lot, but what it _does_ do is track directory
|
|
contents efficiently. It is intended to be the base of an efficient,
|
|
distributed source code management system. This package includes
|
|
rudimentary tools that can be used as a SCM, but you should look
|
|
elsewhere for tools for ordinary humans layered on top of this.
|
|
|
|
This is a dummy package which brings in all subpackages.
|
|
|
|
%files
|
|
# no file in the main package
|
|
|
|
#----------------------------------------------------------------------------
|
|
|
|
%package -n git-core
|
|
Summary: Global Information Tracker
|
|
Group: Development/Other
|
|
Requires: diffutils
|
|
Suggests: git-prompt
|
|
Requires: less
|
|
Requires: openssh-clients
|
|
Requires: rsync
|
|
%rename gitcompletion
|
|
|
|
%description -n git-core
|
|
This is a stupid (but extremely fast) directory content manager. It
|
|
doesn't do a whole lot, but what it _does_ do is track directory
|
|
contents efficiently. It is intended to be the base of an efficient,
|
|
distributed source code management system. This package includes
|
|
rudimentary tools that can be used as a SCM, but you should look
|
|
elsewhere for tools for ordinary humans layered on top of this.
|
|
|
|
This are the core tools with minimal dependencies.
|
|
|
|
You may want to install subversion, cpsps and/or tla to import
|
|
repositories from other VCS.
|
|
|
|
%files -n git-core -f %{name}.lang
|
|
%doc Documentation/*.html Documentation/howto Documentation/technical Documentation/RelNotes.txt.gz
|
|
%{_sysconfdir}/emacs/site-start.d/*
|
|
%{_sysconfdir}/bash_completion.d/*
|
|
%{_datadir}/emacs/site-lisp/*
|
|
%{_bindir}/git
|
|
%{_bindir}/git-*
|
|
%{_libdir}/git-core
|
|
%exclude %{_libdir}/git-core/*svn*
|
|
%exclude %{_libdir}/git-core/*cvs*
|
|
%exclude %{_libdir}/git-core/git-archimport
|
|
%exclude %{_libdir}/git-core/*email*
|
|
%{_datadir}/git-core
|
|
%{_datadir}/git-gui
|
|
%{_mandir}/*/git-*
|
|
%{_mandir}/*/git.*
|
|
%{_mandir}/*/gitattributes*
|
|
%{_mandir}/*/gitignore*
|
|
%{_mandir}/*/gitmodules*
|
|
%{_mandir}/*/gitnamespaces*
|
|
%{_mandir}/*/gitcli*
|
|
%{_mandir}/*/githooks*
|
|
%{_mandir}/*/gitrepository*
|
|
%{_mandir}/*/gitremote-helpers*
|
|
%{_mandir}/*/*tutorial*
|
|
%{_mandir}/*/*glossary*
|
|
%{_mandir}/*/giteveryday*
|
|
%{_mandir}/*/gitdiffcore*
|
|
%{_mandir}/*/gitworkflows*
|
|
%{_mandir}/*/gitrevisions*
|
|
%{_mandir}/*/gitcredentials*
|
|
%exclude %{_mandir}/man1/*svn*.1*
|
|
%exclude %{_mandir}/man1/*cvs*.1*
|
|
%exclude %{_mandir}/man7/*cvs*.7*
|
|
%exclude %{_mandir}/man1/*email*.1*
|
|
%exclude %{_mandir}/man1/git-archimport.1*
|
|
|
|
#----------------------------------------------------------------------------
|
|
|
|
%package -n gitk
|
|
Summary: Git revision tree visualiser
|
|
Group: Development/Other
|
|
Requires: git-core = %{EVRD}
|
|
Requires: tcl >= 8.4
|
|
Requires: tk >= 8.4
|
|
|
|
%description -n gitk
|
|
Git revision tree visualiser.
|
|
|
|
%files -n gitk
|
|
%{_bindir}/gitk
|
|
%{_mandir}/*/gitk*
|
|
%{_datadir}/gitk
|
|
|
|
#----------------------------------------------------------------------------
|
|
|
|
# %package -n gitview
|
|
# Summary: Git graphical revision tree visualiser
|
|
# Group: Development/Other
|
|
# Requires: git-core = %{EVRD}
|
|
# Requires: python-cairo
|
|
# Requires: pygtk2.0
|
|
# Requires: python-gtksourceview
|
|
#
|
|
# %description -n gitview
|
|
# Git graphical revision tree visualiser.
|
|
#
|
|
# %files -n gitview
|
|
# %doc contrib/gitview/gitview.txt
|
|
# %{_bindir}/gitview
|
|
|
|
#----------------------------------------------------------------------------
|
|
|
|
%package -n %{devname}
|
|
Summary: Git development files
|
|
Group: Development/Other
|
|
Provides: git-devel = %{EVRD}
|
|
|
|
%description -n %{devname}
|
|
Development files for git.
|
|
|
|
%files -n %{devname}
|
|
%{_includedir}/git
|
|
%{_libdir}/libgit.a
|
|
|
|
#----------------------------------------------------------------------------
|
|
|
|
%package -n git-svn
|
|
Summary: Git tools for importing Subversion repositories
|
|
Group: Development/Other
|
|
Requires: git-core = %{EVRD}
|
|
Requires: perl-Git
|
|
Requires: perl-SVN
|
|
Requires: subversion
|
|
|
|
%description -n git-svn
|
|
Git tools for importing Subversion repositories.
|
|
|
|
%files -n git-svn
|
|
%{_libdir}/git-core/*svn*
|
|
%{_mandir}/man1/*svn*.1*
|
|
|
|
#----------------------------------------------------------------------------
|
|
|
|
%package -n git-cvs
|
|
Summary: Git tools for importing CVS repositories
|
|
Group: Development/Other
|
|
Requires: git-core = %{EVRD}
|
|
Suggests: cvs
|
|
Suggests: cvsps
|
|
|
|
%description -n git-cvs
|
|
Git tools for importing CVS repositories.
|
|
|
|
%files -n git-cvs
|
|
%{_libdir}/git-core/*cvs*
|
|
%{_mandir}/man1/*cvs*.1*
|
|
%{_mandir}/man7/*cvs*.7*
|
|
|
|
#----------------------------------------------------------------------------
|
|
|
|
%package -n git-arch
|
|
Summary: Git tools for importing Arch repositories
|
|
Group: Development/Other
|
|
Requires: git-core = %{EVRD}
|
|
Suggests: tla
|
|
|
|
%description -n git-arch
|
|
Git tools for importing Arch repositories.
|
|
|
|
%files -n git-arch
|
|
%{_libdir}/git-core/git-archimport
|
|
%{_mandir}/man1/git-archimport.1*
|
|
|
|
#----------------------------------------------------------------------------
|
|
|
|
%package -n git-email
|
|
Summary: Git tools for sending email
|
|
Group: Development/Other
|
|
Requires: git-core = %{EVRD}
|
|
Suggests: perl-Authen-SASL
|
|
Suggests: perl-MIME-Base64
|
|
|
|
%description -n git-email
|
|
Git tools for sending email.
|
|
|
|
%files -n git-email
|
|
%{_libdir}/git-core/*email*
|
|
%{_mandir}/man1/*email*.1*
|
|
|
|
#----------------------------------------------------------------------------
|
|
|
|
%package -n perl-Git
|
|
Summary: Perl interface to Git
|
|
Group: Development/Perl
|
|
Requires: git-core = %{EVRD}
|
|
|
|
%description -n perl-Git
|
|
Perl interface to Git
|
|
|
|
%files -n perl-Git
|
|
%{perl_vendorlib}/*
|
|
%{_mandir}/man3/*
|
|
|
|
#----------------------------------------------------------------------------
|
|
|
|
%package -n git-core-oldies
|
|
Summary: Git obsolete commands, bound to extinction
|
|
Group: Development/Other
|
|
Requires: git-core = %{EVRD}
|
|
|
|
%description -n git-core-oldies
|
|
Git obsolete commands, bound to extinction
|
|
|
|
%files -n git-core-oldies
|
|
|
|
#----------------------------------------------------------------------------
|
|
|
|
%package -n gitweb
|
|
Summary: cgi-bin script for browse a git repository with web browser
|
|
Group: System/Servers
|
|
Requires: git-core = %{EVRD}
|
|
Requires: apache-mod_perl
|
|
|
|
%description -n gitweb
|
|
cgi-bin script for browse a git repository with web browser.
|
|
|
|
%files -n gitweb
|
|
%doc gitweb/INSTALL gitweb/README
|
|
%config(noreplace) %{_sysconfdir}/gitweb.conf
|
|
%config(noreplace) %{_webappconfdir}/gitweb.conf
|
|
%{_datadir}/gitweb
|
|
%{_mandir}/man1/gitweb.1*
|
|
%{_mandir}/man5/gitweb.conf.5*
|
|
|
|
#----------------------------------------------------------------------------
|
|
|
|
%package -n git-prompt
|
|
Summary: Shows the current git branch in your bash prompt
|
|
Group: Shells
|
|
Requires: git-core = %{EVRD}
|
|
Requires: bash-completion
|
|
|
|
%description -n git-prompt
|
|
Shows the current git branch in your bash prompt.
|
|
|
|
%files -n git-prompt
|
|
%{_sysconfdir}/profile.d/%{profile_branch}
|
|
|
|
#----------------------------------------------------------------------------
|
|
|
|
%prep
|
|
%setup -q
|
|
# remove borring file
|
|
rm -f Documentation/.gitignore
|
|
# prefix gitweb css/png files with /gitweb
|
|
perl -pi -e 's!^(GITWEB_CSS|GITWEB_LOGO|GITWEB_FAVICON) = !$1 = /gitweb/!' Makefile
|
|
|
|
%build
|
|
# same flags and prefix must be passed for make test too
|
|
%define git_make_params prefix=%{_prefix} gitexecdir=%{_libdir}/git-core CFLAGS="%{optflags}" GITWEB_CONFIG=%{_sysconfdir}/gitweb.conf DOCBOOK_XSL_172=1
|
|
%make %{git_make_params} all doc gitweb
|
|
|
|
# Produce RelNotes.txt.gz
|
|
# sed trick changes "-x.y.z.txt" to "-x.y.z.0.txt" for ordering, then undoes it
|
|
# use awk to print a newline before each RelNotes header
|
|
cd Documentation/RelNotes \
|
|
&& relnotesls="`find . -name '*.txt' | sed 's/\([0-9]\.[0-9]\.[0-9]\)\.txt/\1.0.txt/' | sort -nr | sed 's/\([0-9]\.[0-9]\.[0-9]\)\.0\.txt/\1.txt/'`" \
|
|
&& awk 'FNR == 1 { print "" } { print }' $relnotesls | gzip -9c >../RelNotes.txt.gz
|
|
|
|
%install
|
|
mkdir -p %{buildroot}%{_bindir}
|
|
%makeinstall_std prefix=%{_prefix} gitexecdir=%{_libdir}/git-core CFLAGS="%{optflags}"
|
|
make install-doc prefix=%{_prefix} gitexecdir=%{_libdir}/git-core DESTDIR=%{buildroot}
|
|
|
|
# Avoid dependencies on obscure perl modules
|
|
chmod -x contrib/mw-to-git/git-remote-mediawiki.perl
|
|
|
|
# (cg) Copy the whole contrib dir as docs. It contains useful scripts.
|
|
mkdir -p %{buildroot}%{_datadir}/doc/git-core
|
|
cp -ar contrib %{buildroot}%{_datadir}/doc/git-core
|
|
# (cg) Even tho' we copy the whole contrib dir, copy this rather than symlink incase the user is excluding docs
|
|
# install -m 755 contrib/gitview/gitview %{buildroot}%{_bindir}
|
|
|
|
mkdir -p %{buildroot}%{_includedir}/git
|
|
cp *.h %{buildroot}%{_includedir}/git
|
|
|
|
mkdir -p %{buildroot}%{_libdir}
|
|
install -m 644 libgit.a %{buildroot}%{_libdir}/libgit.a
|
|
|
|
mv %{buildroot}/%{_prefix}/lib/perl5/site_perl %{buildroot}/%{_prefix}/lib/perl5/vendor_perl
|
|
rm -f %{buildroot}/%{perl_vendorlib}/Error.pm
|
|
|
|
mkdir -p %{buildroot}%{_datadir}/gitweb/static
|
|
install -m 755 gitweb/gitweb.cgi %{buildroot}%{_datadir}/gitweb
|
|
install -m 644 gitweb/static/*.css gitweb/static/*.png %{buildroot}%{_datadir}/gitweb/static/
|
|
|
|
mkdir -p %{buildroot}%{_sysconfdir}
|
|
install -m644 %{SOURCE2} %{buildroot}%{_sysconfdir}/gitweb.conf
|
|
# apache configuration
|
|
mkdir -p %{buildroot}%{_webappconfdir}
|
|
cat > %{buildroot}%{_webappconfdir}/gitweb.conf <<EOF
|
|
# gitweb configuration
|
|
Alias /gitweb %{_datadir}/gitweb
|
|
|
|
<Directory %{_datadir}/gitweb>
|
|
Require all granted
|
|
Options ExecCgi
|
|
DirectoryIndex gitweb.cgi
|
|
AddHandler cgi-script .cgi
|
|
</Directory>
|
|
EOF
|
|
|
|
# fix .sp in man files
|
|
find %{buildroot}/%{_mandir} -type f | xargs perl -e 's/\.sp$/\n\.sp/g' -pi
|
|
|
|
# emacs VC backend:
|
|
mkdir -p %{buildroot}{%{_datadir}/emacs/site-lisp,/etc/emacs/site-start.d}
|
|
install -m 644 contrib/emacs/*.el %{buildroot}%{_datadir}/emacs/site-lisp
|
|
cat >%{buildroot}/etc/emacs/site-start.d/vc_git.el <<EOF
|
|
(add-to-list 'vc-handled-backends 'GIT)
|
|
EOF
|
|
|
|
# install bash-completion file
|
|
mkdir -p %{buildroot}%{_sysconfdir}/bash_completion.d
|
|
install -m644 contrib/completion/git-completion.bash \
|
|
%{buildroot}%{_sysconfdir}/bash_completion.d/git
|
|
install -m644 contrib/completion/git-prompt.sh \
|
|
%{buildroot}%{_sysconfdir}/bash_completion.d/git-prompt
|
|
|
|
# And the prompt manipulation file
|
|
install -D -m 0644 %{SOURCE3} %{buildroot}%{_sysconfdir}/profile.d/%{profile_branch}
|
|
|
|
# exposes a bug in less, as reported by coling
|
|
#install -D -m 0644 %SOURCE4 %{buildroot}%{_sysconfdir}/profile.d/%{profile_env}
|
|
|
|
%find_lang %{name}
|
|
|
|
%check
|
|
# We do NO_SVN_TESTS because git's tests hardcode
|
|
# replies from svn versions older than the one
|
|
# we're shipping -- and they have changed since
|
|
LC_ALL=C %make %{git_make_params} test NO_SVN_TESTS=true
|