Hello GHDL developers,

Dear GHDL users for the Windows platform,

 

I had a look into the NuPackage / Chocolatey / OneGet package management system.

I think it can be used to deploy GHDL for Windows users.

 

Here is a short summary:

The NuPkg is a kind of meta package management. It’s a zip file containing meta 
information

like name, author, version and dependencies. It also comes with a set of 
PowerShell scripts

for installation and uninstallation, which are invoked by for example the 
‘choco’ command.

Normally, the *.nupkg file contains URL references to where to download the 
program. A

program can be a *.msi file or a *.zip file. Additionally, it contains the 
commands to extract the

zip or to launch MS installer in quiet mode. It’s also possible to include the 
*.msi or *.zip file in

the nupkg file (up to 20 MiB are supported => GHDL.zip has currently 2.1 MiB on 
Windows)

 

NuPkg is a distributed system. Like apt, it’s possible to use/register multiple 
download sources.

One public repository provider is myget (http://www.myget.org). So besides 
Chocolatey

(https://chocolatey.org/) there is a set of package providers. And if needed 
it’s possible to switch

to another provider.

 

1) So here is my first question:

Do you wish that the package downloads each GHDL installation from sourceforge 
via URL, OR

can we include the small 2 MiB zip file within the *.nupkg file. I would 
recommend the latter

solution

 

Pros:

-          One file, containing all data

-          No secondary downloads

Cons:

-          It generates less downloads on sourceforge => statistics

 

 

I’m going to extend the current build scripts for the windows platform to 
create a zip-package

for the download via sourceforge. This zip will contain the *.exe files, the 
prepared *.vhdl libraries

and a Powershell script for the installation process:

1.       Copy all needed files to the specified directory (or if unset to a 
default directory)

2.       Register the GHDL installation path in %PATH% so ghdl.exe can be used 
in command line shells
(if not deactivated)

3.       Create a registry folder GHDL => this can be used to track all 
installed version

4.       Create a registry key (InstallationPath)
=> this can be used to find GHDL for uninstallation
=> it’s also needed to clean-up %PATH% after deinstallation

 

So a user only needs to download GHDL.zip, extract it’s content and launch the 
install.ps1 script.

 

Next Questions:

2) What is the default installation directory for GHDL?

Good Windows programs install themselves to C:\Program 
Files\<Vendor>\<Product>, but GHDL has

no vendor, hasn’t it? I would recommend this path: C:\Program 
Files\GHDL\<Version>, so it’s possible

to use multiple GHDL versions on a system. If it’s ok, I would extend the 
install script, with an option

-          Normal installation changes %PATH% to the path of the newest GHDL 
version.

-          If step 2 from above is deactivated => don’t update %PATH% => the 
old GHDL stays the ‘active’ one

 

3) Is a ‘bin’ sub-folder necessary, because GHDL has only 2 executables?

-          Solution 1:
C:\Program Files\GHDL\0.33\bin\ghdl.exe
C:\Program Files\GHDL\0.33\bin\ghdlfilter.exe
C:\Program Files\GHDL\0.33\lib\v87\...
C:\Program Files\GHDL\0.33\lib\v93\...
C:\Program Files\GHDL\0.33\lib\v08\...

-          Solution 2:
C:\Program Files\GHDL\0.33\ghdl.exe
C:\Program Files\GHDL\0.33\ghdlfilter.exe
C:\Program Files\GHDL\0.33\lib\v87\...
C:\Program Files\GHDL\0.33\lib\v93\...
C:\Program Files\GHDL\0.33\lib\v08\...

 

The *.nupkg file can be assembled after creating the *.zip file. The default 
PowerShell scripts will

have 2 instructions:

-          Extract the embedded zip-file into a temp folder

-          Call the above mentioned install routine with default parameters.

 

So how does it look like for a normal GHDL user?

1.       Open a PowerShell window

2.       Execute this line:

choco install ghdl

3.       that’s it.

 

How does it look like for a package maintainer?

cd dist\mcode

.\winbuild.ps1 –Compile

.\winbuild.ps1 –CreatePackage –Zip

.\winbuild.ps1 –CreatePackage –NuPkg

.\winbuild.ps1 -Release

 

Question 4:

To which branch should I upload the changed PowerShell scripts?

 

 

@All readers

Any suggestions, change requests, wishes for the windows build process and the 
NuPkg packages?

 

 

Regards

     Patrick

 

-----------------------------------

Wissenschaftliche Hilfskraft

 

Technische Universität Dresden

Fakultät Informatik

Institut für Technische Informatik

Lehrstuhl VLSI-Entwurfssysteme, Diagnostik und Architektur

01062 Dresden

Tel.:   +49 351 463-38451

Fax:    +49 351 463-38324

Raum:   APB-1020

E-Mail:  <mailto:[email protected]> [email protected]

WWW:     <http://vlsi-eda.inf.tu-dresden.de/> http://vlsi-eda.inf.tu-dresden.de

 

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
Ghdl-discuss mailing list
[email protected]
https://mail.gna.org/listinfo/ghdl-discuss

Reply via email to