Hello community,

here is the log from the commit of package icecream.1822 for 
openSUSE:12.3:Update checked in at 2013-07-05 13:40:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.3:Update/icecream.1822 (Old)
 and      /work/SRC/openSUSE:12.3:Update/.icecream.1822.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "icecream.1822"

Changes:
--------
New Changes file:

--- /dev/null   2013-07-02 09:26:14.908030755 +0200
+++ /work/SRC/openSUSE:12.3:Update/.icecream.1822.new/icecream.changes  
2013-07-05 13:40:04.000000000 +0200
@@ -0,0 +1,837 @@
+-------------------------------------------------------------------
+Thu Jun 27 16:27:43 UTC 2013 - llu...@suse.com
+
+- avoid crash on first launch after reboot (bnc#827118):
+  fix-startup.patch
+
+-------------------------------------------------------------------
+Thu Apr  4 14:11:53 UTC 2013 - llu...@suse.com
+
+- update to 1.0.0 (bnc#813996)
+ - log error message when cleaning up cache fails during startup
+ - if getuid() != 0, then our u/gid will be getu/gid() the whole time
+ - chmod/chown envs dir when preparing this
+ - be more careful when cleaning up envs directory
+ - cleanup envs dir still with root privileges
+ - mkdir -p
+ - Revert "cleanup envs dir still with root privileges"
+ - cleanup envs dir in %post in specfile
+ - fix scheduler binary name in suse specfile
+ - with cap-ng geteuid() is not a sign of being able to do chroot
+ - avoid debug message without endl
+ - avoid unused parameter warnings
+ - install clang/clang++ wrappers symlinks conditionally again
+ - adjust specfile for optional clang symlinks
+ - make clang wrappers package also require clang
+ - fix clang wrappers build
+ - refer to icecream-us...@googlegroups.com ML as the contact
+ - mention the Linux3_ hack leading to nodes sometimes not being used
+ - Linux3_ nodes may not compile on other nodes either, actually
+ - prevent icerun-wrapped commands failing if path contains 'clang'
+ - remove unnecessary references to KDE to make icecream look KDE-specific
+ - adjust references to icecream path
+ - sync the ccache section between README.md and the manpage
+ - AC_CONFIG_HEADERS instead of obsolete and removed AM_CONFIG_HEADER
+ - add the README.md to the tar
+ - mild relicensing, the code taken from ksysguardd is really a minor part by 
now
+- remove treat-linux3-as-separate-platform.diff
+- remove icecream-include.patch
+- remove handle-extrafiles-on-assembler.patch
+
+-------------------------------------------------------------------
+Tue Jan 29 13:06:21 UTC 2013 - dmuel...@suse.com
+
+- install COPYING, README.md and NEWS as useful user documentation
+
+-------------------------------------------------------------------
+Wed Jan  9 15:42:41 UTC 2013 - co...@suse.com
+
+- update to 0.9.98.3 (1.0rc5)
+ - fix cap_ng support
+ - chmod/chown envs dir when preparing this
+ - be more careful when cleaning up envs directory
+ - cleanup envs dir in %post in specfile
+ - install clang/clang++ wrappers symlinks conditionally again
+ - add the README.md to the tar
+ - mild relicensing, the code taken from ksysguardd is really a minor part by 
now
+
+-------------------------------------------------------------------
+Sun Jan  6 08:13:56 UTC 2013 - co...@suse.com
+
+- update to 0.9.98.2 (1.0rc4)
+ - suse: Backports from OBS and create symlinks in /opt/icecream/bin on 
openSUSE <= 12.2.
+ - fix libexec dir name in opensuse specfile
+ - icecream doesn't use m4 directory
+ - explicit configure option for whether to use clang's include rewriting
+ - use the clang rewrite options in opensuse specfile
+ - fix builddir != srcdir
+ - icecream user on suse is 'icecream', not 'icecc'
+ - do not remove env. basedir itself
+ - do not chown() with root uid
+ - do not complain needlessly about missing icecc user
+ - Fix icecc-create-env for relative paths
+ - Use docbook2man to generate manpages rather than KDE calls.
+
+-------------------------------------------------------------------
+Wed Dec 26 09:08:13 UTC 2012 - co...@suse.com
+
+- update to 0.9.98.1 (1.0rc3)
+ - install icecc links in a more convenient dir
+ - fix for assembler usage during kvm builds
+ - fix generation of man pages
+ - some readme generated from en.opensuse.org content
+ - update autoconf and automake macros
+ - install clang++ clang symlinks unconditionally.
+ - move openSUSE's rpm install scripts to suse/Makefile.am.
+ - links installation should be pkglibexec instead of libexec
+ - rename scheduler to icecc-scheduler to avoid name clash
+ - change to an unprivileged user when running the scheduler as root.
+ - move scheduler logs to icecc specific dir
+ - ignore if meinproc is not avilable
+ - version bump minilzo to 2.0.6.
+
+-------------------------------------------------------------------
+Tue Dec 18 10:44:08 UTC 2012 - co...@suse.com
+
+- update to 0.9.97 (1.0rc1)
+ - support for Clang compiler
+   Clang now should work out of the box just like GCC.
+   Clang with -frewrite-includes option is recommended (3.2+ or patched).
+ - support 'icecc <compilername>' properly
+ - try to avoid compiling on the local machine if it is busy
+ - do not use old compiler if it was changed while icecream daemon was running
+ - verify if remote hosts can actually be used for compilation (avoids
+   problems with old kernel versions)
+ - support for custom compiler plugins (GCC/Clang)
+ - fix gcc 4.6 support
+ - reduce usage of PATH_MAX for better portability
+ - fix build-native to add default GNU assembler
+ - fix SIGSEGV calling build_native without args
+ - parse @file option
+ - skip .[h,hpp] header files and check precompiled headers from -include opts
+ - move log and socket to an icecc especific folder
+ - rename nobody to user
+ - add support for libcap-ng
+ - moving to https://github.com/icecc/icecream
+ - add clang wrapper symlinks
+ - allow normal users to actually connect to the daemon's unix socket
+ - rebuild environment if the compiler changes
+ - check if the remote node can actually use an environment
+ - setting to avoid using hosts where the environment cannot be checked
+ - add [compiler] to the command line template in --help
+ - support for compiler plugins / multiple native environments
+ - do not create environments containing both gcc and clang
+ - check env cache size also when creating new native environment
+ - keep native envs longer only if there aren't too many
+ - no "basic" native env really anymore, now with env per each compiler
+ - include paths in tarball md5sum
+ - do not use gcc when creating env.tarball for clang
+ - force env. tarball regeneration if it doesn't exist
+ - fix for assembler usage during kvm builds
+
+-------------------------------------------------------------------
+Wed Sep 12 17:44:35 CEST 2012 - r...@suse.de
+
+- prevent endless loop in last change 
+
+-------------------------------------------------------------------
+Fri Sep  7 13:01:37 UTC 2012 - dmuel...@suse.com
+
+- fallback to local build for some building BIOS (bnc#778924) 
+
+-------------------------------------------------------------------
+Sun Jul 22 06:20:28 UTC 2012 - a...@suse.de
+
+- Add icecream-include.patch: missing sys/resource include (glibc 2.16)
+
+-------------------------------------------------------------------
+Thu Mar 22 18:03:02 CET 2012 - dmuel...@suse.de
+
+- make linux 3 based kernel hosts incompatible with the rest, just
+  as a workaround for glibc becoming incompatble
+
+-------------------------------------------------------------------
+Thu May 19 10:55:02 UTC 2011 - co...@novell.com
+
+- update to 0.9.7
+  - bug fix for -MD and -MF
+  - bug fix for gcc 4.6 plugins
+
+-------------------------------------------------------------------
+Tue Aug  3 09:58:28 UTC 2010 - co...@novell.com
+
+- Update to 0.9.6
+ - fix installation issues
+ - add a value type of ticks in /proc - and make it long long
+ - fix kFreeBSD build
+ - fix run-failure with glibc 2.11
+ - allow tgz as extension
+ - support more local args (bnc#625621)
+
+-------------------------------------------------------------------
+Thu May 27 09:57:43 CEST 2010 - dmuel...@suse.de
+
+- fix build against glibc 2.11
+
+-------------------------------------------------------------------
+Mon Feb  1 09:36:00 UTC 2010 - co...@novell.com
+
+- Update to 0.9.5
+ - fix: close the file descriptor (novell bug bnc#525799)
+ - log PID even if no prefix is specified
+ - allow get_msg() to fetch data from the kernel even if timeout is 0.
+ - clean up event loop of gcc invocation
+ - Install an "icerun" symlink that will serialize commands through
+   icecream's local daemon
+
+-------------------------------------------------------------------
+Thu Apr 30 14:49:13 CEST 2009 - co...@suse.de
+
+- Update to 0.9.4
+ - don't leak file descriptor to create-env
+ - don't use the shell to call simple commands
+ - make a special exception for - in rest args (bnc#495786)
+ - Fix way icecream changes permissions of /var/cache/icecream
+
+-------------------------------------------------------------------
+Sun Feb 15 14:59:10 CET 2009 - co...@suse.de
++++ 640 more lines (skipped)
++++ between /dev/null
++++ and /work/SRC/openSUSE:12.3:Update/.icecream.1822.new/icecream.changes

New:
----
  fix-startup.patch
  icecc-1.0.0.tar.bz2
  icecream.changes
  icecream.spec

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ icecream.spec ++++++
#
# spec file for package icecream
#
# Copyright (c) 2013 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/
#
# icecream 0


Name:           icecream
BuildRequires:  gcc-c++
%if 0%{?suse_version} > 1110
BuildRequires:  libcap-ng-devel
%endif
Summary:        For Distributed Compile in the Network
License:        GPL-2.0+ and LGPL-2.1+
Group:          Development/Tools/Building
Url:            https://github.com/icecc/icecream
Requires:       /bin/tar
Requires:       /usr/bin/bzip2
%if 0%{?suse_version}
PreReq:         %fillup_prereq
PreReq:         %insserv_prereq
%endif
PreReq:         /usr/sbin/useradd
PreReq:         /usr/sbin/groupadd
Requires:       gcc-c++
Version:        1.0.0
Release:        0
Source0:        
ftp://ftp.suse.com/pub/projects/icecream/icecc-%{version}.tar.bz2
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
# PATCH-FIX-UPSTREAM 714e64160f2002693d760b1144f7ece8b74fd203
Patch1:         fix-startup.patch

%description
icecream is the next generation distcc.

%package -n libicecream-devel
Summary:        For Distributed Compile in the Network
Group:          Development/Tools/Building
Requires:       libstdc++-devel

%description -n libicecream-devel
icecream is the next generation distcc.

%package -n icecream-clang-wrappers
Summary:        Distributed Compile Wrappers for Clang
Group:          Development/Tools/Building
Requires:       clang
Requires:       icecream
Supplements:    packageand(icecream:clang)

%description -n icecream-clang-wrappers
Wrapper symlinks for clang/clang++ for icecream distributed building.

%prep
%setup -q -n icecc-%{version}
# DO NOT ADD PATCHES without github reference
%patch1 -p1

%build
export CFLAGS="$RPM_OPT_FLAGS"
export CXXFLAGS="$RPM_OPT_FLAGS"
%configure \
%if 0%{?suse_version} >= 1230
    --enable-clang-rewrite-includes \
%endif
    --enable-clang-wrappers \
    --libexecdir %_libexecdir
make %{?jobs:-j %jobs}

%install
make DESTDIR=$RPM_BUILD_ROOT install

# Create symlinks in /opt/icecream/bin on openSUSE <= 1220
%if 0%{?suse_version} <= 1220
  mkdir -p $RPM_BUILD_ROOT/opt/icecream/bin
  for i in g++ gcc cc c++ clang++ clang; do
    ln -sf %_bindir/icecc $RPM_BUILD_ROOT/opt/icecream/bin/$i
  done
%endif

%preun
%stop_on_removal icecream

%pre
/usr/sbin/groupadd -r icecream 2> /dev/null || :
/usr/sbin/useradd -r -g icecream -s /bin/false -c "Icecream Daemon" -d 
/var/cache/icecream icecream 2> /dev/null || :

%post
# older icecream versions may have left some files owned by root:root in the 
cache
rm -rf -- %_localstatedir/cache/icecream/*
%if 0%{?suse_version}
%{fillup_and_insserv -n icecream icecream}
%endif

%postun
%restart_on_update icecream
%{insserv_cleanup}

%files
%defattr(-,root,root)
%doc COPYING README.md NEWS
%config %_sysconfdir/logrotate.d/icecream
%config %_sysconfdir/init.d/icecream
%_bindir/icecc
%_bindir/icerun
%_sbindir/icecc-scheduler
%_sbindir/iceccd
%_sbindir/rcicecream
%_mandir/man*/*
%_libexecdir/icecc
%exclude %_libexecdir/icecc/bin/clang
%exclude %_libexecdir/icecc/bin/clang++
%if 0%{?suse_version}
%_sysconfdir/sysconfig/SuSEfirewall2.d/services/*
%_localstatedir/adm/fillup-templates/sysconfig.icecream
%if 0%{?suse_version} <= 1220
/opt/icecream
%exclude /opt/icecream/bin/clang
%exclude /opt/icecream/bin/clang++
%endif
%endif
%attr(-,icecream,icecream) %_localstatedir/cache/icecream
%attr(-,icecream,icecream) %_localstatedir/log/icecream

%files -n libicecream-devel
%defattr(-,root,root)
%_includedir/icecc
%_libdir/libicecc.*
%_libdir/pkgconfig/icecc.pc

%files -n icecream-clang-wrappers
%defattr(-,root,root)
%_libexecdir/icecc/bin/clang
%_libexecdir/icecc/bin/clang++
%if 0%{?suse_version} <= 1220
/opt/icecream/bin/clang
/opt/icecream/bin/clang++
%endif

%changelog
++++++ fix-startup.patch ++++++
commit 714e64160f2002693d760b1144f7ece8b74fd203
Author: Luboš Luňák <l.lu...@suse.cz>
Date:   Thu Jun 27 17:33:48 2013 +0200

    fix /var/run/icecc handling
    
    Was severely broken by 203b51b588fa2e550feeeef73d91e6d72afeafa9.
    It first created /var/run/icecc, which was successful and didn't have
    the follow-up chown/chmod, so they ended up as root-owned, because
    this happened before dropping privileges using libcap-ng. This caused
    the later access() check for it to fail, and ended up using the user
    path, which however crashed because of there being no $HOME set.
    So after every boot, if /var/run was empty, the first launch failed.
    All following launches were successful, because the mkdir() failed,
    leaving to proper chown/chmod.
    
    Fix by always doing chown/chmod unconditionally. Also do not use
    the access() check for detecting if it's the system or user way of 
launching.

diff --git a/daemon/main.cpp b/daemon/main.cpp
index 6682e26..28ec158 100644
--- a/daemon/main.cpp
+++ b/daemon/main.cpp
@@ -543,11 +543,16 @@ bool Daemon::setup_listen_fds()
     memset(&myaddr, 0, sizeof(myaddr));
     myaddr.sun_family = AF_UNIX;
     mode_t old_umask = -1U;
-    if (access("/var/run/icecc", R_OK|W_OK|X_OK) == 0) {
+#ifdef HAVE_LIBCAP_NG
+    // We run as system daemon.
+    if (capng_have_capability( CAPNG_PERMITTED, CAP_SYS_CHROOT )) {
+#else
+    if (getuid()==0) {
+#endif
         strncpy(myaddr.sun_path, "/var/run/icecc/iceccd.socket", 
sizeof(myaddr.sun_path)-1);
         unlink(myaddr.sun_path);
         old_umask = umask(0);
-    } else {
+    } else { // Started by user.
         strncpy(myaddr.sun_path, getenv("HOME"), sizeof(myaddr.sun_path)-1);
         strncat(myaddr.sun_path, "/.iceccd.socket", 
sizeof(myaddr.sun_path)-1-strlen(myaddr.sun_path));
         unlink(myaddr.sun_path);
@@ -1785,22 +1790,16 @@ int main( int argc, char ** argv )
 
     if (getuid() == 0) {
         if (!logfile.length() && detach) {
-            if (mkdir("/var/log/icecc", 
S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH)) {
-                if (errno == EEXIST) {
-                    chmod("/var/log/icecc", 
S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH);
-                    chown("/var/log/icecc", d.user_uid, d.user_gid);
-                }
-            }
-
+            mkdir("/var/log/icecc", S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH);
+            chmod("/var/log/icecc", S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH);
+            chown("/var/log/icecc", d.user_uid, d.user_gid);
             logfile = "/var/log/icecc/iceccd.log";
         }
 
-        if (mkdir("/var/run/icecc", S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH) 
== -1) {
-            if (errno == EEXIST) {
-                chmod("/var/run/icecc", 
S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH);
-                chown("/var/run/icecc", d.user_uid, d.user_gid);
-            }
-        }
+        mkdir("/var/run/icecc", S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH);
+        chmod("/var/run/icecc", S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH);
+        chown("/var/run/icecc", d.user_uid, d.user_gid);
+
 #ifdef HAVE_LIBCAP_NG
         capng_clear(CAPNG_SELECT_BOTH);
         capng_update(CAPNG_ADD, 
(capng_type_t)(CAPNG_EFFECTIVE|CAPNG_PERMITTED), CAP_SYS_CHROOT);
-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to