Jump to content

Yet Another XP Mod - yAXM Project


Recommended Posts


As far as I'm concerned, it works very well. Problems arise when dealing with languages other than French though.

That's why I'm building a package manager and this is what's preventing me from releasing it right now. I've been quite unlucky and right now I need to move from an xml library to another, which is especially frustrating since everything but one thing was implemented and working.

By the way, I'd like this package manager not to be used for this project only so I'm trying to have a nice xml file (where package informations are stored). Could you tell me what you think about it (this is an example with nearly random data) ? The different sections are explained just below the code.

<!DOCTYPE package SYSTEM "package.dtd">
<package>
<application_name>8z</application_name>

<shortcuts>
<shortcut name="Foobar 2000" command_line="%var1%\foobar2000.exe" location="StartMenuPrograms\Multimedia"/>
<shortcut name="Irfanview" command_line="%var2%\iview.exe" location="Desktop"/>
</shortcuts>
<app_paths>
<app_path name="iview" command_line="%var3%\iview.exe"/>
<app_path name="pexp" command_line="%var4%\procexp.exe"/>
<app_path name="rmon" command_line="%var5%\trucmuche\rmon.exe"/>
</app_paths>

<lang_data>
<lang_class encode="ascii">
<lang_strings lang="eng" string="foo" string2="bar"/>
<lang_strings lang="fra" string="n'importe" string2="quoi"/>
<lang_strings lang="default" string="foo" string2="bar" var_name_I_want_I_declare_explicitely="%lang%"/>
</lang_class>
<lang_class encode="binary_ascii">
<lang_strings lang="eng" other_string="foo" other_string2="bar"/>
<lang_strings lang="fra" other_string="n'importe" other_string2="quoi"/>
<lang_strings lang="default" other_string="foo" other_string2="bar"/>
</lang_class>
</lang_data>
<environment_variables>
<environment_variable var1="thing1"/>
<environment_variable var2="thing2"/>
</environment_variables>

<install_actions>
<install_action rank="1" type="7z" command_line="7z.exe x %application_name%\subdir1"/>
<install_action rank="2" type="ahk" command_line="ahk.exe script.ahk"/>
<install_action rank="3" type="exe" command_line="setup.exe /q /nb!"/>
</install_actions>
<registry_writes>
<registry_write type="REG_DWORD" path="HKLM\..." name="foo" data="bar"/>
</registry_writes>
<ini_writes>
<ini_write file="" section="" key="" value=""/>
</ini_writes>

<install_locations>
<install_location type="folder" location="%ProgramFiles%\%application_name%"/>
<install_location type="file" location="%WINDIR%\test.log"/>
</install_locations>
<config_locations>
<config_data type="file" path=""/>
<config_data type="folder" path=""/>
<config_data type="registry" path=""/>
</config_locations>
</package>

<package> is the only required entry. The package may not do anything but it must have a name.

<shortcuts> contains a list of shortcuts which will be created, <app_paths> a list of entries for AppPath registry key (so applications are available with Win+R and their name, very convenient).

