-
Notifications
You must be signed in to change notification settings - Fork 115
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Making independent binary package for gtkwave3-gtk3 #18
Comments
For the dependencies, I don't have msys handy, but I think the ldd command might work on that as well. Other than that, you need to see what's on the sourceforge site for this and copy over the appropriate directories for things such as Tcl, etc. The lib/ and share/ directories are the tricky ones. See here:
https://sourceforge.net/projects/gtkwave/files/gtkwave-3.3.100-bin-win64/
I don't have an explicit build process for windows zip files. I got it working the one time then after that simply copy over the new executables for each release.
…-Tony
On Saturday, June 6, 2020, 11:38:49 PM EDT, e-tabrez <notifications@github.com> wrote:
Hello,
Thanks for your efforts for this very useful tool.
gtkwave3-gtk3 has much better look and feel but binary distribution is not available for it.
So to use gtkwave3-gtk3, I have build it MSYS2 on Win10.
Its installed on MSYS2's in mingw64 directory and working fine.
Now I want to distribute gtkwave3-gtk3 binaries to my team members so they can use without MSYS2 (just like binary distribution available for gtkwave3 on SourceForge).
It will be helpful to add packaging instruction for gtkwave3-gtk3 (with list of dependencies dll etc)
so we can make independently usable gtkwave3-gtk3 binary distribution.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
Thanks for reply. I just managed to make a win64 distribution for gtkwave3-gtk3 after many trial and errors. This makes my distribution zip package more than double in size (58 MB) compared to SourceForge package. It would be nice to make official distribution packages for gtkwave3-gtk3 also on SourceForge. |
See if ldd works. I thought it did, but I might be wrong. For example on linux:
273:/home/bybell> ldd /usr/local/bin/gtkwave
linux-vdso.so.1 => (0x00007ffc6b1f2000)
libgtk-3.so.0 => /lib64/libgtk-3.so.0 (0x00007fc0aaeaf000)
libgdk-3.so.0 => /lib64/libgdk-3.so.0 (0x00007fc0aabc5000)
libatk-1.0.so.0 => /lib64/libatk-1.0.so.0 (0x00007fc0aa99f000)
libgio-2.0.so.0 => /lib64/libgio-2.0.so.0 (0x00007fc0aa600000)
<etc>
…-Tony
On Sunday, June 7, 2020, 01:33:47 AM EDT, e-tabrez <notifications@github.com> wrote:
Thanks for reply.
I just managed to make a win64 distribution for gtkwave3-gtk3 after many trial and errors.
I referred the directories and files available in gtkwave-3.3.100-bin-win64 (SourceForge package) and copied the required files from MSYS2 mingw64 to my distribution package.
Its working so far.
But only thing is, since I am not sure which DLLs are needed, I had to copy all the DLLs from msys64\mingw64\bin.
Also same for msys64\mingw64\share\icons.
This makes my distribution zip package more than double in size (58 MB) compared to SourceForge package.
But not bad for now.
It would be nice to make official distribution packages for gtkwave3-gtk3 also on SourceForge.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
Actually ldd didn't helped much. $ ntldd gtkwave I copied above listed DLLs from C:\msys64\mingw64\bin to my distribution pkg. So I copied all the DLLs available in C:\msys64\mingw64\bin (total 110) to my distribution pkg. There my be many unused and unnecessary DLLs. But for now its OK. |
Hi @e-tabrez! The default package manager in MSYS2 is pacman. Hence, build/install recipes are normally provided as PKGBUILD files. In fact, there's already a PKGBUILD file for gtkwave since 2017 (msys2/MINGW-packages#2071). I can confirm that the package works because I have been using it in University courses for students to get gtkwave easily: # pacman -Ss gtkwave
mingw32/mingw-w64-i686-gtkwave 3.3.104-1
GTKWaveGTKWave is a fully featured GTK+ based wave viewer for Unix, Win32, and Mac OSX
mingw64/mingw-w64-x86_64-gtkwave 3.3.104-1 [installed]
GTKWaveGTKWave is a fully featured GTK+ based wave viewer for Unix, Win32, and Mac OSX Hence, I would strongly suggest to please (PLEASE) contribute the gtk3 variant that you have written, as a new official package of MSYS2. That is, to open a PR in msys2/MINGW-packages. That will allow all MSYS2 users to easily install it. On the other hand, I am very interested on some standard procedure to distribute "binaries to my team members so they can use without MSYS2". Precisely, in the context of ghdl/ghdl, we are providing nightly releases built with MSYS2 in GitHub Actions. However, those packages need some additional dependencies in MSYS2: https://github.com/ghdl/setup-ghdl-ci/blob/master/main.js#L29-L33. I think that a general approach to achieve this should be discussed in MSYS, rather than doing it "manually" for each tool. Maybe MSYS2 does already have some script to get the deps of a package. /cc @lazka.
I can propose a PR to use @e-tabrez's build script in a GitHub Actions job (CI). |
My first gtkwave-gtk3 distribution package is ready. Both light and Dark themes are working. I have created a SourceForge project and shared this package for other Windows users. Thanks Tony Bybell for this great wave analyzer tool. |
I have zero experience in handling github and linux. This is my first time I am building a github software. So its difficult for me make any new build package. However, I have uploaded gtk3 binary on SourceForge (https://sourceforge.net/projects/gtkwave3-gtk3-win64-build/). I will try to build and upload new versions as soon as updates are available in github project. If someone knows better place to upload this distribution, please guide me. |
The only "automatic" way atm is to install all deps with pacman to a different directory, install your app there and then delete everything you don't need and package it up. I'll plan to write some docs for this in the future.. |
@e-tabrez, it's ok. Others (me) can help with that. Can you please just share the sequence of commands/steps that you use to generate the zipfiles?
I'd like to make them available in this repository and have them updated automatically (as done with GHDL). See https://github.com/ghdl/ghdl/blob/master/.github/workflows/push.yml#L95-L97 and https://github.com/ghdl/ghdl/blob/master/.github/workflows/push.yml#L110-L114. That way, you won't need to build and upload new versions manually, you'll just need to download and test/use them. @lazka, thanks a lot for clarifying. I guess we can use some ad-hoc script that copies "almost everything" for now (as @e-tabrez did), and we'll update the procedure when those docs are available. |
Steps to build gtkwave3-gtk3 with MSYS2 on Windows10 Steps to create gtkwave3-gtk3 distribution zip (2) Create a new folder "bin" here (3) Create a new folder "lib" (3) Create a new folder "share" (4) Run gtkwave_gtk3_64\bin\gtkwave.exe to check if its working correctly (5) Packege gtkwave_gtk3_64 in a zip to distribute |
@gtkwave , @umarcor With unnecessary DLLs removed, zip file came down from 54MB to around 40MB. I have released win64 and win32 binaries with these file in a forked project. List of required file in bin for gtk3-build (win64):17 EXE files:
43 DLL files:
List of required file in bin for gtk3-build (win32):17 EXE files:
43 DLL files:
List of required file in bin for gtk2-build (win64):17 EXE files:
42 DLL files:
List of required file in bin for gtk2-build (win32):17 EXE files:
46 DLL files:
|
Hello,
Thanks for your efforts for this very useful tool.
gtkwave3-gtk3 has much better look and feel but binary distribution is not available for it.
So to use gtkwave3-gtk3, I have build it MSYS2 on Win10.
Its installed on MSYS2's in mingw64 directory and working fine.
Now I want to distribute gtkwave3-gtk3 binaries to my team members so they can use without MSYS2 (just like binary distribution available for gtkwave3 on SourceForge).
It will be helpful to add packaging instruction for gtkwave3-gtk3 (with list of dependencies dll etc)
so we can make independently usable gtkwave3-gtk3 binary distribution.
The text was updated successfully, but these errors were encountered: