Commit Graph

37 Commits

Author SHA1 Message Date
Boris Nagaev 4a741cf319 build-pkg: use --[[ ... ]] syntax for long comment 2015-09-27 13:40:23 +03:00
Boris Nagaev d47a666799 build-pkg: rename testCommand to execute
see #874
2015-09-21 11:05:52 +03:00
Boris Nagaev 803ed16c8f build-pkg: pre-download all packages
Run `make download -j 6 -k` until it downloads all packages
successfully before running further steps.

close #855
2015-09-21 02:57:45 +03:00
Boris Nagaev b5311afb50 build-pkg: check *.a files with nm
close #858
see #854
2015-09-21 02:57:45 +03:00
Boris Nagaev a4d62eb91b build-pkg: add function testCommand
This function runs a command and return whether it
finished successfully.
2015-09-21 02:57:45 +03:00
Tony Theodore bec5b6c734 Merge pull request #860 from LuaAndC/build-pkg-file-dereference
build-pkg: improve launching file tool
2015-09-17 16:10:13 +10:00
Boris Nagaev 95fd81b139 build-pkg: add option --brief to "file" command
Option --brief tells "file" not to prepend filenames
to output lines. Using this option is better than parsing
standard format of output of "file" with a regular expression.

Some filenames contain ":". This confuses the regular
expression:

    [build-pkg]     i686-w64-mingw32.static
    Can't get type of file usr/i686-w64-mingw32.static/share/
    gtk-doc/html/libgda-4.0/gen:sql_identifiers.html (libgda).
    file says "usr/i686-w64-mingw32.static/share/gtk-doc/html/
    libgda-4.0/gen:sql_identifiers.html:
    HTML document, ASCII text"
2015-09-16 23:00:34 +03:00
Boris Nagaev a8ccc4d3c6 build-pkg: catch symlinks with bad extensions
Example: usr/i686-w64-mingw32.static/bin/luajit
This file must have '.exe' in name, but build-pkg
doesn't catch this error, because it's type was
"symbolic link to luajit-2.0.4".

