Old 15th April 2003, 19:59   #1
ManFromMars
Junior Member
 
Join Date: Apr 2003
Location: Belarus
Posts: 2
Question Split to volumes...

Is it possible in NSIS to make multi volumes installation ?
I want to make installer for my Unreal Tournament and the installer I got more than 700Mb... I need to write it on CD.
ManFromMars is offline   Reply With Quote
Old 15th April 2003, 20:41   #2
Joost Verburg
NSIS MUI Dev
 
Join Date: Nov 2001
Posts: 3,717
Use CopyFiles or the ExtractDLL plugin.
Joost Verburg is offline   Reply With Quote
Old 18th April 2003, 18:58   #3
ManFromMars
Junior Member
 
Join Date: Apr 2003
Location: Belarus
Posts: 2
Hm. But I want to pack my files. If I use CopyFiles than I must have them unpacked or run external archiver to extract files from second CD. It's not good.

I think there is no option in NSIS to split installation on volumes

It will be great:
mysoftinstall.exe
mysoftinstall.ns1
mysoftinstall.ns2
...
mysoftinstall.nsN
ManFromMars is offline   Reply With Quote
Old 18th April 2003, 19:20   #4
kichik
M.I.A.
[NSIS Dev, Mod]
 
kichik's Avatar
 
Join Date: Oct 2001
Location: Israel
Posts: 11,343
You are right, there is no possibilty to do this and it is not planned for the near future. For now you can either use them uncompressed or use one of the plug-ins in the archive that allow you to extract from archives, ZipDLL for example. You can automate the compression with !system and command line archivers (7zip provides such a tool for example).

NSIS FAQ | NSIS Home Page | Donate $
"I hear and I forget. I see and I remember. I do and I understand." -- Confucius
kichik is offline   Reply With Quote
Old 18th April 2003, 20:44   #5
Joost Verburg
NSIS MUI Dev
 
Join Date: Nov 2001
Posts: 3,717
For simple zlib compression, use can ExtractDLL, which you can find in the archive.
Joost Verburg is offline   Reply With Quote
Old 19th April 2003, 09:28   #6
virtlink
Major Dude
 
virtlink's Avatar
 
Join Date: Sep 2002
Location: At [4C69:6E6B]
Posts: 561
In the old days, when internet was new, everyone used floppydisks. The programs where spread among three or more disks. And now I wonder, why NSIS doesn't support Multi-volume installation, while the principle is already so old.

I really think that it should be on the TODO list for the near future, and not for NSIS 3.

A temporary solution: use multiple installers. The first one has the UI, the others are silent installers.

"I'll quote you when you say something memorable."
- Claudia Pelsmaeker
virtlink is offline   Reply With Quote
Old 19th April 2003, 10:44   #7
Sunjammer
Major Dude
 
Join Date: Jun 2002
Location: Swindon, UK
Posts: 559
I don't understand why anyone needs multi-volume functionality, surely everything is distributed on cd or via the net now?
Sunjammer is offline   Reply With Quote
Old 19th April 2003, 13:19   #8
virtlink
Major Dude
 
virtlink's Avatar
 
Join Date: Sep 2002
Location: At [4C69:6E6B]
Posts: 561
And an installer that is distributed on cd's might be larger thn 700 Mb. Then it needs at least two CD's.

And a small 1.8 Mb installer can be distributed on two disks.

"I'll quote you when you say something memorable."
- Claudia Pelsmaeker
virtlink is offline   Reply With Quote
Old 19th April 2003, 14:35   #9
Joel
Debian user
(Forum King)
 
Joel's Avatar
 
Join Date: Jan 2003
Location: Arch land
Posts: 4,917
Lightbulb This is my idea

[list=1][*]Compress you files in a zip format[*]use ZipDll plugin to extract all or some of the files[*]use $EXEDIR, for that you might put all your files in the same folder as your app[/list=1]

More or less as KichiK posted


[edit]
Correction: Is like KichiK posted, you might ignore
this post
[/edit]

[edit]
Maybe support or have plugin for CAB format, to use with
the internal extractor that Windows have; when we use
an INF file: example, for install drivers.
[/edit]


* PC: Intel Core 2 DUO E6550 @ 2.33 GHz with 2 GB RAM: Archlinux-i686 with MATE.
* Laptop: Intel Core 2 DUO T6600 @ 2.20 GHz with 4 GB RAM: Archlinux-x86-64 with MATE.
Joel is offline   Reply With Quote
Old 20th April 2003, 10:32   #10
Joost Verburg
NSIS MUI Dev
 
Join Date: Nov 2001
Posts: 3,717
Because a floppy disk is not a common distribution media anymore, a split function won't be added soon.

There are compression plugins available for a lot of formats, and you can also call command line utilities using nsExec.

So it isn't difficult at all to create an multi-disk installer.
Joost Verburg is offline   Reply With Quote
Old 20th April 2003, 10:47   #11
Sunjammer
Major Dude
 
Join Date: Jun 2002
Location: Swindon, UK
Posts: 559
From a purely "ooo look they used NSIS!" point of view I now think we need disk-spanning support in NSIS itself. I say this because a recent game, Haegemonia, used NSIS to install and if more games did this it would be great for NSIS. However, many games now are more than a single CD so I think where we've been seeing disk-spanning in terms of floppy disks we've missed the fact that games frequently span cds never mind disks!

I'm not saying whether it should be done now or in v3 or whatever, just that I can now see why it should be done at all

P.S. I know it can be achieved in other ways without built-in support but it's the kind of thing computers are good at and people shouldn't have to go to a lot of effort to work out how to do.
Sunjammer is offline   Reply With Quote
Old 20th April 2003, 10:50   #12
Joost Verburg
NSIS MUI Dev
 
Join Date: Nov 2001
Posts: 3,717
Sure, disk spanning can also be used for CD's.

However, integrated support will increase the overhead. And why not zip the files and extract them using ZipDLL? It's only one line of code
Joost Verburg is offline   Reply With Quote
Old 20th April 2003, 10:53   #13
Sunjammer
Major Dude
 
Join Date: Jun 2002
Location: Swindon, UK
Posts: 559
The only downside I can see to that is that the user has to make the decision about where the boundary of files for cd 1 and cd 2 is, which is a real pain. NSIS could work that out itself with no pain to the user.
Sunjammer is offline   Reply With Quote
Old 20th April 2003, 10:58   #14
Joost Verburg
NSIS MUI Dev
 
Join Date: Nov 2001
Posts: 3,717
I don't not whether ZipDLL supports multi-volume ZIP files, but an exteral compression utility will support it.
Joost Verburg is offline   Reply With Quote
Old 20th April 2003, 11:28   #15
Sunjammer
Major Dude
 
Join Date: Jun 2002
Location: Swindon, UK
Posts: 559
You still have a problem though, you lose the ability to work with individual files in the installer because then you'd have to pack them separately which means that your external program has to be able to understand that it has to leave some space. Sometimes you'd want to pack files seperately, e.g. a banner background image or whatever. Can external programs that understand spanning be instructed to make a file that is a certain size rather than just to span in cd size chunks? Even if they can you are again making the user work out how much space they have to work with.
Sunjammer is offline   Reply With Quote
Old 20th April 2003, 12:01   #16
Joost Verburg
NSIS MUI Dev
 
Join Date: Nov 2001
Posts: 3,717
Maybe the installer graphics and interface will take a few KB's, so you can let it generate 649 MB parts.
Joost Verburg is offline   Reply With Quote
Old 20th April 2003, 12:18   #17
virtlink
Major Dude
 
virtlink's Avatar
 
Join Date: Sep 2002
Location: At [4C69:6E6B]
Posts: 561
You say that adding multi-volume support makes the header bigger. But that is determined by the compiler, right? So if you would use an instruction which specifies the 'hack and slash'-size, only then the header becomes bigger. If you don't use that instruction, the header stays small. And, what do some Kb mean on a multi-volume installation that spans several CD's?

"I'll quote you when you say something memorable."
- Claudia Pelsmaeker
virtlink is offline   Reply With Quote
Old 20th April 2003, 13:03   #18
Joost Verburg
NSIS MUI Dev
 
Join Date: Nov 2001
Posts: 3,717
No, the NSIS VM will always become larger, otherwise everyone has to recompile NSIS to use this feature.

I'm not saying that it wouldn't be a nice feature, but it is already possible and there are lots of more important thing to do.
Joost Verburg is offline   Reply With Quote
Old 20th April 2003, 16:19   #19
virtlink
Major Dude
 
virtlink's Avatar
 
Join Date: Sep 2002
Location: At [4C69:6E6B]
Posts: 561
You should at least put it on the TODO list. Or maybe, a plugin can be written for it (ZipDLL with multi-volume support).

"I'll quote you when you say something memorable."
- Claudia Pelsmaeker
virtlink is offline   Reply With Quote
Old 20th April 2003, 17:50   #20
Joost Verburg
NSIS MUI Dev
 
Join Date: Nov 2001
Posts: 3,717
It's already in the Feature Request list on the SF Project Site.

TODO.txt contains all features we want to add before NSIS 2 Final will be released. This one has no high priority.
Joost Verburg is offline   Reply With Quote
Old 20th April 2003, 18:18   #21
Dick4
Member
 
Join Date: Mar 2002
Location: Mass
Posts: 85
if it makes a difference, I still distribute some things on floppy disk because 99% of all computers have them and its easier to copy a 3MB installer to a range of floppies than it is to setup some of my users with CDR's and have them burn cd's.

I still use Winzip for some functions because winzip does the spanning, but I see your problems since NSIS is a "single Executable".

Anyway, I'll appreciate it if/when it gets added.
Dick4 is offline   Reply With Quote
Old 20th April 2003, 21:46   #22
Jacob Metro
Junior Member
 
Jacob Metro's Avatar
 
Join Date: Nov 2002
Location: Alabama, United States of America
Posts: 31
Send a message via AIM to Jacob Metro Send a message via Yahoo to Jacob Metro
Cool I agree

I use floppy's for distribution as well

My rational is that some minor installations, where my customer only needs (or pays for) the barebones system my installer might only be 3 or 4 MB. Their data comes pre-loaded by their IT department. So I don't really want to waste a 700MB CD for a 4 MB installer. I think multi-disk support, while certainly not life threatening (SP?), might be a real help to people who use large installers with plenty of data and possibly some options coded in as well.

I wouldn't say it has to be done immediately because I don't really need it yet, but I think other installers have it so it might be good to deal with the question now rather than later.

Sincerely,
Jacob Metro
CTO, Systems Analyst
Jacob Metro is offline   Reply With Quote
Old 20th April 2003, 21:53   #23
Joost Verburg
NSIS MUI Dev
 
Join Date: Nov 2001
Posts: 3,717
Like I already said, it is already possible using a plugin. Integrated support would make it a little easier, but it has no priority.
Joost Verburg is offline   Reply With Quote
Old 20th April 2003, 23:39   #24
Dick4
Member
 
Join Date: Mar 2002
Location: Mass
Posts: 85
Joost,
I've never looked into it, but how would I do it using a plugin? Can I do spanning with ZipDLL? If I could do disk spanning at all, even with ZipDLL or another plugin, it would be worth it I think. Is it documented somewhere? I'm going to go now and read about ZipDLL
Dick4 is offline   Reply With Quote
Old 22nd April 2003, 23:26   #25
MoNKi
Senior Member
 
Join Date: Aug 2002
Location: Spain
Posts: 112
I have an idea, i'll try to explain it in english but my english isn't so good.

Make a program that compress each of the files in bzip2, then join the compressed files in a big one and create another text file that contains the positions were each of the small files are in the big one. Then split the big one in multiple files of 650 Mb (1 CD for example) and save the position of the cuts in the text file. A function than decompress a bzip2 file into nsis can't make a big overhead because the code is integrated into nsis.

