Skip to content
⌘ NSIS Forum Archive

VPatch 3.0 release

41 posts

pabs#
Not sure if this is related to the conversion to native rather than cross-compiled, but I get this failure with g++ 4.0:
g++ -o build/release/VPatch/Source/GenPat/GenPat -s -Wl,--file-alignment,512 -Wl,-Map,build/release/VPatch/Source/GenPat/GenPat.map build/release/VPatch/Source/GenPat/adler32.o build/release/VPatch/Source/GenPat/Checksums.o build/release/VPatch/Source/GenPat/ChunkedFile.o build/release/VPatch/Source/GenPat/FileFormat1.o build/release/VPatch/Source/GenPat/GlobalTypes.o build/release/VPatch/Source/GenPat/main.o build/release/VPatch/Source/GenPat/md5.o build/release/VPatch/Source/GenPat/PatchGenerator.o build/release/VPatch/Source/GenPat/POSIXUtil.o
/usr/bin/ld: unrecognized option '--file-alignment'
/usr/bin/ld: use the --help option for usage information
collect2: ld returned 1 exit status
scons: *** [build/release/VPatch/Source/GenPat/GenPat] Error 1
Koen van de Sande#
Ah yes, the tests are useless without VAppend. So they do not need to be included with NSIS.

The GCC 4 error looks very much like an option to the compiler is not recognized. This might be a SCons thing.
pabs#
If I ignore that error using SKIPUTILS, I get some more build errors on the plugin and elsewhere, which can be fixed by the attached patch against CVS.
Koen van de Sande#
These changes will be added to the 'full' VPatch as well, but it will have to wait a while 'cause it's not that an important an update for the default distribution. It will be bundled as soon as there is also something else new that warrants a new version. 🙂
T.Slappy#
Vpatch use problem

Hi
I would like to use Vpatch for installing my mod.
Mod consist from 6 files (aprox 30 MB each)
This files should be inserted to archives (each file to separate archive, apr 600 MB), but I do not want the user to insert each file manually

I want to patch file with vpatch plugin.
I tried it in this way:

!insertmacro VPatchFile "m12_main.pat" "$INSTDIR\M12_main.zip"
(I think it means: patch "$INSTDIR\M12_main.zip" with file "m12_main.pat")

(before patching I unpacked m12_main.pat file to instdir)

The problem is, that I want the smallest installer and I can not extract those 600 MB archives to patch them (readme example says that I have to extract new file)

Out-dated game archives are present at target system and I want to patch them with patch files generated with genpat, so the installer size should be aprx 6x30MB (uncompressed)
Is there any way to do it?
thx
Joost Verburg#
Zip files have no solid compression, so you can patch them directly. You have to create a new zip file and create a patch from the old to the new archive.
T.Slappy#
vpatch

I used this script:
vpatch::vpatchfile $PLUGINSDIR\patch.pat" "$INSTDIR\M12_main.zip" "$INSTDIR\M12_main_new.zip"

(from vpach example)

M12_main.zip is present on target system, M12_main_new.zip no (I used it to generate patch with genpat.exe), so I got this error::
Result: Unable to open source file

So what to do?
(I do not want to extract whole M12_main.zip to target system, because it is 600MB big)
JasonFriday13#
You forgot a quote mark:

vpatch::vpatchfile "$PLUGINSDIR\patch.pat" "$INSTDIR\M12_main.zip" "$INSTDIR\M12_main_new.zip"
T.Slappy#
vpatch

JasonFriday13: Thanks, but it did not help

I always have error: cannot open output file
I tried
vpatch::vpatchfile "$PLUGINSDIR\patch.pat" "$INSTDIR\M12_main.zip" "$INSTDIR\M12_main.zip",

vpatch::vpatchfile "$INSTDIR\patch.pat" "$INSTDIR\M12_main.zip" "$INSTDIR\M12_main.zip",

vpatch::vpatchfile "$INSTDIR\patch.pat" "$INSTDIR\M12_main.zip"

too, but still the same error

I used the example to make it, but there are 3 files (new txt, old txt and patch) and I have only two (old and patch)
and it still does not work....
T.Slappy#
vpatch

I mean the same as this guy:
Are you a developer who uses NSIS to distribute your application? Are you a Winamp plug-in developer who wants to use NSIS to distribute your plug-in? Have suggestions for other people like you? This is the place.


I mean: Vpatch is useless...

I just want to really PATCH file, it means that I HAVE old file and I will physicall rewritten it with patch (patch should be some manual for dll/installer how to change the target file: like "write 0xFFAHBD on offset position 145585, then write...")

This is not the PATCH...it just better copy function...

I mean it like Profesional Patch System - EA use it for their games - it changes only few bytes of file...
I am really dissapointed from it, because I tried to "patch" my file for hours and I found out that it is not possible with this tool.