mingw-cross-env-list
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Mingw-cross-env-list] MXE packages as APT


From: Nagaev Boris
Subject: Re: [Mingw-cross-env-list] MXE packages as APT
Date: Mon, 22 Jun 2015 21:33:40 +0000

On Mon, Mar 2, 2015 at 12:45 PM, Volker Grabsch <address@hidden> wrote:
> Dear Boris,
>
> Nagaev Boris schrieb:
>> On Wed, Feb 11, 2015 at 9:16 AM, Volker Grabsch <address@hidden> wrote:
>> > I believe it is time to push this forward.  Although I can't
>> > contribute much "manpower", I can at least try to provide a concept.
>> > I will write that down in a separate email.  Stay tuned. :-)
>>
>> I have done part of work.
>
> At that other thread, there was not much discussion about how we
> should do this.  I didn't expect it to be so few.  It seems that my
> worry about people running into different directions was unjustified.
>
> So please, go ahead and continue your great work.  This all looks very
> promising.
>
>> 1. https://github.com/starius/mxedeb Build DEB packages from MXE
>> packages. Main purpose of Lua script is sorting packages in build
>> order and to save list of files created while installation of a
>> package. Then this data and installed files are converted into Debian
>> packages. I think, this is sufficient for RPM packages as well.
>
> Some technical proposals:
>
> 1) Could you also generate some plain tar.xz files?
>    (I belive xz is common enough, so we don't need bz2 or gzip)
>
> 2) Does it make sense to split the workflow into two parts?
>    (first generate tar.xz, then generate .deb or .rpm from that?)
>
> 3) You should add a #!-line to your LUA script, e.g.
>    #!/usr/bin/env lua
>
> 4) Could you put the functionality of build-all.sh into another LUA
>    function?  That way, the whole script would be contained in a
>    single LUA script, and we wouldn't have to mix languages.
>
> 5) Once consolidated, I believe that it should be put into tools/
>    of mxe.  Feel free to propose a pull request.
>
> 6) When put into MXE, the script should be renamed to "build-pkg",
>    "build-bin-pkg" or something like that.  (i.e. the name shouldn't
>    include "mxe" and it shouldn't contain distro-specific stuff like
>    "deb" or "rpm" in its name.)
>
>
>> 2. Public APT created at http://mxedeb.redjohn.tk/repos/
>> Currently I limit builder with *only 10 packages* per target. When
>> this version is reviewed and discussed, I'll build all packages.
>>
>> Package name is mxe<mxe-version>-<target>-package
>> MXE versions: MXE stable is "2.23", MXE master is "trunk".
>
> Until we find volunteers to re-establish our release process,
> I don't think we should use the "stable" branch.  It is simply
> too old.  Also, I don't think we should say "trunk" when we
> mean "master".  Finally, I don't think we need that version
> identifier at all. :-)
>
> So my proposal is to simplify the package name to:
>
> mxe-<target>-<package>
>
>> Packages can depend only on each other, no external dependencies. So
>> this APT can be used by any Debian distribution which satisfies MXE's
>> requirements.
>
> Debian's package names are quite stable, even across derivatives such
> as Ubuntu.
>
> So I propose to make the core package mxe-*-gcc depdending on those
> packages.  Alternatively, there should be an empty package like
> "mxe-requirements" which contains the depdencies.  Maybe a combination
> of both (some mxe-* packages depend on mxe-requirements, which then
> depends on the system packages).
>
> The whole point of the APT repository is to make things easy.  So it
> would be great if for a cross-platform SDL project,
>
>     apt-get install mxe-i686-pc-mingw32-sdl
>
> is the only command needed.
>
> The only problem are the additional 64-bit packages (g++-multilib,
> libc6-dev-i386).  I believe we could simply add them to the
> dependencies "mxe-requirements", assumung that the mxe-APT will only
> be used on modern 64-bit systems anyway.
>
> @Others: Please correct me if I'm wrong here.
>
>
> Regards,
> Volker
>
> --
> Volker Grabsch
> ---<<(())>>---
>

Hi all,

Here is my report about build-pkg.lua (aka mxedeb).

1. All comments above were taken into account.

2. Changes from previous version can be browsed in the original git repo [1]

3. The tool was renamed to build-pkg.lua and is ready to be merged into MXE [2].

4. I've built all MXE packages with the tool [3]. See also
instructions on how to install packages from this APT. It took about
one day to complete. Notice that some packages failed to build.

Log produced by the tool: [4]
Logs produced by MXE: [5]
Tar packages: [6]

I managed to install Qt, Boost and LuaBind from this APT and to
cross-compile my program using this binary distribution of MXE.

5. While running the tool, location of MXE directory MUST be
/usr/lib/mxe (same as the directory where it is installed to).
Otherwise paths in many files are broken (e.g., in mxe-conf.cmake).

6. One more bug fixed: some packages generate symlinks. Original
script omitted them.

7. Size of packages is rather big. Installing Qt and Boost requires
downloading 600 Mb. Shall we strip binary files? Packages' sizes would
decrease by times.

[1] https://github.com/starius/mxedeb/commits/master
[2] https://github.com/LuaAndC/mxe/blob/master/tools/build-pkg.lua
[3] http://mxe.redjohn.tk/
[4] http://mxe.redjohn.tk/repos/build-22jun2015.log
[5] http://mxe.redjohn.tk/repos/log/
[6] http://mxe.redjohn.tk/repos/tar/

-- 


Best regards,
Boris Nagaev



reply via email to

[Prev in Thread] Current Thread [Next in Thread]