Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 529998 - dev-util/ccache-3.2 /var/tmp/ccache/ccache.conf wrong permissions, ccache: error: /var/tmp/ccache//ccache.conf: Permission denied
Summary: dev-util/ccache-3.2 /var/tmp/ccache/ccache.conf wrong permissions, ccache: er...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal major
Assignee: Gentoo Toolchain Maintainers
URL:
Whiteboard:
Keywords:
: 530644 (view as bug list)
Depends on:
Blocks:
 
Reported: 2014-11-20 21:12 UTC by jospezial
Modified: 2014-12-12 07:36 UTC (History)
21 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description jospezial 2014-11-20 21:12:55 UTC
with dev-util/ccache-3.2 installed I get:

ccache: error: /var/tmp/ccache//ccache.conf: Permission denied

-rw------- 1 root portage 14 20. Nov 21:53 /var/tmp/ccache/ccache.conf

chmod -v g+rw /var/tmp/ccache/ccache.conf does not help. Something does set the wrong permissions back.
Comment 1 jospezial 2014-11-20 21:14:54 UTC
Portage 2.2.14 (python 3.3.5-final-0, default/linux/amd64/13.0, gcc-4.9.2, glibc-2.20, 3.18.0-rc5 x86_64)
=================================================================
                         System Settings
=================================================================
System uname: Linux-3.18.0-rc5-x86_64-AMD_Athlon-tm-_II_X2_240_Processor-with-gentoo-2.2
KiB Mem:     4047472 total,    601960 free
KiB Swap:    7103480 total,   7103480 free
Timestamp of tree: Thu, 20 Nov 2014 18:45:01 +0000
ld GNU ld (Gentoo 2.24 p1.4) 2.24
ccache version 3.2 [enabled]
app-shells/bash:          4.3_p30-r1
dev-java/java-config:     2.2.0
dev-lang/perl:            5.20.1-r2
dev-lang/python:          2.7.8, 3.3.5-r1, 3.4.2
dev-util/ccache:          3.2
dev-util/cmake:           3.0.2
dev-util/pkgconfig:       0.28-r2
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.13.4
sys-apps/sandbox:         2.6-r1
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.10.3-r1, 1.11.6-r1, 1.12.6, 1.14.1
sys-devel/binutils:       2.24-r3
sys-devel/gcc:            4.9.2
sys-devel/gcc-config:     1.8
sys-devel/libtool:        2.4.3-r2
sys-devel/make:           4.1-r1
sys-kernel/linux-headers: 3.17-r1 (virtual/os-headers)
sys-libs/glibc:           2.20
Repositories: gentoo overlay_jl
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-march=native -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--autounmask-write=y --keep-going --quiet-build=y"
FCFLAGS="-march=native -O2 -pipe"
FEATURES="assume-digests binpkg-logs ccache config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-march=native -O2 -pipe"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="de_DE.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.de.gentoo.org/gentoo-portage"
USE="3dnow 3dnowext 64bit X Xaw3d a52 aac aacplus aacs aalib ace acl acpi activefilter aften alsa amd64 ap apm apng archive async audacious audiofile automount bazaar berkdb binary-drivers binfilter blender-game bluetooth bluray boost bzip2 bzr cairo canusb ccache cdda cddb cdio cdparanoia cdr cdrdao cdrom cgi charconv chm chroot city cjk clang cleartype cli colordiff colors compress consolekit corefonts cpio cracklib crypt css cue cups curl curlwrappers cvs cxx daemon dbus declarative device-mapper dga dhcp doom doomsday dos download-subs dri dri3 dts dump dv dvb dvd dvdnav eap eap-sim eap-tls ebook egl emerald emoticon enca encode enscript equalizer exif extensions extras faac faad fam fat fax fbcon ffmpeg fftw firefox flac fluidsynth fontconfig foomaticdb fortran ftp fts3 fuse g3dvl gallium gbm gd gdbm gdu geoip gif gimp git glamor glut gme gnutls gphoto2 gpm graphite gsm gstreamer gtk gtk3 gudev gui gzip hddtemp hdf hdf5 highlight hpcups hpijs http hwdb iconv icq icu id3 id3tag idn imagemagick introspection ios ipc ipod ipv6 jack java javascript jit jpeg jpeg2k kate kde keymap ladspa lame laptop lcms lensfun lha libass libcaca libcanberra libkms libnl libnotify libsamplerate libssh2 libtiger libv4l libv4l2 libwww llvm-shared-libs lm_sensors logrotate lua lxde lzma lzo mad madwifi magic man matroska md5sum metalink midi mikmod mime minizip mixer mjpeg mmap mms mmx mmxext mng mobi mod modplug modules mono mouse mozilla mp3 mp4 mpeg mpeg2 mplayer mtp multilib multislot musepack musicbrainz nano-syntax ncat ncurses ndiff network nfs nfsidmap nfsv3 nfsv4 nfsv41 nls nmap nmap-update nokia normalize nowlistening nping nptl nsplugin ntfs ntfsprogs ntp nvidia nvram obex ocr ogg ogm openal opencl opengl openmax openmp openssl openvg optimized-qmake oscar osdmenu otr p2p pam pango panorama parport parse-clocks pcap pci pcre pdf pdfimport phonon pipes plasma plugins pm-utils pmu png policykit postscript ppds privacy projectm projectx pulseaudio pvr python python3 qalculate qt3support qt4 quicktime r600-llvm-compiler radio rar raw rdesktop readline recording redeyes reiser4 reiserfs remote-access remoteosd replaygain rpm rtc rtmp rtsp rubberband samba sbsms scanner schroedinger sdl secure-delete semantic-desktop sensord session sftp sha512 shorten shout skins slang smbclient smi sndfile sockets sound soundtouch sox speex spell sql sqlite sqlite3 sse sse2 sse3 sse4 sse4_2 ssh ssl startup-notification statistics stk stream subtitles subversion svg swat symlink syslog szip taglib tcpd texteffect tftp theora threads thumbnail tiff translator truetype twolame udev udisks unicode upcall upower urlpicpreview usb v4l vaapi vamp vcd vcdx vdpau video videos vim-syntax virtualbox vlm vnc vorbis vpx vroot vst wad wav wavpack webgl webkit webm webpresence wifi winbind winpopup wireshark wmf wps wxwidgets x264 x265 xa xattr xcb xcomposite xfs xine xinerama xinetd xml xmp xorg xosd xpm xrandr xscreensaver xv xvid xvmc zenmap zip zlib zvbi" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="de" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python3_3" PYTHON_TARGETS="python2_7 python3_3 python3_4" RUBY_TARGETS="ruby19 ruby20 ruby21" USERLAND="GNU" VIDEO_CARDS="fbdev vesa svga vga radeon v4l modesetting r100 r200 r300 r600 nouveau" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON

=================================================================
                        Package Settings
=================================================================

sys-apps/portage-2.2.14 was built with the following:
USE="(ipc) xattr -build -doc -epydoc (-selinux)" ABI_X86="64" LINGUAS="-ru" PYTHON_TARGETS="python2_7 python3_3 python3_4 (-pypy) -python3_2"


dev-util/ccache-3.2 was built with the following:
USE="" ABI_X86="64"


sys-devel/gcc-4.9.2 was built with the following:
USE="cxx fortran graphite (multilib) nls nptl openmp sanitize (-altivec) -awt -doc (-fixed-point) -gcj -go (-hardened) (-libssp) (-multislot) -nopie -nossp -objc -objc++ -objc-gc -regression-test -vanilla" ABI_X86="64"
Comment 2 Conrad Kostecki gentoo-dev 2014-11-21 00:01:23 UTC
I can confirm the same problem.