function decompresBzip2(compressed_file, start_position, end_position, decompressed_file)

compressed_file: the big one
start_position: from the text file (where a file starts)
end_position:from the text file (where a file ends)
decompressed_file: the result of decompress bits from "start_position" to "end_position" of "compressed_file"

Now a simple script can extract a file from a volume.
We know where are the cuts in the big file (are in the text file), if we think that a new cd must be inserted, a dialog box tell us: "insert the new cd". If a file is splitted, copy the first part into a temp path, then append to this file the second part (in the second cd) and then decompress the result.

Well, the main idea is to insert the function decompressBzip2 into nsis (without a big overhead) and a script that extract a file from the volumes reading the text file with the position.

In this way in the first cd we have the instaler (that contains the text file) and the first volume, the second cd only the second volume, ...

What do you think?

Sorry for my english, I can understand it, but never passed the grammar exams.
MoNKi is offline   Reply With Quote
Old 23rd April 2003, 14:37   #26
Afrow UK
Moderator
 
Afrow UK's Avatar
 
Join Date: Nov 2002
Location: Surrey, England
Posts: 8,434
My idea

This program I have called HJSplit allows you to split objects (preferably a zip file) into sperate specified sized chunks, and then join them back up again.
On split, it seperates them into chunks with the file extension of .001, .002, .003 and so on. If you tell it to split e.g. UnrealTournament.zip, it will split it into seperate amounts as UnrealTournament.001, UnrealTournament.002, UnrealTournament.003 etc
To rejoin them all, you tell HJSplit to target just UnrealTournament, and it does the rest of the work for you.
So, if all UnrealTournament splitted files are in the C:\temp folder, you'd tell HJSplit to target C:\temp\UnrealTournament

See a topic on this here: http://forums.winamp.com/showthread....hlight=hjsplit

1. On the first cd, you have the main installer. It firstly extracts the first chunk of the .zip from within itself, and then it prompts the user to insert disc 2.
code:

InitPluginsDir
SetOutPath $PLUGINSDIR
File "C:\temp\UnrealTournament.001"
MessageBox MB_OK|MB_ICONINFORMATION "Please insert Unreal Tournament \
CD labeled 'Disc 2'$\n$\rClick OK when you have inserted the next \
disc."


2. On disc 2 is the second chunk of the zip, which is then copied to the pluginsdir like so...
code:

CopyFiles "e:\UnrealTournament.002" "$PLUGINSDIR\UnrealTournament.002"


3. After copying all chunks onto the hard drive, it can then automatically re-join the chunks together using a command line version of HJSplit like so...
code:

SetOutPath $PLUGINSDIR
File "C:\temp\hjsplit.exe"
nsExec::Exec "$PLUGINSDIR\hjsplit.exe -j $PLUGINSDIR\UnrealTournament"


4. Then extract from the joined up zip file using the nsis plugin.

Get HJSplit here: http://www.freebyte.com/download/hjsplit/hjspldos.zip

-Stu
Afrow UK is offline   Reply With Quote
Old 23rd April 2003, 18:14   #27
MoNKi
Senior Member
 
Join Date: Aug 2002
Location: Spain
Posts: 112
The problem is:

I have 3 cd's splitted, i need 650x3 Mb of free space in HD only for the joined file.
MoNKi is offline   Reply With Quote
Old 23rd April 2003, 18:27   #28
Afrow UK
Moderator
 
Afrow UK's Avatar
 
Join Date: Nov 2002
Location: Surrey, England
Posts: 8,434
You could just say that the installer needs whatever space for...

So much space for UnrealTournament.001, UnrealTournament.002, UnrealTournament.003
Same amount of space for UnrealTournament.zip
Even more space for the final installation!

That could come up to 6gb

-Stu
Afrow UK is offline   Reply With Quote
Old 23rd April 2003, 18:30   #29
MoNKi
Senior Member
 
Join Date: Aug 2002
Location: Spain
Posts: 112
If you extract directly from the splitted files you don't need the extra amount of space for the joined file.
MoNKi is offline   Reply With Quote
Old 29th October 2003, 23:39   #30
Wasteland
Junior Member
 
