Issue 36413 - instsetoo_native build fails with W32-tcsh
Summary: instsetoo_native build fails with W32-tcsh
Status: CLOSED FIXED
Alias: None
Product: Build Tools
Classification: Code
Component: solenv (show other issues)
Version: 680m59
Hardware: PC Windows 2000
: P1 (highest) Trivial (vote)
Target Milestone: OOo 2.0
Assignee: ingo.schmidt-rosbiegal
QA Contact: issues@tools
URL:
Keywords:
Depends on: 36512
Blocks:
  Show dependency tree
 
Reported: 2004-11-01 04:31 UTC by quetschke
Modified: 2006-03-14 21:03 UTC (History)
4 users (show)

See Also:
Issue Type: DEFECT
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments
Patch against solenv from vq04 (6.50 KB, patch)
2004-11-01 04:32 UTC, quetschke
no flags Details | Diff
Compressed output of (cd instsetoo_native ; build) (4.10 KB, application/x-gzip)
2004-11-01 17:00 UTC, rodarvus
no flags Details
Compressed build log for SRC680_m59 with W32-tcsh (12.81 KB, application/x-gzip)
2004-11-01 17:01 UTC, rodarvus
no flags Details
Updated preliminary patch (11.51 KB, patch)
2004-11-02 14:22 UTC, quetschke
no flags Details | Diff
Working, but not cleaned-up yet. (15.73 KB, patch)
2004-11-03 18:41 UTC, quetschke
no flags Details | Diff
Patch for solenv (12.27 KB, patch)
2004-11-04 06:28 UTC, quetschke
no flags Details | Diff
Final patch for solenv (12.30 KB, patch)
2004-11-05 03:10 UTC, quetschke
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this issue.
Description quetschke 2004-11-01 04:31:12 UTC
The build of instsetoo_native with W32-tcsh fails due to total ignorance of the
possibility that someone might not use 4nt.

With the attached patch (It is proof-of-principle and not yet cleaned-up)
I get this far:

--- snip ----
... analyzing folders ... 
... analyzing folderitems ... 
... analyzing registryitems ... 
... analyzing modules ... 
------------------------------------
... languages en-US ... 
... analyzing files ...
... analyzing files with flag ARCHIVE ...
... analyzing files with flag SCPZIP_REPLACE ...
... analyzing files with flag PATCH_SO_NAME ...
... creating preregistered services.rdb ...
... cleaning the output tree ...
... removing directory /cygdrive/c/DOKUME~1/q/LOKALE~1/Temp/instsetunpack_135 ...

***************************************************************
ERROR: Could not register all components!
in function: create_services_rdb
Saved logfile:
e:/w1/SRC680_m59/instsetoo_native/wntmsci10.pro/OpenOffice/logging/en-US/log_SRC680__en-US.log
***************************************************************
Sun Oct 31 23:23:56 2004 (00:37 min.)
dmake:  Error code 255, while making 'openoffice_en-US'

--- snap ---

The only failiure in that logfile is:

######################################################
Registering UNO components:
######################################################
Systemcall: guw.pl -env e:/w1/SRC680_m59/solver/680/wntmsci10.pro/bin/regcomp.ex
e -register -r /cygdrive/c/DOKUME~1/q/LOKALE~1/Temp/instsetunpack_135/wntmsci10.
pro/OpenOffice/services.rdb/en-US_inprogress_1/services.rdb -c 'abp680mi.dll;acc
eptor.uno.dll;adabas2.dll;ado2.dll;basctl680mi.dll;basprov680mi.uno.dll;bib680mi
.dll;bridgefac.uno.dll;cached1.dll;configmgr2.uno.dll;sysmgr1.uno.dll;behelper.u
no.dll;ldapbe2.uno.dll;comphelp4MSC.dll;connector.uno.dll;reflection.uno.dll;shl
ibloader.uno.dll;ctl680mi.dll;dba680mi.dll;dbase680mi.dll;dbp680mi.dll;dbpool2.d
ll;dbaxml680mi.dll;dbu680mi.dll;nestedreg.uno.dll' 2>&1 |
register component 'abp680mi.dll' in registry 'c:\DOKUME~1\q\LOKALE~1\Temp\insts
etunpack_135\wntmsci10.pro\OpenOffice\services.rdb\en-US_inprogress_1\services.r
db' succesful!
...
register component 'ldapbe2.uno.dll' in registry 'c:\DOKUME~1\q\LOKALE~1\Temp\in
stsetunpack_135\wntmsci10.pro\OpenOffice\services.rdb\en-US_inprogress_1\service
s.rdb' failed!
error (CannotRegisterImplementationException): loading component library failed:
 ldapbe2.uno.dll
