[Tool] FGCBA - A tool to help pack makers v0.897

Discuss & post Update Pack addons here.
User avatar
Aserone
Posts: 306
Joined: Sat Mar 11, 2006 8:46 pm
Location: Opioid dependent head.

Post by Aserone » Fri Apr 21, 2006 12:32 am

n7Epsilon wrote:- New behaviour: Drop a CAB file on FGCBA and it will be unpacked to a temporary folder, then it will look for the 1st entries.ini file,
process it, uncompress (*.??_) and (*.cab) and try to re-create the AddOn CAB again to make sure that syntax is correct in the INF and INI and that all files in the package are present.
(I hope this helps for better testing and more feedback)
Sweet! Will try it out as much as I can. Just as a side note I do all my addons with your program now personal and public(8 public so far, should really credit you in my posts..). Not a single problem so far.

Keep up the excellent work!
Last edited by Aserone on Thu May 04, 2006 3:55 pm, edited 2 times in total.
//Aserone-Foxy | EULA: Everything I say/post is a lie and/or forwarded from swim.

User avatar
n7Epsilon
Moderator
Posts: 624
Joined: Thu Feb 17, 2005 1:37 am
Location: Cairo, Egypt

Post by n7Epsilon » Fri Apr 21, 2006 5:59 am

Version 0.61 up :wink:

- Many bugfixes in External CAB creation (fixed putting LFNs in temporary MakeCab directive file causing MakeCab to fail as it cannot read LFNs not surrounded by quotes).

- Fixes in CAB uncompressing in 2nd behaviour failing if using relative paths, fixed by internal conversion to absolute paths.

- Fixes in 8.3 compliance checking considering files with a - $ ! and ~ characters not compliant although those characters are valid. RegEx was only matching alphanumeric characters and underscore.

- Fixed bug with parsing empty [sysoc] section, empty sysoc section was incorrectly flagged as having an invalid syntax...

- Reminder to self: Never release a program when you're too tired to properly test... :oops:

User avatar
Aserone
Posts: 306
Joined: Sat Mar 11, 2006 8:46 pm
Location: Opioid dependent head.

Post by Aserone » Fri Apr 21, 2006 6:16 am

n7Epsilon wrote:Version 0.61 up :wink:

Many bugfixes found by more testing...
Hehe you work fast I see.

I have a little feature request.

I'm a little annoyed about clicking thru the warning about [DefaultInstall]

Code: Select all

!- 1 warning(s):
 - [DefaultInstall] section does not exist in *.inf!
If you could add a check for the [sysoc] in entries.ini and if exist for a specific inf, skip the warning for it.

These plugins really aren't for installing in windos after setup and it's really easy to add [DefaultInstall] if one want's to install after windos setup.

Nearly no new addons contain that section anymore anyway, it's obsolete.

If not could you atleast not make it pause? pretty please. ;)
//Aserone-Foxy | EULA: Everything I say/post is a lie and/or forwarded from swim.

User avatar
n7Epsilon
Moderator
Posts: 624
Joined: Thu Feb 17, 2005 1:37 am
Location: Cairo, Egypt

Post by n7Epsilon » Fri Apr 21, 2006 6:45 am

Done, version 0.611 is now up :wink:

You can still check it if it exists using /useDI...

User avatar
n7Epsilon
Moderator
Posts: 624
Joined: Thu Feb 17, 2005 1:37 am
Location: Cairo, Egypt

Post by n7Epsilon » Wed Apr 26, 2006 2:28 pm

Version 0.65 is now up :wink:

This is the (hopefully) last version in 0.6 series...

This is mainly a bugfix release and add 1 new feature: detection of double set variables in External.INF [Strings] and in [filenames] of entries.ini ...

Also when checking a CAB, the re-creation will no longer build completely, instead it will do all necessary pre-build checks to make sure that the files are intact and the format is correct, then it will terminate... (since creating the AddOn CAB after the checks are done is only a waste of time)...

- I have starting working on what I hope will end up a REG to INF converter in FGCBA..., I will also add checking for unassigned variables...

User avatar
Aserone
Posts: 306
Joined: Sat Mar 11, 2006 8:46 pm
Location: Opioid dependent head.

Post by Aserone » Wed Apr 26, 2006 3:13 pm

n7Epsilon wrote:- I have starting working on what I hope will end up a REG to INF converter in FGCBA..., I will also add checking for unassigned variables...
This sounds promising. I hope you succeed were everyone else have falied. ;)

Another little "bug" i've found. If for example i'm adding an inf file with "_x" it still compresses it to *.in_.

Code: Select all

[txtsetup_files]
foxyhive.inf = 1,,,,,,_x,,3,3
Anyway good work as always.. :P
Last edited by Aserone on Wed Apr 26, 2006 4:29 pm, edited 1 time in total.
//Aserone-Foxy | EULA: Everything I say/post is a lie and/or forwarded from swim.

User avatar
n7Epsilon
Moderator
Posts: 624
Joined: Thu Feb 17, 2005 1:37 am
Location: Cairo, Egypt

Post by n7Epsilon » Wed Apr 26, 2006 3:37 pm

That's because FGCBA never looked at the [txtsetup_files] flags in the 1st place. I always assumed that the INF is to be compressed....

I'll implement reading and processing the flags in the next version...

User avatar
Kelsenellenelvian
Moderator
Posts: 4383
Joined: Tue Nov 30, 2004 8:32 pm
Location: Pocatello, ID
Contact:

Post by Kelsenellenelvian » Wed Apr 26, 2006 3:42 pm

Any chance of this tool getting a graphic interface?

User avatar
n7Epsilon
Moderator
Posts: 624
Joined: Thu Feb 17, 2005 1:37 am
Location: Cairo, Egypt

Post by n7Epsilon » Wed Apr 26, 2006 4:03 pm

Short answer:
Yes it is planned, but not at this time.

Long Explanation:
I don't intend on making a GUI for FGCBA at this point in development. Making a GUI would require a significant re-write (and I am still learning the dark paths of System.Windows.Forms :? )

I am following the GNU/Linux school of thought ( :wink: ) on this, ie: I will do a GUI rewrite of FGCBA when its features are complete enough that a GUI would significantly enhance its usability.

I think maybe around the 0.9-1.0 releases, I will re-write FGCBA in GUI mode hopefully if a Reg To Inf parser makes it and when I get through with my upcoming finals... (God I hate Stereochemistry... :lol: )

User avatar
Kelsenellenelvian
Moderator
Posts: 4383
Joined: Tue Nov 30, 2004 8:32 pm
Location: Pocatello, ID
Contact:

Post by Kelsenellenelvian » Wed Apr 26, 2006 4:19 pm

LOL thanks for the heads up.

User avatar
n7Epsilon
Moderator
Posts: 624
Joined: Thu Feb 17, 2005 1:37 am
Location: Cairo, Egypt

Post by n7Epsilon » Thu Apr 27, 2006 1:02 pm

Version 0.66 is now up :wink:

Changelog:
- Major bug fix in shared variable substitution function when more than once variable is specified in the input dictionary, this was causing unhandled exceptions.

- 100% compliance with Gosh MSFN TXTSETUP.SIF Guide and RyanVM TXTSETUP.SIF syntax (and strict checking and enforcement of the correct syntax, even the numbers are now checked and _x is processed):

- I use a very long Regular Expression for this (for those who are interested - everything is on one line):

Code: Select all

\A(?!;)(?<ShortName>[^;]*)\s*=\s*\d+,,,,,,(?<DoNotCompressOrSourceDisksNamesEntry>(_x)?|_?\d+_?),(?<Location>\d*),[0-3],(0|,?,?[1-3]),?(?<LongName>[^;]*)\z
As it is evident, anything incorrect and this won't match and you get a syntax error.

- Files with _x flag are now correctly copied without being compressed as also evident from above.

- Some cosmetic fixes and corrected some error messages (eg: changed [txtsetup_entries] to [txtsetup_files] in error messages).

- DefaultInstall warning restored, pause only at the end of execution to show non-fatal warnings (no more PAUSE in the middle of execution) because I like to be a perfectionist and this way FGCBA tells you everything it can about the file without holding back and info, this is compensated for by not pausing in the middle of execution.

- Re-released to fix the crash.

Cyber_One

Post by Cyber_One » Fri Apr 28, 2006 5:14 pm

@n7Epsilon, Cool tool, and good work so far,

Whats the chances of this tool being built on to act as an install monitor for a program then creating an adon pack based on the install.

I have seveval programs that don't have the ability to run switchless installers, however I noticed that the install the files and reg key the same way over three test machines.

of course most of these programs are licenced and can not be upload here.

So far Ryans intergrator has saved me almost a days work each time I have to re-install one of the system at work.

This is of course just a thought...
something like this would make creating intergated addons sooo much easier and install faster again.

Good work so far, don't let me stop you.

Of course, Ryan deserves credit for a great intergrator as well as may others here.

User avatar
Aserone
Posts: 306
Joined: Sat Mar 11, 2006 8:46 pm
Location: Opioid dependent head.

Post by Aserone » Sat Apr 29, 2006 4:34 am

n7Epsilon wrote:Version 0.66 is now up :wink:

Code: Select all

\A(?!;)(?<ShortName>[^;]*)\s*=\s*\d+,,,,,,(?<DoNotCompressOrSourceDisksNamesEntry>(_x)?|_?\d+_?),(?<Location>\d*),[0-3],(0|,?,?[1-3]),?(?<LongName>[^;]*)\z
- Files with _x flag are now correctly copied without being compressed as also evident from above.
Thanks for implementing! You rule.. ;)
n7Epsilon wrote:- DefaultInstall warning restored, pause only at the end of execution to show non-fatal warnings (no more PAUSE in the middle of execution) because I like to be a perfectionist and this way FGCBA tells you everything it can about the file without holding back and info, this is compensated for by not pausing in the middle of execution.
Yeah, that's what I wanted in the first place, actually I did miss that little warning, I get all cosy inside when I see it.

About the GUI i'm glad to hear you're more interested in making it more complete before thinking about doing it. There just really is no need yet. Not a very whole lot of switches as of now.

A couple of requests/bugs:

*Include some sort of readme/changelog/eula like in your first post.

*Some sort of ability to continue even if there are errors. Like it will do it's best and ignore it. Maybe a switch? I know this could lead to many problems, but it will also mean that things written in a certain way that fgcba don't like, will work and it could be a temprary solution so you don't have to implement everything, or before you do it.

*I've found that if I use.

Code: Select all

[ra.AddShortcut] 
Name       = RegAlyzer
CmdLine    = 16422,"%appd_dir%",RegAlyzer.exe
SubDir     = %security%
WorkingDir = 16422,"%appd_dir%"
InfoTip    = Software to analyze and edit the registry

[wind.AddShortcut]
Name       = RegAlyzer
CmdLine    = 16422,"%appd_dir%",RegAlyzer.exe
SubDir     = %wind_lnk%
WorkingDir = 16422,"%appd_dir%"

[Strings]
wind_lnk = "..\..\..\..\WINDOWS"
security = "Security"
Note: I'm not using this in released RegAlyzer addon if anyones wondering (because "WINDOWS" is not env).

I get:

Code: Select all

**** FGCBA 0.66 ** by n7Epsilon ****
** URL: http://ryanvm.net/forum/viewtopic.php?p=18119

*** Reading Entries_foxy_RegAlyzer.ini...
 ** Reading INF file: RegAlyz.inf ...
  * Parsing [Optional Components] section...
  * Parsing [RegAlyz] section...
An entry with the same key already exists.

*** Press any key to exit . . .
To fix I must rename one of shortcuts name "Name = RegAlyzer" but even with the same name the final addon installs just fine.

*If I include:

Code: Select all

DelFiles = somthing.idel

[somthing.idel]
********.PNF
I get an error saying something like, couldn't find file "********.PNF" but the funny thing is if I rename it to "********.pnf" all works just fine. hehe ;)
Last edited by Aserone on Thu May 04, 2006 3:56 pm, edited 3 times in total.
//Aserone-Foxy | EULA: Everything I say/post is a lie and/or forwarded from swim.

User avatar
n7Epsilon
Moderator
Posts: 624
Joined: Thu Feb 17, 2005 1:37 am
Location: Cairo, Egypt

Post by n7Epsilon » Sun Apr 30, 2006 12:37 pm

Aserone wrote:*Include some sort of readme/changelog/eula like in your first post.
I will construct a page on http://fgcba.xable.net/ that will hold all such information including detailed info about how to use ... etc. (but as of now, I have not yet started, just got home from Pharmacognosy lab final)
Aserone wrote:*Some sort of ability to continue even if there are errors. Like it will do it's best and ignore it. Maybe a switch? I know this could lead to many problems, but it will also mean that things written in a certain way that fgcba don't like, will work and it could be a temprary solution so you don't have to implement everything, or before you do it.
You are right, I should implement something like that... But that would require rewriting the Warnings/Errors system to cope for fatal but skippable errors, and this would complicate the code a lot... (since each item depends on the next to continue), I'll try to get something working in the coming versions...
Aserone wrote:*I've found that if I use.

Code: Select all

[ra.AddShortcut]
    Name       = RegAlyzer
    CmdLine    = 16422,"%appd_dir%",RegAlyzer.exe
    SubDir     = %security%
    WorkingDir = 16422,"%appd_dir%"
    InfoTip    = Software to analyze and edit the registry

    [wind.AddShortcut]
    Name       = RegAlyzer
    CmdLine    = 16422,"%appd_dir%",RegAlyzer.exe
    SubDir     = %wind_lnk%
    WorkingDir = 16422,"%appd_dir%"

    [Strings]
    wind_lnk = "..\..\..\..\WINDOWS"
    security = "Security"

Note: I'm not using this in released RegAlyzer addon if anyones wondering (because "WINDOWS" is not env).

I get:

Code: Select all

**** FGCBA 0.66 ** by n7Epsilon ****
    ** URL: http://ryanvm.net/forum/viewtopic.php?p=18119

    *** Reading Entries_foxy_RegAlyzer.ini...
     ** Reading INF file: RegAlyz.inf ...
      * Parsing [Optional Components] section...
      * Parsing [RegAlyz] section...
    An entry with the same key already exists.

    *** Press any key to exit . . .
To fix I must rename one of shortcuts name "Name = RegAlyzer" but even with the same name the final addon installs just fine.
This bug has been fixed and a new logging system has been constructed that will provide detailed info about vague exceptions like that so I can fix bugs like this much faster. :wink: :)

If I include:

Code: Select all

DelFiles = somthing.idel

    [somthing.idel]
    ********.PNF
I get an error saying something like, couldn't find file "********.PNF" but the funny thing is if I rename it to "********.pnf" all works just fine. hehe :wink:
This has also been fixed :wink: :) Thanks for all the bug reporting.

@Cyber_One
Good thought, but this is way too difficult for me to do in C# (Monitor the registry), better use a dedicated program like InstallWatch Pro or InstallRite for that...
Once I get round to starting work on the Reg 2 INF parser, I will make it possible to put a REG file and reference it in the INF and FGCBA would automatically convert it to INF and add its contents in place of its reference inside the [AddReg] section of the INF...

oh, almost forgot to say, version 0.68 is out... :wink: , phew... need some sleep...

Most significant improvement in this version is the logging system (which will be enhanced with each version)..., to activate, use /log:"Log.txt" on the command line...

Edit: Re-released to fix a code typo that broke txtsetup.sif renaming :oops:

edit: omg, my 200th post! :D , oh well....

User avatar
n7Epsilon
Moderator
Posts: 624
Joined: Thu Feb 17, 2005 1:37 am
Location: Cairo, Egypt

Post by n7Epsilon » Mon May 01, 2006 12:59 pm

<removed> Problem resolved, documentation for FGCBA is at http://fgcba.xable.net in addition to this thread.
Last edited by n7Epsilon on Mon May 01, 2006 6:04 pm, edited 3 times in total.

Xable
Posts: 981
Joined: Tue May 03, 2005 6:38 pm
Contact:

Post by Xable » Mon May 01, 2006 1:57 pm

EDIT,
Ok me and n7Epsilon have spoken and i`ve agreed to continue hosting FGCBA for as long as i don`t need the bandwidth.

User avatar
n7Epsilon
Moderator
Posts: 624
Joined: Thu Feb 17, 2005 1:37 am
Location: Cairo, Egypt

Post by n7Epsilon » Tue May 02, 2006 4:01 pm

Version 0.69 is up ;)

- I have implemented an ability to ignore aborting when reaching the Errors count check. This is built upon /SImode (now changed to /QuirksMode). This will cause FGCBA to continue processing ignoring any errors.
- Of course this will lead to broken addons, but it can be useful for testing. and if the addon being tested has no errors, then switch will have no effect.

- Some of the sections being checked weren't listed on the console output (and log file), They have been added and slightly more info in the log file.

- Fixed a bug in the [SourceDisksNames.x86] parser incorrectly reading the name of the External CAB in the external INF if the cab was preceeded by a space and wrapped in quotes (seen in OrcoXP's Image Resizer Powertoy addon and is recognized as valid by Windows).

- Minor bug fix in [txtsetup_files] and [dosnet_files] parsers sometimes unnecessarily applying the RegEx pattern on blank lines, this has been fixed.

- Fixed a bug in the Argument Parser (due to the testing hacks) that broke detection of invalid switches and double specified switches.

- AddOn testing mode switch processing code is now tied to the normal mode switch processing code, so any switches that apply to normal mode apply to testing mode as well (except for /cab which is internally overridden to point to Test.cab), so now FGCBA "Whatever_AddOn.cab" /QuirksMode /useDI /Log:Log.txt works correctly.

(btw, none of the parameters are case sensitive).

User avatar
n7Epsilon
Moderator
Posts: 624
Joined: Thu Feb 17, 2005 1:37 am
Location: Cairo, Egypt

Post by n7Epsilon » Thu May 04, 2006 6:00 am

Ok, the Reg2INF code is almost complete (I can extract data from the REG file) but I need some help with the correct (and optimal) syntax (to put together the line correctly). The MSDN INF Reference is confusing (and WillyPad does not obey the FLAGS parameters ? yet they still work ?), and I've read somewhere here that WillyPad is not accurate with anything other than strings (might be mistaken though)...

I've made a specially crafted, difficult to parse REG file that confuses even WillyPad (it adds extra quotes), can anyone please turn it into a correct INF style [AddReg] section so that I can use it as a reference ?

Once I verify the syntax, I will release 0.70 with Reg 2 INF support !! (yay!!)

Here's my REG:
http://rapidshare.de/files/19588672/Dummy.reg.html
(tried attaching here directly in

Code: Select all

 tags but that added extra carriage returns and messed up the decimal and hex layout) 

I can already contruct string values correctly, but I don't know how dword should look (WillyPad, puts it as is but reverse the order of the bytes and separates them into groups of 2 separated by commas), and I have no idea how REG_MULTI_SZ and REG_BINARY should look in a INF file (MSDN INF specifies some flags that WillyPad doesn't use)...

Thanks a lot in advance...

User avatar
Aserone
Posts: 306
Joined: Sat Mar 11, 2006 8:46 pm
Location: Opioid dependent head.

Post by Aserone » Thu May 04, 2006 7:09 am

Here it is. There are a couple of different ways of writing some of the different reg entries.

EDIT: Removed because it messed up the forum layout. ;)


As one can see, the problem with "hex(2)"(Reg_Expand_SZ) and "hex(7)"(Reg_Multi_SZ) is that they need to be written in clear text, or that's the only way I know it, with different ,"" sections were there are supposed to be a new row.

"hex"(Reg_Binary) can be written as ",1," or ",0x00030003," as well many others can be written differently. I've used "TestBinary",0x00030003 there and "BOOM",1 with this one.

To try it out just copy, save as inf and "Install". It will produce completely identical reg entries as the "exported" reg after applying your dummy.reg.

(I reserve any errors to the fact i'm home, sick. ;))
Last edited by Aserone on Thu May 04, 2006 3:49 pm, edited 6 times in total.
//Aserone-Foxy | EULA: Everything I say/post is a lie and/or forwarded from swim.

User avatar
5eraph
Site Admin
Posts: 4621
Joined: Tue Jul 05, 2005 9:38 pm
Location: Riverview, MI USA

Post by 5eraph » Thu May 04, 2006 7:29 am

Move Zig.

User avatar
n7Epsilon
Moderator
Posts: 624
Joined: Thu Feb 17, 2005 1:37 am
Location: Cairo, Egypt

Post by n7Epsilon » Thu May 04, 2006 7:30 am

@5eraph Rofl Ha ha ha ha :D Very funny, I have that game actually...

@Aserone: Thanks for the help :)
You're right, that's the 1st problem that came to mind when I saw your text... (I'll work on it...) (Almost anything can be done with regular expressions)...

User avatar
Aserone
Posts: 306
Joined: Sat Mar 11, 2006 8:46 pm
Location: Opioid dependent head.

Post by Aserone » Thu May 04, 2006 7:37 am

n7Epsilon wrote:@5eraph Rofl Ha ha ha ha :D Very funny, I have that game actually...
Don't have the game, but the video owns. hehe ;)

Hope it help's but it's insanly much work to have compability with hex(2) and hex(7), I would think anyway.

Keep up the good work! And please feel free to ask me about anything and I will do my best to explain.
//Aserone-Foxy | EULA: Everything I say/post is a lie and/or forwarded from swim.

User avatar
n7Epsilon
Moderator
Posts: 624
Joined: Thu Feb 17, 2005 1:37 am
Location: Cairo, Egypt

Post by n7Epsilon » Thu May 04, 2006 12:04 pm

Good news, I have finally cracked the hex(2) case and hex(7) seems quite similar !

For whomever is interested (and I hope someone knows why):
These are just the characters converted to hex, alternated with 00 and padded at the end (I don't know to how much or why)... Does anyone know why ?

I currently drop all 00s from processing, and end up with string! So REG_EXPAND_SZ is working (and MULTI_SZ will be very soon).

@Aserone: I seem to have discovered somethings else:
FLAG 0x00010002 means REG_MULTI_SZ but do not overwrite existing value.
while 0x00010000 does overwrite the value...

(could it be a combination of 0x00000002 and 0x00010000 ?)

So I am going to use FLAG 0x00010000 instead.

User avatar
Aserone
Posts: 306
Joined: Sat Mar 11, 2006 8:46 pm
Location: Opioid dependent head.

Post by Aserone » Thu May 04, 2006 1:04 pm

n7Epsilon wrote:@Aserone: I seem to have discovered somethings else:
FLAG 0x00010002 means REG_MULTI_SZ but do not overwrite existing value.
while 0x00010000 does overwrite the value...

(could it be a combination of 0x00000002 and 0x00010000 ?)

So I am going to use FLAG 0x00010000 instead.
Yeah, that might very well be the case. I'm just learning as I write/try. What I came up with is a mix of the scarse info micro$oft/msdn/msfn have released, and checking how hive***.inf sets up windows during install.

I'm happy to hear you're doing well with your reg2inf converter!
//Aserone-Foxy | EULA: Everything I say/post is a lie and/or forwarded from swim.

User avatar
n7Epsilon
Moderator
Posts: 624
Joined: Thu Feb 17, 2005 1:37 am
Location: Cairo, Egypt

Post by n7Epsilon » Thu May 04, 2006 3:27 pm

Version 0.70 is FINALLY up ! ;) :D , Credits to Aserone for the reference INF... (can you please remove the quote tags because it is making the page wider than normal)...

- Only change is the Reg2INF parser I've spent the last 15 hours working on (and debugging tens of times)
- Other thing is that the download is now in a ZIP file (FGCBA is getting bigger and ZIP file reduces size significantly) to help with bandwidth and download speed.

User avatar
Aserone
Posts: 306
Joined: Sat Mar 11, 2006 8:46 pm
Location: Opioid dependent head.

Post by Aserone » Fri May 05, 2006 1:34 am

n7Epsilon wrote:- Only change is the Reg2INF parser I've spent the last 15 hours working on (and debugging tens of times)
Will check it out now. 15 hours you say? omg, thank you, thank you, for all your hard work!

This will come real handy, now I can finally release my hive tweak addon (nlite way, the final thing nlite can but not the Integrator (if you don't know how that is ;))) with peoples custom tweaks! Hope it goes well. :P
//Aserone-Foxy | EULA: Everything I say/post is a lie and/or forwarded from swim.

User avatar
n7Epsilon
Moderator
Posts: 624
Joined: Thu Feb 17, 2005 1:37 am
Location: Cairo, Egypt

Post by n7Epsilon » Fri May 05, 2006 11:10 am

Version 0.71 is up ;)

- Small bugfix in Reg2Inf converter (incorrectly converting empty values that are hex(n) where n is 2 or 7)
- Added support for hex(0): (which is REG_NONE) (btw that is FLAG: 0x00020001)

User avatar
n7Epsilon
Moderator
Posts: 624
Joined: Thu Feb 17, 2005 1:37 am
Location: Cairo, Egypt

Post by n7Epsilon » Fri May 05, 2006 1:59 pm

Version 0.711 is up ;) (sorry for the quick updates but I like to be a perfectionist)...

- Fixed cosmetic issues in the error messages of the REG parser (was parsing \r\n literally - looks very ugly)
- Fixed issue where reading REG file in any encoding other than Unicode falied. (FGCBA will now try to guess the encoding of the REG file before reading).

I am going to release the Reg2INF converter (including its source) in another thread shortly as a separate program (as it is very useful and much better than WillyPad - I also hope that this will elicit more testing so it can be bug-free)

User avatar
ENU_user
Posts: 1253
Joined: Wed Jan 25, 2006 1:42 pm

Post by ENU_user » Tue May 09, 2006 12:12 am

since its drag and drop capable now all we need now is a nice icon for the gui and a SendtoAddon for it :P

User avatar
n7Epsilon
Moderator
Posts: 624
Joined: Thu Feb 17, 2005 1:37 am
Location: Cairo, Egypt

Post by n7Epsilon » Sun May 14, 2006 6:21 am

Version 0.72 is up ;)

Sorry for not updating as often as I do... Finals approaching...

Anyway quick update:
1. Updated Reg2Inf with 0.23 engine
2. Added DelReg conversion (must reference another magic comment inside a DelReg section for it to work, even if pointing at the same REG file.)
3. Reg2Inf will now not remove the magic comment if either no results were obtained or if the conversion failed... (To prevent unnecessary re-writing of magic comments)...

User avatar
n7Epsilon
Moderator
Posts: 624
Joined: Thu Feb 17, 2005 1:37 am
Location: Cairo, Egypt

Post by n7Epsilon » Mon May 15, 2006 5:45 pm

Version 0.721 is up ;)

Small bug fix, was not escaping variables in dynamically generated RegExs.

It was working until I tried Kel's NotePad++ addon which has + inside its filenames. This caused this bug to manifest itself.

I plan for next versions:
1. Syntax checking for Registry entries in AddReg / DelReg sections
2. Check for unassigned variables.
3. Ability to launch FGCBA with the External INF directly to check the External INF for errors directly (like I already did for checking pre-packaged addons)...

Don't have enough time (* kicks textbook off table *) to implement it, but will do it asap ...

User avatar
Siginet
Site Admin
Posts: 2894
Joined: Fri May 27, 2005 1:07 pm
Location: Planet Earth
Contact:

Post by Siginet » Mon May 15, 2006 7:17 pm

Get your finals done. ;) We can wait. Your life is more important than us. Your tools are very helpful... but if it gets in the way of your future... put it aside till you have more time. Summer break is just around the corner. :D

Thanks a lot n7Epsilon!
Image
--Siginet--

Techware
Your Virtual Technician
Computer Management Software

User avatar
n7Epsilon
Moderator
Posts: 624
Joined: Thu Feb 17, 2005 1:37 am
Location: Cairo, Egypt

Post by n7Epsilon » Sun May 21, 2006 3:19 pm

I'm done working on version 0.80, This post contains the changelog of this version.

COMPLETE: Complete rewrite of SimpleINIEditor.cs (v3)
COMPLETE: Syntax checks for AddReg / DelReg
COMPLETE: Syntax checks for ExtraFileEdits (check no. of poles) and make sure a number value is specified at the end of the line.
COMPLETE: Fixed a bug where in some cases special characters in section name would confuse SimpleINIEditor (fixed while rewriting)
COMPLETE: Support for launch with External INF as 1st parameter for pre-processing.
COMPLETE: Proper return of errorlevel values
COMPLETE: Complete switch to using only CabArc.exe (replace MakeCab.exe & Extract.exe) - Now only needs EXPAND.EXE and CABArc.exe, better code for checking their existence too !
COMPLETE: Code cleanup, Enhancements to logger.
COMPLETE: Check unassigned variables