Join Date: Oct 2003
Location: San Jose
Posts: 40
Send a message via ICQ to Wasteland Send a message via AIM to Wasteland Send a message via Yahoo to Wasteland
It seems this topic has already been hashed over, but I was wondering if anything had been done since this post was last visited...

Specifically, I'm a programmer for Cryptic Studios (makers of City of Heroes), and I hope to use NSIS for the installer for our game, but as it stands now, it looks like we'll creep over the size that would fit on one CD, and as it stands, there's no easy way to split a NSIS installation onto 2 CDs (the main issue being that for all of the suggestions above you have to either a) manually choose which files go on which disk, which means no trivial way to just re-build an installer, or b) the install takes up two times as much space on the destination drive while it's installing, which is obviously out of the question).

So, what are the chances of this kind of feature being implemented, and how much work would it take (not being a stranger to SourceForge, but having never seen the NSIS code, if it's simple enough I could add the feature myself, but I'd need a rough estimate first).

As a general fan of NSIS, I'd really like to use it for our game (as Sunjammer said, it's good exposure), but only if it won't cause too many problems.

This being said, assuming no multi-volume spanning code get's written, does anyone see any big caveats to having a set of two installers, each with half of the data, the second being a silent installer (which I would assume grabs the install dir from the registry or a command line parameter launched from the first?)?

Thank you for your time!
Wasteland is offline   Reply With Quote
Old 30th October 2003, 07:58   #31
virtlink
Major Dude
 
virtlink's Avatar
 
Join Date: Sep 2002
Location: At [4C69:6E6B]
Posts: 561
It would be a nice feature if someone wrote some function which could split an installer in two or more pieces and merge them together when installing.

Something like this:
SplitInstaller chunksize [disk1Name] [disk2Name] [...]

This should generate files like setup001.bin, setup002.bin, etc.. in the $outdir directory and the user could put them on disks. The name of the disk would be shown when the installer asks for a specific disk (e.g. "Please put CD 2 in drive E:, and press OK to continue.") when the file isn't found it the directory where the installer resides.
The checksum checking should be done when a certain disk is put in the drive, because you can't ask a user to insert all disks just for the checksum, befor installing. ;-)

If anything I wrote here needs further explanation, please ask.

"I'll quote you when you say something memorable."
- Claudia Pelsmaeker
virtlink is offline   Reply With Quote
Old 30th October 2003, 09:57   #32
kichik
M.I.A.
[NSIS Dev, Mod]
 
kichik's Avatar
 
Join Date: Oct 2001
Location: Israel
Posts: 11,343
Quote:
It seems this topic has already been hashed over, but I was wondering if anything had been done since this post was last visited...
Nope. It's planned for NSIS 2.1 at the momemt.

Quote:
So, what are the chances of this kind of feature being implemented, and how much work would it take (not being a stranger to SourceForge, but having never seen the NSIS code, if it's simple enough I could add the feature myself, but I'd need a rough estimate first).
Well, it isn't a simple thing you can add in less than a day. Lets say, two weeks?

Quote:
This being said, assuming no multi-volume spanning code get's written, does anyone see any big caveats to having a set of two installers, each with half of the data, the second being a silent installer (which I would assume grabs the install dir from the registry or a command line parameter launched from the first?)?
Yes, if your script will need anything from the first installer and Windows will not have it on chace, it could crash because it will try to read from a memory range that isn't there. As the header, including the script is copied into memory this might only happen if you try to extract something after the CD was switched or in the weird case that Windows flush out a code page which it will later need. The best way to avoid it will be to create 3 installers, and have the first one execute the other two. The first one will be as small as possible so Windows will have no problem caching it all. It's probably also possible to force Windows to keep it all in cache, but I don't know how yet.

NSIS FAQ | NSIS Home Page | Donate $
"I hear and I forget. I see and I remember. I do and I understand." -- Confucius
kichik is offline   Reply With Quote
Old 30th October 2003, 12:32   #33
MoNKi
Senior Member
 
