Commit Graph

311 Commits

Author SHA1 Message Date
root b1eb68704d introducing copydlldeps.sh and copydlldeps.txt 2016-02-05 21:51:44 +01:00
Boris Nagaev 8ec0d4dafb build-pkg: set MXE_DIR automatically
Produce a warning if MXE_DIR != /usr/lib/mxe

When making a debug build, it is better to get a warning
than set MXE_DIR manually each time.
2016-01-25 21:56:13 +03:00
Boris Nagaev c26dbd9aec build-pkg: ignore installed/.gitkeep file
It produced the following erroneous warning:

> Item x86_64-unknown-linux-gnu~mxe-conf
> built item x86_64-unknown-linux-gnu~.gitkeep.
2016-01-18 00:30:18 +03:00
Boris Nagaev 6b25bbb150 build-pkg: log and remove empty directories 2016-01-18 00:30:18 +03:00
Boris Nagaev 53d21fac61 build-pkg: touch usr/*/installed/* in build order
See https://git.io/vuDJY
2016-01-18 00:30:18 +03:00
Boris Nagaev 36086a980a build-pkg: refactor function makeItem2Index() 2016-01-18 00:30:18 +03:00
Boris Nagaev d08e5078b9 build-pkg: prevent accidental rebuilds
touch all installed/* files after checkout.
2016-01-18 00:30:18 +03:00
Boris Nagaev 53c384d4c5 build-pkg: resolve merge conflicts manually
`git merge -s recursive -X ours` turned out to fail on binary
files. (I can't reproduce this behaviour in test repo, maybe
it is Git's bug.) So I switched to `checkout --ours`, which
worked in that case.
2016-01-18 00:30:18 +03:00
Boris Nagaev 1840845795 build-pkg: reorder functions
gitCheckout() will use gitCommit()
2016-01-18 00:30:18 +03:00
Boris Nagaev 6706af72c4 build-pkg: check exit status of "git commit" 2016-01-18 00:30:18 +03:00
Boris Nagaev deae4dc3c9 build-pkg: make sure checkout and merge succeed 2016-01-18 00:30:18 +03:00
Boris Nagaev e464f12cd0 build-pkg: merge "resolves" conflicts
Result of build by previous commit:
https://gist.github.com/32309209c467853deedc

If a conflict happens, build-pkg should "resolve" it by selecting
one of versions. Git has a merge strategy "recursive" with an
option "ours" which does exactly what is needed but works only
for two heads. That is why multi-merge was replaced by multiple
merges of two heads.
2016-01-18 00:30:18 +03:00
Boris Nagaev d31bdd48b5 build-pkg: make pkg without independent packages
This is an implementation of detection of undeclared requiremenets
using Git branches.

See #1111
2016-01-18 00:30:18 +03:00
Boris Nagaev 533f5da3fd build-pkg: check-requirements MXE_TARGETS=...
check-requirements creates directories usr/<target> for all
targets. By default, MXE_TARGETS=i686-w64-mingw32.static, so
it creates a directory for i686-w64-mingw32.static only.

(Currently this doesn't affect history in usr/.git as git ignores
empty directories.)
2016-01-18 00:30:18 +03:00
Boris Nagaev ffa25d96fe build-pkg: make sure usr/.git doesn't exist 2016-01-18 00:30:18 +03:00
Boris Nagaev 0d0be19c2a build-pkg: move git user config to var 2016-01-18 00:30:17 +03:00
Boris Nagaev b1e4eab1ad build-pkg: fix warnings of LuaCheck
Warnings fixed: https://gist.github.com/b563dfd7708e1ef209b4
2016-01-18 00:30:17 +03:00
Tony Theodore a381d9cded mxe-activate: update completions and change alias to mxe-make
* remove `build-only*` - too low level for general use
* add new patch related commands and catch-all completions
* `mxe-make` alias is more descriptive
2016-01-11 01:10:25 +11:00
Boris Nagaev efc287a8d9 move patching functions and targets to patch.mk
See https://github.com/mxe/mxe/pull/1134#issuecomment-168873410
See https://github.com/mxe/mxe/pull/1134#issuecomment-169867926
2016-01-08 15:39:41 +03:00
Boris Nagaev adb07e2153 patch-tool-mxe can import all patches of a package 2016-01-08 15:39:41 +03:00
Boris Nagaev a516d920ef reimplement patch-tool-mxe in Makefile
fix #1063
2016-01-08 15:39:41 +03:00
Tony Theodore 45eca0332c fix backup download
* use bash for brace expansion
* http://sprunge.us/ is down (fixes #1145)
2016-01-07 13:31:05 +11:00
Tony Theodore 65163d414b add selected plugins to backup download
closes #1135
2016-01-06 14:40:40 +11:00
Timothy Gu abda01129c Make Travis CI build build-matrix.html
Fixes #1074.
2016-01-03 20:29:54 +11:00
Tony Theodore 290e68bfa2 Merge pull request #1117 from LuaAndC/build-pkg-toposort
build-pkg: add toposort checks and implement it internally, without tsort tool
2016-01-01 23:43:42 +11:00
Boris Nagaev cb31219740 patch-tool-mxe: always output text diffs
Otherwise it provides binary diff for jack/waf file,
which is a mix of Python and tar.
2016-01-01 15:24:01 +03:00
Boris Nagaev a4944ea2fe build-pkg: implement toposort internally
Instead of invoking tsort tool.
2016-01-01 13:32:49 +03:00
Boris Nagaev f40c5053f1 build-pkg: check toposort 2016-01-01 13:32:49 +03:00
Boris Nagaev 6a9a889b4d build-pkg: check each item builds one package 2016-01-01 13:32:48 +03:00
Tony Theodore 8aa5ccc123 Merge pull request #1071 from LuaAndC/build-pkg-dummy-for-requirements
build-pkg: fix .deb installation
2015-12-16 12:09:17 +11:00
Tony Theodore 3d00ea3748 Merge pull request #1072 from LuaAndC/build-pkg-full-filelist
build-pkg: update list of files back from .tar.xz
2015-12-16 12:05:43 +11:00
Tony Theodore 272f0c12fb Merge pull request #1070 from LuaAndC/deb-xz
build-pkg: pack Debian packages with xz not gzip
2015-12-16 12:03:43 +11:00
Boris Nagaev 33121e8d36 build-pkg: update list of files back from .tar.xz
fix #1067
2015-12-16 03:15:51 +03:00
Boris Nagaev 789545ff1a build-pkg: fix .deb installation
The installation failed with the following note:

> Noting disappearance of mxe-requirements,
> which has been completely replaced.

Add an empty file mxe-requirements.dummy.$release
to prevent this.
2015-12-16 03:06:37 +03:00
Boris Nagaev 5d3ce0ab6b build-pkg: pack Debian packages with xz not gzip
fix #1068
2015-12-16 03:03:59 +03:00
Boris Nagaev 5d5ad4a36c build-pkg: add "plugins/" to mxe-source package 2015-12-16 02:59:28 +03:00
Tony Theodore f16645ed7a Merge pull request #1054 from LuaAndC/fix-patch-tool-diffs
patch-tool-mxe: do not replace object id with 000
2015-12-14 18:50:27 +11:00
Tony Theodore 698feee203 Merge pull request #1057 from LuaAndC/build-pkg-exit-status
build-pkg: exit with code 1 if a package is broken
2015-12-14 18:40:35 +11:00
Tony Theodore 6118133150 Merge pull request #1058 from LuaAndC/build-pkg-no-empty-deps
build-pkg: do not provide empty dependency list
2015-12-14 18:39:58 +11:00
Tony Theodore ef6e50a11a Merge pull request #1056 from LuaAndC/build-empty-dependencies-of-nonempty
build-pkg: build empty dependencies of non-empty
2015-12-14 18:38:58 +11:00
Boris Nagaev 32fd160246 build-pkg: flush stdout after echoing 2015-12-14 00:22:36 +03:00
Boris Nagaev 686afc35ec build-pkg: build empty dependencies of non-empty
Otherwise empty dependency produces no .deb file
preventing non-empty package from being installed.

Example: non-empty package gcc depends on empty
package mingw-w64.
2015-12-14 00:20:23 +03:00
Boris Nagaev 610569dc2e patch-tool-mxe: do not replace object id with 000
Previously patch-tool-mxe produced the following diffs:

    diff --git a/CMakeLists.txt b/CMakeLists.txt
    index 0000000..0000000 100644
    --- a/CMakeLists.txt
    +++ b/CMakeLists.txt

patch tool refused to apply this patch:

    The next patch would create the file CMakeLists.txt,
    which already exists!  Assume -R? [n]

This commit replaces 0000000..0000000 with 1111111..2222222.
2015-12-13 18:02:58 +03:00
Boris Nagaev c9d3201b16 build-pkg: do not provide empty dependency list
Debian packages with "Depends: " do not work:

> Reading package lists... Error!
> E: Problem parsing dependency Depends
> E: Error occurred while processing mxe-source (NewVersion2)
> E: Problem with MergeList /var/lib/apt/lists/pkg.mxe.cc_repos_apt_debian_dists_wheezy_main_binary-amd64_Packages
> E: The package lists or status file could not be parsed or opened.
2015-12-13 16:48:52 +03:00
Boris Nagaev cb8a1ae7f3 build-pkg: exit with code 1 if a package is broken 2015-12-13 16:23:00 +03:00
Tony Theodore aa6896f31c s3-fetch-and-sync: note mirror.mxe.cc 2015-12-11 12:20:24 +11:00
Boris Nagaev 005441e935 build-pkg: mxe.redjohn.tk -> pkg.mxe.cc 2015-12-11 02:45:21 +03:00
Tony Theodore 32b76a932d s3-fetch-and-sync: add IPv6 address and gateway 2015-12-10 15:36:57 +11:00
Tony Theodore bdb7e57d89 Merge pull request #1016 from LuaAndC/patch-tool-improvements
Patch tool improvements
2015-12-04 16:11:43 +11:00
Boris Nagaev d5a35d7463 patch-tool-mxe: do not download dependencies 2015-12-03 02:01:34 +03:00
Boris Nagaev 8fe0680679 patch-tool-mxe: replace commit hash with zeros
Decrease patch diff size.

See #983
2015-11-29 15:44:07 +03:00
Boris Nagaev 711a99a580 patch-tool-mxe: replace object names with zeros
Decrease patch diff size.

See #983
2015-11-29 15:43:30 +03:00
Boris Nagaev 06ff4c57b0 patch-tool-mxe: omit signature with git version
Signature is a string like:

    --
    1.9.1

Decrease patch diff size.

See #983
2015-11-29 15:42:09 +03:00
Boris Nagaev eb332fde2e patch-tool-mxe: git format-patch *--no-numbered*
Decrease patch diff size.

See #983
2015-11-29 15:16:56 +03:00
Boris Nagaev cfb73654d3 fix "patch-tool-mxe init" for gcc
gcc (and maybe other packages) has both $(PKG)_FILE and
$(PKG)_FILE_$(BUILD). Previously the following error occurred:

 $ ./tools/patch-tool-mxe init gcc
 ./tools/patch-tool-mxe: line 57: [: too many arguments

see #983
2015-11-29 15:16:51 +03:00
Boris Nagaev baf62f66bb patch-tool-mxe: fix getting patch_name
Previous implementation failed with "set -o nounset":
 ./tools/patch-tool-mxe: line 10: $3: unbound variable

see #983
2015-11-29 15:16:46 +03:00
Boris Nagaev 499ae65452 patch-tool-mxe: do not replace author with "MXE"
Replace existing "From: MXE" with "From: fix@me".
Authors of such patches can be found using git history.

see #983
2015-11-29 15:16:31 +03:00
Tony Theodore 9c000cf49c cleanup style 2015-11-21 13:55:08 +11:00
Boris Nagaev 0438b8627c suppress git commit error in Travis
See #924
See https://travis-ci.org/mxe/mxe/builds/91781012#L99
2015-11-19 09:39:39 +03:00
Tony Theodore 1e4c381a4c Merge pull request #924 from LuaAndC/travis-build-pulls
fix travis builds for pull requests
2015-11-18 20:53:22 +11:00
Tony Theodore 5f26c231ea build-pkg: round argument of os.date
fixes #1001
2015-11-16 20:45:11 +11:00
Tony Theodore 8fd14ebfb6 Merge branch 'build-pkg-dlls-and-empty' of https://github.com/LuaAndC/mxe into LuaAndC-build-pkg-dlls-and-empty 2015-11-16 12:37:19 +11:00
Tony Theodore e41907e7f4 Merge pull request #977 from LuaAndC/nonetwork
disable networking with LD_PRELOAD when build
2015-11-14 22:49:12 +11:00
Boris Nagaev 18b8aa1c9c build-pkg: add EOL after last line in *.list file
fix #979
2015-11-11 03:32:27 +03:00
Boris Nagaev 68f74e9651 build-pkg: blacklist nonetwork.so 2015-11-10 11:19:45 +03:00
Boris Nagaev 8448d43531 disable networking with LD_PRELOAD when build
see #969
2015-11-10 11:19:45 +03:00
Boris Nagaev 3fc69a3a39 build-pkg: report non-empty depending on empty
fix #968
2015-11-10 01:33:55 +03:00
Boris Nagaev c2c0c26761 build-pkg: do not pack empty packages
see #968
2015-11-10 01:33:55 +03:00
Boris Nagaev 718b89a06e build-pkg: report shared items installing no .dll
Report only if the item installs .a

See https://github.com/mxe/mxe/pull/966#issuecomment-153712570
2015-11-10 01:33:55 +03:00
Boris Nagaev bf6aa9b550 build-pkg: typo 2015-11-10 01:33:55 +03:00
Boris Nagaev 8708cf1ed3 build-pkg: improve the progress printer accuracy
There are 20 huge packages like gcc that are compiled for a half
of the build time. The time left expected by the progess printer
changes dramatically after building a huge package. Information
about huge packages smoothes the changes.
2015-11-09 05:04:29 +03:00
Boris Nagaev fec25ef451 build-pkg: separate progress printing code 2015-11-09 05:04:29 +03:00
Boris Nagaev 28b75d2b58 build-pkg: print progress
Example:

[  4/100] The build is expected to complete in 0.3 hours, on Thu Oct 29 23:03:27 2015
2015-11-09 05:04:29 +03:00
Boris Nagaev 2bdd26e490 build-pkg: add logging function echo
echo is format + print
log is echo('[build-pkg]', ...)
2015-11-09 05:04:29 +03:00
Boris Nagaev af25251ae9 build-pkg: exclude usr and settings.mk from source 2015-10-28 03:19:56 +03:00
Boris Nagaev eac808245f build-pkg: use current date as Debian patch version
Example: "4_1_3" -> "4.1.3-20151028".

Adding build-unique (making two builds in one day is unlikely)
Debian patch version tells APT that the package was updated.
2015-10-28 02:46:12 +03:00
Boris Nagaev 0886967de8 build-pkg: replace _ with . in versions
Underscores in versions were previously replaced with dashes.
Example: 4_1_3 -> 4-1-3 (package winpcap).
"-3" is interpreted as Debian patch version, which is wrong.
2015-10-28 02:46:12 +03:00
Boris Nagaev 97a8038a8b build-pkg: add package mxe-source
close #946
2015-10-28 02:46:04 +03:00
Boris Nagaev c0b7e48c29 build-pkg: rename makeMxeRequirementsDeb
rename makeMxeRequirementsDeb to makeMxeRequirementsPackage
2015-10-28 02:45:37 +03:00
Boris Nagaev f50add7fc0 build-pkg: refactor package building function
Move common code (making a directory, control file, running tar,
dpkg-deb, etc) to function makePackage(). This function is used
by functions makeDeb() and makeMxeRequirementsDeb().
2015-10-28 02:45:37 +03:00
Boris Nagaev ac1543115b build-pkg: find build arch with dpkg-architecture 2015-10-28 02:45:36 +03:00
Boris Nagaev 36cddeb56d build-pkg: refactor Debian control generating
Function debianControl() takes parameters of the Debian package
and returns the contents of the Debian control file.
2015-10-28 02:45:36 +03:00
Boris Nagaev 69220922e5 build-pkg: don't pre-download if MXE_MAX_ITEMS
MXE_MAX_ITEMS is used mostly for debugging purposes.
Waiting all packages to download (2Gb) is boring.
2015-10-28 02:45:36 +03:00
Tony Theodore eec1eb66cf build-pkg: keep deb-control files 2015-10-25 12:23:29 +11:00
Boris Nagaev 4ed7cd1b1e build-pkg: use config.guess to get native target 2015-10-25 12:23:28 +11:00
Boris Nagaev 987f8a09de build-pkg: don't blacklist usr/share/cmake 2015-10-25 12:23:28 +11:00
Boris Nagaev 894df38048 build-pkg: log cross-target dependencies
Don't log dependencies on native target.
2015-10-25 12:23:28 +11:00
Boris Nagaev 1c3e1e9a3b build-pkg: pass MXE_TARGETS to "make pkg"
"make target~pkg" doesn't work if target is not in
MXE_TARGETS. I believe such behaviout to be a feature
not a bug, because it seems to work faster with lesser
MXE_TARGETS.
2015-10-25 12:23:28 +11:00
Boris Nagaev 79717d12cc build-pkg: fix test for library format
Fix warnings like:

    [build-pkg]     File usr/x86_64-unknown-linux-gnu/lib/libyasm.a
    (x86_64-unknown-linux-gnu~yasm): not recognized library
2015-10-25 12:23:28 +11:00
Boris Nagaev f15fc358a6 build-pkg: add function searching for a substring
str:match(pattern) treats pattern as a regular expression.
str:find(substring, 1, true) searches for a substring.
The latter is needed to check if a filename contains a target.
2015-10-25 12:23:28 +11:00
Boris Nagaev 856f1d3b09 update build-pkg.lua for toolchain re-org
1. Remove common packages.

  Common packages served a replacement for native target.
  Now we have native target and don't need common packages.
  Existing common files (ncurses) have to be fixed.

2. Package -> Item.

  Item means a string "target~package".
  All functions which used packages now use items.

3. One build list instead of 4 build lists.

  All items are sorted and built together without separation
  by target.

4. No module-global variable "target".

  All functions using target now get "item" and target is
  extracted from item. All remaining module-global variables
  don't change (are constants) or are created in the bottom
  of the module.

5. MXE_MAX_PACKAGES -> MXE_MAX_ITEMS

see #925
see #919
2015-10-25 12:23:28 +11:00
Boris Nagaev 477f909947 build-pkg: rename local var "item" to "member"
I want to use name "item" for something else.
2015-10-25 12:23:28 +11:00
Tony Theodore 7c43d12a11 build-pkg: remove most of the COMMON_FILES
Source: https://github.com/mxe/mxe/pull/925#issuecomment-147992049

see #925
2015-10-25 12:23:28 +11:00
Tony Theodore 8e7e506d28 tools: note source of make-shared-from-static 2015-10-22 18:15:46 +11:00
Boris Nagaev 3aa54e03c6 build-pkg: don't use numeric owner, group in tar
File ownership is set as string "root/root" in  Debian files. So numeric
owners are converted to strings anyway. On FreeBSD numeric group "0" is
converted to "wheel" instead of "root".

see #901
2015-10-16 03:30:31 +03:00
Boris Nagaev 254b1bb9d6 build-pkg: check-requirements before downloading
Don't wait for downloading completed if something is wrong
with dependencies.

see #908
2015-10-16 03:30:31 +03:00
Boris Nagaev 3b52cf6053 build-pkg: use gmake or gnumake if available
see #901
see 4743e7939d10d9983e01f085c94b24e4c317811d
2015-10-16 03:30:31 +03:00
Boris Nagaev 37a2ce66c4 build-pkg: use gtar or gnutar if available
close #901
2015-10-16 03:30:31 +03:00
Boris Nagaev d57e5c58c8 travis-push: make sure "git commit" succeeded 2015-10-13 12:36:23 +03:00
Boris Nagaev d64c26e6f2 travis: commit and push only if GH_TOKEN is set
This allows to enable travis build for a pull request without failing it.
This is useful to check at leat that Makefile syntax is correct.
2015-10-13 12:34:34 +03:00
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