MickeyKnox Nov 08, 2010 7:07 pm
Subject: maxr-resinstaller

maxr-resinstaller is not working for me.
My maxr version is 0.2.6, i'm running on Ubuntu 10.4

The last lines of the output are:

==================================================
======================
Music (May take a while)
...
0 errors
Finished
Traceback (most recent call last):
File "/usr/bin/maxr-resinstaller", line 172, in <module>
os.system("/usr/share/maxr/resinstaller " + ORIGMAXL_PATH + " " + TEMP_PATH + "/usr/share/maxr/")
NameError: name 'ORIGMAXL_PATH' is not defined

Eiko Nov 08, 2010 9:42 pm
Subject: Re: maxr-resinstaller

Is there a maxr package included in Ubuntu 10.4? Or which package do you use to install? Can you upload the resinstaller.log file?

It seems that the resinstaller executable is called by some script. The resinstaller it self seems to run without errors, but there is an error in the script or in the way the script is called.

MickeyKnox Nov 14, 2010 4:37 pm
Subject: Re: maxr-resinstaller

> Is there a maxr package included in Ubuntu 10.4?
No.

> Or which package do you use to install?
I downloaded both from this website.

The resinstaller.log doesn't indicate any errors:

resinstaller version 0.5
sMAXPath from command line: /media/MAX/max
sOutputPath from command line: /tmp/tmpmSX7gL/usr/share/maxr/
Building sounds
0 errors
==================================================
======================
Vehicle sounds
0 errors
==================================================
======================
Fx
0 errors
==================================================
======================
Gfx
0 errors
==================================================
======================
Vehicle videos
0 errors
==================================================
======================
Vehicle graphics
0 errors
==================================================
======================
Building graphics
0 errors
==================================================
======================
Voices
0 errors
==================================================
======================
Maps
0 errors
==================================================
======================
Sounds
0 errors
==================================================
======================
MVEs
0 errors
==================================================
======================
Music
0 errors
==================================================
======================

Eiko Nov 15, 2010 2:20 pm
Subject: Re: maxr-resinstaller

Ok, so the resinstaller itself runs successfully. Unforutally I don't know the internals of the linux packages. So the easiest way should be, to run the resinstaller manually by calling the executable under "/usr/share/maxr/resinstaller". Since the resinstaller writes the missing game data to the program directory, you should run it as root.

beko Nov 15, 2010 2:23 pm
Subject: Re: maxr-resinstaller

> /usr/bin/maxr-resinstaller

^-- This must be a script. Please open it in some editor and post it via bbs-tag "code" (like quote).

ORIGMAXL_PATH is nowhere in the resinstallers source. Thus it's part of the deb package for ubuntu. The maintainer of this file is rbtux. He never released a 0.2.6 version for ubuntu however and went inactive. I doubt that this will be fixed.

As I pointed out I suggest to install the latest 0.2.6 version (or better: SVN nightly build) since 0.2.5 is really damn old.

MickeyKnox Nov 17, 2010 2:32 pm
Subject: Re: maxr-resinstaller

I have 0.2.6. I installed the debian package, because the one for ubuntu seemed outdated.
But i used the ubuntu package for the resinstaller (version 0.5).

I managed to run the resinstaller directly, and it worked. Now i'm having sound problems
however, some crackling, and some graphics look broken (the Mine was just some red splash).
Maybe the versions i mixed aren't compatible?

As for the svn version: I couldn't find the address of the svn repository on your website.
Haven't i looked deep enough?

Finally, here comes the script:

