Commit Graph

106 Commits

Author SHA1 Message Date
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
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 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 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 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
Boris Nagaev 005441e935 build-pkg: mxe.redjohn.tk -> pkg.mxe.cc 2015-12-11 02:45:21 +03: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 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