...

This might be a different error.
Comment 1 quetschke 2004-11-01 04:32:53 UTC
Created attachment 18789 [details]
Patch against solenv from vq04
Comment 2 quetschke 2004-11-01 04:40:01 UTC
Forgot the ;) smilie in my first sentence in this issue. Wasn't meant unfriendly. 
:)
Comment 3 hjs 2004-11-01 15:49:46 UTC
looks like your scripting...
Comment 4 hjs 2004-11-01 15:50:15 UTC
.
Comment 5 ingo.schmidt-rosbiegal 2004-11-01 16:01:20 UTC
Hi Volker,

one question before we integrate all this changes as Prio 1. Could you create an
installation set before src680m59 with cygwin and tcsh or is this a new error
for you? 
Comment 6 rodarvus 2004-11-01 16:18:37 UTC
Ingo,

a few days ago I attempted to build instsetoo_native with W32-tcsh, and had 
the same results.

I have (handy) a successfully compiled copy of SRC680_m59 with W32-tcsh, in 
case any testing/log/whatever is desired.
Comment 7 ingo.schmidt-rosbiegal 2004-11-01 16:29:01 UTC
is -> rodarvus: Have you ever built "instsetoo_native" with W32-tcsh
successfully? In this case I would like to see the log file. But I would also
like to see the logfile from an "instsetoo_native" that was not successfully
built with  W32-tcsh (located in
instsetoo_native/<platform>/<product>/logging/language). 
 
Comment 8 quetschke 2004-11-01 16:49:51 UTC
Hi Ingo,

> one question before we integrate all this changes as Prio 1. Could you create an
> installation set before src680m59 with cygwin and tcsh or is this a new error
> for you? 

Before I only build instsetoo (it was the default), m59 switched the default to
instsetoo_native. The patch is not yet (everywhere) properly conditioned for
WITH_SHELL=tcsh, it's *not* ready for integration.

It is not even finished, see:
> ERROR: Could not register all components!

I got a hint from Joerg on IRC, for reference:
---
<JoergB> vq: i36413 is likely to be a PATH-munging issue. The special thing
         about libldapbe is that it is linked to DLLs that are not also in
         solver/bin. The LDAP DLLs are in the mozilla ...runtime.zip and
         need to be loadable in the location where that zip is unpacked.
<JoergB> vq: Can you set up the PATH in use when regcomp is run and then try
         a depends on ldapbe2.
---
and will try that later. 

But that is not everything, the en-US build looks _nearly_ ready, but the
de build, that directly follows has many missing file errors.

P.S.: Why is the build continuing after the:
dmake:  Error code 255, while making 'openoffice_en-US' ? Can you fix that?
Comment 9 rodarvus 2004-11-01 16:59:07 UTC
> is -> rodarvus: Have you ever built "instsetoo_native" with W32-tcsh
> successfully? In this case I would like to see the log file. But I would also
> like to see the logfile from an "instsetoo_native" that was not successfully
> built with  W32-tcsh (located in
> instsetoo_native/<platform>/<product>/logging/language). 

No, as with vq, I haven't ever built instsetoo_antive with W32-tcsh 
successfully. (also I always used instsetoo, as it was the default)

