Old 10th March 2005, 12:47   #1
pabs
Senior Member
 
pabs's Avatar
 
Join Date: Mar 2005
Posts: 186
nsis debian gnu/linux package?

Hi, I've been preparing a package for the Debian GNU/Linux distribution. I was wondering if people think it would be a useful thing to never have to leave the comfort of your debian system, even when you want to build windows installers for free software.

Also, a question or two about this:
1. The .dll files in the Plugins directory are produced from the source code in the Contrib directory.
2. Is there anything in the Contrib directory that the makensis program needs at runtime? I guess that the .c/.dsp/.dsw files don't need distributing though.
3. Has anyone written a Makefile for the dlls in the Plugins dir?

The current modifications include:

1. loading nsisconf.nsh from /etc/nsisconf.nsh and ~/.nsisconf.nsh instead of the same dir as the executable
2. Move the exe to /usr/bin
3. Install docs and examples in /usr/share/doc/nsis
4. Install the Plugins/Include/Contrib dirs in /usr/share/nsis

Any comments on this?

bye,
pabs
pabs is offline   Reply With Quote
Old 10th March 2005, 18:10   #2
kichik
M.I.A.
[NSIS Dev, Mod]
 
kichik's Avatar
 
Join Date: Oct 2001
Location: Israel
Posts: 11,343
Nothing from the Contrib folder is used to build makensis itself.

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 11th March 2005, 01:01   #3
pabs
Senior Member
 
pabs's Avatar
 
Join Date: Mar 2005
Posts: 186
I realise this, I was more thinking in terms of graphics and other kinds of things that people use often in their NSI scripts because they are accustomed to it being there.

bye,
pabs
pabs is offline   Reply With Quote
Old 11th March 2005, 10:16   #4
kichik
M.I.A.
[NSIS Dev, Mod]
 
kichik's Avatar
 
Join Date: Oct 2001
Location: Israel
Posts: 11,343
grep all the .nsi and .nsh files for ${NSISDIR}. There are more than a few usages of it, but most are referring the Include or Contrib folders.

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 12th March 2005, 02:38   #5
pabs
Senior Member
 
pabs's Avatar
 
Join Date: Mar 2005
Posts: 186
Thanks for the tip. Seems no-one is interested, but I'm gonna do it anyway, because I hate Windows, but I still need to make Windows installers.

bye,
pabs
pabs is offline   Reply With Quote
Old 12th March 2005, 10:39   #6
kichik
M.I.A.
[NSIS Dev, Mod]
 
kichik's Avatar
 
Join Date: Oct 2001
Location: Israel
Posts: 11,343
If you can make a package that installs in a standard directory structure on Linux, I'll be interested in including the changes.

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 13th March 2005, 20:05   #7
pabs
Senior Member
 
pabs's Avatar
 
Join Date: Mar 2005
Posts: 186
Ok, excellent. I'm in the process of auditing the source tarball looking for how each dll/exe is built and writing Makefiles for that. After that, I'll request a sponsor for uploading to debian and clean up the modifications I made for submission to the project.

bye,
pabs
pabs is offline   Reply With Quote
Old 14th March 2005, 05:39   #8
pabs
Senior Member
 
pabs's Avatar
 
Join Date: Mar 2005
Posts: 186
I don't know C++ very well, but debian's mingw g++ gives the following:

pabs@chianamo:~/devel/debian/nsis-2.05/Contrib$ make -C BgImage/
make: Entering directory `/home/pabs/devel/debian/nsis-2.05/Contrib/BgImage'
i586-mingw32msvc-g++ -Wall -Os -shared -s -mwindows -o ../../Plugins/BgImage.dll BgImage.cpp -lwinmm
In file included from BgImage.cpp:3:
../ExDLL/exdll.h:76: error: declaration of `exec_flags*<anonymous struct>::exec_flags'
../ExDLL/exdll.h:73: error: changes meaning of `exec_flags' from `typedef struct exec_flags exec_flags'

