zssfred / cderpm

RPM spec file, patches, and scripts to package up the Common Desktop Environment
GNU Lesser General Public License v2.1
40 stars 13 forks source link

Build failure under Fedora 21 #1

Open rbanffy opened 9 years ago

rbanffy commented 9 years ago

Building under Fedora 21 (which is not a target platform) is failing.

Installed chrpath, openmotif-devel, xorg-x11-xbitmaps. Transcript of make all follows:

Already have cde-2.2.0-20120816gitce4004f.tar.xz and it checks out.
rpmbuild --define='_topdir /export/home/projects/cderpm' --define='_sourcedir /export/home/projects/cderpm' --define='_specdir /export/home/projects/cderpm' -ba cde.spec
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.SjS4sg
+ umask 022
+ cd /export/home/projects/cderpm/BUILD
+ cd /export/home/projects/cderpm/BUILD
+ rm -rf cdesktopenv-code/cde
+ /usr/bin/xz -dc /export/home/projects/cderpm/cde-2.2.0-20120816gitce4004f.tar.xz
+ /usr/bin/tar -xf -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd cdesktopenv-code/cde
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ echo 'Patch #0 (cde-fix-udbParseLib.awk.patch):'
Patch #0 (cde-fix-udbParseLib.awk.patch):
+ /usr/bin/cat /export/home/projects/cderpm/cde-fix-udbParseLib.awk.patch
+ /usr/bin/patch -p1 --fuzz=0
patching file admin/IntegTools/dbTools/udbParseLib.awk
+ echo 'Patch #1 (cde-use-sh-over-ksh.patch):'
Patch #1 (cde-use-sh-over-ksh.patch):
+ /usr/bin/cat /export/home/projects/cderpm/cde-use-sh-over-ksh.patch
+ /usr/bin/patch -p1 --fuzz=0
patching file admin/IntegTools/dbTools/dinstallCDE.src
patching file admin/IntegTools/dbTools/installCDE.src
patching file admin/IntegTools/dbTools/linksLast
patching file admin/IntegTools/dbTools/mkProd
patching file admin/IntegTools/dbTools/udbToAny.ksh
patching file admin/IntegTools/dbTools/uncomment
+ mkdir -p imports/x11/include
+ cd imports/x11/include
+ ln -s /usr/include/X11 .
+ exit 0
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.sMTPy1
+ umask 022
+ cd /export/home/projects/cderpm/BUILD
+ cd cdesktopenv-code/cde
+ '[' -d /export/home/projects/cderpm/BUILDROOT/cde-2.2.0-3.20120816gitce4004f.fc21.x86_64 ']'
+ rm -rf /export/home/projects/cderpm/BUILDROOT/cde-2.2.0-3.20120816gitce4004f.fc21.x86_64
+ /usr/bin/make World.dev 'BOOTSTRAPCFLAGS=-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches  -m64 -mtune=generic -m64'
make[1]: Entering directory '/export/home/projects/cderpm/BUILD/cdesktopenv-code/cde'

Building Release 2.2.0 of CDE excluding DOC

Thu Dec 25 19:21:46 BRST 2014

cd ./config/imake && make -w -f Makefile.ini BOOTSTRAPCFLAGS="-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches  -m64 -mtune=generic -m64" clean
make[2]: Entering directory '/export/home/projects/cderpm/BUILD/cdesktopenv-code/cde/config/imake'
rm -f ccimake imake.o imake
rm -f *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a tags TAGS make.log \#*
rm -f -r Makefile.proto Makefile Makefile.dep bootstrap
make[2]: Leaving directory '/export/home/projects/cderpm/BUILD/cdesktopenv-code/cde/config/imake'
make -w Makefile.boot
make[2]: Entering directory '/export/home/projects/cderpm/BUILD/cdesktopenv-code/cde'
cd ./config/imake && make -w -f Makefile.ini BOOTSTRAPCFLAGS="-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches  -m64 -mtune=generic -m64"
make[3]: Entering directory '/export/home/projects/cderpm/BUILD/cdesktopenv-code/cde/config/imake'
making imake with BOOTSTRAPCFLAGS=-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches  -m64 -mtune=generic -m64 in config/imake
cc -o ccimake -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches  -m64 -mtune=generic -m64 -O -I../../include -I../../imports/x11/include/X11 ccimake.c
ccimake.c:59:1: warning: return type defaults to 'int' [-Wreturn-type]
 main()
 ^
ccimake.c: In function 'main':
ccimake.c:61:2: warning: implicit declaration of function 'write' [-Wimplicit-function-declaration]
  write(1, imake_ccflags, sizeof(imake_ccflags) - 1);
  ^
ccimake.c:62:2: warning: implicit declaration of function 'exit' [-Wimplicit-function-declaration]
  exit(0);
  ^
ccimake.c:62:2: warning: incompatible implicit declaration of built-in function 'exit'
cc -c -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches  -m64 -mtune=generic -m64 -O -I../../include -I../../imports/x11/include/X11 `./ccimake` imake.c
imake.c: In function 'get_libc_version':
imake.c:1006:2: error: format not a string literal and no format arguments [-Werror=format-security]
  fprintf (inFile, command);
  ^
imake.c: In function 'main':
imake.c:408:3: warning: ignoring return value of 'mkstemp', declared with attribute warn_unused_result [-Wunused-result]
   mkstemp(tmpMakefile);
   ^
imake.c: In function 'CleanCppInput':
imake.c:1289:4: warning: ignoring return value of 'mkstemp', declared with attribute warn_unused_result [-Wunused-result]
    mkstemp(tmpImakefile);
    ^
imake.c: In function 'get_ld_version':
imake.c:1028: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:1459:3: 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
Makefile.ini:31: recipe for target 'imake.o' failed
make[3]: *** [imake.o] Error 1
make[3]: Leaving directory '/export/home/projects/cderpm/BUILD/cdesktopenv-code/cde/config/imake'
Makefile:133: recipe for target 'imake.proto' failed
make[2]: *** [imake.proto] Error 2
make[2]: Leaving directory '/export/home/projects/cderpm/BUILD/cdesktopenv-code/cde'
Makefile:76: recipe for target 'World.dev' failed
make[1]: *** [World.dev] Error 2
make[1]: Leaving directory '/export/home/projects/cderpm/BUILD/cdesktopenv-code/cde'
error: Bad exit status from /var/tmp/rpm-tmp.sMTPy1 (%build)

RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.sMTPy1 (%build)
Makefile:11: recipe for target 'all' failed
make: *** [all] Error 1
barsnick commented 9 years ago

(I just found this while googling for something else. ;-))

This is because this sort of code is a no-go in the 21st century, and Fedora's default CFLAGS/CXXFLAGS mark the warning as an error (by "-Werror=format-security"):

cc -c -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches  -m64 -mtune=generic -m64 -O -I../../include -I../../imports/x11/include/X11 `./ccimake` imake.c
imake.c: In function 'get_libc_version':
imake.c:1006:2: error: format not a string literal and no format arguments [-Werror=format-security]
  fprintf (inFile, command);
  ^

You should probably patch that code to read

fprintf (inFile, "%s", command);

instead.

Read here for details: https://fedoraproject.org/wiki/Format-Security-FAQ#What.27s_the_difference_from_-Werror.3Dformat-security

dcantrell commented 7 years ago

I know this is pretty old, but I'm wondering if you are seeing the same problem with the latest Fedora? I've also started a COPR repository to host builds of this package:

https://copr.fedorainfracloud.org/coprs/dcantrel/cde/

Right now I only have working builds on EPEL6 and EPEL7, but I am working on the others.