Apache OpenOffice (AOO) Bugzilla – Issue 24075
Build breaks with space in $USER and $USERNAME
Last modified: 2008-05-17 23:14:09 UTC
The first time I build OpenOffice (with dmake) I got a strange error in building. I did all the steps in http://tools.openoffice.org/dev_docs/build_windows_tcsh.html. Last lines of build ("Partitieeen Diskeen" is the username I use for admin): ======================================================= Making: ../../../wntmsci9.pro/srs/iso.srs echo iso.src iso.src guw.pl rsc -presponse @/tmp/mk610cb0cc.4 Command: rsc PartitieeenDiskeen: No such file or directory cpp: line 0, Error: Can't open input file "PartitieeenDiskeen" VCL Resource Compiler 3.0 Preprocessor commandline: -I. -I. -I. -I..\inc -I..\..\..\inc -I..\..\..\WIN\inc - I..\..\..\wntmsci9.pro\inc -I. -Ie:\oo_1.1_src\solver\645\wntmsci9.pro\inc\st l -Ie:\oo_1.1_src\solver\645\wntmsci9.pro\inc\external - Ie:\oo_1.1_src\solver\64 5\wntmsci9.pro\inc -Ie:\oo_1.1_src\solenv\wntmsci9\inc - Ie:\oo_1.1_src\solenv\in c -Ie:\oo_1.1_src\res -Ie:\oo_1.1_src\solver\645\wntmsci9.pro\inc\stl -Ic:\p rogra~1\j2sdk1~1.1_0\include\win32 -Ic:\progra~1\j2sdk1~1.1_0\include - Ic:\PROGRA~1\MICROS~3\include -Ic:\progra~1\micros~2\vc98\include -I. - I..\..\..\res -I. -DWNT -DNT351 -DMSC -DMI200 -DSUPD=645 -DBUILD=8693 - DSOLAR_JAVA -DFULL_DESK -DPRODUCT -DPRODUCT_FULL -DNDEBUG -DOSL_DEBUG_LEVEL=0 - DOOO_VENDOR="Diskeen -DOOO_LICENSE="LGPL" -DUPDVER="645m19(Build;8693)" - DUPDVER="645m19(Build;8693)"PartitieeenDiskeen c:\DOCUME~1\DISKEE~1\LOCALS~1 \Temp\3 Preprocessor startline: rscpp @c:\DOCUME~1\DISKEE~1\LOCALS~1\Temp\4 Error starting preprocessor dmake: Error code 1, while making '../../../wntmsci9.pro/srs/iso.srs' echo: No match. dmake: Error code 255, while making 'SRC1' echo: No match. ERROR: Error 65280 occurred while making /cygdrive/e/oo_1.1_src/offmgr/source/of fapp/intro dmake: Error code 1, while making 'build_all' echo: No match. ======================================= I will attach two files: 1) The full output (I used tee for this, so errors are not included, see these last lines) 2) winenv.set (I used configure for making this and didn't edit anything myself) Volker, in your mail in dev@openoffice.org you told me that the last line doesn't look good. See the full output-file: other make-commands seem to have the same last line and do work???? Thanks a lot in advance for looking at this problem!
Created attachment 12247 [details] Output of dmake (made by tee-ing the dmake)
Created attachment 12248 [details] Winenv.set
Hi Frederic, I just came back from europe, I had a brief look at your winenv.set, it looks good so far, there must be other variables involved, I'll search for the OOO_VENDOR definition soon, but can you please post the output of $ senenv in your tcsh shell before you source winenv.set.
Created attachment 12305 [details] Output of senenv in C-shell
Thanks for looking at it so quick! Hope you'll find something in the attached senenv-output. Bye!
This line: echo: No match. Is often related to this sort of line: echo ****** which should be: echo "*****" to hide the * from the shell file expansion.
vq->ken: Ken, you are propably right with the "echo: No match." output, but one gets this output for any error in the build, so this is definitly not related to Frederiks problem. But I found the root of Frederiks problem, in: offmgr/source/offapp/intro/makefile.mk there is this line: RSCUPDVERMAC+=-DOOO_VENDOR="$(USER)$(USERNAME)" -DOOO_LICENSE="LGPL" In Frederiks environment he has: USER=Diskeen Partitieeen USERNAME=Diskeen Partitieeen so something chokes on this variables with spaces. vq->Frederik: Try setting USER and USERNAME to something without space before starting the build. This is only a workaround, normaly the quoting around "$(USER)$(USERNAME)" should catch this problem, so there is a bug somewhere.
Okay, I set up my PC again with all programs, this time with a user "Compiler" (one word, no quotes). This compiled well (I got one warning which has nothing to do with this issue, see dev@openoffice.org for details). This works for me. Feel free to keep this one open to solve the spacingproblem. I am quite easy able to assist you with testing any changes (I have a Ghost- file containing the previous configuration). If you want me doing this you can contact me via this issue or via the mailinglist dev@openoffice.org. Thanks again for the good and fast work you did!
Ok, I changed the subject to reflect the real problem. cc'ing ause vq->ause: Do you have an idea where we loose the quoting? It should work with spaces in USER/USERNAME.
let's follow the path of this string. is the commandline produced by "guw.pl" still quoted?
vq->ause: Ahh, thanks. I'll investigate. Setting target.
There's more that will be affected by this, since there are things in solenv that use $(USER): ./solenv/inc/_tg_app.mk: @+$(TYPE) $(TMP)$/$(PRJNAME)$(USER).tmp ./solenv/inc/_tg_app.mk: @+$(RM) $(TMP)$/$(PRJNAME)$(USER).tmp ... ./solenv/inc/tg_jar.mk: @+-find . -type d -user $(USER) ! -perm -5 -print | xargs test "$$1" != "" && chmod +r $$1 ./solenv/inc/tg_java.mk: +-find $(CLASSDIR) -type d -user $(USER) \! -perm -5 -print | xargs chmod a+r $$1 >& $(NULLDEV) etc. These can probably all be quoted just fine though.
Urgh, so it's not only a guw.pl problem. But Windows users often have user names with spaces and so are the most likely to run into this problem. I'm just thinking about changing the $USER variable by configure / *env.set and replace " " with "_". This would avoid the quoting. Better, let settings.mk do this replacement.
in the special case of the find command, $(USER) must match the username known by the system. otherwise it would be quite useless. to support usernames containing blanks, manipulating the username doesn't look like an option to me.
Hi! @fs: Hi Frank, can you check if this is the problem for your w32-tcsh build, I mean ause's last comment. @hjs: This means basically that builds with usernames with space are broken at the moment. We can fix it for w32-4nt builds by putting quotes around the $USER. I guess I have to enhance guw.pl a bit to honor/keep the quotes.
> in the special case of the find command, $(USER) must match the username known > by the system Dumb question: Is "the user name know by the system" the login name?
vq->fs: Try echo %username% in cmd or echo %USERNAME in bash. Note the normal vs. capital letters.
Mental Note: When guw executes something with "exec( "$command", @params)" and @params are really parameter, then there is no extra quoting needed, the parameter evaluation is normally done by the shell, and slightly modified by guw.pl here. No problem, *but* if guw.pl rewrites an @parameterfile, then the parameters are evaluated again. (How else should one distinguish a b from "a b" in a line of an @file.) I'll try something tonight.
Nope, guw.pl works as desired and also keeps quotes. rsc.exe is the problem, see issue 27914.
set target to 1.1.3
This problem is propably fixed with issue 27914, but this is not verified, so I retarget to 1.1.4.
retarget to 1.1.5
so setting this to fixed.
The Issue you raised has been marked as 'Resolved' and not updated within the last 1 year+. I am therefore setting this issue to 'Verified' as the first step towards Closing it. If you feel this is incorrect, please re-open the issue and add any comments. Many thanks, Andrew Cleaning-up and Closing old Issues ~ The Grand Bug Squash, pre v3 ~ http://marketing.openoffice.org/3.0/announcementbeta.html
As per previous posting: Verified -> Closed. A Closed Issue is a Happy Issue (TM). Regards, Andrew