For this construct (from exdll.h):

typedef struct {
int autoclose;
...
} exec_flags;

typedef struct {
exec_flags *exec_flags;
...
} extra_parameters;

Is there a recommended way to fix this so the BgImage plugin (and others that use C++) can go into the debian install? That construct works fine in the AdvSplash/Banner plugins (both written in C).

bye,
pabs
pabs is offline   Reply With Quote
Old 14th March 2005, 09:03   #9
DrSlump
Guest
 
Posts: n/a
I'd sure love to have it

We have one client that uses NSIS and wants to migrate his webserver to linux, and we have just installed a debian system, so it would be just in place ))
  Reply With Quote
Old 14th March 2005, 10:33   #10
pabs
Senior Member
 
pabs's Avatar
 
Join Date: Mar 2005
Posts: 186
Excellent. Which, if any, plugins, include files or graphics do you use from the NSIDIR?

bye,
pabs
pabs is offline   Reply With Quote
Old 14th March 2005, 11:38   #11
pabs
Senior Member
 
pabs's Avatar
 
Join Date: Mar 2005
Posts: 186
Plugin building status report:

I can build the following plugins fine (with/without modifications) - these are all C plugins:

Plugins/advsplash.dll

Plugins/Banner.dll

Plugins/Dialer.dll

Plugins/LangDLL.dll

Plugins/nsExec.dll

Plugins/UserInfo.dll

Plugins/splash.dll

Plugins/StartMenu.dll

Plugins/VPatch.dll

These all have the problem with the exdll.h file that I posted above (all C++):

Plugins/InstallOptions.dll

Plugins/TypeLib.dll

Plugins/Math.dll

Plugins/BgImage.dll

Plugins/nsisdl.dll


This one has a similar error in one of its own files (also C++):

Plugins/System.dll


Now onto binaries placed in Contrib in the source tarball.

How should I contribute the Contrib changes? These are Makefiles, case changes and minor edits so far. diff against the unpacked source tarball? A zip of the modified Contrib directory?

bye,
pabs
pabs is offline   Reply With Quote
Old 14th March 2005, 16:57   #12
DrSlump
Guest
 
Posts: n/a
Could you put the debian dir you made anywhere?

I'd like to download it and start tweaking with it

thanks
  Reply With Quote
Old 15th March 2005, 18:23   #13
kichik
M.I.A.
[NSIS Dev, Mod]
 
kichik's Avatar
 
Join Date: Oct 2001
Location: Israel
Posts: 11,343
As I'm already writing a SCons build system, I will not include any contributed Makefiles. Case changes will also be rejected as CVS doesn't support renames and I'd like to keep the change log easy to follow. Other patches can be submitted as CVS diffs in the patches tracker.

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 15th March 2005, 19:43   #14
pabs
Senior Member
 
pabs's Avatar
 
Join Date: Mar 2005
Posts: 186
Latest deb, orig.tar.gz, .diff.gz, build log etc will be available at http://bonedaddy.net/pabs3/debian/ until this gets into debian, or if I can't find a sponsor, I'll start uploading to mentors.debian.net I think.

I got this file building: Contrib/Library/LibraryLocal/LibraryLocal.exe

Unfortunately, not really sure where other binaries in Contrib are built from. Any ideas? I speak of these:
Contrib/UIs/modern_nodesc.exe
Contrib/UIs/default.exe
Contrib/UIs/modern_smalldesc.exe
Contrib/UIs/sdbarker_tiny.exe
Contrib/UIs/modern_headerbmp.exe
Contrib/UIs/modern_headerbmpr.exe
Contrib/UIs/modern.exe
Contrib/System/Resource.dll
Contrib/Library/RegTool/RegTool.bin
Contrib/NSIS Update/UI.exe
Contrib/NSIS Update/ExtractDLL.dll

bye,
pabs
pabs is offline   Reply With Quote
Old 15th March 2005, 19:48   #15
kichik
M.I.A.
[NSIS Dev, Mod]
 