With option --dereference, "file" follows symlinks.
For usr/i686-w64-mingw32.static/bin/luajit it returns
"PE32 executable (console) Intel 80386 (stripped to external
PDB), for MS Windows".
2015-09-16 23:00:34 +03:00
Boris Nagaev d04738fffc build-pkg: report DLL files in /lib/
see #393
see #826
2015-09-16 22:58:34 +03:00
Boris Nagaev 94ec33d283 build-pkg: no build mxe-requirements with fakeroot
mxe-requirements package doesn't install any files
therefore fakeroot is not required. Because no files
were created with fakeroot, database file `deb.fakeroot'
did not exist.

close #840
2015-09-13 11:14:14 +03:00
Tony Theodore 4dfb2c2c13 Merge pull request #845 from LuaAndC/build-pkg-fix-filenames-with-spaces
Build pkg fix filenames with spaces
2015-09-12 16:19:54 +10:00
Boris Nagaev 71eff46710 build-pkg: remove quotes from filenames with space
close #842
2015-09-12 08:59:44 +03:00
Boris Nagaev e48e09ae0b build-pkg: report not existing files
See #842
2015-09-12 08:59:44 +03:00
Boris Nagaev 53baed5d87 build-pkg: add env. var. MXE_DIR 2015-09-10 11:55:14 +03:00
Boris Nagaev 7124ea1c8c build-pkg: add env. var. MXE_NO_DEBS
To prevent build-pkg from creating deb packages,
set environment variable MXE_NO_DEBS to 1
In this case fakeroot and dpkg-deb are not needed.

Add a comment about MXE_MAX_PACKAGES.
2015-09-10 11:21:06 +03:00
Boris Nagaev 04cab394a5 build-pkg: change path to .list file of common
"%s.common-list" -> "common-%s.list"

New style of name is closer to name format of other packages:
"target-pkg.list".
2015-09-05 03:04:48 +03:00
Boris Nagaev 3e16ee1407 build-pkg: add more checks for generated files
* PE32 files without .exe or .dll
  * .exe or .dll files which are not in PE32 format
  * files with other target in name
  * changed files
    * file belongs to the same target -- add a dependency
    * otherwise: log this message with label 'error'

close #822
2015-09-05 03:01:24 +03:00
Boris Nagaev ed375f567a build-pkg: create a variable with list of targets 2015-09-04 10:36:40 +03:00
Boris Nagaev 20c761b565 build-pkg: blacklist usr/<target>/share/(doc|info)
Another directories with documentation.
2015-09-04 10:36:40 +03:00
Boris Nagaev 39a8622b3b build-pkg: use git to find new/changed files
close #818
2015-09-04 10:36:40 +03:00
Boris Nagaev 230aeda472 build-pkg: add [build-pkg] to log messages 2015-09-04 10:36:40 +03:00
Boris Nagaev d941a7ef73 build-pkg: function log() formats message string 2015-09-04 10:36:40 +03:00
Boris Nagaev 9a953a3ebb build-pkg: include target to name of .list file
Do not overwrite .list files produced by one target with
ones produced by other target.
2015-09-04 10:36:40 +03:00
Boris Nagaev f4048f6f86 build-pkg: a function to generate .list file name
This operation (package_name .. '.list') was coded many times in
many functions. I move it to function listFile(pkg) to keep it in
one place.
2015-09-04 10:36:40 +03:00
Boris Nagaev 422a2615d0 build-pkg: add release to mxe-requirements version
2.23 -> 2.23jessie | 2.23wheezy

Package mxe-requirements has different dependencies for
Wheezy and Jessie. APT server reprepro doesn't allow to
add two different packages with same name and version.
2015-09-04 10:36:40 +03:00
Boris Nagaev d95da7e22a build-pkg: pkgs with broken deps are also broken
Bad behaviour prior to this commit:

1. The package is broken: pango
2. Package sdl_pango depends on broken pango
3. When t4k_common (which depends on sdl_pango) is built,
    pango is tried to build again.

This issue was caused by the error fixed in this commit:
if a package A depends on a broken package B,
then the package A is also BROKEN.
So if a package C depends on package A, then all of them
are broken:

(*)B <- A <- C

B is not "rebuilt" for C.
2015-08-24 11:45:07 +03:00
Boris Nagaev fc897b3327 build-pkg: fix build success detection
Previous code just checked if any new file was created.
New code checks existance of the file created by MXE in case
a build succeeded: "usr/<target>/installed/<package>".

Without this improvement, some packages (e.g., pango) were
falsely reported to be built successfully, because they have
two or more targets and only first target succeded, creating
*some* files (but not file "usr/<target>/installed/<package>").
2015-08-11 03:00:05 +03:00
Boris Nagaev 2324fa4c5d build-pkg: build for amd64 only
Packages containing native binaries (compiler, native libraries,
yasm) are compatible only with build machine architecture.

close #756
2015-08-11 03:00:04 +03:00
Boris Nagaev 1989e48348 build-pkg: take target common files to a package
There are documentation and other shared files installed,
which we don't need [1]. Some packages install files to same
paths. There is a list of all packages which overlap and
shared files [2].

Create a list of packages which have common files across
targets. Some of them are a part of compiler chain (gcc-*),
some are built natively intentionally:

 * gcc-isl
 * gcc-mpc
 * gcc-gmp
 * gcc-mpfr
 * gcc
 * yasm
 * ncurses
 * pkgconf

[1] https://lists.nongnu.org/archive/html/mingw-cross-env-list/2015-06/msg00011.html
[2] https://gist.github.com/starius/59625347cd68a21d9cc9

close #763
close #757
2015-08-11 03:00:04 +03:00
Boris Nagaev 45cf672636 build-pkg: fix a pattern in blacklist
"-" should be %-escaped in Lua patterns.
2015-08-11 03:00:04 +03:00
Boris Nagaev 6452cda426 build-pkg: add target name to broken packages log 2015-07-10 10:32:46 +03:00
Boris Nagaev a3cdf1dd77 build-pkg: blacklist some file paths
* usr/share/
    (doc, gcc-5.1.0, info, man)
 * usr/installed/check-requirements

There are documentation and other shared files installed,
which we don't need [1]. This commit doesn't cover all doc
files. More files can be found by "find usr -name doc".

Some packages install files to same paths. There is a list
of all packages which overlap and shared files [2].

[1] https://lists.nongnu.org/archive/html/mingw-cross-env-list/2015-06/msg00011.html
[2] https://gist.github.com/starius/59625347cd68a21d9cc9
2015-07-10 10:32:46 +03:00
Boris Nagaev ab0f773a7e packages built by build-pkg.lua work on Wheezy
After commit b14c1a3a9c , packages could not
be installed on Debian <= Wheezy, because it lacks package
libtool-bin. So package mxe-requirements should depend on
libtool-bin only for Debian >= Jessie.

This commit changes the function that builds packages
mxe-requirements. Now it makes 4 .deb files:

    wheezy/
        mxe-requirements_2.23_i386.deb
        mxe-requirements_2.23_amd64.deb
    jessie/
        mxe-requirements_2.23_i386.deb
        mxe-requirements_2.23_amd64.deb

see #754
2015-07-10 10:32:46 +03:00
Boris Nagaev 689d0222db build-pkg.lua: fix too long lines of code 2015-07-10 10:32:46 +03:00
Timothy Gu b14c1a3a9c build-pkg: Add libtool-bin and p7zip-full as deps
Fixes #753.
Fixes #754.
2015-07-06 08:17:53 +08:00
Boris Nagaev e40a295635 build-pkg: remove old name "mxedeb"
Fix description of the script: replace "DEB packages" with
"binary packages".
2015-06-28 13:35:22 +03:00
Boris Nagaev effa84377c add tool build-pkg.lua
This tool builds all packages for all targets and generates
*.tar.xz and *.deb files. The latter ones can be uploaded to
APT repository and installed to Debian machines.

build-pkg.lua was previously known as mxedeb.lua

See also:
    http://mxe.redjohn.tk/
    https://github.com/starius/mxedeb
    https://lists.nongnu.org/archive/html/mingw-cross-env-list/2015-02/msg00010.html
    https://lists.nongnu.org/archive/html/mingw-cross-env-list/2015-03/msg00001.html
2015-06-23 22:09:06 +03:00