I tried to build instsetoo_native on SRC680_m58 once, but it failed. I'm 
pretty it failed in the same way as with SRC680_m59, but I can't *guarantee* 
that, as I don't have a copy of SRC680_m58 handy anymore :/

I'll attach a copy of the build log, and a copy of the build output (both for 
SRC680_m59) in a few minutes.
Comment 10 rodarvus 2004-11-01 17:00:11 UTC
Created attachment 18810 [details]
Compressed output of (cd instsetoo_native ; build)
Comment 11 rodarvus 2004-11-01 17:01:13 UTC
Created attachment 18811 [details]
Compressed build log for SRC680_m59 with W32-tcsh
Comment 12 ingo.schmidt-rosbiegal 2004-11-01 17:29:57 UTC
is -> rodarvus: Thank you for the logfiles. The systems is not recognized
correctly as a Windows system.
Comment 13 ingo.schmidt-rosbiegal 2004-11-01 18:06:50 UTC
Hi Voker,

the problem with the registration of the ldapbe library is really caused by
libraries of the mozruntime.zip, that have to be extracted in the path.

>But that is not everything, the en-US build looks _nearly_ ready, but the
>de build, that directly follows has many missing file errors.

That the en-US build looks _nearly_ ready is great. We can try to integrate your
changes asap.
The missing files errors are not so dramatic. If the files are really missing,
they have to be delivered. If you want to ignore this and default to the english
files, you can set the environment variable DEFAULT_TO_ENGLISH_FOR_PACKING.

>P.S.: Why is the build continuing after the:
>dmake:  Error code 255, while making 'openoffice_en-US' ? Can you fix that?

Well, this is a known issue. I will do my very best.
Comment 14 quetschke 2004-11-02 14:22:35 UTC
Created attachment 18841 [details]
Updated preliminary patch
Comment 15 quetschke 2004-11-02 14:27:05 UTC
With the previous patch and

(from Microsoft Visual Studio .NET 2003/Common7/Tools/Deployment/MsiRedist/)
instmsia.exe
instmsiw.exe

(from installer SDK)(This is wrong, the whole dir has to be in the path)
msiinfo.exe
msidb.exe
msitran.exe

copied into solver/.../bin/ I get:
...
Parsing directives
(e:/w1/SRC680_m59/instsetoo_native/wntmsci10.pro/OpenOffice/d13,748,487 bytes in
629 files\\solver\\6                                                           
                   
Total files:            629                                      
Bytes before:    13,748,487
Bytes after:      3,229,283
After/Before:            23.49% compression
Time:                    13.13 seconds ( 0 hr  0 min 13.13 sec)
Throughput:            1022.95 Kb/second

... creating log file log_SRC680__en-US.log 
... cleaning the output tree ...
... removing directory /cygdrive/c/DOKUME~1/q/LOKALE~1/Temp/instsetunpack_135 ...
... checking log file
e:/w1/SRC680_m59/instsetoo_native/wntmsci10.pro/OpenOffice/logging/en-US/log_SRC680__en-US.log

*********************************************************************
ERROR: The following errors occured in packaging process:

ERROR: Could not execute msidb.exe!
ERROR: Could not execute msiinfo.exe!
ERROR: Could not copy
e:/w1/SRC680_m59/instsetoo_native/wntmsci10.pro/OpenOffice/idt_files/en-US/en-US/openofficeorg1959_en-US.msi
to
e:/w1/SRC680_m59/instsetoo_native/wntmsci10.pro/OpenOffice/install/en-US_inprogress/openofficeorg1959_en-US.msi
ERROR: Could not rename
e:/w1/SRC680_m59/instsetoo_native/wntmsci10.pro/OpenOffice/install/en-US_inprogress/openofficeorg1959_en-US.msi
to
e:/w1/SRC680_m59/instsetoo_native/wntmsci10.pro/OpenOffice/install/en-US_inprogress/openofficeorg1959.msi
*********************************************************************
... creating log file log_SRC680__en-US.log 
Tue Nov  2 09:11:28 2004 (08:07 min.)
Packager finished: dmake openoffice_en-US

_nearly_ ;)
Comment 16 quetschke 2004-11-03 18:41:30 UTC
Created attachment 18894 [details]
Working, but not cleaned-up yet.
Comment 17 quetschke 2004-11-03 18:50:30 UTC
With the previous (still uncleaned) patch I get:

