d3b354
- Adds README to the repository and $PREFIX after a successful build.
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
if ! is_build_script_done install; then
|
6
6
|
(cd ${MIDIPIX_BUILD_PWD};
|
7
|
-
tar -cpf - midipix.sh
|
7
|
+
tar -cpf - midipix.sh README \
|
8
8
|
'Create `Midipix mintty shell'\'' shortcut.vbs' |\
|
9
9
|
tar -C ${PREFIX} -xpf -);
|
10
10
|
chmod +x ${PREFIX}/midipix.sh;
|
@@ -0,0 +1,138 @@
|
|
1
|
+
|
2
|
+
Obtaining and installing a Midipix distribution
|
3
|
+
Last update: Sun, 24 Apr 2016 09:42:40 +0000
|
4
|
+
|
5
|
+
A Midipix distribution consists of the following:
|
6
|
+
a) the native Midipix toolchain, consisting of perk, gcc, its dependencies,
|
7
|
+
and binutils,
|
8
|
+
b) musl, a lightweight, fast, simple, and free libc[1] used by Midipix,
|
9
|
+
c) the Midipix runtime components that bridge the gap between the libc and the
|
10
|
+
executive subsystems of all Windows NT-derived Windows OS starting with and
|
11
|
+
including Windows XP, and
|
12
|
+
d) a steadily increasing number of 3rd party open source packages, as expected in
|
13
|
+
any modern POSIX-compliant *nix environment, including GNU coreutils, shells,
|
14
|
+
libraries such as ncurses, libressl, as well as Perl and Python.
|
15
|
+
|
16
|
+
Compressed Midipix distribution tarballs and, separately, source tarballs are,
|
17
|
+
at present, produced every four (4) hours UTC after each successful build and
|
18
|
+
subsequently signed. This process is fully automated by a portable Bourne shell
|
19
|
+
script; all of the above mentioned components are cross-compiled.
|
20
|
+
|
21
|
+
Thus, the most hassle-free way to get started with Midipix is to simply download
|
22
|
+
the most recent distribution tarball and follow the instructions below. It is,
|
23
|
+
however, recommended to anyone intending to use Midipix as a development platform
|
24
|
+
to familiarise themselves with the build process. Other reasons to prefer building
|
25
|
+
a Midipix distribution yourself include integrating new 3rd party software or local
|
26
|
+
runtime component patches. At present, a full build from scratch takes about 30
|
27
|
+
(thirty) minutes to finish on an 8-core host with eight simultaneous make jobs,
|
28
|
+
minus the generation of the tarballs. The build script can be obtained from the
|
29
|
+
following GitHub repository: <https://github.com/lalbornoz/midipix_build>.
|
30
|
+
|
31
|
+
If you obtained a Midipix distribution tarball, extract it into a directory and
|
32
|
+
drive of your choice, henceforth referred to as target directory; the drive can
|
33
|
+
be a network drive. Do _not_ use anything but a true UNIX environment tar(1), as
|
34
|
+
e.g. WinRAR or WinZip handle extracting hard links incorrectly.
|
35
|
+
If you built Midipix yourself, the target directory is equivalent to the ${PREFIX}
|
36
|
+
configured in build.vars, which defaults to ${HOME}/midipix.
|
37
|
+
|
38
|
+
At present, providing an interactive Midipix environment still requires the Cygwin
|
39
|
+
terminal emulator Mintty and a shell; this does not include pseudoterminals, which
|
40
|
+
are entirely handled by Midipix. Both can be installed via the 64-bit Cygwin setup
|
41
|
+
program at <https://www.cygwin.com/setup-x86_64.exe>.
|
42
|
+
|
43
|
+
Once installed, launching a Midipix shell is accomplished by the `midipix.sh' shell
|
44
|
+
script provided in the target directory from within a Cygwin shell prompt in Mintty
|
45
|
+
and the target directory. This may either simply be done manually each time, or
|
46
|
+
automated by a shortcut. As shortcuts cannot be distributed, it can be created by
|
47
|
+
either:
|
48
|
+
a) Opening (executing) the VBScript script in the target directory from within the
|
49
|
+
latter cscript.exe, providing the fully qualified pathname to Mintty, if it differs
|
50
|
+
from the default value of C:\cygwin64\bin\mintty.exe or
|
51
|
+
b) manually creating a shortcut to Mintty with `Start in:' set to the target directory
|
52
|
+
and the following command line:
|
53
|
+
[ ... ]\mintty.exe -i /Cygwin-Terminal.ico -e sh midipix.sh, or
|
54
|
+
|
55
|
+
References:
|
56
|
+
Sun, 24 Apr 2016 09:04:08 +0000 [1] musl FAQ <http://www.musl-libc.org/faq.html>
|
57
|
+
|
58
|
+
Midipix status report
|
59
|
+
Last update: Tue, 26 Apr 2016 10:16:16 +0000
|
60
|
+
|
61
|
+
The following build status codes are defined:
|
62
|
+
C -- Complete build w/ at least the default configuration,
|
63
|
+
B -- Broken, e.g. doesn't work at all or only minimally,
|
64
|
+
I -- Integrated (e.g. linked against) with other packages,
|
65
|
+
E -- Extensively tested and confirmed to work by multiple sources, possibly via a testsuite,
|
66
|
+
P -- Patches needed to build that haven't been committed upstream yet, and
|
67
|
+
U -- Update to latest stable version or HEAD pending.
|
68
|
+
|
69
|
+
Component type Name Version Status Comments
|
70
|
+
Host toolchain binutils 2.24.51 C--EPU
|
71
|
+
Host toolchain gcc 4.6.4 ---EPU Excludes libstdc++
|
72
|
+
Host toolchain musl 1.1.12 C-IEPU
|
73
|
+
Native toolchain binutils 2.24.51 C--EPU
|
74
|
+
Native toolchain gcc 4.6.4 ---EPU Excludes libstdc++
|
75
|
+
Native toolchain gmp 5.1.3 C-IEPU
|
76
|
+
Native toolchain libelf 0.8.13 C-IEP-
|
77
|
+
Native toolchain mpc 1.0.1 C-IEPU
|
78
|
+
Native toolchain mpfr 3.1.2 C-IEPU
|
79
|
+
Native toolchain musl 1.1.12 C-IEPU
|
80
|
+
Native toolchain perk HEAD C-IE--
|
81
|
+
Runtime components dalist HEAD C-IE--
|
82
|
+
Runtime components ntapi HEAD C-IE--
|
83
|
+
Runtime components ntcon HEAD C-IE--
|
84
|
+
Runtime components ntctty HEAD C-IE--
|
85
|
+
Runtime components pemagine HEAD C-IE--
|
86
|
+
Runtime components psxscl HEAD C-IE-- Excludes clone(2) and dlopen(3)
|
87
|
+
Runtime components psxtypes HEAD C-IE--
|
88
|
+
3rd party packages apk_tools 2.6.6 C---P-
|
89
|
+
3rd party packages bash 4.3 C-I-P- Linked against ncursesw
|
90
|
+
3rd party packages bzip2 1.0.6 C-----
|
91
|
+
3rd party packages coreutils 8.23 C---P- Needs extensive testing
|
92
|
+
3rd party packages curl 7.47.1 C---P-
|
93
|
+
3rd party packages dash 0.5.8 C---P-
|
94
|
+
3rd party packages diffutils 3.3 C---P-
|
95
|
+
3rd party packages findutils 4.5.14 C---P-
|
96
|
+
3rd party packages gawk 4.1.3 C---P-
|
97
|
+
3rd party packages git 2.7.1 C-----
|
98
|
+
3rd party packages glib 2.46.2 C---P-
|
99
|
+
3rd party packages grep 2.22 C---P-
|
100
|
+
3rd party packages gzip 1.2.4 C-----
|
101
|
+
3rd party packages hexcurse 1.60.0 C-I-P- Linked against ncursesw
|
102
|
+
3rd party packages irssi 0.8.18 CB--P- DNS requires clone(2) due to pthreads (see psxscl)
|
103
|
+
3rd party packages less 481 C-I--- Linked against ncursesw
|
104
|
+
3rd party packages libarchive 3.1.2 C---P-
|
105
|
+
3rd party packages libfetch 2.33 C---P-
|
106
|
+
3rd party packages libffi 3.2.1 C---P-
|
107
|
+
3rd party packages libressl 2.2.6 C-I-P-
|
108
|
+
3rd party packages libz 1.2.8.2015.05.20 C-----
|
109
|
+
3rd party packages make 3.81 C---P-
|
110
|
+
3rd party packages mksh R52c C---P-
|
111
|
+
3rd party packages nano 2.5.3 C-I-P- Linked against ncursesw
|
112
|
+
3rd party packages ncurses 6.0 C-IEP- ncurses, ncursestw, and ncursesw built
|
113
|
+
3rd party packages openssh 7.1p2 C-I-P- Linked against libressl
|
114
|
+
3rd party packages pacman 5.0.1 C-----
|
115
|
+
3rd party packages patch 2.7 C---P-
|
116
|
+
3rd party packages perl 5.22.1 ----P- No dlopen(3) (see psxscl,) modules missing
|
117
|
+
3rd party packages python 3.5.1 -B--P- No dlopen(3) (see psxscl,) modules missing
|
118
|
+
3rd party packages rsync 3.1.2 C---P-
|
119
|
+
3rd party packages sed 4.2.2 C---P-
|
120
|
+
3rd party packages tar 1.28 C---P-
|
121
|
+
3rd party packages tcsh 6.19.00 C-I-P-
|
122
|
+
3rd party packages util_linux 2.27.1 C---P- Needs extensive testing
|
123
|
+
3rd party packages which 2.21 C-----
|
124
|
+
3rd party packages xz 5.2.2 C---P-
|
125
|
+
3rd party packages zsh 5.2 C-I-P- Linked against ncursesw
|
126
|
+
|
127
|
+
Midipix roadmap/TODO list
|
128
|
+
Last update: Tue, 26 Apr 2016 10:41:37 +0000
|
129
|
+
|
130
|
+
1) slibtool,
|
131
|
+
2) psxscl: clone(2) system call implementation.
|
132
|
+
This is required by all 3rd party packages that make use of threads such as Irssi.
|
133
|
+
3) psxscl: dlopen(3) system call implementation.
|
134
|
+
This is required by all 3rd party packages that have runtime modules such as Perl and Python.
|
135
|
+
4) gdb: native port,
|
136
|
+
5) [ ... ]
|
137
|
+
|
138
|
+
vim:expandtab sw=8 ts=8 tw=0 nowrap
|
@@ -122,8 +122,12 @@ if [ $(( ${BUILD_NFINI} + ${BUILD_NSKIP} )) -ge 0 ] \
|
|
122
122
|
-mindepth 1 -maxdepth 2 -type d -not -path ./native) \
|
123
123
|
"Create \`Midipix mintty shell' shortcut.vbs" midipix.sh;
|
124
124
|
log_msg info "Finished building distribution tarball.";
|
125
|
-
|
126
|
-
|
125
|
+
if [ -x $(which gpg 2>/dev/null) -a -n "${TARBALL_SRC_SIGN_GPG_KEY}" ] &&\
|
126
|
+
gpg --list-keys "${TARBALL_SRC_SIGN_GPG_KEY}" >/dev/null 2>&1; then
|
127
|
+
gpg --armor --passphrase-file /dev/null \
|
128
|
+
--local-user "${TARBALL_SRC_SIGN_GPG_KEY}" --sign \
|
129
|
+
${TARBALL_FNAME_PREFIX}${BUILD_USER}@${BUILD_HNAME}-${BUILD_DATE_START}.tar.xz;
|
130
|
+
fi;
|
127
131
|
rm -rf ${PREFIX_BASENAME}/lib; mv ${PREFIX_BASENAME}/lib.bak ${PREFIX_BASENAME}/lib;
|
128
132
|
log_msg info "Restored ${PREFIX_BASENAME}/lib.";
|
129
133
|
log_msg info "Building source tarball...";
|
@@ -131,8 +135,12 @@ if [ $(( ${BUILD_NFINI} + ${BUILD_NSKIP} )) -ge 0 ] \
|
|
131
135
|
$(find tmp -mindepth 1 -maxdepth 1 -type d \
|
132
136
|
\( -name \*-native-\* -or -name \*-cross-\* \));
|
133
137
|
log_msg info "Finished building source tarball.";
|
134
|
-
|
135
|
-
|
138
|
+
if [ -x $(which gpg 2>/dev/null) -a -n "${TARBALL_SIGN_GPG_KEY}" ] &&\
|
139
|
+
gpg --list-keys "${TARBALL_SIGN_GPG_KEY}" >/dev/null 2>&1; then
|
140
|
+
gpg --armor --passphrase-file /dev/null \
|
141
|
+
--local-user "${TARBALL_SIGN_GPG_KEY}" --sign \
|
142
|
+
${TARBALL_SRC_FNAME_PREFIX}${BUILD_USER}@${BUILD_HNAME}-${BUILD_DATE_START}.tar.xz;
|
143
|
+
fi;
|
136
144
|
cd ${OLDPWD};
|
137
145
|
update_build_status tarball_finish;
|
138
146
|
fi;
|
@@ -27,8 +27,10 @@
|
|
27
27
|
: ${LOG_MSG_WARN_COLOUR:=96};
|
28
28
|
: ${MAKEFLAGS_DEFAULT:=-j8};
|
29
29
|
: ${TARBALL_FNAME_PREFIX:=midipix.};
|
30
|
+
: ${TARBALL_SIGN_GPG_KEY=};
|
30
31
|
: ${TARBALL_SRC_FNAME_PREFIX:=midipix-src.};
|
31
32
|
tmp"};
|
33
|
+
: ${TARBALL_SRC_SIGN_GPG_KEY=};
|
32
34
|
: ${TARGET:=x86_64-nt64-midipix};
|
33
35
|
: ${PREFIX_NATIVE:=${PREFIX}/native};
|
34
36
|
: ${PREFIX_TARGET:=${PREFIX}/${TARGET}};
|