Commit Graph

311 Commits

Author SHA1 Message Date
Boris Nagaev f06ef1c01b mv docs/versions.json docs/packages.json
See https://github.com/mxe/mxe/issues/1422
2016-12-22 22:25:48 +01:00
Boris Nagaev a0dba601f9 install-deps: install libtool-bin on Debian Sid
See https://github.com/mxe/mxe/issues/1593
2016-12-14 01:02:00 +01:00
Boris Nagaev a3ee6c082c add go to plugins-with-additional-packages.sh 2016-11-19 01:21:19 +03:00
Boris Nagaev c14f15b447 skeleton.py: use shutil.move instead of os.rename
Function os.rename fails if files are in different filesystems,
e.g. if /tmp is mounted as tmpfs.
2016-10-29 01:19:37 +03:00
Boris Nagaev 846b981165 build-pkg: system requirements are recommendations
... not dependencies.

fix #1537
2016-10-12 04:11:40 +03:00
Boris Nagaev 767bf6f3e1 travis: download packages of plugins as well
List of plugins with additional packages was moved from s3-fetch-and-sync
to plugins-with-additional-packages.sh.
2016-09-16 22:53:48 +03:00
Boris Nagaev 185d92c30a travis-push.sh: do not push to gh-pages
See https://github.com/mxe/mxe/pull/1503#issuecomment-241625181
2016-08-27 12:31:30 +03:00
Boris Nagaev 4e8c132550 move CNAME to docs/
See https://github.com/mxe/mxe/issues/1500
2016-08-27 12:31:30 +03:00
Boris Nagaev 8e35c23242 move index.html to docs/
See https://github.com/mxe/mxe/issues/1500
2016-08-27 12:31:30 +03:00
Boris Nagaev cce8094fb0 add missing things
index.html: make docs/build-matrix.html a link
mxe-activate: add versions.json
add .PHONY for build-matrix.html
2016-08-27 12:31:30 +03:00
Boris Nagaev f5567f2c37 mv versions.json build-matrix.html assets docs/
See https://github.com/mxe/mxe/issues/1500
2016-08-27 12:31:30 +03:00
Boris Nagaev d0e424038e rename doc/ to docs/
See https://github.com/mxe/mxe/issues/1500
2016-08-27 12:31:30 +03:00
Boris Nagaev 6adb5ade12 Copyright headers: point to LICENSE.md and shorten
The following script was applied:

    sed ':a;/part of MXE.$/{N;s/\n//;ba}' -i $(git grep -l 'part of MXE')

    sed 's/\(part of MXE\).*\(See index.html\)/\1. \2/' -i \
        $(git grep -l 'part of MXE.*See index.html')

    before='This file is part of MXE. See index.html for further information.'
    after='This file is part of MXE. See LICENSE.md for licensing information.'
    sed "s/$before/$after/" -i $(git grep -l 'part of MXE')

Then git grep 'index.html for further information' revealed two other files.
One of them was patched manually (patch.mk). Makefile has text
"See index.html for further information" unrelated to licensing.

See https://github.com/mxe/mxe/issues/1500#issuecomment-241340792
2016-08-27 12:31:29 +03:00
Boris Nagaev 1a59d510a6 build-pkg: fix crash if package breaks in 1st pass
fix https://github.com/mxe/mxe/issues/1471
2016-08-03 02:19:43 +03:00
Boris Nagaev 0e45796eeb build-pkg: track all files including gitignored
See https://github.com/mxe/mxe/pull/1443#issuecomment-233181951
2016-07-20 11:37:49 +03:00
Lars Engelhard 4d76a91cd2 tools/copydlldeps: removing exit 0 at the end 2016-07-15 22:50:17 +10:00
Lars 0eda283b50 tools/copydlldeps: introducing excludepattern and whitelist of DLLs 2016-07-15 22:50:09 +10:00
Lars 73ae658c4a tools/copydlldeps: multiCall + case insensitivity 2016-07-15 22:50:00 +10:00
Boris Nagaev 38a5c97d0b skeleton: don't truncate index.html on write error
Write new version to a temporary file and rename it to index.html.
2016-07-12 11:37:22 +03:00
Boris Nagaev f1581d20bf make skeleton.py Python 3 compatible 2016-07-12 11:26:15 +03:00
Boris Nagaev 56ab126366 use $(TEST_FILE) in skeleton.py 2016-07-11 19:24:39 +03:00
Boris Nagaev 50b311964f skeleton: use SOURCE_DIR and BUILD_DIR
and do not mkdir build dir.
2016-07-11 09:32:10 +03:00
Boris Nagaev ff1867021c add tool skeleton.py
This tool creates a skeleton of new MXE package.
2016-07-10 18:41:35 +03:00
Boris Nagaev b328e24458 install-deps: install bc to compare versions 2016-06-29 01:42:19 +03:00
Boris Nagaev 7003fa837b install-deps: fix syntax in condition for libtool
Without external `(` and `)` the condition is evaluated to false
on Debian Jessie.
2016-06-29 01:40:28 +03:00
Boris Nagaev f0d60ac7de install-deps: run apt-get with --yes
Otherwise it will make interactive prompts.
2016-06-29 01:30:31 +03:00
Boris Nagaev 2bafd7b4be add tool install-deps 2016-06-13 17:01:47 +03:00
Boris Nagaev fba599d2d7 build-pkg: add env. var to change targets
MXE_BUILD_PKG_TARGETS
2016-06-11 21:54:26 +03:00
Boris Nagaev 4d43e1fe47 build-pkg: prefix evn. vars with "MXE_BUILD_PKG"
to distinguish them from environment variables of MXE itself.
2016-06-11 21:51:45 +03:00
Boris Nagaev 3ee3445f90 build-pkg: limit number of retries of downloading
fix #1308
2016-05-02 14:16:07 +03:00
Boris Nagaev c5c610b085 build-pkg, second pass: fix fail on broken package
If a package is found to be broken on the first pass, then
prev_files = nil, because this structure is filled only
for non-broken packages.

