From orion@cora.nwra.com Fri Jan 24 22:01:05 2014 Received: (at submit) by bugs.x2go.org; 24 Jan 2014 21:01:07 +0000 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on ymir.das-netzwerkteam.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_DKIM_INVALID autolearn=ham version=3.3.2 Received: from mail.cora.nwra.com (mercury.cora.nwra.com [4.28.99.165]) by ymir (Postfix) with ESMTPS id BDEFA5DA79 for ; Fri, 24 Jan 2014 22:01:04 +0100 (CET) Received: from [10.10.20.7] (barry.cora.nwra.com [10.10.20.7]) (authenticated bits=0) by mail.cora.nwra.com (8.14.4/8.14.4) with ESMTP id s0OL12wl025489 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO) for ; Fri, 24 Jan 2014 14:01:02 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=cora.nwra.com; s=default; t=1390597262; bh=uEw0p33lrW2DXzgyJXb1UrFdq4FhrtxG+RiVEVFHvQQ=; h=Message-ID:Date:From:MIME-Version:To:Subject:Content-Type; b=EGabkfyl7LVptd/9TE0fTkCR5e6idNeVIGIZCMvzL/eqKtXPkUjopk/7hI+iiBJm/ CfZAqO/SgxXyp1jDtNDenZvEp92s3Z8UEAeIBSrCQZFbWxcpjcmmHApk1BcF9XccDY Zrg+s0xzDYm/5onVgjZud9raFfs0OJmczw6vII+w= Message-ID: <52E2D48E.2060603@cora.nwra.com> Date: Fri, 24 Jan 2014 14:01:02 -0700 From: Orion Poplawski User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 MIME-Version: 1.0 To: submit@bugs.x2go.org Subject: imake issues X-Enigmail-Version: 1.6 Content-Type: multipart/mixed; boundary="------------070503020006040608090505" This is a multi-part message in MIME format. --------------070503020006040608090505 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Package: nx-libs Version: 3.5.0.22 The imake in 3.5.0.22 does not compile in current Fedora rawhide due to the use of -Werror=format-security: make[4]: Entering directory `/builddir/build/BUILD/nx-libs-3.5.0.22/nx-X11/config/imake' gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard -I../../include -I../../exports/include/X11 -I../.. -I../../exports/include -Dlinux -D__arm__ -D__arm32__ -U__arm -Uarm -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -DCPP_PROGRAM="\"cpp\"" -DHAS_MERGE_CONSTANTS=`if gcc -fmerge-constants -xc /dev/null -S -o /dev/null 2> /dev/null 1> /dev/null; then echo 1; else echo 0; fi` -DMONOLITH -c -o imake.o imake.c imake.c: In function 'get_libc_version': imake.c:1018:5: error: format not a string literal and no format arguments [-Werror=format-security] fprintf (inFile, command); ^ imake.c: In function 'get_ld_version': imake.c:1135:5: warning: ignoring return value of 'fscanf', declared with attribute warn_unused_result [-Wunused-result] (void) fscanf (ldprog, "%d.%d", &ldmajor, &ldminor); ^ imake.c: In function 'ReadLine': imake.c:1998:12: warning: ignoring return value of 'ftruncate', declared with attribute warn_unused_result [-Wunused-result] ftruncate(fileno(tmpfd), (off_t) 0); ^ cc1: some warnings being treated as errors make[4]: *** [imake.o] Error 1 Ideally, I would like to avoid building a local imake altogether and just use the system imake, but I have been unable to figure out how to do that yet. In the meantime, I'm patching imake.c as attached to bring it up to the version that is in Fedora Rawhide. -- Orion Poplawski Technical Manager 303-415-9701 x222 NWRA, Boulder/CoRA Office FAX: 303-415-9702 3380 Mitchell Lane orion@nwra.com Boulder, CO 80301 http://www.nwra.com --------------070503020006040608090505 Content-Type: text/x-patch; name="nx-libs-imake.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="nx-libs-imake.patch" diff -up nx-libs-3.5.0.22/nx-X11/config/imake/imake.c.imake nx-libs-3.5.0.22/nx-X11/config/imake/imake.c --- nx-libs-3.5.0.22/nx-X11/config/imake/imake.c.imake 2014-01-04 13:39:35.000000000 -0700 +++ nx-libs-3.5.0.22/nx-X11/config/imake/imake.c 2014-01-24 13:55:53.940697330 -0700 @@ -7,8 +7,6 @@ * be passed to the template file. * * * ***************************************************************************/ -/* $XFree86: xc/config/imake/imake.c,v 3.63tsi Exp $ */ - /* * Copyright (c) 1985, 1986, 1987, 1998 The Open Group @@ -153,23 +151,14 @@ in this Software without prior written a #endif #include #include -#ifdef MONOLITH -# include "Xosdefs.h" -#else -# include -#endif +#include +#include +#include #include #include #ifdef WIN32 # include "Xw32defs.h" #endif -#if 0 -#ifndef X_NOT_POSIX -# ifndef _POSIX_SOURCE -# define _POSIX_SOURCE -# endif -#endif -#endif #include #include #ifdef X_NOT_POSIX @@ -231,22 +220,16 @@ typedef union wait waitType; # define WIFEXITED(w) waitCode(w) # endif #endif /* X_NOT_POSIX */ -# include -#if defined(macII) && !defined(__STDC__) /* stdlib.h fails to define these */ -char *malloc(), *realloc(); -#endif /* macII */ +#include #include #ifdef __minix_vmd -#define USE_FREOPEN 1 +# define USE_FREOPEN 1 #endif -#if !((defined(sun) && !defined(SVR4)) || defined(macII)) -#define USE_STRERROR 1 -#endif #ifndef WIN32 -#include +# include #else -#include +# include #endif #ifndef SYS_NMLN # ifdef _SYS_NMLN @@ -256,39 +239,22 @@ char *malloc(), *realloc(); # endif #endif #if defined(linux) || defined(__GNU__) || defined(__GLIBC__) -#include -#include +# include +# include #endif #ifdef __QNX__ -#include -#endif - -/* - * This define of strerror is copied from (and should be identical to) - * Xos.h, which we don't want to include here for bootstrapping reasons. - */ -#ifndef USE_STRERROR -# ifndef strerror -extern char *sys_errlist[]; -extern int sys_nerr; -# define strerror(n) \ - (((n) >= 0 && (n) < sys_nerr) ? sys_errlist[n] : "unknown error") -# endif +# include #endif #if defined(__NetBSD__) /* see code clock in init() below */ -#include -#endif - -#if !(defined(Lynx) || defined(__Lynx__) || (defined(SVR4) && !defined(sun))) && !defined (__CYGWIN__) -#define HAS_MKSTEMP +# include #endif typedef unsigned char boolean; #define TRUE 1 #define FALSE 0 -# include "imakemdep.h" +#include "imakemdep.h" #ifdef CROSSCOMPILE # include "imakemdep_cpp.h" #endif @@ -305,7 +271,7 @@ int xvariables[10]; #endif #ifndef PATH_MAX -#define PATH_MAX 1024 +# define PATH_MAX 1024 #endif /* @@ -331,11 +297,13 @@ void KludgeOutputLine(char **), KludgeRe # endif #endif -char *cpp = NULL; +const char *cpp = NULL; -char *tmpMakefile = "/tmp/Imf.XXXXXX"; -char *tmpImakefile = "/tmp/IIf.XXXXXX"; -char *make_argv[ ARGUMENTS ] = { +const char *tmpMakefile; +const char *tmpMakefileTemplate = "/tmp/Imf.XXXXXX"; +const char *tmpImakefile; +const char *tmpImakefileTemplate = "/tmp/IIf.XXXXXX"; +const char *make_argv[ ARGUMENTS ] = { #ifdef WIN32 "nmake" #else @@ -345,53 +313,53 @@ char *make_argv[ ARGUMENTS ] = { int make_argindex; int cpp_argindex; -char *Imakefile = NULL; -char *Makefile = "Makefile"; -char *Template = "Imake.tmpl"; -char *ImakefileC = "Imakefile.c"; +const char *Imakefile = NULL; +const char *Makefile = "Makefile"; +const char *Template = "Imake.tmpl"; +const char *ImakefileC = "Imakefile.c"; boolean haveImakefileC = FALSE; -char *cleanedImakefile = NULL; -char *program; -char *FindImakefile(char *Imakefile); -char *ReadLine(FILE *tmpfd, char *tmpfname); -char *CleanCppInput(char *imakefile); -char *Strdup(char *cp); +const char *cleanedImakefile = NULL; +const char *program; +const char *FindImakefile(const char *Imakefile); +char *ReadLine(FILE *tmpfd, const char *tmpfname); +const char *CleanCppInput(const char *imakefile); +char *Strdup(const char *cp); char *Emalloc(int size); -void LogFatalI(char *s, int i), LogFatal(char *x0, char *x1), - LogMsg(char *x0, char *x1); +void LogFatal(const char *x0, ...) _X_ATTRIBUTE_PRINTF(1, 2); +void LogMsg(const char *x0, ...) _X_ATTRIBUTE_PRINTF(1, 2); void showit(FILE *fd); void wrapup(void); void init(void); -void AddMakeArg(char *arg); -void AddCppArg(char *arg); +void AddMakeArg(const char *arg); +void AddCppArg(const char *arg); #ifdef CROSSCOMPILE char *CrossCompileCPP(void); #endif void SetOpts(int argc, char **argv); -void CheckImakefileC(char *masterc); -void cppit(char *imakefile, char *template, char *masterc, - FILE *outfd, char *outfname); +void CheckImakefileC(const char *masterc); +void cppit(const char *imakefile, const char *template, const char *masterc, + FILE *outfd, const char *outfname); void makeit(void); -void CleanCppOutput(FILE *tmpfd, char *tmpfname); +void CleanCppOutput(FILE *tmpfd, const char *tmpfname); boolean isempty(char *line); -void writetmpfile(FILE *fd, char *buf, int cnt, char *fname); +void writetmpfile(FILE *fd, const char *buf, int cnt, const char *fname); #ifdef SIGNALRETURNSINT int catch(int sig); #else void catch(int sig); #endif -void showargs(char **argv); -boolean optional_include(FILE *inFile, char *defsym, char *fname); -void doit(FILE *outfd, char *cmd, char **argv); +void showargs(const char **argv); +boolean optional_include(FILE *inFile, const char *defsym, const char *fname); +void doit(FILE *outfd, const char *cmd, const char **argv); boolean define_os_defaults(FILE *inFile); #ifdef CROSSCOMPILE static void get_cross_compile_dir(FILE *inFile); #endif #ifdef CROSSCOMPILEDIR -char *CrossCompileDir = CROSSCOMPILEDIR; +const char *CrossCompileDir = CROSSCOMPILEDIR; #else -char *CrossCompileDir = ""; +const char *CrossCompileDir = ""; #endif boolean CrossCompiling = FALSE; @@ -428,24 +396,25 @@ main(int argc, char *argv[]) if ((tmpfd = fopen(tmpMakefile, "w+")) == NULL) LogFatal("Cannot create temporary file %s.", tmpMakefile); } else { -#ifdef HAS_MKSTEMP +#ifdef HAVE_MKSTEMP int fd; #endif - tmpMakefile = Strdup(tmpMakefile); -#ifndef HAS_MKSTEMP - if (mktemp(tmpMakefile) == NULL || - (tmpfd = fopen(tmpMakefile, "w+")) == NULL) { - LogFatal("Cannot create temporary file %s.", tmpMakefile); + char *tmpMakefileName = Strdup(tmpMakefileTemplate); +#ifndef HAVE_MKSTEMP + if (mktemp(tmpMakefileName) == NULL || + (tmpfd = fopen(tmpMakefileName, "w+")) == NULL) { + LogFatal("Cannot create temporary file %s.", tmpMakefileName); } #else - fd = mkstemp(tmpMakefile); + fd = mkstemp(tmpMakefileName); if (fd == -1 || (tmpfd = fdopen(fd, "w+")) == NULL) { if (fd != -1) { - unlink(tmpMakefile); close(fd); + unlink(tmpMakefileName); close(fd); } - LogFatal("Cannot create temporary file %s.", tmpMakefile); + LogFatal("Cannot create temporary file %s.", tmpMakefileName); } #endif + tmpMakefile = tmpMakefileName; } AddMakeArg("-f"); AddMakeArg( tmpMakefile ); @@ -498,7 +467,7 @@ void catch(int sig) { errno = 0; - LogFatalI("Signal %d.", sig); + LogFatal("Signal %d.", sig); } /* @@ -572,21 +541,21 @@ init(void) } void -AddMakeArg(char *arg) +AddMakeArg(const char *arg) { errno = 0; if (make_argindex >= ARGUMENTS-1) - LogFatal("Out of internal storage.", ""); + LogFatal("Out of internal storage."); make_argv[ make_argindex++ ] = arg; make_argv[ make_argindex ] = NULL; } void -AddCppArg(char *arg) +AddCppArg(const char *arg) { errno = 0; if (cpp_argindex >= ARGUMENTS-1) - LogFatal("Out of internal storage.", ""); + LogFatal("Out of internal storage."); cpp_argv[ cpp_argindex++ ] = arg; cpp_argv[ cpp_argindex ] = NULL; } @@ -618,7 +587,7 @@ SetOpts(int argc, char **argv) else { argc--, argv++; if (! argc) - LogFatal("No description arg after -f flag", ""); + LogFatal("No description arg after -f flag"); Imakefile = argv[0]; } } else if (argv[0][1] == 's') { @@ -628,7 +597,7 @@ SetOpts(int argc, char **argv) else { argc--, argv++; if (!argc) - LogFatal("No description arg after -s flag", ""); + LogFatal("No description arg after -s flag"); Makefile = ((argv[0][0] == '-') && !argv[0][1]) ? NULL : argv[0]; } @@ -642,7 +611,7 @@ SetOpts(int argc, char **argv) else { argc--, argv++; if (! argc) - LogFatal("No description arg after -T flag", ""); + LogFatal("No description arg after -T flag"); Template = argv[0]; } } else if (argv[0][1] == 'C') { @@ -651,7 +620,7 @@ SetOpts(int argc, char **argv) else { argc--, argv++; if (! argc) - LogFatal("No imakeCfile arg after -C flag", ""); + LogFatal("No imakeCfile arg after -C flag"); ImakefileC = argv[0]; } } else if (argv[0][1] == 'v') { @@ -667,10 +636,10 @@ SetOpts(int argc, char **argv) if (!cpp) { AddCppArg("-E"); -#ifdef __GNUC__ +# ifdef __GNUC__ if (verbose) AddCppArg("-v"); -#endif +# endif cpp = DEFAULT_CC; } # else @@ -686,8 +655,8 @@ SetOpts(int argc, char **argv) AddCppArg(ImakefileC); } -char * -FindImakefile(char *Imakefile) +const char * +FindImakefile(const char *Imakefile) { if (Imakefile) { if (access(Imakefile, R_OK) < 0) @@ -695,7 +664,7 @@ FindImakefile(char *Imakefile) } else { if (access("Imakefile", R_OK) < 0) { if (access("imakefile", R_OK) < 0) - LogFatal("No description file.", ""); + LogFatal("No description file."); else Imakefile = "imakefile"; } else @@ -704,44 +673,50 @@ FindImakefile(char *Imakefile) return(Imakefile); } -void -LogFatalI(char *s, int i) +static void _X_ATTRIBUTE_PRINTF(1, 0) +vLogMsg(const char *fmt, va_list args) { - /*NOSTRICT*/ - LogFatal(s, (char *)(long)i); + int error_number = errno; + + if (error_number) { + fprintf(stderr, "%s: ", program); + fprintf(stderr, "%s\n", strerror(error_number)); + } + fprintf(stderr, "%s: ", program); + vfprintf(stderr, fmt, args); + fprintf(stderr, "\n"); } void -LogFatal(char *x0, char *x1) +LogFatal(const char *fmt, ...) { static boolean entered = FALSE; + va_list args; if (entered) return; entered = TRUE; - LogMsg(x0, x1); + va_start(args, fmt); + vLogMsg(fmt, args); + va_end(args); fprintf(stderr, " Stop.\n"); wrapup(); exit(1); } void -LogMsg(char *x0, char *x1) +LogMsg(const char *fmt, ...) { - int error_number = errno; + va_list args; - if (error_number) { - fprintf(stderr, "%s: ", program); - fprintf(stderr, "%s\n", strerror(error_number)); - } - fprintf(stderr, "%s: ", program); - fprintf(stderr, x0, x1); - fprintf(stderr, "\n"); + va_start(args, fmt); + vLogMsg(fmt, args); + va_end(args); } void -showargs(char **argv) +showargs(const char **argv) { for (; *argv; argv++) fprintf(stderr, "%s ", *argv); @@ -751,7 +726,7 @@ showargs(char **argv) #define ImakefileCHeader "/* imake - temporary file */" void -CheckImakefileC(char *masterc) +CheckImakefileC(const char *masterc) { char mkcbuf[1024]; FILE *inFile; @@ -767,7 +742,8 @@ CheckImakefileC(char *masterc) fclose(inFile); LogFatal("Refuse to overwrite: %s", masterc); } - fclose(inFile); + else + fclose(inFile); } } @@ -778,7 +754,7 @@ CheckImakefileC(char *masterc) #define OverrideWarning "Warning: local file \"%s\" overrides global macros." boolean -optional_include(FILE *inFile, char *defsym, char *fname) +optional_include(FILE *inFile, const char *defsym, const char *fname) { errno = 0; if (access(fname, R_OK) == 0) { @@ -790,7 +766,7 @@ optional_include(FILE *inFile, char *def } void -doit(FILE *outfd, char *cmd, char **argv) +doit(FILE *outfd, const char *cmd, const char **argv) { int pid; waitType status; @@ -805,18 +781,18 @@ doit(FILE *outfd, char *cmd, char **argv if (status < 0) LogFatal("Cannot spawn %s.", cmd); if (status > 0) - LogFatalI("Exit code %d.", status); + LogFatal("Exit code %d.", status); #else pid = fork(); if (pid < 0) - LogFatal("Cannot fork.", ""); + LogFatal("Cannot fork."); if (pid) { /* parent... simply wait */ while (wait(&status) > 0) { errno = 0; if (WIFSIGNALED(status)) - LogFatalI("Signal %d.", waitSig(status)); + LogFatal("Signal %d.", waitSig(status)); if (WIFEXITED(status) && waitCode(status)) - LogFatalI("Exit code %d.", waitCode(status)); + LogFatal("Exit code %d.", waitCode(status)); } } else { /* child... dup and exec cmd */ @@ -832,7 +808,7 @@ doit(FILE *outfd, char *cmd, char **argv #if !defined WIN32 static void -parse_utsname(struct utsname *name, char *fmt, char *result, char *msg) +parse_utsname(struct utsname *name, const char *fmt, char *result, const char *msg) { char buf[SYS_NMLN * 5 + 1]; char *ptr = buf; @@ -892,7 +868,7 @@ parse_utsname(struct utsname *name, char /* Just in case... */ if (strlen(buf) >= sizeof(buf)) - LogFatal("Buffer overflow parsing uname.", ""); + LogFatal("Buffer overflow parsing uname."); /* Parse the buffer. The sscanf() return value is rarely correct. */ *result = '\0'; @@ -978,13 +954,23 @@ const char *libc_c= static void get_libc_version(FILE *inFile) { - char aout[] = "/tmp/imakeXXXXXX"; + char aout[4096], *tmpdir; FILE *fp; const char *format = "%s -o %s -x c -"; char *cc; int len; char *command; + /* If $TMPDIR is defined and has an acceptable length, + * use that as tmp dir, else use /tmp. That fixes + * problems with /tmp mounted "noexec". + */ + if((tmpdir = getenv("TMPDIR")) != NULL && strlen(tmpdir) < (4096-13)) + strcpy(aout, tmpdir); + else + strcpy(aout, "/tmp"); + strcat(aout, "/imakeXXXXXX"); + /* Pre-create temp file safely */ { /* Linux + ELF has mkstemp() */ @@ -1000,7 +986,8 @@ get_libc_version(FILE *inFile) cc = "gcc"; len = strlen (aout) + strlen (format) + strlen (cc); if (len < 128) len = 128; - command = alloca (len); + if((command = alloca (len)) == NULL) + abort(); if (snprintf (command , len, format, cc, aout) == len) abort (); @@ -1015,12 +1002,16 @@ get_libc_version(FILE *inFile) abort (); while (fgets (command, len, fp)) - fprintf (inFile, command); + fputs (command, inFile); len = pclose (fp); remove (aout); - if (len) - abort (); + if (len) { + /* handwave furiously */ + printf("#define DefaultLinuxCLibMajorVersion 6\n"); + printf("#define DefaultLinuxCLibMinorVersion 12\n"); + printf("#define DefaultLinuxCLibTeenyVersion 0\n"); + } } #endif @@ -1031,14 +1022,14 @@ get_stackprotector(FILE *inFile) FILE *fp; char *cc; char command[1024], buf[1024]; - + cc = getenv("CC"); if (cc == NULL) { cc = "cc"; } snprintf(command, sizeof(command), "%s -v 2>&1", cc); fp = popen(command, "r"); - if (fp == NULL) + if (fp == NULL) abort(); while (fgets(buf, sizeof(buf), fp)) { if (strstr(buf, "propolice") != NULL) { @@ -1046,11 +1037,10 @@ get_stackprotector(FILE *inFile) break; } } - if (pclose(fp)) - abort(); + pclose(fp); } #endif - + #if defined CROSSCOMPILE || defined linux || defined(__GLIBC__) static void @@ -1058,9 +1048,9 @@ get_distrib(FILE *inFile) { struct stat sb; - static char* suse = "/etc/SuSE-release"; - static char* redhat = "/etc/redhat-release"; - static char* debian = "/etc/debian_version"; + static const char* suse = "/etc/SuSE-release"; + static const char* redhat = "/etc/redhat-release"; + static const char* debian = "/etc/debian_version"; fprintf (inFile, "%s\n", "#define LinuxUnknown 0"); fprintf (inFile, "%s\n", "#define LinuxSuSE 1"); @@ -1076,14 +1066,14 @@ get_distrib(FILE *inFile) fprintf (inFile, "%s\n", "#define LinuxWare 11"); fprintf (inFile, "%s\n", "#define LinuxYggdrasil 12"); -#ifdef CROSSCOMPILE +# ifdef CROSSCOMPILE if (CrossCompiling) { fprintf (inFile, "%s\n", "#define DefaultLinuxDistribution LinuxUnknown"); fprintf (inFile, "%s\n", "#define DefaultLinuxDistName Unknown"); return; } -#endif +# endif if (lstat (suse, &sb) == 0) { fprintf (inFile, "%s\n", "#define DefaultLinuxDistribution LinuxSuSE"); fprintf (inFile, "%s\n", "#define DefaultLinuxDistName SuSE"); @@ -1116,7 +1106,7 @@ get_ld_version(FILE *inFile) int ldmajor, ldminor; const char *ld = "ld -v"; -#ifdef CROSSCOMPILE +# ifdef CROSSCOMPILE if (CrossCompiling) { char cmd[PATH_MAX]; strcpy (cmd, CrossCompileDir); @@ -1124,7 +1114,7 @@ get_ld_version(FILE *inFile) strcat (cmd,ld); ldprog = popen (cmd, "r"); } else -#endif +# endif ldprog = popen (ld, "r"); if (ldprog) { @@ -1192,7 +1182,7 @@ get_binary_format(FILE *inFile) * Returns: 0 if successful, -1 if not. */ static int -ask_sun_compiler_for_versions(const char *cmd, const char *path, +ask_sun_compiler_for_versions(const char *cmd, const char *path, int *cmajor, int *cminor) { char buf[BUFSIZ]; @@ -1201,7 +1191,7 @@ ask_sun_compiler_for_versions(const char FILE* ccproc; const char vflag[] = " -V 2>&1"; int retval = -1; - + int len = strlen(cmd) + sizeof(vflag); if (path != NULL) { @@ -1229,7 +1219,7 @@ ask_sun_compiler_for_versions(const char } } if (retval != 0) { - fprintf(stderr, + fprintf(stderr, "warning: could not parse version number in output of:\n" " %s\n", cmdtorun); } @@ -1247,23 +1237,22 @@ get_sun_compiler_versions (FILE *inFile) { const char* sunpro_path = "/opt/SUNWspro/bin"; int cmajor, cminor, found = 0; - struct stat sb; /* If cross-compiling, only check CrossCompilerDir for compilers. - * If not cross-compiling, first check cc in users $PATH, + * If not cross-compiling, first check cc in users $PATH, * then try /opt/SUNWspro if not found in the users $PATH */ -#if defined CROSSCOMPILE +# if defined CROSSCOMPILE if (CrossCompiling) { if (ask_sun_compiler_for_versions("cc", CrossCompileDir, &cmajor, &cminor) == 0) { found = 1; } - } + } else -#endif - { +# endif + { if (ask_sun_compiler_for_versions("cc", NULL, &cmajor, &cminor) == 0) { found = 1; } else if (ask_sun_compiler_for_versions("cc", sunpro_path, @@ -1282,22 +1271,22 @@ get_sun_compiler_versions (FILE *inFile) /* Now do it again for C++ compiler (CC) */ found = 0; -#if defined CROSSCOMPILE +# if defined CROSSCOMPILE if (CrossCompiling) { if (ask_sun_compiler_for_versions("CC", CrossCompileDir, &cmajor, &cminor) == 0) { found = 1; } - } + } else -#endif - { +# endif + { if (ask_sun_compiler_for_versions("CC", NULL, &cmajor, &cminor) == 0) { found = 1; } else if (ask_sun_compiler_for_versions("CC", sunpro_path, &cmajor, &cminor) == 0) { found = 1; - fprintf(inFile, + fprintf(inFile, "#define DefaultSunProCplusplusCompilerDir %s", sunpro_path); } } @@ -1318,7 +1307,7 @@ static void get_gcc_version(FILE *inFile, char *name) { fprintf (inFile, "#define HasGcc 1\n"); -#ifdef CROSSCOMPILE +# ifdef CROSSCOMPILE if (CrossCompiling) { if (gnu_c > 1) { @@ -1329,20 +1318,20 @@ get_gcc_version(FILE *inFile, char *name fprintf (inFile, "#define GccMajorVersion %d\n", gnu_c); fprintf (inFile, "#define GccMinorVersion %d\n", gnu_c_minor); } else -#endif +# endif { -#if __GNUC__ > 1 +# if __GNUC__ > 1 fprintf (inFile, "#define HasGcc2 1\n"); -# if __GNUC__ > 2 +# if __GNUC__ > 2 fprintf (inFile, "#define HasGcc3 1\n"); +# endif # endif -#endif fprintf (inFile, "#define GccMajorVersion %d\n", __GNUC__); fprintf (inFile, "#define GccMinorVersion %d\n", __GNUC_MINOR__); } -#if defined(HAS_MERGE_CONSTANTS) +# if defined(HAS_MERGE_CONSTANTS) fprintf (inFile, "#define HasGccMergeConstants %d\n", HAS_MERGE_CONSTANTS); -#endif +# endif } #endif @@ -1350,8 +1339,8 @@ static boolean get_gcc(char *cmd) { struct stat sb; - static char* gcc_path[] = { -# if defined(linux) || \ + static const char* gcc_path[] = { +#if defined(linux) || \ defined(__NetBSD__) || \ defined(__OpenBSD__) || \ defined(__FreeBSD__) || \ @@ -1362,14 +1351,14 @@ get_gcc(char *cmd) defined(__GNU__) || \ defined(__GLIBC__) "/usr/bin/cc", /* for Linux PostIncDir */ -# endif +#endif "/usr/local/bin/gcc", "/opt/gnu/bin/gcc", "/usr/pkg/bin/gcc" }; #ifdef CROSSCOMPILE - static char* cross_cc_name[] = { + static const char* cross_cc_name[] = { "cc", "gcc" }; @@ -1399,7 +1388,7 @@ get_gcc(char *cmd) return FALSE; } -#if defined CROSSCOMPILE || !defined __UNIXOS2__ +#ifdef CROSSCOMPILE static void get_gcc_incdir(FILE *inFile, char* name) { @@ -1428,14 +1417,14 @@ get_gcc_incdir(FILE *inFile, char* name) boolean define_os_defaults(FILE *inFile) { -#if defined CROSSCOMPILE || ( !defined(WIN32) && !defined(__UNIXOS2__) ) -#ifdef CROSSCOMPILE -#ifdef __GNUC__ +#if defined CROSSCOMPILE || !defined(WIN32) +# ifdef CROSSCOMPILE +# ifdef __GNUC__ if (1) -#else +# else if ((sys != win32) && (sys != emx)) -#endif -#endif +# endif +# endif { # if (defined(DEFAULT_OS_NAME) || defined(DEFAULT_OS_MAJOR_REV) || \ defined(DEFAULT_OS_MINOR_REV) || defined(DEFAULT_OS_TEENY_REV)) @@ -1444,16 +1433,16 @@ define_os_defaults(FILE *inFile) char buf[SYS_NMLN * 5 + 1]; /* Obtain the system information. */ -#ifdef CROSSCOMPILE +# ifdef CROSSCOMPILE if (!CrossCompiling) -#endif +# endif { if (uname(&uts_name) < 0) - LogFatal("Cannot invoke uname", ""); + LogFatal("Cannot invoke uname"); else name = &uts_name; } -#if defined CROSSCOMPILE && (defined linux || defined(__GLIBC__)) +# if defined CROSSCOMPILE && (defined linux || defined(__GLIBC__)) else { strncpy(uts_name.sysname,cross_uts_sysname,SYS_NMLN); strncpy(uts_name.release,cross_uts_release,SYS_NMLN); @@ -1461,14 +1450,14 @@ define_os_defaults(FILE *inFile) strncpy(uts_name.machine,cross_uts_machine,SYS_NMLN); name = &uts_name; } -#endif -# ifdef __FreeBSD__ +# endif +# ifdef __FreeBSD__ /* Override for compiling in chroot of other OS version, such as * in the bento build cluster. */ { char *e; - if ((e = getenv("OSREL")) != NULL && + if ((e = getenv("OSREL")) != NULL && strlen(name->sysname) + strlen(e) + 1 < SYS_NMLN) { strcpy(name->release, e); strcpy(name->version, name->sysname); @@ -1476,7 +1465,7 @@ define_os_defaults(FILE *inFile) strcat(name->version, e); } } -# endif +# endif # if defined DEFAULT_OS_NAME # if defined CROSSCOMPILE @@ -1648,10 +1637,8 @@ define_os_defaults(FILE *inFile) char name[PATH_MAX]; if (get_gcc(name)) { get_gcc_version (inFile,name); -# if defined CROSSCOMPILE || !defined __UNIXOS2__ -# if defined CROSSCOMPILE +# if defined CROSSCOMPILE if (sys != emx) -# endif get_gcc_incdir(inFile,name); # endif } @@ -1664,7 +1651,7 @@ define_os_defaults(FILE *inFile) get_binary_format(inFile); # endif } -#endif /* !WIN32 && !__UNIXOS2__*/ +#endif /* !WIN32 */ #if defined WIN32 # ifdef CROSSCOMPILE else if (sys == win32 && !CrossCompiling) @@ -1688,8 +1675,6 @@ define_os_defaults(FILE *inFile) #endif /* WIN32 */ #ifdef CROSSCOMPILE else if (sys == emx) -#endif -#if defined CROSSCOMPILE || defined __UNIXOS2__ { fprintf(inFile, "#define DefaultOSMajorVersion 4\n"); fprintf(inFile, "#define DefaultOSMinorVersion 0\n"); @@ -1703,8 +1688,8 @@ define_os_defaults(FILE *inFile) } void -cppit(char *imakefile, char *template, char *masterc, - FILE *outfd, char *outfname) +cppit(const char *imakefile, const char *template, const char *masterc, + FILE *outfd, const char *outfname) { FILE *inFile; @@ -1721,8 +1706,11 @@ cppit(char *imakefile, char *template, c fprintf(inFile, IncludeFmt, ImakeTmplSym) < 0 || optional_include(inFile, "IMAKE_ADMIN_MACROS", "adminmacros") || optional_include(inFile, "IMAKE_LOCAL_MACROS", "localmacros") || - fflush(inFile) || - fclose(inFile)) + fflush(inFile)) { + fclose(inFile); + LogFatal("Cannot write to %s.", masterc); + } + else if (fclose(inFile)) LogFatal("Cannot write to %s.", masterc); /* * Fork and exec cpp @@ -1737,8 +1725,8 @@ makeit(void) doit(NULL, make_argv[0], make_argv); } -char * -CleanCppInput(char *imakefile) +const char * +CleanCppInput(const char *imakefile) { FILE *outFile = NULL; FILE *inFile; @@ -1792,28 +1780,29 @@ CleanCppInput(char *imakefile) strcmp(ptoken, "pragma") && strcmp(ptoken, "undef")) { if (outFile == NULL) { -#ifdef HAS_MKSTEMP +#ifdef HAVE_MKSTEMP int fd; #endif - tmpImakefile = Strdup(tmpImakefile); -#ifndef HAS_MKSTEMP - if (mktemp(tmpImakefile) == NULL || - (outFile = fopen(tmpImakefile, "w+")) == NULL) { + char *tmpImakefileName = Strdup(tmpImakefileTemplate); +#ifndef HAVE_MKSTEMP + if (mktemp(tmpImakefileName) == NULL || + (outFile = fopen(tmpImakefileName, "w+")) == NULL) { LogFatal("Cannot open %s for write.", - tmpImakefile); + tmpImakefileName); } #else - fd=mkstemp(tmpImakefile); + fd=mkstemp(tmpImakefileName); if (fd != -1) outFile = fdopen(fd, "w"); if (outFile == NULL) { if (fd != -1) { - unlink(tmpImakefile); close(fd); + unlink(tmpImakefileName); close(fd); } LogFatal("Cannot open %s for write.", - tmpImakefile); + tmpImakefileName); } #endif + tmpImakefile = tmpImakefileName; } writetmpfile(outFile, punwritten, pbuf-punwritten, tmpImakefile); @@ -1838,7 +1827,7 @@ CleanCppInput(char *imakefile) } void -CleanCppOutput(FILE *tmpfd, char *tmpfname) +CleanCppOutput(FILE *tmpfd, const char *tmpfname) { char *input; int blankline = 0; @@ -1960,7 +1949,7 @@ isempty(char *line) /*ARGSUSED*/ char * -ReadLine(FILE *tmpfd, char *tmpfname) +ReadLine(FILE *tmpfd, const char *tmpfname) { static boolean initialized = FALSE; static char *buf, *pline, *end; @@ -1988,10 +1977,10 @@ ReadLine(FILE *tmpfd, char *tmpfname) fseek(tmpfd, 0, 0); #if defined(SYSV) || defined(WIN32) || defined(USE_FREOPEN) tmpfd = freopen(tmpfname, "w+", tmpfd); -#ifdef WIN32 +# ifdef WIN32 if (! tmpfd) /* if failed try again */ tmpfd = freopen(tmpfname, "w+", fp); -#endif +# endif if (! tmpfd) LogFatal("cannot reopen %s\n", tmpfname); #else /* !SYSV */ @@ -1999,8 +1988,6 @@ ReadLine(FILE *tmpfd, char *tmpfname) #endif /* !SYSV */ initialized = TRUE; fprintf (tmpfd, "# Makefile generated by imake - do not edit!\n"); - fprintf (tmpfd, "# %s\n", - "$Xorg: imake.c,v 1.6 2001/02/09 02:03:15 xorgcvs Exp $"); } for (p1 = pline; p1 < end; p1++) { @@ -2036,7 +2023,7 @@ ReadLine(FILE *tmpfd, char *tmpfname) } void -writetmpfile(FILE *fd, char *buf, int cnt, char *fname) +writetmpfile(FILE *fd, const char *buf, int cnt, const char *fname) { if (fwrite(buf, sizeof(char), cnt, fd) == -1) LogFatal("Cannot write to %s.", fname); @@ -2048,7 +2035,7 @@ Emalloc(int size) char *p; if ((p = malloc(size)) == NULL) - LogFatalI("Cannot allocate %d bytes", size); + LogFatal("Cannot allocate %d bytes", size); return(p); } @@ -2066,10 +2053,10 @@ KludgeOutputLine(char **pline) break; case ' ': /*May need a tab*/ default: -#ifdef CROSSCOMPILE +# ifdef CROSSCOMPILE if (inline_syntax) -#endif -#if defined CROSSCOMPILE || defined INLINE_SYNTAX +# endif +# if defined CROSSCOMPILE || defined INLINE_SYNTAX { if (*p == '<' && p[1] == '<') { /* inline file close */ InInline--; @@ -2077,7 +2064,7 @@ KludgeOutputLine(char **pline) break; } } -#endif +# endif /* * The following cases should not be treated as beginning of * rules: @@ -2116,26 +2103,26 @@ KludgeOutputLine(char **pline) quotechar = ']'; break; case '=': -#ifdef CROSSCOMPILE +# ifdef CROSSCOMPILE if (remove_cpp_leadspace) -#endif -#if defined CROSSCOMPILE || defined REMOVE_CPP_LEADSPACE +# endif +# if defined CROSSCOMPILE || defined REMOVE_CPP_LEADSPACE { if (!InRule && **pline == ' ') { while (**pline == ' ') (*pline)++; } } -#endif +# endif goto breakfor; -#if defined CROSSCOMPILE || defined INLINE_SYNTAX +# if defined CROSSCOMPILE || defined INLINE_SYNTAX case '<': if (inline_syntax) { if (p[1] == '<') /* inline file start */ InInline++; } break; -#endif +# endif case ':': if (p[1] == '=') goto breakfor; @@ -2159,7 +2146,7 @@ KludgeResetRule(void) } #endif char * -Strdup(char *cp) +Strdup(const char *cp) { char *new = Emalloc(strlen(cp) + 1); --------------070503020006040608090505-- From x2go@ymir Tue Jan 28 19:41:39 2014 Received: (at 412) by bugs.x2go.org; 28 Jan 2014 18:41:55 +0000 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on ymir.das-netzwerkteam.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,NO_RELAYS autolearn=unavailable version=3.3.2 Received: by ymir (Postfix, from userid 1005) id 5FCB05DB20; Tue, 28 Jan 2014 19:41:39 +0100 (CET) From: Mike Gabriel To: 412-submitter@bugs.x2go.org Cc: control@bugs.x2go.org, 412@bugs.x2go.org Subject: X2Go issue (in src:nx-libs) has been marked as pending for release Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit X-Mailer: http://snipr.com/post-receive-tag-pending Message-Id: <20140128184139.5FCB05DB20@ymir> Date: Tue, 28 Jan 2014 19:41:39 +0100 (CET) tag #412 pending fixed #412 2:3.5.0.23 thanks Hello, X2Go issue #412 (src:nx-libs) reported by you has been fixed in X2Go Git. You can see the changelog below, and you can check the diff of the fix at: http://code.x2go.org/gitweb?p=nx-libs.git;a=commitdiff;h=fc91d4d The issue will most likely be fixed in src:nx-libs (2:3.5.0.23). light+love X2Go Git Admin (on behalf of the sender of this mail) --- commit fc91d4d04074935602aeb3eb5f2cc785fc813c82 Author: Mike Gabriel Date: Tue Jan 28 19:41:15 2014 +0100 Add patch: 055_nx-X11_imake-Werror-format-security.full.patch. Fix FTBFS of imake on current Fedora rawhide (21) which uses the compiler option -Werror=format-security for all builds. (Fixes: #412). diff --git a/debian/changelog b/debian/changelog index e3bde88..8b1a782 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,6 +3,9 @@ nx-libs (2:3.5.0.23-0x2go1) UNRELEASED; urgency=low [ Orion Poplawski ] * Add patch: 054_nx-X11_ppc64-ftbfs.full.patch. Fix FTBFS on ppc64 architecture. (Fixes: #411). + * Add patch: 055_nx-X11_imake-Werror-format-security.full.patch. Fix FTBFS + of imake on current Fedora rawhide (21) which uses the compiler option + -Werror=format-security for all builds. (Fixes: #412). -- Mike Gabriel Sat, 04 Jan 2014 22:02:16 +0100 From x2go@ymir.das-netzwerkteam.de Tue May 6 18:07:37 2014 Received: (at 412) by bugs.x2go.org; 6 May 2014 16:07:53 +0000 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on ymir.das-netzwerkteam.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,NO_RELAYS, URIBL_BLOCKED autolearn=unavailable version=3.3.2 Received: by ymir.das-netzwerkteam.de (Postfix, from userid 1005) id 282D53D163; Tue, 6 May 2014 18:07:37 +0200 (CEST) From: Mike Gabriel To: 412-submitter@bugs.x2go.org Cc: control@bugs.x2go.org, 412@bugs.x2go.org Subject: X2Go issue (in src:nx-libs) has been marked as closed Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit Message-Id: <20140506160737.282D53D163@ymir.das-netzwerkteam.de> Date: Tue, 6 May 2014 18:07:37 +0200 (CEST) close #412 thanks Hello, we are very hopeful that X2Go issue #412 reported by you has been resolved in the new release (2:3.5.0.23) of the X2Go source project »src:nx-libs«. You can view the complete changelog entry of src:nx-libs (2:3.5.0.23) below, and you can use the following link to view all the code changes between this and the last release of src:nx-libs. http://code.x2go.org/gitweb?p=nx-libs.git;a=commitdiff;h=fdeaafb5e2f4520857ca4757261df79d233e05cb;hp=626b5dbae6b7b432d573f88abc8e3e8ae2bdba85 If you feel that the issue has not been resolved satisfyingly, feel free to reopen this bug report or submit a follow-up report with further observations described based on the new released version of src:nx-libs. Thanks a lot for contributing to X2Go!!! light+love X2Go Git Admin (on behalf of the sender of this mail) --- X2Go Component: src:nx-libs Version: 2:3.5.0.23-0x2go1 Status: RELEASE Date: Tue, 06 May 2014 18:05:47 +0200 Fixes: 393 411 412 423 Changes: nx-libs (2:3.5.0.23-0x2go1) RELEASED; urgency=low . [ Orion Poplawski ] * Add patch: 054_nx-X11_ppc64-ftbfs.full.patch. Fix FTBFS on ppc64 architecture. (Fixes: #411). * Add patch: 055_nx-X11_imake-Werror-format-security.full.patch. Fix FTBFS of imake on current Fedora rawhide (21) which uses the compiler option -Werror=format-security for all builds. (Fixes: #412). * Add patch: 056_nx-X11-Werror-format-security.patch. Fix more -Werror=format-security errors that only show up on ARM builds. (Fixes: #423). * nx-libs.spec: - Sync nx-libs.spec in Fedora with upstream's nx-libs.spec file. (Fixes: #393). . [ Mike Gabriel ] * debian/control: + Build our imake against x11proto-core-dev headers. * nx-libs.spec: + Build our imake against xorg-x11-proto-devel. . [ Oleksandr Shneyder ] * Add patch: 205_nxagent_refresh-adsl.full.patch. Fix refresh error on RDP connections to Windows 2012 if speed=ADSL. From x2go@ymir.das-netzwerkteam.de Tue May 6 18:07:35 2014 Received: (at 412) by bugs.x2go.org; 6 May 2014 16:08:24 +0000 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on ymir.das-netzwerkteam.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,NO_RELAYS, URIBL_BLOCKED autolearn=ham version=3.3.2 Received: by ymir.das-netzwerkteam.de (Postfix, from userid 1005) id CE20E5DB1C; Tue, 6 May 2014 18:07:35 +0200 (CEST) From: Mike Gabriel To: 412-submitter@bugs.x2go.org Cc: control@bugs.x2go.org, 412@bugs.x2go.org Subject: X2Go issue (in src:nx-libs) has been marked as closed Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit Message-Id: <20140506160735.CE20E5DB1C@ymir.das-netzwerkteam.de> Date: Tue, 6 May 2014 18:07:35 +0200 (CEST) close #412 thanks Hello, we are very hopeful that X2Go issue #412 reported by you has been resolved in the new release (2:3.5.0.23) of the X2Go source project »src:nx-libs«. You can view the complete changelog entry of src:nx-libs (2:3.5.0.23) below, and you can use the following link to view all the code changes between this and the last release of src:nx-libs. http://code.x2go.org/gitweb?p=nx-libs.git;a=commitdiff;h=4f56401ad0df9cf6380910418e283267a04bbf2e;hp=626b5dbae6b7b432d573f88abc8e3e8ae2bdba85 If you feel that the issue has not been resolved satisfyingly, feel free to reopen this bug report or submit a follow-up report with further observations described based on the new released version of src:nx-libs. Thanks a lot for contributing to X2Go!!! light+love X2Go Git Admin (on behalf of the sender of this mail) --- X2Go Component: src:nx-libs Version: 2:3.5.0.23-0x2go1 Status: RELEASE Date: Tue, 06 May 2014 18:05:47 +0200 Fixes: 393 411 412 423 Changes: nx-libs (2:3.5.0.23-0x2go1) RELEASED; urgency=low . [ Orion Poplawski ] * Add patch: 054_nx-X11_ppc64-ftbfs.full.patch. Fix FTBFS on ppc64 architecture. (Fixes: #411). * Add patch: 055_nx-X11_imake-Werror-format-security.full.patch. Fix FTBFS of imake on current Fedora rawhide (21) which uses the compiler option -Werror=format-security for all builds. (Fixes: #412). * Add patch: 056_nx-X11-Werror-format-security.patch. Fix more -Werror=format-security errors that only show up on ARM builds. (Fixes: #423). * nx-libs.spec: - Sync nx-libs.spec in Fedora with upstream's nx-libs.spec file. (Fixes: #393). . [ Mike Gabriel ] * debian/control: + Build our imake against x11proto-core-dev headers. * nx-libs.spec: + Build our imake against xorg-x11-proto-devel. . [ Oleksandr Shneyder ] * Add patch: 205_nxagent_refresh-adsl.full.patch. Fix refresh error on RDP connections to Windows 2012 if speed=ADSL. From unknown Fri Mar 29 03:16:08 2024 MIME-Version: 1.0 X-Mailer: MIME-tools 5.502 (Entity 5.502) X-Loop: owner@bugs.x2go.org From: owner@bugs.x2go.org (X2Go Bug Tracking System) Subject: Bug#412 closed by Mike Gabriel (X2Go issue (in src:nx-libs) has been marked as closed) Message-ID: References: <20140506160737.282D53D163@ymir.das-netzwerkteam.de> X-X2go-PR-Keywords: pending X-X2go-PR-Message: they-closed 412 X-X2go-PR-Package: nx-libs Date: Tue, 06 May 2014 16:10:06 +0000 Content-Type: multipart/mixed; boundary="----------=_1399392606-21422-0" This is a multi-part message in MIME format... ------------=_1399392606-21422-0 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 This is an automatic notification regarding your Bug report which was filed against the nx-libs package: #412: imake issues It has been closed by Mike Gabriel . Their explanation is attached below along with your original report. If this explanation is unsatisfactory and you have not received a better one in a separate message then please contact Mike Gabriel by replying to this email. --=20 X2Go Bug Tracking System Contact owner@bugs.x2go.org with problems ------------=_1399392606-21422-0 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at control) by bugs.x2go.org; 6 May 2014 16:07:52 +0000 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on ymir.das-netzwerkteam.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,NO_RELAYS, URIBL_BLOCKED autolearn=unavailable version=3.3.2 Received: by ymir.das-netzwerkteam.de (Postfix, from userid 1005) id 282D53D163; Tue, 6 May 2014 18:07:37 +0200 (CEST) From: Mike Gabriel To: 412-submitter@bugs.x2go.org Cc: control@bugs.x2go.org, 412@bugs.x2go.org Subject: X2Go issue (in src:nx-libs) has been marked as closed Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit Message-Id: <20140506160737.282D53D163@ymir.das-netzwerkteam.de> Date: Tue, 6 May 2014 18:07:37 +0200 (CEST) close #412 thanks Hello, we are very hopeful that X2Go issue #412 reported by you has been resolved in the new release (2:3.5.0.23) of the X2Go source project »src:nx-libs«. You can view the complete changelog entry of src:nx-libs (2:3.5.0.23) below, and you can use the following link to view all the code changes between this and the last release of src:nx-libs. http://code.x2go.org/gitweb?p=nx-libs.git;a=commitdiff;h=fdeaafb5e2f4520857ca4757261df79d233e05cb;hp=626b5dbae6b7b432d573f88abc8e3e8ae2bdba85 If you feel that the issue has not been resolved satisfyingly, feel free to reopen this bug report or submit a follow-up report with further observations described based on the new released version of src:nx-libs. Thanks a lot for contributing to X2Go!!! light+love X2Go Git Admin (on behalf of the sender of this mail) --- X2Go Component: src:nx-libs Version: 2:3.5.0.23-0x2go1 Status: RELEASE Date: Tue, 06 May 2014 18:05:47 +0200 Fixes: 393 411 412 423 Changes: nx-libs (2:3.5.0.23-0x2go1) RELEASED; urgency=low . [ Orion Poplawski ] * Add patch: 054_nx-X11_ppc64-ftbfs.full.patch. Fix FTBFS on ppc64 architecture. (Fixes: #411). * Add patch: 055_nx-X11_imake-Werror-format-security.full.patch. Fix FTBFS of imake on current Fedora rawhide (21) which uses the compiler option -Werror=format-security for all builds. (Fixes: #412). * Add patch: 056_nx-X11-Werror-format-security.patch. Fix more -Werror=format-security errors that only show up on ARM builds. (Fixes: #423). * nx-libs.spec: - Sync nx-libs.spec in Fedora with upstream's nx-libs.spec file. (Fixes: #393). . [ Mike Gabriel ] * debian/control: + Build our imake against x11proto-core-dev headers. * nx-libs.spec: + Build our imake against xorg-x11-proto-devel. . [ Oleksandr Shneyder ] * Add patch: 205_nxagent_refresh-adsl.full.patch. Fix refresh error on RDP connections to Windows 2012 if speed=ADSL. ------------=_1399392606-21422-0 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by bugs.x2go.org; 24 Jan 2014 21:01:07 +0000 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on ymir.das-netzwerkteam.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_DKIM_INVALID autolearn=ham version=3.3.2 Received: from mail.cora.nwra.com (mercury.cora.nwra.com [4.28.99.165]) by ymir (Postfix) with ESMTPS id BDEFA5DA79 for ; Fri, 24 Jan 2014 22:01:04 +0100 (CET) Received: from [10.10.20.7] (barry.cora.nwra.com [10.10.20.7]) (authenticated bits=0) by mail.cora.nwra.com (8.14.4/8.14.4) with ESMTP id s0OL12wl025489 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO) for ; Fri, 24 Jan 2014 14:01:02 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=cora.nwra.com; s=default; t=1390597262; bh=uEw0p33lrW2DXzgyJXb1UrFdq4FhrtxG+RiVEVFHvQQ=; h=Message-ID:Date:From:MIME-Version:To:Subject:Content-Type; b=EGabkfyl7LVptd/9TE0fTkCR5e6idNeVIGIZCMvzL/eqKtXPkUjopk/7hI+iiBJm/ CfZAqO/SgxXyp1jDtNDenZvEp92s3Z8UEAeIBSrCQZFbWxcpjcmmHApk1BcF9XccDY Zrg+s0xzDYm/5onVgjZud9raFfs0OJmczw6vII+w= Message-ID: <52E2D48E.2060603@cora.nwra.com> Date: Fri, 24 Jan 2014 14:01:02 -0700 From: Orion Poplawski User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 MIME-Version: 1.0 To: submit@bugs.x2go.org Subject: imake issues X-Enigmail-Version: 1.6 Content-Type: multipart/mixed; boundary="------------070503020006040608090505" This is a multi-part message in MIME format. --------------070503020006040608090505 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Package: nx-libs Version: 3.5.0.22 The imake in 3.5.0.22 does not compile in current Fedora rawhide due to the use of -Werror=format-security: make[4]: Entering directory `/builddir/build/BUILD/nx-libs-3.5.0.22/nx-X11/config/imake' gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard -I../../include -I../../exports/include/X11 -I../.. -I../../exports/include -Dlinux -D__arm__ -D__arm32__ -U__arm -Uarm -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -DCPP_PROGRAM="\"cpp\"" -DHAS_MERGE_CONSTANTS=`if gcc -fmerge-constants -xc /dev/null -S -o /dev/null 2> /dev/null 1> /dev/null; then echo 1; else echo 0; fi` -DMONOLITH -c -o imake.o imake.c imake.c: In function 'get_libc_version': imake.c:1018:5: error: format not a string literal and no format arguments [-Werror=format-security] fprintf (inFile, command); ^ imake.c: In function 'get_ld_version': imake.c:1135:5: warning: ignoring return value of 'fscanf', declared with attribute warn_unused_result [-Wunused-result] (void) fscanf (ldprog, "%d.%d", &ldmajor, &ldminor); ^ imake.c: In function 'ReadLine': imake.c:1998:12: warning: ignoring return value of 'ftruncate', declared with attribute warn_unused_result [-Wunused-result] ftruncate(fileno(tmpfd), (off_t) 0); ^ cc1: some warnings being treated as errors make[4]: *** [imake.o] Error 1 Ideally, I would like to avoid building a local imake altogether and just use the system imake, but I have been unable to figure out how to do that yet. In the meantime, I'm patching imake.c as attached to bring it up to the version that is in Fedora Rawhide. -- Orion Poplawski Technical Manager 303-415-9701 x222 NWRA, Boulder/CoRA Office FAX: 303-415-9702 3380 Mitchell Lane orion@nwra.com Boulder, CO 80301 http://www.nwra.com --------------070503020006040608090505 Content-Type: text/x-patch; name="nx-libs-imake.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="nx-libs-imake.patch" diff -up nx-libs-3.5.0.22/nx-X11/config/imake/imake.c.imake nx-libs-3.5.0.22/nx-X11/config/imake/imake.c --- nx-libs-3.5.0.22/nx-X11/config/imake/imake.c.imake 2014-01-04 13:39:35.000000000 -0700 +++ nx-libs-3.5.0.22/nx-X11/config/imake/imake.c 2014-01-24 13:55:53.940697330 -0700 @@ -7,8 +7,6 @@ * be passed to the template file. * * * ***************************************************************************/ -/* $XFree86: xc/config/imake/imake.c,v 3.63tsi Exp $ */ - /* * Copyright (c) 1985, 1986, 1987, 1998 The Open Group @@ -153,23 +151,14 @@ in this Software without prior written a #endif #include #include -#ifdef MONOLITH -# include "Xosdefs.h" -#else -# include -#endif +#include +#include +#include #include #include #ifdef WIN32 # include "Xw32defs.h" #endif -#if 0 -#ifndef X_NOT_POSIX -# ifndef _POSIX_SOURCE -# define _POSIX_SOURCE -# endif -#endif -#endif #include #include #ifdef X_NOT_POSIX @@ -231,22 +220,16 @@ typedef union wait waitType; # define WIFEXITED(w) waitCode(w) # endif #endif /* X_NOT_POSIX */ -# include -#if defined(macII) && !defined(__STDC__) /* stdlib.h fails to define these */ -char *malloc(), *realloc(); -#endif /* macII */ +#include #include #ifdef __minix_vmd -#define USE_FREOPEN 1 +# define USE_FREOPEN 1 #endif -#if !((defined(sun) && !defined(SVR4)) || defined(macII)) -#define USE_STRERROR 1 -#endif #ifndef WIN32 -#include +# include #else -#include +# include #endif #ifndef SYS_NMLN # ifdef _SYS_NMLN @@ -256,39 +239,22 @@ char *malloc(), *realloc(); # endif #endif #if defined(linux) || defined(__GNU__) || defined(__GLIBC__) -#include -#include +# include +# include #endif #ifdef __QNX__ -#include -#endif - -/* - * This define of strerror is copied from (and should be identical to) - * Xos.h, which we don't want to include here for bootstrapping reasons. - */ -#ifndef USE_STRERROR -# ifndef strerror -extern char *sys_errlist[]; -extern int sys_nerr; -# define strerror(n) \ - (((n) >= 0 && (n) < sys_nerr) ? sys_errlist[n] : "unknown error") -# endif +# include #endif #if defined(__NetBSD__) /* see code clock in init() below */ -#include -#endif - -#if !(defined(Lynx) || defined(__Lynx__) || (defined(SVR4) && !defined(sun))) && !defined (__CYGWIN__) -#define HAS_MKSTEMP +# include #endif typedef unsigned char boolean; #define TRUE 1 #define FALSE 0 -# include "imakemdep.h" +#include "imakemdep.h" #ifdef CROSSCOMPILE # include "imakemdep_cpp.h" #endif @@ -305,7 +271,7 @@ int xvariables[10]; #endif #ifndef PATH_MAX -#define PATH_MAX 1024 +# define PATH_MAX 1024 #endif /* @@ -331,11 +297,13 @@ void KludgeOutputLine(char **), KludgeRe # endif #endif -char *cpp = NULL; +const char *cpp = NULL; -char *tmpMakefile = "/tmp/Imf.XXXXXX"; -char *tmpImakefile = "/tmp/IIf.XXXXXX"; -char *make_argv[ ARGUMENTS ] = { +const char *tmpMakefile; +const char *tmpMakefileTemplate = "/tmp/Imf.XXXXXX"; +const char *tmpImakefile; +const char *tmpImakefileTemplate = "/tmp/IIf.XXXXXX"; +const char *make_argv[ ARGUMENTS ] = { #ifdef WIN32 "nmake" #else @@ -345,53 +313,53 @@ char *make_argv[ ARGUMENTS ] = { int make_argindex; int cpp_argindex; -char *Imakefile = NULL; -char *Makefile = "Makefile"; -char *Template = "Imake.tmpl"; -char *ImakefileC = "Imakefile.c"; +const char *Imakefile = NULL; +const char *Makefile = "Makefile"; +const char *Template = "Imake.tmpl"; +const char *ImakefileC = "Imakefile.c"; boolean haveImakefileC = FALSE; -char *cleanedImakefile = NULL; -char *program; -char *FindImakefile(char *Imakefile); -char *ReadLine(FILE *tmpfd, char *tmpfname); -char *CleanCppInput(char *imakefile); -char *Strdup(char *cp); +const char *cleanedImakefile = NULL; +const char *program; +const char *FindImakefile(const char *Imakefile); +char *ReadLine(FILE *tmpfd, const char *tmpfname); +const char *CleanCppInput(const char *imakefile); +char *Strdup(const char *cp); char *Emalloc(int size); -void LogFatalI(char *s, int i), LogFatal(char *x0, char *x1), - LogMsg(char *x0, char *x1); +void LogFatal(const char *x0, ...) _X_ATTRIBUTE_PRINTF(1, 2); +void LogMsg(const char *x0, ...) _X_ATTRIBUTE_PRINTF(1, 2); void showit(FILE *fd); void wrapup(void); void init(void); -void AddMakeArg(char *arg); -void AddCppArg(char *arg); +void AddMakeArg(const char *arg); +void AddCppArg(const char *arg); #ifdef CROSSCOMPILE char *CrossCompileCPP(void); #endif void SetOpts(int argc, char **argv); -void CheckImakefileC(char *masterc); -void cppit(char *imakefile, char *template, char *masterc, - FILE *outfd, char *outfname); +void CheckImakefileC(const char *masterc); +void cppit(const char *imakefile, const char *template, const char *masterc, + FILE *outfd, const char *outfname); void makeit(void); -void CleanCppOutput(FILE *tmpfd, char *tmpfname); +void CleanCppOutput(FILE *tmpfd, const char *tmpfname); boolean isempty(char *line); -void writetmpfile(FILE *fd, char *buf, int cnt, char *fname); +void writetmpfile(FILE *fd, const char *buf, int cnt, const char *fname); #ifdef SIGNALRETURNSINT int catch(int sig); #else void catch(int sig); #endif -void showargs(char **argv); -boolean optional_include(FILE *inFile, char *defsym, char *fname); -void doit(FILE *outfd, char *cmd, char **argv); +void showargs(const char **argv); +boolean optional_include(FILE *inFile, const char *defsym, const char *fname); +void doit(FILE *outfd, const char *cmd, const char **argv); boolean define_os_defaults(FILE *inFile); #ifdef CROSSCOMPILE static void get_cross_compile_dir(FILE *inFile); #endif #ifdef CROSSCOMPILEDIR -char *CrossCompileDir = CROSSCOMPILEDIR; +const char *CrossCompileDir = CROSSCOMPILEDIR; #else -char *CrossCompileDir = ""; +const char *CrossCompileDir = ""; #endif boolean CrossCompiling = FALSE; @@ -428,24 +396,25 @@ main(int argc, char *argv[]) if ((tmpfd = fopen(tmpMakefile, "w+")) == NULL) LogFatal("Cannot create temporary file %s.", tmpMakefile); } else { -#ifdef HAS_MKSTEMP +#ifdef HAVE_MKSTEMP int fd; #endif - tmpMakefile = Strdup(tmpMakefile); -#ifndef HAS_MKSTEMP - if (mktemp(tmpMakefile) == NULL || - (tmpfd = fopen(tmpMakefile, "w+")) == NULL) { - LogFatal("Cannot create temporary file %s.", tmpMakefile); + char *tmpMakefileName = Strdup(tmpMakefileTemplate); +#ifndef HAVE_MKSTEMP + if (mktemp(tmpMakefileName) == NULL || + (tmpfd = fopen(tmpMakefileName, "w+")) == NULL) { + LogFatal("Cannot create temporary file %s.", tmpMakefileName); } #else - fd = mkstemp(tmpMakefile); + fd = mkstemp(tmpMakefileName); if (fd == -1 || (tmpfd = fdopen(fd, "w+")) == NULL) { if (fd != -1) { - unlink(tmpMakefile); close(fd); + unlink(tmpMakefileName); close(fd); } - LogFatal("Cannot create temporary file %s.", tmpMakefile); + LogFatal("Cannot create temporary file %s.", tmpMakefileName); } #endif + tmpMakefile = tmpMakefileName; } AddMakeArg("-f"); AddMakeArg( tmpMakefile ); @@ -498,7 +467,7 @@ void catch(int sig) { errno = 0; - LogFatalI("Signal %d.", sig); + LogFatal("Signal %d.", sig); } /* @@ -572,21 +541,21 @@ init(void) } void -AddMakeArg(char *arg) +AddMakeArg(const char *arg) { errno = 0; if (make_argindex >= ARGUMENTS-1) - LogFatal("Out of internal storage.", ""); + LogFatal("Out of internal storage."); make_argv[ make_argindex++ ] = arg; make_argv[ make_argindex ] = NULL; } void -AddCppArg(char *arg) +AddCppArg(const char *arg) { errno = 0; if (cpp_argindex >= ARGUMENTS-1) - LogFatal("Out of internal storage.", ""); + LogFatal("Out of internal storage."); cpp_argv[ cpp_argindex++ ] = arg; cpp_argv[ cpp_argindex ] = NULL; } @@ -618,7 +587,7 @@ SetOpts(int argc, char **argv) else { argc--, argv++; if (! argc) - LogFatal("No description arg after -f flag", ""); + LogFatal("No description arg after -f flag"); Imakefile = argv[0]; } } else if (argv[0][1] == 's') { @@ -628,7 +597,7 @@ SetOpts(int argc, char **argv) else { argc--, argv++; if (!argc) - LogFatal("No description arg after -s flag", ""); + LogFatal("No description arg after -s flag"); Makefile = ((argv[0][0] == '-') && !argv[0][1]) ? NULL : argv[0]; } @@ -642,7 +611,7 @@ SetOpts(int argc, char **argv) else { argc--, argv++; if (! argc) - LogFatal("No description arg after -T flag", ""); + LogFatal("No description arg after -T flag"); Template = argv[0]; } } else if (argv[0][1] == 'C') { @@ -651,7 +620,7 @@ SetOpts(int argc, char **argv) else { argc--, argv++; if (! argc) - LogFatal("No imakeCfile arg after -C flag", ""); + LogFatal("No imakeCfile arg after -C flag"); ImakefileC = argv[0]; } } else if (argv[0][1] == 'v') { @@ -667,10 +636,10 @@ SetOpts(int argc, char **argv) if (!cpp) { AddCppArg("-E"); -#ifdef __GNUC__ +# ifdef __GNUC__ if (verbose) AddCppArg("-v"); -#endif +# endif cpp = DEFAULT_CC; } # else @@ -686,8 +655,8 @@ SetOpts(int argc, char **argv) AddCppArg(ImakefileC); } -char * -FindImakefile(char *Imakefile) +const char * +FindImakefile(const char *Imakefile) { if (Imakefile) { if (access(Imakefile, R_OK) < 0) @@ -695,7 +664,7 @@ FindImakefile(char *Imakefile) } else { if (access("Imakefile", R_OK) < 0) { if (access("imakefile", R_OK) < 0) - LogFatal("No description file.", ""); + LogFatal("No description file."); else Imakefile = "imakefile"; } else @@ -704,44 +673,50 @@ FindImakefile(char *Imakefile) return(Imakefile); } -void -LogFatalI(char *s, int i) +static void _X_ATTRIBUTE_PRINTF(1, 0) +vLogMsg(const char *fmt, va_list args) { - /*NOSTRICT*/ - LogFatal(s, (char *)(long)i); + int error_number = errno; + + if (error_number) { + fprintf(stderr, "%s: ", program); + fprintf(stderr, "%s\n", strerror(error_number)); + } + fprintf(stderr, "%s: ", program); + vfprintf(stderr, fmt, args); + fprintf(stderr, "\n"); } void -LogFatal(char *x0, char *x1) +LogFatal(const char *fmt, ...) { static boolean entered = FALSE; + va_list args; if (entered) return; entered = TRUE; - LogMsg(x0, x1); + va_start(args, fmt); + vLogMsg(fmt, args); + va_end(args); fprintf(stderr, " Stop.\n"); wrapup(); exit(1); } void -LogMsg(char *x0, char *x1) +LogMsg(const char *fmt, ...) { - int error_number = errno; + va_list args; - if (error_number) { - fprintf(stderr, "%s: ", program); - fprintf(stderr, "%s\n", strerror(error_number)); - } - fprintf(stderr, "%s: ", program); - fprintf(stderr, x0, x1); - fprintf(stderr, "\n"); + va_start(args, fmt); + vLogMsg(fmt, args); + va_end(args); } void -showargs(char **argv) +showargs(const char **argv) { for (; *argv; argv++) fprintf(stderr, "%s ", *argv); @@ -751,7 +726,7 @@ showargs(char **argv) #define ImakefileCHeader "/* imake - temporary file */" void -CheckImakefileC(char *masterc) +CheckImakefileC(const char *masterc) { char mkcbuf[1024]; FILE *inFile; @@ -767,7 +742,8 @@ CheckImakefileC(char *masterc) fclose(inFile); LogFatal("Refuse to overwrite: %s", masterc); } - fclose(inFile); + else + fclose(inFile); } } @@ -778,7 +754,7 @@ CheckImakefileC(char *masterc) #define OverrideWarning "Warning: local file \"%s\" overrides global macros." boolean -optional_include(FILE *inFile, char *defsym, char *fname) +optional_include(FILE *inFile, const char *defsym, const char *fname) { errno = 0; if (access(fname, R_OK) == 0) { @@ -790,7 +766,7 @@ optional_include(FILE *inFile, char *def } void -doit(FILE *outfd, char *cmd, char **argv) +doit(FILE *outfd, const char *cmd, const char **argv) { int pid; waitType status; @@ -805,18 +781,18 @@ doit(FILE *outfd, char *cmd, char **argv if (status < 0) LogFatal("Cannot spawn %s.", cmd); if (status > 0) - LogFatalI("Exit code %d.", status); + LogFatal("Exit code %d.", status); #else pid = fork(); if (pid < 0) - LogFatal("Cannot fork.", ""); + LogFatal("Cannot fork."); if (pid) { /* parent... simply wait */ while (wait(&status) > 0) { errno = 0; if (WIFSIGNALED(status)) - LogFatalI("Signal %d.", waitSig(status)); + LogFatal("Signal %d.", waitSig(status)); if (WIFEXITED(status) && waitCode(status)) - LogFatalI("Exit code %d.", waitCode(status)); + LogFatal("Exit code %d.", waitCode(status)); } } else { /* child... dup and exec cmd */ @@ -832,7 +808,7 @@ doit(FILE *outfd, char *cmd, char **argv #if !defined WIN32 static void -parse_utsname(struct utsname *name, char *fmt, char *result, char *msg) +parse_utsname(struct utsname *name, const char *fmt, char *result, const char *msg) { char buf[SYS_NMLN * 5 + 1]; char *ptr = buf; @@ -892,7 +868,7 @@ parse_utsname(struct utsname *name, char /* Just in case... */ if (strlen(buf) >= sizeof(buf)) - LogFatal("Buffer overflow parsing uname.", ""); + LogFatal("Buffer overflow parsing uname."); /* Parse the buffer. The sscanf() return value is rarely correct. */ *result = '\0'; @@ -978,13 +954,23 @@ const char *libc_c= static void get_libc_version(FILE *inFile) { - char aout[] = "/tmp/imakeXXXXXX"; + char aout[4096], *tmpdir; FILE *fp; const char *format = "%s -o %s -x c -"; char *cc; int len; char *command; + /* If $TMPDIR is defined and has an acceptable length, + * use that as tmp dir, else use /tmp. That fixes + * problems with /tmp mounted "noexec". + */ + if((tmpdir = getenv("TMPDIR")) != NULL && strlen(tmpdir) < (4096-13)) + strcpy(aout, tmpdir); + else + strcpy(aout, "/tmp"); + strcat(aout, "/imakeXXXXXX"); + /* Pre-create temp file safely */ { /* Linux + ELF has mkstemp() */ @@ -1000,7 +986,8 @@ get_libc_version(FILE *inFile) cc = "gcc"; len = strlen (aout) + strlen (format) + strlen (cc); if (len < 128) len = 128; - command = alloca (len); + if((command = alloca (len)) == NULL) + abort(); if (snprintf (command , len, format, cc, aout) == len) abort (); @@ -1015,12 +1002,16 @@ get_libc_version(FILE *inFile) abort (); while (fgets (command, len, fp)) - fprintf (inFile, command); + fputs (command, inFile); len = pclose (fp); remove (aout); - if (len) - abort (); + if (len) { + /* handwave furiously */ + printf("#define DefaultLinuxCLibMajorVersion 6\n"); + printf("#define DefaultLinuxCLibMinorVersion 12\n"); + printf("#define DefaultLinuxCLibTeenyVersion 0\n"); + } } #endif @@ -1031,14 +1022,14 @@ get_stackprotector(FILE *inFile) FILE *fp; char *cc; char command[1024], buf[1024]; - + cc = getenv("CC"); if (cc == NULL) { cc = "cc"; } snprintf(command, sizeof(command), "%s -v 2>&1", cc); fp = popen(command, "r"); - if (fp == NULL) + if (fp == NULL) abort(); while (fgets(buf, sizeof(buf), fp)) { if (strstr(buf, "propolice") != NULL) { @@ -1046,11 +1037,10 @@ get_stackprotector(FILE *inFile) break; } } - if (pclose(fp)) - abort(); + pclose(fp); } #endif - + #if defined CROSSCOMPILE || defined linux || defined(__GLIBC__) static void @@ -1058,9 +1048,9 @@ get_distrib(FILE *inFile) { struct stat sb; - static char* suse = "/etc/SuSE-release"; - static char* redhat = "/etc/redhat-release"; - static char* debian = "/etc/debian_version"; + static const char* suse = "/etc/SuSE-release"; + static const char* redhat = "/etc/redhat-release"; + static const char* debian = "/etc/debian_version"; fprintf (inFile, "%s\n", "#define LinuxUnknown 0"); fprintf (inFile, "%s\n", "#define LinuxSuSE 1"); @@ -1076,14 +1066,14 @@ get_distrib(FILE *inFile) fprintf (inFile, "%s\n", "#define LinuxWare 11"); fprintf (inFile, "%s\n", "#define LinuxYggdrasil 12"); -#ifdef CROSSCOMPILE +# ifdef CROSSCOMPILE if (CrossCompiling) { fprintf (inFile, "%s\n", "#define DefaultLinuxDistribution LinuxUnknown"); fprintf (inFile, "%s\n", "#define DefaultLinuxDistName Unknown"); return; } -#endif +# endif if (lstat (suse, &sb) == 0) { fprintf (inFile, "%s\n", "#define DefaultLinuxDistribution LinuxSuSE"); fprintf (inFile, "%s\n", "#define DefaultLinuxDistName SuSE"); @@ -1116,7 +1106,7 @@ get_ld_version(FILE *inFile) int ldmajor, ldminor; const char *ld = "ld -v"; -#ifdef CROSSCOMPILE +# ifdef CROSSCOMPILE if (CrossCompiling) { char cmd[PATH_MAX]; strcpy (cmd, CrossCompileDir); @@ -1124,7 +1114,7 @@ get_ld_version(FILE *inFile) strcat (cmd,ld); ldprog = popen (cmd, "r"); } else -#endif +# endif ldprog = popen (ld, "r"); if (ldprog) { @@ -1192,7 +1182,7 @@ get_binary_format(FILE *inFile) * Returns: 0 if successful, -1 if not. */ static int -ask_sun_compiler_for_versions(const char *cmd, const char *path, +ask_sun_compiler_for_versions(const char *cmd, const char *path, int *cmajor, int *cminor) { char buf[BUFSIZ]; @@ -1201,7 +1191,7 @@ ask_sun_compiler_for_versions(const char FILE* ccproc; const char vflag[] = " -V 2>&1"; int retval = -1; - + int len = strlen(cmd) + sizeof(vflag); if (path != NULL) { @@ -1229,7 +1219,7 @@ ask_sun_compiler_for_versions(const char } } if (retval != 0) { - fprintf(stderr, + fprintf(stderr, "warning: could not parse version number in output of:\n" " %s\n", cmdtorun); } @@ -1247,23 +1237,22 @@ get_sun_compiler_versions (FILE *inFile) { const char* sunpro_path = "/opt/SUNWspro/bin"; int cmajor, cminor, found = 0; - struct stat sb; /* If cross-compiling, only check CrossCompilerDir for compilers. - * If not cross-compiling, first check cc in users $PATH, + * If not cross-compiling, first check cc in users $PATH, * then try /opt/SUNWspro if not found in the users $PATH */ -#if defined CROSSCOMPILE +# if defined CROSSCOMPILE if (CrossCompiling) { if (ask_sun_compiler_for_versions("cc", CrossCompileDir, &cmajor, &cminor) == 0) { found = 1; } - } + } else -#endif - { +# endif + { if (ask_sun_compiler_for_versions("cc", NULL, &cmajor, &cminor) == 0) { found = 1; } else if (ask_sun_compiler_for_versions("cc", sunpro_path, @@ -1282,22 +1271,22 @@ get_sun_compiler_versions (FILE *inFile) /* Now do it again for C++ compiler (CC) */ found = 0; -#if defined CROSSCOMPILE +# if defined CROSSCOMPILE if (CrossCompiling) { if (ask_sun_compiler_for_versions("CC", CrossCompileDir, &cmajor, &cminor) == 0) { found = 1; } - } + } else -#endif - { +# endif + { if (ask_sun_compiler_for_versions("CC", NULL, &cmajor, &cminor) == 0) { found = 1; } else if (ask_sun_compiler_for_versions("CC", sunpro_path, &cmajor, &cminor) == 0) { found = 1; - fprintf(inFile, + fprintf(inFile, "#define DefaultSunProCplusplusCompilerDir %s", sunpro_path); } } @@ -1318,7 +1307,7 @@ static void get_gcc_version(FILE *inFile, char *name) { fprintf (inFile, "#define HasGcc 1\n"); -#ifdef CROSSCOMPILE +# ifdef CROSSCOMPILE if (CrossCompiling) { if (gnu_c > 1) { @@ -1329,20 +1318,20 @@ get_gcc_version(FILE *inFile, char *name fprintf (inFile, "#define GccMajorVersion %d\n", gnu_c); fprintf (inFile, "#define GccMinorVersion %d\n", gnu_c_minor); } else -#endif +# endif { -#if __GNUC__ > 1 +# if __GNUC__ > 1 fprintf (inFile, "#define HasGcc2 1\n"); -# if __GNUC__ > 2 +# if __GNUC__ > 2 fprintf (inFile, "#define HasGcc3 1\n"); +# endif # endif -#endif fprintf (inFile, "#define GccMajorVersion %d\n", __GNUC__); fprintf (inFile, "#define GccMinorVersion %d\n", __GNUC_MINOR__); } -#if defined(HAS_MERGE_CONSTANTS) +# if defined(HAS_MERGE_CONSTANTS) fprintf (inFile, "#define HasGccMergeConstants %d\n", HAS_MERGE_CONSTANTS); -#endif +# endif } #endif @@ -1350,8 +1339,8 @@ static boolean get_gcc(char *cmd) { struct stat sb; - static char* gcc_path[] = { -# if defined(linux) || \ + static const char* gcc_path[] = { +#if defined(linux) || \ defined(__NetBSD__) || \ defined(__OpenBSD__) || \ defined(__FreeBSD__) || \ @@ -1362,14 +1351,14 @@ get_gcc(char *cmd) defined(__GNU__) || \ defined(__GLIBC__) "/usr/bin/cc", /* for Linux PostIncDir */ -# endif +#endif "/usr/local/bin/gcc", "/opt/gnu/bin/gcc", "/usr/pkg/bin/gcc" }; #ifdef CROSSCOMPILE - static char* cross_cc_name[] = { + static const char* cross_cc_name[] = { "cc", "gcc" }; @@ -1399,7 +1388,7 @@ get_gcc(char *cmd) return FALSE; } -#if defined CROSSCOMPILE || !defined __UNIXOS2__ +#ifdef CROSSCOMPILE static void get_gcc_incdir(FILE *inFile, char* name) { @@ -1428,14 +1417,14 @@ get_gcc_incdir(FILE *inFile, char* name) boolean define_os_defaults(FILE *inFile) { -#if defined CROSSCOMPILE || ( !defined(WIN32) && !defined(__UNIXOS2__) ) -#ifdef CROSSCOMPILE -#ifdef __GNUC__ +#if defined CROSSCOMPILE || !defined(WIN32) +# ifdef CROSSCOMPILE +# ifdef __GNUC__ if (1) -#else +# else if ((sys != win32) && (sys != emx)) -#endif -#endif +# endif +# endif { # if (defined(DEFAULT_OS_NAME) || defined(DEFAULT_OS_MAJOR_REV) || \ defined(DEFAULT_OS_MINOR_REV) || defined(DEFAULT_OS_TEENY_REV)) @@ -1444,16 +1433,16 @@ define_os_defaults(FILE *inFile) char buf[SYS_NMLN * 5 + 1]; /* Obtain the system information. */ -#ifdef CROSSCOMPILE +# ifdef CROSSCOMPILE if (!CrossCompiling) -#endif +# endif { if (uname(&uts_name) < 0) - LogFatal("Cannot invoke uname", ""); + LogFatal("Cannot invoke uname"); else name = &uts_name; } -#if defined CROSSCOMPILE && (defined linux || defined(__GLIBC__)) +# if defined CROSSCOMPILE && (defined linux || defined(__GLIBC__)) else { strncpy(uts_name.sysname,cross_uts_sysname,SYS_NMLN); strncpy(uts_name.release,cross_uts_release,SYS_NMLN); @@ -1461,14 +1450,14 @@ define_os_defaults(FILE *inFile) strncpy(uts_name.machine,cross_uts_machine,SYS_NMLN); name = &uts_name; } -#endif -# ifdef __FreeBSD__ +# endif +# ifdef __FreeBSD__ /* Override for compiling in chroot of other OS version, such as * in the bento build cluster. */ { char *e; - if ((e = getenv("OSREL")) != NULL && + if ((e = getenv("OSREL")) != NULL && strlen(name->sysname) + strlen(e) + 1 < SYS_NMLN) { strcpy(name->release, e); strcpy(name->version, name->sysname); @@ -1476,7 +1465,7 @@ define_os_defaults(FILE *inFile) strcat(name->version, e); } } -# endif +# endif # if defined DEFAULT_OS_NAME # if defined CROSSCOMPILE @@ -1648,10 +1637,8 @@ define_os_defaults(FILE *inFile) char name[PATH_MAX]; if (get_gcc(name)) { get_gcc_version (inFile,name); -# if defined CROSSCOMPILE || !defined __UNIXOS2__ -# if defined CROSSCOMPILE +# if defined CROSSCOMPILE if (sys != emx) -# endif get_gcc_incdir(inFile,name); # endif } @@ -1664,7 +1651,7 @@ define_os_defaults(FILE *inFile) get_binary_format(inFile); # endif } -#endif /* !WIN32 && !__UNIXOS2__*/ +#endif /* !WIN32 */ #if defined WIN32 # ifdef CROSSCOMPILE else if (sys == win32 && !CrossCompiling) @@ -1688,8 +1675,6 @@ define_os_defaults(FILE *inFile) #endif /* WIN32 */ #ifdef CROSSCOMPILE else if (sys == emx) -#endif -#if defined CROSSCOMPILE || defined __UNIXOS2__ { fprintf(inFile, "#define DefaultOSMajorVersion 4\n"); fprintf(inFile, "#define DefaultOSMinorVersion 0\n"); @@ -1703,8 +1688,8 @@ define_os_defaults(FILE *inFile) } void -cppit(char *imakefile, char *template, char *masterc, - FILE *outfd, char *outfname) +cppit(const char *imakefile, const char *template, const char *masterc, + FILE *outfd, const char *outfname) { FILE *inFile; @@ -1721,8 +1706,11 @@ cppit(char *imakefile, char *template, c fprintf(inFile, IncludeFmt, ImakeTmplSym) < 0 || optional_include(inFile, "IMAKE_ADMIN_MACROS", "adminmacros") || optional_include(inFile, "IMAKE_LOCAL_MACROS", "localmacros") || - fflush(inFile) || - fclose(inFile)) + fflush(inFile)) { + fclose(inFile); + LogFatal("Cannot write to %s.", masterc); + } + else if (fclose(inFile)) LogFatal("Cannot write to %s.", masterc); /* * Fork and exec cpp @@ -1737,8 +1725,8 @@ makeit(void) doit(NULL, make_argv[0], make_argv); } -char * -CleanCppInput(char *imakefile) +const char * +CleanCppInput(const char *imakefile) { FILE *outFile = NULL; FILE *inFile; @@ -1792,28 +1780,29 @@ CleanCppInput(char *imakefile) strcmp(ptoken, "pragma") && strcmp(ptoken, "undef")) { if (outFile == NULL) { -#ifdef HAS_MKSTEMP +#ifdef HAVE_MKSTEMP int fd; #endif - tmpImakefile = Strdup(tmpImakefile); -#ifndef HAS_MKSTEMP - if (mktemp(tmpImakefile) == NULL || - (outFile = fopen(tmpImakefile, "w+")) == NULL) { + char *tmpImakefileName = Strdup(tmpImakefileTemplate); +#ifndef HAVE_MKSTEMP + if (mktemp(tmpImakefileName) == NULL || + (outFile = fopen(tmpImakefileName, "w+")) == NULL) { LogFatal("Cannot open %s for write.", - tmpImakefile); + tmpImakefileName); } #else - fd=mkstemp(tmpImakefile); + fd=mkstemp(tmpImakefileName); if (fd != -1) outFile = fdopen(fd, "w"); if (outFile == NULL) { if (fd != -1) { - unlink(tmpImakefile); close(fd); + unlink(tmpImakefileName); close(fd); } LogFatal("Cannot open %s for write.", - tmpImakefile); + tmpImakefileName); } #endif + tmpImakefile = tmpImakefileName; } writetmpfile(outFile, punwritten, pbuf-punwritten, tmpImakefile); @@ -1838,7 +1827,7 @@ CleanCppInput(char *imakefile) } void -CleanCppOutput(FILE *tmpfd, char *tmpfname) +CleanCppOutput(FILE *tmpfd, const char *tmpfname) { char *input; int blankline = 0; @@ -1960,7 +1949,7 @@ isempty(char *line) /*ARGSUSED*/ char * -ReadLine(FILE *tmpfd, char *tmpfname) +ReadLine(FILE *tmpfd, const char *tmpfname) { static boolean initialized = FALSE; static char *buf, *pline, *end; @@ -1988,10 +1977,10 @@ ReadLine(FILE *tmpfd, char *tmpfname) fseek(tmpfd, 0, 0); #if defined(SYSV) || defined(WIN32) || defined(USE_FREOPEN) tmpfd = freopen(tmpfname, "w+", tmpfd); -#ifdef WIN32 +# ifdef WIN32 if (! tmpfd) /* if failed try again */ tmpfd = freopen(tmpfname, "w+", fp); -#endif +# endif if (! tmpfd) LogFatal("cannot reopen %s\n", tmpfname); #else /* !SYSV */ @@ -1999,8 +1988,6 @@ ReadLine(FILE *tmpfd, char *tmpfname) #endif /* !SYSV */ initialized = TRUE; fprintf (tmpfd, "# Makefile generated by imake - do not edit!\n"); - fprintf (tmpfd, "# %s\n", - "$Xorg: imake.c,v 1.6 2001/02/09 02:03:15 xorgcvs Exp $"); } for (p1 = pline; p1 < end; p1++) { @@ -2036,7 +2023,7 @@ ReadLine(FILE *tmpfd, char *tmpfname) } void -writetmpfile(FILE *fd, char *buf, int cnt, char *fname) +writetmpfile(FILE *fd, const char *buf, int cnt, const char *fname) { if (fwrite(buf, sizeof(char), cnt, fd) == -1) LogFatal("Cannot write to %s.", fname); @@ -2048,7 +2035,7 @@ Emalloc(int size) char *p; if ((p = malloc(size)) == NULL) - LogFatalI("Cannot allocate %d bytes", size); + LogFatal("Cannot allocate %d bytes", size); return(p); } @@ -2066,10 +2053,10 @@ KludgeOutputLine(char **pline) break; case ' ': /*May need a tab*/ default: -#ifdef CROSSCOMPILE +# ifdef CROSSCOMPILE if (inline_syntax) -#endif -#if defined CROSSCOMPILE || defined INLINE_SYNTAX +# endif +# if defined CROSSCOMPILE || defined INLINE_SYNTAX { if (*p == '<' && p[1] == '<') { /* inline file close */ InInline--; @@ -2077,7 +2064,7 @@ KludgeOutputLine(char **pline) break; } } -#endif +# endif /* * The following cases should not be treated as beginning of * rules: @@ -2116,26 +2103,26 @@ KludgeOutputLine(char **pline) quotechar = ']'; break; case '=': -#ifdef CROSSCOMPILE +# ifdef CROSSCOMPILE if (remove_cpp_leadspace) -#endif -#if defined CROSSCOMPILE || defined REMOVE_CPP_LEADSPACE +# endif +# if defined CROSSCOMPILE || defined REMOVE_CPP_LEADSPACE { if (!InRule && **pline == ' ') { while (**pline == ' ') (*pline)++; } } -#endif +# endif goto breakfor; -#if defined CROSSCOMPILE || defined INLINE_SYNTAX +# if defined CROSSCOMPILE || defined INLINE_SYNTAX case '<': if (inline_syntax) { if (p[1] == '<') /* inline file start */ InInline++; } break; -#endif +# endif case ':': if (p[1] == '=') goto breakfor; @@ -2159,7 +2146,7 @@ KludgeResetRule(void) } #endif char * -Strdup(char *cp) +Strdup(const char *cp) { char *new = Emalloc(strlen(cp) + 1); --------------070503020006040608090505-- ------------=_1399392606-21422-0-- From unknown Fri Mar 29 03:16:08 2024 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@bugs.x2go.org From: Debbugs Internal Request Subject: Internal Control Message-Id: Bug archived. Date: Mi, 04 Jun 2014 05:24:01 +0000 User-Agent: Fakemail v42.6.9 # A New Hope # A long time ago, in a galaxy far, far away # something happened. # # Magically this resulted in the following # action being taken, but this fake control # message doesn't tell you why it happened # # The action: # Bug archived. thanks # This fakemail brought to you by your local debbugs # administrator