Hello,
I've successfully managed to build Geany on MSYS2, against both gtk2 and gtk3. I've started to describe the steps on the wiki: https://wiki.geany.org/howtos/win32/msys2, however the page is not complete yet (but complete enough to produce a running geany).
Short introduction, see the wiki page for more details:
Msys2 is a successor to msys which offers a unix-like environment on Windows combined with a pacman-based package manager. It's purpose is to simplify win32 compilations, and it's doing great at that for GTK+ stack and related projects. In fact, it's so good it should become the default method of compiling Geany on Windows.
See http://sourceforge.net/projects/msys2/ and http://msys2.github.io/
For me, as regular Arch Linux user, this is by far the most easiest method to compile Geany on Windows. And it has the *huge* advantage of providing up-to-date binaries of the GTK+ stack, in contrast to the obsolete gtk bundles. I heard the GTK guys plan on removing the bundles and instead rely solely on MSYS2 for all of their win32 efforts.
Best regards
On 29/05/15 11:00, Thomas Martitz wrote:
Hello,
I've successfully managed to build Geany on MSYS2, against both gtk2 and gtk3. I've started to describe the steps on the wiki: https://wiki.geany.org/howtos/win32/msys2, however the page is not complete yet (but complete enough to produce a running geany).
Short introduction, see the wiki page for more details:
Msys2 is a successor to msys which offers a unix-like environment on Windows combined with a pacman-based package manager. It's purpose is to simplify win32 compilations, and it's doing great at that for GTK+ stack and related projects. In fact, it's so good it should become the default method of compiling Geany on Windows.
See http://sourceforge.net/projects/msys2/ and http://msys2.github.io/
For me, as regular Arch Linux user, this is by far the most easiest method to compile Geany on Windows. And it has the *huge* advantage of providing up-to-date binaries of the GTK+ stack, in contrast to the obsolete gtk bundles. I heard the GTK guys plan on removing the bundles and instead rely solely on MSYS2 for all of their win32 efforts.
Woohoo, thanks! That sounds great. I will test/use it soon when I find the time playing with it.
Hopefully, this enables us to eventually remove the Waf build system in the longterm.
Regards, Enrico
On 05.6.2015 г. 19:52, Enrico Tröger wrote:
On 29/05/15 11:00, Thomas Martitz wrote:
Msys2 is a successor to msys which offers a unix-like environment on Windows combined with a pacman-based package manager. [...]
My standard test:
[D:]grep 00A0 uni*.uni grep: uni*.uni: No such file or directory
[D:]grep 00A0 uni\*.uni grep: uni*.uni: No such file or directory
Why?..
[D:]grep 00A0 uni/*.uni uni/10646-1.uni:00A0 ...
It's actually an *improvement* over MSYS, which required UNI/*.UNI (i.e. a short name if the short and long names are identical).
I don't know about pacman, but the 20MB maintenancetool.exe does not look like something that can be used to manage the MSYS2 components. Out of the box, only "Remove all components" works; the "Default repositories" are empty and read-only, and I can't even see a list of the installed MSYS2 components. Not very impressive, compared against mingw-get, which is < 200KB (.exe + guimain.exe).
Hopefully, this enables us to eventually remove the Waf build system in the longterm.
I'm using waf under Linux as well, since it keeps the source tree clean, and allows compiling only selected plugins without a super-long list of --disable-plugin-s.
Also note that MSYS2 by itself does not include any development stack. Not even a make, like MSYS.
-- E-gards: Jimmy
06/06/15 14:07, Dimitar Zhekov пишет:
Also note that MSYS2 by itself does not include any development stack. Not even a make, like MSYS.
You can install it easily using pacman:
pacman -S make
Actually it is great to have sane packet manager in windows environment since compiling dependences was always hell in windows.
Best regards, Yury Siamashka
Le 06/06/2015 13:07, Dimitar Zhekov a écrit :
[…]
I'm using waf under Linux as well, since it keeps the source tree clean,
You can do the same with Autotools, though it admittedly doesn't enforce it. Just run configure from the directory you want the build files in, e.g:
$ mkdir _build $ cd _build $ ../configure [options]
and allows compiling only selected plugins without a super-long list of --disable-plugin-s.
With Autotools you can indeed not (yet) easily only configure a specific plugin, but you can very easily only build one, by running Make inside the plugin's subdirectory (e.g. `make -C theplugin`).
And we could probably relatively easily add a flag similar you the current Waf's `--enable-plugins` -- this was mentioned yesterday on IRC, we could try and add e.g. --disable-all so to build a single plugin it could be --disable-all --enable-this-one, but we could probably also have the --enable-plugins=list semantic.
Regards, Colomban
Le 06/06/2015 14:57, Colomban Wendling a écrit :
[…]
And we could probably relatively easily add a flag similar you the current Waf's `--enable-plugins` -- this was mentioned yesterday on IRC, we could try and add e.g. --disable-all so to build a single plugin it could be --disable-all --enable-this-one, but we could probably also have the --enable-plugins=list semantic.
Proposed implementation: https://github.com/geany/geany-plugins/pull/236
Cheers, Colomban
On 2015-06-06 05:57 AM, Colomban Wendling wrote:
Le 06/06/2015 13:07, Dimitar Zhekov a écrit :
[…]
I'm using waf under Linux as well, since it keeps the source tree clean,
You can do the same with Autotools, though it admittedly doesn't enforce it. Just run configure from the directory you want the build files in, e.g:
$ mkdir _build $ cd _build $ ../configure [options]
That's only partially true, at least when using a Git clone. autogen.sh script puts quite a few files in the source directory, and then make will put even more, if building any of the Vala plugin.
It is true for the release tarball though, if you don't mind using Vala compiler of the person making the tarball.
Cheers, Matthew Brush
05/29/15 12:00, Thomas Martitz пишет:
Hello,
I've successfully managed to build Geany on MSYS2, against both gtk2 and gtk3. I've started to describe the steps on the wiki: https://wiki.geany.org/howtos/win32/msys2, however the page is not complete yet (but complete enough to produce a running geany).
Actually I noticed that they even have Geany PKGBUILD in their MSYS2-packages repository (https://github.com/Alexpux/MSYS2-packages). I was able to build and install it in without problems. This makes setting environment for working on plugins in windows very easy.
Best regards, Yury Siamashka
Am 7. Juni 2015 17:53:36 MESZ, schrieb Yury Siamashka yurand2@gmail.com:
05/29/15 12:00, Thomas Martitz пишет:
Hello,
I've successfully managed to build Geany on MSYS2, against both gtk2 and gtk3. I've started to describe the steps on the wiki: https://wiki.geany.org/howtos/win32/msys2, however the page is not complete yet (but complete enough to produce a running geany).
Actually I noticed that they even have Geany PKGBUILD in their MSYS2-packages repository (https://github.com/Alexpux/MSYS2-packages). I was able to build and install it in without problems. This makes setting environment for working on plugins in windows very easy.
Best regards, Yury Siamashka _______________________________________________ Devel mailing list Devel@lists.geany.org https://lists.geany.org/cgi-bin/mailman/listinfo/devel
Hey, this is cool. Now we only need to figure out how to create an installer.
Best regards
On 07/06/15 22:31, Thomas Martitz wrote:
Am 7. Juni 2015 17:53:36 MESZ, schrieb Yury Siamashka yurand2@gmail.com:
05/29/15 12:00, Thomas Martitz пишет:
Hello,
I've successfully managed to build Geany on MSYS2, against both gtk2 and gtk3. I've started to describe the steps on the wiki: https://wiki.geany.org/howtos/win32/msys2, however the page is not complete yet (but complete enough to produce a running geany).
Actually I noticed that they even have Geany PKGBUILD in their MSYS2-packages repository (https://github.com/Alexpux/MSYS2-packages). I was able to build and install it in without problems. This makes setting environment for working on plugins in windows very easy.
Best regards, Yury Siamashka _______________________________________________ Devel mailing list Devel@lists.geany.org https://lists.geany.org/cgi-bin/mailman/listinfo/devel
Hey, this is cool. Now we only need to figure out how to create an installer.
Basically it is quite easy with the existing geany.nsi and the NSIS package (Nullsoft Installer).
It only requires a Geany installation and a stripped down GTK tunetime environment to be packed into the installer. What this is, is documented at http://wiki.geany.org/howtos/win32/build#create_a_stripped_down_gtk_runtime_.... Maybe we can adopt this to the self-compiled GTK environment.
I could work on this but would delay this a bit until past the 1.25 release. Simply to not break things before a release.
Regards, Enrico
Am 14.06.2015 um 13:59 schrieb Enrico Tröger:
On 07/06/15 22:31, Thomas Martitz wrote:
Am 7. Juni 2015 17:53:36 MESZ, schrieb Yury Siamashka yurand2@gmail.com:
05/29/15 12:00, Thomas Martitz пишет:
Hello,
I've successfully managed to build Geany on MSYS2, against both gtk2 and gtk3. I've started to describe the steps on the wiki: https://wiki.geany.org/howtos/win32/msys2, however the page is not complete yet (but complete enough to produce a running geany).
Actually I noticed that they even have Geany PKGBUILD in their MSYS2-packages repository (https://github.com/Alexpux/MSYS2-packages). I was able to build and install it in without problems. This makes setting environment for working on plugins in windows very easy.
Best regards, Yury Siamashka _______________________________________________ Devel mailing list Devel@lists.geany.org https://lists.geany.org/cgi-bin/mailman/listinfo/devel
Hey, this is cool. Now we only need to figure out how to create an installer.
Basically it is quite easy with the existing geany.nsi and the NSIS package (Nullsoft Installer).
It only requires a Geany installation and a stripped down GTK tunetime environment to be packed into the installer. What this is, is documented at http://wiki.geany.org/howtos/win32/build#create_a_stripped_down_gtk_runtime_.... Maybe we can adopt this to the self-compiled GTK environment.
I could work on this but would delay this a bit until past the 1.25 release. Simply to not break things before a release.
Regards, Enrico
Why do you say self-compiled GTK? It is readily packaged for msys, I think we should be able to use that.
Even geany is packaged already, which is great for plugin developers to test on Windows. It's not suitable for end-user distribution though, I'd say, therefore we still want our own installer.
Best regards.
On 14/06/15 14:21, Thomas Martitz wrote:
Am 14.06.2015 um 13:59 schrieb Enrico Tröger:
On 07/06/15 22:31, Thomas Martitz wrote:
Am 7. Juni 2015 17:53:36 MESZ, schrieb Yury Siamashka yurand2@gmail.com:
05/29/15 12:00, Thomas Martitz пишет:
Hello,
I've successfully managed to build Geany on MSYS2, against both gtk2 and gtk3. I've started to describe the steps on the wiki: https://wiki.geany.org/howtos/win32/msys2, however the page is not complete yet (but complete enough to produce a running geany).
Actually I noticed that they even have Geany PKGBUILD in their MSYS2-packages repository (https://github.com/Alexpux/MSYS2-packages). I was able to build and install it in without problems. This makes setting environment for working on plugins in windows very easy.
Best regards, Yury Siamashka _______________________________________________ Devel mailing list Devel@lists.geany.org https://lists.geany.org/cgi-bin/mailman/listinfo/devel
Hey, this is cool. Now we only need to figure out how to create an installer.
Basically it is quite easy with the existing geany.nsi and the NSIS package (Nullsoft Installer).
It only requires a Geany installation and a stripped down GTK tunetime environment to be packed into the installer. What this is, is documented at http://wiki.geany.org/howtos/win32/build#create_a_stripped_down_gtk_runtime_....
Maybe we can adopt this to the self-compiled GTK environment.
I could work on this but would delay this a bit until past the 1.25 release. Simply to not break things before a release.
Regards, Enrico
Why do you say self-compiled GTK? It is readily packaged for msys, I think we should be able to use that.
Oops, scratch the self-compiled. But we still need to create a distributable GTK runtime environment. This is probably doable from the installed GTK package, I guess.
Regards, Enrico
Am 14.06.2015 um 14:48 schrieb Enrico Tröger:
On 14/06/15 14:21, Thomas Martitz wrote:
Why do you say self-compiled GTK? It is readily packaged for msys, I think we should be able to use that.
Oops, scratch the self-compiled. But we still need to create a distributable GTK runtime environment. This is probably doable from the installed GTK package, I guess.
Regards, Enrico
I'm experimenting at this moment. The gtk/glib/etc package files can be found under /var/cache/pacman/pkg/$pkg-$ver.tar.xz. They can be extracted with tar to a working directory. But what to do afterwards? The wiki says to move the files under $geanydir/gtk, but how is the installer file created? The nsis gui is giving me an error:
Error in macro MUI_PAGEDECLARATION_LICENSE on macroline 17 Error in macro MUI_PAGE_LICENSE on macroline 6 Error in script "C:\msys64\home\kugel\geany.git\geany.nsi" on line 87
(geany.nsi:87 reads "!insertmacro MUI_PAGE_LICENSE "${RESOURCEDIR}\Copying.txt")
The wiki mentions release.py which I cannot find in geany git.
Best regards
On 14/06/15 15:50, Thomas Martitz wrote:
Am 14.06.2015 um 14:48 schrieb Enrico Tröger:
On 14/06/15 14:21, Thomas Martitz wrote:
Why do you say self-compiled GTK? It is readily packaged for msys, I think we should be able to use that.
Oops, scratch the self-compiled. But we still need to create a distributable GTK runtime environment. This is probably doable from the installed GTK package, I guess.
Regards, Enrico
I'm experimenting at this moment. The gtk/glib/etc package files can be found under /var/cache/pacman/pkg/$pkg-$ver.tar.xz. They can be extracted with tar to a working directory. But what to do afterwards? The wiki says to move the files under $geanydir/gtk, but how is the installer file created? The nsis gui is giving me an error:
Now that you have the release.py (see below), you can easily see it is just:
makensis /V2 /DINCLUDE_GTK geany.nsi
Error in macro MUI_PAGEDECLARATION_LICENSE on macroline 17 Error in macro MUI_PAGE_LICENSE on macroline 6 Error in script "C:\msys64\home\kugel\geany.git\geany.nsi" on line 87
(geany.nsi:87 reads "!insertmacro MUI_PAGE_LICENSE "${RESOURCEDIR}\Copying.txt")
the Copying.txt is expected to be copied when installing Geany. 'waf install' does this. We cannot use a plain 'make install' on Windows as it is done on Linux, the Geany wscript has some logic, yes and magic, to do things different on Windows (like renaming AUTHORS, COPYING, README and so on to *.txt).
The wiki mentions release.py which I cannot find in geany git.
They are not meant to exist in the repository, at least so far. It seems I forgot to attach them to the wiki page, done now.
-> https://wiki.geany.org/howtos/win32/build#release_geany_and_geany-plugins
The scripts contain commands to digitally sign the binary files. These won't work on your system except you have my cerificate :). For testing, just comment this out. I still need to document the signcode.exe magic.
Regards, Enrico
Am 14.06.2015 um 16:35 schrieb Enrico Tröger:
On 14/06/15 15:50, Thomas Martitz wrote:
Am 14.06.2015 um 14:48 schrieb Enrico Tröger:
On 14/06/15 14:21, Thomas Martitz wrote:
Why do you say self-compiled GTK? It is readily packaged for msys, I think we should be able to use that.
Oops, scratch the self-compiled. But we still need to create a distributable GTK runtime environment. This is probably doable from the installed GTK package, I guess.
Regards, Enrico
I'm experimenting at this moment. The gtk/glib/etc package files can be found under /var/cache/pacman/pkg/$pkg-$ver.tar.xz. They can be extracted with tar to a working directory. But what to do afterwards? The wiki says to move the files under $geanydir/gtk, but how is the installer file created? The nsis gui is giving me an error:
Now that you have the release.py (see below), you can easily see it is just:
makensis /V2 /DINCLUDE_GTK geany.nsi
Thanks
Error in macro MUI_PAGEDECLARATION_LICENSE on macroline 17 Error in macro MUI_PAGE_LICENSE on macroline 6 Error in script "C:\msys64\home\kugel\geany.git\geany.nsi" on line 87
(geany.nsi:87 reads "!insertmacro MUI_PAGE_LICENSE "${RESOURCEDIR}\Copying.txt")
the Copying.txt is expected to be copied when installing Geany. 'waf install' does this. We cannot use a plain 'make install' on Windows as it is done on Linux, the Geany wscript has some logic, yes and magic, to do things different on Windows (like renaming AUTHORS, COPYING, README and so on to *.txt).
Using msys2 we can use the autotools build system on windows. Therefore make install works just fine, installs to the dir given by ./configure --prefix=XXX.
I guess since I use autotools Copying.txt isn't created (?). Also, do I need to install to a special directory?
Best regards.
On 14/06/15 16:41, Thomas Martitz wrote:
Am 14.06.2015 um 16:35 schrieb Enrico Tröger:
On 14/06/15 15:50, Thomas Martitz wrote:
Am 14.06.2015 um 14:48 schrieb Enrico Tröger:
On 14/06/15 14:21, Thomas Martitz wrote:
Why do you say self-compiled GTK? It is readily packaged for msys, I think we should be able to use that.
Oops, scratch the self-compiled. But we still need to create a distributable GTK runtime environment. This is probably doable from the installed GTK package, I guess.
Regards, Enrico
I'm experimenting at this moment. The gtk/glib/etc package files can be found under /var/cache/pacman/pkg/$pkg-$ver.tar.xz. They can be extracted with tar to a working directory. But what to do afterwards? The wiki says to move the files under $geanydir/gtk, but how is the installer file created? The nsis gui is giving me an error:
Now that you have the release.py (see below), you can easily see it is just:
makensis /V2 /DINCLUDE_GTK geany.nsi
Thanks
Error in macro MUI_PAGEDECLARATION_LICENSE on macroline 17 Error in macro MUI_PAGE_LICENSE on macroline 6 Error in script "C:\msys64\home\kugel\geany.git\geany.nsi" on line 87
(geany.nsi:87 reads "!insertmacro MUI_PAGE_LICENSE "${RESOURCEDIR}\Copying.txt")
the Copying.txt is expected to be copied when installing Geany. 'waf install' does this. We cannot use a plain 'make install' on Windows as it is done on Linux, the Geany wscript has some logic, yes and magic, to do things different on Windows (like renaming AUTHORS, COPYING, README and so on to *.txt).
Using msys2 we can use the autotools build system on windows. Therefore make install works just fine, installs to the dir given by ./configure --prefix=XXX.
I guess since I use autotools Copying.txt isn't created (?). Also, do I
This is what I meant: we probably have to modify how 'make install' works on Windows to create the files as it is done with Waf.
Or, what is probably easier and cleaner, do this post-install with the release.py script.
For completeness: this affects not only the *.txt files but also install locations of the data files and libraries. At some point we had some discussion whether to use the same directory on Windows as on Unix but I don't know the result.
While you are working on this, I guess decide yourself :). I don't mind much as long as we get some kind of migration path for users with existing installations. Though this should be easy enough by performing a full uninstall and then install again.
need to install to a special directory?
The current process (waf install + release.py + makensis) expects the installation directory as a subdirectory of the source tree, e.g. c:\git\geany\geany-1.25 where c:\git\geany is the source tree.
But with a bit of adjusting path, any other directory should be possible as well. Right now, release.py and geany.nsi just use relative paths. If those are made absolute, it should work as well, I guess.
Regards, Enrico
Am 14.06.2015 um 16:48 schrieb Enrico Tröger:
At some point we had some discussion whether to use the same directory on Windows as on Unix but I don't know the result.
We do this already don't we (except for the renamed text files)?
need to install to a special directory?
The current process (waf install + release.py + makensis) expects the installation directory as a subdirectory of the source tree, e.g. c:\git\geany\geany-1.25 where c:\git\geany is the source tree.
But with a bit of adjusting path, any other directory should be possible as well. Right now, release.py and geany.nsi just use relative paths. If those are made absolute, it should work as well, I guess.
Good to know :) The wiki doesn't mention this. The waf configure line on the wiki has no prefix at all
Best regards
On 14/06/15 16:55, Thomas Martitz wrote:
Am 14.06.2015 um 16:48 schrieb Enrico Tröger:
At some point we had some discussion whether to use the same directory on Windows as on Unix but I don't know the result.
We do this already don't we (except for the renamed text files)?
I don't think so. Just install the latest GIT snaphsot installer on Windows to try. I didn't test it but I cannot remember to have reworked all the paths in the past.
need to install to a special directory?
The current process (waf install + release.py + makensis) expects the installation directory as a subdirectory of the source tree, e.g. c:\git\geany\geany-1.25 where c:\git\geany is the source tree.
But with a bit of adjusting path, any other directory should be possible as well. Right now, release.py and geany.nsi just use relative paths. If those are made absolute, it should work as well, I guess.
Good to know :) The wiki doesn't mention this. The waf configure line on the wiki has no prefix at all
Because no prefix is not used at all. As said, the current scripts expect the installation directory as subdirectory of the source tree. This is what Waf does, what release.py expects and what geany.nsi expects.
Regards, Enrico
Am 14.06.2015 um 16:55 schrieb Thomas Martitz:
Am 14.06.2015 um 16:48 schrieb Enrico Tröger:
At some point we had some discussion whether to use the same directory on Windows as on Unix but I don't know the result.
We do this already don't we (except for the renamed text files)?
need to install to a special directory?
The current process (waf install + release.py + makensis) expects the installation directory as a subdirectory of the source tree, e.g. c:\git\geany\geany-1.25 where c:\git\geany is the source tree.
But with a bit of adjusting path, any other directory should be possible as well. Right now, release.py and geany.nsi just use relative paths. If those are made absolute, it should work as well, I guess.
Good to know :) The wiki doesn't mention this. The waf configure line on the wiki has no prefix at all
Okay, I managed to create an installer for a Geany GTK3 build. \o/
Some additional observerations: - must set prefix to $PWD/geany-1.25 (then make && make install) - copy AUTHORS ChangeLog COPYING README NEWS THANKS TODO to geany-1.25 and rename to Authors.txt etc. - copy geany.gtkrc to geany-1.25/data (doesn't seem to be installed automatically) - the installer wrongly reports that it ships GTK 2.24 - the installer geany lacks some icons - the installer geany runs slow because gtk/glib spam a console window with warnings like this "Gtk: Error loading icon 'image-missing' for stock: Symbol Ä>>image-missing<<Ä nicht im Thema Adwaita enthalten" (english: Symbol image-missing not contained in Adwaita theme)
Best regards
On 14/06/15 17:16, Thomas Martitz wrote:
Am 14.06.2015 um 16:55 schrieb Thomas Martitz:
Am 14.06.2015 um 16:48 schrieb Enrico Tröger:
At some point we had some discussion whether to use the same directory on Windows as on Unix but I don't know the result.
We do this already don't we (except for the renamed text files)?
need to install to a special directory?
The current process (waf install + release.py + makensis) expects the installation directory as a subdirectory of the source tree, e.g. c:\git\geany\geany-1.25 where c:\git\geany is the source tree.
But with a bit of adjusting path, any other directory should be possible as well. Right now, release.py and geany.nsi just use relative paths. If those are made absolute, it should work as well, I guess.
Good to know :) The wiki doesn't mention this. The waf configure line on the wiki has no prefix at all
Okay, I managed to create an installer for a Geany GTK3 build. \o/
Woohoo! Great.
Some additional observerations:
[...]
- the installer wrongly reports that it ships GTK 2.24
Did you update geany.nsi?
- the installer geany lacks some icons
Which? Why?
- the installer geany runs slow because gtk/glib spam a console window
During installation or when running Geany after installation? Did you start Geany with -v from the CLI?
[...]
Regards, Enrico
Am 14.06.2015 um 17:44 schrieb Enrico Tröger:
On 14/06/15 17:16, Thomas Martitz wrote:
Am 14.06.2015 um 16:55 schrieb Thomas Martitz:
Am 14.06.2015 um 16:48 schrieb Enrico Tröger:
At some point we had some discussion whether to use the same directory on Windows as on Unix but I don't know the result.
We do this already don't we (except for the renamed text files)?
need to install to a special directory?
The current process (waf install + release.py + makensis) expects the installation directory as a subdirectory of the source tree, e.g. c:\git\geany\geany-1.25 where c:\git\geany is the source tree.
But with a bit of adjusting path, any other directory should be possible as well. Right now, release.py and geany.nsi just use relative paths. If those are made absolute, it should work as well, I guess.
Good to know :) The wiki doesn't mention this. The waf configure line on the wiki has no prefix at all
Okay, I managed to create an installer for a Geany GTK3 build. \o/
Woohoo! Great.
Some additional observerations:
[...]
- the installer wrongly reports that it ships GTK 2.24
Did you update geany.nsi?
Nope
- the installer geany lacks some icons
Which? Why?
Most icons are missing actually, such as open, save on the toolbar.
- the installer geany runs slow because gtk/glib spam a console window
During installation or when running Geany after installation? Did you start Geany with -v from the CLI?
When running, I launched it via the Windows explorer (double click geany.exe). This and the lacking icons don't happen when running the make install'd geany.
BTW: Another observation I missed to mention: On autotools our .dll is libgeany.dll not geany.dll
Best regards
On 14/06/15 17:49, Thomas Martitz wrote:
Am 14.06.2015 um 17:44 schrieb Enrico Tröger:
On 14/06/15 17:16, Thomas Martitz wrote:
Am 14.06.2015 um 16:55 schrieb Thomas Martitz:
Am 14.06.2015 um 16:48 schrieb Enrico Tröger:
At some point we had some discussion whether to use the same directory on Windows as on Unix but I don't know the result.
We do this already don't we (except for the renamed text files)?
need to install to a special directory?
The current process (waf install + release.py + makensis) expects the installation directory as a subdirectory of the source tree, e.g. c:\git\geany\geany-1.25 where c:\git\geany is the source tree.
But with a bit of adjusting path, any other directory should be possible as well. Right now, release.py and geany.nsi just use relative paths. If those are made absolute, it should work as well, I guess.
Good to know :) The wiki doesn't mention this. The waf configure line on the wiki has no prefix at all
Okay, I managed to create an installer for a Geany GTK3 build. \o/
Woohoo! Great.
Some additional observerations:
[...]
- the installer wrongly reports that it ships GTK 2.24
Did you update geany.nsi?
Nope
This is why :). I thought a couple of times of making geany.nsi.in and geany_private.rc.in and fill in the version number automatically. But I never was annoyed enough to fiddle with the 4-part version numbers used there. Maybe you are :).
- the installer geany lacks some icons
Which? Why?
Most icons are missing actually, such as open, save on the toolbar.
This is probably because Geany is compiled by autotools with the Unix like path layout but the installer creates our custom Windows layout and so Geany simply looks at the wrong location.
Please have a look at the following macros: PREFIX LIBDIR LOCALEDIR DATADIR
Especially PREFIX and DATADIR should be relevant. These are set by Waf quite different on Windows than on Unix environments. Again, this is the decision whether we want to keep the current directory layout or switch to something Unix like. And so, either adjust the installer or the compiled in paths.
- the installer geany runs slow because gtk/glib spam a console window
During installation or when running Geany after installation? Did you start Geany with -v from the CLI?
When running, I launched it via the Windows explorer (double click geany.exe). This and the lacking icons don't happen when running the make install'd geany.
I have no idea about the console window. There is some magic code which opens a console window on Windows in src/win.32 but basically only when Geany is started with -v. For the icons, see above.
BTW: Another observation I missed to mention: On autotools our .dll is libgeany.dll not geany.dll
With Waf it is actually geany-0.dll. But except for the installer, it should not make any difference, right? I don't mind which one we will use. In the end, I hope we will only have one build system, i.e. no more Waf, and so the name doesn't matter, I guess. Oh, while writing, I think of the linker. Does the msys2 linker handle libgeany.dll properly when using '-lgeany' as specific in the pkgconfig file? It works at least with the Mingw linker and Waf.
Regards, Enrico
Am 14.06.2015 um 18:26 schrieb Enrico Tröger:
This is why :). I thought a couple of times of making geany.nsi.in and geany_private.rc.in and fill in the version number automatically. But I never was annoyed enough to fiddle with the 4-part version numbers used there. Maybe you are :).
The last digit is always isn't it?
- the installer geany lacks some icons
Which? Why?
Most icons are missing actually, such as open, save on the toolbar.
This is probably because Geany is compiled by autotools with the Unix like path layout but the installer creates our custom Windows layout and so Geany simply looks at the wrong location.
Actually the issue goes away if I remove the installer-included GTK runtime, so that the one in PATH is used. I guess I didn't add enough files (icons?) to the installer
With Waf it is actually geany-0.dll. But except for the installer, it should not make any difference, right? I don't mind which one we will use. In the end, I hope we will only have one build system, i.e. no more Waf, and so the name doesn't matter, I guess. Oh, while writing, I think of the linker. Does the msys2 linker handle libgeany.dll properly when using '-lgeany' as specific in the pkgconfig file? It works at least with the Mingw linker and Waf.
libgeany-0.dll works just fine.
Best regards
Am 14.06.2015 um 18:32 schrieb Thomas Martitz:
Actually the issue goes away if I remove the installer-included GTK runtime, so that the one in PATH is used. I guess I didn't add enough files (icons?) to the installer
Indeed, I could fix the lacking icons and the warning spam by including the adwaita icon theme into th installer.
A terminal window still opens when I launch geany and GTK prints some warnings, but only at startup.
Best regards
On 14/06/15 19:08, Thomas Martitz wrote:
Am 14.06.2015 um 18:32 schrieb Thomas Martitz:
Actually the issue goes away if I remove the installer-included GTK runtime, so that the one in PATH is used. I guess I didn't add enough files (icons?) to the installer
Indeed, I could fix the lacking icons and the warning spam by including the adwaita icon theme into th installer.
Ok, this must be a new GTK3 requirement then I guess. GTK2 worked without any additional icon themes.
A terminal window still opens when I launch geany and GTK prints some warnings, but only at startup.
Still no idea :(. It is a usual black command line window from Windows?
Regards, Enrico
Am 14.06.2015 um 23:20 schrieb Enrico Tröger:
On 14/06/15 19:08, Thomas Martitz wrote:
Am 14.06.2015 um 18:32 schrieb Thomas Martitz:
Actually the issue goes away if I remove the installer-included GTK runtime, so that the one in PATH is used. I guess I didn't add enough files (icons?) to the installer
Indeed, I could fix the lacking icons and the warning spam by including the adwaita icon theme into th installer.
Ok, this must be a new GTK3 requirement then I guess. GTK2 worked without any additional icon themes.
Were icons compiled into the library? The icons must be somewhere.
Remember that I didn't take the bundle form gtk.org, i simply extracted the pacman package files downloaded by msys2, and I just forgot to extract the adwaita icons (IIRRC adwaita is the default gtk theme everywhere now)
A terminal window still opens when I launch geany and GTK prints some warnings, but only at startup.
Still no idea :(. It is a usual black command line window from Windows?
Yes, as if you started geany with -v.
Best regards
On 14/06/15 23:31, Thomas Martitz wrote:
Am 14.06.2015 um 23:20 schrieb Enrico Tröger:
On 14/06/15 19:08, Thomas Martitz wrote:
Am 14.06.2015 um 18:32 schrieb Thomas Martitz:
Actually the issue goes away if I remove the installer-included GTK runtime, so that the one in PATH is used. I guess I didn't add enough files (icons?) to the installer
Indeed, I could fix the lacking icons and the warning spam by including the adwaita icon theme into th installer.
Ok, this must be a new GTK3 requirement then I guess. GTK2 worked without any additional icon themes.
Were icons compiled into the library? The icons must be somewhere.
I guess so. It's the only alternative.
Remember that I didn't take the bundle form gtk.org, i simply extracted the pacman package files downloaded by msys2, and I just forgot to extract the adwaita icons (IIRRC adwaita is the default gtk theme everywhere now)
Ok, so we should bundle this as well for the future.
Regards, Enrico
On 14/06/15 18:32, Thomas Martitz wrote:
Am 14.06.2015 um 18:26 schrieb Enrico Tröger:
This is why :). I thought a couple of times of making geany.nsi.in and geany_private.rc.in and fill in the version number automatically. But I never was annoyed enough to fiddle with the 4-part version numbers used there. Maybe you are :).
The last digit is always isn't it?
I guess there is a "0" missing :). For releases yes. For snapshot builds I did from time to time, I usually set it to .99 but there was no real reason for, just to make visible it is not a release. But not important or mandatory at all.
With Waf it is actually geany-0.dll. But except for the installer, it should not make any difference, right? I don't mind which one we will use. In the end, I hope we will only have one build system, i.e. no more Waf, and so the name doesn't matter, I guess. Oh, while writing, I think of the linker. Does the msys2 linker handle libgeany.dll properly when using '-lgeany' as specific in the pkgconfig file? It works at least with the Mingw linker and Waf.
libgeany-0.dll works just fine.
Cool!
Regards, Enrico
On 14.6.2015 г. 15:21, Thomas Martitz wrote:
Why do you say self-compiled GTK? It is readily packaged for msys, I think we should be able to use that.
Even geany is packaged already, which is great for plugin developers to test on Windows. It's not suitable for end-user distribution though, I'd say, therefore we still want our own installer.
We should be careful with these, since we don't want Geany or our gtk+ to be msys-dependent. The grep example shows that msys/2 has problems with \ as path separator (not surprising, since it's primary an unix emulation layer), and interpreting /x/path as x:\path won't be nice, except if we ship a "Geany-for-msys-not-win32-native".
-- E-gards: Jimmy