Commit Graph

311 Commits

Author SHA1 Message Date
Boris Nagaev 0ae57b9c37 build-pkg: add MXE_CONF_PKGS to deps of packages
close #890
2015-09-29 23:58:24 +03:00
Boris Nagaev ef9c905457 build-pkg: add a note about fakeroot ipc problem
I faced with the problem after running build-pkg on this machine
many-many times. Finally I found this method how to fix it without
restarting the machine.
2015-09-27 13:44:40 +03:00
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
Volker Grabsch 2e072a38ef minizip, tools/copydlldeps: Run "make cleanup-style" 2015-01-11 10:03:13 -05:00
Timothy Gu 28e089fcad copydlldeps: PEP 8-ize
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2014-11-09 14:14:05 -05:00
Timothy Gu 23d2ca1bf0 copydlldeps: Fix typo
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2014-11-08 22:39:17 -05:00
Martin Müllenhaupt b29e9c72a9 tool copydlldeps.py: function is_pe_file() must not fail on directories 2014-10-20 16:46:28 +02:00
Martin Müllenhaupt 089b5b926b tool copydlldeps: fix Python 3 compatibility 2014-10-15 14:57:39 +02:00
Martin Müllenhaupt f0d16f29f7 copydlldeps tool: fix style 2014-10-15 11:42:08 +02:00
Martin Müllenhaupt 60c5d34791 add python script for recursive copy of DLL dependencies 2014-10-15 10:52:54 +02:00
Tony Theodore 02d7a15bdb s3 sync: update server details 2014-10-14 02:50:40 +11:00
Tony Theodore 5b4b968581 mxe-activate: add build-matrix.html to tab completion 2014-10-10 16:01:53 +11:00
Timothy Gu ebf104acbd tools: use a "compat-init.sh" for all compatibility variables
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2014-09-23 14:28:47 -07:00
Timothy Gu 1bdd5cbe34 patch-tool-mxe: Add support for changing patch file 2014-09-17 17:12:32 -07:00
Timothy Gu f0a8b2252e s3-fetch-and-sync: Label download bugs as bugs 2014-09-03 13:48:18 -07:00
Timothy Gu 49b2b8aec3 tools/fake-editor, s3-fetch-and-sync: add comments
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2014-09-02 19:56:36 -07:00
Timothy Gu 4894dfa68f s3-fetch-and-sync: the new testing system is functional now
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2014-08-30 19:15:16 -07:00
Timothy Gu c0c3564cdf Add forgotten file
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2014-08-30 19:12:37 -07:00
Timothy Gu 3c462d83e5 s3-fetch-and-sync: Add experimental download failure notification system 2014-08-30 19:11:47 -07:00
Timothy Gu 344ed559b0 update-config-guess: Fix website
ugh...
2014-08-19 16:09:47 -07:00
Timothy Gu 7f22d16631 update-config-guess: fix typo 2014-08-19 16:00:22 -07:00
Timothy Gu 940a9c2647 patch-tool-mxe: Support .tgz, .tbz2, .txz
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2014-08-07 16:22:55 -07:00
Timothy Gu 270f686e93 update-gmsl: show new version when there is one
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2014-07-27 10:48:52 -07:00
Timothy Gu 5d49938cb9 update-config-guess: clean when no new version is available
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2014-06-29 16:24:49 -07:00
Timothy Gu 648a4e6bec update-gmsl: print notice when no new version is available
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2014-06-29 16:23:41 -07:00
Tony Theodore e91c98379a mxe-activate: fix variable matching 2014-06-17 18:15:57 +10:00
Tony Theodore 3298820124 mxe-activate: use compgen -e for variable list instead of env 2014-06-14 20:37:36 +10:00
Timothy Gu 5fdbce3195 Add tool to update config.guess
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2014-05-22 17:09:10 -07:00
Timothy Gu 8fd8c81826 s3-fetch-and-sync: use /bin/sh 2014-05-13 19:52:46 -07:00
Timothy Gu 53b4442df6 Add tool to update GMSL
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2014-04-26 21:07:00 -07:00
Tony Theodore 0fe8949441 s3-fetch-and-sync: use clean-junk instead of clean-pkg 2014-04-15 19:47:44 +10:00
John W. Eaton ba382cbf17 add make-shared-from-static build tool 2014-03-10 13:32:38 +11:00
Tony Theodore 9d64a57b43 mxe-activate: fix tools path and target list 2014-02-19 16:10:18 +11:00
Tony Theodore 837ecd6648 Makefile and pkgconf: move external tools separate directory 2014-02-10 02:47:16 +11:00
Tony Theodore 5fd5e9bbec Makefile and docs: add GNU Make Standard Library 2014-02-08 22:43:13 +11:00
Tony Theodore 79efce7ffc doc update: add proxies to env whitelist and re-align unset command 2013-08-27 18:38:03 +10:00
Tony Theodore b97f4410aa mxe-activate: add BUILD to path 2013-08-25 20:25:50 +10:00
Tony Theodore 6ab49b639e Merge pull request #228 from tonytheodore/deps
Makefile and docs: add EXCLUDE_PKGS and show*deps* functionality
2013-08-25 03:09:10 -07:00
Tony Theodore 0871d6048a add config.guess to tools so its available prior to any package builds 2013-08-25 19:04:15 +10:00
Tony Theodore 0a012bfcfd doc update: add EDITOR to env whitelist for interactive sessions 2013-08-21 20:26:58 +10:00
Tony Theodore 143ae3c63f Makefile and docs: add EXCLUDE_PKGS and show*deps* functionality 2013-08-21 01:18:34 +10:00
Tony Theodore 197bdeca29 mxe-activate: get targets from Makefile 2013-08-21 00:50:34 +10:00
Tony Theodore 54ce1763e9 mxe-activate: unset env vars for interactive use 2013-08-11 16:44:28 +10:00
Tony Theodore b3737cd190 mxe-activate: clear env vars on make invocation 2013-08-11 00:01:44 +10:00
william3 a8d1ba94e6 patch-tool-mxe checks for package versions back in *.mk files 2013-08-05 23:20:27 +02:00
Tony Theodore 3a18c57c08 doc update: mention FreeBSD partial support 2013-07-15 22:09:04 +10:00
Tony Theodore e1b0b109bf package pthreads: define pseudo file and checksum
Oops! accidentally added the freebsd-excludes,
but it should be harmless.
2013-07-15 02:48:30 +10:00
Tony Theodore 4885a1047c mxe-activate: add completions to gmake 2013-05-24 17:30:46 +10:00
Tony Theodore 961ae7eeed make cleanup-style 2013-05-17 21:16:14 +10:00
Tony Theodore 5adb739f26 s3 sync: don't need to keep local copies of pkgs 2013-05-15 19:06:01 +10:00
Tony Theodore 05c0bf5b8e tools/mxe-activate: really fix gsed with portability variable 2013-02-13 16:55:17 +11:00
Tony Theodore 3ee88af713 Update tools/mxe-activate
gsed isn't really required and isn't available by that name on many linux systems
2013-02-11 23:25:34 +11:00
Tony Theodore 14a8fce1b0 add list of packages to exclude for freebsd 2013-02-10 23:34:18 +11:00
Tony Theodore 686febc4fe rename completion script to mxe-activate and unset env vars 2013-01-07 00:34:44 +11:00
Tony Theodore cafdf5d1e7 add mxe alias and path to completion script 2013-01-07 00:09:23 +11:00
Tony Theodore 34d7b0f5b8 add initial bash completion to tools/ 2013-01-06 23:10:29 +11:00
Tony Theodore 5cf083ae7d add s3-fetch-and-sync script 2012-09-22 22:13:09 +10:00
Ryan Pavlik 5298075f4d patch tool: Add useful status messages 2012-06-13 18:22:33 +02:00
Ryan Pavlik 63917a89b3 patch tool: check preconditions for init 2012-06-13 18:22:32 +02:00
Ryan Pavlik cf1d99d68d patch tool: check preconditions for export 2012-06-13 18:22:32 +02:00
Ryan Pavlik cd9cfc088b patch tool: check preconditions for import. 2012-06-13 18:22:32 +02:00
Ryan Pavlik 82947d8dd4 Patch tool: Adding some progress messages to long processes. 2012-06-13 18:22:32 +02:00
Ryan Pavlik cef822954c patch tool: Check for package file, and if it's not there, use makefile to grab it. 2012-06-13 18:22:32 +02:00
Ryan Pavlik 42e321a85a Patch tool: Move environment variable setup to a function.
This keeps us from doing this in case of an incorrect call,
making error messages much more sane.
2012-06-13 18:22:32 +02:00
Ryan Pavlik 2bdbb1360d Patch tool: replace elifs with case. Also handles errors. 2012-06-13 18:22:32 +02:00
Ryan Pavlik febfb49541 patch tool: Ensure the gits directory exists 2012-06-13 18:22:32 +02:00
Ryan Pavlik b69f2a51c1 patch-tool: use relative directories 2012-06-13 18:22:32 +02:00
Ryan Pavlik 519657fbf9 patch tool: fix so it gets the version from index.html now 2012-06-13 18:22:32 +02:00
Volker Grabsch 07c311bcba Cleanup coding style via "make cleanup-style" 2012-03-29 13:02:06 +02:00
Volker Grabsch 7badad85c9 Move doc/index.html -> index.html 2012-03-29 12:14:15 +02:00
Volker Grabsch bbc72af783 Improve indentation 2012-03-28 15:48:13 +02:00
Volker Grabsch defdff28f0 Rebrand to new project name MXE 2012-03-28 15:46:58 +02:00
Tony Theodore 77b1140c05 add xz decompression to patch tool 2012-03-28 00:18:32 +11:00
Volker Grabsch 96a6928e63 Added the script which has been used to compress screenshots and to create thumbnails (*-small.png) for doc/ 2011-12-16 10:05:27 +01:00
Mark Brand bfeeb82a62 new tool: patch-tool-mingw 2010-10-01 20:13:45 +02:00