<lang_data> contains a list of language variables, the encode="" attribute lets reencode to utf-8, utf-16, ascii, utf-32 and their binary expressions (filezilla settings are stored as utf-16, irfanview's as utf-8/ascii, nod32 has some reg entries which require binary format...). There is a fallback entry in case the OS's language is not supported. All entries will be set as environment variables for child process according to the name given in the name="value" pattern. This is one of the main reason I am writing this package manager.

<environment_variables> is the first thing being processed so entries can be used everywhere else. This exists because some entries doesn't need to be localized and it would be stupid to replicate them all over the xml and for other special variables I'll come on again later (%this_package% among others).

<install_actions> lists all the actions you want to be run. type="" has no real use and is there only for cleanness.

<registry_writes> and <ini_writes> let you write in the registry and in ini files respectively (pretty obvious ;p ); lang_data entries are most likely to be used here.

The last section is intended for uninstallation and updates (<install_locations> are deleted on re/uninstall, <config_locations> are deleted on uninstall but are saved on update).

There will be a web-repository for applications so you can just use something like "install mplayer". Dependancies (.net, java, dlls) should be installed with <install_actions> and a special type="" attribute so they are only installed if not already present.

What do you think about this ?

Is it nice enough you would write packages using this format ?

OK, but why I am writing a package manager when installers already exist ?

First, I often use zip/7z/rar packages instead of the installers because they use temp files, are much bigger, take longer to install. Moreover, I think a web-repository would be nice. Last, I simply need it because of lang entries. ;p

Link to comment
Share on other sites

  • 2 months later...

Yes and no. :P

I haven't lost interest in this project nor did I stopped working on it (the latest bugfix is from last weekend). However I'm very busy*.

The package manager I want had a problem : it used an xml library (XmlLight) which is not unicode compatible and therefore is a serious limit. The other possibility for an xml parser was pxp which relies on a third library called findlib which in turn could not be used under windows (except cygwin therefore producing a slower and heavier app).

I updated findlib so I can use it but pxp also needs some modifications. This should be faster to solve as I'm now pretty experienced in this field. :P

If anyone wonders how I manage to get such problems, the answer is the team in charge of ocaml does not have big interests in windows. And, I will not code in anything else than ocaml : it produces natives, performant and safe apps and I just love the language.

Anyway, there should be no problem now and I think having the package manager ready during my next holidays (one month from now) is likely.

In fact, french and english people who want can have access to a test release (which showed no problems for myself and a friend of I). What prevents me from publicly releasing anything is other languages : I won't invest myself in something that is not done the proper way.

As for the documentation, most of it has been written I think.

So if you're interested, tell me and I'll send you a link.

* je suis en prépa, MP, donc avec vraiment beaucoup de boulot et les concours dans quelques mois.

Link to comment
Share on other sites

I would be very interested in your mod !

and/or your documentation/method the other case.

If you still want to, please send me a PM for it :thumbup .

I would want to use it (or at least test it), for personal use of course.

For now I always use English Win XP Pro VLK 'Lited' from my company, but still have a French Win XP Pro (Dell) somewhere ;)

* et bon courage pour tes concours.

Link to comment
Share on other sites

I would be very interested in your mod !

and/or your documentation/method the other case.

If you still want to, please send me a PM for it.

PM'ed ;)

I would want to use it (or at least test it), for personal use of course.

I usually insist on the fact this is beta though I don't have problems with it because I don't want people to think this is to be considered stable. Moreover not everybody will like the choices made. So install on another partition or have a backup. :)

For now I always use English Win XP Pro VLK 'Lited' from my company, but still have a French Win XP Pro (Dell) somewhere

As I said English should be OK (a friend of mine uses it).

For XP CDs coming from OEM vendors, you have to get rid of the OEM settings. This includes software installations. For instance my DELL CD installs microsoft java vm but XP's SP2 doesn't have the MS JVM anymore. And in fact, most important, lately OEM also started to preinstall adwares and toolbars.

I'm pretty sure you know this, just don't forget them. ;)

* et bon courage pour tes concours.

Merci. :P

Link to comment
Share on other sites

  • 2 weeks later...

Hi Camarade,

at last, i had the time to test your project and adapt it to my Windows version.

i succeed in approaching the optimization you reached (~110mb at windows startup with all drivers/services loaded).

i decided not to keep the hfslip/wihu system as you did, because i want a full unattended mode.

good job with your wiki page too !

i think it would be nice to detail it a little more, for example, with the extra files you kept, 'KeepFile', in your preset (the same way you did with the 'RemoveFile' preset).

so, nice job :thumbup

Link to comment
Share on other sites

Hi, can i test your project please? :hello:

Unfortunately, not right now : I'm going back to school and won't have time to support this for a new tester until next holidays.

If you want however I can PM you when it is possible; :)

i succeed in approaching the optimization you reached (~110mb at windows startup with all drivers/services loaded).

Good news. Thanks. I feared it would be impossible to reproduce.

i decided not to keep the hfslip/wihu system as you did, because i want a full unattended mode.

Btw, KB888111 should be slipstreamed, especially if you have a Realtek card.

good job with your wiki page too !

i think it would be nice to detail it a little more, for example, with the extra files you kept, 'KeepFile', in your preset (the same way you did with the 'RemoveFile' preset).

That's planned (even with all the details one could imagine) but writing documentation really takes a lot of time. I'd never thought it could be that long.

Also I wanted to use a dokuwiki plugin that lets you fold/unfold some parts of the page. This way the page would appear in a non-detailled form but then one could make the details he wants appear. Sadly this plugin did not work well in my tests. I might as well go for a different namespace though. I have to think about it.

so, nice job :thumbup

Thanks; :)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...