Hello community,
here is the log from the commit of package icecream
checked in at Sat Sep 2 19:01:40 CEST 2006.
--------
--- icecream/icecream.changes 2006-08-29 09:27:16.000000000 +0200
+++ icecream/icecream.changes 2006-09-02 19:01:14.000000000 +0200
@@ -1,0 +2,6 @@
+Sat Sep 2 19:01:02 CEST 2006 - ro@suse.de
+
+- 0.7.8
+ - various bugfixes
+
+-------------------------------------------------------------------
Old:
----
icecc-0.7.7.diff
icecc-0.7.7.tar.bz2
New:
----
icecc-0.7.8.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ icecream.spec ++++++
--- /var/tmp/diff_new_pack.lVteiC/_old 2006-09-02 19:01:31.000000000 +0200
+++ /var/tmp/diff_new_pack.lVteiC/_new 2006-09-02 19:01:31.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package icecream (Version 0.7.7)
+# spec file for package icecream (Version 0.7.8)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -22,11 +22,10 @@
%endif
Prereq: /usr/sbin/useradd /usr/sbin/groupadd
Requires: gcc-c++
-Version: 0.7.7
-Release: 2
+Version: 0.7.8
+Release: 1
Source0: ftp://ftp.suse.com/pub/projects/icecream/icecc-%{version}.tar.bz2
Source1: %name-manpages.tar.bz2
-Patch0: icecc-0.7.7.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@@ -63,7 +62,6 @@
%prep
%setup -q -n %name -a 1
-%patch0
%build
export CFLAGS="$RPM_OPT_FLAGS"
@@ -141,6 +139,9 @@
%_libdir/pkgconfig/icecc.pc
%changelog -n icecream
+* Sat Sep 02 2006 - ro@suse.de
+- 0.7.8
+- various bugfixes
* Tue Aug 29 2006 - coolo@suse.de
- reverted part of the FreeBSD patch that broke x86_64 envs
* Fri Aug 25 2006 - coolo@suse.de
++++++ icecc-0.7.7.tar.bz2 -> icecc-0.7.8.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/icecream/NEWS new/icecream/NEWS
--- old/icecream/NEWS 2006-08-25 21:28:06.000000000 +0200
+++ new/icecream/NEWS 2006-09-01 15:25:17.000000000 +0200
@@ -1,3 +1,7 @@
+0.7.8 (r579712):
+ - fd leak fix, which caused a deadlock under certain conditions
+ - rework some FreeBSD patches that caused problems on x86_64
+
0.7.7 (r574260):
- clear all internal maps
- patches by Frerich to support FreeBSD
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/icecream/README new/icecream/README
--- old/icecream/README 2006-07-08 18:10:54.000000000 +0200
+++ new/icecream/README 2006-08-27 22:36:05.000000000 +0200
@@ -15,5 +15,5 @@
WARNING: Make sure you specify a prefix, otherwise icecream
might override your gcc installation!
-Please have a look at http://wiki.kde.org/icecream - the docu
+Please have a look at http://en.opensuse.org/Icecream - the docu
is maintained there for the time being
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/icecream/client/icecc-create-env new/icecream/client/icecc-create-env
--- old/icecream/client/icecc-create-env 2006-07-18 13:44:57.000000000 +0200
+++ new/icecream/client/icecc-create-env 2006-08-29 09:23:05.000000000 +0200
@@ -44,7 +44,8 @@
# libc.so.6 => /lib/tls/libc.so.6 (0xb7e81000)
# /lib/ld-linux.so.2 (0xb7fe8000)
# covering both situations ( with => and without )
- for lib in `ldd "$path" | tail -n +2 | sed -n 's,^[^/]*\(/[^ ]*\).*,\1,p'`; do
+ for lib in `ldd "$path" | sed -n 's,^[^/]*\(/[^ ]*\).*,\1,p'`; do
+ test -f "$lib" || continue
# Check wether the same library also exists in the parent directory,
# and prefer that on the assumption that it is a more generic one.
local baselib=`echo "$lib" | sed 's,\(/[^/]*\)/.*\(/[^/]*\)$,\1\2,'`
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/icecream/configure.in new/icecream/configure.in
--- old/icecream/configure.in 2006-08-25 21:28:06.000000000 +0200
+++ new/icecream/configure.in 2006-09-01 15:25:17.000000000 +0200
@@ -4,7 +4,7 @@
AC_INIT(client/main.cpp)
-AM_INIT_AUTOMAKE(icecc, "0.7.7")
+AM_INIT_AUTOMAKE(icecc, "0.7.8")
AM_CONFIG_HEADER(config.h)
AC_CANONICAL_HOST
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/icecream/daemon/load.cpp new/icecream/daemon/load.cpp
--- old/icecream/daemon/load.cpp 2006-07-18 13:44:57.000000000 +0200
+++ new/icecream/daemon/load.cpp 2006-09-01 12:14:38.000000000 +0200
@@ -97,11 +97,14 @@
char buf[ 256 ];
static int fd = -1;
- if ( fd < 0 && ( fd = open( "/proc/stat", O_RDONLY ) ) < 0 ) {
- log_error() << "Cannot open file \'/proc/stat\'!\n"
- "The kernel needs to be compiled with support\n"
- "for /proc filesystem enabled!" << endl;
- return;
+ if ( fd < 0 ) {
+ if (( fd = open( "/proc/stat", O_RDONLY ) ) < 0 ) {
+ log_error() << "Cannot open file \'/proc/stat\'!\n"
+ "The kernel needs to be compiled with support\n"
+ "for /proc filesystem enabled!" << endl;
+ return;
+ }
+ fcntl(fd, F_SETFD, FD_CLOEXEC);
}
lseek(fd, 0, SEEK_SET);
@@ -181,11 +184,14 @@
char buf[256];
static int fd = -1;
- if ( fd < 0 && ( fd = open( "/proc/meminfo", O_RDONLY ) ) < 0 ) {
- log_error() << "Cannot open file \'/proc/meminfo\'!\n"
- "The kernel needs to be compiled with support\n"
- "for /proc filesystem enabled!" << endl;
- return 0;
+ if ( fd < 0 ) {
+ if ( ( fd = open( "/proc/meminfo", O_RDONLY ) ) < 0 ) {
+ log_error() << "Cannot open file \'/proc/meminfo\'!\n"
+ "The kernel needs to be compiled with support\n"
+ "for /proc filesystem enabled!" << endl;
+ return 0;
+ }
+ fcntl(fd, F_SETFD, FD_CLOEXEC);
}
lseek (fd, 0, SEEK_SET);
ssize_t n;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/icecream/daemon/main.cpp new/icecream/daemon/main.cpp
--- old/icecream/daemon/main.cpp 2006-08-18 17:14:19.000000000 +0200
+++ new/icecream/daemon/main.cpp 2006-09-01 12:14:38.000000000 +0200
@@ -156,7 +156,7 @@
if (pipe_to_child >= 0)
close (pipe_to_child);
}
- int job_id;
+ uint32_t job_id;
string outfile; // only useful for LINKJOB
MsgChannel *channel;
UseCSMsg *usecsmsg;
@@ -266,22 +266,6 @@
}
};
-
-int set_cloexec_flag (int desc, int value)
-{
- int oldflags = fcntl (desc, F_GETFD, 0);
- /* If reading the flags failed, return error indication now. */
- if (oldflags < 0)
- return oldflags;
- /* Set just the flag we want to set. */
- if (value != 0)
- oldflags |= FD_CLOEXEC;
- else
- oldflags &= ~FD_CLOEXEC;
- /* Store modified flag word in the descriptor. */
- return fcntl (desc, F_SETFD, oldflags);
-}
-
int dcc_new_pgrp(void)
{
/* If we're a session group leader, then we are not able to call
@@ -406,7 +390,7 @@
return -1;
}
- set_cloexec_flag(listen_fd, 1);
+ fcntl(listen_fd, F_SETFD, FD_CLOEXEC);
return listen_fd;
}
@@ -1226,6 +1210,8 @@
log_warning() << "scheduler not yet found.\n";
return false;
}
+ delete discover;
+ discover = 0;
sockaddr_in name;
socklen_t len = sizeof(name);
int error = getsockname(scheduler->fd, (struct sockaddr*)&name, &len);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/icecream/daemon/serve.cpp new/icecream/daemon/serve.cpp
--- old/icecream/daemon/serve.cpp 2006-08-18 17:14:19.000000000 +0200
+++ new/icecream/daemon/serve.cpp 2006-09-01 12:14:38.000000000 +0200
@@ -89,6 +89,7 @@
if ( pid != 0) { // parent
close( socket[1] );
out_fd = socket[0];
+ fcntl(out_fd, F_SETFD, FD_CLOEXEC);
return pid;
}
@@ -96,6 +97,9 @@
close( socket[0] );
out_fd = socket[1];
+ /* internal communication channel, don't inherit to gcc */
+ fcntl(out_fd, F_SETFD, FD_CLOEXEC);
+
nice( nice_level );
Msg *msg = 0; // The current read message
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/icecream/daemon/workit.cpp new/icecream/daemon/workit.cpp
--- old/icecream/daemon/workit.cpp 2006-07-12 21:34:16.000000000 +0200
+++ new/icecream/daemon/workit.cpp 2006-09-01 16:53:38.000000000 +0200
@@ -99,7 +99,6 @@
must_reap = true;
}
-
static void
error_client( MsgChannel *client, string error )
{
@@ -191,13 +190,16 @@
close( sock_out[1] );
close( sock_in[0] );
close( sock_in[1] );
+ close( sock_err[0] );
unlink( tmp_output );
return EXIT_OUT_OF_MEMORY;
} else if ( pid == 0 ) {
close( main_sock[0] );
close( sock_in[1] );
+ close( sock_out[0] );
dup2( sock_in[0], 0);
+ close (sock_in[0]);
fcntl(main_sock[1], F_SETFD, FD_CLOEXEC);
setenv( "PATH", "usr/bin", 1 );
// Safety check
@@ -263,16 +265,14 @@
printf( "%s ", argv[index] );
printf( "\n" );
#endif
-
- close( STDOUT_FILENO );
- close( sock_out[0] );
- dup2( sock_out[1], STDOUT_FILENO );
- close( STDERR_FILENO );
- close( sock_err[0] );
+ close_debug();
+ dup2 (sock_out[1], STDOUT_FILENO );
+ close(sock_out[1]);
dup2( sock_err[1], STDERR_FILENO );
+ close(sock_err[1]);
- ret = execv( argv[0], const_cast