Bugs:
FIXED BUG: In case of double-directives (double AddReg= statement (eg: RVMUpPck.inf)), only the 1st instance is processed. - implement ref counts inside SimpleINIEditor
FIXED BUG: Fixed uncompressing compressed External INF was broken (Regex One Liner Fix) (, RegexOptions.IgnoreCase).
FIXED BUG: DestDirs - referenced section does not check RenameDictionary for possible renaming operations if the section contains a file previously referenced and has a rename operation set (situation occurs in uninstallable INFs)
FIXED BUG: You could specify a non-existant section in the CopyFiles directive and FGCBA would not regard this as an error.
FIXED BUG: FGCBA was not detecting invalid syntax in [dosnet_files] section.

PLANNED: Spin off SimpleINIEditor v3 into yet another useful tool (INIedit) which would work similar to DEBUG.EXE from M$.
PLANNED: Support Integrator v1.2.3 methods (but need somebody to make an addon that utilises these methods to their fullest in order to use as a reference)

User avatar
n7Epsilon
Moderator
Posts: 624
Joined: Thu Feb 17, 2005 1:37 am
Location: Cairo, Egypt

Post by n7Epsilon » Sun May 28, 2006 4:18 pm

Version 0.80 is FINALLY up ;)

This is a recommended update, fixes many old bugs (and new ones too :lol: ) and adds new functionality.
Changelog is in the previous post...

(Phew, takes some time off to study for next subject...)

User avatar
odyn1982
Posts: 150
Joined: Sun Oct 23, 2005 11:38 am
Location: Bialystok, Poland

Post by odyn1982 » Sun May 28, 2006 5:07 pm

I think I've found a bug.
When I want to recreate Ad-Aware addon pack (made by Siginet) I get this:

Code: Select all

 - ProfileItems key referenced non-existant AddShortcut section:
    [prog.AddShortcut] in AdAware.inf!

   - Reading [manual.AddShortcut] section...
   - Reading [uninstall.AddShortcut] section...
   - Checking [prog.AddReg] section...

 !- 1 error(s):
  - ProfileItems key referenced non-existant AddShortcut section:
    [prog.AddShortcut] in AdAware.inf!
 !- 1 error(s). 
but with older builds it always worked.
This is AdAware.inf:

Code: Select all

[Version]
signature="$CHICAGO$"

[DefaultInstall]
OptionDesc   ="AdAware"
Tip		     ="AdAware"
Modes	     =0,1,2,3
CopyFiles    =prog.main,prog.lang,prog.plugins,prog.skins
AddReg       =prog.AddReg
ProfileItems =prog.AddShortcut,manual.AddShortcut,uninstall.AddShortcut

[Optional Components]
AdAware

[AdAware]
OptionDesc   ="AdAware"
Tip		     ="AdAware"
Modes	     =0,1,2,3
CopyFiles    =prog.main,prog.lang,prog.plugins,prog.skins
AddReg       =prog.AddReg
ProfileItems =prog.AddShortcut,manual.AddShortcut,uninstall.AddShortcut

[SourceDisksNames.x86]
1="MainProgramFiles","AdAware.cab",,"i386"

[DestinationDirs]
prog.main    = 16422,"%prog_dir%"
prog.lang    = 16422,"%lang%"
prog.plugins = 16422,"%plugins%"
prog.skins   = 16422,"%skins%"

[SourceDisksFiles]
Ad-Aware.exe=1
alert.wav=1
defs.ref=1
INSTALL.LOG=1
license.txt=1
manual.chm=1
unregaaw.exe=1
UNWISE.EXE=1
AdAware.ask=1

[prog.AddShortcut] 
Name        =Ad-Aware SE Personal
CmdLine     =16422,%prog_dir%,Ad-Aware.exe
SubDir      =%start%
WorkingDir	=16422,%prog_dir%

[manual.AddShortcut]
Name        =Ad-Aware SE Manual
CmdLine     =16422,%prog_dir%,manual.chm
SubDir      =%start%
WorkingDir	=16422,%prog_dir%

[uninstall.AddShortcut]
Name        =Uninstall Ad-Aware SE Personal
CmdLine     =16422,%prog_dir%,UNWISE.EXE
SubDir      =%start%
WorkingDir	=16422,%prog_dir%

[prog.addreg]
HKLM,"SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\UNINSTALL\Ad-Aware SE Personal","DisplayName",,Ad-Aware SE Personal
HKLM,"SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\UNINSTALL\Ad-Aware SE Personal","UninstallString",,"""%16422%\%prog_dir%\UNWISE.EXE"""
HKLM,"SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\UNINSTALL\Ad-Aware SE Personal","NoModify",0x00010001,0x00000001
HKLM,"SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\UNINSTALL\Ad-Aware SE Personal","NoRepair",0x00010001,0x00000001

[prog.main]
Ad-Aware.exe
alert.wav
defs.ref
INSTALL.LOG
license.txt
manual.chm
unregaaw.exe
UNWISE.EXE

[prog.lang]

[prog.plugins]

[prog.skins]
"Ad-Aware SE default.ask",AdAware.ask

[Strings]
start     ="Lavasoft Ad-Aware SE Personal"
prog_dir  ="Lavasoft\Ad-Aware SE Personal"
lang      ="Lavasoft\Ad-Aware SE Personal\Lang"
plugins   ="Lavasoft\Ad-Aware SE Personal\Plugins"
skins     ="Lavasoft\Ad-Aware SE Personal\Skins"

User avatar
n7Epsilon
Moderator
Posts: 624
Joined: Thu Feb 17, 2005 1:37 am
Location: Cairo, Egypt

Post by n7Epsilon » Mon May 29, 2006 4:55 am

Ok, this has been fixed. (Bugs in new SimpleINIEditor class)

Version 0.81 has been released ;)

