Commit Graph

247 Commits

Author SHA1 Message Date
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