DownloadSource code (Text):
  1. #!/usr/bin/env python
  2.  
  3. import readline
  4. import os
  5. import tempfile
  6. import sys
  7.  
  8. PATHNOTSET = True
  9. LANGNOTSET = True
  10.  
  11. def getDirectorySize(directory):
  12.     dir_size = 0
  13.     for (path, dirs, files) in os.walk(directory):
  14.         for file in files:
  15.             filename = os.path.join(path, file)
  16.             dir_size += os.path.getsize(filename)
  17.     return dir_size
  18.  
  19. def controlFile(dir_size):
  20.     controlFileData = """Package: maxr-original
  21. Version: 0.2.5-2
  22. Architecture: all
  23. Maintainer: maxr-resinstaller
  24. Installed-Size: """ + str(dir_size) + """
  25. Depends: maxr
  26. Replaces: maxr
  27. Section: games
  28. Priority: extra
  29. Homepage: http://www.maxr.org
  30. Description: M.A.X.R. - M.A.X. Original Data
  31.  Set of M.A.X. files to provide the original look & feel
  32. """
  33.     return controlFileData
  34.  
  35. def raw_input_with_default(prompt, default):
  36.     def pre_input_hook():
  37.         readline.insert_text(default)
  38.         readline.redisplay()
  39.  
  40.     readline.set_pre_input_hook(pre_input_hook)
  41.     try:
  42.         return raw_input(prompt)
  43.     finally:
  44.         readline.set_pre_input_hook(None)
  45.  
  46. print ""
  47. print "------------------------------------"
  48. print "M.A.X.R. Original Resource Installer"
  49. print "------------------------------------"
  50. print ""
  51. while PATHNOTSET:
  52.   ORIGMAX_PATH = raw_input_with_default("Specify the path containing the original data (f.e. CDROM): ", "/media/MAX")
  53.   print ""
  54.   if (os.path.isfile(ORIGMAX_PATH + "/max.res")):
  55.     FOUNDRES = True
  56.     PATHNOTSET = False
  57.   else:
  58.     if (os.path.isfile(ORIGMAX_PATH + "/max/max.res")):
  59.       FOUNDRES = True
  60.       ORIGMAX_PATH = ORIGMAX_PATH + "/max"
  61.       PATHNOTSET = False
  62.     else:
  63.       FOUNDRES = False
  64.       ORIGMAX_PATH = False
  65.  
  66. LANGUAGES = ['english']
  67.  
  68. if (os.path.isdir(ORIGMAX_PATH + "/german")):
  69.   LANGUAGES.append('german')
  70. if (os.path.isdir(ORIGMAX_PATH + "/french")):
  71.   LANGUAGES.append('french')
  72. if (os.path.isdir(ORIGMAX_PATH + "/italian")):
  73.   LANGUAGES.append('italian')
  74.  
  75. if (len(LANGUAGES) > 1):
  76.   while LANGNOTSET:
  77.     LANGUAGESTRING = ""
  78.     for x in LANGUAGES:
  79.        LANGUAGESTRING = LANGUAGESTRING + x + ", "
  80.  
  81.     LANGUAGE = raw_input_with_default("Specify language (" + LANGUAGESTRING[:-2] + "): ", "english")
  82.     if LANGUAGE in LANGUAGES:
  83.       if (LANGUAGE != 'english'):
  84.         ORIGMAXL_PATH = ORIGMAX_PATH + "/" + LANGUAGE
  85.       LANGNOTSET = False
  86.  
  87. TEMP_PATH=tempfile.mkdtemp()
  88. os.makedirs(TEMP_PATH + "/usr/share/maxr")
  89. os.makedirs(TEMP_PATH + "/usr/share/maxr/gfx")
  90. os.makedirs(TEMP_PATH + "/usr/share/maxr/fx")
  91. os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings")
  92. os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/platform")
  93. os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/energy_big")
  94. os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/storage_metal")
  95. os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/gun_missel")
  96. os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/storage_oil")
  97. os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/gun_ari")
  98. os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/training")
  99. os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/goldraff")
  100. os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/landmine")
  101. os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/energy_small")
  102. os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/habitat")
  103. os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/storage_gold")
  104. os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/fac_big")
  105. os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/dock")
  106. os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/gun_turret")
  107. os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/fac_alien")
  108. os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/mine")
  109. os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/barracks")
  110. os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/fac_air")
  111. os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/pad")
  112. os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/hangar")
  113. os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/mine_deep")
  114. os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/radar")
  115. os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/fac_small")
  116. os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/block")
  117. os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/connector")
  118. os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/seamine")
  119. os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/shield")
  120. os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/road")
  121. os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/gun_aa")
  122. os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/research")
  123. os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/bridge")
  124. os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/fac_ship")
  125. os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/depot")
  126. os.makedirs(TEMP_PATH + "/usr/share/maxr/mve")
  127. os.makedirs(TEMP_PATH + "/usr/share/maxr/fonts")
  128. os.makedirs(TEMP_PATH + "/usr/share/maxr/save")
  129. os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles")
  130. os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/commando")
  131. os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/alien_plane")
  132. os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/cargoship")
  133. os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/konstrukt")
  134. os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/sea_minelayer")
  135. os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/missel")
  136. os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/fighter")
  137. os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/alien_tank")
  138. os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/alien_ship")
  139. os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/sub")
  140. os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/sub/sub")
  141. os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/missel_ship")
  142. os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/sea_transport")
  143. os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/trans_gold")
  144. os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/alien_assault")
  145. os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/air_transport")
  146. os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/mobile_aa")
  147. os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/apc")
  148. os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/scanner")
  149. os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/cluster")
  150. os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/infantery")
  151. os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/corvet")
  152. os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/surveyor")
  153. os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/scout")
  154. os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/escort")
  155. os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/tank")
  156. os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/pionier")
  157. os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/minelayer")
  158. os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/assault")
  159. os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/trans_oil")
  160. os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/gunboat")
  161. os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/bomber")
  162. os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/repair")
  163. os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/bulldozer")
  164. os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/trans_metal")
  165. os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/awac")
  166. os.makedirs(TEMP_PATH + "/usr/share/maxr/voices")
  167. os.makedirs(TEMP_PATH + "/usr/share/maxr/languages")
  168. os.makedirs(TEMP_PATH + "/usr/share/maxr/sounds")
  169. os.makedirs(TEMP_PATH + "/usr/share/maxr/maps")
  170. os.makedirs(TEMP_PATH + "/usr/share/maxr/music")
  171. os.system("/usr/share/maxr/resinstaller " + ORIGMAX_PATH + " " + TEMP_PATH + "/usr/share/maxr/")
  172. os.system("/usr/share/maxr/resinstaller " + ORIGMAXL_PATH + " " + TEMP_PATH + "/usr/share/maxr/")
  173. print ""
  174. print "------------------------"
  175. print "Calculate directory size"
  176. print "------------------------"
  177. print ""
  178. os.makedirs(TEMP_PATH + "/DEBIAN")
  179.  
  180. fout = open(TEMP_PATH + "/DEBIAN/control", "w")
  181. fout.write(controlFile(getDirectorySize(TEMP_PATH +"/usr")))
  182. fout.close()
  183. print ""
  184. print "------------------------------------------"
  185. print "Generateing MD5SUMS (Could take some time)"
  186. print "------------------------------------------"
  187. print ""
  188.  
  189. os.system("cd " + TEMP_PATH + " >/dev/null ; find . -type f ! -regex '.*/DEBIAN/.*' -printf '%P\\0' | xargs -r0 md5sum > DEBIAN/md5sums")
  190.  
  191. print ""
  192. print "-----------------------"
  193. print "Generateing DEB package"
  194. print "-----------------------"
  195. print ""
  196.  
  197. os.system("cd " + TEMP_PATH + " >/dev/null ; dpkg-deb -b . ../maxr-original_0.2.5-2_all.deb")
  198. os.system("rm -rf TEMP_PATH")
  199.  
  200. print ""
  201. print "------------------------------------------------------------"
  202. print "Your package is ready at /tmp/maxr-original_0.2.5-2_all.deb "
  203. print ""
  204. print " Install it with dpkg -i /tmp/maxr-original_0.2.5-2_all.deb"
  205. print "------------------------------------------------------------"
  206. print ""

Eiko Nov 17, 2010 3:11 pm
Subject: Re: maxr-resinstaller

Quote by MickeyKnox:

Maybe the versions i mixed aren't compatible?

Yes, you need to use the resinstaller 0.6 for the 0.2.6 version of maxr. An older resinstaller will not work with the newest maxr version. Unfortunately it looks like no one ever has build a linux package for the current resinstaller.

the SVN url is: svn://maxr.org/MAX/

beko Nov 17, 2010 4:06 pm
Subject: Re: maxr-resinstaller

Is python.. Undecided kinda overkill imho.