Web lists-archives.com

Re: Outdated win32 bundle




Hi all,

In GStreamer we have been using, for a couple a years now, a build
system named cerbero to build and package the GStreamer SDK for Linux,
Windows, OS X, Android and iOS
(http://gstreamer.freedesktop.org/download/)  and we are also using it
for continuous integration with Jenkins
(https://jenkins.arracacha.collabora.co.uk/).

I have been working in some recipes and packages repository for the
Gtk+3 build that can build and package Gtk+3 for Windows and OS X
providing native packages for those platforms that developers can use
for developing or to bundle them in their applications.

https://github.com/ylatuya/gtk-cerbero


I think cerbero could greatly help Gtk+'s developers in the same way
it's being helping GStreamer:
  * A single build system for the all the platforms
  * Support for cross-compilation from linux to windows
  * Build from tarballs or git
  * Easy integration with CI systems
  * Could build Gtk with MSVC too with some changes in the VS project
files, even for CI (using autotools for the generated files and
building with msbuild)
  * Native packages for all the platforms split in runtime and development.
  * Windows: MSI based packages
  * Windows: Merge modules to bundle gtk with windows installers.
  * Windows: Integration with Visual Studio with import libraries and
pkg-config-style property sheets (this means importing a single
property sheet file to have all the search paths and libraries
variables set for you)
  * OS X: real Framework that can be drag and dropped to XCode
  * OS X: pkg files that can be easily bundled in applications.

What it can't do (yet):
  * Cross-compile the msi packages from linux to windows (might be
possible using the msitools, but we have never tried it yet)
  * Build the full stack with msvc.
  * Cross-compile gobject-introspection (it's been a while since I didn't check)


Here are some examples of what you can do:

Cross-compile gtk for windows x86:
 ./cerbero/cerbero-uninstalled -c gtk-win32.cbc bootstrap
 ./cerbero/cerbero-uninstalled -c gtk-win32.cbc build gtk+3

Build gtk from git:
 ./cerbero/cerbero-uninstalled -c gtk-win32.cbc build gtk+3-git

Hack for Windows in Linux:
 ./cerbero/cerbero-uninstalled -c gtk-win32.cbc shell
git clone gtk;
configure && make

CI:
 ./cerbero/cerbero-uninstalled -c gtk-win32.cbc fetch-package gtk-3
--reset-deps --full-reset
 ./cerbero/cerbero-uninstalled -c gtk-win32.cbc build gtk+3-git

Create the SDK package for OS X:
 ./cerbero/cerbero-uninstalled -c gtk.cbc bootstrap
 ./cerbero/cerbero-uninstalled -c gtk.cbc package gtk-3-sdk

Create the SDK package for Windows x86_64:
 ./cerbero/cerbero-uninstalled -c gtk-win64.cbc bootstrap
 ./cerbero/cerbero-uninstalled -c gtk-win64.cbc package gtk-3-sdk


Cheers,
Andoni

2015-06-12 13:42 GMT+02:00 Emmanuele Bassi <ebassi@xxxxxxxxx>:
> Hi;
>
> On 12 June 2015 at 12:27, anatoly techtonik <techtonik@xxxxxxxxx> wrote:
>> On Thu, Jun 11, 2015 at 4:15 PM, Emmanuele Bassi <ebassi@xxxxxxxxx> wrote:
>>>
>>> Currently, we advertise ad hoc Windows builds on gtk.org; those are
>>> out of date, and lack many of the bug fixes that went into GTK.
>>
>> I see two problems here:
>> - [ ] http://www.gtk.org/download/win32.php - doesn't say this info
>> - [ ] http://www.gtk.org/download/win32.php - doesn't have a link to
>>       the site source to fix that
>
> Yes, that's why I said:
>
> | The current stance of everyone involved in the Windows backend for
> | GLib and GTK+ is to stop advertising binary builds for Windows
>
> There's also a bug about this:
>
> https://bugzilla.gnome.org/show_bug.cgi?id=747742
>
> It would be good to fix the website to reflect the reality.
>
>> Points that are also missing to enable me (or anybody else) to
>> fix the situation:
>> 1. Is it possible to make "lack many of the bug fixes that went into GTK"
>>     a link to actual list?
>
> The "actual list" is published with each release of GTK+.
>
>> 2. How to detect automatically that builds listed on the page are out
>>     of date?
>
> There are no new builds. The last build for Windows was for GTK+ 3.6,
> which, as of today, is two and half years old.
>
> The website needs to be changed to reflect the reality of the project,
> not the past.
>
>>> This
>>> situation is confusing for application developers, and makes the
>>> project look bad. It also reflect badly on the great work that
>>> developers have been doing in order to make GTK work well on Windows.
>>
>> Editing the site with heads up on the situation and an entrypoint
>> to change it would make it better.
>
> Indeed it would.
>
>>> On top of that, we don't offer binary builds for any other platform,
>>> and instead rely on distributors — like Homebrew on Mac; the *BSD
>>> ports; or the various Linux distributions — to provide binary builds
>>> for them. Windows is an anomaly, mostly because there weren't
>>> good/usable software distributions in the past. This has now changed,
>>> and it's a good thing to ensure that developers on Windows get
>>> reliable, up to date software.
>>
>> You're speaking about Chocolatey or about Steam? =)
>
> I'm talking about MSYS2.
>
>>> MSYS2 is for developers, not for end users.
>>
>> Ok. Still I don't get it. I wanted a local directory install for GTK libs for
>> compiling Wesnoth. I don't want system global install of MSYS2 - I
>> already have MinGW unpacked locally and building with SCons. Is that
>> possible?
>
> That's possible if you build GTK+ for yourself.
>
> There have been no binary builds of GTK+ since January 2013, but there
> have been five new development cycles, so if you want to use an up to
> date version of GTK+, your current choices for building your
> application on Windows are either to build GTK yourself, alongside its
> dependencies, or use MSYS2 and its packages.
>
>>> Telling your users to download your application; download DLLs from
>>> gtk.org; shove them into some directory; and, finally, hope for the
>>> best, was never a good software distribution mechanism.
>>
>> What about developers? I find it much better workflow when DLLs are
>> local to the project being built rather then installed globally, because
>> often you need to test several lib versions for testing different bugs and
>> branches.
>
> That's what I said above.
>
>>>> Can GTK be cross-compiled for Windows?
>>>
>>> Yes, it can, and it routinely is.
>>
>> Is there a single command to run to do this?
>
> There isn't. On Fedora you can use the mingw(32|64) toolchain packages
> to build your own packages.
>
>>>>> What the GTK team would love, on the other hand, is somebody putting
>>>>> the effort in setting up and maintaining a continuous integration
>>>>> service — similar to https://build.gnome.org — for Windows builds.
>>>>> This way we would be able to catch build regressions after every
>>>>> commit, without relying on the application developers to file bugs.
>>>>
>>>> http://www.appveyor.com/ if using closed source service is okay.
>>>
>>> No, it's really not — especially if it has to run on the gnome.org
>>> infrastructure.
>>
>> But it should be compiled using MinGW, not Visual Studio, right?
>> Because appveyor is the only known CI service (to me) that compiles
>> the stuff with VS.
>
> Visual Studio is another beast entirely.
>
> The GNOME Foundation kindly provided us with a VM that we can use to
> do Windows builds — which is what Tarnyko was using — using
> cross-compilation.
>
> Ciao,
>  Emmanuele.
>
> --
> https://www.bassi.io
> [@] ebassi [@gmail.com]
> _______________________________________________
> gtk-devel-list mailing list
> gtk-devel-list@xxxxxxxxx
> https://mail.gnome.org/mailman/listinfo/gtk-devel-list



-- 
Andoni Morales Alastruey

LongoMatch:The Digital Coach
http://www.longomatch.ylatuya.es
_______________________________________________
gtk-devel-list mailing list
gtk-devel-list@xxxxxxxxx
https://mail.gnome.org/mailman/listinfo/gtk-devel-list