diff --git a/06_md.diff b/06_md.diff new file mode 100644 index 0000000..75d82a2 --- /dev/null +++ b/06_md.diff @@ -0,0 +1,81 @@ + +diff --git a/ccache.c b/ccache.c +index 64c979b..843929f 100644 +--- a/ccache.c ++++ b/ccache.c +@@ -647,6 +647,13 @@ static void process_args(int argc, char **argv) + int found_S_opt = 0; + struct stat st; + char *e; ++ /* is gcc being asked to output dependencies? */ ++ int generating_dependencies = 0; ++ /* is the dependency makefile name overridden with -MF? */ ++ int dependency_filename_specified = 0; ++ /* is the dependency makefile target name specified with -MQ or -MF? */ ++ int dependency_target_specified = 0; ++ + + stripped_args = args_init(0, NULL); + +@@ -725,6 +732,18 @@ static void process_args(int argc, char **argv) + continue; + } + ++ /* These options require special handling, because they ++ behave differently with gcc -E, when the output ++ file is not specified. */ ++ ++ if (strcmp(argv[i], "-MD") == 0 || strcmp(argv[i], "-MMD") == 0) { ++ generating_dependencies = 1; ++ } else if (strcmp(argv[i], "-MF") == 0) { ++ dependency_filename_specified = 1; ++ } else if (strcmp(argv[i], "-MQ") == 0 || strcmp(argv[i], "-MT") == 0) { ++ dependency_target_specified = 1; ++ } ++ + /* options that take an argument */ + { + const char *opts[] = {"-I", "-include", "-imacros", "-iprefix", +@@ -837,6 +856,41 @@ static void process_args(int argc, char **argv) + p[2] = 0; + } + ++ /* If dependencies are generated, configure the preprocessor */ ++ ++ if (generating_dependencies && output_file) { ++ if (!dependency_filename_specified) { ++ char *default_depfile_name = x_strdup(output_file); ++ char *p = strrchr(default_depfile_name, '.'); ++ ++ if (p) { ++ if (strlen(p) < 2) { ++ stats_update(STATS_ARGS); ++ failed(); ++ return; ++ } ++ *p = 0; ++ } ++ else { ++ int len = p - default_depfile_name; ++ ++ p = x_malloc(len + 3); ++ strncpy(default_depfile_name, p, len - 1); ++ free(default_depfile_name); ++ default_depfile_name = p; ++ } ++ ++ strcat(default_depfile_name, ".d"); ++ args_add(stripped_args, "-MF"); ++ args_add(stripped_args, default_depfile_name); ++ } ++ ++ if (!dependency_target_specified) { ++ args_add(stripped_args, "-MT"); ++ args_add(stripped_args, output_file); ++ } ++ } ++ + /* cope with -o /dev/null */ + if (strcmp(output_file,"/dev/null") != 0 && stat(output_file, &st) == 0 && !S_ISREG(st.st_mode)) { + cc_log("Not a regular file %s\n", output_file); + diff --git a/ccache-2.4-noHOME-315441.patch b/ccache-2.4-noHOME-315441.patch new file mode 100644 index 0000000..03b04f2 --- /dev/null +++ b/ccache-2.4-noHOME-315441.patch @@ -0,0 +1,45 @@ +Index: config.h.in +=================================================================== +RCS file: /cvsroot/ccache/config.h.in,v +retrieving revision 1.5 +retrieving revision 1.7 +diff -u -r1.5 -r1.7 +--- config.h.in 7 Mar 2003 12:09:19 -0000 1.5 ++++ config.h.in 25 Jul 2005 07:05:46 -0000 1.7 +@@ -19,6 +19,9 @@ + /* Define to 1 if you have the `gethostname' function. */ + #undef HAVE_GETHOSTNAME + ++/* Define to 1 if you have the `getpwuid' function. */ ++#undef HAVE_GETPWUID ++ + /* Define to 1 if you have the header file. */ + #undef HAVE_INTTYPES_H + +@@ -31,6 +34,9 @@ + /* Define to 1 if you have the header file, and it defines `DIR'. */ + #undef HAVE_NDIR_H + ++/* Define to 1 if you have the header file. */ ++#undef HAVE_PWD_H ++ + /* Define to 1 if you have the `realpath' function. */ + #undef HAVE_REALPATH + +Index: util.c +=================================================================== +RCS file: /cvsroot/ccache/util.c,v +retrieving revision 1.34 +retrieving revision 1.37 +diff -u -r1.34 -r1.37 +--- util.c 6 Sep 2004 12:59:12 -0000 1.34 ++++ util.c 17 Jul 2006 03:41:12 -0000 1.37 +@@ -448,7 +444,7 @@ + } + } + #endif +- fatal("Unable to determine home directory"); ++ fprintf(stderr, "ccache: Unable to determine home directory"); + return NULL; + } + diff --git a/ccache.csh.in b/ccache.csh.in index af6fa9e..846fead 100644 --- a/ccache.csh.in +++ b/ccache.csh.in @@ -9,8 +9,8 @@ endif # want that even if they have that write permission can set the CCACHE_DIR # and unset the CCACHE_UMASK environment variables in their personal profile. -if ( ! $?CCACHE_DIR && -d @CACHEDIR@ && -w @CACHEDIR@ ) then - setenv CCACHE_DIR /var/cache/ccache +if ( ! $?CCACHE_DIR && -w @CACHEDIR@ && -d @CACHEDIR@ ) then + setenv CCACHE_DIR @CACHEDIR@ setenv CCACHE_UMASK 002 unsetenv CCACHE_HARDLINK endif diff --git a/ccache.sh.in b/ccache.sh.in index d5cd116..c751a60 100644 --- a/ccache.sh.in +++ b/ccache.sh.in @@ -1,16 +1,17 @@ # Use ccache by default. Users who don't want that can set the CCACHE_DISABLE # environment variable in their personal profile. -if ! echo "$PATH" | grep -qw @LIBDIR@/ccache ; then - PATH="@LIBDIR@/ccache:$PATH" -fi +case ":$PATH:" in + *:@LIBDIR@/ccache:*) ;; + *) PATH="@LIBDIR@/ccache:$PATH" ;; +esac # If @CACHEDIR@ is writable, use a shared cache there. Users who don't # want that even if they have that write permission can set the CCACHE_DIR # and unset the CCACHE_UMASK environment variables in their personal profile. -if [ -z "$CCACHE_DIR" -a -d @CACHEDIR@ -a -w @CACHEDIR@ ] ; then - export CCACHE_DIR=/var/cache/ccache +if [ -z "$CCACHE_DIR" ] && [ -w @CACHEDIR@ ] && [ -d @CACHEDIR@ ] ; then + export CCACHE_DIR=@CACHEDIR@ export CCACHE_UMASK=002 unset CCACHE_HARDLINK fi diff --git a/ccache.spec b/ccache.spec index f0fbf97..39131b9 100644 --- a/ccache.spec +++ b/ccache.spec @@ -6,18 +6,20 @@ Name: ccache Version: 2.4 -Release: 10%{?dist} +Release: 18%{?dist} Summary: C/C++ compiler cache Group: Development/Tools License: GPLv2+ URL: http://ccache.samba.org/ -Source0: http://ccache.samba.org/ftp/ccache/%{name}-%{version}.tar.gz +Source0: http://samba.org/ftp/ccache/%{name}-%{version}.tar.gz Source1: %{name}.sh.in Source2: %{name}.csh.in Patch0: %{name}-html-links.patch Patch1: %{name}-2.4-coverage-231462.patch Patch2: %{name}-2.4-hardlink-doc.patch +Patch3: %{name}-2.4-noHOME-315441.patch +Patch4: http://patch-tracking.debian.net/patch/series/dl/ccache/2.4-17/06_md.diff BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: perl(File::Spec) @@ -36,6 +38,8 @@ a 5 to 10 times speedup in common compilations. %patch0 -p0 %patch1 -p0 %patch2 -p0 +%patch3 -p0 +%patch4 -p1 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' \ @@ -98,68 +102,96 @@ done %changelog -* Sun Aug 19 2007 Ville Skyttä - 2.4-10 +* Fri Jun 4 2010 Ville Skyttä - 2.4-18 +- Don't use "pathmunge" in the profile.d sh script to work around #548960. + +* Sat Dec 19 2009 Ville Skyttä - 2.4-17 +- Minor profile.d script performance improvements. +- Fix hardcoded /var/cache/ccache in profile.d scripts. + +* Mon Aug 10 2009 Ville Skyttä - 2.4-16 +- Switch #438201 patch URL to Debian patch tracking (original is MIA). + +* Fri Jul 24 2009 Fedora Release Engineering - 2.4-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Mon Feb 23 2009 Fedora Release Engineering - 2.4-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Wed Mar 19 2008 Ville Skyttä - 2.4-13 +- Apply patch to fix path to saved dependency files (#438201). + +* Sat Feb 9 2008 Ville Skyttä - 2.4-12 +- Rebuild. + +* Tue Oct 2 2007 Ville Skyttä - 2.4-11 +- Apply upstream fix for problems when $HOME is not set (#315441). + +* Wed Aug 22 2007 Ville Skyttä +- Fix URL to upstream tarball. + +* Sun Aug 19 2007 Ville Skyttä - 2.4-10 - License: GPLv2+ - Make compiler symlinks relative. - Make profile.d scripts noreplace. -* Mon Jul 30 2007 Ville Skyttä - 2.4-9 +* Mon Jul 30 2007 Ville Skyttä - 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ä - 2.4-8 +* Thu Mar 15 2007 Ville Skyttä - 2.4-8 - Bypass cache with --coverage, -fprofile-arcs and -ftest-coverage (upstream CVS and Matt Fago, #231462). -* Fri Nov 10 2006 Ville Skyttä - 2.4-7 +* Fri Nov 10 2006 Ville Skyttä - 2.4-7 - Require coreutils for triggers (#215030). -* Wed Aug 9 2006 Ville Skyttä - 2.4-6 +* Wed Aug 9 2006 Ville Skyttä - 2.4-6 - Add auto-symlink support for compat-gcc-34(-c++). - Untabify, escape macros in changelog. -* Tue May 16 2006 Ville Skyttä - 2.4-5 +* Tue May 16 2006 Ville Skyttä - 2.4-5 - Add auto-symlink support for g++-libstdc++-so_7. -* Sat Nov 26 2005 Ville Skyttä - 2.4-4 +* Sat Nov 26 2005 Ville Skyttä - 2.4-4 - Drop "bin" from compiler symlink path. - Make profile.d snippets non-executable (#35714). -* Sun May 1 2005 Ville Skyttä - 2.4-3 +* Sun May 1 2005 Ville Skyttä - 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 - 2.4-2 - rebuilt -* Sun Sep 26 2004 Ville Skyttä - 0:2.4-0.fdr.1 +* Sun Sep 26 2004 Ville Skyttä - 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ä - 0:2.3-0.fdr.5 +* Fri Jun 25 2004 Ville Skyttä - 0:2.3-0.fdr.5 - Add support for gcc33 and g++33. -* Thu Jun 10 2004 Ville Skyttä - 0:2.3-0.fdr.4 +* Thu Jun 10 2004 Ville Skyttä - 0:2.3-0.fdr.4 - Fix hardcoded lib path in profile.d scriptlets (bug 1558). -* Mon May 3 2004 Ville Skyttä - 0:2.3-0.fdr.3 +* Mon May 3 2004 Ville Skyttä - 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ä - 0:2.3-0.fdr.2 +* Thu Nov 13 2003 Ville Skyttä - 0:2.3-0.fdr.2 - Add overriding symlinks for gcc-ssa and g++-ssa (bug 963). -* Tue Nov 11 2003 Ville Skyttä - 0:2.3-0.fdr.1 +* Tue Nov 11 2003 Ville Skyttä - 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ä - 0:2.2-0.fdr.6 +* Sat Aug 2 2003 Ville Skyttä - 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.