kichik's Avatar
 
Join Date: Oct 2001
Location: Israel
Posts: 11,343
Contrib\UIs\default.exe is built from Contrib\UIs\UI Holder. All of the other executables are modified versions of default.exe. Resource Hacker was used to modify them. Contrib\System\Resource.dll is not built from Source, it's just a DLL with some icons. Contrib\Library\RegTool\RegTool.bin is built from RegTool.nsi. The source code for Contrib\NSIS Update\ExtractDLL.dll is available on the Archive.

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 16th March 2005, 08:42   #16
pabs
Senior Member
 
pabs's Avatar
 
Join Date: Mar 2005
Posts: 186
Thanks for the info re binaries. Where do the icons for Contrib\System\Resource.dll come from? Any info on the modifications to default.exe?

The case changes I spoke of are inside .c files, where some of the C sources are including files that don't exist if you have a case sensitive file system. I'll submit the patches (minus makefiles) to the tracker later today.

bye,
pabs
pabs is offline   Reply With Quote
Old 16th March 2005, 10:18   #17
DrSlump
Guest
 
Posts: n/a
I've already built a .deb

Thanks for the work.

btw, you should to put g++ as build-depend.
  Reply With Quote
Old 16th March 2005, 13:18   #18
pabs
Senior Member
 
pabs's Avatar
 
Join Date: Mar 2005
Posts: 186
Well, it builds fine inside a pbuilder without adding g++ to the Build-Depends. Do you have build-essential installed?

Also, I sent an update that fixes the problem I was having with ExDLL above, which means several more DLLs are now built.

Here's my TODO before the RFS:


Include the current directory in the search path for nsisconf.nsh and for files referenced by the Plugins code and elsewhere so that RegTool.bin can be created at build time.

Install stuff referenced from the example files etc into /usr/share/nsis/Contrib

Place copyrights from Contrib into debian/copyright

bye,
pabs
pabs is offline   Reply With Quote
Old 21st March 2005, 02:33   #19
pabs
Senior Member
 
pabs's Avatar
 
Join Date: Mar 2005
Posts: 186
Ok, I've uploaded to mentors.debian.net and am going to file an RFS later today.

http://mentors.debian.net/debian/pool/main/n/nsis/
http://bonedaddy.net/pabs3/debian
http://bonedaddy.net/pabs3/debian/nsis_2.05-1_i386.deb
http://bonedaddy.net/pabs3/debian/ns...5-1_i386.build

bye,
pabs
pabs is offline   Reply With Quote
Old 30th March 2005, 13:55   #20
pabs
Senior Member
 
pabs's Avatar
 
Join Date: Mar 2005
Posts: 186
Found a sponsor and packaged 2.06. It may even get into sarge!!

bye,
pabs
pabs is offline   Reply With Quote
Old 31st March 2005, 10:23   #21
pabs
Senior Member
 
pabs's Avatar
 
Join Date: Mar 2005
Posts: 186
2.06 has been uploaded, and is in the new queue:
http://ftp-master.debian.org/new.html

bye,
pabs
pabs is offline   Reply With Quote
Old 8th April 2005, 09:34   #22
pabs
Senior Member
 
pabs's Avatar
 
Join Date: Mar 2005
Posts: 186
nsis has been accepted into debian!

http://packages.qa.debian.org/n/nsis.html

If sarge freezes in more than 10 days time, it may even make it into sarge on some platforms.

Unfortunately the mipsel and sparc builds failed due to problems in halibut (a segfault and a bus error), so it would be good if halibut in nsis was updated to the latest upstream release when nsis is next released.

http://buildd.debian.org/build.php?pkg=nsis

bye,
pabs
pabs is offline   Reply With Quote
Old 5th May 2005, 10:11   #23
DrSlump
Guest
 
Posts: n/a
NSIS into sarge

Sarge got frozen!
but nsis got into!

congrats pabs
  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