See https://github.com/mxe/mxe/pull/1243#issuecomment-211137555
2016-04-20 23:35:13 +03:00
Boris Nagaev 9da2e477d3 build-pkg: provide more info about removed files 2016-04-20 23:35:13 +03:00
Boris Nagaev 6784792540 build-pkg: detect broken symlink and removed file 2016-04-20 23:35:13 +03:00
Boris Nagaev ea511c193c build-pkg: use "git add" with --all
From the warning produced by "git add ." after removing a file with "rm":

> warning: You ran 'git add' with neither '-A (--all)' or '--ignore-removal',
> whose behaviour will change in Git 2.0 with respect to paths you removed.
> Paths like 'foo.txt' that are
> removed from your working tree are ignored with this version of Git.
>
> * 'git add --ignore-removal <pathspec>', which is the current default,
>   ignores paths you removed from your working tree.
>
> * 'git add --all <pathspec>' will let you also record the removals.
>
> Run 'git status' to check the paths you removed from your working tree.

$ git status --porcelain
 D foo.txt

$ git add --all .

$ git status --porcelain
D  foo.txt

$ git --version
git version 1.9.1
2016-04-20 23:35:13 +03:00
Boris Nagaev 732169d86a build-pkg: exit with non-zero if second pass fails 2016-04-20 23:35:13 +03:00
Boris Nagaev f3de04c954 build-pkg: provide a way to disable second pass 2016-04-20 23:35:13 +03:00
Boris Nagaev aa4744cea4 build-pkg: add second pass
The second pass is done after the first one. During the second pass,
an item is built in tree of files from all other items. It checks that:

  * packages can be built in any order satisfying dependencies;
  * a package can be rebuilt after its dependee.

For both cases, not only build status is checked but also two sets of
files are compared. Currently content of files is not checked, only
their existance in both passes.

See #1111
2016-04-20 23:35:13 +03:00
Boris Nagaev d25a31bd21 build-pkg: move function isBuilt()
It will be used in buildItem()
2016-04-20 23:35:13 +03:00
Boris Nagaev 1856ae5f8a build-pkg, buildItem(): log pass (first, second) 2016-04-20 23:35:13 +03:00
Boris Nagaev 07a0103247 build-pkg: provide a way to mute removeEmptyDirs() 2016-04-20 23:35:13 +03:00
Boris Nagaev 3f47774f1c build-pkg: add argument pass=first to build funcs 2016-04-20 23:35:13 +03:00
Boris Nagaev 1a1c1ebf00 build-pkg: move top-level code to main() function 2016-04-20 23:35:13 +03:00
Boris Nagaev 4d73354c64 nonetwork: new line before the message and flush
fflush(stderr) may be needed:
http://mailman.linuxchix.org/pipermail/courses/2002-August/000691.html
2016-03-26 14:17:36 +03:00
Tony Theodore 3445107583 Merge pull request #1270 from LuaAndC/nonetwork-print-message
nonetwork: print message from replaced functions
2016-03-22 11:19:20 +11:00
Boris Nagaev 2dd817b395 nonetwork: print message from replaced functions
See https://github.com/mxe/mxe/issues/1269
2016-03-21 01:11:38 +03:00
Pavel Vatagin 2db02c1318 copydlldeps.sh: fix #1226 (case insensitive) 2016-03-21 00:25:04 +03:00
Boris Nagaev ebd54246cf Update copydlldeps.md 2016-02-10 18:57:35 +03:00
dl5rcw 46e6911edc markdown with code blocks
just noticed md + code blocks need these
2016-02-10 09:35:51 +01:00
dl5rcw 37ea726082 converting file to md format
converting file from mediawiki to md format
2016-02-10 09:31:46 +01:00
dl5rcw 9fe0f21d44 Rename copydlldeps.txt to copydlldeps.md 2016-02-07 22:21:03 +01:00
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