Join Date: Aug 2002
Location: Spain
Posts: 112
Quote:
The first one will be as small as possible so Windows will have no problem caching it all. It's probably also possible to force Windows to keep it all in cache, but I don't know how yet.
Why not copy the small installer into the temp dir and run it, maybe with some text file in the same dir that can be used to tell the small installer where the files are.
MoNKi is offline   Reply With Quote
Old 30th October 2003, 16:30   #34
Wasteland
Junior Member
 
Join Date: Oct 2003
Location: San Jose
Posts: 40
Send a message via ICQ to Wasteland Send a message via AIM to Wasteland Send a message via Yahoo to Wasteland
Quote:
Originally posted by virtlink
It would be a nice feature if someone wrote some function which could split an installer in two or more pieces and merge them together when installing.
The problem with this would be that in our case, with a 1GB installation, it would take *two* gigs to install the game, since it would involve merging the installer. And, there are in fact quite a few programs that do such a thing (heck, I wrote one for floppies in DOS, 8 years ago, but when using it on CDs, it's dang friggin' annoying).

Anyway, the 2 or 3 installer thing would probably work best, I'll look at that if we can't fit on one CD. I don't see any problem with just 2 installers if launching the second one is the last thing that the first one does, although for a clean install process I guess it might be better to have one wrapper installer that knows when either of the other two got cancelled so that you don't get desktop shortcuts to things that aren't really there yet.
Wasteland is offline   Reply With Quote
Old 30th October 2003, 19:50   #35
virtlink
Major Dude
 
virtlink's Avatar
 
Join Date: Sep 2002
Location: At [4C69:6E6B]
Posts: 561
Quote:
Part of a post originally posted by Wasteland
The problem with this would be that in our case, with a 1GB installation, it would take *two* gigs to install the game, since it would involve merging the installer. And, there are in fact quite a few programs that do such a thing (heck, I wrote one for floppies in DOS, 8 years ago, but when using it on CDs, it's dang friggin' annoying).
I really don't see why a 1 Gb installer would take 2 Gb's when split. I tought that when you split the installed files just between two files, you'd only need an installer which can switch to the second disk/CD and install the files from there.
The first n files are included with the installer in, let's say, setup.exe. The rest of the files are stored in the second file, and only read BY the installer. Thus, the installer would be a working installer without the need to merge the two (or more) files together BEFORE installing.

You'd have to write an advanced function for this in the NSIS source, since this can't be done (properly) by a plugin.

"I'll quote you when you say something memorable."
- Claudia Pelsmaeker
virtlink is offline   Reply With Quote
Old 30th October 2003, 19:57   #36
virtlink
Major Dude
 
virtlink's Avatar
 
Join Date: Sep 2002
Location: At [4C69:6E6B]
Posts: 561
Quote:
Part of a post originally posted by Wasteland
(...)I don't see any problem with just 2 installers if launching the second one is the last thing that the first one does, although for a clean install process I guess it might be better to have one wrapper installer that knows when either of the other two got cancelled so that you don't get desktop shortcuts to things that aren't really there yet.
When you'd only have two installers, you could have the following problem:
- The first installer is loaded into the memory.
- Performs it's tasks, unpacking files, etc..
- It wants to start the second installer, located on another volume (disk/CD). When inserted, the first installer can't reach it's own executable anymore, and the system *could* crash.

The 3 installer solution would be:
- Let the first installer copy itself to the harddisk (small, fast).
- Installer nr. 1 executes nr. 2, and when finished, nr. 3.
Nr 2 and nr 3 may just be silent installers. The first one provides the interface.

Atleast I think so . Maybe Kichik can clarify it better, or improve my description at some points.

"I'll quote you when you say something memorable."
- Claudia Pelsmaeker
virtlink is offline   Reply With Quote
Old 30th October 2003, 20:27   #37
Wasteland
Junior Member
 
