Blob Blame History Raw
%define compilers gcc g++ cc c++ gcc296 g++296 gcc32 c++32 g++32 gcc34 c++34 g++34 gcc44 g++44 g++-libstdc++-so_7 avr-gcc avr-c++ avr-g++ arm-gp2x-linux-gcc arm-gp2x-linux-c++ arm-gp2x-linux-g++ msp430-gcc
%define pkgs gcc, gcc-c++, compat-gcc, compat-gcc-c++, compat-gcc-32, compat-gcc-32-c++, gcc34, gcc34-c++, compat-gcc-34, compat-gcc-34-c++, gcc44, gcc44-c++, libstdc++so7-devel, avr-gcc, avr-gcc-c++, arm-gp2x-linux-gcc, arm-gp2x-linux-gcc-c++, msp430-gcc

%define abs2rel() perl -MFile::Spec -e 'print File::Spec->abs2rel(@ARGV)' %1 %2
%{expand: %%define relccache %(%abs2rel %{_bindir}/ccache %{_libdir}/ccache)}

Name:           ccache
Version:        3.1.2
Release:        1%{?dist}
Summary:        C/C++ compiler cache

Group:          Development/Tools
License:        GPLv3+
URL:            http://ccache.samba.org/
Source0:        http://samba.org/ftp/ccache/%{name}-%{version}.tar.xz
Source1:        %{name}.sh.in
Source2:        %{name}.csh.in
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

BuildRequires:  perl(File::Spec)
BuildRequires:  zlib-devel >= 1.2.3
Requires(triggerin): coreutils
Requires(triggerpostun): coreutils

%description
ccache is a compiler cache.  It speeds up recompilation of C/C++ code
by caching previous compiles and detecting when the same compile is
being done again.  The main focus is to handle the GNU C/C++ compiler
(GCC), but it may also work with compilers that mimic GCC good enough.


%prep
%setup -q
sed -e 's|@LIBDIR@|%{_libdir}|g' -e 's|@CACHEDIR@|%{_var}/cache/ccache|g' \
    %{SOURCE1} > %{name}.sh
sed -e 's|@LIBDIR@|%{_libdir}|g' -e 's|@CACHEDIR@|%{_var}/cache/ccache|g' \
    %{SOURCE2} > %{name}.csh
# Make sure system zlib is used
rm -r zlib


%build
%configure
make %{?_smp_mflags}


%install
rm -rf $RPM_BUILD_ROOT %{name}-%{version}.compilers
make install DESTDIR=$RPM_BUILD_ROOT
install -dm 755 $RPM_BUILD_ROOT%{_sysconfdir}/profile.d
install -pm 644 %{name}.sh %{name}.csh $RPM_BUILD_ROOT%{_sysconfdir}/profile.d
install -dm 755 $RPM_BUILD_ROOT%{_libdir}/ccache
for name in %{compilers} ; do
  for c in $name %{_target_cpu}-%{_vendor}-%{_target_os}-$name ; do
    ln -s %{relccache} $RPM_BUILD_ROOT%{_libdir}/ccache/$c
    echo "%ghost %{_libdir}/ccache/$c" >> %{name}-%{version}.compilers
  done
done
install -dm 770 $RPM_BUILD_ROOT%{_var}/cache/ccache


%check
make check


%clean
rm -fr $RPM_BUILD_ROOT


%pre
getent group ccache >/dev/null || groupadd -r ccache || :

%triggerin -- %{pkgs}
for name in %{compilers} ; do
  for c in $name %{_target_cpu}-%{_vendor}-%{_target_os}-$name ; do
    [ ! -x %{_bindir}/$c ] || ln -sf %{relccache} %{_libdir}/ccache/$c
  done
done
:

%triggerpostun -- %{pkgs}
for name in %{compilers} ; do
  for c in $name %{_target_cpu}-%{_vendor}-%{_target_os}-$name ; do
    [ -x %{_bindir}/$c ] || rm -f %{_libdir}/ccache/$c
  done
done
:


%files -f %{name}-%{version}.compilers
%defattr(-,root,root,-)
%doc AUTHORS.* GPL-3.0.txt LICENSE.* MANUAL.* NEWS.* README.*
%config(noreplace) %{_sysconfdir}/profile.d/%{name}.*sh
%{_bindir}/ccache
%dir %{_libdir}/ccache/
%attr(2770,root,ccache) %dir %{_var}/cache/ccache/
%{_mandir}/man1/ccache.1*


%changelog
* Tue Nov 23 2010 Ville Skyttä <ville.skytta@iki.fi> - 3.1.2-1
- Update to 3.1.2.

