From: "Christoph Höger" <christoph.hoeger@tu-berlin.de>
To: caml-list@inria.fr
Subject: Re: [Caml-list] [ANN] Win-builds 1.5.0 - fully-bootstrapped free software distribution for Windows
Date: Wed, 28 Jan 2015 12:03:20 +0100 [thread overview]
Message-ID: <54C8C1F8.8040803@tu-berlin.de> (raw)
In-Reply-To: <20150128104458.GC5338@notk.org>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Interesting!
Maybe this is a stupid question but given that you use OCaml for
implementing and there is still no way to distribute opam packages for
windows, could you not package ocaml/opam for your distribution and
this way import all ocaml packages at once?
Am 28.01.2015 um 11:44 schrieb Adrien Nader:
> [ This email is posted to several mailing-lists: win-builds',
> mingw-w64 and the caml-list. ]
>
> Hi,
>
> I am happy to announce the availability of Win-builds 1.5.0 which
> is the result of many months of work in order to add new packages,
> update available ones and make all operations simpler and more
> intuitive.
>
> Homepage: http://win-builds.org Downloads:
> http://win-builds.org/download.html Documentation:
> http://win-builds.org/documentation.html Support information (IRC,
> MLs): http://win-builds.org/support.html Package list
> (informative): http://win-builds.org/packages.html Source:
> http://cgit.notk.org/gitolite/win-builds/
>
> === Project Description ===
>
> Win-build is best described as a free software distribution for
> Windows: the goal isn't to provide dumps of binaries but to build
> something new, well-integrated, easy to install and upgrade,
> focused on stability (but without being out-of-date either), with a
> good package coverage and identical binaries on Windows and Linux.
>
> === New in 1.5.0 ===
>
> Complaints for the previous version centered around simplicity and
> package coverage. As such, this new version has focused on making
> it simpler to edit packages (modifying existing packages or adding
> new ones) and install thanks to more automated build steps on Linux
> and to the re-introduction of a GUI on Windows.
>
> ==== New Packages ====
>
> The package count has risen to 90. This may seem low compared to
> Linux distributions but this is enough to build GUI applications
> using either the EFLs, Qt and GTK+ (and many more). This makes a
> lot of sense if you consider how many packages on Linux make little
> sense on Windows: smartd, pciutils, all the X-related ones, KDE and
> Gnome, motif, mt, ...
>
> ==== GUI Package Manager and Installer on Windows ====
>
> The GUI is written using ocaml-efl and is used as the installer on
> Windows. The actual executable relies on several dozens of files
> (libraries and resources) and is packed into a self-extracting
> (and cleaning) executable to make it appear as a single file that
> can be readily run[1]. Its build is not documented for this release
> as a sign that the ocaml cross-compiler has some quirks[2]. Getting
> full and upstream support for cross-compilation is however
> something I'll be working on from now on.
>
> ==== More Scripted Installation on Linux ====
>
> On the developer side, the component that runs all the build
> scripts has been rewritten from shell script to OCaml. This
> provides a simple validity check of the build list description and
> proper ordering of the build steps, making it safer for people to
> do their own edits.
>
> To honor the great tradition of OCaml programs taking advantage of
> high-level optimizations, doesn't attempt to build several packages
> in parallel for a given architecture. It however builds for two
> architectures in parallel, thereby providing a reasonable
> efficiency.
>
> ==== Documentation ====
>
> Documentation has been updated and expanded. It finally properly
> covers the topic of creating new packages and is therefore now
> fairly exhaustive when it comes to the win-builds project.
>
> Over the next few days, the documentation will be expanded again
> to cover more topics related to usage on Windows, in particular
> with IDEs.
>
> === Post-mortem and Future ===
>
> This release took much longer than planned. Roughly twice as long.
> This is due to two factor: adding the GUI for the package manager
> and installer which was planned for the subsequent version, and
> Qt.
>
> The GUI seems to have been worth it with much better download
> stats and close to a hundred installations per day (more than
> +40%), without additional publicity. [these numbers are guaranteed
> and not inflated by anything]
>
> Qt will be dealt with in a dedicated section below.
>
> ==== -next repository ====
>
> The work leading to this version, as is most often the case, has
> made apparent a number of issues with the development process. The
> main issue is probably the time it takes between the addition of a
> feature request and the availability of the corresponding package.
>
> This has little to do with the actual packaging or updating work
> and almost everything to do with the lack of a repository for the
> next version. As such, starting with the first changes after 1.5.0,
> there will be a "-next" version that will be regularly updated with
> packages built from the latest code and publicly reachable.
>
> ==== New contributions: what has been done and what's coming up
> ====
>
> A number of new contributors and contributions have appeared. Most
> changes were fairly late in the development cycle and have
> therefore not been merged in the main tree for 1.5.0.
>
> The code hosting has been moved to a gitolite in order to allow
> hosting of branches from others. This is for added convenience and
> any publicly-reachable git hosting is fine for merging back to the
> main branches.
>
> ===== Qt =====
>
> Some packages unfortunately require a lot of work with each new
> version. Actually the set of such packages has only one inhabitant:
> Qt.
>
> I'll be frank: maintaining a Qt that is cross-compiled from Linux
> for Windows is probably close to a full-time part-time job, i.e.
> something that will take all the time for someone doing part-time
> on it. My perception is probably flawed since I've made the initial
> packaging and it includes things that have probably never been done
> before and definitely deviate from what upstream had in mind (i.e.
> cross-compile qmake itself).
>
> It is also unfortunately to be expected that each new version of
> Qt breaks something for this packaging (cross-compile to Windows).
>
> As such, additional maintainers are looked for. There is no reason
> to be afraid and this is not about abandoning the package unless
> someone steps up. This is entirely in order to be able to better
> track upstream releases.
>
> ==== Security Updates ====
>
> This part has mostly been a failure. The work involved was larger
> than expected and was let slip by without bound.
>
> Basically, the work (reading, updating the source, rebuilding,
> testing, uploading, announcing) is sometimes too much to do
> immediately after the availability of a security fix. With no
> strict bound and with the need to spend time on large changes in
> the build architecture, the updates have slipped by one day at a
> time. As usual, Frederick P. Brooks got it right: Q: How does a
> large software project get to be one year late? A: One day at a
> time.
>
> The larger architecture have been done. There will be others but
> they should be less pervasive and shouldn't block working on other
> tasks for as much time.
>
> More importantly, at least for this release, the official goal is
> to handle most security updates in 3 days at most and let none slip
> by more than 8 days. This should be at least as good as most large
> Linux distributions. Any security update lagging behind for more
> than that should be considered "unnoticed" and a poke warranted.
>
>
> PS
>
> [1] It obviously takes some time to extract the 25MB or so (8MB
> compressed) but it is fast enough and can most probably be made
> faster. The main advantage however is that this solves the issue of
> replacing files which are in-use: the package manager depends on
> .dll files and therefore would have been unable to ever replace
> these without resorting to complex tricks.
>
> [2] Perhaps the best proof is the following top-level code: let
> init_count = ref 0 let init () = if !init_count = 0 then (
> do_the_actual_init (); incr init_count; ) else () let () = init ()
>
> On Windows I had to add an explicit call to the "init" function
> from somewhere else in the code.
>
- --
Christoph Höger
Technische Universität Berlin
Fakultät IV - Elektrotechnik und Informatik
Übersetzerbau und Programmiersprachen
Sekr. TEL12-2, Ernst-Reuter-Platz 7, 10587 Berlin
Tel.: +49 (30) 314-24890
E-Mail: christoph.hoeger@tu-berlin.de
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iEYEARECAAYFAlTIwfgACgkQhMBO4cVSGS/VpwCfbnofOuJM1mvoV6p6X2RtwmeC
92AAoJ7ywnbt6D2QnPPZ06P6EDZk20Lo
=GlOv
-----END PGP SIGNATURE-----
next prev parent reply other threads:[~2015-01-28 11:03 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-28 10:44 Adrien Nader
2015-01-28 11:03 ` Christoph Höger [this message]
2015-01-28 13:01 ` Adrien Nader
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=54C8C1F8.8040803@tu-berlin.de \
--to=christoph.hoeger@tu-berlin.de \
--cc=caml-list@inria.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox