The script which dumps dll imports and exports now seems to parse everything correctly and organize it nicely in a text file. We need the script run against various windows versions. The output can be sent directly to me, but please verify I do not already have the data for that particular version of windows. I don't need 10 copies of win2k SP3 for example. :)
The script is available at http://home.ptd.net/~compsol. Please make sure you get createdb.pl. There is another script, createwinedb.pl which will ONLY parse the wine spec files.
To run this you will need winedump, perl, and access to your windows directory from within Linux. The cleaner the windows install the better. We don't want to clutter the database with info from dlls not provided with windows. Usage is as follows:
createdb.pl -d -p <path to windows dir> -o <winver (ex. win98)
This will save the imports and exports and also create winver.ref, where winver is specified on the command line with -o. The .ref file is the one which will contain all the info we need. This will be a large file, so I recommend compressing with gzip if you are going to email it to me. It may be large enough to bounce back into your mailbox if you do not. :)
On Fri, 2 May 2003 01:57:36 -0400 (EDT), Dave Miller compsol@ptdprolog.net wrote:
The script which dumps dll imports and exports now seems to parse everything correctly and organize it nicely in a text file. We need the script run against various windows versions. The output can be sent directly to me, but please verify I do not already have the data for that particular version of windows. I don't need 10 copies of win2k SP3 for example. :)
I'm not sure if I understand you script crorrectly. Does the script scan actual DLL binaries for import/export info and converts it to a spec file? Or does this script only take a spec file?
The script I am looking for people to run, createdb.pl will scan the actual windows dlls, run winedump on them, and nicely format the output.
The other script does scan the wine spec files. It formats output in the same way but is for use with wine only.
----- Original Message ----- From: "Gerhard W. Gruber" sparhawk@gmx.at To: wine-devel@winehq.com Sent: Friday, May 02, 2003 5:04 PM Subject: Re: Volunteers needed - windows API db script ready
On Fri, 2 May 2003 01:57:36 -0400 (EDT), Dave Miller
wrote:
The script which dumps dll imports and exports now seems to parse everything correctly and organize it nicely in a text file. We need the script run against various windows versions. The output can be sent directly to me, but please verify I do not already have the data for that particular version of windows. I don't need 10 copies of win2k SP3 for example. :)
I'm not sure if I understand you script crorrectly. Does the script scan actual DLL binaries for import/export info and converts it to a spec file?
Or
does this script only take a spec file?
-- Gerhard Gruber
Für jedes menschliche Problem gibt es immer eine einfache Lösung: Klar, einleuchtend und falsch. (Henry Louis Mencken)
On Fri, 2 May 2003, Dave Miller wrote:
createdb.pl -d -p <path to windows dir> -o <winver (ex. win98)
Please name the output file like so: <os-name>-<os-version>.ref, where: <os-name>: is one of: win9x, winnt, win2k, winxp <os-version: should be the version reported by Windows, such as 5.00.2195SP3. This is reported in the My Computer/Properties dialog.
For the computer where I'm working from right now, the filename will be: win2k-5.00.2195SP3
This is important info, without it we may not be able to use the info you send in.
On Fri, 2 May 2003, Dave Miller wrote: [...]
The script is available at http://home.ptd.net/~compsol. Please make sure you get createdb.pl. There is another script, createwinedb.pl which will ONLY parse the wine spec files.
To run this you will need winedump, perl, and access to your windows directory from within Linux.
I mounted the Win95 filesystem using smbfs and all the files came out in uppercase. That's when I noticed that the script had trouble with uppercase filenames. I attached a patch below that should improve things.
I also noticed it does not give any warning if winedump is not in the path. It might be nice to do so.
The cleaner the windows install the better. We don't want to clutter the database with info from dlls not provided with windows. Usage is as follows:
createdb.pl -d -p <path to windows dir> -o <winver (ex. win98)
I ran it on a clean Win95 system which should be pretty clean (never been used, nothing installed on it). I ran the script as follows:
./createdb.pl -d -p /home/fgouget/wine/apidb/mnt/WINDOWS -o win95-4.00.950
(the script adds .ref automatically) And I sent you the resulting file in a separate email.
--- createdb.pl.orig 2003-05-01 21:43:20.000000000 -0700 +++ createdb.pl 2003-05-02 14:46:22.000000000 -0700 @@ -80,7 +80,7 @@ push @dir,$dirs."/".$_; } else {
- push (@dlllist,"$_ $dirs\n") if /.dll$/; + push (@dlllist,"$_ $dirs\n") if /.dll$/i; } } @dlllist = sort @dlllist; @@ -126,10 +126,10 @@ chomp($_); s/^\s*(.*?)\s*$/$1/; ($a,$b,$c,$d,$e)=split(/\s+/,$_); - $fullname = $c if ($a =~ /Contents/ & $c =~ /.dll|.DLL/); + $fullname = $c if ($a =~ /Contents/ & $c =~ /.dll/i); ($path,$name2)=split(/^.*//,$fullname);
- if ($c =~ /.dll|.DLL/ & $a =~ /Content/) { + if ($c =~ /.dll/i & $a =~ /Content/) { ($name,$junk)=split(/./,$name2); }
@@ -187,7 +187,7 @@ chomp($_); s/^\s*(.*?)\s*$/$1/; ($a,$b,$c,$d,$e)=split(/\s+/,$_); - $fullname = $c if ($c =~ /.dll$/ & $a =~ /Dump/); + $fullname = $c if ($c =~ /.dll$/i & $a =~ /Dump/); next LINE if (length $a == 0 | length $a == 2 & length $b == 2 & length $c == 2 & length $d == 2); next LINE if ($b =~ /^[0-9]+$/ & length $c == 0 | $a =~ /TimeDateStamp/); if ($a eq "Name:") {