Fixed: Could not match section if any whitespace was present on same line as [SectionName]
Fixed: SimpleINIEditor would sometimes stop parsing a section's data if it reached a comment.
Fixed: Bug in ArrayList.BinarySearch caused reference mismatches.

Please let me know if there are any more problems, thank you odyn1982 !

User avatar
odyn1982
Posts: 150
Joined: Sun Oct 23, 2005 11:38 am
Location: Bialystok, Poland

Post by odyn1982 » Mon May 29, 2006 5:35 am

Now tested with my odyn1982_AudioCodecs_AddonPack.cab. And there's one problem with adding one file to multiple directories.For example:

Code: Select all

[SourceDisksFiles]
win2d1.exe=1
win2d2.exe=1

[wavegain]                         
win2dos.exe,win2d1.exe   
 
[MultiFr]
win2dos.exe,win2d2.exe
FGCBA now stops creating addon

Code: Select all

Item has already been added. Key in dictionary: 'win2dos.exe'  Key being added: 'win2dos.exe'
Before 0.80/81 it worked ;)
PS. Tested with other addons and no problems :)

User avatar
n7Epsilon
Moderator
Posts: 624
Joined: Thu Feb 17, 2005 1:37 am
Location: Cairo, Egypt

Post by n7Epsilon » Mon May 29, 2006 5:05 pm

Version 0.811 is up ;)

- Logger was not working even when /log was specified with first parameter as the External INF
- Stupid bug in a new reverse non-copy file section long name lookup feature, 2 liner fix.
- Updated documentation (http://fgcba.xable.net/) to add errorlevel return values (should have done that since 0.80 :lol: )

@odyn1982, I appreciate your help, but next time please use the /log:"LogFile.txt" parameter.

The bug causing the problem you reported was a very silly bug.
I spent 2 hours stepping line by line in the External INF parser to find it. :lol: ...

/log is really useful for bug reporting because it contains a stack trace that pinpoints the exact function that caused the unexpected exception. It is better to attach the LogFile produced than attaching the result of the screen as it contains information that I can use to fix bugs like this so much faster.

Thanks for the bug report, and please tell me if there are any more problems ;) !

User avatar
odyn1982
Posts: 150
Joined: Sun Oct 23, 2005 11:38 am
Location: Bialystok, Poland

Post by odyn1982 » Mon May 29, 2006 5:22 pm

Ok, my fault ;) I used /log switch when I was testing 0.81 but when reporting bug I only wrote last words from log file :oops: . Now I will remember :D
Thanks for your hard work!

User avatar
Aserone
Posts: 306
Joined: Sat Mar 11, 2006 8:46 pm
Location: Opioid dependent head.

Post by Aserone » Sat Jun 17, 2006 2:09 pm

Much changes in the 0.8 line.

After you rewrote the SimpleINIEditor and fixed some problems with comments in v0.811 I've got a very very tiny "bug".. ;)

Well in all my entries*.ini files I begin with something like this with info most of the time:

Code: Select all

; Aserone-Foxy

[general]
As of v0.8 it will rewrite it to:

Code: Select all

; Aserone-Foxy
[general]
Which is hard to read/doesn't look good with a more complete "intro" comment.

Secondly it's not possible to make silent addons using "/quirksmode" anymore. It'll copy the files alright to "AddOnFiles" folder but in "output" it ignores the file from the i386 directory. (haven't logged it yet, simply reverted to v0.721, sorry..)

I might have missed something (like a new switch) when it comes to this second "bug", it's summer afterall.. ;)
//Aserone-Foxy | EULA: Everything I say/post is a lie and/or forwarded from swim.

User avatar
n7Epsilon
Moderator
Posts: 624
Joined: Thu Feb 17, 2005 1:37 am
Location: Cairo, Egypt

Post by n7Epsilon » Sat Jun 17, 2006 2:24 pm

Hi Aserone! Can you PM me an addon that does this to debug FGCBA ?

I rewrote SimpleINIEditor because I needed to implement new features in it that would work too slowly or be difficult to implement in v2. Looks like it turned out to need more work, but I've recovered from my HD crash and I'm in summer now !
Aserone wrote:After you rewrote the SimpleINIEditor and fixed some problems with comments in v0.811 I've got a very very tiny "bug".. ;)
I've fixed that now.
Note however, that non-removing of extra carriage returns will only be for comments before the first section only.

For example, this:

Code: Select all

[ASection]
Blah Blah
...

;comment

[AnotherSection]
MoreStuff
will become this:

Code: Select all

[ASection]
Blah Blah
...

;comment
[AnotherSection]
MoreStuff
Aserone wrote:Secondly it's not possible to make silent addons using "/quirksmode" anymore. It'll copy the files alright to "AddOnFiles" folder but in "output" it ignores the file from the i386 directory
EDIT: This has been fixed.

-- Complete, see next post...
Last edited by n7Epsilon on Sat Jun 17, 2006 8:49 pm, edited 1 time in total.

User avatar
n7Epsilon
Moderator
Posts: 624
Joined: Thu Feb 17, 2005 1:37 am
Location: Cairo, Egypt

Post by n7Epsilon » Sat Jun 17, 2006 8:49 pm

Version 0.85 is now up ;)

Changelog:
fixed: CabArc.exe detection was not working (typo)
fixed: Do not strip extra \r\n's from comments before 1st section in INF / INI file.
fixed: No longer messing up of section ordering if INI/INF contained more than 10 sections (.NET HybridDictionary behaviour).
fixed: i386 folder is now correctly added recursively into the AddOn CAB including any subfolders. (However, I can't get CabArc.exe to add Empty folders into the CAB no matter what I do...)
updated: Reg2Inf engine to 0.25 (without experimental /RepVars support)

Please let me know if there are any more problems ;)

User avatar
n7Epsilon
Moderator
Posts: 624
Joined: Thu Feb 17, 2005 1:37 am
Location: Cairo, Egypt

Post by n7Epsilon » Sun Jun 18, 2006 9:43 pm

Version 0.851 is now up ;)

Changelog:
1. In order to fix the section order scrambling when re-writing INI / INF bigger than 10 sections, I had to switch from using a HybridDictionary to a class I found on CodeProject (LargeListDictionary), however that had a bug which caused Case-Insensitive matching to be broken. This has been fixed.

2. Some addons were using Environment variables in the AddReg / DelReg sections (eg: %SystemRoot%), This caused FGCBA to generate unassigned variable alerts even if they were valid Environment Variables. This has also been fixed.

- I have tested this release on the following addons and all check out OK:
Kels_Bootvis_CPL_addon_v1.1.37.0.cab
Kel_ResHack_Addon_v1.cab
XAddon_Unlocker-Light-v1.8.3.cab
RVMAddonsTCPIP_1.1.cab
RVMAddonsUxtheme_1.1.cab
Kel_CursorW_addon_v1.CAB
Removal_WindowsMessanger_DeleteAddon_v1.5.cab
Xable_HashTab-v1.9_addon.cab
Xable_CalcPlus-v1.2_addon.cab
shx_ZacamAddon_TTFEXT_v3.cab
Kels_Nirsoft_AiO_addon_v2.0.CAB
Kel_TweakUI_Addon_v1.1.cab
odyn1982_SysInternals_AddOn.CAB
Notepad2_Addon.cab
RaveRod_MSTSC-v1.0_Addon.cab
3psil0N_Wallpapers_AddOn.cab
Kels_UserPass2_AddOn_v1b.cab
Removal_MSNExplorer_DeleteAddon_v1.7.cab
Removal_WindowsTour_DeleteAddon_v1.8.cab

Let me know if there are any more problems ;) I love feedback.

aliaz

Post by aliaz » Wed Jun 21, 2006 3:38 am

thanks man, fgcba really helped me nail down the bad egg. roguespear's admin addon was found with critical errors.

User avatar
n7Epsilon
Moderator
Posts: 624
Joined: Thu Feb 17, 2005 1:37 am
Location: Cairo, Egypt

Post by n7Epsilon » Wed Jun 21, 2006 8:09 am

Actually, RogueSpear's admin addon might not be faulty. It is a switchless installer and is formatted in such a way that FGCBA will display some critical errors.

This is because FGCBA can't (yet ;)) differentiate between a true addon (like odyn1982's SysInternals Addon - Created by his great builder) and a switchless installer like that...

FGCBA currently checks addons for the [txtsetup_entries] and [dosnet_entries] sections, which are not used in a switchless installer, hence these errors.

I am currently working on native support for switchless installer style addon packs and better checking for [ExtraFileEdits] and add support for [EditFile]...

User avatar
odyn1982
Posts: 150
Joined: Sun Oct 23, 2005 11:38 am
Location: Bialystok, Poland

Post by odyn1982 » Wed Jun 21, 2006 6:26 pm

Can you check FBCBA with Kels_CPLBonus_addon_v3.3.cab because I have a problem with recreating the addon:
**** FGCBA 0.851 * by n7Epsilon
- Starting Logger "All your bug are report by me!!" -

I: Date/Time of execution: 2006-06-22 00:20:33 Local Time

I: Specified Parameters:
* Entries_cplbonus.ini
* /log:Kels_CPLBonus_addon_v3.3.log

I: Dump of ComplexParamsArgumentTable:
* log = F:\INSTALL\nLite\RyanVM\Kels_CPLBonus_addon_v3.3\Kels_CPLBonus_addon_v3.3.log

* Parser engaged, specified input INI:
* Entries_cplbonus.ini
* Absolute Path of INI path:
* F:\INSTALL\nLite\RyanVM\Kels_CPLBonus_addon_v3.3\Entries_cplbonus.ini

*** Reading Entries_cplbonus.ini...

I: User opted to create a CAB file, CAB specified:
*

- Parsing [txtsetup_files] section...
- Parsing [dosnet_files] section...
- "TimeZone.exe " referenced in [dosnet_files] but not in [txtsetup_files]!
- "TimeZone.exe" referenced in [txtsetup_files] but not in [dosnet_files]!

!- 2 error(s):
- "TimeZone.exe " referenced in [dosnet_files] but not in [txtsetup_files]!
- "TimeZone.exe" referenced in [txtsetup_files] but not in [dosnet_files]!
!- 2 error(s).

!!!!- Critical error(s) detected, process aborted.

- Stopping Logger -

User avatar
n7Epsilon
Moderator
Posts: 624
Joined: Thu Feb 17, 2005 1:37 am
Location: Cairo, Egypt

Post by n7Epsilon » Wed Jun 21, 2006 6:38 pm

I have already identified this and already fixed in the upcoming version (0.86)...

It's not a bug, it's SimpleINIEditor.cs being very accurate and returning the TimeZone.exe dosnet entry with the added space... It's just a matter of putting .Trim() at the end of the dosnet parser function line... :lol:

I have a small question? Do Switchless installer filenames need to be 8.3 compliant ?

User avatar
Kelsenellenelvian
Moderator
Posts: 4383
Joined: Tue Nov 30, 2004 8:32 pm
Location: Pocatello, ID
Contact:

Post by Kelsenellenelvian » Wed Jun 21, 2006 9:18 pm

no

newsposter
Posts: 1131
Joined: Wed Sep 14, 2005 11:31 am

Post by newsposter » Wed Jun 21, 2006 10:32 pm

Very Cool.

Is the SysInternals builder tool going to be updated as well??

User avatar
ricktendo64
Posts: 3213
Joined: Mon May 22, 2006 12:27 am
Location: Honduras

Post by ricktendo64 » Wed Jun 21, 2006 10:53 pm

I have XPsmoker and there is an option to turn off 8.3 filenames... Shloud I?
Because there is a warning something about "norton antivirus 2003 and other 16 bit aplications" (I don't use Norton Antivirus I use AVG)

Post Reply