Portage 2.2.14 (python 3.4.2-final-0, default/linux/amd64/13.0, gcc-4.9.2, glibc-2.20, 3.17.3-gentoo x86_64)
=================================================================
System uname: Linux-3.17.3-gentoo-x86_64-Intel-R-_Atom-TM-_CPU_E680_@_1.60GHz-with-gentoo-2.2
KiB Mem:     2052140 total,    334704 free
KiB Swap:    2621436 total,   2621436 free
Timestamp of tree: Thu, 20 Nov 2014 23:15:01 +0000
ld GNU ld (Gentoo 2.24 p1.4) 2.24
ccache version 3.2 [disabled]
app-shells/bash:          4.3_p30-r1
dev-lang/perl:            5.20.1-r2
dev-lang/python:          2.7.8, 3.4.2
dev-util/ccache:          3.2
dev-util/cmake:           3.0.2
dev-util/pkgconfig:       0.28-r2
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.13.4
sys-apps/sandbox:         2.6-r1
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.9.6-r4, 1.14.1
sys-devel/binutils:       2.24-r3
sys-devel/gcc:            4.9.2
sys-devel/gcc-config:     1.8
sys-devel/libtool:        2.4.3-r2
sys-devel/make:           4.1-r1
sys-kernel/linux-headers: 3.17-r1 (virtual/os-headers)
sys-libs/glibc:           2.20
Repositories: gentoo galactica
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=atom -O3 -mmmx -msse -msse2 -msse3 -mssse3 -mcx16 -mmovbe -msahf -pipe -fomit-frame-pointer -mfpmath=sse"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.6/ext-active/ /etc/php/cgi-php5.6/ext-active/ /etc/php/cli-php5.6/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-march=atom -O3 -mmmx -msse -msse2 -msse3 -mssse3 -mcx16 -mmovbe -msahf -pipe -fomit-frame-pointer -mfpmath=sse -fvisibility-inlines-hidden"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--autounmask=n --quiet-build=n --with-bdeps=y"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
INSTALL_MASK="/etc/systemd/network/* /etc/systemd/system/* /etc/xinetd.d/* /usr/lib64/systemd/system/* /usr/lib64/systemd/system-shutdown/*"
LANG="de_DE.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--sort-common -Wl,-z,now"
MAKEOPTS="-j3 -l2"
PKGDIR="/usr/portage/packages"
PORTAGE_BUNZIP2_COMMAND="pbunzip2"
PORTAGE_BZIP2_COMMAND="pbzip2"
PORTAGE_COMPRESS="xz"
PORTAGE_COMPRESS_FLAGS="-9e"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_EXTRA_OPTS="--delete-before --delete-excluded --exclude-from=/etc/portage/rsync_excludes --stats"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.de.gentoo.org/gentoo-portage"
USE="amd64 bash-completion berkdb bzip2 cairo caps cgi cracklib crypt ctype curl cvs cxx exif fontconfig ftp gd gif git gmp gnutls graphviz hddtemp iconv icu idn ipv6 javascript jit jpeg jpeg2k lcms ldap lm_sensors lzma lzo mime mmxext mysql mysqli ncurses nls nntp nptl offensive openmp pam pcre perl pie png python readline samba session simplexml slang sockets spell sqlite sse2 ssl ssse3 subversion suid svg symlink tcpd threads tiff truetype udev unicode usb vhosts vim-syntax xml zlib" ABI_X86="64" COLLECTD_PLUGINS="apcups cgroups conntrack contextswitch cpu df disk dns entropy ethstat exec filecount hddtemp interface iptables irq load logfile md memory mysql netlink nfs nginx ntpd openvpn ping processes rrdcached sensors serial swap table tcpconns unixsock uptime users wireless" CURL_SSL="openssl" ELIBC="glibc" GRUB_PLATFORMS="pc" KERNEL="linux" LCD_DEVICES="lcd2usb glcd2usb" LINGUAS="de" NGINX_MODULES_HTTP="access auth_basic autoindex charset fancyindex fastcgi gzip proxy rewrite spdy stub_status" PHP_TARGETS="php5-6" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_4" USERLAND="GNU"
USE_PYTHON="2.7"
Unset:  CPPFLAGS, CTARGET, LC_ALL
Comment 3 SpanKY gentoo-dev 2014-11-21 07:49:54 UTC
odd, it keeps getting set to -rw-r--r-- on my system.  what are the perms of the other files in that dir ?
Comment 4 Ulrich Müller gentoo-dev 2014-11-21 08:06:42 UTC
(In reply to SpanKY from comment #3)
> odd, it keeps getting set to -rw-r--r-- on my system.  what are the perms of
> the other files in that dir ?

No other files here, because it apparently errors out before it can create any:

   $ ls -la /var/cache/ccache/
   total 12
   drwxrwsr-x  2 root portage 4096 Nov 21 09:07 .
   drwxr-xr-x 14 root root    4096 Nov 21 09:07 ..
   -rw-------  1 root portage   14 Nov 21 09:07 ccache.conf

This is with:
FEATURES="assume-digests binpkg-logs ccache collision-protect compressdebug config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms sign splitdebug strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
Comment 5 SpanKY gentoo-dev 2014-11-21 08:19:20 UTC
(In reply to Ulrich Müller from comment #4)

if you clear the dir and build, does it die before it gets a chance to build ?  i cleared the whole thing and rebuilt ccache a few times ... using userfetch userpriv usersandbox as well.

i'm not seeing ccache doing any permission modifications itself.  it just creates the file if it didn't already exist.  it uses O_CREAT/0666 as to be expected.

i know portage does some permission adjustment on the ccache dir ...
Comment 6 Ulrich Müller gentoo-dev 2014-11-21 08:36:22 UTC
(In reply to SpanKY from comment #5)
> (In reply to Ulrich Müller from comment #4)
> 
> if you clear the dir and build, does it die before it gets a chance to build
> ?  i cleared the whole thing and rebuilt ccache a few times ... using
> userfetch userpriv usersandbox as well.

It dies in configure:

>>> Configuring source in /var/tmp/portage/dev-util/ccache-3.2/work/ccache-3.2 .
..
 * econf: updating ccache-3.2/config.sub with /usr/share/gnuconfig/config.sub
 * econf: updating ccache-3.2/config.guess with /usr/share/gnuconfig/config.gues
s
./configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu
 --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --syscon
fdir=/etc --localstatedir=/var/lib --libdir=/usr/lib64
configure: Configuring ccache
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for x86_64-pc-linux-gnu-gcc... x86_64-pc-linux-gnu-gcc
checking whether the C compiler works... no
configure: error: in `/var/tmp/portage/dev-util/ccache-3.2/work/ccache-3.2':
configure: error: C compiler cannot create executables


config.log says this:

## ----------- ##
## Core tests. ##
## ----------- ##

configure:2221: Configuring ccache
configure:2260: checking build system type
configure:2274: result: x86_64-pc-linux-gnu
configure:2294: checking host system type
configure:2307: result: x86_64-pc-linux-gnu
configure:2350: checking for x86_64-pc-linux-gnu-gcc
configure:2366: found /usr/lib64/ccache/bin/x86_64-pc-linux-gnu-gcc
configure:2377: result: x86_64-pc-linux-gnu-gcc
configure:2646: checking for C compiler version
configure:2655: x86_64-pc-linux-gnu-gcc --version >&5
ccache: error: /var/cache/ccache/ccache.conf: Permission denied
configure:2666: $? = 1
configure:2655: x86_64-pc-linux-gnu-gcc -v >&5
ccache: error: /var/cache/ccache/ccache.conf: Permission denied
configure:2666: $? = 1
configure:2655: x86_64-pc-linux-gnu-gcc -V >&5
ccache: error: /var/cache/ccache/ccache.conf: Permission denied
configure:2666: $? = 1
configure:2655: x86_64-pc-linux-gnu-gcc -qversion >&5
ccache: error: /var/cache/ccache/ccache.conf: Permission denied
configure:2666: $? = 1
configure:2686: checking whether the C compiler works
configure:2708: x86_64-pc-linux-gnu-gcc -march=core2 -ggdb -O2 -pipe  -Wl,-O1 -Wl,--as-needed conftest.c  >&5
ccache: error: /var/cache/ccache/ccache.conf: Permission denied
configure:2712: $? = 1
configure:2750: result: no
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| /* end confdefs.h.  */
| 
| int
| main ()
| {
| 
|   ;
|   return 0;
| }
configure:2755: error: in `/var/tmp/portage/dev-util/ccache-3.2/work/ccache-3.2':
configure:2757: error: C compiler cannot create executables
Comment 7 SpanKY gentoo-dev 2014-11-21 09:37:04 UTC
(In reply to Ulrich Müller from comment #6)

using it by hand outside of the sandbox look weird too ?

  rm ~/.ccache/ccache.conf
  ccache gcc -c ~/test.c -o /dev/null
  ls -l ~/.ccache/ccache.conf
Comment 8 Ulrich Müller gentoo-dev 2014-11-21 09:45:31 UTC
(In reply to SpanKY from comment #7)
>   rm ~/.ccache/ccache.conf
>   ccache gcc -c ~/test.c -o /dev/null
>   ls -l ~/.ccache/ccache.conf

-rw-r--r-- 1 ulm users 16 Nov 21 10:46 .ccache/ccache.conf
Comment 9 Viktor Yu. Kovalskii 2014-11-22 08:53:32 UTC
Permissions are changed after setting cache size by ccache -M:

# ls -l ~/.ccache/ccache.conf
-rw-r--r-- 1 root portage 16 Nov 22 14:49 /root/.ccache/ccache.conf

# ccache -M 10G
Set cache size limit to 10.0 GB

# ls -l ~/.ccache/ccache.conf
-rw------- 1 root portage 15 Nov 22 14:50 /root/.ccache/ccache.conf
Comment 10 jospezial 2014-11-22 14:08:41 UTC
Could this be set wrong by default?:

umask (CCACHE_UMASK)

This setting specifies the umask for ccache and all child processes (such as the compiler). This is mostly useful when you wish to share your cache with other users. Note that this also affects the file permissions set on the object files created from your compilations.

Does this affact the config file?
Comment 11 Nick Herman 2014-11-22 14:22:19 UTC
This is the ccache code change that makes 'ccache -M' always update ccache.conf mode to 0600 in ccache v3.2 (as create_tmp_file() creates files with 0600 in mode bits):

https://git.samba.org/?p=ccache.git;a=blobdiff;f=conf.c;h=92c70c0648d5f5339fc28c889107f32f61c4bbb9;hp=56adb484ecd4079906e50aef03f930c5d98f7b79;hb=fc61ca9a9232f26ee3f714d4b8738d916f6948ff;hpb=f49770a4b142e82a3cf1f5e1da158f69e0447972
Comment 12 jospezial 2014-11-22 15:15:37 UTC
very inconsistent behaviour:
ccache -M 10G and ccache -s produce the new configfile with different permissions.

bastellinux ~ # rm -r /var/tmp/ccache
bastellinux ~ # ccache -M 10G
Set cache size limit to 10.0 GB
bastellinux ~ # ls -la /var/tmp/ccache/
insgesamt 12
drwxr-xr-x  2 root root 4096 22. Nov 15:58 .
drwxrwxrwt 10 root root 4096 22. Nov 15:58 ..
-rw-------  1 root root   15 22. Nov 15:58 ccache.conf
bastellinux ~ # rm -r /var/tmp/ccache
bastellinux ~ # ccache -s
cache directory                     /var/tmp/ccache/
primary config                      /var/tmp/ccache//ccache.conf
secondary config      (readonly)    /etc/ccache.conf
cache hit (direct)                     0
cache hit (preprocessed)               0
cache miss                             0
files in cache                         0
cache size                           0.0 kB
max cache size                       5.0 GB
bastellinux ~ # ls -la /var/tmp/ccache/
insgesamt 12
drwxr-xr-x  2 root root 4096 22. Nov 15:59 .
drwxrwxrwt 10 root root 4096 22. Nov 15:59 ..
-rw-r--r--  1 root root   16 22. Nov 15:59 ccache.conf

Also you see no portage group used.

@ Nick Herman:
Did you try to reverse the commit?
Comment 13 Nick Herman 2014-11-22 15:41:33 UTC
@jospezial

I tried reversing just those two lines in diff and ccahce.conf seems to always have 644 mode after applying ccache -M now.

$ CCACHE_DIR=/tmp/.ccache ./ccache -M 3G
Set cache size limit to 3.0 GB
$ ll /tmp/.ccache/
total 4.0K
-rw-r--r-- 1 gen gen 14 Nov 22 18:39 ccache.conf
$ chmod 0600 /tmp/.ccache/ccache.conf
$ ll /tmp/.ccache/
total 4.0K
-rw------- 1 gen gen 14 Nov 22 18:40 ccache.conf
$ CCACHE_DIR=/tmp/.ccache ./ccache -M 2G
Set cache size limit to 2.0 GB
$ ll /tmp/.ccache/
total 4.0K
-rw-r--r-- 1 gen gen 14 Nov 22 18:40 ccache.conf
Comment 14 Ulrich Müller gentoo-dev 2014-11-22 16:28:28 UTC
@vapier: How about package.masking ccache-3.2 until this issue is resolved?
Comment 15 Justin Lecher (RETIRED) gentoo-dev 2014-11-23 09:45:03 UTC
As a workaround, I dropped the CCACHE_SIZE from make.conf (The default changed from 1-5 GB) and deleted the ccache.conf.
Comment 16 jospezial 2014-11-23 22:22:30 UTC
something more to the inconsistency of the permissions:

I deleted /var/tmp/ccache/ , removed the ccache size and path settings from /etc/make.conf and deleted the file in /etc/env.d . (don't forget to do env-update and reboot or do source /etc/profile)

After the reboot I emerged updates (worked without problems).
And this is the ccache.conf that emerge creates:

ls -la /var/tmp/ccache/
insgesamt 84
drwxrwsr-x 19 root    portage 4096 23. Nov 22:58 .
drwxrwxrwt 10 root    root    4096 23. Nov 22:56 ..
drwxrwsr-x 12 portage portage 4096 23. Nov 22:58 0
drwxrwsr-x 12 portage portage 4096 23. Nov 22:58 1
drwxrwsr-x 10 portage portage 4096 23. Nov 22:58 2
drwxrwsr-x  7 portage portage 4096 23. Nov 22:58 3
drwxrwsr-x 11 portage portage 4096 23. Nov 22:58 4
drwxrwsr-x 10 portage portage 4096 23. Nov 22:58 5
drwxrwsr-x 12 portage portage 4096 23. Nov 22:58 6
drwxrwsr-x  9 portage portage 4096 23. Nov 22:58 7
drwxrwsr-x 12 portage portage 4096 23. Nov 22:58 8
drwxrwsr-x 13 portage portage 4096 23. Nov 22:58 9
-rw-rw-r--  1 portage portage  190 23. Nov 22:56 CACHEDIR.TAG
drwxrwsr-x 10 portage portage 4096 23. Nov 22:58 a
drwxrwsr-x 10 portage portage 4096 23. Nov 22:58 b
drwxrwsr-x  7 portage portage 4096 23. Nov 22:58 c
-rw-rw-r--  1 portage portage   16 23. Nov 22:56 ccache.conf
drwxrwsr-x 11 portage portage 4096 23. Nov 22:58 d
drwxrwsr-x 10 portage portage 4096 23. Nov 22:58 e
drwxrwsr-x 14 portage portage 4096 23. Nov 22:58 f
drwxrwsr-x  2 portage portage 4096 23. Nov 22:58 tmp

Here we have write permission for the group too.

For next I will try to set the path in the new /etc/ccache.conf (does not yet exist on my system).
If you set nowhere CCACHE_DIR then emerge uses /var/tmp/ccache/ .
But then ccache -s creates and uses ~/.ccache/ for the user.
Comment 17 jospezial 2014-11-24 01:16:51 UTC
If you want to set the path in /etc/ccache.conf for systemwide you need the to write it in lower letters as you can see in manpage because it is not an environment variable.
Note the little difference (not ccache_dir):

cache_dir=/var/tmp/ccache

Don't use " and no / on the end of line.

The funny thing is the output of ccache -s as normal user. It shows all counters zero even if the user is in the portage group.

joerg@bastellinux ~ $ ccache -s
cache directory                     /var/tmp/ccache
primary config                      /var/tmp/ccache/ccache.conf
secondary config      (readonly)    /etc/ccache.conf
cache hit (direct)                     0
cache hit (preprocessed)               0
cache miss                             0
files in cache                         0
cache size                           0.0 kB
max cache size                       5.0 GB

That's because the the stats files are not readable by group (portage).

joerg@bastellinux ~ $ groups
adm lp wheel audio cdrom video games usb scanner plugdev lpadmin pulse pulse-access portage cdemu vboxusers wireshark joerg
joerg@bastellinux ~ $ ls -la /var/tmp/ccache/0/stats
-rw------- 1 portage portage 61 24. Nov 00:18 /var/tmp/ccache/0/stats
joerg@bastellinux ~ $ cat /var/tmp/ccache/0/stats
cat: /var/tmp/ccache/0/stats: Keine Berechtigung (permission denied)
Comment 18 Jeroen Roovers (RETIRED) gentoo-dev 2014-11-26 07:54:32 UTC
*** Bug 530644 has been marked as a duplicate of this bug. ***
Comment 19 Duncan 2014-12-01 23:44:44 UTC
With this being pretty clearly an upstream bug I filed it as such.  Could someone (the author?) with the privs put this link in the URL field?

https://bugzilla.samba.org/show_bug.cgi?id=10978

(For now I'm simply masking 3.2.  If 3.1.10-r1 was working before, it should continue working a bit longer.  I have a new printer and need to rebuild some stuff with USE=cups.)

Duncan
Comment 20 Weedy 2014-12-08 19:34:25 UTC
Going forward can we make sure things like the new config file, stats files, whatever CACHEDIR.TAG is all get 664? Not to mention the cached files themselves are sometimes 600 for lord knows what reasons.

I use all the user* FEATURES and it's playing havoc with calling ccache -s
Comment 21 Marc Schiffbauer gentoo-dev 2014-12-11 22:04:41 UTC
3.2.1 has been released, which seems to fix that issue:

https://ccache.samba.org/releasenotes.html#_new_features_and_improvements

"Fixed regression in temporary file handling, which lead to incorrect permissions for stats, manifest and ccache.conf files in the cache. "

Please bump ;)
Comment 22 Justin Lecher (RETIRED) gentoo-dev 2014-12-12 07:36:03 UTC
+*ccache-3.2.1 (12 Dec 2014)
+
+  12 Dec 2014; Justin Lecher <jlec@gentoo.org> -ccache-3.2.ebuild,
+  +ccache-3.2.1.ebuild, metadata.xml:
+  Version Bump, fixes #529998
+