... creating log file log_SRC680__en-US.log 
... cleaning the output tree ...
... removing directory /cygdrive/c/WINNT/TEMP/instsetunpack_22 ...
... checking log file
e:/w1/SRC680_m59/instsetoo_native/wntmsci10.pro/OpenOffice/logging/en-US/log_SRC680__en-US.log

***********************************************************
Successful packaging process!
***********************************************************

:)

vq->is: Where are "hash{'Name'}" and friends set? They sometimes contain
backslashes, like in \registry\schema\org\openoffice\Inet.xcs despite
the setting of "$installer::globals::separator"? If this is "right" from
the beginning I can remove some of the s/\//\\/g;
Comment 18 quetschke 2004-11-03 18:51:32 UTC
Err, I meant: s/\\/\//g;
Comment 19 rodarvus 2004-11-03 19:34:09 UTC
rodarvus->vq: this patch works semi-perfectly for me. (but I'm already able to 
create the installer successfully :) )

on my copy of SRC680_m60, the patch fails for solenv/bin/guw.pl, because I 
don't have the line with JAVA_HOME here. If I manually add CLASSPATH to the 
end of the list, the build still fails. The build only works if I add (again, 
manually) JAVA_HOME to the list of translated variables.

Is this variable JAVA_HOME is already defined (by default) on your copy of 
SRC680_m60 solenv/bin/guw.pl ?

Anyway, good work. I was eager to see the native installer working on w32-
tcsh :)
Comment 20 quetschke 2004-11-03 20:19:44 UTC
vq->rodarvus:
> Is this variable JAVA_HOME is already defined (by default) on your copy of
> SRC680_m60 solenv/bin/guw.pl ?

Yes, I'm working on vq04, there are already some changes in that cws for
different problems. I'll see that I find some time to clean-up the patch soon.

BTW, thanks for testing :)
Comment 21 quetschke 2004-11-04 06:27:46 UTC
vq->is: Forget my question about the backslashes, I totally missed the
convert_slash_to_backslash call.

The following patch is IMHO ready to go, please have a look. If OK I'll commit
to vq04 and set it "Ready for QA".
Comment 22 quetschke 2004-11-04 06:28:21 UTC
Created attachment 18908 [details]
Patch for solenv
Comment 23 ingo.schmidt-rosbiegal 2004-11-04 10:26:40 UTC
is -> vq: sounds great. I will test is asap. Unfortunately I still have some
problems with configure in win/tcsh :-(
The path of the inet.xcs is already defined in scp2. You find in file_ooo.scp:

File gid_File_Oo_Inet_Xcs
    TXT_FILE_BODY;
    Styles = (PACKED);
    Dir = gid_Dir_Share_Registry_Schema_Org_Openoffice;
    Name = "/registry/schema/org/openoffice/Inet.xcs";
End

In scp2 only the slash can be used.

Could you install the OpenOffice.org installation set with the Windows Installer
without problems?
Comment 24 ingo.schmidt-rosbiegal 2004-11-04 11:13:12 UTC
is -> vq: I just checked your patch: it looks great. I can say, that I cannot
see a problem to integrate it in our master code (perhaps there is one problem
(point 3)). There are only some very small changes:

1. globals.pm

+               $pathseparator = "\:"; # ????

The pathseparator is the shell specific separator in the PATH environment
variable. ":" is okay for win-tcsh -> no question marks needed :-)