* Thu Nov 18 2010 Ville Skyttä <ville.skytta@iki.fi> - 3.1.1-1
- Update to 3.1.1.

* Sat Sep 18 2010 Ville Skyttä <ville.skytta@iki.fi> - 3.1-1
- Update to 3.1, fixes #610853.
- Make sh profile script "nounset" clean.

* Fri Jul 16 2010 Ville Skyttä <ville.skytta@iki.fi> - 3.0.1-1
- Update to 3.0.1.

* Sat Jul  3 2010 Ville Skyttä <ville.skytta@iki.fi> - 3.0-1
- Update to 3.0, no-strip patch no longer needed.

* Fri Jun  4 2010 Ville Skyttä <ville.skytta@iki.fi> - 3.0-0.2.pre1
- Reintroduce minor profile.d script performance improvements.

* Thu May 13 2010 Ville Skyttä <ville.skytta@iki.fi> - 3.0-0.1.pre1
- Update to 3.0pre1 (#591040), license changed to GPLv3+.

* Mon Mar  1 2010 Ville Skyttä <ville.skytta@iki.fi> - 3.0-0.1.pre0
- Update to 3.0pre0, all old patches applied/superseded upstream.
  Note: old caches will no longer be used, see NEWS for details.
- Don't use "pathmunge" in the profile.d sh script to work around #548960.
- Patch to avoid stripping the binary during build.
- Add auto-symlink support for gcc44(-c++) and msp430-gcc.
- Run test suite during build.
- Update description.

* Sat Dec 19 2009 Ville Skyttä <ville.skytta@iki.fi> - 2.4-17
- Minor profile.d script performance improvements.
- Fix hardcoded /var/cache/ccache in profile.d scripts.

* Mon Aug 10 2009 Ville Skyttä <ville.skytta@iki.fi> - 2.4-16
- Switch #438201 patch URL to Debian patch tracking (original is MIA).

* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.4-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild

* Mon Feb 23 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.4-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild

* Wed Mar 19 2008 Ville Skyttä <ville.skytta@iki.fi> - 2.4-13
- Apply patch to fix path to saved dependency files (#438201).

* Sat Feb  9 2008 Ville Skyttä <ville.skytta@iki.fi> - 2.4-12
- Rebuild.

* Tue Oct  2 2007 Ville Skyttä <ville.skytta@iki.fi> - 2.4-11
- Apply upstream fix for problems when $HOME is not set (#315441).

* Wed Aug 22 2007 Ville Skyttä <ville.skytta@iki.fi>
- Fix URL to upstream tarball.

* Sun Aug 19 2007 Ville Skyttä <ville.skytta@iki.fi> - 2.4-10
- License: GPLv2+
- Make compiler symlinks relative.
- Make profile.d scripts noreplace.

* Mon Jul 30 2007 Ville Skyttä <ville.skytta@iki.fi> - 2.4-9
- Use shared cache dir for users in the ccache group by default
  (#247760, based on Andy Shevchenko's work).
- Fix outdated hardlink info in cache sharing docs.
- Add auto-symlink support for avr-gcc(-c++) and arm-gp2x-linux-gcc(-c++).
- Make triggers always exit with a zero exit status.

* Thu Mar 15 2007 Ville Skyttä <ville.skytta@iki.fi> - 2.4-8
- Bypass cache with --coverage, -fprofile-arcs and -ftest-coverage
  (upstream CVS and Matt Fago, #231462).

* Fri Nov 10 2006 Ville Skyttä <ville.skytta@iki.fi> - 2.4-7
- Require coreutils for triggers (#215030).

* Wed Aug  9 2006 Ville Skyttä <ville.skytta@iki.fi> - 2.4-6
- Add auto-symlink support for compat-gcc-34(-c++).
- Untabify, escape macros in changelog.

* Tue May 16 2006 Ville Skyttä <ville.skytta@iki.fi> - 2.4-5
- Add auto-symlink support for g++-libstdc++-so_7.

* Sat Nov 26 2005 Ville Skyttä <ville.skytta@iki.fi> - 2.4-4
- Drop "bin" from compiler symlink path.
- Make profile.d snippets non-executable (#35714).

* Sun May  1 2005 Ville Skyttä <ville.skytta@iki.fi> - 2.4-3
- Auto-symlink update: add compat-gcc-32 and compat-gcc-32-c++, drop
  bunch of no longer relevant compilers.

* Fri Apr  7 2005 Michael Schwendt <mschwendt[AT]users.sf.net> - 2.4-2
- rebuilt

* Sun Sep 26 2004 Ville Skyttä <ville.skytta@iki.fi> - 0:2.4-0.fdr.1
- Update to 2.4.
- Add symlinking support for gcc4 and gcc4-c++.
- Move the ccache executable to %%{_bindir}.
- Include more docs.

* Fri Jun 25 2004 Ville Skyttä <ville.skytta@iki.fi> - 0:2.3-0.fdr.5
- Add support for gcc33 and g++33.

* Thu Jun 10 2004 Ville Skyttä <ville.skytta@iki.fi> - 0:2.3-0.fdr.4
- Fix hardcoded lib path in profile.d scriptlets (bug 1558).

* Mon May  3 2004 Ville Skyttä <ville.skytta@iki.fi> - 0:2.3-0.fdr.3
- Add support for gcc34 and g++34, and
  %%{_target_cpu}-%%{_vendor}-%%{_target_os}-* variants.

* Thu Nov 13 2003 Ville Skyttä <ville.skytta@iki.fi> - 0:2.3-0.fdr.2
- Add overriding symlinks for gcc-ssa and g++-ssa (bug 963).

* Tue Nov 11 2003 Ville Skyttä <ville.skytta@iki.fi> - 0:2.3-0.fdr.1
- Update to 2.3.
- Implement triggers to keep list of "aliased" compilers up to date on the fly.
- Add gcc32 and a bunch of legacy packages to the list of overridden compilers.

* Sat Aug  2 2003 Ville Skyttä <ville.skytta@iki.fi> - 0:2.2-0.fdr.6
- Add c++ to the list of overridden compilers (bug 548).
- Own everything including dirs under %%{_libdir}/ccache (bug 529).
- %%{buildroot} -> $RPM_BUILD_ROOT.
- Fix man page permissions.
- Use %%{?_smp_mflags}.
- Other cosmetic specfile tweaks.

* Fri Mar 29 2003 Warren Togami <warren@togami.com> 2.2-0.fdr.5
- Epoch: 0
- Remove /usr/lib/ccache/sbin from PATH

* Fri Mar 28 2003 Warren Togami <warren@togami.com> 2.2-0.fdr.4
- Add BuildRequires: autoconf >= 0:2.52
- Add Requires: gcc, gcc-c++ (minimal expectation of compilers)

* Fri Mar 28 2003 Warren Togami <warren@togami.com> 2.2-0.fdr.3
- No longer use %%ghost, symlinks always exist

* Thu Mar 27 2003 Warren Togami <warren@togami.com> 2.2-0.fdr.2
- Move symlinks to /usr/lib/ccache/bin
- Use /etc/profile.d/ccache.* scripts to add it to PATH
  As long as it is before /usr/bin it is good.

* Thu Mar 27 2003 Warren Togami <warren@togami.com> 2.2-0.fdr.1
- Move symlinks to /bin since it seems to be at the beginning of PATH of all users
    before /usr/bin, the location of the real compiler.
- Package symlinks rather than create and remove during %%post and %%postun

* Thu Feb 20 2003 Warren Togami <warren@togami.com> 2.2-4.fedora.1
- Fedora

* Thu Feb 20 2003 Samir M. Nassar <rpm@redconcepts.net> 2.2-3.redconcepts
- Added symlinks to g++
- Removed symlink removal in post

* Thu Feb 20 2003 Samir M. Nassar <rpm@redconcepts.net> 2.2-2.redconcepts
- Cleans symlinks if present to make upgrades easier

* Thu Feb 20 2003 Samir M. Nassar <rpm@redconcepts.net> 2.2-1.redconcepts
- Upgraded to ccache 2.2

* Tue Feb 04 2003 Samir M. Nassar <rpm@redconcepts.net> 2.1.1-4.redconcepts
- Using %%post to create the soft symlinks
- Using %%postun to remove the soft symlinks
- Thanks to Che <che666@uni.de> for the help
- Packaged as user

* Sun Jan 19 2003 Samir M. Nassar <rpm@redconcepts.net> 2.1.1-3.redconcepts
- make a soft symlink between ccache and gcc
- make a soft symlink between ccache and cc

* Thu Jan 16 2003 Samir M. Nassar <rpm@redconcepts.net> 2.1.1-2.redconcepts
- Normalized spec file.

* Wed Jan 15 2003 Samir M, Nassar <rpm@redconcepts.net> 2.1.1-1.redconcepts
- Using ccache 2.2.1 sources
- Changed release to redconcepts for consistency

* Wed Oct 22 2002 Samir M. Nassar <rpm.redconcepts.net> 1.9-1.rcn
- Initial RedConcepts.NET (rcn) build for Red Hat Linux 8.0