Description of problem: emacs fails to build from source Version-Release number of selected component (if applicable): How reproducible: always Steps to Reproduce: 1. yumdownloader --source emacs 2. rpmbuild --rebuild emacs*.rpm 3. Actual results: config.status: executing default commands creating src/epaths.h creating lib-src/Makefile creating src/Makefile + /usr/bin/make bootstrap (cd src; /usr/bin/make bootstrap-clean) make[1]: Entering directory `/home/pravi/rpmbuild/BUILD/emacs-23.1/src' Makefile:103: *** commands commence before first target. Stop. make[1]: Leaving directory `/home/pravi/rpmbuild/BUILD/emacs-23.1/src' make: *** [bootstrap-clean] Error 2 error: Bad exit status from /var/tmp/rpm-tmp.7mXN5P (%build) Expected results: emacs re-built without problems Additional info:
its strange, it is failing in koji as well whicle scratch build see build log http://koji.fedoraproject.org/koji/getfile?taskID=1829990&name=build.log what is the problem?
the issue is not using newline escape character ('\') when multiline values are assigned to variables
submitted upstream http://emacsbugs.donarmstrong.com/cgi-bin/bugreport.cgi?bug=5047
Just for the simple testcases: 1) cpp --version 2) /bin/echo -e 'obj= foo \\\n\tbar \\\n\tbaz\n' | cpp on F-11: 1) cpp (GCC) 4.4.1 20090725 (Red Hat 4.4.1-2) 2) obj= foo bar baz on F-12: 1) cpp (GCC) 4.4.2 20091027 (Red Hat 4.4.2-7) 2) obj= foo bar baz This result explains why it didn't happen on F-11 but on F-12 or later. it looks like cpp issue to me because it's used to pre-process something. cpp shouldn't expect any parsers can read it with/without the backslash at the end of line. IMHO it would be better keep it as is.
the backslashes shouldn't be lost reassigning to cpp, i.e. gcc package
FWIW, this is fixed in later Emacs versions (unreleased CVS version): 2009-10-23 Jim Meyering <meyering> * configure.in: Invoke $CPP with -P when creating Makefile and src/Makefile. Without this, gcc 4.4.2 converts each backslash-newline pair in the input to a bare newline, yielding invalid Makefiles. Watch: % cpp --version cpp (GCC) 4.4.2 20091027 (Red Hat 4.4.2-7) % /bin/echo -e 'obj= foo \\\n\tbar \\\n\tbaz\n' | cpp obj= foo bar baz
OK, I'll reassign this to myself and backport the change
Created attachment 374742 [details] configure.in patch you also have to run "autoconf" in %build section of the spec to regenerate "configure"
Thanks all for their work. Its nice that we have found solution. Can we have this backported to F-12 as well and have a new koji build release? It took me some time to find actually what commit was happened in git but I got it here -> http://github.com/davidswelt/aquamacs-emacs/commit/7ffa22b0da2005b1ad04f9884dd154de2821e8d7
(In reply to comment #9) > Thanks all for their work. Its nice that we have found solution. Can we have > this backported to F-12 as well and have a new koji build release? yes, we will build new F12 and F13 release rawhide(F-13) build is now finished (emacs-23.1-14.fc13), F12 update will follow
emacs-23.1-12.fc12 has been submitted as an update for Fedora 12. http://admin.fedoraproject.org/updates/emacs-23.1-12.fc12
emacs-23.1-12.fc12 has been pushed to the Fedora 12 stable repository. If problems still persist, please make note of it in this bug report.