2. servicesfiles.pm

                my $infoline = "Setting CLASSPATH to $ENV{'CLASSPATH'}\n";
@@ -535,6 +537,7 @@
                if ( $ENV{'PATH'} ) { $oldpath = $ENV{'PATH'}; }
                else { $oldpath = "\."; }
                my $newpath = $path . $installer::globals::pathseparator . $oldpath;
+#              my $newpath = $path . ":" . $oldpath;
                $ENV{'PATH'} = $newpath;

We do not need to add this comment line.  $installer::globals::pathseparator is
the correct pathseparator.
                
3. msiglobal.pm (this is problematic!!!)

-       my $systemcall = $msidb . " -f " . $idtdirbase . " -d " . $msifilename .
" -c " . "-i \*";
+       my $systemcall = $msidb . " -f " . $idtdirbase . " -d " . $msifilename .
" -c " . "-i \\*";

Using "\*" I only masked the "*" (which is probably not necessary). The correct
syntax is (find this in the log file):

Systemcall: msidb.exe -f d:\idt_files\de -d d:\idt_files\de\staroffice8_de.msi
-c -i *

Therefore it seems to be an error to quote the backslash with "\\*"
Comment 25 quetschke 2004-11-04 14:56:25 UTC
Hi Ingo!

> Unfortunately I still have some problems with configure in win/tcsh :-(
Tell me, maybe I can help.

> is -> vq: I just checked your patch: it looks great. I can say, that I cannot
> see a problem to integrate it in our master code (perhaps there is one problem
> (point 3)). There are only some very small changes:
Obviously I forgot to remove some of my debug comments, I'll remove 1. + 2.
before committing.

Point 3:
> Using "\*" I only masked the "*" (which is probably not necessary). The
> correct syntax is (find this in the log file):
> Systemcall: msidb.exe -f d:\idt_files\de -d d:\idt_files\de\staroffice8_de.msi
> -c -i *
>
> Therefore it seems to be an error to quote the backslash with "\\*"
No, the problem here is that system($cmd) invokes a shell to expand $cmd,
if it sees a shell metacharacters, therefore I really need
 "msidb.exe ... -c -i \*".
with the \ in $cmd to prevent the globbing. If ActiveState Perl is not
conforming to <http://www.perldoc.com/perl5.8.4/pod/func/system.html> we have
to work around that, but that's easy enough :).
Comment 26 ingo.schmidt-rosbiegal 2004-11-04 16:41:18 UTC
Hi Volker,

well, I solved many problems until now with the configure script. But when I
start bootstrap (which is the final step :-) ) I see, that many variables are
not set correctly (LIB for example). Besides my C preprocessor now fails the
sanity check. But I think this is not your problem. We have to find an easier
way inhouse, to create a win-tcsh environment (then I can test this platform
much easier in the future :-) ).
Are you sure, that your changes of point 3 ("msidb.exe ... -c -i \*") will not
disturb the builds in a 4NT shell? Perhaps you should leave the old systemcall
of "msidb.exe" as it is, and include your new msidb call into your if-block.
Comment 27 quetschke 2004-11-05 03:10:44 UTC
Created attachment 18954 [details]
Final patch for solenv
Comment 28 quetschke 2004-11-05 03:22:53 UTC
> Are you sure, that your changes of point 3 ("msidb.exe ... -c -i \*") will not
> disturb the builds in a 4NT shell?
I asked ause to test on 4nt/ActiveState Perl if it honors the shellmetas.
No, it doesn't.

Fixed in the last patch, I committed it to vq04.

@is,hjs: I verified that W32-tcsh (en) builds with it, please verify for other
platforms and if possible fasttrack the cws.
Comment 29 ingo.schmidt-rosbiegal 2004-11-05 10:55:52 UTC
The patch looks good -> verified
is->ause: Please integrate into cws vq04
Comment 30 quetschke 2004-11-23 17:13:38 UTC
Found in m62.