Commit Graph

272 Commits

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