Join Date: Oct 2003
Location: San Jose
Posts: 40
Send a message via ICQ to Wasteland Send a message via AIM to Wasteland Send a message via Yahoo to Wasteland
Well, the solution to the possibility of the first installer crashing is that you include it on *both* discs. When you swap CDs, the file is there on the new disc. I've seen this done before (unused identical copy of an installer on a second disc), and I believe it would stop the possibility of it crashing. Should be pretty easy to do a test to see if Windows handles this gracefully, but I think it would fix the issue. Granted this installer would have to be small, and therefore you'd need 3 installers anyway (1 manager, 2 for data), but it would alleviate the need to copy the first installer to the hard drive.
Wasteland is offline   Reply With Quote
Old 31st October 2003, 08:14   #38
virtlink
Major Dude
 
virtlink's Avatar
 
Join Date: Sep 2002
Location: At [4C69:6E6B]
Posts: 561
I don't think that a second unused copy of the first installer will work. The copy won't be at the same byte location on your 2nd CD as it was on your 1st. Thus, the executable still can't find it's own code. And as KiCHiK said:

Quote:
Part of a post originally posted by kichik
(...)As the header, including the script is copied into memory this might only happen if you try to extract something after the CD was switched or in the weird case that Windows flush out a code page which it will later need.(...)
Meaning that the -in memory loaded- executable may need it's own executable file. So it isn't unused anymore.

"I'll quote you when you say something memorable."
- Claudia Pelsmaeker
virtlink is offline   Reply With Quote
Old 31st October 2003, 19:50   #39
deguix
Major Dude
 
deguix's Avatar
 
Join Date: Dec 2002
Location: Everett - MA, USA
Posts: 1,354
Send a message via ICQ to deguix
Maybe have an easy way:

1) Copy the installator (without any files inside it) to $TEMP.
2) Copy selected files inside CD to HD.
3) When you know that need the second one CD, put a message box saying to put the 2nd CD.
4) Copy selected files inside CD #2 to HD.
5) Continue to run other codes...

Or if you don't want to the files be too exposed...

1) Copy the installator (without any files inside it) to $TEMP
2) Execute a second installer, using a special command line code, to start to extract the files.
3) When you know that need the second CD, close the second installator and put a message box saying to put the 2nd CD.
4) Execute a third installer, using a special command line code, to start to extract the files.
5) Close the third installator and continue running the other codes...

My Wiki Pages

Working now on:
New projects. (language: any)
deguix is offline   Reply With Quote
Old 13th March 2004, 05:56   #40
Wasteland
Junior Member
 
Join Date: Oct 2003
Location: San Jose
Posts: 40
Send a message via ICQ to Wasteland Send a message via AIM to Wasteland Send a message via Yahoo to Wasteland
Here I go bringing up an old thread again...

So our software definitely needs to span 2 CDs. So, the way I was planning on doing this is like so:

Wrapper installer (tiny), copies Main installer (small) to a temporary folder, and then executes Main installer.

Main installer copys files (or rather runs sub-installers) from each of the 2 CDs.

Now, here's the problem. How to delete the Main installer?

After I tried to have the Wrapper installer copy the Main to the plugins dir, but that gets deleted as soon as the wrapper exits. So, if the wrapper starts, copies, then launches Main, and then immediately exits, it won't be able to delete Main because it's in use. If the wrapper program does an ExecWait, the OS complains with a "Wrong Volume in Drive X:" message when you remove Disc 1 and insert Disc 2 (because the Wrapper requires it's .EXE image to be accessible). This *could* be solved by having Main issue a "Please insert Disc 1 again" before it exits, but I have to say having to insert Disc 1 just so the program can exit is really lame.

I tried having the Main installer attempt to delete itself as the last line, but that obviously didn't work.

Any bright ideas? Maybe a 3rd program, residing on the 2nd CD that Main calls when it's done, which passes the path to Main and has it delete it and then exit... but that just sounds hacky...
Wasteland is offline   Reply With Quote
Reply
Go Back   Winamp & Shoutcast Forums > Developer Center > NSIS Discussion

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump