Archive: NSIS FreeBSD € 1000 to win contest


NSIS FreeBSD € 1000 to win contest
Contest goal:
Compile a successfully running makensis under FreeBSD.

The prizes to win if the solution and all belonging code is posted in the forum:

Under 3 days € 1000
Under 7 days € 600
Under 14 days € 300
Under 30 days € 200

If the under 7 days term is met, a € 400 bonus goes to the NSIS general development.

Why the contest?
I want to promote automatic builds with NSIS on open platforms like FreeBSD, and I was not successful so far.

Allowances:
- Precompiled exeheads are allowed, only makensis needs to be natively an FreeBSD executable.
- A compile and run also only needs to be successful on the x86 Platform.
- People contesting must be alread a forum member as of this post timestamp.
- The solution must compile under GCC 3.4.x or higher.
- Make and Scons solution allowed

Winner time:
If there are more forum posting *different* a solution in the same minute, prize will be divided among them.

Q: I'm afraid that if I post my solution, I do not get paid.
A: Well, don't post it then ;) a little trust one must have.

Good luck!


WOW! You rock onad! I might just install freebsd on that spare partition. It might take me days to download and install tho :(

Hmm, freebsd doesn't seem to have any way to netinstall it without a floppy or cdrom :S

BTW, is this the CVS version or the latest release?


Hi Pabs,

Expecting already a reponse from at least you ;). Don't care which version CVS or 2.10.

BTW I can send you the v4.11 v.5.3 and v6.0 CD's for free if it helps you in the quest. Installs just fine and easy.

Send a private message to me with adress if you want me to send the CD's to which ofcourse you can keep.


Compiled using the attached patch, which is already committed to CVS, and:

scons.py SKIPSTUBS=all SKIPPLUGINS=all SKIPUTILS=all SKIPMISC=all LIBPATH=/usr/local/lib CC=gcc30 CXX=g++30
on:
kichik@x86-freebsd1:~$ uname -a
FreeBSD x86-freebsd1 4.11-RELEASE FreeBSD 4.11-RELEASE #0: Wed Oct 5 21:16:58 PDT 2005 root@x86-freebsd1:/usr/obj/usr/src/sys/GENERIC i386
Resulting makensis also uploaded.

REALLY Great!

Well since it is you "kichik", master of NSIS knowledge, to give the patch I assume it works ;) I'll test it on my FreeBSD v6 machine and report back as soon as it runs.

If it works you are the winner! and I will contact you about payment details.

Thanks!


CVS maintanance on sourceforge 20051109 made it impossible today to download the latest source :(

Will try tomorrow again...


Still iconv.h build problems
Compiled CVS of 20051110 on WinXP, no problem.
Moved files to FreeBSD6

I tried to build with precompiled stubs, removed old files first but still no luck... :(

See included log for all details needed


Do you have iconv.h somewhere in the system? Run `locate iconv.h`, see where it is, and use that path for CPPPATH. It's probably /usr/local/include. So this should do the trick:

scons SKIPSTUBS=all SKIPPLUGINS=all SKIPUTILS=all SKIPMISC=all LIBPATH=/usr/local/lib CPPPATH=/usr/local/include CC=gcc30 CXX=g++30

Well, yes I tried that already ofcourse... but no luck.

Any other hint. e.g. on which path is on your freeBSD PC the iconv.h so I can just make a symboliclink with the same naming as on your machine.


For me it's at:

kichik@x86-freebsd1:~/nsis-2.10-src$ locate iconv.h
/usr/X11R6/include/gal/util/e-iconv.h
/usr/compat/linux/usr/include/iconv.h
/usr/include/sys/iconv.h
/usr/local/include/iconv.h
/usr/obj/usr/src/sys/GENERIC/libiconv.h
/usr/obj/usr/src/sys/GENERIC/opt_libiconv.h
/usr/src/sys/sys/iconv.h
But it doesn't matter where it is as long as CPPPATH points to it, or the compiler searches there automatically.

If you can give me shell access to your machine, it'd be easier to find out exactly what's wrong.

YYYYYYEEEEEESSSSSSSS, kichik, look below, and you know what I mean! :-) Time for me to invite friends for a drink...

g++ -o build/release/makensis/makensis -s -Wl,-Map,build/release/makensis/makensis.map -pthread build/release/makensis/build.o build/release/makensis/clzma.o build/release/makensis/crc32.o build/release/makensis/DialogTemplate.o build/release/makensis/dirreader.o build/release/makensis/growbuf.o build/release/makensis/lang.o build/release/makensis/lineparse.o build/release/makensis/makenssi.o build/release/makensis/mmap.o build/release/makensis/Plugins.o build/release/makensis/ResourceEditor.o build/release/makensis/ResourceVersionInfo.o build/release/makensis/script.o build/release/makensis/ShConstants.o build/release/makensis/strlist.o build/release/makensis/tokens.o build/release/makensis/util.o build/release/makensis/bzip2/blocksort.o build/release/makensis/bzip2/bzlib.o build/release/makensis/bzip2/compress.o build/release/makensis/bzip2/huffman.o build/release/makensis/7zip/7zGuids.o build/release/makensis/7zip/Common/CRC.o build/release/makensis/7zip/7zip/Compress/LZ/LZInWindow.o build/release/makensis/7zip/7zip/Compress/LZMA/LZMAEncoder.o build/release/makensis/7zip/7zip/Common/OutBuffer.o build/release/makensis/7zip/7zip/Compress/RangeCoder/RangeCoderBit.o build/release/makensis/7zip/Common/Alloc.o build/release/makensis/zlib/deflate.o build/release/makensis/zlib/trees.o -L/usr/local/lib -lpthread -lstdc++ -liconv
scons: done building targets.

File could not be attatched in zip since it is 177KB, anyhow will make a Wiki page of POSIX struggles and explaining how to succeed.

^^^^^
...now in to my so.1 not found, but that is something different...


For people interested, a compiled version can be found on:

http://stashbox.org/uploads/11317143..._freeBSDv6.zip (bad version)

Remember that it is ofcourse better to try and make a successfull compiled build on your on FreeBSD system yourself.


Basic.nsi example gives ReadVarLenArr error under FreeBSD
When compiling the Basic.nsi example of ModernUI I get:

"Error while changing UI: ReadVarLenArr - Unicode conversion failed."

This is thrown e.g. from DialogTemplate.cpp?

See included file.


It's iconv erroring out with EILSEQ which means:

An invalid multibyte sequence has been encountered in the input.
I'll take a deeper look.

In the meanwhile, a fresh port of iconv might do the trick.

It defauls to Big Endian Unicode. Simply change both UCS-2 to UCS-2LE in util.cpp. I'll commit the change once CVS is back online.


Good, thanks again, that solved it!

Will perform more tests of examples and soon go to test a real big script that I created and works perfectly on Win32.

At the moment cannot yet test on FreeBSD build machine v4.11.
Btw
the static lib makensis build you created did solve my lib problem though, but I will need some time to test it all. Have a good weekend.


So far so good, could almost compile all the examples without changeing ANYTHING. Have to take a loo at the gfx.nsi example and beloning code.

Will come back with detailed results and a test shellscript to automate the scripts.


There's no need for a shell script. You can run `scons test-scripts` to test all of the scripts. Use -k to continue even if there are errors.

gfx.nsi can't be compiled on non-Windows platforms because it uses AddBrandingImage.


Party at kichik's this weekend. :)
(Got to help him spend that € 1000)


After much effort by onad, the money was transferred. Thanks onad for your generous support!

On a side note, the next version will support big-endian platforms. The current CVS version already has this support. This means makensis should be build-able on every platform known to man. Well, maybe not the really weird ones ;) If there are any build problems on a specific platform, please do let me know by submitting a bug report.

iceman, if you manage get anyone to my house, the beer is on me :)


The plane fare is probably going to exceed the € 1000, so it will be a very expensive beer. :D


Hello all.
I need help for compile NSIS on freeBSD 6.
i also have a error with "iconv.h".
i locate iconv.h. It was usr/local/include
BTW, dir nsis-2.46 i put in home/user3/data/test2
Next typed:

root# scons SKIPSTUBS=all SKIPPLUGINS=all SKIPUTILS=all SKIPMISC=all NSIS_CONFIG_CONST_DATA_PATH=no LIBPATH=/usr/local/lib CPPPATH=/usr/local/include PREFIX=/usr/local install-compiler

and get error with iconv.h
Without prefix i got error with iconv.h
without install-compiler, but with CC=gcc30 CXX=g++30
i got "no such file windows.h"
i don't know what i must do. help please.
sorry for bad english.


Now i have another problem.
i need install NSIS on freebsd 6
typed
alivelab# scons SKIPSTUBS=all SKIPPLUGINS=all SKIPUTILS=all SKIPMISC=all NSIS_CONFIG_CONST_DATA_PATH=no APPEND_LIBPATH="/usr/local/lib" APPEND_CPPPATH="/usr/local/include"

and got
.o -L/usr/local/lib -lpthread -liconv
scons: done building targets.
i think it's ok
then i typed
alivelab# scons SKIPSTUBS=all SKIPPLUGINS=all SKIPUTILS=all SKIPMISC=all NSIS_CONFIG_CONST_DATA_PATH=no APPEND_LIBPATH="/usr/local/lib" APPEND_CPPPATH="/usr/local/include" install
but i got
scons: done reading SConscript files.
scons: Building targets ...
scons: Nothing to be done for `INSTALL'. scons: done building targets.
and what todo now?
how i can get exe from nsi?


If it actually complained about "INSTALL", replace it with "install" in all lowercase. If it still doesn't work, try adding PREFIX=something.