Compare commits
1048 Commits
Author | SHA1 | Date |
---|---|---|
![]() |
f1f98b4378 | |
![]() |
55991001ff | |
![]() |
30e701d357 | |
![]() |
d29b44a473 | |
![]() |
026a0ba855 | |
![]() |
7fc6893d22 | |
![]() |
06c0fe8e32 | |
![]() |
554a854c7d | |
![]() |
047035c5d1 | |
![]() |
9e0aabe157 | |
![]() |
477580b936 | |
![]() |
4cf64316b9 | |
![]() |
c1df502cae | |
![]() |
bd6d5538bd | |
![]() |
e56e39cd0a | |
![]() |
2a8eb92c08 | |
![]() |
580869cdf4 | |
![]() |
1fd8fee0e5 | |
![]() |
7cef4fe6a3 | |
![]() |
a54af76a08 | |
![]() |
49f13e7b4d | |
![]() |
cdf31043e7 | |
![]() |
1f93e814a9 | |
![]() |
659dbb4a99 | |
![]() |
e3221aa0a8 | |
![]() |
be4db6b213 | |
![]() |
3f58996f32 | |
![]() |
1575ef70b8 | |
![]() |
0aec2332db | |
![]() |
48262cb7be | |
![]() |
308b540816 | |
![]() |
bb818fb2e2 | |
![]() |
38246195e2 | |
![]() |
f92559a63b | |
![]() |
2ab7768d53 | |
![]() |
e2450b0fd3 | |
![]() |
c959953e0a | |
![]() |
5b1dc1e8bc | |
![]() |
312df3a563 | |
![]() |
d7493046d4 | |
![]() |
ea2b2ed1b8 | |
![]() |
2f3f552300 | |
![]() |
da8d585c5d | |
![]() |
0df9d7ba0f | |
![]() |
5c85210900 | |
![]() |
69364ba176 | |
![]() |
000f0c4573 | |
![]() |
0dee515449 | |
![]() |
b97dbbbb5f | |
![]() |
33b33c6c20 | |
![]() |
6a90ec33b4 | |
![]() |
d86341734d | |
![]() |
51f42325ac | |
![]() |
0cab163684 | |
![]() |
015d2d660a | |
![]() |
57d747503c | |
![]() |
1912a0ec02 | |
![]() |
41045a5406 | |
![]() |
f4b4d34cf6 | |
![]() |
46ba4e0ce3 | |
![]() |
d3ec68dc87 | |
![]() |
bca6e2214d | |
![]() |
178db06610 | |
![]() |
6a110b7dbf | |
![]() |
df1c8b031b | |
![]() |
4fbc3b066e | |
![]() |
80466e71b1 | |
![]() |
33769cd851 | |
![]() |
4d88760fbf | |
![]() |
421649353b | |
![]() |
3184bd8b13 | |
![]() |
025b4d4514 | |
![]() |
d5b6877298 | |
![]() |
6a628a73d3 | |
![]() |
65cf92f73a | |
![]() |
af62d768cd | |
![]() |
aa7edc6ef1 | |
![]() |
461cbcb423 | |
![]() |
4d0eeb1bf4 | |
![]() |
e91d78ce4b | |
![]() |
0ded7946d0 | |
![]() |
8ea1cde8f6 | |
![]() |
dac858b84e | |
![]() |
4eb06c8e36 | |
![]() |
efa4a9e70a | |
![]() |
07fde7b608 | |
![]() |
d9b0556e7b | |
![]() |
76d1ba2ad8 | |
![]() |
a67519dcf2 | |
![]() |
17e3c17c73 | |
![]() |
7de457e022 | |
![]() |
45d5fce901 | |
![]() |
30951f8ae1 | |
![]() |
ac35d73a87 | |
![]() |
5831c26aef | |
![]() |
d1c4270e10 | |
![]() |
34acc9cb04 | |
![]() |
f95cb00cd8 | |
![]() |
da380dd368 | |
![]() |
238b445056 | |
![]() |
4888505cdb | |
![]() |
8406fed3cd | |
![]() |
c70bac9630 | |
![]() |
d599690326 | |
![]() |
deb3fe9040 | |
![]() |
5bddaf4b78 | |
![]() |
e757a57f72 | |
![]() |
5ce30e6da6 | |
![]() |
bb64eb8117 | |
![]() |
cf04f50d86 | |
![]() |
4cab6ca334 | |
![]() |
f04bb44e55 | |
![]() |
fc4a6d43c6 | |
![]() |
9944576af5 | |
![]() |
3011b75132 | |
![]() |
09f4e110a1 | |
![]() |
5887119311 | |
![]() |
1f49ccaee3 | |
![]() |
52a3aa4980 | |
![]() |
161788988c | |
![]() |
21561d1642 | |
![]() |
d7e3bc0b87 | |
![]() |
a17c81df0c | |
![]() |
d82216bcca | |
![]() |
a1a0a7318d | |
![]() |
0a739ba2a4 | |
![]() |
42ddca03c4 | |
![]() |
d3b13b4c9d | |
![]() |
4d202c47cc | |
![]() |
96044654b0 | |
![]() |
bbb147cdba | |
![]() |
c54bfd99ce | |
![]() |
275b9065f5 | |
![]() |
8f51fda66e | |
![]() |
72365aca16 | |
![]() |
0b737f0a0f | |
![]() |
0427420717 | |
![]() |
e75d6a3796 | |
![]() |
13a3953bcd | |
![]() |
d7573cb074 | |
![]() |
7ff5b1bd30 | |
![]() |
0811cf7246 | |
![]() |
03ed74d02c | |
![]() |
bc36226dd7 | |
![]() |
297153b19c | |
![]() |
a0e7ff99df | |
![]() |
28f04a167a | |
![]() |
18d968ea83 | |
![]() |
548d7a8775 | |
![]() |
d130e9f73c | |
![]() |
3c6aa4fff9 | |
![]() |
c910e7c358 | |
![]() |
745b6da860 | |
![]() |
618ec56e0e | |
![]() |
83e90a64d5 | |
![]() |
27c3d69aed | |
![]() |
17271e73dd | |
![]() |
3619030bd1 | |
![]() |
f8e6c534c8 | |
![]() |
5813905973 | |
![]() |
e123e7a5aa | |
![]() |
90e6204280 | |
![]() |
6258becc3c | |
![]() |
4598a164df | |
![]() |
dc4f61cc8e | |
![]() |
54cb2ecf26 | |
![]() |
e1b238d078 | |
![]() |
ffd64a8703 | |
![]() |
097c6876bf | |
![]() |
2be98db644 | |
![]() |
1afef4aef0 | |
![]() |
e5ff3c59c7 | |
![]() |
e3013ac40b | |
![]() |
584e6fb548 | |
![]() |
2dadc977e7 | |
![]() |
d5318bccf1 | |
![]() |
5121c47bb2 | |
![]() |
fb1478d9bf | |
![]() |
cb42d21c64 | |
![]() |
7bec121856 | |
![]() |
979933b739 | |
![]() |
79f359fe75 | |
![]() |
8c1f0a88d5 | |
![]() |
89749d3722 | |
![]() |
8dbb328ca2 | |
![]() |
5fa75583b9 | |
![]() |
06a60d2e38 | |
![]() |
7e26a335b4 | |
![]() |
dbe65587c0 | |
![]() |
2bbb7eabb0 | |
![]() |
b865c04adc | |
![]() |
71406afe4f | |
![]() |
9552a1cc67 | |
![]() |
224b703802 | |
![]() |
5ccaab791d | |
![]() |
24ef509a8a | |
![]() |
31d3c828fa | |
![]() |
b8ca11658d | |
![]() |
ec394f1dcb | |
![]() |
d2f3c5bd44 | |
![]() |
fc90fb9e0d | |
![]() |
1d7c4b297f | |
![]() |
636df55a51 | |
![]() |
a97ad2229b | |
![]() |
8171a4598c | |
![]() |
a53db94ffa | |
![]() |
b1447312e0 | |
![]() |
ba1fb3bcee | |
![]() |
ecadeac063 | |
![]() |
b86622d73b | |
![]() |
5a12caef3a | |
![]() |
15d94b2fd6 | |
![]() |
72fe19c323 | |
![]() |
f61eb6af3b | |
![]() |
65037a0495 | |
![]() |
7376420240 | |
![]() |
c6ee5673d7 | |
![]() |
88e792a70f | |
![]() |
a76f96c5cf | |
![]() |
3e9464c936 | |
![]() |
8df4c8b4b8 | |
![]() |
008bb5c4c4 | |
![]() |
84a93e472f | |
![]() |
3f4b2b1082 | |
![]() |
24f984e606 | |
![]() |
d795bd2954 | |
![]() |
6b60e3e95b | |
![]() |
7c74b327c5 | |
![]() |
315f5e8c43 | |
![]() |
c439d044b0 | |
![]() |
7624d9c503 | |
![]() |
e0fddec2db | |
![]() |
5ad0f9900a | |
![]() |
16812b36c7 | |
![]() |
1e04422369 | |
![]() |
5c4f103ccf | |
![]() |
cb1e9a0cbd | |
![]() |
234dc59639 | |
![]() |
3f41e1fda7 | |
![]() |
5cc93a2d22 | |
![]() |
3bea19f266 | |
![]() |
3a1b3de8f7 | |
![]() |
3d5fd0b166 | |
![]() |
a55f8bfab0 | |
![]() |
84bccb1d60 | |
![]() |
577ca92715 | |
![]() |
225e435292 | |
![]() |
bb5118b123 | |
![]() |
436f86b1ff | |
![]() |
7a32bee728 | |
![]() |
c8a9f83c66 | |
![]() |
b7158212e2 | |
![]() |
d5f1d198a4 | |
![]() |
419d68052b | |
![]() |
bebb92906e | |
![]() |
e4ee2628de | |
![]() |
3a91854a43 | |
![]() |
7137eb2cf4 | |
![]() |
172761067e | |
![]() |
69183b3bd8 | |
![]() |
984823d22c | |
![]() |
adeac79e3e | |
![]() |
8edbb4765b | |
![]() |
ec2d83f7e2 | |
![]() |
5ab8000776 | |
![]() |
2899916e1b | |
![]() |
0ddacf08f7 | |
![]() |
ecaac1b327 | |
![]() |
0125db9cca | |
![]() |
87a4b14cd9 | |
![]() |
a17165d3c7 | |
![]() |
55bf0d1dc7 | |
![]() |
f338d6e86e | |
![]() |
d7d19ca927 | |
![]() |
9acc333bf6 | |
![]() |
3d6917e94b | |
![]() |
364fa39683 | |
![]() |
492739f877 | |
![]() |
10794f3c2b | |
![]() |
4400396b09 | |
![]() |
0207a9b982 | |
![]() |
3d7424e8b3 | |
![]() |
95a419e5c6 | |
![]() |
0c0aa0cd08 | |
![]() |
498deea753 | |
![]() |
46677b214a | |
![]() |
6f171b0ac0 | |
![]() |
ff77c39cdb | |
![]() |
48d494f06a | |
![]() |
f196ddf764 | |
![]() |
d464bf3cad | |
![]() |
5cd9bcf0f8 | |
![]() |
a4962bf616 | |
![]() |
079025ad87 | |
![]() |
c8011954b6 | |
![]() |
77c95bd7f6 | |
![]() |
88afdafc0b | |
![]() |
e1f665bec6 | |
![]() |
e79b5125ad | |
![]() |
7f3b636540 | |
![]() |
0b143007f9 | |
![]() |
9bcb69e9da | |
![]() |
32ae16e3c3 | |
![]() |
6278ed9c2e | |
![]() |
48562716a3 | |
![]() |
73e0f46b5c | |
![]() |
c23b6f3538 | |
![]() |
df79669bab | |
![]() |
7925e99942 | |
![]() |
932a1c699e | |
![]() |
0115e89579 | |
![]() |
b8e1caa926 | |
![]() |
7b138cfa25 | |
![]() |
c595f96713 | |
![]() |
2a3632cd48 | |
![]() |
ea16670e3e | |
![]() |
e062980e4e | |
![]() |
b33f12e6d2 | |
![]() |
7c9a6721e8 | |
![]() |
a8db3fc7af | |
![]() |
da6bf005d2 | |
![]() |
5feed0a7c6 | |
![]() |
3a1b960bd4 | |
![]() |
5e89a28c5a | |
![]() |
26cde4388c | |
![]() |
f9f8faf037 | |
![]() |
287df06afe | |
![]() |
d05eb5ea42 | |
![]() |
8d4c36ec5e | |
![]() |
c8054080e9 | |
![]() |
7884a276a4 | |
![]() |
c38794225b | |
![]() |
e6364f5ba5 | |
![]() |
31ef260146 | |
![]() |
4c7ffb7fea | |
![]() |
c95aebe9cc | |
![]() |
95f7597e43 | |
![]() |
ed729eb426 | |
![]() |
6d00f68cc9 | |
![]() |
b968d2b82e | |
![]() |
ed0ae90353 | |
![]() |
3d14903793 | |
![]() |
6c5658e140 | |
![]() |
4d86de55f4 | |
![]() |
d8f24a0037 | |
![]() |
58243cb56b | |
![]() |
cdee3406af | |
![]() |
5554ba3cd6 | |
![]() |
28268bf703 | |
![]() |
417c417588 | |
![]() |
7ce1b6d50a | |
![]() |
799323be97 | |
![]() |
0661eb5d1d | |
![]() |
dfb9e115b8 | |
![]() |
b128c6e6b8 | |
![]() |
099362f546 | |
![]() |
a970e0620f | |
![]() |
f4ac3742d5 | |
![]() |
47aa0b4010 | |
![]() |
e9e9cc7dda | |
![]() |
0da79d81b4 | |
![]() |
10e7b59314 | |
![]() |
1d79518b6b | |
![]() |
ce4ee49e7a | |
![]() |
4737597fbb | |
![]() |
9ba9bc13d1 | |
![]() |
a288411f25 | |
![]() |
9e6c078a97 | |
![]() |
e94ddce3bc | |
![]() |
7ac208cf30 | |
![]() |
133ed1cfef | |
![]() |
20b70cdfc0 | |
![]() |
8afa0fed2a | |
![]() |
fca5cc30a3 | |
![]() |
07a483a127 | |
![]() |
dc6c34fcb4 | |
![]() |
f169c355a6 | |
![]() |
81e54a31d4 | |
![]() |
cb7a9e16ea | |
![]() |
5b6ef5fdcb | |
![]() |
4c63c0a95f | |
![]() |
59ce838bb4 | |
![]() |
cefad848d7 | |
![]() |
7129de67df | |
![]() |
93e81d1023 | |
![]() |
827ee06fd7 | |
![]() |
08c2589611 | |
![]() |
a88aded540 | |
![]() |
7cbd57a0ec | |
![]() |
b8dd0cc8cb | |
![]() |
51a08c66f7 | |
![]() |
b23109cec5 | |
![]() |
b3d4e87480 | |
![]() |
20d4369c27 | |
![]() |
ce9daf6c9d | |
![]() |
92ed5c09f1 | |
![]() |
abe631aaa2 | |
![]() |
c5d1999960 | |
![]() |
025cf84c86 | |
![]() |
a2cec65548 | |
![]() |
18c97102aa | |
![]() |
d35f81ee3a | |
![]() |
e02b811d21 | |
![]() |
1187726034 | |
![]() |
94acfbe2d3 | |
![]() |
e3150f7d4d | |
![]() |
2ae7a392a7 | |
![]() |
9b842be049 | |
![]() |
2b1619c1e0 | |
![]() |
226954e8b4 | |
![]() |
54465ff83c | |
![]() |
b0ba3431be | |
![]() |
1cf2966573 | |
![]() |
697befac25 | |
![]() |
a49bdac459 | |
![]() |
f3a1d18cd5 | |
![]() |
34ecb3c2d2 | |
![]() |
4c17eaf028 | |
![]() |
0866e5e868 | |
![]() |
59ab34d479 | |
![]() |
8d53d7188a | |
![]() |
d6a7d6b4ad | |
![]() |
74272b5660 | |
![]() |
46f36939eb | |
![]() |
3b7d6fc18a | |
![]() |
218ca1a534 | |
![]() |
d7f7c399c0 | |
![]() |
3098e30a04 | |
![]() |
8f90fc620a | |
![]() |
09eca87a41 | |
![]() |
9463599948 | |
![]() |
7b41f437a0 | |
![]() |
0de308313c | |
![]() |
7bf83b05ac | |
![]() |
79288b2d8f | |
![]() |
5acde0ab8b | |
![]() |
7ee0e985fd | |
![]() |
b0feb1b423 | |
![]() |
dabd655621 | |
![]() |
41b0f31a2e | |
![]() |
ff254088b4 | |
![]() |
ce9ce1b54b | |
![]() |
90dd7bb295 | |
![]() |
cfa08ac360 | |
![]() |
933e73f203 | |
![]() |
acb0645deb | |
![]() |
3a43bda50f | |
![]() |
d43080272c | |
![]() |
cc3f639f5f | |
![]() |
c148826057 | |
![]() |
56288468f0 | |
![]() |
68920ba34d | |
![]() |
58355aa875 | |
![]() |
8c594c9ccc | |
![]() |
7be83d4254 | |
![]() |
9bba207598 | |
![]() |
61e516cfbd | |
![]() |
bdbfaae59d | |
![]() |
fe3f8a7e65 | |
![]() |
a729c952af | |
![]() |
be957aa4d7 | |
![]() |
d3bb5a8f6d | |
![]() |
189d7218f2 | |
![]() |
4b50410d3b | |
![]() |
7f40e64fde | |
![]() |
ade8e7085a | |
![]() |
0385ca384b | |
![]() |
8b43df7ee8 | |
![]() |
062b4d2f6b | |
![]() |
12b35d8495 | |
![]() |
bf450087e5 | |
![]() |
a6a317e064 | |
![]() |
374e37d5b9 | |
![]() |
c3170d09f2 | |
![]() |
09962073e2 | |
![]() |
cc100326b3 | |
![]() |
730ea6bf5b | |
![]() |
13509c283d | |
![]() |
671b5e52cc | |
![]() |
da88bc90be | |
![]() |
c152347ffa | |
![]() |
9fc9b754a1 | |
![]() |
6d68bf5a4f | |
![]() |
d006ce6c0f | |
![]() |
5f15a75f7a | |
![]() |
71b1a30e98 | |
![]() |
6845f811f1 | |
![]() |
e125b4fba0 | |
![]() |
0f666cecb9 | |
![]() |
3bd033a533 | |
![]() |
b4b657ecd1 | |
![]() |
9145a42b23 | |
![]() |
cee3cef510 | |
![]() |
c5194362a1 | |
![]() |
cdf9a708f0 | |
![]() |
bfde266b90 | |
![]() |
bcb81e3e3f | |
![]() |
b568b4d53e | |
![]() |
1ff5252a3a | |
![]() |
a347c53de6 | |
![]() |
d4bc4c38a1 | |
![]() |
29f8be9f65 | |
![]() |
a675725d7a | |
![]() |
b5d5d69589 | |
![]() |
4db6bc6da5 | |
![]() |
d213812197 | |
![]() |
6c0d200c08 | |
![]() |
359a3b30c2 | |
![]() |
2eb18ab097 | |
![]() |
74316e71e9 | |
![]() |
0d8656c3e4 | |
![]() |
cbd5868956 | |
![]() |
f26bbff55e | |
![]() |
65687a1962 | |
![]() |
0f4a97e919 | |
![]() |
84f87c2892 | |
![]() |
f42a7ebb16 | |
![]() |
4238c91f20 | |
![]() |
b87fb11f7f | |
![]() |
0eb41b7820 | |
![]() |
1156bf27e6 | |
![]() |
bbeb98c7e9 | |
![]() |
383003220c | |
![]() |
0b596d60d3 | |
![]() |
cc0988389a | |
![]() |
4533e67721 | |
![]() |
a772152eea | |
![]() |
3a276cac3b | |
![]() |
36c154b311 | |
![]() |
3c63648d19 | |
![]() |
91dc948dd6 | |
![]() |
454560ce59 | |
![]() |
bbfbb4f501 | |
![]() |
fa8e72b3eb | |
![]() |
534d3d943f | |
![]() |
58bd82c249 | |
![]() |
5a0567d25a | |
![]() |
acb1675eca | |
![]() |
0427f3ff8c | |
![]() |
f52ec7e30f | |
![]() |
32d763e65d | |
![]() |
8760b5a47a | |
![]() |
0561954977 | |
![]() |
fea33aaec5 | |
![]() |
7d45f8a106 | |
![]() |
2b6d8d9615 | |
![]() |
4a5bfa56fd | |
![]() |
a3200daca9 | |
![]() |
ac651d93bc | |
![]() |
9792ff63a0 | |
![]() |
8f37e0deb5 | |
![]() |
b42080deca | |
![]() |
0cc2a5e4f4 | |
![]() |
a02a19e871 | |
![]() |
eb49efa7ba | |
![]() |
d9e4a899f6 | |
![]() |
c98b91258f | |
![]() |
1ccf80862e | |
![]() |
4bd7cf6246 | |
![]() |
7f0e2a8f98 | |
![]() |
8fe50e761b | |
![]() |
48a011a66a | |
![]() |
f823cce0aa | |
![]() |
b199398c1d | |
![]() |
163953aa22 | |
![]() |
45bc844d85 | |
![]() |
7cdff1157e | |
![]() |
9624682161 | |
![]() |
291f29df91 | |
![]() |
5b4ee80e10 | |
![]() |
8a69678ea5 | |
![]() |
ffa17eaeb1 | |
![]() |
1bc9362245 | |
![]() |
8a4b12150b | |
![]() |
26e94389bc | |
![]() |
c8aaa9b635 | |
![]() |
1ddf22a3d6 | |
![]() |
09a231886e | |
![]() |
1627808cf4 | |
![]() |
42727be046 | |
![]() |
8c48292181 | |
![]() |
2368bf774c | |
![]() |
7203d2965c | |
![]() |
83ad194b85 | |
![]() |
e116e662e5 | |
![]() |
34219da199 | |
![]() |
7ae94b8776 | |
![]() |
3e19af6055 | |
![]() |
5a73d24240 | |
![]() |
ef1f52fb67 | |
![]() |
93fcb74f84 | |
![]() |
c21467e4ac | |
![]() |
a994894017 | |
![]() |
b779976c5c | |
![]() |
c0abcd39ac | |
![]() |
42acdf1089 | |
![]() |
9d9ca8cba8 | |
![]() |
72f120a70d | |
![]() |
40f7f9796d | |
![]() |
ed5197f9fd | |
![]() |
dc02cb7898 | |
![]() |
939f81a0b5 | |
![]() |
ea5fe6b3cd | |
![]() |
85dbbd0269 | |
![]() |
5dfb24f01b | |
![]() |
9a1d06a48c | |
![]() |
0534532e8f | |
![]() |
78650fed61 | |
![]() |
862342041a | |
![]() |
8c657e50fb | |
![]() |
eb49e17fc2 | |
![]() |
aea97d0a11 | |
![]() |
e82bbf053e | |
![]() |
64ce34d957 | |
![]() |
42a29bb903 | |
![]() |
e9160396ed | |
![]() |
c8634bd989 | |
![]() |
8c0bd65974 | |
![]() |
b7f1a0f4d4 | |
![]() |
bb2795014e | |
![]() |
7332094aad | |
![]() |
7558f4b161 | |
![]() |
008598457d | |
![]() |
99a23e9041 | |
![]() |
3f793df8ad | |
![]() |
98dc91e4b2 | |
![]() |
316f9e24e3 | |
![]() |
e2ef6cfddd | |
![]() |
399ef37fba | |
![]() |
d2ea1b4d10 | |
![]() |
cdf2b72eaa | |
![]() |
4978041802 | |
![]() |
9a971c8c74 | |
![]() |
5c945f5776 | |
![]() |
e5701a9a9e | |
![]() |
13c5790bb6 | |
![]() |
cf3fa0219f | |
![]() |
7f8082bd33 | |
![]() |
fab8de1b33 | |
![]() |
948069b0a4 | |
![]() |
f1f8b2e751 | |
![]() |
09bd6b1bc2 | |
![]() |
b976d58a2a | |
![]() |
8b4707ade2 | |
![]() |
e86794e500 | |
![]() |
bf652aabbf | |
![]() |
d8b2f3daa5 | |
![]() |
789b7c523a | |
![]() |
eb75853345 | |
![]() |
c435121423 | |
![]() |
fb85652883 | |
![]() |
87084cb460 | |
![]() |
2e42fbb6c8 | |
![]() |
35832abf8a | |
![]() |
2809419d6b | |
![]() |
43f84da98a | |
![]() |
edbea01093 | |
![]() |
82babc5c5b | |
![]() |
5ccf751ce6 | |
![]() |
ae23196e97 | |
![]() |
2abd7815b1 | |
![]() |
b68a06e4f7 | |
![]() |
422f17a92d | |
![]() |
4ed0751b8e | |
![]() |
f312f466f6 | |
![]() |
7587455f23 | |
![]() |
e9a45a1e27 | |
![]() |
1772f78aa9 | |
![]() |
438c459ca5 | |
![]() |
7b7607a19b | |
![]() |
04286c49ac | |
![]() |
9c4f0756ec | |
![]() |
51520118f8 | |
![]() |
a031137605 | |
![]() |
05ef364256 | |
![]() |
fedf7f9ca9 | |
![]() |
ca7b5f7ec7 | |
![]() |
9283729528 | |
![]() |
ab6d3c0a87 | |
![]() |
45de97558c | |
![]() |
dfe712a84c | |
![]() |
9232e4282a | |
![]() |
f6d58d5b68 | |
![]() |
993e6fb717 | |
![]() |
8e6517ca68 | |
![]() |
fad1754ccf | |
![]() |
60098d55ad | |
![]() |
903a7abd9f | |
![]() |
2cdcf17f97 | |
![]() |
834541fbd3 | |
![]() |
0d3d7a3ac8 | |
![]() |
4d99c58583 | |
![]() |
e21f066628 | |
![]() |
f64ca1e155 | |
![]() |
ff144e17ba | |
![]() |
e833e66ac9 | |
![]() |
00cd04c05c | |
![]() |
2d63f9b6f4 | |
![]() |
b249368cea | |
![]() |
ec8c1e88b7 | |
![]() |
0664d93e0f | |
![]() |
59838a21fc | |
![]() |
b47af54b9e | |
![]() |
abe04ecd79 | |
![]() |
a9022f67a0 | |
![]() |
0850d66b3e | |
![]() |
378545441a | |
![]() |
fab7d9d3d9 | |
![]() |
e739e3c6e7 | |
![]() |
1be01a4b18 | |
![]() |
e1f6192bc6 | |
![]() |
5ec0fbee27 | |
![]() |
f92cc35c9f | |
![]() |
d1edbf13ac | |
![]() |
a65ad0f5e6 | |
![]() |
ca0ad6baf0 | |
![]() |
30081e7cc0 | |
![]() |
8fd33c1b5f | |
![]() |
907dfce1ad | |
![]() |
8e6b2f7a85 | |
![]() |
939b650125 | |
![]() |
25f4950761 | |
![]() |
e8e0bf525b | |
![]() |
29482486bf | |
![]() |
d3818dea6b | |
![]() |
a57c11c51f | |
![]() |
8aeb3ce0c5 | |
![]() |
e268c429fb | |
![]() |
d5d3140719 | |
![]() |
2087dff7e6 | |
![]() |
fedf98375c | |
![]() |
b81ef6ca1e | |
![]() |
6c3626d60a | |
![]() |
625bfa7515 | |
![]() |
6fbe7659b4 | |
![]() |
e2ed823761 | |
![]() |
f71f5379a6 | |
![]() |
ba987c0963 | |
![]() |
087825fa8b | |
![]() |
ebf1983b6f | |
![]() |
e9d4101864 | |
![]() |
5270b66cea | |
![]() |
47c0b7edad | |
![]() |
68e3308165 | |
![]() |
221a695806 | |
![]() |
2a27c76e9f | |
![]() |
b3d2b51a69 | |
![]() |
0807904117 | |
![]() |
1f60df9d0f | |
![]() |
714c688073 | |
![]() |
9cd6e3564b | |
![]() |
c43d5ce261 | |
![]() |
966b8d0dea | |
![]() |
5fa9c2e717 | |
![]() |
292c30046d | |
![]() |
fd45421a30 | |
![]() |
68c91c801f | |
![]() |
b9b54f7c71 | |
![]() |
a7ae48e582 | |
![]() |
801f921c3d | |
![]() |
02fc5fec10 | |
![]() |
000cce400e | |
![]() |
cf1695fba4 | |
![]() |
65a230bbb1 | |
![]() |
231d10a83c | |
![]() |
603d97d7b0 | |
![]() |
1f339004d6 | |
![]() |
08a98b8b72 | |
![]() |
6db193a439 | |
![]() |
b6b0854f4c | |
![]() |
d9394ab550 | |
![]() |
9b88c9a6a2 | |
![]() |
6e08e306f0 | |
![]() |
18a938f53d | |
![]() |
15a79f5f84 | |
![]() |
723d862a0c | |
![]() |
d0bcec9c65 | |
![]() |
6a7daa8891 | |
![]() |
4f7378f76c | |
![]() |
e564823e69 | |
![]() |
fefa5b2117 | |
![]() |
fca8e7605a | |
![]() |
1b115b856e | |
![]() |
c20d39aa72 | |
![]() |
3adbb18763 | |
![]() |
5c2fab4b8d | |
![]() |
4295823321 | |
![]() |
29de914d3f | |
![]() |
56e5fdc868 | |
![]() |
eeaab52bf5 | |
![]() |
c565b323d6 | |
![]() |
5d966da713 | |
![]() |
695a231ce1 | |
![]() |
f4edf0de28 | |
![]() |
f67d55fba1 | |
![]() |
576f0d80e1 | |
![]() |
fbe4b72ba2 | |
![]() |
8236313599 | |
![]() |
ccb352db6c | |
![]() |
69b98ca72a | |
![]() |
b31bd22742 | |
![]() |
b3f1b15fe0 | |
![]() |
e2c362ea17 | |
![]() |
a99e4904ec | |
![]() |
32c22e62ee | |
![]() |
dcf706bfd9 | |
![]() |
06aaf58659 | |
![]() |
1998aa5005 | |
![]() |
4f5111cedc | |
![]() |
af5308787c | |
![]() |
c9e16a6d0e | |
![]() |
28ab3884c5 | |
![]() |
6731fe9a15 | |
![]() |
ce83e7b46d | |
![]() |
63605d1e80 | |
![]() |
1a0afdca45 | |
![]() |
2ef580043f | |
![]() |
d10525a460 | |
![]() |
dfd89cbd03 | |
![]() |
de5f8769d3 | |
![]() |
bb32473a7d | |
![]() |
625e8ee2c8 | |
![]() |
8e0af3b847 | |
![]() |
1ca5db43ef | |
![]() |
99e212904d | |
![]() |
07a8dde20f | |
![]() |
0052cb6038 | |
![]() |
5cb8411166 | |
![]() |
c34750b50e | |
![]() |
ff83cf6013 | |
![]() |
e0ce1f8bb7 | |
![]() |
a02e3c6a6e | |
![]() |
765f9ba720 | |
![]() |
bea33cedd5 | |
![]() |
11c2c3217f | |
![]() |
50ba092040 | |
![]() |
2fa45ee10e | |
![]() |
0e08f9f346 | |
![]() |
66af11c1cc | |
![]() |
f842866d40 | |
![]() |
2056a668cc | |
![]() |
ce333f490d | |
![]() |
80c192b5a8 | |
![]() |
3d41e23043 | |
![]() |
31e0336c7a | |
![]() |
3af8b1b2e3 | |
![]() |
85d75b7681 | |
![]() |
26bf3005f8 | |
![]() |
f15f90327c | |
![]() |
d97d841c18 | |
![]() |
d734246bfe | |
![]() |
4c113d701f | |
![]() |
5b0822f893 | |
![]() |
c475f1a17d | |
![]() |
91823821b9 | |
![]() |
10aedf9d44 | |
![]() |
c047a19a2e | |
![]() |
3133080330 | |
![]() |
45c3b9eafb | |
![]() |
5f1bcd5f25 | |
![]() |
0a1323f369 | |
![]() |
0a63f024e9 | |
![]() |
8f210bbab9 | |
![]() |
0f42510ae0 | |
![]() |
e82e31846a | |
![]() |
8c28bd4e3a | |
![]() |
3eb54cd803 | |
![]() |
2e4b24adf6 | |
![]() |
892ede150d | |
![]() |
6107dca9ae | |
![]() |
511ebc69e2 | |
![]() |
bb0b859c56 | |
![]() |
93d89c81bc | |
![]() |
4b46d9ff48 | |
![]() |
bc99bac659 | |
![]() |
5f40a9684e | |
![]() |
4c34f6c83b | |
![]() |
528ef42ac0 | |
![]() |
23894f52dc | |
![]() |
8f13970eef | |
![]() |
afc81937ed | |
![]() |
faaed356a3 | |
![]() |
10c92cef61 | |
![]() |
78801dabdd | |
![]() |
0ebdbae622 | |
![]() |
34d9d49ae6 | |
![]() |
3fd86aad4f | |
![]() |
78551a15cd | |
![]() |
6df94dde59 | |
![]() |
0d6020bab9 | |
![]() |
6b100220f7 | |
![]() |
ae17ff817f | |
![]() |
a634fc1c1d | |
![]() |
0b50575311 | |
![]() |
969880fe85 | |
![]() |
00784a39b7 | |
![]() |
d0ac84b3e6 | |
![]() |
9162de4554 | |
![]() |
8ed3ae4baa | |
![]() |
2fd9f1fbe8 | |
![]() |
150253bfbc | |
![]() |
cc7f50e139 | |
![]() |
7ac5196528 | |
![]() |
1f6e1c9676 | |
![]() |
5ac424f5cb | |
![]() |
596c3c8aab | |
![]() |
acbc2f6318 | |
![]() |
fd29701e50 | |
![]() |
1b5a2465e7 | |
![]() |
54c5274f2d | |
![]() |
a9cd2026ea | |
![]() |
72c7674982 | |
![]() |
e2bc8e8fa5 | |
![]() |
b1a982c6f0 | |
![]() |
e844d3edab | |
![]() |
fd4b3e7a52 | |
![]() |
bea8fe9134 | |
![]() |
d21c4cd8af | |
![]() |
28299d61fe | |
![]() |
5f6e301efb | |
![]() |
f1b6e4afbf | |
![]() |
e779848fdd | |
![]() |
ca0792a390 | |
![]() |
afed6a7190 | |
![]() |
edcadf4079 | |
![]() |
17516fc24a | |
![]() |
42c5462f30 | |
![]() |
1d3202a70f | |
![]() |
018b20c328 | |
![]() |
0270f460af | |
![]() |
3f154e09e2 | |
![]() |
72ba48fee5 | |
![]() |
7bfb223b74 | |
![]() |
2b8585274e | |
![]() |
b59c88bd60 | |
![]() |
7696ec8bad | |
![]() |
bf136dcc15 | |
![]() |
4a5633db5b | |
![]() |
1cf65bc62d | |
![]() |
287ad14127 | |
![]() |
1c138a6fd6 | |
![]() |
ed5d2783a2 | |
![]() |
061cee89e1 | |
![]() |
9c175353fe | |
![]() |
748c3a4ece | |
![]() |
2731354a9b | |
![]() |
8a3bed6226 | |
![]() |
ecccc8ba22 | |
![]() |
c49d2a2484 | |
![]() |
b0958d492f | |
![]() |
c4bf3a9956 | |
![]() |
dce389b198 | |
![]() |
22e2031120 | |
![]() |
42cc61803c | |
![]() |
b5d8859acd | |
![]() |
440e5e150a | |
![]() |
35cd0b2ab0 | |
![]() |
7e0938d674 | |
![]() |
c1caf48ea1 | |
![]() |
0c3ceabfdd | |
![]() |
6917895a4f | |
![]() |
e11a156f75 | |
![]() |
732ae37ca5 | |
![]() |
2666af9f23 | |
![]() |
7ccc6b32d4 | |
![]() |
802dc76001 | |
![]() |
94d9ebca68 | |
![]() |
be4969cb59 | |
![]() |
386850e1c2 | |
![]() |
8258d40b44 | |
![]() |
525ebe3784 | |
![]() |
a9ae409335 | |
![]() |
f09ac648c8 | |
![]() |
06e5360928 | |
![]() |
baf6a9f795 | |
![]() |
c501b6d386 | |
![]() |
9a0d33762b | |
![]() |
6657918e17 | |
![]() |
29bb30f0b4 | |
![]() |
d001047547 | |
![]() |
f1601db32d | |
![]() |
89ea0b63c4 | |
![]() |
732b9f1df4 | |
![]() |
e13d479af3 | |
![]() |
d36d95f326 | |
![]() |
7cf142a185 | |
![]() |
b45980e7d0 | |
![]() |
b9bf7dc1f5 | |
![]() |
59b9a26ec9 | |
![]() |
49801aa0fe | |
![]() |
a6eca10af6 | |
![]() |
c6a27629bc | |
![]() |
24914f1886 | |
![]() |
5981d3367f | |
![]() |
a8bff54cd7 | |
![]() |
17bf88b390 | |
![]() |
4935d9f800 | |
![]() |
7b528ed593 | |
![]() |
595fb29abc | |
![]() |
d5f3100c4d | |
![]() |
8c8d412d4f | |
![]() |
46cb8b5c04 | |
![]() |
3bc63957a0 | |
![]() |
6d30c71282 | |
![]() |
db157bc963 | |
![]() |
f007b05cd2 | |
![]() |
acedddd21a | |
![]() |
c29329310c | |
![]() |
8cf7a25a9f | |
![]() |
b35a91576d | |
![]() |
848c3f9ec1 | |
![]() |
690e4a7b7e | |
![]() |
b0365d4ed3 | |
![]() |
6a2e05a42e | |
![]() |
3e447e27ae | |
![]() |
97cab676c1 | |
![]() |
0dbd0ee4d6 | |
![]() |
ae78a96ddf | |
![]() |
dcd2b348c2 | |
![]() |
901108353f | |
![]() |
ef39bf42cd | |
![]() |
e047a07cab | |
![]() |
87467401fa | |
![]() |
d55ed885ad | |
![]() |
5efd463c73 | |
![]() |
22a2b49a26 | |
![]() |
c51b164549 | |
![]() |
aad25f5f7c | |
![]() |
a38bcdd20b | |
![]() |
bfcff323aa | |
![]() |
e656b2930a | |
![]() |
473d68255b | |
![]() |
071143e78b | |
![]() |
4cb1a67337 | |
![]() |
e10a7adf18 | |
![]() |
20b15789bc | |
![]() |
94639dc059 | |
![]() |
a8054dc361 | |
![]() |
b2b49fbd77 | |
![]() |
3a9f308db6 | |
![]() |
ae11dea756 | |
![]() |
95e96ef72a | |
![]() |
5f1250dff1 | |
![]() |
aedc32284d | |
![]() |
9b75915c21 | |
![]() |
f644c0d883 | |
![]() |
563261b11c | |
![]() |
b527082c94 |
|
@ -1,3 +1,4 @@
|
|||
/build/
|
||||
/prefix/
|
||||
.config
|
||||
**/my_*
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
image: "ubuntu:20.04"
|
||||
image: "ubuntu:22.04"
|
||||
|
||||
variables:
|
||||
GIT_STRATEGY: "pull"
|
||||
GIT_STRATEGY: "clone"
|
||||
GIT_SUBMODULE_STRATEGY: "recursive"
|
||||
GIT_CHECKOUT: "true"
|
||||
|
||||
before_script:
|
||||
# Disable the wget progress bar
|
||||
- echo 'show-progress = off' >> ~/.wgetrc
|
||||
- |
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
apt-get update -qq &&
|
||||
|
@ -13,31 +14,27 @@ before_script:
|
|||
bison \
|
||||
build-essential \
|
||||
curl \
|
||||
dosfstools \
|
||||
flex \
|
||||
fuse \
|
||||
genisoimage \
|
||||
fuse3 \
|
||||
git \
|
||||
gnupg \
|
||||
libfuse-dev \
|
||||
nasm \
|
||||
parted \
|
||||
pkg-config \
|
||||
software-properties-common \
|
||||
syslinux \
|
||||
syslinux-utils \
|
||||
texinfo \
|
||||
wget &&
|
||||
wget \
|
||||
zstd &&
|
||||
curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none
|
||||
|
||||
img:
|
||||
script:
|
||||
- |
|
||||
source "$HOME/.cargo/env" &&
|
||||
cargo install --version 0.1.1 cargo-config &&
|
||||
cargo install cargo-xbuild &&
|
||||
cargo install --version 0.3.20 xargo &&
|
||||
make ci-img IMG_TAG=$CI_COMMIT_REF_NAME
|
||||
curl -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash &&
|
||||
cargo binstall --no-confirm --version 0.1.1 cargo-config &&
|
||||
cargo binstall --no-confirm --version 1.16.0 just &&
|
||||
cargo binstall --no-confirm --version 0.26.0 cbindgen &&
|
||||
cargo build --manifest-path installer/Cargo.toml --release &&
|
||||
make ci-img IMG_TAG=$CI_COMMIT_REF_NAME REPO_BINARY=1
|
||||
artifacts:
|
||||
paths:
|
||||
- build/img/
|
||||
|
|
|
@ -1,11 +1,3 @@
|
|||
[submodule "bootloader"]
|
||||
path = bootloader
|
||||
url = https://gitlab.redox-os.org/redox-os/bootloader.git
|
||||
branch = master
|
||||
[submodule "bootloader-efi"]
|
||||
path = bootloader-efi
|
||||
url = https://gitlab.redox-os.org/redox-os/bootloader-efi.git
|
||||
branch = master
|
||||
[submodule "cookbook"]
|
||||
path = cookbook
|
||||
url = https://gitlab.redox-os.org/redox-os/cookbook.git
|
||||
|
@ -14,18 +6,11 @@
|
|||
path = installer
|
||||
url = https://gitlab.redox-os.org/redox-os/installer.git
|
||||
branch = master
|
||||
[submodule "isolinux"]
|
||||
path = isolinux
|
||||
url = https://gitlab.redox-os.org/redox-os/isolinux.git
|
||||
branch = master
|
||||
[submodule "kernel"]
|
||||
path = kernel
|
||||
url = https://gitlab.redox-os.org/redox-os/kernel.git
|
||||
branch = master
|
||||
[submodule "rust"]
|
||||
path = rust
|
||||
url = https://gitlab.redox-os.org/redox-os/rust.git
|
||||
branch = redox-2020-07-27
|
||||
branch = redox-2023-09-07
|
||||
update = none
|
||||
[submodule "redoxfs"]
|
||||
path = redoxfs
|
||||
url = https://gitlab.redox-os.org/redox-os/redoxfs.git
|
||||
|
@ -34,7 +19,3 @@
|
|||
path = relibc
|
||||
url = https://gitlab.redox-os.org/redox-os/relibc.git
|
||||
branch = master
|
||||
[submodule "bootloader-coreboot"]
|
||||
path = bootloader-coreboot
|
||||
url = https://gitlab.redox-os.org/redox-os/bootloader-coreboot.git
|
||||
branch = master
|
||||
|
|
226
CONTRIBUTING.md
226
CONTRIBUTING.md
|
@ -1,205 +1,141 @@
|
|||
# Contributing to Redox
|
||||
|
||||
_**Thank you for your interest in contributing to Redox!** This document will outline the basics of where to start if you wish to contribute to the project. There are many ways to help us out and and we appreciate all of them. We look forward to **your contribution**!_
|
||||
**Thank you for your interest in contributing to Redox!**
|
||||
|
||||
## Index
|
||||
This document will outline the basics of where to start if you wish to contribute to the project. There are many ways to help us out and and we appreciate all of them. We look forward to **your contribution!**
|
||||
|
||||
* [Communication](#communication)
|
||||
* [Chat](#chat)
|
||||
* [GitLab Issues](#issues)
|
||||
* [Pull Requests](#prs)
|
||||
* [Discourse](#discourse)
|
||||
* [Reddit](#reddit)
|
||||
* [News](#news)
|
||||
* [Code Contributions](#code-contributions)
|
||||
* [Low-Hanging Fruit - Easy Targets for Newbies](#easy-targets)
|
||||
* [Creating a Pull Request](#creating-a-pr)
|
||||
* [Best Practices/Guidelines](#best-practices)
|
||||
* [General](#general)
|
||||
* [Kernel](#kernel)
|
||||
* [Testing Practices](#testing-practices)
|
||||
* [Style Guidelines](#style-guidelines)
|
||||
* [Rust](#rust-style-guidelines)
|
||||
* [Git](#git-style-guidelines)
|
||||
* [Other Ways to Contribute](#other)
|
||||
* [Graphic Design](#graphic-design)
|
||||
* [Patreon](#patreon)
|
||||
## Code Of Conduct
|
||||
|
||||
## <a name="extern-links"> Other External Links </a>
|
||||
We follow the [Rust Code Of Conduct](https://www.rust-lang.org/policies/code-of-conduct).
|
||||
|
||||
* [redox-os.org](https://redox-os.org)
|
||||
* [rust-os-comparison](https://github.com/flosse/rust-os-comparison)
|
||||
* [rust-lang.org](http://rust-lang.org)
|
||||
## License
|
||||
|
||||
## <a name="communication"> Communication </a>
|
||||
In general, your contributions to Redox are governed by the [MIT License](https://en.wikipedia.org/wiki/MIT_License). Each project repository has a `LICENSE` file that provides the license terms for that project.
|
||||
|
||||
### <a name="chat"> Chat </a>
|
||||
Please review the LICENSE for the project you are contributing to.
|
||||
|
||||
The quickest and most open way to **communicate with the Redox team** is on our **chat server**. Currently, you can only get an invite by sending an email request to [info@redox-os.org](mailto:info@redox-os.org), which might take a little while, since it's not automated. Simply say you'd like to join the chat. We're working on an better way to do this, but this is the best way right now.
|
||||
On [this](https://doc.redox-os.org/book/ch01-02-philosophy.html) page we explain why we use the MIT license.
|
||||
|
||||
### <a name="issues"> GitLab Issues </a>
|
||||
## Chat
|
||||
|
||||
A bit more formal way of communication with fellow Redox devs, but a little less quick and convenient like the chat. Submit an issue when you run into problems compiling, testing, or just would like to discuss a certain topic, be it _features, code style, code inconsistencies, minor changes and fixes, etc._
|
||||
Join us on [Matrix Chat](https://doc.redox-os.org/book/ch13-01-chat.html) to discuss issues or ask questions.
|
||||
|
||||
### <a name="prs"> Pull Requests </a>
|
||||
## Important Places to Contribute
|
||||
|
||||
It's fine to just submit a small pull request without first making an issue or asking in the chat, **unless** it's a significant change that will require a lot of planning and reviewing. Also see [Creating a Pull Request](#creating-a-pr) and [Git Style Guidelines](#git-style-guidelines).
|
||||
(Before starting to contribute you **must** read the [FAQ](https://www.redox-os.org/faq/) and the [Redox Book](https://doc.redox-os.org/book/))
|
||||
|
||||
### <a name="discourse"> Discourse </a>
|
||||
You can contribute to the Redox documentation and code on these repositories:
|
||||
|
||||
We have a **discourse forum** at [discourse.redox-os.org](https://discourse.redox-os.org). This is the best way to discuss more general topics that aren't about specific things that need to be addressed one way or another. You can sign up like any other website.
|
||||
(The order is based on difficulty, easy things first)
|
||||
|
||||
### <a name="reddit"> Reddit </a>
|
||||
- [Website](https://gitlab.redox-os.org/redox-os/website)
|
||||
- [Book](https://gitlab.redox-os.org/redox-os/book) - High-level documentation
|
||||
- [Build System Configuration](https://gitlab.redox-os.org/redox-os/redox) - Our main repository
|
||||
- [Cookbook](https://gitlab.redox-os.org/redox-os/cookbook) - Ports system
|
||||
- [Orbital](https://gitlab.redox-os.org/redox-os/orbital) - Display server and window manager
|
||||
- [Package Manager](https://gitlab.redox-os.org/redox-os/pkgutils)
|
||||
- [relibc](https://gitlab.redox-os.org/redox-os/relibc) - Redox C Library
|
||||
- [Drivers](https://gitlab.redox-os.org/redox-os/drivers) - Device daemons
|
||||
- [Kernel](https://gitlab.redox-os.org/redox-os/kernel)
|
||||
|
||||
You can also find **Redox on Reddit** in [/r/rust/](https://www.reddit.com/r/rust) and [/r/redox/](https://www.reddit.com/r/redox). Redox news and discussion is posted on the latter, and Rust news and discussion, as well as some Redox posts, is on the former.
|
||||
### Skill Levels
|
||||
|
||||
### <a name="news"> News </a>
|
||||
If you aren't fluent in Rust:
|
||||
|
||||
News and updates for Redox are posted at [redox-os.org/news](https://redox-os.org/news). It's more one-way than the other things on this list, but it should provide a good summary of what's been going on with the project lately. It's usually updated weekly, but with some exceptions. A mailing list may be included eventually, but it's not set up right now.
|
||||
- Write documentation
|
||||
- Use and test Redox, fill issues for bugs or needed features (please verify the repository issues before)
|
||||
- Web development on the website (we don't accept JavaScript code)
|
||||
- Write unit tests (may require minimal knowledge of Rust)
|
||||
|
||||
## <a name="code-contributions"> Code Contributions </a>
|
||||
If you are fluent in Rust, but not operating system Development:
|
||||
|
||||
### <a name="easy-targets"> Low-Hanging Fruit - Easy Targets for Newbies </a>
|
||||
- Improve the Orbital display server and window manager.
|
||||
- Port programs written in Rust to Redox (in most cases you need to port crates, be aware of missing functions on relibc, porting without these functions will make patches dirty)
|
||||
- Improve the program compatibility in relibc
|
||||
- Improve the package manager
|
||||
- Improve the [Ion](https://gitlab.redox-os.org/redox-os/ion) shell
|
||||
|
||||
#### If you're not fluent in Rust:
|
||||
If you are fluent in Rust, and have experience with operating system development:
|
||||
|
||||
* Writing _documentation_
|
||||
* **Using/testing Redox**, filing issues for bugs and needed features
|
||||
* **Web development** ([Redox website, separate repo](https://gitlab.redox-os.org/redox-os/website))
|
||||
* **Writing unit tests** (may require minimal knowledge of rust)
|
||||
- Familiarize yourself with the repository and code
|
||||
- Grep for `TODO`, `FIXME`, `BUG`, `UNOPTIMIZED`, `REWRITEME`, `DOCME`, and `PRETTYFYME` and fix the code you find
|
||||
- Update old code to remove warnings
|
||||
- Improve and optimize code, especially in the kernel
|
||||
- Write device drivers
|
||||
|
||||
#### If you are fluent in Rust, but not OS Development:
|
||||
For those who want to contribute to the Redox GUI, our GUI strategy has recently changed.
|
||||
|
||||
* **Apps** development
|
||||
* **Shell** ([Ion](https://gitlab.redox-os.org/redox-os/ion)) development
|
||||
* **Package management** ([pkgutils](https://gitlab.redox-os.org/redox-os/pkgutils)) development
|
||||
* Other high-level code tasks
|
||||
- We are improving the [Orbital](https://gitlab.redox-os.org/redox-os/orbital) display server and window manager, you can read more about it on [this](https://gitlab.redox-os.org/redox-os/redox/-/issues/1430) tracking issue.
|
||||
- Redox is in the process of adopting other Rust-written GUI toolkits, such as [Iced](https://iced.rs) and [Slint](https://slint-ui.com/). Please check out those projects if this is your area of interest.
|
||||
- OrbTk is in maintenance mode, and its developers have moved to other projects such as the ones below. There is currently no Redox-specific GUI development underway.
|
||||
|
||||
#### If you are fluent in Rust, and have experience with OS Dev:
|
||||
## Tracking Issues Index
|
||||
|
||||
* Familiarize yourself with the repository and codebase
|
||||
* Grep for `TODO`, `FIXME`, `BUG`, `UNOPTIMIZED`, `REWRITEME`, `DOCME`, and `PRETTYFYME` and fix the code you find.
|
||||
* **Improve and optimize code, especially in the kernel**
|
||||
We use an index to track the development priorities, you can find them on [this](https://gitlab.redox-os.org/redox-os/redox/-/issues/1384) page.
|
||||
|
||||
### <a name="creating-a-pr"> Creating a Pull Request </a>
|
||||
## Build System
|
||||
|
||||
**1**. _**Fork**_ the repository
|
||||
You can find the Redox build system organization and commands on [this](https://doc.redox-os.org/book/ch08-06-build-system-reference.html) page.
|
||||
|
||||
**2**. Clone the _original repository_ to your local PC using one of the following commands based on the protocol you are using:
|
||||
* HTTPS:`git clone https://gitlab.redox-os.org/redox-os/redox.git --origin upstream --recursive`
|
||||
* SSH:`git clone git@gitlab.redox-os.org:redox-os/redox.git --origin upstream --recursive`
|
||||
* Then rebase: `git rebase upstream master`
|
||||
If you use HTTPS, you will have to log in each time when pushing to your fork. (Recommended: learn about git SSH support, it logs in automatically using SSH keys)
|
||||
|
||||
**3**. **Add** your fork with
|
||||
* HTTPS:`git remote add origin https://gitlab.redox-os.org/your-username/redox.git`
|
||||
* SSH:`git remote add origin git@gitlab.redox-os.org:your-username/redox.git`
|
||||
|
||||
**4**. Alternatively, if you already have a fork and copy of the repo, you can simply check to **make sure you're up-to-date**
|
||||
* Pull the upstream:`git pull upstream --rebase`
|
||||
* Update the submodules:`git submodule update --recursive --init`
|
||||
|
||||
**5**. Create a _**separate branch**_ (recommended if you're making multiple changes simultaneously) (`git checkout -b my-branch`)
|
||||
## Developer FAQ
|
||||
|
||||
**6**. _Make changes_
|
||||
You can see the most common questions and problems on [this](https://doc.redox-os.org/book/ch09-07-developer-faq.html) page.
|
||||
|
||||
**7**. **Commit** (`git add <item(s) you changed>; git commit`) and write your commit message
|
||||
## Porting Software
|
||||
|
||||
**8**. Optionally run [rustfmt](https://github.com/rust-lang-nursery/rustfmt) on the _files you changed_ and commit again if it did anything (check with `git diff` first)
|
||||
You can read how to use the Cookbook recipe system to port applications on [this](https://doc.redox-os.org/book/ch09-03-porting-applications.html) page.
|
||||
|
||||
**9**. Test your changes by **cleaning** (`make clean; git clean -Xfd`) and **building** with `make qemu` (you might have to use `make qemu kvm=no`) or `make virtualbox`.
|
||||
(see [Best Practices and Guidelines](#best-practices))
|
||||
## Libraries and APIs
|
||||
|
||||
**10**. _**Pull**_ from upstream (`git pull upstream --rebase`) (Note: Make sure to include `--rebase`, as it will apply your changes on top of the changes you just pulled, allowing for a much cleaner merge)
|
||||
You can read [this](https://doc.redox-os.org/book/ch09-06-libraries-apis.html) page to learn about the libraries and APIs used in Redox.
|
||||
|
||||
**11**. Repeat step **9** to make sure the rebase still builds and starts
|
||||
## Development Tips
|
||||
|
||||
**12**. Push to **your fork** (`git push origin <branch>`), `<branch>` being the branch you created earlier
|
||||
You can find important tips on [this](https://doc.redox-os.org/book/ch09-02-coding-and-building.html#development-tips) section.
|
||||
|
||||
**13**. Create a _pull request_
|
||||
## References
|
||||
|
||||
**14**. If your changes are _minor_, you can just describe them in a paragraph or less. If they're _major_, please fill out the provided form.
|
||||
We maintain a list of wikis, articles and videos to learn Rust, OS development and computer science on [this](https://doc.redox-os.org/book/ch09-08-references.html) page.
|
||||
|
||||
**15. Submit!**
|
||||
If you are skilled there's a possibility that they could improve your knowledge in some way.
|
||||
|
||||
## <a name="best-practices"> Best Practices and Guidelines </a>
|
||||
## Best Practices and Guidelines
|
||||
|
||||
### <a name="general"> General </a>
|
||||
You can read the best practices and guidelines on [this](https://doc.redox-os.org/book/ch11-00-best-practices.html) chapter.
|
||||
|
||||
* **Remember to do a `git rebase -i upstream/master` before you send your patch!**
|
||||
* **Make sure your code is readable, commented, and well-documented.**
|
||||
* **Don't hesitate to ask for help, comments or suggestions!**
|
||||
* **Before implementing something, discuss it! Open an issue, or ask in the chat.**
|
||||
## Style Guidelines
|
||||
|
||||
##### On the more technical side:
|
||||
* Test, test, and test!
|
||||
* Follow the style conventions (See [rust style guidelines](#rust-style-guidelines))
|
||||
* Use `std::mem::replace` and `std::mem::swap` when you can.
|
||||
* `libredox` should be 1-to-1 with the official `libstd`.
|
||||
* Prefer `.into()` and `.to_owned()` over `.to_string()`.
|
||||
* Prefer passing references to the data over owned data. (Don't take `String`, take `&str`. Don't take `Vec<T>` take `&[T]`).
|
||||
* Use generics, traits, and other abstractions Rust provides.
|
||||
* Avoid using lossy conversions (for example: don't do `my_u32 as u16 == my_u16`, prefer `my_u32 == my_u16 as u32`).
|
||||
* Prefer in place (`box` keyword) when doing heap allocations.
|
||||
* Prefer platform independently sized integer over pointer sized integer (`u32` over `usize`, for example).
|
||||
* Follow the usual idioms of programming, such as "composition over inheritance", "let your program be divided in smaller pieces", and "resource acquisition is initialization".
|
||||
* When `unsafe` is unnecessary, don't use it. **Longer safe code is better than shorter unsafe code!**
|
||||
* Be sure to mark parts that need work with `TODO`, `FIXME`, `BUG`, `UNOPTIMIZED`, `REWRITEME`, `DOCME`, and `PRETTYFYME`. Always elaborate on these messages, too. Nothing is more annoying than seeing a `TODO` and not knowing how to actually fix it.
|
||||
* Use the compiler hint attributes, such as `#[inline]`, `#[cold]`, etc. when it makes sense to do so.
|
||||
* Check the [chat](#chat), [the website](http://redox-os.org/news), and [the Rust subreddit](https://www.reddit.com/r/rust) frequently.
|
||||
### Rust
|
||||
|
||||
### <a name="kernel"> Kernel </a>
|
||||
Since **Rust** is a relatively small and new language compared to others like C and C++, there's really only one standard. Just follow the official Rust standards for formatting, and maybe run `rustfmt` on your changes, until we setup the CI system to do it automatically.
|
||||
|
||||
* When trying to access a slice, **always** use the `common::GetSlice` trait and the `.get_slice()` method to get a slice without causing the kernel to panic.
|
||||
The problem with slicing in regular Rust, e.g. `foo[a..b]`, is that if someone tries to access with a range that is out of bounds of an array/string/slice, it will cause a panic at runtime, as a safety measure. Same thing when accessing an element.
|
||||
Always use `foo.get(n)` instead of `foo[n]` and try to cover for the possibility of `Option::None`. Doing the regular way may work fine for applications, but never in the kernel. No possible panics should ever exist in kernel space, because then the whole OS would just stop working.
|
||||
### Git
|
||||
|
||||
### <a name="testing-practices"> Testing Practices </a>
|
||||
Please follow our [Git style](https://doc.redox-os.org/book/ch12-04-creating-proper-pull-requests.html) for pull requests.
|
||||
|
||||
* It's always better to test boot (`make qemu` or `make virtualbox`) every time you make a change, because it is important to see how the OS boots and works after it compiles.
|
||||
Even though Rust is a safety-oriented language, something as unstable and low-level as an in-dev operating system will almost certainly have problems in many cases and may completely break on even the slightest critical change.
|
||||
Also, make sure you check how the unmodified version runs on your machine before making any changes. Else, you won't have anything to compare to, and it will generally just lead to confusion. TLDR: Rebuild and test boot often.
|
||||
## GitLab
|
||||
|
||||
* To run the **ZFS** tests:
|
||||
* Create the zfs.img only once. If one has not been created, run `make filesystem/apps/zfs/zfs.img` before booting into Redox.
|
||||
* Run `open zfs.img` to open the created ZFS image.
|
||||
* Run `file /home/LICENSE.md` twice to ensure ARC isn't broken.
|
||||
### Issues
|
||||
|
||||
## <a name="style-guidelines"> Style Guidelines </a>
|
||||
To know how to create issues on the Redox GitLab, read [this](https://doc.redox-os.org/book/ch12-05-filing-issues.html) page.
|
||||
|
||||
### <a name="rust-style-guidelines"> Rust </a>
|
||||
### Pull Requests
|
||||
|
||||
Since **Rust** is a relatively small and new language compared to others like _C_, there's really only one standard. Just follow the official Rust standards for formatting, and maybe run `rustfmt` on your changes, until we setup the CI system to do it automatically.
|
||||
Please follow [our process](https://doc.redox-os.org/book/ch12-04-creating-proper-pull-requests.html) for creating proper pull requests.
|
||||
|
||||
### <a name="git-style-guidelines"> Git </a>
|
||||
## Other Ways to Contribute
|
||||
|
||||
* You should have a fork of the repository on **GitHub** and a local copy on your computer. The local copy should have two remotes; `upstream` and `origin`, `upstream` should be set to the main repository and `origin` should be your fork.
|
||||
* When you start to make changes, you will want to create a separate branch, and keep the `master` branch of your fork identical to the main repository, so that you can compare your changes with the main branch and test out a more stable build if you need to.
|
||||
* Usually, when syncing your local copy with the master branch, you'll want to rebase instead of merge. This is because it will create duplicate commits that don't actually do anything when merged into the master branch. You can do this in one command with `git pull upstream --rebase`. This will pull from the upstream, then roll back to the current state of the upstream, and "replay" your changes on top of it. Make sure you commit before doing this, though. Git won't be able to rebase if you don't.
|
||||
* Prefer to omit the `-m` when using `git commit`. This opens your editor and should help get you in the habit of writing longer commit messages.
|
||||
* Commit messages should describe their changes in present tense, e.g. "`Add stuff to file.ext`" instead of "`added stuff to file.ext`". This makes sense as sometimes when you revert back, then run through commits one-by-one, you want to see what a commit will do, instead of just what the person did when they made the commit. It's also just being consistent.
|
||||
* Try to remove useless duplicate/merge commits from PRs as these don't do anything except clutter up history and make it harder to read.
|
||||
If you aren't good on coding, but you still want to help keep the project going, you can contribute and support in a variety of ways! We'll try to find a way to use anything you have to offer.
|
||||
|
||||
## <a name="other"> Other Ways to Contribute </a>
|
||||
### Design
|
||||
|
||||
If you're not big on coding, but you still want to help keep the project going, you can still contribute/support in a variety of ways! We'll try to find a way to use anything you have to offer.
|
||||
If you're a good designer, whether it's 2D graphics, 3D graphics, interfaces, web design, you can help. We need logos, UI design, UI skins, app icons, desktop backgrounds, etc.
|
||||
|
||||
### <a name="design"> Design </a>
|
||||
- [Redox backgrounds](https://gitlab.redox-os.org/redox-os/backgrounds) - You can send your wallpapers on this repository.
|
||||
- [Redox assets](https://gitlab.redox-os.org/redox-os/assets) - You can send your logos, icons and themes on this repository.
|
||||
|
||||
If you're a good designer, whether it's _2D graphics, 3D graphics, interfaces, web design, you can help. We need logos, UI design, UI skins, app icons, desktop backgrounds, etc_. More information to come on this in the future, for now just join [the chat](#chat) and ask about graphic design.
|
||||
If you have questions about the graphic design, ask us on the [Chat](https://doc.redox-os.org/book/ch13-01-chat.html).
|
||||
|
||||
### <a name="patreon"> Patreon </a>
|
||||
|
||||
Our **BDFL**, [jackpot51](https://gitlab.redox-os.org/jackpot51), has a [Patreon campaign](https://www.patreon.com/redox_os)! **All money received will go towards Redox OS development**. If you donate, you will be listed in the **Redox credits** as one of the people that made Redox OS possible. You'll also get other rewards the more you donate. However, please don't donate if you can't afford it.
|
||||
|
||||
<!--
|
||||
|
||||
POSSIBLE OTHER TOPICS TO INCLUDE
|
||||
- Merch (maybe in the future)
|
||||
- Sound Design (things like notifications, popups, etc. for orbital)
|
||||
- Video Production/Motion Graphics (tutorials, introduction videos, etc.)
|
||||
- Non-Rust programming, scripting, etc. (if we even have a need for this)
|
||||
- Hosting/download/git mirrors (this is not needed right now, but when downloads increase it may be necessary)
|
||||
|
||||
-->
|
||||
### Donate to Redox
|
||||
|
||||
If you are interested in donating to the Redox OS Nonprofit, you can find instructions [here](https://www.redox-os.org/donate/).
|
||||
|
|
|
@ -0,0 +1,327 @@
|
|||
# Hardware Compatibility
|
||||
|
||||
This document tracks the current hardware compatibility of Redox.
|
||||
|
||||
- [Status](#status)
|
||||
- [General](#general)
|
||||
- [Template](#template)
|
||||
- [x86-64](#x86-64)
|
||||
- [System76](#system76)
|
||||
- [Dell](#dell)
|
||||
- [HP](#hp)
|
||||
- [ASUS](#asus)
|
||||
- [Lenovo](#lenovo)
|
||||
- [Toshiba](#toshiba)
|
||||
- [Custom](#custom)
|
||||
- [i686](#i686)
|
||||
- [Dell](#dell-1)
|
||||
- [ASUS](#asus-1)
|
||||
- [Lenovo](#lenovo-1)
|
||||
- [Toshiba](#toshiba-1)
|
||||
- [Panasonic](#panasonic)
|
||||
- [Custom](#custom-1)
|
||||
- [ARM64](#arm64)
|
||||
- [Custom](#custom-2)
|
||||
|
||||
## Status
|
||||
|
||||
- Broken - The system can't boot.
|
||||
- Booting - The system boots with some issues.
|
||||
- Recommended - The system start with all features working.
|
||||
|
||||
## General
|
||||
|
||||
This section cover things to consider.
|
||||
|
||||
- ACPI support is incomplete (some things are hardcoded on the kernel)
|
||||
- USB support is incomplete (desktops are generally not recommended)
|
||||
- Wi-Fi is not supported
|
||||
- GPU drivers aren't supported (only VESA and GOP)
|
||||
- Automatic operating system discovery on boot loader is not implemented (remember this before installing Redox)
|
||||
|
||||
## Template
|
||||
|
||||
You will use this template to insert your computer.
|
||||
|
||||
- **Computer model**
|
||||
|
||||
```
|
||||
Status - (Broken, Booting or Recommended)
|
||||
Redox version - 0.0.0
|
||||
Variant - (server-minimal, desktop-minimal, server, desktop, demo, dev or customized)
|
||||
Image date - day-month-year
|
||||
|
||||
- Additional details goes here as items
|
||||
```
|
||||
|
||||
## x86-64
|
||||
|
||||
Computers using a 64 bits Intel/AMD CPU.
|
||||
|
||||
### System76
|
||||
|
||||
- **System76 Galago Pro (galp5)**
|
||||
|
||||
```
|
||||
Status - Recommended
|
||||
Redox version - 0.8.0
|
||||
Variant - desktop
|
||||
Image date - 11-11-2022
|
||||
|
||||
- Booted using UEFI
|
||||
- Boots to desktop
|
||||
```
|
||||
|
||||
- **System76 Lemur Pro (lemp9)**
|
||||
|
||||
```
|
||||
Status - Recommended
|
||||
Redox version - 0.8.0
|
||||
Variant - desktop
|
||||
Image date - 11-11-2022
|
||||
|
||||
- Booted using UEFI
|
||||
- Boots to desktop
|
||||
```
|
||||
|
||||
- **System76 Oryx Pro (oryp10)**
|
||||
|
||||
```
|
||||
Status - Booting
|
||||
Redox version - 0.8.0
|
||||
Variant - desktop
|
||||
Image date - 11-11-2022
|
||||
|
||||
- Booted using UEFI
|
||||
- Boots to desktop
|
||||
- No touchpad support, though it should be working
|
||||
```
|
||||
|
||||
- **System76 Pangolin (pang12)**
|
||||
|
||||
```
|
||||
Status - Booting
|
||||
Redox version - 0.8.0
|
||||
Variant - desktop
|
||||
Image date - 11-11-2022
|
||||
|
||||
- Booted using UEFI
|
||||
- Boots to desktop
|
||||
- No touchpad support, requires I2C HID
|
||||
```
|
||||
|
||||
### Dell
|
||||
|
||||
- **Dell XPS 13 (9350)**
|
||||
|
||||
```
|
||||
Status - Booting
|
||||
Redox version - 0.8.0
|
||||
Variant - desktop
|
||||
Image date - 11-11-2022
|
||||
|
||||
- Booted using both BIOS and UEFI
|
||||
- Boots to desktop
|
||||
- NVMe driver livelocks
|
||||
```
|
||||
|
||||
### HP
|
||||
|
||||
- **HP Dev One**
|
||||
|
||||
```
|
||||
Status - Booting
|
||||
Redox version - 0.8.0
|
||||
Variant - desktop
|
||||
Image date - 11-11-2022
|
||||
|
||||
- Booted using UEFI
|
||||
- Boots to desktop
|
||||
- No touchpad support, requires I2C HID
|
||||
```
|
||||
|
||||
### ASUS
|
||||
|
||||
- **ASUS X554L**
|
||||
|
||||
```
|
||||
Status - Booting
|
||||
Redox version - 0.8.0
|
||||
Variant - desktop
|
||||
Image date - 11-11-2022
|
||||
|
||||
- Booted using BIOS
|
||||
- Boots to desktop
|
||||
- No audio, HDA driver cannot find output pins
|
||||
```
|
||||
|
||||
- **ASUS ROG g55vw**
|
||||
|
||||
```
|
||||
Satus - Booting
|
||||
Redox version - 0.8.0
|
||||
Variant - desktop
|
||||
Image date - 11-11-2023
|
||||
|
||||
- Booted using BIOS
|
||||
- Boots to desktop
|
||||
- UEFI panic in SETUP
|
||||
```
|
||||
|
||||
### Lenovo
|
||||
|
||||
- **Lenovo IdeaPad Y510P**
|
||||
|
||||
```
|
||||
Status - Recommended
|
||||
Redox version - 0.8.0
|
||||
Variant - desktop
|
||||
Image date - 11-11-2022
|
||||
|
||||
- Booted using both BIOS and UEFI
|
||||
- Boots to desktop
|
||||
```
|
||||
|
||||
- **Lenovo G570**
|
||||
|
||||
```
|
||||
Status - Broken
|
||||
Redox version - 0.8.0
|
||||
Variant - desktop
|
||||
Image date - 11-11-2022
|
||||
|
||||
- Booted using BIOS
|
||||
- Correct video mode not offered, this is a firmware issue
|
||||
- Bootloader panics in alloc_zeroed_page_aligned
|
||||
```
|
||||
|
||||
### Toshiba
|
||||
|
||||
- **Toshiba Satellite L500**
|
||||
|
||||
```
|
||||
Status - Booting
|
||||
Redox version - 0.8.0
|
||||
Variant - desktop
|
||||
Image date - 11-11-2022
|
||||
|
||||
- Booted using BIOS
|
||||
- Correct video mode not offered, this is a firmware issue
|
||||
- Boots to desktop
|
||||
- No ethernet driver
|
||||
```
|
||||
|
||||
### Custom
|
||||
|
||||
If you have a customized computer, put it here.
|
||||
|
||||
|
||||
|
||||
## i686
|
||||
|
||||
Computers with a 32 bits Intel/AMD CPU.
|
||||
|
||||
### Dell
|
||||
|
||||
- **Dell XPS 13 (9350)**
|
||||
|
||||
```
|
||||
Status - Booting
|
||||
Redox version - 0.8.0
|
||||
Variant - desktop
|
||||
Image date - 11-11-2022
|
||||
|
||||
- Booted using BIOS
|
||||
- Boots to desktop
|
||||
- NVMe driver livelocks
|
||||
```
|
||||
|
||||
### ASUS
|
||||
|
||||
- **ASUS Eee PC 900**
|
||||
|
||||
```
|
||||
Status - Booting
|
||||
Redox version - 0.8.0
|
||||
Variant - desktop
|
||||
Image date - 11-11-2022
|
||||
|
||||
- Booted using BIOS
|
||||
- Correct video mode not offered, this is a firmware issue
|
||||
- Boots to desktop
|
||||
- No ethernet driver
|
||||
```
|
||||
|
||||
### Lenovo
|
||||
|
||||
- **Lenovo IdeaPad Y510P**
|
||||
|
||||
```
|
||||
Status - Broken
|
||||
Redox version - 0.8.0
|
||||
Variant - desktop
|
||||
Image date - 11-11-2022
|
||||
|
||||
- Booted using BIOS
|
||||
- Panics on phys_to_virt overflow, probably having invalid mappings for 32-bit
|
||||
```
|
||||
|
||||
### Toshiba
|
||||
|
||||
- **Toshiba Satellite L500**
|
||||
|
||||
```
|
||||
Status - Broken
|
||||
Redox version - 0.8.0
|
||||
Variant - desktop
|
||||
Image date - 11-11-2022
|
||||
|
||||
- Booted using BIOS
|
||||
- Correct video mode not offered, this is a firmware issue
|
||||
- Panics on phys_to_virt overflow, probably having invalid mappings for 32-bit
|
||||
```
|
||||
|
||||
### Panasonic
|
||||
|
||||
- **Panasonic Toughbook CF-18**
|
||||
|
||||
```
|
||||
Status - Broken
|
||||
Redox version - 0.8.0
|
||||
Variant - desktop
|
||||
Image date - 11-11-2022
|
||||
|
||||
- Booted using BIOS
|
||||
- Hangs after PIT initialization
|
||||
```
|
||||
|
||||
### Custom
|
||||
|
||||
If you have a customized computer, put it here.
|
||||
|
||||
|
||||
|
||||
## ARM64
|
||||
|
||||
Computers using a 64 bits ARM CPU.
|
||||
|
||||
### Raspberry Pi
|
||||
|
||||
- **Raspberry Pi 3 Model B+**
|
||||
|
||||
```
|
||||
Status - Booting
|
||||
Redox version - 0.8.0
|
||||
Variant - server
|
||||
Image date - None
|
||||
|
||||
- Booted using Uboot
|
||||
- Boots to UART serial console
|
||||
- a bcm2835-sdhci/mmc driver
|
||||
- pl011 UART
|
||||
```
|
||||
|
||||
### Custom
|
||||
|
||||
If you have a customized ARM board, put it here.
|
||||
|
133
Makefile
133
Makefile
|
@ -4,122 +4,97 @@ include mk/config.mk
|
|||
# Dependencies
|
||||
include mk/depends.mk
|
||||
|
||||
all: build/harddrive.bin
|
||||
all: $(BUILD)/harddrive.img
|
||||
|
||||
coreboot: build/coreboot.elf
|
||||
live:
|
||||
-$(FUMOUNT) $(BUILD)/filesystem/ || true
|
||||
-$(FUMOUNT) /tmp/redox_installer/ || true
|
||||
rm -f $(BUILD)/livedisk.iso
|
||||
$(MAKE) $(BUILD)/livedisk.iso
|
||||
|
||||
live: build/livedisk.bin
|
||||
popsicle: $(BUILD)/livedisk.iso
|
||||
popsicle-gtk $(BUILD)/livedisk.iso
|
||||
|
||||
iso: build/livedisk.iso
|
||||
image:
|
||||
-$(FUMOUNT) $(BUILD)/filesystem/ || true
|
||||
-$(FUMOUNT) /tmp/redox_installer/ || true
|
||||
rm -f $(BUILD)/harddrive.img $(BUILD)/livedisk.iso
|
||||
$(MAKE) all
|
||||
|
||||
clean:
|
||||
rebuild:
|
||||
-$(FUMOUNT) $(BUILD)/filesystem/ || true
|
||||
-$(FUMOUNT) /tmp/redox_installer/ || true
|
||||
rm -rf $(BUILD)
|
||||
$(MAKE) all
|
||||
|
||||
clean: $(CONTAINER_TAG)
|
||||
ifeq ($(PODMAN_BUILD),1)
|
||||
$(PODMAN_RUN) $(MAKE) $@
|
||||
else
|
||||
cd cookbook && ./clean.sh
|
||||
-rm -rf cookbook/repo
|
||||
cargo clean --manifest-path cookbook/pkgutils/Cargo.toml
|
||||
cargo clean --manifest-path installer/Cargo.toml
|
||||
cargo clean --manifest-path kernel/Cargo.toml
|
||||
cargo clean --manifest-path kernel/syscall/Cargo.toml
|
||||
cargo clean --manifest-path redoxfs/Cargo.toml
|
||||
-$(FUMOUNT) build/filesystem/ || true
|
||||
rm -rf build
|
||||
cargo clean --manifest-path relibc/Cargo.toml
|
||||
endif
|
||||
-$(FUMOUNT) $(BUILD)/filesystem/ || true
|
||||
-$(FUMOUNT) /tmp/redox_installer/ || true
|
||||
rm -rf $(BUILD)
|
||||
|
||||
distclean:
|
||||
distclean: $(CONTAINER_TAG)
|
||||
ifeq ($(PODMAN_BUILD),1)
|
||||
$(PODMAN_RUN) $(MAKE) $@
|
||||
else
|
||||
$(MAKE) clean
|
||||
cd cookbook && ./unfetch.sh
|
||||
endif
|
||||
|
||||
pull:
|
||||
git pull --recurse-submodules
|
||||
git pull
|
||||
git submodule sync --recursive
|
||||
git submodule update --recursive --init
|
||||
|
||||
update:
|
||||
cd cookbook && ./update.sh \
|
||||
"$$(cargo run --manifest-path ../installer/Cargo.toml -- --list-packages -c ../initfs.toml)" \
|
||||
"$$(cargo run --manifest-path ../installer/Cargo.toml -- --list-packages -c ../filesystem.toml)"
|
||||
cargo update --manifest-path cookbook/pkgutils/Cargo.toml
|
||||
cargo update --manifest-path installer/Cargo.toml
|
||||
cargo update --manifest-path kernel/Cargo.toml
|
||||
cargo update --manifest-path redoxfs/Cargo.toml
|
||||
fetch: $(BUILD)/fetch.tag
|
||||
|
||||
fetch:
|
||||
cargo build --manifest-path cookbook/Cargo.toml --release
|
||||
cd cookbook && ./fetch.sh \
|
||||
"$$(cargo run --manifest-path ../installer/Cargo.toml -- --list-packages -c ../initfs.toml)" \
|
||||
"$$(cargo run --manifest-path ../installer/Cargo.toml -- --list-packages -c ../filesystem.toml)"
|
||||
repo: $(BUILD)/repo.tag
|
||||
|
||||
# Podman build recipes and vars
|
||||
include mk/podman.mk
|
||||
|
||||
# Disk Imaging and Cookbook tools
|
||||
include mk/fstools.mk
|
||||
|
||||
# Cross compiler recipes
|
||||
include mk/prefix.mk
|
||||
|
||||
# Kernel recipes
|
||||
include mk/kernel.mk
|
||||
|
||||
# Filesystem recipes
|
||||
include mk/initfs.mk
|
||||
include mk/filesystem.mk
|
||||
# Repository maintenance
|
||||
include mk/repo.mk
|
||||
|
||||
# Disk images
|
||||
include mk/disk.mk
|
||||
|
||||
# Emulation recipes
|
||||
include mk/qemu.mk
|
||||
include mk/bochs.mk
|
||||
include mk/virtualbox.mk
|
||||
|
||||
# CI image target
|
||||
ci-img: FORCE
|
||||
$(MAKE) INSTALLER_FLAGS= \
|
||||
build/harddrive.bin.gz \
|
||||
build/livedisk.iso.gz \
|
||||
build/harddrive-efi.bin.gz \
|
||||
build/livedisk-efi.iso.gz
|
||||
rm -rf build/img
|
||||
mkdir -p build/img
|
||||
cp "build/harddrive.bin.gz" "build/img/redox_$(IMG_TAG)_harddrive.bin.gz"
|
||||
cp "build/livedisk.iso.gz" "build/img/redox_$(IMG_TAG)_livedisk.iso.gz"
|
||||
cp "build/harddrive-efi.bin.gz" "build/img/redox_$(IMG_TAG)_harddrive-efi.bin.gz"
|
||||
cp "build/livedisk-efi.iso.gz" "build/img/redox_$(IMG_TAG)_livedisk-efi.iso.gz"
|
||||
cd build/img && sha256sum -b * > SHA256SUM
|
||||
# CI
|
||||
include mk/ci.mk
|
||||
|
||||
# CI packaging target
|
||||
ci-pkg: prefix FORCE
|
||||
cargo build --manifest-path cookbook/Cargo.toml --release
|
||||
export PATH="$(PREFIX_PATH):$$PATH" && \
|
||||
PACKAGES="$$(cargo run --manifest-path installer/Cargo.toml -- --list-packages -c ci.toml)" && \
|
||||
cd cookbook && \
|
||||
./fetch.sh "$${PACKAGES}" && \
|
||||
./repo.sh "$${PACKAGES}"
|
||||
|
||||
# CI toolchain
|
||||
ci-toolchain: FORCE
|
||||
$(MAKE) PREFIX_BINARY=0 \
|
||||
"prefix/$(TARGET)/gcc-install.tar.gz" \
|
||||
"prefix/$(TARGET)/relibc-install.tar.gz" \
|
||||
"prefix/$(TARGET)/rust-install.tar.gz"
|
||||
rm -rf "build/toolchain/$(TARGET)"
|
||||
mkdir -p "build/toolchain/$(TARGET)"
|
||||
cp "prefix/$(TARGET)/gcc-install.tar.gz" "build/toolchain/$(TARGET)/gcc-install.tar.gz"
|
||||
cp "prefix/$(TARGET)/relibc-install.tar.gz" "build/toolchain/$(TARGET)/relibc-install.tar.gz"
|
||||
cp "prefix/$(TARGET)/rust-install.tar.gz" "build/toolchain/$(TARGET)/rust-install.tar.gz"
|
||||
cd "build/toolchain/$(TARGET)" && sha256sum -b * > SHA256SUM
|
||||
|
||||
env: prefix FORCE
|
||||
env: prefix FORCE $(CONTAINER_TAG)
|
||||
ifeq ($(PODMAN_BUILD),1)
|
||||
$(PODMAN_RUN) $(MAKE) $@
|
||||
else
|
||||
export PATH="$(PREFIX_PATH):$$PATH" && \
|
||||
bash
|
||||
endif
|
||||
|
||||
gdb: FORCE
|
||||
gdb build/kernel.sym --eval-command="target remote localhost:1234"
|
||||
gdb cookbook/recipes/core/kernel/target/$(TARGET)/build/kernel.sym --eval-command="target remote localhost:1234"
|
||||
|
||||
# An empty target
|
||||
FORCE:
|
||||
|
||||
# Gzip any binary
|
||||
%.gz: %
|
||||
gzip -k -f $<
|
||||
|
||||
# Create a listing for any binary
|
||||
%.list: %
|
||||
export PATH="$(PREFIX_PATH):$$PATH" && \
|
||||
$(OBJDUMP) -C -M intel -D $< > $@
|
||||
|
||||
# Wireshark
|
||||
wireshark: FORCE
|
||||
wireshark build/network.pcap
|
||||
wireshark $(BUILD)/network.pcap
|
||||
|
|
205
README.md
205
README.md
|
@ -2,31 +2,65 @@
|
|||
<img alt="Redox" width="346" src="https://gitlab.redox-os.org/redox-os/assets/raw/master/logos/redox/logo.png">
|
||||
</p>
|
||||
|
||||
**Redox** is an operating system written in Rust, a language with focus on safety and high performance. Redox, following the microkernel design, aims to be secure, usable, and free. Redox is inspired by previous kernels and operating systems, such as SeL4, MINIX, Plan 9, and BSD.
|
||||
[Redox](https://www.redox-os.org) is an operating system written in Rust, a language with focus on safety, efficiency and high performance. Redox, following the microkernel design, aims to be reliable, secure, usable, correct and free. Redox is inspired by previous operating systems, such as seL4, MINIX, Plan 9, Linux and BSD.
|
||||
|
||||
Redox _is not_ just a kernel, it's a **full-featured Operating System**, providing packages (memory allocator, file system, display manager, core utilities, etc.) that together make up a functional and convenient operating system. You can loosely think of it as the GNU or BSD ecosystem, but in a memory safe language and with modern technology. See [this list](#ecosystem) for overview of the ecosystem.
|
||||
Redox _is not_ just a kernel, it's a **full-featured operating system**, providing components (memory allocator, file system, display manager, core utilities, etc.) that together make up a functional and convenient operating system. You can loosely think of it as the GNU or BSD ecosystem, but in a memory safe language and with modern technology.
|
||||
|
||||
The website can be found at https://www.redox-os.org.
|
||||
|
||||
Please make sure you use the **latest nightly** of `rustc` before building (for more troubleshooting, see ["Help! Redox won't compile!"](#compile-help)).
|
||||
|
||||
[](https://travis-ci.org/redox-os/redox)
|
||||
[](https://gitlab.redox-os.org/redox-os/redox/tags)
|
||||
[](./LICENSE)
|
||||

|
||||
|
||||
## Contents
|
||||
## Guide
|
||||
|
||||
* [What it looks like](#screenshots)
|
||||
* [Ecosystem](#ecosystem)
|
||||
* [Help! Redox won't compile](#compile-help)
|
||||
* [Contributing to Redox](#contributing)
|
||||
* [Cloning, Building and running](#cloning-building-running)
|
||||
* [Quick Setup](#quick-setup)
|
||||
* [Manual Setup](#manual-setup)
|
||||
* [Setup Using Docker](#setup-using-docker)
|
||||
This is the main repository of the Redox GitLab where the build system files are stored, this README is used to guide new developers.
|
||||
|
||||
## <a name="screenshots"> What it looks like </a>
|
||||
You can find the most important pages below:
|
||||
|
||||
- [Book](https://doc.redox-os.org/book/)
|
||||
- [Contribute](CONTRIBUTING.md)
|
||||
- [Hardware Compatibility](HARDWARE.md)
|
||||
- [Trying Out Redox](https://doc.redox-os.org/book/ch02-04-trying-out-redox.html)
|
||||
- [Building Redox](https://doc.redox-os.org/book/ch02-05-building-redox.html)
|
||||
- [Build System Documentation](https://doc.redox-os.org/book/ch08-06-build-system-reference.html)
|
||||
- [Developer FAQ](https://doc.redox-os.org/book/ch09-07-developer-faq.html)
|
||||
- [Chat/Discussions/Help](https://doc.redox-os.org/book/ch13-01-chat.html)
|
||||
|
||||
## Ecosystem
|
||||
|
||||
These are the most important repositories available on the Redox GitLab:
|
||||
|
||||
| Name (lexicographic order) | Maintainer
|
||||
|--------------------------------------------------------------------------------------|---------------------------
|
||||
| [acid (kernel integration tests)](https://gitlab.redox-os.org/redox-os/acid) | **@jackpot51**
|
||||
| [binutils](https://gitlab.redox-os.org/redox-os/binutils) | **@jackpot51**
|
||||
| [cookbook](https://gitlab.redox-os.org/redox-os/cookbook) | **@jackpot51** **@hatred_45** **@ids1024**
|
||||
| [coreutils](https://gitlab.redox-os.org/redox-os/coreutils) | **@jackpot51**
|
||||
| [extrautils](https://gitlab.redox-os.org/redox-os/extrautils) | **@jackpot51**
|
||||
| [games](https://gitlab.redox-os.org/redox-os/games) | **@fabiao**
|
||||
| [Ion (shell)](https://gitlab.redox-os.org/redox-os/ion) | **@jackpot51**
|
||||
| [ipcd](https://gitlab.redox-os.org/redox-os/ipcd) | **@jackpot51**
|
||||
| [kernel](https://gitlab.redox-os.org/redox-os/kernel) | **@jackpot51**
|
||||
| [libextra](https://gitlab.redox-os.org/redox-os/libextra) | **@jackpot51**
|
||||
| [libpager](https://gitlab.redox-os.org/redox-os/libpager) | **@jackpot51**
|
||||
| [netstack](https://gitlab.redox-os.org/redox-os/netstack) | **@jackpot51**
|
||||
| [netutils](https://gitlab.redox-os.org/redox-os/netutils) | **@jackpot51**
|
||||
| [orbclient (Orbital client)](https://gitlab.redox-os.org/redox-os/orbclient) | **@jackpot51** **@FloVanGH**
|
||||
| [orbdata](https://gitlab.redox-os.org/redox-os/orbdata) | **@jackpot51**
|
||||
| [orbgame (Orbital 2D game engine)](https://gitlab.redox-os.org/redox-os/orbgame) | **@FloVanGH**
|
||||
| [Orbital (windowing and compositing system)](https://gitlab.redox-os.org/redox-os/orbital) | **@jackpot51**
|
||||
| [orbtk (Orbital toolkit)](https://gitlab.redox-os.org/redox-os/orbtk) | **@FloVanGH**
|
||||
| [orbutils (Orbital utilities)](https://gitlab.redox-os.org/redox-os/orbutils) | **@jackpot51**
|
||||
| [pkgutils (current package manager)](https://gitlab.redox-os.org/redox-os/pkgutils) | **@jackpot51**
|
||||
| [ralloc](https://gitlab.redox-os.org/redox-os/ralloc) | **@jackpot51**
|
||||
| [RANSID (Rust ANSI driver)](https://gitlab.redox-os.org/redox-os/ransid) | **@jackpot51**
|
||||
| [redoxfs (default filesystem)](https://gitlab.redox-os.org/redox-os/redoxfs) | **@jackpot51**
|
||||
| [relibc (C Library in Rust)](https://gitlab.redox-os.org/redox-os/relibc) | **@jackpot51**
|
||||
| [small (stack String and other collections)](https://gitlab.redox-os.org/redox-os/small) | **@jackpot51**
|
||||
| [syscall](https://gitlab.redox-os.org/redox-os/syscall) | **@jackpot51**
|
||||
| [Sodium (Vim-inspired text editor)](https://gitlab.redox-os.org/redox-os/sodium) | **@jackpot51**
|
||||
| [The Redox book](https://gitlab.redox-os.org/redox-os/book) | **@hatred_45**
|
||||
| [userutils](https://gitlab.redox-os.org/redox-os/userutils) | **@jackpot51**
|
||||
|
||||
## What it looks like
|
||||
|
||||
<img alt="Redox" height="150" src="https://gitlab.redox-os.org/redox-os/assets/raw/master/screenshots/Senza%20titolo.jpeg">
|
||||
<img alt="Redox" height="150" src="https://gitlab.redox-os.org/redox-os/assets/raw/master/screenshots/redox running.jpeg">
|
||||
|
@ -36,137 +70,4 @@ Please make sure you use the **latest nightly** of `rustc` before building (for
|
|||
<img alt="Redox" height="150" src="https://gitlab.redox-os.org/redox-os/assets/raw/master/screenshots/Boot.png">
|
||||
<img alt="Redox" height="150" src="https://gitlab.redox-os.org/redox-os/assets/raw/master/screenshots/IMG_1459.PNG">
|
||||
|
||||
## <a name="ecosystem"> Ecosystem </a>
|
||||
|
||||
The ecosystem and software Redox OS provides is listed below.
|
||||
|
||||
| Name (lexicographic order) | Maintainer
|
||||
|--------------------------------------------------------------------------------------|---------------------------
|
||||
| [acid (kernel integration tests)](https://gitlab.redox-os.org/redox-os/acid) | **@jackpot51** **@NilSet**
|
||||
| [binutils](https://gitlab.redox-os.org/redox-os/binutils) | **vacant**
|
||||
| [cookbook](https://gitlab.redox-os.org/redox-os/cookbook) | **@jackpot51** **@ids1024** **@sajattack**
|
||||
| [coreutils](https://gitlab.redox-os.org/redox-os/coreutils) | **vacant**
|
||||
| [extrautils](https://gitlab.redox-os.org/redox-os/extrautils) | **vacant**
|
||||
| [games](https://gitlab.redox-os.org/redox-os/games) | **@enrico** (AKA **@HenryTheCat**) **@fabiao**
|
||||
| [Ion (shell)](https://gitlab.redox-os.org/redox-os/ion) | **@mmstick** **@stratact**
|
||||
| [ipcd](https://gitlab.redox-os.org/redox-os/ipcd) | **@jD91mZM2**
|
||||
| [kernel](https://gitlab.redox-os.org/redox-os/kernel) | **@jackpot51**
|
||||
| [libextra](https://gitlab.redox-os.org/redox-os/libextra) | **vacant**
|
||||
| [libpager](https://gitlab.redox-os.org/redox-os/libpager) | **vacant**
|
||||
| [netstack](https://gitlab.redox-os.org/redox-os/netstack) | **@batonius** **@dlrobertson**
|
||||
| [netutils](https://gitlab.redox-os.org/redox-os/netutils) | **@jackpot51**
|
||||
| [orbclient (Orbital client)](https://gitlab.redox-os.org/redox-os/orbclient) | **@jackpot51** **@FloVanGH**
|
||||
| [orbdata](https://gitlab.redox-os.org/redox-os/orbdata) | **@jackpot51**
|
||||
| [orbgame (Orbital 2D game engine)](https://gitlab.redox-os.org/redox-os/orbgame) | **@FloVanGH**
|
||||
| [Orbital (windowing and compositing system)](https://gitlab.redox-os.org/redox-os/orbital) | **@jackpot51**
|
||||
| [orbtk (Orbital toolkit)](https://gitlab.redox-os.org/redox-os/orbtk) | **@FloVanGH**
|
||||
| [orbutils (Orbital utilities)](https://gitlab.redox-os.org/redox-os/orbutils) | **@jackpot51**
|
||||
| [pkgutils (current package manager)](https://gitlab.redox-os.org/redox-os/pkgutils) | **@jackpot51**
|
||||
| [ralloc](https://gitlab.redox-os.org/redox-os/ralloc) | **@Tommoa** **@NilSet**
|
||||
| [RANSID (Rust ANSI driver)](https://gitlab.redox-os.org/redox-os/ransid) | **@jackpot51**
|
||||
| [redoxfs (old filesystem)](https://gitlab.redox-os.org/redox-os/redoxfs) | **@jackpot51**
|
||||
| [relibc (C Library in Rust)](https://gitlab.redox-os.org/redox-os/relibc) | **@jD91mZM2** **@sajattack** **@Tommoa** **@stratact**
|
||||
| [small (stack String and other collections)](https://gitlab.redox-os.org/redox-os/small) | **@Tommoa**
|
||||
| [syscall](https://gitlab.redox-os.org/redox-os/syscall) | **@jackpot51**
|
||||
| [Sodium (Vim-inspired text editor)](https://gitlab.redox-os.org/redox-os/sodium) | **vacant**
|
||||
| [TFS ((ticki) **T**he **F**ile **S**ystem)](https://gitlab.redox-os.org/redox-os/tfs) | **@Tommoa**
|
||||
| [The Redox book](https://gitlab.redox-os.org/redox-os/book) | **vacant**
|
||||
| [userutils](https://gitlab.redox-os.org/redox-os/userutils) | **@jackpot51**
|
||||
|
||||
## <a name="compile-help"> Help! Redox won't compile! </a>
|
||||
|
||||
Sometimes things go wrong when compiling. Try the following before opening an issue:
|
||||
|
||||
1. Run `rustup update`
|
||||
1. Run `make clean pull`.
|
||||
1. Make sure you have **the latest version of Rust nightly!** ([rustup.rs](https://www.rustup.rs) is recommended for managing Rust versions. If you already have it, run `rustup`).
|
||||
1. Update **GNU Make**, **NASM** and **QEMU/VirtualBox**.
|
||||
1. Pull the upstream master branch (`git remote add upstream git@gitlab.redox-os.org:redox-os/redox.git; git pull upstream master`).
|
||||
1. Update submodules (`git submodule update --recursive --init`).
|
||||
|
||||
and then rebuild!
|
||||
|
||||
## <a name="contributing"> Contributing to Redox </a>
|
||||
|
||||
If you're interested in this project, and you'd like to help us out, [here](CONTRIBUTING.md) is a list of ways you can do just that.
|
||||
|
||||
## <a name="cloning-building-running"> Cloning, Building and Running </a>
|
||||
|
||||
Redox is big, even compressed. Downloading the full history may take a lot of bandwidth, and can even be costly on some data plans. Clone at your own risk!
|
||||
|
||||
### <a name="quick-setup" /> Quick Setup </a>
|
||||
|
||||
```bash
|
||||
$ cd path/to/your/projects/folder/
|
||||
|
||||
# Run bootstrap setup
|
||||
$ curl -sf https://gitlab.redox-os.org/redox-os/redox/raw/master/bootstrap.sh -o bootstrap.sh && bash -e bootstrap.sh
|
||||
|
||||
# Change to project directory
|
||||
$ cd redox
|
||||
|
||||
# Build Redox
|
||||
$ make all
|
||||
|
||||
# Launch using QEMU
|
||||
$ make qemu
|
||||
# Launch using QEMU without using KVM (Kernel-based Virtual Machine). Try if QEMU gives an error.
|
||||
$ make qemu kvm=no
|
||||
```
|
||||
|
||||
#### QEMU with KVM
|
||||
|
||||
To use QEMU with KVM (Kernel-based Virtual Machine), which is faster than without KVM, you need a CPU with Intel® Virtualization Technology (Intel® VT) or AMD Virtualization™ (AMD-V™) support. Most systems have this disabled by default, so you may need to reboot, go into the BIOS, and enable it.
|
||||
|
||||
### <a name="manual-setup"> Manual Setup </a>
|
||||
|
||||
To manually clone, build and run Redox using a Unix-based host, run the following commands (with exceptions, be sure to read the comments):
|
||||
```bash
|
||||
$ cd path/to/your/projects/folder/
|
||||
|
||||
# HTTPS
|
||||
$ git clone https://gitlab.redox-os.org/redox-os/redox.git --origin upstream --recursive
|
||||
# SSH
|
||||
$ git clone git@gitlab.redox-os.org:redox-os/redox.git --origin upstream --recursive
|
||||
|
||||
$ cd redox/
|
||||
|
||||
# Install/update dependencies
|
||||
$ ./bootstrap.sh -d
|
||||
|
||||
# Install rustup.rs
|
||||
$ curl https://sh.rustup.rs -sSf | sh
|
||||
$ source $HOME/.cargo/env
|
||||
|
||||
# Install the sysroot manager Xargo and cargo-config
|
||||
$ cargo install xargo cargo-config
|
||||
|
||||
# For successive builds start here. If this is your first build, just continue
|
||||
|
||||
# Update git submodules
|
||||
$ git submodule update --recursive --init
|
||||
|
||||
# Build Redox
|
||||
$ make all
|
||||
|
||||
# Launch using QEMU
|
||||
$ make qemu
|
||||
|
||||
# Launch using QEMU without using KVM (Kernel-based Virtual Machine). Try if QEMU gives an error.
|
||||
$ make qemu kvm=no
|
||||
|
||||
# Launch using QEMU without using KVM (Kernel-based Virtual Machine) nor Graphics
|
||||
make qemu kvm=no vga=no
|
||||
```
|
||||
|
||||
### <a name="setup-using-docker"> Setup using Docker </a>
|
||||
We also provide docker image. After cloning this repository, please follow README under the `docker` directory.
|
||||
|
||||
### Updating the codebase using the Makefile
|
||||
To update the codebase run:
|
||||
|
||||
```
|
||||
make pull; make fetch
|
||||
```
|
||||
|
||||
`make pull` pulls and updates the submodules, and `make fetch` updates the sources for cookbook recipes.
|
||||
See [Redox in Action](https://www.redox-os.org/screens/) for photos and videos.
|
16
bochs.x86_64
16
bochs.x86_64
|
@ -1,16 +0,0 @@
|
|||
ata0-master: type=disk, path="build/livedisk.bin", mode=flat
|
||||
boot: disk
|
||||
com1: enabled=1, mode=file, dev=build/serial.log
|
||||
cpu: model=corei7_haswell_4770
|
||||
#e1000: enabled=1, mac=52:54:00:12:34:56 ethmod=vnet
|
||||
megs: 1024
|
||||
|
||||
magic_break: enabled=1
|
||||
display_library: x, options="gui_debug"
|
||||
|
||||
log: -
|
||||
debug: action=ignore
|
||||
info: action=report
|
||||
error: action=report
|
||||
panic: action=ask
|
||||
debugger_log: -
|
|
@ -1 +0,0 @@
|
|||
Subproject commit 1d201c4435ebad73e0248d02c8b254783b75eca5
|
|
@ -1 +0,0 @@
|
|||
Subproject commit 6c31909f75f3d707efa606e546113ee508be0748
|
|
@ -1 +0,0 @@
|
|||
Subproject commit e147b413eeb9eb7d01c85cfe1b6b6eea39c47a57
|
674
bootstrap.sh
674
bootstrap.sh
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,98 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
###########################################################################
|
||||
# #
|
||||
# Build the system, with a specified processor type and filesystem config #
|
||||
# #
|
||||
###########################################################################
|
||||
|
||||
usage()
|
||||
{
|
||||
echo "build.sh: Invoke make for a particular architecture and configuration."
|
||||
echo "Usage:"
|
||||
echo "./build.sh [-X | -A | -6 | -a ARCH] [-c CONFIG] [-f FILESYSTEM_CONFIG] TARGET..."
|
||||
echo " -X Equivalent to -a x86_64."
|
||||
echo " -A Equivalent to -a aarch64."
|
||||
echo " -6 Equivalent to -a i686."
|
||||
echo " -a ARCH: Processor Architecture. Normally one of x86_64, aarch64 or"
|
||||
echo " i686. ARCH is not checked, so you can add a new architecture."
|
||||
echo " Defaults to the directory containing the FILESYSTEM_CONFIG file,"
|
||||
echo " or x86_64 if no FILESYSTEM_CONFIG is specified."
|
||||
echo " -c CONFIG: The name of the config, e.g. desktop, server or demo."
|
||||
echo " Determines the name of the image, build/ARCH/CONFIG/harddrive.img"
|
||||
echo " e.g. build/x86_64/desktop/harddrive.img"
|
||||
echo " Determines the name of FILESYSTEM_CONFIG if none is specified."
|
||||
echo " Defaults to the basename of FILESYSTEM_CONFIG, or 'desktop'"
|
||||
echo " if FILESYSTEM_CONFIG is not specified."
|
||||
echo " -f FILESYSTEM_CONFIG:"
|
||||
echo " The config file to use. It can be in any location."
|
||||
echo " However, if the file is not in a directory named x86_64, aarch64"
|
||||
echo " or i686, you must specify the architecture."
|
||||
echo " If -f is not specified, FILESYSTEM_CONFIG is set to"
|
||||
echo " config/ARCH/CONFIG.toml"
|
||||
echo " If you specify both CONFIG and FILESYSTEM_CONFIG, it is not"
|
||||
echo " necessary that they match, but it is recommended."
|
||||
echo " Examples: ./build.sh -c demo live - make build/x86_64/demo/livedisk.iso"
|
||||
echo " ./build.sh -6 qemu - make build/i686/desktop/harddrive.img and"
|
||||
echo " and run it in qemu"
|
||||
echo " NOTE: If you do not change ARCH or CONFIG very often, edit mk/config.mk"
|
||||
echo " and set ARCH and FILESYSTEM_CONFIG. You only need to use this"
|
||||
echo " script when you want to override them."
|
||||
}
|
||||
|
||||
if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then
|
||||
usage
|
||||
exit
|
||||
fi
|
||||
|
||||
defaultarch="x86_64"
|
||||
defaultname="desktop"
|
||||
ARCH=""
|
||||
CONFIG_NAME=""
|
||||
FILESYSTEM_CONFIG=""
|
||||
|
||||
while getopts ":c:f:a:dhXA6" opt
|
||||
do
|
||||
case "$opt" in
|
||||
a) ARCH="$OPTARG";;
|
||||
c) CONFIG_NAME="$OPTARG";;
|
||||
f) FILESYSTEM_CONFIG="$OPTARG";;
|
||||
X) ARCH="x86_64";;
|
||||
A) ARCH="aarch64";;
|
||||
6) ARCH="i686";;
|
||||
h) usage;;
|
||||
\?) echo "Unknown option -$OPTARG, try -h for help"; exit;;
|
||||
:) echo "-$OPTARG requires a value"; exit;;
|
||||
esac
|
||||
done
|
||||
shift $((OPTIND -1))
|
||||
|
||||
if [ -z "$ARCH" ] && [ -n "$FILESYSTEM_CONFIG" ]; then
|
||||
dirname=`dirname "$FILESYSTEM_CONFIG"`
|
||||
ARCH=`basename $dirname`
|
||||
case "$ARCH" in
|
||||
x86_64) : ;;
|
||||
aarch64) : ;;
|
||||
i686) : ;;
|
||||
\?) ARCH=""; echo "Unknown Architecture, please specify x86_64, aarch64 or i686";;
|
||||
esac
|
||||
fi
|
||||
|
||||
if [ -z "$config_name" ] && [ -n "$FILESYSTEM_CONFIG" ]; then
|
||||
CONFIG_NAME=`basename "$FILESYSTEM_CONFIG" .toml`
|
||||
fi
|
||||
|
||||
if [ -z "$ARCH" ]; then
|
||||
ARCH="$defaultarch"
|
||||
fi
|
||||
|
||||
if [ -z "$CONFIG_NAME" ]; then
|
||||
CONFIG_NAME="$defaultname"
|
||||
fi
|
||||
|
||||
if [ -z "$FILESYSTEM_CONFIG" ]; then
|
||||
FILESYSTEM_CONFIG="config/$ARCH/$CONFIG_NAME.toml"
|
||||
fi
|
||||
|
||||
export ARCH CONFIG_NAME FILESYSTEM_CONFIG
|
||||
make $@
|
|
@ -0,0 +1,3 @@
|
|||
# Configuration for using acid
|
||||
|
||||
include = ["../acid.toml"]
|
|
@ -12,43 +12,50 @@ atk = {}
|
|||
audiod = {}
|
||||
autoconf = {}
|
||||
automake = {}
|
||||
#bash = {} # setrlimit
|
||||
bash = {}
|
||||
binutils = {}
|
||||
bootloader = {}
|
||||
bootstrap = {}
|
||||
ca-certificates = {}
|
||||
cairo = {}
|
||||
cairodemo = {}
|
||||
#cargo = {} # curl-config not found
|
||||
#calculator = {}
|
||||
cargo = {}
|
||||
cleye = {}
|
||||
cmatrix = {}
|
||||
#cmatrix = {} # needs ncursesw now
|
||||
contain = {}
|
||||
coreutils = {}
|
||||
cosmic-edit = {}
|
||||
cosmic-icons = {}
|
||||
cosmic-text = {}
|
||||
cpal = {}
|
||||
curl = {}
|
||||
dash = {}
|
||||
diffutils = {}
|
||||
dosbox = {}
|
||||
drivers = {}
|
||||
#drivers-041 = {}
|
||||
#duktape = {} # strptime
|
||||
drivers-initfs = {}
|
||||
duktape = {}
|
||||
eduke32 = {}
|
||||
escalated = {}
|
||||
exampled = {}
|
||||
expat = {}
|
||||
extrautils = {}
|
||||
#fal
|
||||
#fd = {} # ctrlc-3.1.1
|
||||
ffmpeg = {}
|
||||
#ffmpeg6 = {} # undefined references
|
||||
findutils = {}
|
||||
fontconfig = {}
|
||||
#freeciv = {}
|
||||
freedoom = {}
|
||||
#freeglut = {}
|
||||
freetype = {}
|
||||
freepats = {}
|
||||
freetype2 = {}
|
||||
#friar = {} # mio patch
|
||||
fribidi = {}
|
||||
#game-2048 = {} # rustc-serialize
|
||||
games = {}
|
||||
#gawk = {} # langinfo.h
|
||||
gcc = {}
|
||||
gcc13 = {}
|
||||
gdbserver = {}
|
||||
#gdk-pixbuf = {} # shared-mime-info
|
||||
gears = {}
|
||||
|
@ -66,7 +73,10 @@ gnu-make = {}
|
|||
harfbuzz = {}
|
||||
#hematite = {} # needs crate patches for redox-unix
|
||||
init = {}
|
||||
initfs = {}
|
||||
installer = {}
|
||||
installer-gui = {}
|
||||
intel-one-mono = {}
|
||||
ion = {}
|
||||
ipcd = {}
|
||||
jansson = {}
|
||||
|
@ -75,6 +85,7 @@ keyboard-sfx = {}
|
|||
lci = {}
|
||||
libc-bench = {}
|
||||
libffi = {}
|
||||
libgmp = {}
|
||||
libiconv = {}
|
||||
libjpeg = {}
|
||||
libogg = {}
|
||||
|
@ -85,12 +96,13 @@ libvorbis = {}
|
|||
libxml2 = {}
|
||||
llvm = {}
|
||||
logd = {}
|
||||
#lua = {} # tmpnam
|
||||
lua54 = {}
|
||||
#mdp = {} # ncursesw
|
||||
mesa = {}
|
||||
mesa_glu = {}
|
||||
#mgba = {} # no longer builds binary
|
||||
mesa-glu = {}
|
||||
mgba = {}
|
||||
#miniserve = {} # actix
|
||||
nano = {}
|
||||
nasm = {}
|
||||
#ncdu = {} # fails to link with ncurses
|
||||
ncurses = {}
|
||||
|
@ -99,13 +111,12 @@ netdb = {}
|
|||
netstack = {}
|
||||
netsurf = {}
|
||||
netutils = {}
|
||||
#neverball = {} # error finding SDL includes
|
||||
neverball = {}
|
||||
#newlib = {} # obsolete
|
||||
#newlibtest = {} # obsolete
|
||||
nghttp2 = {}
|
||||
nulld = {}
|
||||
openjazz = {}
|
||||
openssl = {}
|
||||
openssl1 = {}
|
||||
openttd = {}
|
||||
openttd-opengfx = {}
|
||||
openttd-openmsx = {}
|
||||
|
@ -115,67 +126,75 @@ orbdata = {}
|
|||
orbital = {}
|
||||
orbterm = {}
|
||||
orbutils = {}
|
||||
orbutils-background = {}
|
||||
orbutils-launcher = {}
|
||||
orbutils-orblogin = {}
|
||||
#orbutils-background = {} # needs recipe update
|
||||
#orbutils-launcher = {} # needs recipe update
|
||||
#orbutils-orblogin = {} # needs recipe update
|
||||
osdemo = {}
|
||||
pango = {}
|
||||
#pango = {} # undefined references to std::__throw_system_error(int)
|
||||
#pastel = {} # needs crate patches for redox-unix
|
||||
patch = {}
|
||||
#pathfinder = {} # servo-fontconfig
|
||||
#pciids = {}
|
||||
pcre = {}
|
||||
perg = {}
|
||||
periodictable = {}
|
||||
#perl = {} # ctermid, tempnam, ttyname
|
||||
pixelcannon = {}
|
||||
pixman = {}
|
||||
#pkgar = {} # uses virtual Cargo.toml, needs recipe update
|
||||
pkg-config = {}
|
||||
pkgutils = {}
|
||||
pop-icon-theme = {}
|
||||
#powerline = {} # dirs
|
||||
prboom = {}
|
||||
procedural-wallpapers-rs = {}
|
||||
ptyd = {}
|
||||
#python = {} # getaddrinfo
|
||||
#qemu = {}
|
||||
randd = {}
|
||||
ramfs = {}
|
||||
randd = {}
|
||||
readline = {}
|
||||
redoxerd = {}
|
||||
redox-fatfs = {}
|
||||
redoxfs = {}
|
||||
#redox-fatfs = {}
|
||||
#redox-ssh = {}
|
||||
redox-games = {}
|
||||
redox-ssh = {}
|
||||
relibc = {}
|
||||
#relibc-tests = {}
|
||||
#relibc-tests = {} # madvise link error
|
||||
resist = {}
|
||||
#retroarch = {} # OS_TLSIndex not declared
|
||||
ripgrep = {}
|
||||
rodioplay = {}
|
||||
rs-nes = {}
|
||||
#rust = {}
|
||||
rust = {}
|
||||
rust64 = {}
|
||||
rust-cairo = {}
|
||||
rust-cairo-demo = {}
|
||||
rustual-boy = {}
|
||||
schismtracker = {}
|
||||
scummvm = {}
|
||||
sdl = {}
|
||||
sdl-gfx = {}
|
||||
#sdl-player = {} # wctype_t
|
||||
sdl1 = {}
|
||||
sdl1-image = {}
|
||||
sdl1-mixer = {}
|
||||
sdl1-ttf = {}
|
||||
sdl2 = {}
|
||||
sdl2_gears = {}
|
||||
sdl2_image = {}
|
||||
sdl2_mixer = {}
|
||||
sdl2_ttf = {}
|
||||
sdl_gfx = {}
|
||||
sdl_image = {}
|
||||
sdl_mixer = {}
|
||||
sdl-player = {}
|
||||
#sdl_ttf = {} # configure patch needs to be updated
|
||||
sdl2-gears = {}
|
||||
sdl2-image = {}
|
||||
sdl2-mixer = {}
|
||||
sdl2-ttf = {}
|
||||
sed = {}
|
||||
#servo = {} # some more crates to port
|
||||
#shared-mime-info = {} # intltool-update out of date
|
||||
shellharden = {}
|
||||
shellstorm = {}
|
||||
smith = {}
|
||||
sodium = {}
|
||||
sopwith = {}
|
||||
#ssh = {}
|
||||
strace = {}
|
||||
#syobonaction = {} # sdl_ttf errors
|
||||
syobonaction = {}
|
||||
terminfo = {}
|
||||
#termplay = {} # backtrace cannot find link.h
|
||||
timidity = {}
|
||||
|
@ -183,10 +202,12 @@ ttf-hack = {}
|
|||
userutils = {}
|
||||
uutils = {}
|
||||
vice = {}
|
||||
#vim = {} # stack_t not matching
|
||||
vim = {}
|
||||
vttest = {}
|
||||
vvvvvv = {}
|
||||
#webrender = {} # unwind
|
||||
winit = {}
|
||||
#wesnoth = {}
|
||||
#winit = {} # tzset
|
||||
xz = {}
|
||||
zerod = {}
|
||||
zlib = {}
|
|
@ -0,0 +1,14 @@
|
|||
# Default desktop configuration
|
||||
|
||||
include = ["../desktop-minimal.toml"]
|
||||
|
||||
# Override the default settings here
|
||||
|
||||
# General settings
|
||||
[general]
|
||||
# Filesystem size in MiB
|
||||
# filesystem_size = 1024
|
||||
|
||||
# Package settings
|
||||
[packages]
|
||||
# example = {}
|
|
@ -0,0 +1,10 @@
|
|||
# Minimal configuration
|
||||
|
||||
include = ["../../server-minimal.toml"]
|
||||
|
||||
# General settings
|
||||
[general]
|
||||
# Filesystem size in MiB
|
||||
filesystem_size = 256
|
||||
# EFI partition size in MiB
|
||||
efi_partition_size = 128
|
|
@ -0,0 +1,3 @@
|
|||
# Configuration for using resist
|
||||
|
||||
include = ["../resist.toml"]
|
|
@ -0,0 +1,14 @@
|
|||
# Minimal configuration
|
||||
|
||||
include = ["../server-minimal.toml"]
|
||||
|
||||
# Override the default settings here
|
||||
|
||||
# General settings
|
||||
[general]
|
||||
# Filesystem size in MiB
|
||||
# filesystem_size = 1024
|
||||
|
||||
# Package settings
|
||||
[packages]
|
||||
# example = {}
|
215
config/acid.toml
215
config/acid.toml
|
@ -1,223 +1,26 @@
|
|||
# This is the default configuration file
|
||||
# Configuration for using acid
|
||||
|
||||
include = ["base.toml"]
|
||||
|
||||
# General settings
|
||||
[general]
|
||||
# Do not prompt if settings are not defined
|
||||
prompt = false
|
||||
# Filesystem size in MiB
|
||||
filesystem_size = 256
|
||||
|
||||
# Package settings
|
||||
[packages]
|
||||
acid = {}
|
||||
#audiod = {}
|
||||
#autoconf = {}
|
||||
#automake = {}
|
||||
#bash = {}
|
||||
#binutils = {}
|
||||
#ca-certificates = {}
|
||||
#cairo = {}
|
||||
#cairodemo = {}
|
||||
#cargo = {}
|
||||
#cleye = {}
|
||||
#cmatrix = {}
|
||||
#contain = {}
|
||||
coreutils = {}
|
||||
#cpal = {}
|
||||
#curl = {}
|
||||
#dash = {}
|
||||
#diffutils = {}
|
||||
#dosbox = {}
|
||||
#drivers = {}
|
||||
#drivers-041 = {}
|
||||
#duktape = {}
|
||||
#eduke32 = {}
|
||||
#exampled = {}
|
||||
#expat = {}
|
||||
#extrautils = {}
|
||||
#fd = {}
|
||||
#ffmpeg = {}
|
||||
#findutils = {}
|
||||
#freeciv = {}
|
||||
#freedoom = {}
|
||||
#freeglut = {}
|
||||
#freetype = {}
|
||||
#friar = {} # mio patch
|
||||
#game-2048 = {}
|
||||
#games = {}
|
||||
#gawk = {}
|
||||
#gcc = {}
|
||||
#gears = {}
|
||||
#generaluser-gs = {}
|
||||
#gettext = {}
|
||||
#gigalomania = {}
|
||||
#git = {}
|
||||
#glib = {}
|
||||
#glium = {}
|
||||
#glutin = {}
|
||||
#gnu-binutils = {}
|
||||
#gnu-grep = {}
|
||||
#gnu-make = {}
|
||||
#gstreamer = {}
|
||||
#harfbuzz = {}
|
||||
#hematite = {}
|
||||
#init = {}
|
||||
#installer = {}
|
||||
#ion = {}
|
||||
ipcd = {}
|
||||
#jansson = {}
|
||||
#keyboard-sfx = {}
|
||||
#lci = {}
|
||||
#libc-bench = {}
|
||||
#libffi = {}
|
||||
#libiconv = {}
|
||||
#libjpeg = {}
|
||||
#liborbital = {}
|
||||
#libpng = {}
|
||||
#libsodium = {}
|
||||
#llvm = {}
|
||||
logd = {}
|
||||
#lua = {}
|
||||
#mdp = {}
|
||||
#mesa = {}
|
||||
#mesa_glu = {}
|
||||
#miniserve = {}
|
||||
#nasm = {}
|
||||
#ncdu = {}
|
||||
#ncurses = {}
|
||||
#ncursesw = {}
|
||||
#netdb = {}
|
||||
#netstack = {}
|
||||
#netsurf = {}
|
||||
#netutils = {}
|
||||
#newlib = {}
|
||||
#newlibtest = {}
|
||||
#nulld = {}
|
||||
#openjazz = {}
|
||||
#openssl = {}
|
||||
#openttd = {}
|
||||
#openttd-opengfx = {}
|
||||
#openttd-openmsx = {}
|
||||
#openttd-opensfx = {}
|
||||
#orbdata = {}
|
||||
#orbital = {}
|
||||
#orbterm = {}
|
||||
#orbutils = {}
|
||||
#osdemo = {}
|
||||
#pastel = {}
|
||||
#patch = {}
|
||||
#pciids = {}
|
||||
#pcre = {}
|
||||
#periodictable = {}
|
||||
#perl = {}
|
||||
#pixelcannon = {}
|
||||
#pixman = {}
|
||||
#pkgutils = {}
|
||||
#powerline = {}
|
||||
#prboom = {}
|
||||
ptyd = {}
|
||||
#python = {}
|
||||
#qemu = {}
|
||||
#randd = {}
|
||||
#readline = {} # ncurses
|
||||
#redoxfs = {}
|
||||
#redox-ssh = {}
|
||||
#relibc = {}
|
||||
#ripgrep = {}
|
||||
#rodioplay = {}
|
||||
#rs-nes = {}
|
||||
#rust = {}
|
||||
#rust64 = {}
|
||||
#rust-cairo = {}
|
||||
#rust-cairo-demo = {}
|
||||
#rustual-boy = {}
|
||||
#schismtracker = {}
|
||||
#scummvm = {}
|
||||
#sdl = {}
|
||||
#sdl2 = {}
|
||||
#sdl_gfx = {}
|
||||
#sdl_image = {}
|
||||
#sdl_mixer = {}
|
||||
#sdl_ttf = {}
|
||||
#sdl-player = {}
|
||||
#sed = {}
|
||||
#servo = {}
|
||||
#shellstorm = {}
|
||||
#smith = {}
|
||||
#sodium = {}
|
||||
#sopwith = {}
|
||||
#ssh = {}
|
||||
#syobonaction = {}
|
||||
#terminfo = {}
|
||||
#termplay = {}
|
||||
#timidity = {}
|
||||
#ttf-hack = {}
|
||||
#userutils = {}
|
||||
#uutils = {}
|
||||
#vim = {}
|
||||
#vttest = {}
|
||||
#webrender = {}
|
||||
#winit = {}
|
||||
#xz = {}
|
||||
#zerod = {}
|
||||
#zlib = {}
|
||||
|
||||
# User settings
|
||||
[users.root]
|
||||
password = "password"
|
||||
uid = 0
|
||||
gid = 0
|
||||
name = "root"
|
||||
home = "/root"
|
||||
|
||||
[users.user]
|
||||
# Password is unset
|
||||
password = ""
|
||||
ion = {}
|
||||
|
||||
[[files]]
|
||||
path = "/etc/init.d/00_base"
|
||||
data = """
|
||||
ipcd
|
||||
logd
|
||||
ptyd
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/init.d/10_acid"
|
||||
path = "/usr/lib/init.d/10_acid"
|
||||
data = """
|
||||
export RUST_BACKTRACE full
|
||||
acid
|
||||
acid create_test
|
||||
acid switch
|
||||
acid tls
|
||||
acid thread
|
||||
shutdown
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/usr/bin"
|
||||
data = "/bin"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/usr/games"
|
||||
data = "/games"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/usr/include"
|
||||
data = "/include"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/usr/lib"
|
||||
data = "/lib"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/usr/share"
|
||||
data = "/share"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/tmp"
|
||||
data = ""
|
||||
directory= true
|
||||
# 0o1777
|
||||
mode = 1023
|
||||
|
|
|
@ -0,0 +1,168 @@
|
|||
# Base configuration: This configuration is meant to be included by
|
||||
# other configurations rather than use directly. It is the greatest
|
||||
# common divisor of all other configurations and misses several
|
||||
# parts necessary to create a bootable system.
|
||||
|
||||
# General settings
|
||||
[general]
|
||||
# Do not prompt if settings are not defined
|
||||
prompt = false
|
||||
|
||||
[packages]
|
||||
bootloader = {}
|
||||
bootstrap = {}
|
||||
escalated = {}
|
||||
initfs = {}
|
||||
ipcd = {}
|
||||
kernel = {}
|
||||
ptyd = {}
|
||||
uutils = {}
|
||||
|
||||
## Configuration files
|
||||
[[files]]
|
||||
path = "/usr/lib/init.d/00_base"
|
||||
data = """
|
||||
# clear and recreate tmpdir with 0o1777 permission
|
||||
rm -r /tmp
|
||||
mkdir -m a=rwxt /tmp
|
||||
|
||||
ipcd
|
||||
ptyd
|
||||
escalated
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/hostname"
|
||||
data = """
|
||||
redox
|
||||
"""
|
||||
|
||||
# https://www.freedesktop.org/software/systemd/man/latest/os-release.html
|
||||
[[files]]
|
||||
path = "/usr/lib/os-release"
|
||||
data = """
|
||||
PRETTY_NAME="Redox OS 0.8.0"
|
||||
NAME="Redox OS"
|
||||
VERSION_ID="0.8.0"
|
||||
VERSION="0.8.0"
|
||||
ID="redox-os"
|
||||
|
||||
HOME_URL="https://redox-os.org/"
|
||||
DOCUMENTATION_URL="https://redox-os.org/docs/"
|
||||
SUPPORT_URL="https://redox-os.org/community/"
|
||||
"""
|
||||
# FIXME maybe add VARIANT= and VARIANT_ID= keys depending on the chosen configuration?
|
||||
|
||||
[[files]]
|
||||
path = "/etc/os-release"
|
||||
data = "../usr/lib/os-release"
|
||||
symlink = true
|
||||
|
||||
## Symlinks for usrmerge
|
||||
[[files]]
|
||||
path = "/usr"
|
||||
data = ""
|
||||
directory = true
|
||||
mode = 0o755
|
||||
|
||||
[[files]]
|
||||
path = "/usr/bin"
|
||||
data = ""
|
||||
directory = true
|
||||
mode = 0o755
|
||||
|
||||
[[files]]
|
||||
path = "/bin"
|
||||
data = "usr/bin"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/usr/include"
|
||||
data = ""
|
||||
directory = true
|
||||
mode = 0o755
|
||||
|
||||
[[files]]
|
||||
path = "/include"
|
||||
data = "usr/include"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/usr/lib"
|
||||
data = ""
|
||||
directory = true
|
||||
mode = 0o755
|
||||
|
||||
[[files]]
|
||||
path = "/lib"
|
||||
data = "usr/lib"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/usr/share"
|
||||
data = ""
|
||||
directory = true
|
||||
mode = 0o755
|
||||
|
||||
[[files]]
|
||||
path = "/share"
|
||||
data = "usr/share"
|
||||
symlink = true
|
||||
|
||||
## Device file symlinks
|
||||
[[files]]
|
||||
path = "/dev/null"
|
||||
data = "null:"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/dev/random"
|
||||
data = "rand:"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/dev/urandom"
|
||||
data = "rand:"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/dev/zero"
|
||||
data = "zero:"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/dev/tty"
|
||||
data = "libc:tty"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/dev/stdin"
|
||||
data = "libc:stdin"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/dev/stdout"
|
||||
data = "libc:stdout"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/dev/stderr"
|
||||
data = "libc:stderr"
|
||||
symlink = true
|
||||
|
||||
# User settings
|
||||
[users.root]
|
||||
password = "password"
|
||||
uid = 0
|
||||
gid = 0
|
||||
name = "root"
|
||||
home = "/root"
|
||||
|
||||
[users.user]
|
||||
# Password is unset
|
||||
password = ""
|
||||
|
||||
# Group settings
|
||||
[groups.sudo]
|
||||
gid = 1
|
||||
members = ["user"]
|
|
@ -1,287 +0,0 @@
|
|||
# This is the default configuration file
|
||||
|
||||
# General settings
|
||||
[general]
|
||||
# Do not prompt if settings are not defined
|
||||
prompt = false
|
||||
|
||||
# Package settings
|
||||
[packages]
|
||||
#acid = {}
|
||||
#audiod = {}
|
||||
#autoconf = {}
|
||||
#automake = {}
|
||||
#bash = {}
|
||||
#binutils = {}
|
||||
#ca-certificates = {}
|
||||
#cairo = {}
|
||||
#cairodemo = {}
|
||||
#cargo = {}
|
||||
#cleye = {}
|
||||
#cmatrix = {}
|
||||
#contain = {}
|
||||
#coreutils = {}
|
||||
#cpal = {}
|
||||
#curl = {}
|
||||
#dash = {}
|
||||
#diffutils = {}
|
||||
#dosbox = {}
|
||||
#drivers = {}
|
||||
#drivers-041 = {}
|
||||
#duktape = {}
|
||||
#eduke32 = {}
|
||||
#exampled = {}
|
||||
#expat = {}
|
||||
#extrautils = {}
|
||||
#fd = {}
|
||||
#ffmpeg = {}
|
||||
#findutils = {}
|
||||
#freeciv = {}
|
||||
#freedoom = {}
|
||||
#freeglut = {}
|
||||
#freetype = {}
|
||||
#friar = {} # mio patch
|
||||
#game-2048 = {}
|
||||
#games = {}
|
||||
#gawk = {}
|
||||
#gcc = {}
|
||||
#gears = {}
|
||||
#generaluser-gs = {}
|
||||
#gettext = {}
|
||||
#gigalomania = {}
|
||||
#git = {}
|
||||
#glib = {}
|
||||
#glium = {}
|
||||
#glutin = {}
|
||||
#gnu-binutils = {}
|
||||
#gnu-grep = {}
|
||||
#gnu-make = {}
|
||||
#gstreamer = {}
|
||||
#harfbuzz = {}
|
||||
#hematite = {}
|
||||
#init = {}
|
||||
#installer = {}
|
||||
ion = {}
|
||||
ipcd = {}
|
||||
#jansson = {}
|
||||
#keyboard-sfx = {}
|
||||
#lci = {}
|
||||
#libc-bench = {}
|
||||
#libffi = {}
|
||||
#libiconv = {}
|
||||
#libjpeg = {}
|
||||
#liborbital = {}
|
||||
#libpng = {}
|
||||
#libsodium = {}
|
||||
#llvm = {}
|
||||
#logd = {}
|
||||
#lua = {}
|
||||
#mdp = {}
|
||||
#mesa = {}
|
||||
#mesa_glu = {}
|
||||
#miniserve = {}
|
||||
#nasm = {}
|
||||
#ncdu = {}
|
||||
#ncurses = {}
|
||||
#ncursesw = {}
|
||||
#netdb = {}
|
||||
#netstack = {}
|
||||
#netsurf = {}
|
||||
#netutils = {}
|
||||
#newlib = {}
|
||||
#newlibtest = {}
|
||||
#nulld = {}
|
||||
#openjazz = {}
|
||||
#openssl = {}
|
||||
#openttd = {}
|
||||
#openttd-opengfx = {}
|
||||
#openttd-openmsx = {}
|
||||
#openttd-opensfx = {}
|
||||
orbdata = {}
|
||||
orbital = {}
|
||||
orbterm = {}
|
||||
#orbutils = {}
|
||||
orbutils-background = {}
|
||||
orbutils-launcher = {}
|
||||
orbutils-orblogin = {}
|
||||
#osdemo = {}
|
||||
#pastel = {}
|
||||
#patch = {}
|
||||
#pciids = {}
|
||||
#pcre = {}
|
||||
#periodictable = {}
|
||||
#perl = {}
|
||||
#pixelcannon = {}
|
||||
#pixman = {}
|
||||
#pkgutils = {}
|
||||
#powerline = {}
|
||||
#prboom = {}
|
||||
ptyd = {}
|
||||
#python = {}
|
||||
#qemu = {}
|
||||
#randd = {}
|
||||
#readline = {} # ncurses
|
||||
#redoxfs = {}
|
||||
#redox-ssh = {}
|
||||
#relibc = {}
|
||||
#ripgrep = {}
|
||||
#rodioplay = {}
|
||||
#rs-nes = {}
|
||||
#rust = {}
|
||||
#rust64 = {}
|
||||
#rust-cairo = {}
|
||||
#rust-cairo-demo = {}
|
||||
#rustual-boy = {}
|
||||
#schismtracker = {}
|
||||
#scummvm = {}
|
||||
#sdl = {}
|
||||
#sdl2 = {}
|
||||
#sdl_gfx = {}
|
||||
#sdl_image = {}
|
||||
#sdl_mixer = {}
|
||||
#sdl_ttf = {}
|
||||
#sdl-player = {}
|
||||
#sed = {}
|
||||
#servo = {}
|
||||
#shellstorm = {}
|
||||
#smith = {}
|
||||
#sodium = {}
|
||||
#sopwith = {}
|
||||
#ssh = {}
|
||||
#syobonaction = {}
|
||||
#terminfo = {}
|
||||
#termplay = {}
|
||||
#timidity = {}
|
||||
#ttf-hack = {}
|
||||
#userutils = {}
|
||||
uutils = {}
|
||||
#vim = {}
|
||||
#vttest = {}
|
||||
#webrender = {}
|
||||
#winit = {}
|
||||
#xz = {}
|
||||
#zerod = {}
|
||||
#zlib = {}
|
||||
|
||||
# User settings
|
||||
[users.root]
|
||||
password = "password"
|
||||
uid = 0
|
||||
gid = 0
|
||||
name = "root"
|
||||
home = "/root"
|
||||
|
||||
[users.user]
|
||||
# Password is unset
|
||||
password = ""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/init.d/00_base"
|
||||
data = """
|
||||
ipcd
|
||||
#logd
|
||||
ptyd
|
||||
#pcid /etc/pcid.d/
|
||||
"""
|
||||
|
||||
# [[files]]
|
||||
# path = "/etc/init.d/10_net"
|
||||
# data = """
|
||||
# smolnetd
|
||||
# dnsd
|
||||
# dhcpd -b
|
||||
# """
|
||||
|
||||
[[files]]
|
||||
path = "/etc/init.d/20_orbital"
|
||||
data = """
|
||||
#audiod
|
||||
orbital display:2/activate orblogin launcher
|
||||
"""
|
||||
|
||||
# [[files]]
|
||||
# path = "/etc/init.d/30_console"
|
||||
# data = """
|
||||
# getty display:2
|
||||
# getty debug: -J
|
||||
# """
|
||||
#
|
||||
# [[files]]
|
||||
# path = "/etc/net/dns"
|
||||
# data = """
|
||||
# 208.67.222.222
|
||||
# """
|
||||
#
|
||||
# [[files]]
|
||||
# path = "/etc/net/ip"
|
||||
# data = """
|
||||
# 10.0.2.15
|
||||
# """
|
||||
#
|
||||
# [[files]]
|
||||
# path = "/etc/net/ip_router"
|
||||
# data = """
|
||||
# 10.0.2.2
|
||||
# """
|
||||
#
|
||||
# [[files]]
|
||||
# path = "/etc/net/ip_subnet"
|
||||
# data = """
|
||||
# 255.255.255.0
|
||||
# """
|
||||
#
|
||||
# [[files]]
|
||||
# path = "/etc/net/mac"
|
||||
# data = """
|
||||
# 54-52-00-ab-cd-ef
|
||||
# """
|
||||
#
|
||||
# [[files]]
|
||||
# path = "/etc/pkg.d/50_redox"
|
||||
# data = "https://static.redox-os.org/pkg"
|
||||
|
||||
[[files]]
|
||||
path = "/etc/group"
|
||||
data = """
|
||||
root;0;root
|
||||
user;1000;user
|
||||
sudo;1;user
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/hostname"
|
||||
data = """
|
||||
redox
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/usr/bin"
|
||||
data = "/bin"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/usr/games"
|
||||
data = "/games"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/usr/include"
|
||||
data = "/include"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/usr/lib"
|
||||
data = "/lib"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/usr/share"
|
||||
data = "/share"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/tmp"
|
||||
data = ""
|
||||
directory= true
|
||||
# 0o1777
|
||||
mode = 1023
|
|
@ -0,0 +1,30 @@
|
|||
# Default desktop configuration
|
||||
|
||||
include = ["server-minimal.toml"]
|
||||
|
||||
# General settings
|
||||
[general]
|
||||
# Filesystem size in MiB
|
||||
filesystem_size = 128
|
||||
|
||||
# Package settings
|
||||
[packages]
|
||||
drivers = {}
|
||||
orbdata = {}
|
||||
orbital = {}
|
||||
orbterm = {}
|
||||
orbutils-background = {}
|
||||
orbutils-launcher = {}
|
||||
orbutils-orblogin = {}
|
||||
|
||||
[[files]]
|
||||
path = "/usr/lib/init.d/00_drivers"
|
||||
data = """
|
||||
pcid /etc/pcid.d/
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/usr/lib/init.d/20_orbital"
|
||||
data = """
|
||||
orbital orblogin launcher
|
||||
"""
|
|
@ -1,311 +1,33 @@
|
|||
# This is the default configuration file
|
||||
# Default desktop configuration
|
||||
|
||||
include = ["server.toml"]
|
||||
|
||||
# General settings
|
||||
[general]
|
||||
# Do not prompt if settings are not defined
|
||||
prompt = false
|
||||
# Filesystem size in MiB
|
||||
filesystem_size = 512
|
||||
|
||||
# Package settings
|
||||
[packages]
|
||||
#acid = {}
|
||||
audiod = {}
|
||||
#autoconf = {}
|
||||
#automake = {}
|
||||
#bash = {}
|
||||
#binutils = {}
|
||||
ca-certificates = {}
|
||||
#cairo = {}
|
||||
#cairodemo = {}
|
||||
#cargo = {}
|
||||
#cleye = {}
|
||||
#cmatrix = {}
|
||||
contain = {}
|
||||
coreutils = {}
|
||||
#cpal = {}
|
||||
#curl = {}
|
||||
dash = {}
|
||||
#diffutils = {}
|
||||
#dosbox = {}
|
||||
drivers = {}
|
||||
#drivers-041 = {}
|
||||
#duktape = {}
|
||||
#eduke32 = {}
|
||||
#exampled = {}
|
||||
#expat = {}
|
||||
extrautils = {}
|
||||
#fd = {}
|
||||
#ffmpeg = {}
|
||||
findutils = {}
|
||||
#freeciv = {}
|
||||
#freedoom = {}
|
||||
#freeglut = {}
|
||||
#freetype = {}
|
||||
#friar = {} # mio patch
|
||||
#game-2048 = {}
|
||||
#games = {}
|
||||
#gawk = {}
|
||||
#gcc = {}
|
||||
gdbserver = {}
|
||||
#gears = {}
|
||||
#generaluser-gs = {}
|
||||
#gettext = {}
|
||||
#gigalomania = {}
|
||||
#git = {}
|
||||
#glib = {}
|
||||
#glium = {}
|
||||
#glutin = {}
|
||||
#gnu-binutils = {}
|
||||
#gnu-grep = {}
|
||||
#gnu-make = {}
|
||||
#gstreamer = {}
|
||||
#harfbuzz = {}
|
||||
#hematite = {}
|
||||
#init = {}
|
||||
installer = {}
|
||||
ion = {}
|
||||
ipcd = {}
|
||||
#jansson = {}
|
||||
#keyboard-sfx = {}
|
||||
#lci = {}
|
||||
#libc-bench = {}
|
||||
#libffi = {}
|
||||
#libiconv = {}
|
||||
#libjpeg = {}
|
||||
#liborbital = {}
|
||||
#libpng = {}
|
||||
#libsodium = {}
|
||||
#llvm = {}
|
||||
logd = {}
|
||||
#lua = {}
|
||||
#mdp = {}
|
||||
#mesa = {}
|
||||
#mesa_glu = {}
|
||||
#miniserve = {}
|
||||
#nasm = {}
|
||||
#ncdu = {}
|
||||
#ncurses = {}
|
||||
#ncursesw = {}
|
||||
netdb = {}
|
||||
netstack = {}
|
||||
installer-gui = {}
|
||||
netsurf = {}
|
||||
netutils = {}
|
||||
#neverball = {}
|
||||
#newlib = {}
|
||||
#newlibtest = {}
|
||||
#nulld = {}
|
||||
#openjazz = {}
|
||||
#openssl = {}
|
||||
#openttd = {}
|
||||
#openttd-opengfx = {}
|
||||
#openttd-openmsx = {}
|
||||
#openttd-opensfx = {}
|
||||
#orbclient = {}
|
||||
orbdata = {}
|
||||
orbital = {}
|
||||
orbterm = {}
|
||||
orbutils = {}
|
||||
#osdemo = {}
|
||||
#pastel = {}
|
||||
#patch = {}
|
||||
#pciids = {}
|
||||
#pcre = {}
|
||||
#periodictable = {}
|
||||
#perl = {}
|
||||
#pixelcannon = {}
|
||||
#pixman = {}
|
||||
pkgutils = {}
|
||||
#powerline = {}
|
||||
#prboom = {}
|
||||
ptyd = {}
|
||||
#python = {}
|
||||
#qemu = {}
|
||||
#randd = {}
|
||||
#readline = {} # ncurses
|
||||
redoxfs = {}
|
||||
#redox-fatfs = {}
|
||||
#redox-ssh = {}
|
||||
#relibc = {}
|
||||
#relibc-tests = {}
|
||||
#ripgrep = {}
|
||||
#rodioplay = {}
|
||||
#rs-nes = {}
|
||||
#rust = {}
|
||||
#rust64 = {}
|
||||
#rust-cairo = {}
|
||||
#rust-cairo-demo = {}
|
||||
#rustual-boy = {}
|
||||
#schismtracker = {}
|
||||
#scummvm = {}
|
||||
#sdl = {}
|
||||
#sdl2 = {}
|
||||
#sdl2_gears = {}
|
||||
#sdl_gfx = {}
|
||||
#sdl_image = {}
|
||||
#sdl_mixer = {}
|
||||
#sdl_ttf = {}
|
||||
#sdl-player = {}
|
||||
#sed = {}
|
||||
#servo = {}
|
||||
#shellstorm = {}
|
||||
smith = {}
|
||||
#sodium = {}
|
||||
#sopwith = {}
|
||||
#ssh = {}
|
||||
strace = {}
|
||||
#syobonaction = {}
|
||||
#terminfo = {}
|
||||
#termplay = {}
|
||||
#timidity = {}
|
||||
#ttf-hack = {}
|
||||
userutils = {}
|
||||
uutils = {}
|
||||
#vim = {}
|
||||
#vttest = {}
|
||||
#webrender = {}
|
||||
#winit = {}
|
||||
#xz = {}
|
||||
#zerod = {}
|
||||
#zlib = {}
|
||||
|
||||
# User settings
|
||||
[users.root]
|
||||
password = "password"
|
||||
uid = 0
|
||||
gid = 0
|
||||
name = "root"
|
||||
home = "/root"
|
||||
|
||||
[users.user]
|
||||
# Password is unset
|
||||
password = ""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/init.d/00_base"
|
||||
data = """
|
||||
ipcd
|
||||
logd
|
||||
ptyd
|
||||
pcid /etc/pcid.d/
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/init.d/10_net"
|
||||
data = """
|
||||
smolnetd
|
||||
dnsd
|
||||
dhcpd -b
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/init.d/20_orbital"
|
||||
path = "/usr/lib/init.d/20_orbital"
|
||||
data = """
|
||||
audiod
|
||||
orbital display:3/activate orblogin launcher
|
||||
orbital orblogin launcher
|
||||
"""
|
||||
|
||||
# Override console config to not switch to VT 2
|
||||
[[files]]
|
||||
path = "/etc/init.d/30_console"
|
||||
path = "/usr/lib/init.d/30_console"
|
||||
data = """
|
||||
getty display:2
|
||||
getty 2
|
||||
getty debug: -J
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/net/dns"
|
||||
data = """
|
||||
208.67.222.222
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/net/ip"
|
||||
data = """
|
||||
10.0.2.15
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/net/ip_router"
|
||||
data = """
|
||||
10.0.2.2
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/net/ip_subnet"
|
||||
data = """
|
||||
255.255.255.0
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/net/mac"
|
||||
data = """
|
||||
54-52-00-ab-cd-ef
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/pkg.d/50_redox"
|
||||
data = "https://static.redox-os.org/pkg"
|
||||
|
||||
[[files]]
|
||||
path = "/etc/group"
|
||||
data = """
|
||||
root;0;root
|
||||
user;1000;user
|
||||
sudo;1;user
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/hostname"
|
||||
data = """
|
||||
redox
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/usr/bin"
|
||||
data = "/bin"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/usr/games"
|
||||
data = "/games"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/usr/include"
|
||||
data = "/include"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/usr/lib"
|
||||
data = "/lib"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/usr/share"
|
||||
data = "/share"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/tmp"
|
||||
data = ""
|
||||
directory= true
|
||||
# 0o1777
|
||||
mode = 1023
|
||||
|
||||
[[files]]
|
||||
path = "/dev/null"
|
||||
data = "null:"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/dev/random"
|
||||
data = "rand:"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/dev/urandom"
|
||||
data = "rand:"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/dev/zero"
|
||||
data = "zero:"
|
||||
symlink = true
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
# Configuration for development, includes cargo and rustc
|
||||
|
||||
include = ["desktop.toml"]
|
||||
|
||||
# General settings
|
||||
[general]
|
||||
# Filesystem size in MiB
|
||||
filesystem_size = 2048
|
||||
# Do not prompt if settings are not defined
|
||||
prompt = false
|
||||
|
||||
# Package settings
|
||||
[packages]
|
||||
cargo = {}
|
||||
crates-io-index = {}
|
||||
gcc13 = {}
|
||||
gnu-binutils = {}
|
||||
gnu-make = {}
|
||||
rust = {}
|
||||
|
||||
[[files]]
|
||||
path = "/home/user/example.rs"
|
||||
data = """
|
||||
fn main() {
|
||||
println!("Hello, Redox!");
|
||||
}
|
||||
"""
|
|
@ -0,0 +1,3 @@
|
|||
# Configuration for using acid
|
||||
|
||||
include = ["../acid.toml"]
|
|
@ -0,0 +1,47 @@
|
|||
# This is the CI configuration file
|
||||
|
||||
# General settings
|
||||
[general]
|
||||
# Do not prompt if settings are not defined
|
||||
prompt = false
|
||||
|
||||
# Package settings
|
||||
[packages]
|
||||
audiod = {}
|
||||
bootloader = {}
|
||||
bootstrap = {}
|
||||
ca-certificates = {}
|
||||
contain = {}
|
||||
coreutils = {}
|
||||
dash = {}
|
||||
diffutils = {}
|
||||
drivers = {}
|
||||
escalated = {}
|
||||
extrautils = {}
|
||||
findutils = {}
|
||||
initfs = {}
|
||||
installer = {}
|
||||
installer-gui = {}
|
||||
ion = {}
|
||||
ipcd = {}
|
||||
kernel = {}
|
||||
nano = {}
|
||||
netdb = {}
|
||||
netstack = {}
|
||||
netsurf = {}
|
||||
netutils = {}
|
||||
orbdata = {}
|
||||
orbital = {}
|
||||
orbterm = {}
|
||||
orbutils = {}
|
||||
pkgutils = {}
|
||||
ptyd = {}
|
||||
redoxfs = {}
|
||||
relibc = {}
|
||||
resist = {}
|
||||
smith = {}
|
||||
userutils = {}
|
||||
uutils = {}
|
||||
vim = {}
|
||||
|
||||
#TODO: Add more packages
|
|
@ -0,0 +1,70 @@
|
|||
##############################################################################
|
||||
# Redox Demo Configuration #
|
||||
# #
|
||||
# This file defines the setup of the Redox Demo system. #
|
||||
# #
|
||||
# The "[packages]" section specifies what packages are installed in the #
|
||||
# filesystem prior to booting the system. During build, these packages must #
|
||||
# have a recipe defined in the config folder (see the Redox Book, #
|
||||
# Chapter 5.1). The first group of packages is mandatory for the system to #
|
||||
# function, although some items can be removed for special builds, #
|
||||
# e.g. The Orbital GUI is not required for a headless server. #
|
||||
# #
|
||||
# Items in the "Developer Tools" and "Games" section are optional. You can #
|
||||
# add your own programs here. #
|
||||
# #
|
||||
# The "[users]" section creates user id's and passwords. Each user will have #
|
||||
# a home directory at boot. #
|
||||
# #
|
||||
# The "[[files]]" section contains files needed by the system. If you need #
|
||||
# create a file, e.g. a config file for a program you are adding, you can do #
|
||||
# it here. #
|
||||
# #
|
||||
##############################################################################
|
||||
|
||||
include = ["../desktop.toml"]
|
||||
|
||||
# General settings
|
||||
[general]
|
||||
# Filesystem size in MiB
|
||||
filesystem_size = 512
|
||||
|
||||
# Package settings
|
||||
[packages]
|
||||
# Games
|
||||
dosbox = {}
|
||||
freedoom = {}
|
||||
prboom = {}
|
||||
redox-games = {}
|
||||
|
||||
# Demos
|
||||
pixelcannon = {}
|
||||
|
||||
# MIDI
|
||||
freepats = {}
|
||||
|
||||
[[files]]
|
||||
path = "/home/user/Welcome.txt"
|
||||
data = """
|
||||
##############################################################################
|
||||
# #
|
||||
# Welcome to Redox! #
|
||||
# #
|
||||
# Redox is an operating system written in Rust, a language with focus #
|
||||
# on safety and high performance. Redox, following the microkernel design, #
|
||||
# aims to be secure, usable, and free. Redox is inspired by previous kernels #
|
||||
# and operating systems, such as SeL4, MINIX, Plan 9, and BSD. #
|
||||
# #
|
||||
# Redox _is not_ just a kernel, it's a full-featured Operating System, #
|
||||
# providing packages (memory allocator, file system, display manager, core #
|
||||
# utilities, etc.) that together make up a functional and convenient #
|
||||
# operating system. You can loosely think of it as the GNU or BSD ecosystem, #
|
||||
# but in a memory safe language and with modern technology. #
|
||||
# #
|
||||
# The website can be found at https://www.redox-os.org. #
|
||||
# #
|
||||
# For things to try on Redox, please see #
|
||||
# https://doc.redox-os.org/book/ch02-06-trying-out-redox.html #
|
||||
# #
|
||||
##############################################################################
|
||||
"""
|
|
@ -0,0 +1,14 @@
|
|||
# Default desktop configuration
|
||||
|
||||
include = ["../desktop-minimal.toml"]
|
||||
|
||||
# Override the default settings here
|
||||
|
||||
# General settings
|
||||
[general]
|
||||
# Filesystem size in MiB
|
||||
# filesystem_size = 1024
|
||||
|
||||
# Package settings
|
||||
[packages]
|
||||
# example = {}
|
|
@ -0,0 +1,14 @@
|
|||
# Default desktop configuration
|
||||
|
||||
include = ["../desktop.toml"]
|
||||
|
||||
# Override the default settings here
|
||||
|
||||
# General settings
|
||||
[general]
|
||||
# Filesystem size in MiB
|
||||
# filesystem_size = 1024
|
||||
|
||||
# Package settings
|
||||
[packages]
|
||||
# example = {}
|
|
@ -0,0 +1,14 @@
|
|||
# Configuration for development, includes cargo and rustc
|
||||
|
||||
include = ["../dev.toml"]
|
||||
|
||||
# Override the default settings here
|
||||
|
||||
# General settings
|
||||
[general]
|
||||
# Filesystem size in MiB
|
||||
# filesystem_size = 1024
|
||||
|
||||
# Package settings
|
||||
[packages]
|
||||
# example = {}
|
|
@ -0,0 +1,40 @@
|
|||
# Jeremy's configuration
|
||||
|
||||
include = ["../desktop.toml"]
|
||||
|
||||
# General settings
|
||||
[general]
|
||||
# Filesystem size in MiB
|
||||
filesystem_size = 4000
|
||||
|
||||
# Package settings
|
||||
[packages]
|
||||
# apps
|
||||
cosmic-text = {}
|
||||
pixelcannon = {}
|
||||
sodium = {}
|
||||
|
||||
# cli
|
||||
acid = {}
|
||||
cleye = {}
|
||||
ripgrep = {}
|
||||
|
||||
# demos
|
||||
cpal = {}
|
||||
orbclient = {}
|
||||
rodioplay = {}
|
||||
winit = {}
|
||||
|
||||
# games
|
||||
dosbox = {}
|
||||
eduke32 = {}
|
||||
freedoom = {}
|
||||
prboom = {}
|
||||
redox-games = {}
|
||||
|
||||
# stuff
|
||||
freepats = {}
|
||||
generaluser-gs = {}
|
||||
jeremy = {}
|
||||
keyboard-sfx = {}
|
||||
ttf-hack = {}
|
|
@ -0,0 +1,3 @@
|
|||
# Configuration for using resist
|
||||
|
||||
include = ["../resist.toml"]
|
|
@ -0,0 +1,14 @@
|
|||
# Minimal configuration
|
||||
|
||||
include = ["../server-minimal.toml"]
|
||||
|
||||
# Override the default settings here
|
||||
|
||||
# General settings
|
||||
[general]
|
||||
# Filesystem size in MiB
|
||||
# filesystem_size = 1024
|
||||
|
||||
# Package settings
|
||||
[packages]
|
||||
# example = {}
|
|
@ -0,0 +1,14 @@
|
|||
# Default server configuration
|
||||
|
||||
include = ["../server.toml"]
|
||||
|
||||
# Override the default settings here
|
||||
|
||||
# General settings
|
||||
[general]
|
||||
# Filesystem size in MiB
|
||||
# filesystem_size = 1024
|
||||
|
||||
# Package settings
|
||||
[packages]
|
||||
# example = {}
|
|
@ -1,328 +0,0 @@
|
|||
# This is a maximum configuration file
|
||||
|
||||
# General settings
|
||||
[general]
|
||||
# Do not prompt if settings are not defined
|
||||
prompt = false
|
||||
|
||||
# Package settings
|
||||
[packages]
|
||||
acid = {}
|
||||
atk = {}
|
||||
audiod = {}
|
||||
autoconf = {}
|
||||
automake = {}
|
||||
#bash = {}
|
||||
binutils = {}
|
||||
ca-certificates = {}
|
||||
cairo = {}
|
||||
cairodemo = {}
|
||||
#cargo = {}
|
||||
cleye = {}
|
||||
cmatrix = {}
|
||||
contain = {}
|
||||
coreutils = {}
|
||||
cpal = {}
|
||||
curl = {}
|
||||
dash = {}
|
||||
diffutils = {}
|
||||
dosbox = {}
|
||||
drivers = {}
|
||||
#drivers-041 = {}
|
||||
#duktape = {}
|
||||
eduke32 = {}
|
||||
exampled = {}
|
||||
expat = {}
|
||||
extrautils = {}
|
||||
#fd = {}
|
||||
ffmpeg = {}
|
||||
findutils = {}
|
||||
fontconfig = {}
|
||||
#freeciv = {}
|
||||
freedoom = {}
|
||||
#freeglut = {}
|
||||
freetype = {}
|
||||
#friar = {} # mio patch
|
||||
fribidi = {}
|
||||
#game-2048 = {}
|
||||
games = {}
|
||||
#gawk = {}
|
||||
gcc = {}
|
||||
gdbserver = {}
|
||||
#gdk-pixbuf = {}
|
||||
gears = {}
|
||||
generaluser-gs = {}
|
||||
gettext = {}
|
||||
gigalomania = {}
|
||||
git = {}
|
||||
glib = {}
|
||||
glium = {}
|
||||
glutin = {}
|
||||
gnu-binutils = {}
|
||||
gnu-grep = {}
|
||||
gnu-make = {}
|
||||
#gstreamer = {}
|
||||
harfbuzz = {}
|
||||
#hematite = {}
|
||||
#init = {}
|
||||
installer = {}
|
||||
ion = {}
|
||||
ipcd = {}
|
||||
jansson = {}
|
||||
keyboard-sfx = {}
|
||||
lci = {}
|
||||
libc-bench = {}
|
||||
libffi = {}
|
||||
libiconv = {}
|
||||
libjpeg = {}
|
||||
libogg = {}
|
||||
liborbital = {}
|
||||
libpng = {}
|
||||
libsodium = {}
|
||||
libvorbis = {}
|
||||
libxml2 = {}
|
||||
llvm = {}
|
||||
logd = {}
|
||||
#lua = {}
|
||||
#mdp = {}
|
||||
mesa = {}
|
||||
mesa_glu = {}
|
||||
#mgba = {}
|
||||
#miniserve = {}
|
||||
nasm = {}
|
||||
#ncdu = {}
|
||||
ncurses = {}
|
||||
#ncursesw = {}
|
||||
netdb = {}
|
||||
netstack = {}
|
||||
netsurf = {}
|
||||
netutils = {}
|
||||
#neverball = {}
|
||||
#newlib = {}
|
||||
#newlibtest = {}
|
||||
nghttp2 = {}
|
||||
#nulld = {}
|
||||
openjazz = {}
|
||||
openssl = {}
|
||||
openttd = {}
|
||||
openttd-opengfx = {}
|
||||
openttd-openmsx = {}
|
||||
openttd-opensfx = {}
|
||||
orbclient = {}
|
||||
orbdata = {}
|
||||
orbital = {}
|
||||
orbterm = {}
|
||||
orbutils = {}
|
||||
osdemo = {}
|
||||
pango = {}
|
||||
#pastel = {}
|
||||
patch = {}
|
||||
#pathfinder = {}
|
||||
#pciids = {}
|
||||
pcre = {}
|
||||
periodictable = {}
|
||||
#perl = {}
|
||||
pixelcannon = {}
|
||||
pixman = {}
|
||||
pkg-config = {}
|
||||
pkgutils = {}
|
||||
#powerline = {}
|
||||
prboom = {}
|
||||
ptyd = {}
|
||||
#python = {}
|
||||
#qemu = {}
|
||||
randd = {}
|
||||
readline = {} # ncurses
|
||||
redoxfs = {}
|
||||
#redox-fatfs = {}
|
||||
#redox-ssh = {}
|
||||
relibc = {}
|
||||
#relibc-tests = {}
|
||||
ripgrep = {}
|
||||
rodioplay = {}
|
||||
rs-nes = {}
|
||||
#rust = {}
|
||||
rust64 = {}
|
||||
rust-cairo = {}
|
||||
rust-cairo-demo = {}
|
||||
rustual-boy = {}
|
||||
schismtracker = {}
|
||||
scummvm = {}
|
||||
sdl = {}
|
||||
sdl2 = {}
|
||||
sdl2_gears = {}
|
||||
sdl2_image = {}
|
||||
sdl2_mixer = {}
|
||||
sdl2_ttf = {}
|
||||
sdl_gfx = {}
|
||||
sdl_image = {}
|
||||
sdl_mixer = {}
|
||||
sdl-player = {}
|
||||
#sdl_ttf = {}
|
||||
sed = {}
|
||||
#servo = {}
|
||||
#shared-mime-info = {}
|
||||
shellstorm = {}
|
||||
smith = {}
|
||||
sodium = {}
|
||||
sopwith = {}
|
||||
#ssh = {}
|
||||
strace = {}
|
||||
#syobonaction = {}
|
||||
terminfo = {}
|
||||
#termplay = {}
|
||||
timidity = {}
|
||||
ttf-hack = {}
|
||||
userutils = {}
|
||||
uutils = {}
|
||||
vice = {}
|
||||
#vim = {}
|
||||
vttest = {}
|
||||
#webrender = {}
|
||||
winit = {}
|
||||
xz = {}
|
||||
#zerod = {}
|
||||
zlib = {}
|
||||
|
||||
# User settings
|
||||
[users.root]
|
||||
password = "password"
|
||||
uid = 0
|
||||
gid = 0
|
||||
name = "root"
|
||||
home = "/root"
|
||||
|
||||
[users.user]
|
||||
# Password is unset
|
||||
password = ""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/init.d/00_base"
|
||||
data = """
|
||||
ipcd
|
||||
logd
|
||||
ptyd
|
||||
pcid /etc/pcid.d/
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/init.d/10_net"
|
||||
data = """
|
||||
smolnetd
|
||||
dnsd
|
||||
dhcpd -b
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/init.d/20_orbital"
|
||||
data = """
|
||||
audiod
|
||||
orbital display:3/activate orblogin launcher
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/init.d/30_console"
|
||||
data = """
|
||||
getty display:2
|
||||
getty debug: -J
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/net/dns"
|
||||
data = """
|
||||
208.67.222.222
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/net/ip"
|
||||
data = """
|
||||
10.0.2.15
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/net/ip_router"
|
||||
data = """
|
||||
10.0.2.2
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/net/ip_subnet"
|
||||
data = """
|
||||
255.255.255.0
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/net/mac"
|
||||
data = """
|
||||
54-52-00-ab-cd-ef
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/pkg.d/50_redox"
|
||||
data = "https://static.redox-os.org/pkg"
|
||||
|
||||
[[files]]
|
||||
path = "/etc/group"
|
||||
data = """
|
||||
root;0;root
|
||||
user;1000;user
|
||||
sudo;1;user
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/hostname"
|
||||
data = """
|
||||
redox
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/usr/bin"
|
||||
data = "/bin"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/usr/games"
|
||||
data = "/games"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/usr/include"
|
||||
data = "/include"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/usr/lib"
|
||||
data = "/lib"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/usr/share"
|
||||
data = "/share"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/tmp"
|
||||
data = ""
|
||||
directory= true
|
||||
# 0o1777
|
||||
mode = 1023
|
||||
|
||||
[[files]]
|
||||
path = "/dev/null"
|
||||
data = "null:"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/dev/random"
|
||||
data = "rand:"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/dev/urandom"
|
||||
data = "rand:"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/dev/zero"
|
||||
data = "zero:"
|
||||
symlink = true
|
|
@ -1,213 +0,0 @@
|
|||
# This is the default configuration file
|
||||
|
||||
# General settings
|
||||
[general]
|
||||
# Do not prompt if settings are not defined
|
||||
prompt = false
|
||||
|
||||
# Package settings
|
||||
[packages]
|
||||
#acid = {}
|
||||
#audiod = {}
|
||||
#autoconf = {}
|
||||
#automake = {}
|
||||
#bash = {}
|
||||
#binutils = {}
|
||||
#ca-certificates = {}
|
||||
#cairo = {}
|
||||
#cairodemo = {}
|
||||
#cargo = {}
|
||||
#cleye = {}
|
||||
#cmatrix = {}
|
||||
#contain = {}
|
||||
#coreutils = {}
|
||||
#cpal = {}
|
||||
#curl = {}
|
||||
#dash = {}
|
||||
#diffutils = {}
|
||||
#dosbox = {}
|
||||
#drivers = {}
|
||||
#drivers-041 = {}
|
||||
#duktape = {}
|
||||
#eduke32 = {}
|
||||
#exampled = {}
|
||||
#expat = {}
|
||||
#extrautils = {}
|
||||
#fd = {}
|
||||
#ffmpeg = {}
|
||||
#findutils = {}
|
||||
#freeciv = {}
|
||||
#freedoom = {}
|
||||
#freeglut = {}
|
||||
#freetype = {}
|
||||
#friar = {} # mio patch
|
||||
#game-2048 = {}
|
||||
#games = {}
|
||||
#gawk = {}
|
||||
#gcc = {}
|
||||
#gears = {}
|
||||
#generaluser-gs = {}
|
||||
#gettext = {}
|
||||
#gigalomania = {}
|
||||
#git = {}
|
||||
#glib = {}
|
||||
#glium = {}
|
||||
#glutin = {}
|
||||
#gnu-binutils = {}
|
||||
#gnu-grep = {}
|
||||
#gnu-make = {}
|
||||
#gstreamer = {}
|
||||
#harfbuzz = {}
|
||||
#hematite = {}
|
||||
#init = {}
|
||||
#installer = {}
|
||||
#ion = {}
|
||||
ipcd = {}
|
||||
#jansson = {}
|
||||
#keyboard-sfx = {}
|
||||
#lci = {}
|
||||
#libc-bench = {}
|
||||
#libffi = {}
|
||||
#libiconv = {}
|
||||
#libjpeg = {}
|
||||
#liborbital = {}
|
||||
#libpng = {}
|
||||
#libsodium = {}
|
||||
#llvm = {}
|
||||
logd = {}
|
||||
#lua = {}
|
||||
#mdp = {}
|
||||
#mesa = {}
|
||||
#mesa_glu = {}
|
||||
#miniserve = {}
|
||||
#nasm = {}
|
||||
#ncdu = {}
|
||||
#ncurses = {}
|
||||
#ncursesw = {}
|
||||
#netdb = {}
|
||||
#netstack = {}
|
||||
#netsurf = {}
|
||||
#netutils = {}
|
||||
#newlib = {}
|
||||
#newlibtest = {}
|
||||
#nulld = {}
|
||||
#openjazz = {}
|
||||
#openssl = {}
|
||||
#openttd = {}
|
||||
#openttd-opengfx = {}
|
||||
#openttd-openmsx = {}
|
||||
#openttd-opensfx = {}
|
||||
#orbdata = {}
|
||||
#orbital = {}
|
||||
#orbterm = {}
|
||||
#orbutils = {}
|
||||
#osdemo = {}
|
||||
#pastel = {}
|
||||
#patch = {}
|
||||
#pciids = {}
|
||||
#pcre = {}
|
||||
#periodictable = {}
|
||||
#perl = {}
|
||||
#pixelcannon = {}
|
||||
#pixman = {}
|
||||
#pkgutils = {}
|
||||
#powerline = {}
|
||||
#prboom = {}
|
||||
ptyd = {}
|
||||
#python = {}
|
||||
#qemu = {}
|
||||
#randd = {}
|
||||
#readline = {} # ncurses
|
||||
#redoxfs = {}
|
||||
#redox-ssh = {}
|
||||
#relibc = {}
|
||||
#ripgrep = {}
|
||||
#rodioplay = {}
|
||||
#rs-nes = {}
|
||||
#rust = {}
|
||||
#rust64 = {}
|
||||
#rust-cairo = {}
|
||||
#rust-cairo-demo = {}
|
||||
#rustual-boy = {}
|
||||
#schismtracker = {}
|
||||
#scummvm = {}
|
||||
#sdl = {}
|
||||
#sdl2 = {}
|
||||
#sdl_gfx = {}
|
||||
#sdl_image = {}
|
||||
#sdl_mixer = {}
|
||||
#sdl_ttf = {}
|
||||
#sdl-player = {}
|
||||
#sed = {}
|
||||
#servo = {}
|
||||
#shellstorm = {}
|
||||
#smith = {}
|
||||
#sodium = {}
|
||||
#sopwith = {}
|
||||
#ssh = {}
|
||||
#syobonaction = {}
|
||||
#terminfo = {}
|
||||
#termplay = {}
|
||||
#timidity = {}
|
||||
#ttf-hack = {}
|
||||
#userutils = {}
|
||||
#uutils = {}
|
||||
#vim = {}
|
||||
#vttest = {}
|
||||
#webrender = {}
|
||||
#winit = {}
|
||||
#xz = {}
|
||||
#zerod = {}
|
||||
#zlib = {}
|
||||
|
||||
# User settings
|
||||
[users.root]
|
||||
password = "password"
|
||||
uid = 0
|
||||
gid = 0
|
||||
name = "root"
|
||||
home = "/root"
|
||||
|
||||
[users.user]
|
||||
# Password is unset
|
||||
password = ""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/init.d/00_base"
|
||||
data = """
|
||||
ipcd
|
||||
logd
|
||||
ptyd
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/usr/bin"
|
||||
data = "/bin"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/usr/games"
|
||||
data = "/games"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/usr/include"
|
||||
data = "/include"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/usr/lib"
|
||||
data = "/lib"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/usr/share"
|
||||
data = "/share"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/tmp"
|
||||
data = ""
|
||||
directory= true
|
||||
# 0o1777
|
||||
mode = 1023
|
|
@ -0,0 +1,51 @@
|
|||
# Net configuration: includes the base configuration and adds files required
|
||||
# for networking
|
||||
|
||||
include = ["base.toml"]
|
||||
|
||||
# Package settings
|
||||
[packages]
|
||||
drivers = {}
|
||||
netstack = {}
|
||||
netutils = {}
|
||||
|
||||
## Driver init
|
||||
[[files]]
|
||||
path = "/usr/lib/init.d/00_drivers"
|
||||
data = """
|
||||
pcid /etc/pcid.d/
|
||||
"""
|
||||
|
||||
## Network init
|
||||
[[files]]
|
||||
path = "/usr/lib/init.d/10_net"
|
||||
data = """
|
||||
smolnetd
|
||||
dnsd
|
||||
dhcpd -b
|
||||
"""
|
||||
|
||||
## Default net configuration (optimized for QEMU)
|
||||
[[files]]
|
||||
path = "/etc/net/dns"
|
||||
data = """
|
||||
208.67.222.222
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/net/ip"
|
||||
data = """
|
||||
10.0.2.15
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/net/ip_router"
|
||||
data = """
|
||||
10.0.2.2
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/net/ip_subnet"
|
||||
data = """
|
||||
255.255.255.0
|
||||
"""
|
|
@ -0,0 +1,17 @@
|
|||
# Configuration for redoxer GUI image
|
||||
|
||||
include = ["redoxer.toml"]
|
||||
|
||||
# Package settings
|
||||
[packages]
|
||||
orbdata = {}
|
||||
orbital = {}
|
||||
|
||||
# Override to run inside of orbital
|
||||
[[files]]
|
||||
path = "/usr/lib/init.d/30_redoxer"
|
||||
data = """
|
||||
echo
|
||||
echo ## running redoxer in orbital ##
|
||||
orbital redoxerd
|
||||
"""
|
|
@ -0,0 +1,53 @@
|
|||
# Configuration for redoxer image
|
||||
|
||||
include = ["net.toml"]
|
||||
|
||||
# Package settings
|
||||
[packages]
|
||||
bash = {}
|
||||
ca-certificates = {}
|
||||
coreutils = {}
|
||||
extrautils = {}
|
||||
findutils = {}
|
||||
gcc13 = {}
|
||||
gnu-binutils = {}
|
||||
netdb = {}
|
||||
pkgutils = {}
|
||||
redoxerd = {}
|
||||
relibc = {}
|
||||
|
||||
# Override to not background dhcpd
|
||||
[[files]]
|
||||
path = "/usr/lib/init.d/10_net"
|
||||
data = """
|
||||
smolnetd
|
||||
dnsd
|
||||
dhcpd
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/usr/lib/init.d/20_env"
|
||||
data = """
|
||||
echo
|
||||
echo ## preparing environment ##
|
||||
export GROUPS 0
|
||||
export HOME /root
|
||||
export HOST redox
|
||||
export SHELL /bin/sh
|
||||
export UID 0
|
||||
export USER root
|
||||
cd /root
|
||||
env
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/usr/lib/init.d/30_redoxer"
|
||||
data = """
|
||||
echo
|
||||
echo ## running redoxer ##
|
||||
redoxerd
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/pkg.d/50_redox"
|
||||
data = "https://static.redox-os.org/pkg"
|
|
@ -0,0 +1,45 @@
|
|||
# Configuration for using resist
|
||||
|
||||
include = ["net.toml"]
|
||||
|
||||
# General settings
|
||||
[general]
|
||||
# Filesystem size in MiB
|
||||
filesystem_size = 256
|
||||
|
||||
# Package settings
|
||||
[packages]
|
||||
bash = {}
|
||||
coreutils = {}
|
||||
diffutils = {}
|
||||
extrautils = {}
|
||||
findutils = {}
|
||||
gcc13 = {}
|
||||
gnu-binutils = {}
|
||||
gnu-make = {}
|
||||
netdb = {}
|
||||
resist = {}
|
||||
userutils = {}
|
||||
|
||||
# Override to not background dhcpd
|
||||
[[files]]
|
||||
path = "/usr/lib/init.d/10_net"
|
||||
data = """
|
||||
smolnetd
|
||||
dnsd
|
||||
dhcpd
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/usr/lib/init.d/20_resist"
|
||||
data = """
|
||||
export RUST_BACKTRACE full
|
||||
resist /share/resist/redox/spec.toml
|
||||
resist /share/resist/posix/base.toml
|
||||
resist /share/resist/posix/shell.toml
|
||||
shutdown
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/pkg.d/50_redox"
|
||||
data = "https://static.redox-os.org/pkg"
|
|
@ -0,0 +1,23 @@
|
|||
# Minimal configuration
|
||||
|
||||
include = ["base.toml"]
|
||||
|
||||
# General settings
|
||||
[general]
|
||||
# Filesystem size in MiB
|
||||
filesystem_size = 128
|
||||
|
||||
# Package settings
|
||||
[packages]
|
||||
coreutils = {}
|
||||
extrautils = {}
|
||||
ion = {}
|
||||
smith = {}
|
||||
userutils = {}
|
||||
|
||||
[[files]]
|
||||
path = "/usr/lib/init.d/30_console"
|
||||
data = """
|
||||
getty 2
|
||||
getty debug: -J
|
||||
"""
|
|
@ -1,297 +1,44 @@
|
|||
# This is the default configuration file
|
||||
# Default server configuration
|
||||
|
||||
include = ["net.toml"]
|
||||
|
||||
# General settings
|
||||
[general]
|
||||
# Do not prompt if settings are not defined
|
||||
prompt = false
|
||||
# Filesystem size in MiB
|
||||
filesystem_size = 512
|
||||
|
||||
# Package settings
|
||||
[packages]
|
||||
#acid = {}
|
||||
#audiod = {}
|
||||
#autoconf = {}
|
||||
#automake = {}
|
||||
#bash = {}
|
||||
#binutils = {}
|
||||
bash = {}
|
||||
ca-certificates = {}
|
||||
#cairo = {}
|
||||
#cairodemo = {}
|
||||
#cargo = {}
|
||||
#cleye = {}
|
||||
#cmatrix = {}
|
||||
contain = {}
|
||||
coreutils = {}
|
||||
#cpal = {}
|
||||
#curl = {}
|
||||
dash = {}
|
||||
#diffutils = {}
|
||||
#dosbox = {}
|
||||
drivers = {}
|
||||
#drivers-041 = {}
|
||||
#duktape = {}
|
||||
#eduke32 = {}
|
||||
#exampled = {}
|
||||
#expat = {}
|
||||
curl = {}
|
||||
diffutils = {}
|
||||
extrautils = {}
|
||||
#fd = {}
|
||||
#ffmpeg = {}
|
||||
findutils = {}
|
||||
#freeciv = {}
|
||||
#freedoom = {}
|
||||
#freeglut = {}
|
||||
#freetype = {}
|
||||
#friar = {} # mio patch
|
||||
#game-2048 = {}
|
||||
#games = {}
|
||||
#gawk = {}
|
||||
#gcc = {}
|
||||
#gears = {}
|
||||
#generaluser-gs = {}
|
||||
#gettext = {}
|
||||
#gigalomania = {}
|
||||
#git = {}
|
||||
#glib = {}
|
||||
#glium = {}
|
||||
#glutin = {}
|
||||
#gnu-binutils = {}
|
||||
#gnu-grep = {}
|
||||
#gnu-make = {}
|
||||
#gstreamer = {}
|
||||
#harfbuzz = {}
|
||||
#hematite = {}
|
||||
#init = {}
|
||||
git = {}
|
||||
installer = {}
|
||||
ion = {}
|
||||
ipcd = {}
|
||||
#jansson = {}
|
||||
#keyboard-sfx = {}
|
||||
#lci = {}
|
||||
#libc-bench = {}
|
||||
#libffi = {}
|
||||
#libiconv = {}
|
||||
#libjpeg = {}
|
||||
#liborbital = {}
|
||||
#libpng = {}
|
||||
#libsodium = {}
|
||||
#llvm = {}
|
||||
logd = {}
|
||||
#lua = {}
|
||||
#mdp = {}
|
||||
#mesa = {}
|
||||
#mesa_glu = {}
|
||||
#miniserve = {}
|
||||
#nasm = {}
|
||||
#ncdu = {}
|
||||
#ncurses = {}
|
||||
#ncursesw = {}
|
||||
nano = {}
|
||||
netdb = {}
|
||||
netstack = {}
|
||||
#netsurf = {}
|
||||
netutils = {}
|
||||
#newlib = {}
|
||||
#newlibtest = {}
|
||||
#nulld = {}
|
||||
#openjazz = {}
|
||||
#openssl = {}
|
||||
#openttd = {}
|
||||
#openttd-opengfx = {}
|
||||
#openttd-openmsx = {}
|
||||
#openttd-opensfx = {}
|
||||
#orbdata = {}
|
||||
#orbital = {}
|
||||
#orbterm = {}
|
||||
#orbutils = {}
|
||||
#osdemo = {}
|
||||
#pastel = {}
|
||||
#patch = {}
|
||||
#pciids = {}
|
||||
#pcre = {}
|
||||
#periodictable = {}
|
||||
#perl = {}
|
||||
#pixelcannon = {}
|
||||
#pixman = {}
|
||||
pkgutils = {}
|
||||
#powerline = {}
|
||||
#prboom = {}
|
||||
ptyd = {}
|
||||
#python = {}
|
||||
#qemu = {}
|
||||
#randd = {}
|
||||
#readline = {} # ncurses
|
||||
redoxfs = {}
|
||||
#redox-ssh = {}
|
||||
#relibc = {}
|
||||
#ripgrep = {}
|
||||
#rodioplay = {}
|
||||
#rs-nes = {}
|
||||
#rust = {}
|
||||
#rust64 = {}
|
||||
#rust-cairo = {}
|
||||
#rust-cairo-demo = {}
|
||||
#rustual-boy = {}
|
||||
#schismtracker = {}
|
||||
#scummvm = {}
|
||||
#sdl = {}
|
||||
#sdl2 = {}
|
||||
#sdl_gfx = {}
|
||||
#sdl_image = {}
|
||||
#sdl_mixer = {}
|
||||
#sdl_ttf = {}
|
||||
#sdl-player = {}
|
||||
#sed = {}
|
||||
#servo = {}
|
||||
#shellstorm = {}
|
||||
relibc = {}
|
||||
resist = {}
|
||||
smith = {}
|
||||
#sodium = {}
|
||||
#sopwith = {}
|
||||
#ssh = {}
|
||||
#syobonaction = {}
|
||||
#terminfo = {}
|
||||
#termplay = {}
|
||||
#timidity = {}
|
||||
#ttf-hack = {}
|
||||
terminfo = {}
|
||||
userutils = {}
|
||||
uutils = {}
|
||||
#vim = {}
|
||||
#vttest = {}
|
||||
#webrender = {}
|
||||
#winit = {}
|
||||
#xz = {}
|
||||
#zerod = {}
|
||||
#zlib = {}
|
||||
|
||||
# User settings
|
||||
[users.root]
|
||||
password = "password"
|
||||
uid = 0
|
||||
gid = 0
|
||||
name = "root"
|
||||
home = "/root"
|
||||
|
||||
[users.user]
|
||||
# Password is unset
|
||||
password = ""
|
||||
vim = {}
|
||||
|
||||
[[files]]
|
||||
path = "/etc/init.d/00_base"
|
||||
path = "/usr/lib/init.d/30_console"
|
||||
data = """
|
||||
ipcd
|
||||
logd
|
||||
ptyd
|
||||
pcid /etc/pcid.d/
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/init.d/10_net"
|
||||
data = """
|
||||
smolnetd
|
||||
dnsd
|
||||
dhcpd -b
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/init.d/30_console"
|
||||
data = """
|
||||
getty display:2/activate
|
||||
inputd -A 2
|
||||
getty 2
|
||||
getty debug: -J
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/net/dns"
|
||||
data = """
|
||||
208.67.222.222
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/net/ip"
|
||||
data = """
|
||||
10.0.2.15
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/net/ip_router"
|
||||
data = """
|
||||
10.0.2.2
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/net/ip_subnet"
|
||||
data = """
|
||||
255.255.255.0
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/net/mac"
|
||||
data = """
|
||||
54-52-00-ab-cd-ef
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/pkg.d/50_redox"
|
||||
data = "https://static.redox-os.org/pkg"
|
||||
|
||||
[[files]]
|
||||
path = "/etc/group"
|
||||
data = """
|
||||
root;0;root
|
||||
user;1000;user
|
||||
sudo;1;user
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/hostname"
|
||||
data = """
|
||||
redox
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/usr/bin"
|
||||
data = "/bin"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/usr/games"
|
||||
data = "/games"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/usr/include"
|
||||
data = "/include"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/usr/lib"
|
||||
data = "/lib"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/usr/share"
|
||||
data = "/share"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/tmp"
|
||||
data = ""
|
||||
directory= true
|
||||
# 0o1777
|
||||
mode = 1023
|
||||
|
||||
[[files]]
|
||||
path = "/dev/null"
|
||||
data = "null:"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/dev/random"
|
||||
data = "rand:"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/dev/urandom"
|
||||
data = "rand:"
|
||||
symlink = true
|
||||
|
||||
[[files]]
|
||||
path = "/dev/zero"
|
||||
data = "zero:"
|
||||
symlink = true
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
# Configuration for using acid
|
||||
|
||||
include = ["../acid.toml"]
|
|
@ -0,0 +1,215 @@
|
|||
# This is the CI configuration file
|
||||
|
||||
# General settings
|
||||
[general]
|
||||
# Do not prompt if settings are not defined
|
||||
prompt = false
|
||||
|
||||
# Package settings
|
||||
[packages]
|
||||
acid = {}
|
||||
atk = {}
|
||||
audiod = {}
|
||||
autoconf = {}
|
||||
automake = {}
|
||||
bash = {}
|
||||
binutils = {}
|
||||
bootloader = {}
|
||||
bootstrap = {}
|
||||
ca-certificates = {}
|
||||
cairo = {}
|
||||
cairodemo = {}
|
||||
#calculator = {}
|
||||
cargo = {}
|
||||
cleye = {}
|
||||
#cmatrix = {} # needs ncursesw now
|
||||
contain = {}
|
||||
coreutils = {}
|
||||
cosmic-edit = {}
|
||||
cosmic-icons = {}
|
||||
cosmic-text = {}
|
||||
cpal = {}
|
||||
curl = {}
|
||||
dash = {}
|
||||
diffutils = {}
|
||||
dosbox = {}
|
||||
drivers = {}
|
||||
drivers-initfs = {}
|
||||
duktape = {}
|
||||
eduke32 = {}
|
||||
escalated = {}
|
||||
exampled = {}
|
||||
expat = {}
|
||||
extrautils = {}
|
||||
#fal
|
||||
#fd = {} # ctrlc-3.1.1
|
||||
ffmpeg6 = {}
|
||||
findutils = {}
|
||||
fontconfig = {}
|
||||
#freeciv = {}
|
||||
freedoom = {}
|
||||
#freeglut = {}
|
||||
freepats = {}
|
||||
freetype2 = {}
|
||||
#friar = {} # mio patch
|
||||
fribidi = {}
|
||||
#game-2048 = {} # rustc-serialize
|
||||
#gawk = {} # langinfo.h
|
||||
gcc13 = {}
|
||||
gdbserver = {}
|
||||
#gdk-pixbuf = {} # shared-mime-info
|
||||
gears = {}
|
||||
generaluser-gs = {}
|
||||
gettext = {}
|
||||
gigalomania = {}
|
||||
git = {}
|
||||
glib = {}
|
||||
glium = {}
|
||||
glutin = {}
|
||||
gnu-binutils = {}
|
||||
gnu-grep = {}
|
||||
gnu-make = {}
|
||||
#gstreamer = {} # conflict with thread local errno
|
||||
harfbuzz = {}
|
||||
#hematite = {} # needs crate patches for redox-unix
|
||||
init = {}
|
||||
initfs = {}
|
||||
installer = {}
|
||||
installer-gui = {}
|
||||
intel-one-mono = {}
|
||||
ion = {}
|
||||
ipcd = {}
|
||||
#jansson = {} # needs config.sub update
|
||||
kernel = {}
|
||||
keyboard-sfx = {}
|
||||
lci = {}
|
||||
libc-bench = {}
|
||||
libffi = {}
|
||||
libgmp = {}
|
||||
libiconv = {}
|
||||
libjpeg = {}
|
||||
libogg = {}
|
||||
liborbital = {}
|
||||
libpng = {}
|
||||
libsodium = {}
|
||||
libvorbis = {}
|
||||
libxml2 = {}
|
||||
llvm = {}
|
||||
logd = {}
|
||||
lua54 = {}
|
||||
#mdp = {} # ncursesw
|
||||
mednafen = {}
|
||||
mesa = {}
|
||||
mesa-glu = {}
|
||||
mgba = {}
|
||||
#miniserve = {} # actix
|
||||
nano = {}
|
||||
nasm = {}
|
||||
#ncdu = {} # fails to link with ncurses
|
||||
ncurses = {}
|
||||
#ncursesw = {} # mkstemp configure hang
|
||||
netdb = {}
|
||||
netstack = {}
|
||||
netsurf = {}
|
||||
netutils = {}
|
||||
neverball = {}
|
||||
#newlib = {} # obsolete
|
||||
#newlibtest = {} # obsolete
|
||||
nghttp2 = {}
|
||||
nushell = {}
|
||||
openjazz = {}
|
||||
openssl1 = {}
|
||||
openttd = {}
|
||||
openttd-opengfx = {}
|
||||
openttd-openmsx = {}
|
||||
openttd-opensfx = {}
|
||||
orbclient = {}
|
||||
orbdata = {}
|
||||
orbital = {}
|
||||
orbterm = {}
|
||||
orbutils = {}
|
||||
#orbutils-background = {} # needs recipe update
|
||||
#orbutils-launcher = {} # needs recipe update
|
||||
#orbutils-orblogin = {} # needs recipe update
|
||||
osdemo = {}
|
||||
#pango = {} # undefined references to std::__throw_system_error(int)
|
||||
#pastel = {} # needs crate patches for redox-unix
|
||||
patch = {}
|
||||
#pathfinder = {} # servo-fontconfig
|
||||
#pciids = {}
|
||||
pcre = {}
|
||||
perg = {}
|
||||
periodictable = {}
|
||||
#perl = {} # ctermid, tempnam, ttyname
|
||||
pixelcannon = {}
|
||||
pixman = {}
|
||||
#pkgar = {} # uses virtual Cargo.toml, needs recipe update
|
||||
pkg-config = {}
|
||||
pkgutils = {}
|
||||
pop-icon-theme = {}
|
||||
#powerline = {} # dirs
|
||||
prboom = {}
|
||||
procedural-wallpapers-rs = {}
|
||||
ptyd = {}
|
||||
#python = {} # getaddrinfo
|
||||
#qemu = {}
|
||||
ramfs = {}
|
||||
randd = {}
|
||||
readline = {}
|
||||
redoxerd = {}
|
||||
redox-fatfs = {}
|
||||
redoxfs = {}
|
||||
redox-games = {}
|
||||
redox-ssh = {}
|
||||
relibc = {}
|
||||
#relibc-tests = {} # madvise link error
|
||||
resist = {}
|
||||
#retroarch = {} # OS_TLSIndex not declared
|
||||
ripgrep = {}
|
||||
rodioplay = {}
|
||||
rs-nes = {}
|
||||
rust = {}
|
||||
rust64 = {}
|
||||
rust-cairo = {}
|
||||
rust-cairo-demo = {}
|
||||
rustual-boy = {}
|
||||
schismtracker = {}
|
||||
scummvm = {}
|
||||
sdl-gfx = {}
|
||||
#sdl-player = {} # wctype_t
|
||||
sdl1 = {}
|
||||
sdl1-image = {}
|
||||
sdl1-mixer = {}
|
||||
sdl1-ttf = {}
|
||||
sdl2 = {}
|
||||
sdl2-gears = {}
|
||||
sdl2-image = {}
|
||||
sdl2-mixer = {}
|
||||
sdl2-ttf = {}
|
||||
sed = {}
|
||||
#servo = {} # some more crates to port
|
||||
shared-mime-info = {}
|
||||
shellharden = {}
|
||||
shellstorm = {}
|
||||
smith = {}
|
||||
sodium = {}
|
||||
sopwith = {}
|
||||
#ssh = {}
|
||||
strace = {}
|
||||
syobonaction = {}
|
||||
terminfo = {}
|
||||
#termplay = {} # backtrace cannot find link.h
|
||||
timidity = {}
|
||||
ttf-hack = {}
|
||||
userutils = {}
|
||||
uutils = {}
|
||||
#vice = {} # linker errors
|
||||
vim = {}
|
||||
vttest = {}
|
||||
vvvvvv = {}
|
||||
#webrender = {} # unwind
|
||||
#wesnoth = {}
|
||||
#winit = {} # tzset
|
||||
xz = {}
|
||||
zerod = {}
|
||||
zlib = {}
|
|
@ -0,0 +1,97 @@
|
|||
##############################################################################
|
||||
# Redox Demo Configuration #
|
||||
# #
|
||||
# This file defines the setup of the Redox Demo system. #
|
||||
# #
|
||||
# The "[packages]" section specifies what packages are installed in the #
|
||||
# filesystem prior to booting the system. During build, these packages must #
|
||||
# have a recipe defined in the config folder (see the Redox Book, #
|
||||
# Chapter 5.1). The first group of packages is mandatory for the system to #
|
||||
# function, although some items can be removed for special builds, #
|
||||
# e.g. The Orbital GUI is not required for a headless server. #
|
||||
# #
|
||||
# Items in the "Developer Tools" and "Games" section are optional. You can #
|
||||
# add your own programs here. #
|
||||
# #
|
||||
# The "[users]" section creates user id's and passwords. Each user will have #
|
||||
# a home directory at boot. #
|
||||
# #
|
||||
# The "[[files]]" section contains files needed by the system. If you need #
|
||||
# create a file, e.g. a config file for a program you are adding, you can do #
|
||||
# it here. #
|
||||
# #
|
||||
##############################################################################
|
||||
|
||||
include = ["../desktop.toml"]
|
||||
|
||||
# General settings
|
||||
[general]
|
||||
# Filesystem size in MiB
|
||||
filesystem_size = 1536
|
||||
|
||||
# Package settings
|
||||
[packages]
|
||||
# GUI Apps
|
||||
cosmic-edit = {}
|
||||
cosmic-files = {}
|
||||
periodictable = {}
|
||||
|
||||
# GUI Data
|
||||
cosmic-icons = {}
|
||||
intel-one-mono = {}
|
||||
pop-icon-theme = {}
|
||||
shared-mime-info = {}
|
||||
|
||||
# Shell Apps
|
||||
curl = {}
|
||||
git = {}
|
||||
gnu-grep = {}
|
||||
ripgrep = {}
|
||||
sodium = {}
|
||||
vim = {}
|
||||
|
||||
# Games
|
||||
dosbox = {}
|
||||
freedoom = {}
|
||||
neverball = {}
|
||||
prboom = {}
|
||||
redox-games = {}
|
||||
sopwith = {}
|
||||
syobonaction = {}
|
||||
|
||||
# Demos
|
||||
acid = {}
|
||||
nushell = {}
|
||||
orbclient = {}
|
||||
pixelcannon = {}
|
||||
rodioplay = {}
|
||||
gears = {}
|
||||
|
||||
# MIDI
|
||||
freepats = {}
|
||||
|
||||
[[files]]
|
||||
path = "/home/user/Welcome.txt"
|
||||
data = """
|
||||
##############################################################################
|
||||
# #
|
||||
# Welcome to Redox! #
|
||||
# #
|
||||
# Redox is an operating system written in Rust, a language with focus #
|
||||
# on safety and high performance. Redox, following the microkernel design, #
|
||||
# aims to be secure, usable, and free. Redox is inspired by previous kernels #
|
||||
# and operating systems, such as SeL4, MINIX, Plan 9, and BSD. #
|
||||
# #
|
||||
# Redox _is not_ just a kernel, it's a full-featured Operating System, #
|
||||
# providing packages (memory allocator, file system, display manager, core #
|
||||
# utilities, etc.) that together make up a functional and convenient #
|
||||
# operating system. You can loosely think of it as the GNU or BSD ecosystem, #
|
||||
# but in a memory safe language and with modern technology. #
|
||||
# #
|
||||
# The website can be found at https://www.redox-os.org. #
|
||||
# #
|
||||
# For things to try on Redox, please see #
|
||||
# https://doc.redox-os.org/book/ch02-06-trying-out-redox.html #
|
||||
# #
|
||||
##############################################################################
|
||||
"""
|
|
@ -0,0 +1,41 @@
|
|||
# Default desktop configuration using contain
|
||||
|
||||
include = ["../desktop.toml"]
|
||||
|
||||
# Override the default settings here
|
||||
|
||||
# General settings
|
||||
[general]
|
||||
# Filesystem size in MiB
|
||||
# filesystem_size = 1024
|
||||
|
||||
# Package settings
|
||||
[packages]
|
||||
# example = {}
|
||||
|
||||
# Override orbital init to use contain_orblogin
|
||||
[[files]]
|
||||
path = "/usr/lib/init.d/20_orbital"
|
||||
data = """
|
||||
audiod
|
||||
orbital contain_orblogin launcher
|
||||
"""
|
||||
|
||||
# Override console init to use contain
|
||||
[[files]]
|
||||
path = "/usr/lib/init.d/30_console"
|
||||
data = """
|
||||
getty --contain 2
|
||||
getty --contain debug: -J
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/contain.toml"
|
||||
data = """
|
||||
pass_schemes = ["rand", "null", "tcp", "udp", "thisproc", "pty", "orbital", "display.vesa"]
|
||||
sandbox_schemes = ["file"]
|
||||
files = ["file:/dev/null"]
|
||||
rofiles = ["file:/etc/passwd", "file:/etc/hostname", "file:/etc/localtime"]
|
||||
dirs = ["file:/tmp"]
|
||||
rodirs = ["file:/bin", "file:/ui"]
|
||||
"""
|
|
@ -0,0 +1,14 @@
|
|||
# Default desktop configuration
|
||||
|
||||
include = ["../desktop-minimal.toml"]
|
||||
|
||||
# Override the default settings here
|
||||
|
||||
# General settings
|
||||
[general]
|
||||
# Filesystem size in MiB
|
||||
# filesystem_size = 1024
|
||||
|
||||
# Package settings
|
||||
[packages]
|
||||
# example = {}
|
|
@ -0,0 +1,14 @@
|
|||
# Default desktop configuration
|
||||
|
||||
include = ["../desktop.toml"]
|
||||
|
||||
# Override the default settings here
|
||||
|
||||
# General settings
|
||||
[general]
|
||||
# Filesystem size in MiB
|
||||
# filesystem_size = 1024
|
||||
|
||||
# Package settings
|
||||
[packages]
|
||||
# example = {}
|
|
@ -0,0 +1,14 @@
|
|||
# Configuration for development, includes cargo and rustc
|
||||
|
||||
include = ["../dev.toml"]
|
||||
|
||||
# Override the default settings here
|
||||
|
||||
# General settings
|
||||
[general]
|
||||
# Filesystem size in MiB
|
||||
# filesystem_size = 1024
|
||||
|
||||
# Package settings
|
||||
[packages]
|
||||
# example = {}
|
|
@ -0,0 +1,115 @@
|
|||
# Jeremy's configuration
|
||||
|
||||
include = ["../desktop.toml"]
|
||||
|
||||
# General settings
|
||||
[general]
|
||||
# Filesystem size in MiB
|
||||
filesystem_size = 8192
|
||||
|
||||
# Package settings
|
||||
[packages]
|
||||
# apps
|
||||
boxedwine = {}
|
||||
cosmic-edit = {}
|
||||
cosmic-files = {}
|
||||
cosmic-term = {}
|
||||
cosmic-text = {}
|
||||
periodictable = {}
|
||||
pixelcannon = {}
|
||||
schismtracker = {}
|
||||
sodium = {}
|
||||
|
||||
# cli
|
||||
acid = {}
|
||||
cleye = {}
|
||||
ffmpeg6 = {}
|
||||
gnu-grep = {}
|
||||
lua54 = {}
|
||||
nano = {}
|
||||
nushell = {}
|
||||
perg = {}
|
||||
relibc-tests = {}
|
||||
ripgrep = {}
|
||||
sed = {}
|
||||
shellharden = {}
|
||||
xz = {}
|
||||
|
||||
# demos
|
||||
cairodemo = {}
|
||||
#cmatrix = {} # addwstr
|
||||
cpal = {}
|
||||
gears = {}
|
||||
glium = {} # does not show anything
|
||||
glutin = {}
|
||||
hematite = {}
|
||||
iced = {}
|
||||
libcosmic = {}
|
||||
orbclient = {}
|
||||
osdemo = {} # does not show anything
|
||||
pathfinder = {}
|
||||
procedural-wallpapers-rs = {}
|
||||
rodioplay = {}
|
||||
rust-cairo = {}
|
||||
rust-cairo-demo = {}
|
||||
sdl2-gears = {}
|
||||
vttest = {}
|
||||
webrender = {}
|
||||
winit = {}
|
||||
|
||||
# dev
|
||||
autoconf = {}
|
||||
automake = {}
|
||||
#cargo = {} # openssl issues
|
||||
#gcc13 = {} # libiberty errors
|
||||
gnu-binutils = {}
|
||||
gnu-make = {}
|
||||
nasm = {}
|
||||
patch = {}
|
||||
pkg-config = {}
|
||||
#rust = {} # takes too long to compile
|
||||
rustpython = {}
|
||||
|
||||
# games
|
||||
devilutionx = {}
|
||||
dosbox = {}
|
||||
eduke32 = {}
|
||||
flycast = {}
|
||||
freedoom = {}
|
||||
gigalomania = {}
|
||||
mednafen = {}
|
||||
mgba = {}
|
||||
neverball = {}
|
||||
openjazz = {}
|
||||
openjk = {}
|
||||
openttd = {}
|
||||
openttd-opengfx = {}
|
||||
openttd-openmsx = {}
|
||||
openttd-opensfx = {}
|
||||
prboom = {}
|
||||
redox-games = {}
|
||||
#retroarch = {} # need to package cores
|
||||
rs-nes = {} # need game for testing
|
||||
rust64 = {} # need roms
|
||||
rustual-boy = {} # need game for testing
|
||||
scummvm = {} # need game for testing
|
||||
sm64ex = {}
|
||||
sopwith = {}
|
||||
spacecadetpinball = {}
|
||||
syobonaction = {}
|
||||
#vice = {} # broken on new toolchain
|
||||
vvvvvv = {}
|
||||
|
||||
# stuff
|
||||
cosmic-icons = {}
|
||||
freepats = {}
|
||||
generaluser-gs = {}
|
||||
intel-one-mono = {}
|
||||
jeremy = {}
|
||||
keyboard-sfx = {}
|
||||
libc-bench = {}
|
||||
noto-color-emoji = {}
|
||||
pop-icon-theme = {}
|
||||
shared-mime-info = {}
|
||||
timidity = {}
|
||||
ttf-hack = {}
|
|
@ -0,0 +1,3 @@
|
|||
# Configuration for using resist
|
||||
|
||||
include = ["../resist.toml"]
|
|
@ -0,0 +1,14 @@
|
|||
# Minimal configuration
|
||||
|
||||
include = ["../server-minimal.toml"]
|
||||
|
||||
# Override the default settings here
|
||||
|
||||
# General settings
|
||||
[general]
|
||||
# Filesystem size in MiB
|
||||
# filesystem_size = 1024
|
||||
|
||||
# Package settings
|
||||
[packages]
|
||||
# example = {}
|
|
@ -0,0 +1,14 @@
|
|||
# Default server configuration
|
||||
|
||||
include = ["../server.toml"]
|
||||
|
||||
# Override the default settings here
|
||||
|
||||
# General settings
|
||||
[general]
|
||||
# Filesystem size in MiB
|
||||
# filesystem_size = 1024
|
||||
|
||||
# Package settings
|
||||
[packages]
|
||||
# example = {}
|
2
cookbook
2
cookbook
|
@ -1 +1 @@
|
|||
Subproject commit 84535c9062c8f977e0d7c76ade8a3c751982b4d6
|
||||
Subproject commit d0378b5c485ef7943e744ebeda4ecc453c7cd7b7
|
|
@ -30,8 +30,8 @@ RUN set -ex; \
|
|||
x86-64-unknown-redox-binutils \
|
||||
x86-64-unknown-redox-gcc \
|
||||
; \
|
||||
cargo install xargo; \
|
||||
cargo install cargo-config; \
|
||||
cargo install just@1.16.0; \
|
||||
apt-get autoremove -q -y; \
|
||||
apt-get clean -q -y; \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
config/desktop.toml
|
36
initfs.toml
36
initfs.toml
|
@ -1,36 +0,0 @@
|
|||
# This is the default configuration file
|
||||
|
||||
# General settings
|
||||
[general]
|
||||
# Do not prompt if settings are not defined
|
||||
prompt = false
|
||||
|
||||
# Package settings
|
||||
[packages]
|
||||
drivers = {}
|
||||
init = {}
|
||||
nulld = {}
|
||||
#pciids = {}
|
||||
ramfs = {}
|
||||
randd = {}
|
||||
redoxfs = {}
|
||||
zerod = {}
|
||||
|
||||
[[files]]
|
||||
path="/etc/init.rc"
|
||||
data="""
|
||||
export PATH /bin
|
||||
export TMPDIR /tmp
|
||||
nulld
|
||||
zerod
|
||||
randd
|
||||
vesad T T G
|
||||
stdio display:1
|
||||
ps2d us
|
||||
ramfs logging
|
||||
pcid /etc/pcid/initfs.toml
|
||||
redoxfs --uuid $REDOXFS_UUID file $REDOXFS_BLOCK
|
||||
cd file:
|
||||
export PATH file:/bin
|
||||
run.d /etc/init.d
|
||||
"""
|
|
@ -1,36 +0,0 @@
|
|||
# This is the default configuration file
|
||||
|
||||
# General settings
|
||||
[general]
|
||||
# Do not prompt if settings are not defined
|
||||
prompt = false
|
||||
|
||||
# Package settings
|
||||
[packages]
|
||||
drivers = {}
|
||||
init = {}
|
||||
nulld = {}
|
||||
#pciids = {}
|
||||
ramfs = {}
|
||||
randd = {}
|
||||
redoxfs = {}
|
||||
zerod = {}
|
||||
|
||||
[[files]]
|
||||
path="/etc/init.rc"
|
||||
data="""
|
||||
export PATH /bin
|
||||
export TMPDIR /tmp
|
||||
nulld
|
||||
zerod
|
||||
randd
|
||||
vesad T T G
|
||||
stdio display:1
|
||||
ps2d us
|
||||
ramfs logging
|
||||
pcid /etc/pcid/initfs.toml
|
||||
redoxfs disk/live: file
|
||||
cd file:
|
||||
export PATH file:/bin
|
||||
run.d /etc/init.d
|
||||
"""
|
|
@ -1,36 +0,0 @@
|
|||
# This is the default configuration file
|
||||
|
||||
# General settings
|
||||
[general]
|
||||
# Do not prompt if settings are not defined
|
||||
prompt = false
|
||||
|
||||
# Package settings
|
||||
[packages]
|
||||
drivers = {}
|
||||
init = {}
|
||||
nulld = {}
|
||||
#pciids = {}
|
||||
ramfs = {}
|
||||
randd = {}
|
||||
redoxfs = {}
|
||||
zerod = {}
|
||||
|
||||
[[files]]
|
||||
path="/etc/init.rc"
|
||||
data="""
|
||||
export PATH /bin
|
||||
export TMPDIR /tmp
|
||||
nulld
|
||||
zerod
|
||||
randd
|
||||
vesad T T G
|
||||
stdio display:1
|
||||
ps2d us
|
||||
ramfs logging
|
||||
pcid /etc/pcid/initfs.toml
|
||||
redoxfs disk/live: file
|
||||
cd file:
|
||||
export PATH file:/bin
|
||||
run.d /etc/init.d
|
||||
"""
|
|
@ -1 +1 @@
|
|||
Subproject commit 150d65c31ba05c829ba239a3febe1e44b6e512e8
|
||||
Subproject commit 1c30f4a3c1f55974aed694b478ff77c0552a1576
|
1
isolinux
1
isolinux
|
@ -1 +0,0 @@
|
|||
Subproject commit 3cf79d335400af8fc3a87a13f0ae12777a766b3b
|
1
kernel
1
kernel
|
@ -1 +0,0 @@
|
|||
Subproject commit 903390283066a988b74e86e3630106b12b4df806
|
|
@ -1,2 +0,0 @@
|
|||
bochs: build/livedisk.bin
|
||||
bochs -f bochs.$(ARCH)
|
|
@ -0,0 +1,42 @@
|
|||
IMG_TAG?=$(shell git describe --tags)
|
||||
IMG_SEPARATOR?=_
|
||||
IMG_DIR?=build/img/$(ARCH)
|
||||
|
||||
# CI image target - build desktop, server and demo images
|
||||
# To leave out the build tag, set both IMG_TAG and IMG_SEPARATOR to null
|
||||
ci-img: FORCE
|
||||
rm -rf $(IMG_DIR)
|
||||
mkdir -p $(IMG_DIR)
|
||||
$(MAKE) demo desktop server
|
||||
cd $(IMG_DIR) && zstd --rm *
|
||||
cd $(IMG_DIR) && sha256sum -b * > SHA256SUM
|
||||
|
||||
# The name of the target must match the name of the filesystem config file
|
||||
desktop server demo: FORCE
|
||||
rm -f "build/$(ARCH)/$@/harddrive.img" "build/$(ARCH)/$@/livedisk.iso"
|
||||
$(MAKE) CONFIG_NAME=$@ build/$(ARCH)/$@/harddrive.img build/$(ARCH)/$@/livedisk.iso
|
||||
cp "build/$(ARCH)/$@/harddrive.img" "$(IMG_DIR)/redox_$(@)$(IMG_SEPARATOR)$(IMG_TAG)_harddrive.img"
|
||||
cp "build/$(ARCH)/$@/livedisk.iso" "$(IMG_DIR)/redox_$(@)$(IMG_SEPARATOR)$(IMG_TAG)_livedisk.iso"
|
||||
|
||||
# CI packaging target
|
||||
ci-pkg: prefix FORCE
|
||||
$(HOST_CARGO) build --manifest-path cookbook/Cargo.toml --release
|
||||
$(HOST_CARGO) build --manifest-path installer/Cargo.toml --release
|
||||
export PATH="$(PREFIX_PATH):$$PATH" && \
|
||||
PACKAGES="$$($(INSTALLER) --list-packages -c config/$(ARCH)/ci.toml)" && \
|
||||
cd cookbook && \
|
||||
./fetch.sh "$${PACKAGES}" && \
|
||||
./repo.sh $(REPO_NONSTOP) "$${PACKAGES}"
|
||||
|
||||
# CI toolchain
|
||||
ci-toolchain: FORCE
|
||||
$(MAKE) PREFIX_BINARY=0 \
|
||||
"prefix/$(TARGET)/gcc-install.tar.gz" \
|
||||
"prefix/$(TARGET)/relibc-install.tar.gz" \
|
||||
"prefix/$(TARGET)/rust-install.tar.gz"
|
||||
rm -rf "build/toolchain/$(TARGET)"
|
||||
mkdir -p "build/toolchain/$(TARGET)"
|
||||
cp "prefix/$(TARGET)/gcc-install.tar.gz" "build/toolchain/$(TARGET)/gcc-install.tar.gz"
|
||||
cp "prefix/$(TARGET)/relibc-install.tar.gz" "build/toolchain/$(TARGET)/relibc-install.tar.gz"
|
||||
cp "prefix/$(TARGET)/rust-install.tar.gz" "build/toolchain/$(TARGET)/rust-install.tar.gz"
|
||||
cd "build/toolchain/$(TARGET)" && sha256sum -b * > SHA256SUM
|
96
mk/config.mk
96
mk/config.mk
|
@ -1,59 +1,89 @@
|
|||
-include .config
|
||||
|
||||
HOST_ARCH?=$(shell uname -m)
|
||||
|
||||
# Configuration
|
||||
## Architecture to build Redox for (aarch64 or x86_64)
|
||||
ARCH?=x86_64
|
||||
## Flags to pass to the installer (empty to download binary packages)
|
||||
INSTALLER_FLAGS?=--cookbook=cookbook
|
||||
## Enabled to use binary prefix (much faster)
|
||||
## Architecture to build Redox for (aarch64, i686, or x86_64). Defaults to a host one
|
||||
ARCH?=$(HOST_ARCH)
|
||||
## Sub-device type for aarch64 if needed
|
||||
BOARD?=
|
||||
## Enable to use binary prefix (much faster)
|
||||
PREFIX_BINARY?=1
|
||||
## Filesystem size in MB (256 is the default)
|
||||
FILESYSTEM_SIZE?=256
|
||||
## Enable to use binary packages (much faster)
|
||||
REPO_BINARY?=0
|
||||
## Name of the configuration to include in the image name e.g. desktop or server
|
||||
CONFIG_NAME?=desktop
|
||||
## Ignore errors when building the repo, attempt to build every package
|
||||
## REPO_NONSTOP?=--nonstop
|
||||
REPO_NONSTOP?=
|
||||
## Select filesystem config
|
||||
ifeq ($(BOARD),)
|
||||
FILESYSTEM_CONFIG?=config/$(ARCH)/$(CONFIG_NAME).toml
|
||||
else
|
||||
FILESYSTEM_CONFIG?=config/$(ARCH)/$(BOARD)/$(CONFIG_NAME).toml
|
||||
endif
|
||||
## Filesystem size in MB (default comes from filesystem_size in the FILESYSTEM_CONFIG)
|
||||
FILESYSTEM_SIZE?=$(shell cargo run --release --manifest-path installer/Cargo.toml -- --filesystem-size -c $(FILESYSTEM_CONFIG))
|
||||
## Flags to pass to redoxfs-mkfs. Add --encrypt to set up disk encryption
|
||||
REDOXFS_MKFS_FLAGS?=
|
||||
## Set to 1 to enable Podman build, any other value will disable it
|
||||
PODMAN_BUILD?=0
|
||||
## The containerfile to use for the Podman base image
|
||||
CONTAINERFILE?=podman/redox-base-containerfile
|
||||
|
||||
# Per host variables
|
||||
HOST_CARGO=env -u RUSTUP_TOOLCHAIN cargo
|
||||
export NPROC=nproc
|
||||
export REDOX_MAKE=make
|
||||
HOST_TARGET := $(shell env -u RUSTUP_TOOLCHAIN rustc -vV | grep host | cut -d: -f2 | tr -d " ")
|
||||
UNAME := $(shell uname)
|
||||
ifeq ($(UNAME),Darwin)
|
||||
FUMOUNT=sudo umount
|
||||
FUMOUNT=umount
|
||||
export NPROC=sysctl -n hw.ncpu
|
||||
export REDOX_MAKE=make
|
||||
PREFIX_BINARY=0
|
||||
VB_AUDIO=coreaudio
|
||||
VBM=/Applications/VirtualBox.app/Contents/MacOS/VBoxManage
|
||||
else ifeq ($(UNAME),FreeBSD)
|
||||
FUMOUNT=sudo umount
|
||||
export NPROC=sysctl -n hw.ncpu
|
||||
export REDOX_MAKE=gmake
|
||||
PREFIX_BINARY=0
|
||||
VB_AUDIO=pulse # To check, will probaly be OSS on most setups
|
||||
VB_AUDIO=pulse # To check, will probably be OSS on most setups
|
||||
VBM=VBoxManage
|
||||
else
|
||||
FUMOUNT=fusermount -u
|
||||
export NPROC=nproc
|
||||
export REDOX_MAKE=make
|
||||
# Detect which version of the fusermount binary is available.
|
||||
ifneq (, $(shell which fusermount3))
|
||||
FUMOUNT=fusermount3 -u
|
||||
else
|
||||
FUMOUNT=fusermount -u
|
||||
endif
|
||||
|
||||
VB_AUDIO=pulse
|
||||
VBM=VBoxManage
|
||||
endif
|
||||
|
||||
ifneq ($(UNAME),Linux)
|
||||
PREFIX_BINARY=0
|
||||
endif
|
||||
ifneq ($(HOST_ARCH),x86_64)
|
||||
PREFIX_BINARY=0
|
||||
endif
|
||||
|
||||
# Automatic variables
|
||||
ROOT=$(CURDIR)
|
||||
export RUST_COMPILER_RT_ROOT=$(ROOT)/rust/src/llvm-project/compiler-rt
|
||||
export RUST_TARGET_PATH=$(ROOT)/kernel/targets
|
||||
export XARGO_RUST_SRC=$(ROOT)/rust/src
|
||||
|
||||
## Kernel variables
|
||||
KTARGET=$(ARCH)-unknown-none
|
||||
KBUILD=build/kernel
|
||||
|
||||
## Userspace variables
|
||||
export TARGET=$(ARCH)-unknown-redox
|
||||
BUILD=build/userspace
|
||||
INSTALLER=\
|
||||
export REDOXER_TOOLCHAIN="$(ROOT)/$(PREFIX_INSTALL)" && \
|
||||
export PATH="$(PREFIX_PATH):$$PATH" && \
|
||||
installer/target/release/redox_installer $(INSTALLER_FLAGS)
|
||||
BUILD=build/$(ARCH)/$(CONFIG_NAME)
|
||||
INSTALLER=installer/target/release/redox_installer
|
||||
ifeq ($(REPO_BINARY),0)
|
||||
INSTALLER+=--cookbook=cookbook
|
||||
REPO_TAG=$(BUILD)/repo.tag
|
||||
else
|
||||
INSTALLER+=--cookbook=cookbook --repo-binary
|
||||
REPO_TAG=$(BUILD)/repo.tag
|
||||
endif
|
||||
|
||||
## Bootloader variables
|
||||
EFI_TARGET=$(ARCH)-unknown-uefi
|
||||
FSTOOLS_TAG=build/fstools.tag
|
||||
export BOARD
|
||||
|
||||
## Cross compiler variables
|
||||
AR=$(TARGET)-gcc-ar
|
||||
|
@ -72,3 +102,11 @@ STRIP=$(TARGET)-strip
|
|||
export AR_$(subst -,_,$(TARGET))=$(TARGET)-ar
|
||||
export CC_$(subst -,_,$(TARGET))=$(TARGET)-gcc
|
||||
export CXX_$(subst -,_,$(TARGET))=$(TARGET)-g++
|
||||
|
||||
|
||||
## If Podman is being used, a container is required
|
||||
ifeq ($(PODMAN_BUILD),1)
|
||||
CONTAINER_TAG=build/container.tag
|
||||
else
|
||||
CONTAINER_TAG=
|
||||
endif
|
||||
|
|
|
@ -1,19 +1,27 @@
|
|||
# Dependencies
|
||||
|
||||
# Don't check for Rust/Cargo if you will be using Podman
|
||||
ifneq ($(PODMAN_BUILD),1)
|
||||
|
||||
ifeq ($(shell which rustup),)
|
||||
$(error rustup not found, install from "https://rustup.rs/")
|
||||
endif
|
||||
|
||||
ifeq ($(shell which cbindgen),)
|
||||
$(error cbindgen not found, install from crates.io or from your package manager)
|
||||
endif
|
||||
|
||||
ifeq ($(shell which nasm),)
|
||||
$(error nasm not found, install from your package manager)
|
||||
endif
|
||||
|
||||
ifeq ($(shell which just),)
|
||||
$(error just not found, install from crates.io or from your package manager)
|
||||
endif
|
||||
|
||||
CARGO_CONFIG_VERSION=0.1.1
|
||||
ifeq ($(shell env -u RUSTUP_TOOLCHAIN cargo install --list | grep '^cargo-config v$(CARGO_CONFIG_VERSION):$$'),)
|
||||
$(error cargo-config $(CARGO_CONFIG_VERSION) not found, run "cargo install --force --version $(CARGO_CONFIG_VERSION) cargo-config")
|
||||
endif
|
||||
|
||||
XARGO_VERSION=0.3.20
|
||||
ifeq ($(shell env -u RUSTUP_TOOLCHAIN cargo install --list | grep '^xargo v$(XARGO_VERSION):$$'),)
|
||||
$(error xargo $(XARGO_VERSION) not found, run "cargo install --force --version $(XARGO_VERSION) xargo")
|
||||
endif
|
||||
|
|
122
mk/disk.mk
122
mk/disk.mk
|
@ -1,78 +1,50 @@
|
|||
build/bootloader: bootloader/$(ARCH)/**
|
||||
mkdir -p build
|
||||
nasm -f bin -o $@ -D ARCH_$(ARCH) -ibootloader/$(ARCH)/ bootloader/$(ARCH)/disk.asm
|
||||
|
||||
build/harddrive.bin: build/filesystem.bin bootloader/$(ARCH)/**
|
||||
nasm -f bin -o build/bootsector.bin -D ARCH_$(ARCH) -ibootloader/$(ARCH)/ bootloader/$(ARCH)/disk.asm
|
||||
dd if=/dev/zero of=$@.partial bs=1M count=$$(expr $$(du -m $< | cut -f1) + 2)
|
||||
parted -s -a minimal $@.partial mklabel msdos
|
||||
parted -s -a minimal $@.partial mkpart primary 2048s $$(expr $$(du -m $< | cut -f1) \* 2048 + 2048)s
|
||||
dd if=build/bootsector.bin of=$@.partial bs=1 count=446 conv=notrunc
|
||||
dd if=build/bootsector.bin of=$@.partial bs=512 skip=1 seek=1 conv=notrunc
|
||||
dd if=$< of=$@.partial bs=1M seek=1 conv=notrunc
|
||||
$(BUILD)/harddrive.img: $(FSTOOLS_TAG) $(REPO_TAG)
|
||||
mkdir -p $(BUILD)
|
||||
rm -rf $@ $@.partial
|
||||
-$(FUMOUNT) /tmp/redox_installer || true
|
||||
truncate -s "$(FILESYSTEM_SIZE)m" $@.partial
|
||||
umask 002 && $(INSTALLER) -c $(FILESYSTEM_CONFIG) $@.partial
|
||||
mv $@.partial $@
|
||||
|
||||
build/livedisk.bin: build/kernel_live bootloader/$(ARCH)/**
|
||||
nasm -f bin -o $@ -D ARCH_$(ARCH) -D KERNEL=$< -ibootloader/$(ARCH)/ bootloader/$(ARCH)/disk.asm
|
||||
|
||||
build/livedisk.iso: build/livedisk.bin.gz
|
||||
rm -rf build/iso/
|
||||
mkdir -p build/iso/
|
||||
cp -RL isolinux build/iso/
|
||||
cp $< build/iso/livedisk.gz
|
||||
genisoimage -o $@ -b isolinux/isolinux.bin -c isolinux/boot.cat \
|
||||
-no-emul-boot -boot-load-size 4 -boot-info-table \
|
||||
build/iso/
|
||||
isohybrid $@
|
||||
|
||||
bootloader-coreboot/build/bootloader: build/kernel_coreboot
|
||||
env --unset=RUST_TARGET_PATH --unset=RUSTUP_TOOLCHAIN --unset=XARGO_RUST_SRC \
|
||||
$(MAKE) -C bootloader-coreboot clean build/bootloader KERNEL="$(ROOT)/$<"
|
||||
|
||||
build/coreboot.elf: bootloader-coreboot/build/bootloader
|
||||
mkdir -p build
|
||||
cp -v $< $@
|
||||
|
||||
bootloader-efi/build/$(EFI_TARGET)/boot.efi: FORCE
|
||||
env --unset=RUST_TARGET_PATH --unset=RUSTUP_TOOLCHAIN --unset=XARGO_RUST_SRC \
|
||||
$(MAKE) -C bootloader-efi build/$(EFI_TARGET)/boot.efi TARGET=$(EFI_TARGET)
|
||||
|
||||
build/bootloader.efi: bootloader-efi/build/$(EFI_TARGET)/boot.efi
|
||||
mkdir -p build
|
||||
cp -v $< $@
|
||||
|
||||
build/harddrive-efi.bin: build/bootloader.efi build/filesystem.bin
|
||||
# TODO: Validate the correctness of this \
|
||||
# Populate an EFI system partition \
|
||||
dd if=/dev/zero of=$@.esp bs=1048576 count=$$(expr $$(du -m $< | cut -f1) + 1) && \
|
||||
mkfs.vfat $@.esp && \
|
||||
mmd -i $@.esp efi && \
|
||||
mmd -i $@.esp efi/boot && \
|
||||
mcopy -i $@.esp $< ::efi/boot/bootx64.efi && \
|
||||
# Create the disk \
|
||||
dd if=/dev/zero of=$@ bs=1048576 count=$$(expr $$(du -m $< | cut -f1) + 2 + $$(du -m build/filesystem.bin | cut -f1)) && \
|
||||
# Create partition table \
|
||||
parted -s -a minimal $@ mklabel gpt && \
|
||||
efi_disk_size=$$(du -m $< | cut -f1) && \
|
||||
efi_disk_blkcount=$$(expr $$efi_disk_size \* $$(expr 1048576 / 512)) && \
|
||||
efi_end=$$(expr 2048 + $$efi_disk_blkcount) && \
|
||||
efi_last=$$(expr $$efi_end - 1) && \
|
||||
parted -s -a minimal $@ mkpart EFI fat32 2048s "$${efi_last}s" && \
|
||||
fs_disk_size=$$(du -m build/filesystem.bin | cut -f1) && \
|
||||
fs_disk_blkcount=$$(expr $$fs_disk_size \* $$(expr 1048576 / 512)) && \
|
||||
parted -s -a minimal $@ mkpart redox ext4 "$${efi_end}s" $$(expr $$efi_end + $$fs_disk_blkcount)s && \
|
||||
parted -s -a minimal $@ set 1 boot on && \
|
||||
parted -s -a minimal $@ set 1 esp on && \
|
||||
# Write the partitions \
|
||||
dd if=$@.esp bs=512 seek=2048 conv=notrunc count=$$efi_disk_blkcount of=$@ && \
|
||||
dd if=build/filesystem.bin seek=$$efi_end bs=512 conv=notrunc of=$@ count=$$fs_disk_blkcount
|
||||
|
||||
build/livedisk-efi.iso: build/bootloader.efi build/kernel_live
|
||||
dd if=/dev/zero of=$@.partial bs=1048576 count=$$(expr $$(du -mc $^ | grep 'total$$' | cut -f1) + 1)
|
||||
mkfs.vfat $@.partial
|
||||
mmd -i $@.partial efi
|
||||
mmd -i $@.partial efi/boot
|
||||
mcopy -i $@.partial $< ::efi/boot/bootx64.efi
|
||||
mmd -i $@.partial redox_bootloader
|
||||
mcopy -i $@.partial -s build/kernel_live ::redox_bootloader/kernel
|
||||
$(BUILD)/livedisk.iso: $(FSTOOLS_TAG) $(REPO_TAG)
|
||||
mkdir -p $(BUILD)
|
||||
rm -rf $@ $@.partial
|
||||
-$(FUMOUNT) /tmp/redox_installer || true
|
||||
truncate -s "$(FILESYSTEM_SIZE)m" $@.partial
|
||||
umask 002 && $(INSTALLER) -c $(FILESYSTEM_CONFIG) --live $@.partial
|
||||
mv $@.partial $@
|
||||
|
||||
$(BUILD)/filesystem.img: $(FSTOOLS_TAG) $(REPO_TAG)
|
||||
mkdir -p $(BUILD)
|
||||
-$(FUMOUNT) $(BUILD)/filesystem/ || true
|
||||
rm -rf $@ $@.partial $(BUILD)/filesystem/
|
||||
-$(FUMOUNT) /tmp/redox_installer || true
|
||||
truncate -s "$(FILESYSTEM_SIZE)m" $@.partial
|
||||
redoxfs/target/release/redoxfs-mkfs $(REDOXFS_MKFS_FLAGS) $@.partial
|
||||
mkdir -p $(BUILD)/filesystem/
|
||||
redoxfs/target/release/redoxfs $@.partial $(BUILD)/filesystem/
|
||||
sleep 1
|
||||
pgrep redoxfs
|
||||
umask 002 && $(INSTALLER) -c $(FILESYSTEM_CONFIG) $(BUILD)/filesystem/
|
||||
sync
|
||||
-$(FUMOUNT) $(BUILD)/filesystem/ || true
|
||||
rm -rf $(BUILD)/filesystem/
|
||||
mv $@.partial $@
|
||||
|
||||
mount: $(FSTOOLS_TAG) FORCE
|
||||
mkdir -p $(BUILD)/filesystem/
|
||||
redoxfs/target/release/redoxfs $(BUILD)/harddrive.img $(BUILD)/filesystem/
|
||||
sleep 2
|
||||
pgrep redoxfs
|
||||
|
||||
mount_extra: $(FSTOOLS_TAG) FORCE
|
||||
mkdir -p $(BUILD)/filesystem/
|
||||
redoxfs/target/release/redoxfs $(BUILD)/extra.img $(BUILD)/filesystem/
|
||||
sleep 2
|
||||
pgrep redoxfs
|
||||
|
||||
unmount: FORCE
|
||||
sync
|
||||
-$(FUMOUNT) $(BUILD)/filesystem/ || true
|
||||
rm -rf $(BUILD)/filesystem/
|
||||
-$(FUMOUNT) /tmp/redox_installer || true
|
||||
|
|
|
@ -1,41 +0,0 @@
|
|||
build/filesystem.bin: filesystem.toml build/bootloader build/kernel prefix
|
||||
cargo build --manifest-path cookbook/Cargo.toml --release
|
||||
cargo build --manifest-path installer/Cargo.toml --release
|
||||
cargo build --manifest-path redoxfs/Cargo.toml --release
|
||||
-$(FUMOUNT) build/filesystem/ || true
|
||||
rm -rf $@ $@.partial build/filesystem/
|
||||
dd if=/dev/zero of=$@.partial bs=1048576 count="$(FILESYSTEM_SIZE)"
|
||||
cargo run --manifest-path redoxfs/Cargo.toml --release --bin redoxfs-mkfs $@.partial
|
||||
mkdir -p build/filesystem/
|
||||
redoxfs/target/release/redoxfs $@.partial build/filesystem/
|
||||
sleep 2
|
||||
pgrep redoxfs
|
||||
cp $< build/filesystem/filesystem.toml
|
||||
cp build/bootloader build/filesystem/bootloader
|
||||
cp build/kernel build/filesystem/kernel
|
||||
cp -r $(ROOT)/$(PREFIX_INSTALL)/$(TARGET)/include build/filesystem/include
|
||||
cp -r $(ROOT)/$(PREFIX_INSTALL)/$(TARGET)/lib build/filesystem/lib
|
||||
$(INSTALLER) -c $< build/filesystem/
|
||||
sync
|
||||
-$(FUMOUNT) build/filesystem/ || true
|
||||
rm -rf build/filesystem/
|
||||
mv $@.partial $@
|
||||
|
||||
mount: FORCE
|
||||
mkdir -p build/filesystem/
|
||||
cargo build --manifest-path redoxfs/Cargo.toml --release --bin redoxfs
|
||||
redoxfs/target/release/redoxfs build/harddrive.bin build/filesystem/
|
||||
sleep 2
|
||||
pgrep redoxfs
|
||||
|
||||
mount_extra: FORCE
|
||||
mkdir -p build/filesystem/
|
||||
cargo build --manifest-path redoxfs/Cargo.toml --release --bin redoxfs
|
||||
redoxfs/target/release/redoxfs build/extra.bin build/filesystem/
|
||||
sleep 2
|
||||
pgrep redoxfs
|
||||
|
||||
unmount: FORCE
|
||||
sync
|
||||
-$(FUMOUNT) build/filesystem/ || true
|
||||
rm -rf build/filesystem/
|
|
@ -0,0 +1,22 @@
|
|||
fstools: $(FSTOOLS_TAG)
|
||||
|
||||
$(FSTOOLS_TAG): cookbook installer redoxfs $(CONTAINER_TAG)
|
||||
ifeq ($(PODMAN_BUILD),1)
|
||||
$(PODMAN_RUN) $(MAKE) $@
|
||||
else
|
||||
$(HOST_CARGO) build --manifest-path cookbook/Cargo.toml --release
|
||||
$(HOST_CARGO) build --manifest-path installer/Cargo.toml --release
|
||||
$(HOST_CARGO) build --manifest-path redoxfs/Cargo.toml --release --bin redoxfs --bin redoxfs-mkfs
|
||||
mkdir -p build
|
||||
touch $@
|
||||
endif
|
||||
|
||||
fstools_clean: FORCE $(CONTAINER_TAG)
|
||||
ifeq ($(PODMAN_BUILD),1)
|
||||
$(PODMAN_RUN) $(MAKE) $@
|
||||
else
|
||||
$(HOST_CARGO) clean --manifest-path cookbook/Cargo.toml
|
||||
$(HOST_CARGO) clean --manifest-path installer/Cargo.toml
|
||||
$(HOST_CARGO) clean --manifest-path redoxfs/Cargo.toml
|
||||
rm -f $(FSTOOLS_TAG)
|
||||
endif
|
40
mk/initfs.mk
40
mk/initfs.mk
|
@ -1,40 +0,0 @@
|
|||
INITFS_RM_BINS=alxd e1000d ihdad ixgbed pcspkrd redoxfs-ar redoxfs-mkfs rtl8168d usbctl usbhidd usbscsid xhcid
|
||||
|
||||
build/initfs.tag: initfs.toml prefix
|
||||
cargo build --manifest-path cookbook/Cargo.toml --release
|
||||
cargo build --manifest-path installer/Cargo.toml --release
|
||||
rm -f build/libkernel.a
|
||||
rm -rf build/initfs
|
||||
mkdir -p build/initfs
|
||||
$(INSTALLER) -c $< build/initfs/
|
||||
#TODO: HACK FOR SMALLER INITFS, FIX IN PACKAGING
|
||||
for bin in $(INITFS_RM_BINS); do \
|
||||
rm -f build/initfs/bin/$$bin; \
|
||||
done
|
||||
touch $@
|
||||
|
||||
build/initfs_coreboot.tag: initfs_coreboot.toml prefix
|
||||
cargo build --manifest-path cookbook/Cargo.toml --release
|
||||
cargo build --manifest-path installer/Cargo.toml --release
|
||||
rm -f build/libkernel_coreboot.a
|
||||
rm -rf build/initfs_coreboot
|
||||
mkdir -p build/initfs_coreboot
|
||||
$(INSTALLER) -c $< build/initfs_coreboot/
|
||||
#TODO: HACK FOR SMALLER INITFS, FIX IN PACKAGING
|
||||
for bin in $(INITFS_RM_BINS); do \
|
||||
rm -f build/initfs_coreboot/bin/$$bin; \
|
||||
done
|
||||
touch $@
|
||||
|
||||
build/initfs_live.tag: initfs_live.toml prefix
|
||||
cargo build --manifest-path cookbook/Cargo.toml --release
|
||||
cargo build --manifest-path installer/Cargo.toml --release
|
||||
rm -f build/libkernel_live.a
|
||||
rm -rf build/initfs_live
|
||||
mkdir -p build/initfs_live
|
||||
$(INSTALLER) -c $< build/initfs_live/
|
||||
#TODO: HACK FOR SMALLER INITFS, FIX IN PACKAGING
|
||||
for bin in $(INITFS_RM_BINS); do \
|
||||
rm -f build/initfs_live/bin/$$bin; \
|
||||
done
|
||||
touch $@
|
43
mk/kernel.mk
43
mk/kernel.mk
|
@ -1,43 +0,0 @@
|
|||
build/libkernel.a: kernel/Cargo.lock kernel/Cargo.toml kernel/src/* kernel/src/*/* kernel/src/*/*/* kernel/src/*/*/*/* build/initfs.tag
|
||||
export PATH="$(PREFIX_PATH):$$PATH" && \
|
||||
export INITFS_FOLDER=$(ROOT)/build/initfs && \
|
||||
cd kernel && \
|
||||
cargo rustc --lib --target=$(ROOT)/kernel/targets/$(KTARGET).json --release -Z build-std=core,alloc -- -C soft-float -C debuginfo=2 -C lto --emit link=../$@
|
||||
|
||||
build/libkernel_coreboot.a: kernel/Cargo.toml kernel/src/* kernel/src/*/* kernel/src/*/*/* kernel/src/*/*/*/* build/initfs_coreboot.tag
|
||||
export PATH="$(PREFIX_PATH):$$PATH" && \
|
||||
export INITFS_FOLDER=$(ROOT)/build/initfs_coreboot && \
|
||||
cd kernel && \
|
||||
cargo rustc --lib --target=$(ROOT)/kernel/targets/$(KTARGET).json --release --features live -Z build-std=core,alloc -- -C soft-float -C debuginfo=2 -C lto --emit link=../$@
|
||||
|
||||
build/libkernel_live.a: kernel/Cargo.toml kernel/src/* kernel/src/*/* kernel/src/*/*/* kernel/src/*/*/*/* build/initfs_live.tag
|
||||
export PATH="$(PREFIX_PATH):$$PATH" && \
|
||||
export INITFS_FOLDER=$(ROOT)/build/initfs_live && \
|
||||
cd kernel && \
|
||||
cargo rustc --lib --target=$(ROOT)/kernel/targets/$(KTARGET).json --release --features live -Z build-std=core,alloc -- -C soft-float -C debuginfo=2 -C lto --emit link=../$@
|
||||
|
||||
build/kernel: kernel/linkers/$(ARCH).ld build/libkernel.a
|
||||
export PATH="$(PREFIX_PATH):$$PATH" && \
|
||||
$(LD) --gc-sections -z max-page-size=0x1000 -T $< -o $@ build/libkernel.a && \
|
||||
$(OBJCOPY) --only-keep-debug $@ $@.sym && \
|
||||
$(OBJCOPY) --strip-debug $@
|
||||
|
||||
build/kernel_coreboot: kernel/linkers/$(ARCH).ld build/libkernel_coreboot.a build/live.o
|
||||
export PATH="$(PREFIX_PATH):$$PATH" && \
|
||||
$(LD) --gc-sections -z max-page-size=0x1000 -T $< -o $@ build/libkernel_coreboot.a build/live.o && \
|
||||
$(OBJCOPY) --only-keep-debug $@ $@.sym && \
|
||||
$(OBJCOPY) --strip-debug $@
|
||||
|
||||
build/kernel_live: kernel/linkers/$(ARCH).ld build/libkernel_live.a build/live.o
|
||||
export PATH="$(PREFIX_PATH):$$PATH" && \
|
||||
$(LD) --gc-sections -z max-page-size=0x1000 -T $< -o $@ build/libkernel_live.a build/live.o && \
|
||||
$(OBJCOPY) --only-keep-debug $@ $@.sym && \
|
||||
$(OBJCOPY) --strip-debug $@
|
||||
|
||||
build/live.o: build/filesystem.bin
|
||||
#TODO: More general use of $(ARCH)
|
||||
export PATH="$(PREFIX_PATH):$$PATH" && \
|
||||
$(OBJCOPY) -I binary -O elf64-x86-64 -B i386:x86-64 $< $@ \
|
||||
--redefine-sym _binary_build_filesystem_bin_start=__live_start \
|
||||
--redefine-sym _binary_build_filesystem_bin_end=__live_end \
|
||||
--redefine-sym _binary_build_filesystem_bin_size=__live_size
|
|
@ -0,0 +1,65 @@
|
|||
##############################################
|
||||
# podman.mk - Use Podman to build components #
|
||||
##############################################
|
||||
|
||||
# Configuration variables for running make in Podman
|
||||
## Tag the podman image $IMAGE_TAG
|
||||
IMAGE_TAG?=redox-base
|
||||
## Working Directory in Podman
|
||||
CONTAINER_WORKDIR?=/mnt/redox
|
||||
## Podman Home Directory
|
||||
PODMAN_HOME?=$(ROOT)/build/podman
|
||||
## Podman command with its many arguments
|
||||
PODMAN_VOLUMES?=--volume $(ROOT):$(CONTAINER_WORKDIR):Z --volume $(PODMAN_HOME):/home:Z
|
||||
PODMAN_ENV?=--env PATH=/home/poduser/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin --env PODMAN_BUILD=0
|
||||
PODMAN_CONFIG?=--env ARCH=$(ARCH) --env CONFIG_NAME=$(CONFIG_NAME) --env FILESYSTEM_CONFIG=$(FILESYSTEM_CONFIG)
|
||||
PODMAN_OPTIONS?=--rm --workdir $(CONTAINER_WORKDIR) --userns keep-id --user `id -u` --interactive --tty --env TERM=$(TERM)
|
||||
PODMAN_RUN?=podman run $(PODMAN_OPTIONS) $(PODMAN_VOLUMES) $(PODMAN_ENV) $(PODMAN_CONFIG) $(IMAGE_TAG)
|
||||
|
||||
container_shell: build/container.tag
|
||||
ifeq ($(PODMAN_BUILD),1)
|
||||
podman run $(PODMAN_VOLUMES) $(PODMAN_OPTIONS) $(PODMAN_ENV) --tty $(IMAGE_TAG) bash
|
||||
else
|
||||
@echo PODMAN_BUILD=$(PODMAN_BUILD), please set it to 1 in mk/config.mk
|
||||
endif
|
||||
|
||||
container_su: FORCE
|
||||
podman exec --user=0 --latest --interactive --tty bash
|
||||
|
||||
container_clean: FORCE
|
||||
rm -f build/container.tag
|
||||
@echo "If podman dir cannot be removed, remove with \"sudo rm\"."
|
||||
-rm -rf $(PODMAN_HOME) || true
|
||||
@echo "For complete clean of images and containers, use \"podman system reset\""
|
||||
-podman image rm --force $(IMAGE_TAG) || true
|
||||
|
||||
container_touch: FORCE
|
||||
ifeq ($(PODMAN_BUILD),1)
|
||||
rm -f build/container.tag
|
||||
podman image exists $(IMAGE_TAG) || (echo "Image does not exist, it will be rebuilt during normal make."; exit 1)
|
||||
touch build/container.tag
|
||||
else
|
||||
@echo PODMAN_BUILD=$(PODMAN_BUILD), container not required.
|
||||
endif
|
||||
|
||||
container_kill: FORCE
|
||||
podman kill --latest --signal SIGKILL
|
||||
|
||||
## Must match the value of CONTAINER_TAG in config.mk
|
||||
build/container.tag: $(CONTAINERFILE)
|
||||
ifeq ($(PODMAN_BUILD),1)
|
||||
rm -f build/container.tag
|
||||
@echo "If podman_home dir cannot be removed, remove with \"sudo rm\"."
|
||||
-rm -rf $(PODMAN_HOME) || true
|
||||
-podman image rm --force $(IMAGE_TAG) || true
|
||||
mkdir -p $(PODMAN_HOME)
|
||||
@echo "Building Podman image. This may take some time."
|
||||
sed s/_UID_/`id -u`/ $(CONTAINERFILE) | podman build --file - $(PODMAN_VOLUMES) --tag $(IMAGE_TAG)
|
||||
@echo "Mapping Podman user space. Please wait."
|
||||
$(PODMAN_RUN) bash -e podman/rustinstall.sh
|
||||
mkdir -p build
|
||||
touch $@
|
||||
@echo "Podman ready!"
|
||||
else
|
||||
@echo PODMAN_BUILD=$(PODMAN_BUILD), container not required.
|
||||
endif
|
105
mk/prefix.mk
105
mk/prefix.mk
|
@ -3,8 +3,15 @@ PREFIX=prefix/$(TARGET)
|
|||
PREFIX_INSTALL=$(PREFIX)/relibc-install
|
||||
PREFIX_PATH=$(ROOT)/$(PREFIX_INSTALL)/bin
|
||||
|
||||
BINUTILS_BRANCH=redox-2.41
|
||||
GCC_BRANCH=redox-13.2.0
|
||||
|
||||
export PREFIX_RUSTFLAGS=-L $(ROOT)/$(PREFIX_INSTALL)/$(TARGET)/lib
|
||||
export RUSTUP_TOOLCHAIN=$(ROOT)/$(PREFIX_INSTALL)
|
||||
export REDOXER_TOOLCHAIN=$(RUSTUP_TOOLCHAIN)
|
||||
|
||||
export CC=
|
||||
export CXX=
|
||||
|
||||
prefix: $(PREFIX_INSTALL)
|
||||
|
||||
|
@ -15,21 +22,31 @@ PREFIX_STRIP=\
|
|||
-exec strip --strip-unneeded {} ';' \
|
||||
2> /dev/null
|
||||
|
||||
$(PREFIX)/relibc-install: $(ROOT)/relibc | $(PREFIX)/rust-install
|
||||
$(PREFIX)/relibc: $(ROOT)/relibc
|
||||
mkdir -p "$(@D)"
|
||||
rm -rf "$@.partial" "$@"
|
||||
cp -r "$^" "$@.partial"
|
||||
mv "$@.partial" "$@"
|
||||
|
||||
$(PREFIX)/relibc-install: $(PREFIX)/relibc | $(PREFIX)/rust-install $(CONTAINER_TAG)
|
||||
ifeq ($(PODMAN_BUILD),1)
|
||||
$(PODMAN_RUN) $(MAKE) $@
|
||||
else
|
||||
rm -rf "$@.partial" "$@"
|
||||
cp -r "$(PREFIX)/rust-install" "$@.partial"
|
||||
rm -rf "$@.partial/$(TARGET)/include/"*
|
||||
cp -r "$(PREFIX)/rust-install/$(TARGET)/include/c++" "$@.partial/$(TARGET)/include/c++"
|
||||
cp -r "$(PREFIX)/rust-install/lib/rustlib/$(HOST_TARGET)/lib/" "$@.partial/lib/rustlib/$(HOST_TARGET)/"
|
||||
cd "$<" && \
|
||||
export PATH="$(ROOT)/$@.partial/bin:$$PATH" && \
|
||||
export CARGO="env -u CARGO xargo" && \
|
||||
export CARGO="env -u CARGO cargo" && \
|
||||
$(MAKE) clean && \
|
||||
$(MAKE) -j `$(NPROC)` all && \
|
||||
$(MAKE) -j `$(NPROC)` install DESTDIR="$(ROOT)/$@.partial/$(TARGET)"
|
||||
cd "$@.partial" && $(PREFIX_STRIP)
|
||||
touch "$@.partial"
|
||||
mv "$@.partial" "$@"
|
||||
mkdir $@/lib/rustlib/src
|
||||
ln -s $(ROOT)/rust $@/lib/rustlib/src
|
||||
endif
|
||||
|
||||
$(PREFIX)/relibc-install.tar.gz: $(PREFIX)/relibc-install
|
||||
tar \
|
||||
|
@ -43,7 +60,8 @@ ifeq ($(PREFIX_BINARY),1)
|
|||
|
||||
$(PREFIX)/rust-install.tar.gz:
|
||||
mkdir -p "$(@D)"
|
||||
wget -O $@.partial "https://static.redox-os.org/toolchain/$(TARGET)/rust-install.tar.gz"
|
||||
#TODO: figure out why rust-install.tar.gz is missing /lib/rustlib/$(HOST_TARGET)/lib
|
||||
wget -O $@.partial "https://static.redox-os.org/toolchain/$(TARGET)/relibc-install.tar.gz"
|
||||
mv $@.partial $@
|
||||
|
||||
$(PREFIX)/rust-install: $(PREFIX)/rust-install.tar.gz
|
||||
|
@ -55,25 +73,32 @@ $(PREFIX)/rust-install: $(PREFIX)/rust-install.tar.gz
|
|||
|
||||
else
|
||||
|
||||
$(ROOT)/rust:
|
||||
git submodule update --init --recursive --checkout rust
|
||||
|
||||
PREFIX_BASE_INSTALL=$(PREFIX)/rust-freestanding-install
|
||||
PREFIX_FREESTANDING_INSTALL=$(PREFIX)/gcc-freestanding-install
|
||||
|
||||
PREFIX_BASE_PATH=$(ROOT)/$(PREFIX_BASE_INSTALL)/bin
|
||||
PREFIX_FREESTANDING_PATH=$(ROOT)/$(PREFIX_FREESTANDING_INSTALL)/bin
|
||||
|
||||
$(PREFIX)/binutils.tar.bz2:
|
||||
$(PREFIX)/binutils-$(BINUTILS_BRANCH).tar.bz2:
|
||||
mkdir -p "$(@D)"
|
||||
wget -O $@.partial "https://gitlab.redox-os.org/redox-os/binutils-gdb/-/archive/redox/binutils-gdb-redox.tar.bz2"
|
||||
rm -fv $(PREFIX)/binutils*.tar.bz2*
|
||||
wget -O $@.partial "https://gitlab.redox-os.org/redox-os/binutils-gdb/-/archive/$(BINUTILS_BRANCH)/binutils-gdb-$(BINUTILS_BRANCH).tar.bz2"
|
||||
mv $@.partial $@
|
||||
|
||||
$(PREFIX)/binutils: $(PREFIX)/binutils.tar.bz2
|
||||
$(PREFIX)/binutils: $(PREFIX)/binutils-$(BINUTILS_BRANCH).tar.bz2
|
||||
rm -rf "$@.partial" "$@"
|
||||
mkdir -p "$@.partial"
|
||||
tar --extract --file "$<" --directory "$@.partial" --strip-components=1
|
||||
touch "$@.partial"
|
||||
mv "$@.partial" "$@"
|
||||
|
||||
$(PREFIX)/binutils-install: $(PREFIX)/binutils
|
||||
$(PREFIX)/binutils-install: $(PREFIX)/binutils $(CONTAINER_TAG)
|
||||
ifeq ($(PODMAN_BUILD),1)
|
||||
$(PODMAN_RUN) $(MAKE) $@
|
||||
else
|
||||
rm -rf "$<-build" "$@.partial" "$@"
|
||||
mkdir -p "$<-build" "$@.partial"
|
||||
cd "$<-build" && \
|
||||
|
@ -89,20 +114,25 @@ $(PREFIX)/binutils-install: $(PREFIX)/binutils
|
|||
cd "$@.partial" && $(PREFIX_STRIP)
|
||||
touch "$@.partial"
|
||||
mv "$@.partial" "$@"
|
||||
endif
|
||||
|
||||
$(PREFIX)/gcc.tar.bz2:
|
||||
$(PREFIX)/gcc-$(GCC_BRANCH).tar.bz2:
|
||||
mkdir -p "$(@D)"
|
||||
wget -O $@.partial "https://gitlab.redox-os.org/redox-os/gcc/-/archive/redox/gcc-redox.tar.bz2"
|
||||
rm -fv $(PREFIX)/gcc*.tar.bz2*
|
||||
wget -O $@.partial "https://gitlab.redox-os.org/redox-os/gcc/-/archive/$(GCC_BRANCH)/gcc-$(GCC_BRANCH).tar.bz2"
|
||||
mv "$@.partial" "$@"
|
||||
|
||||
$(PREFIX)/gcc: $(PREFIX)/gcc.tar.bz2
|
||||
$(PREFIX)/gcc: $(PREFIX)/gcc-$(GCC_BRANCH).tar.bz2
|
||||
mkdir -p "$@.partial"
|
||||
tar --extract --file "$<" --directory "$@.partial" --strip-components=1
|
||||
cd "$@.partial" && ./contrib/download_prerequisites
|
||||
touch "$@.partial"
|
||||
mv "$@.partial" "$@"
|
||||
|
||||
$(PREFIX)/gcc-freestanding-install: $(PREFIX)/gcc | $(PREFIX)/binutils-install
|
||||
$(PREFIX)/gcc-freestanding-install: $(PREFIX)/gcc | $(PREFIX)/binutils-install $(CONTAINER_TAG)
|
||||
ifeq ($(PODMAN_BUILD),1)
|
||||
$(PODMAN_RUN) $(MAKE) $@
|
||||
else
|
||||
rm -rf "$<-freestanding-build" "$@.partial" "$@"
|
||||
mkdir -p "$<-freestanding-build"
|
||||
cp -r "$(PREFIX)/binutils-install" "$@.partial"
|
||||
|
@ -122,8 +152,12 @@ $(PREFIX)/gcc-freestanding-install: $(PREFIX)/gcc | $(PREFIX)/binutils-install
|
|||
cd "$@.partial" && $(PREFIX_STRIP)
|
||||
touch "$@.partial"
|
||||
mv "$@.partial" "$@"
|
||||
endif
|
||||
|
||||
$(PREFIX)/rust-freestanding-install: $(ROOT)/rust | $(PREFIX)/binutils-install
|
||||
$(PREFIX)/rust-freestanding-install: $(ROOT)/rust | $(PREFIX)/binutils-install $(CONTAINER_TAG)
|
||||
ifeq ($(PODMAN_BUILD),1)
|
||||
$(PODMAN_RUN) $(MAKE) $@
|
||||
else
|
||||
rm -rf "$(PREFIX)/rust-freestanding-build" "$@.partial" "$@"
|
||||
mkdir -p "$(PREFIX)/rust-freestanding-build"
|
||||
cp -r "$(PREFIX)/binutils-install" "$@.partial"
|
||||
|
@ -132,33 +166,47 @@ $(PREFIX)/rust-freestanding-install: $(ROOT)/rust | $(PREFIX)/binutils-install
|
|||
"$</configure" \
|
||||
--prefix="/" \
|
||||
--disable-docs \
|
||||
--disable-download-ci-llvm \
|
||||
--enable-cargo-native-static \
|
||||
--enable-extended \
|
||||
--enable-lld \
|
||||
--enable-llvm-static-stdcpp \
|
||||
--tools=cargo \
|
||||
--set 'llvm.targets=AArch64;X86' \
|
||||
--set 'llvm.experimental-targets=' \
|
||||
--tools=cargo,src \
|
||||
&& \
|
||||
$(MAKE) -j `$(NPROC)` && \
|
||||
$(MAKE) -j `$(NPROC)` install DESTDIR="$(ROOT)/$@.partial"
|
||||
rm -rf "$(PREFIX)/rust-freestanding-build"
|
||||
mkdir -p "$@.partial/lib/rustlib/x86_64-unknown-linux-gnu/bin"
|
||||
mkdir -p "$@.partial/lib/rustlib/$(HOST_TARGET)/bin"
|
||||
mkdir -p "$@.partial/lib/rustlib/$(HOST_TARGET)/lib"
|
||||
cd "$@.partial" && $(PREFIX_STRIP)
|
||||
touch "$@.partial"
|
||||
mv "$@.partial" "$@"
|
||||
endif
|
||||
|
||||
$(PREFIX)/relibc-freestanding-install: $(ROOT)/relibc | $(PREFIX_BASE_INSTALL) $(PREFIX_FREESTANDING_INSTALL)
|
||||
$(PREFIX)/relibc-freestanding-install: $(ROOT)/relibc | $(PREFIX_BASE_INSTALL) $(PREFIX_FREESTANDING_INSTALL) $(CONTAINER_TAG)
|
||||
ifeq ($(PODMAN_BUILD),1)
|
||||
$(PODMAN_RUN) $(MAKE) $@
|
||||
else
|
||||
rm -rf "$@.partial" "$@"
|
||||
mkdir -p "$@.partial"
|
||||
cd "$<" && \
|
||||
export PATH="$(PREFIX_BASE_PATH):$(PREFIX_FREESTANDING_PATH):$$PATH" && \
|
||||
export CARGO="env -u CARGO -u RUSTUP_TOOLCHAIN xargo" && \
|
||||
export CARGO="env -u CARGO -u RUSTUP_TOOLCHAIN cargo" && \
|
||||
export CC_$(subst -,_,$(TARGET))="$(TARGET)-gcc -isystem $(ROOT)/$@.partial/$(TARGET)/include" && \
|
||||
$(MAKE) clean && \
|
||||
$(MAKE) -j `$(NPROC)` all && \
|
||||
$(MAKE) -j `$(NPROC)` install DESTDIR="$(ROOT)/$@.partial/$(TARGET)"
|
||||
cd "$@.partial" && $(PREFIX_STRIP)
|
||||
touch "$@.partial"
|
||||
mv "$@.partial" "$@"
|
||||
endif
|
||||
|
||||
$(PREFIX)/gcc-install: $(PREFIX)/gcc | $(PREFIX)/relibc-freestanding-install
|
||||
$(PREFIX)/gcc-install: $(PREFIX)/gcc | $(PREFIX)/relibc-freestanding-install $(CONTAINER_TAG)
|
||||
ifeq ($(PODMAN_BUILD),1)
|
||||
$(PODMAN_RUN) $(MAKE) $@
|
||||
else
|
||||
rm -rf "$<-build" "$@.partial" "$@"
|
||||
mkdir -p "$<-build"
|
||||
cp -r "$(PREFIX_BASE_INSTALL)" "$@.partial"
|
||||
|
@ -185,6 +233,7 @@ $(PREFIX)/gcc-install: $(PREFIX)/gcc | $(PREFIX)/relibc-freestanding-install
|
|||
cd "$@.partial" && $(PREFIX_STRIP)
|
||||
touch "$@.partial"
|
||||
mv "$@.partial" "$@"
|
||||
endif
|
||||
|
||||
$(PREFIX)/gcc-install.tar.gz: $(PREFIX)/gcc-install
|
||||
tar \
|
||||
|
@ -194,7 +243,10 @@ $(PREFIX)/gcc-install.tar.gz: $(PREFIX)/gcc-install
|
|||
--directory="$<" \
|
||||
.
|
||||
|
||||
$(PREFIX)/rust-install: $(ROOT)/rust | $(PREFIX)/gcc-install $(PREFIX)/relibc-freestanding-install
|
||||
$(PREFIX)/rust-install: $(ROOT)/rust | $(PREFIX)/gcc-install $(PREFIX)/relibc-freestanding-install $(CONTAINER_TAG)
|
||||
ifeq ($(PODMAN_BUILD),1)
|
||||
$(PODMAN_RUN) $(MAKE) $@
|
||||
else
|
||||
rm -rf "$(PREFIX)/rust-build" "$@.partial" "$@"
|
||||
mkdir -p "$(PREFIX)/rust-build"
|
||||
cp -r "$(PREFIX)/gcc-install" "$@.partial"
|
||||
|
@ -204,20 +256,25 @@ $(PREFIX)/rust-install: $(ROOT)/rust | $(PREFIX)/gcc-install $(PREFIX)/relibc-fr
|
|||
"$</configure" \
|
||||
--prefix="/" \
|
||||
--disable-docs \
|
||||
--disable-download-ci-llvm \
|
||||
--enable-cargo-native-static \
|
||||
--enable-dist-src \
|
||||
--enable-extended \
|
||||
--enable-lld \
|
||||
--enable-llvm-static-stdcpp \
|
||||
--tools=cargo \
|
||||
--target="$(TARGET)" \
|
||||
--tools=cargo,src \
|
||||
--target="$(HOST_TARGET),$(TARGET)" \
|
||||
&& \
|
||||
$(MAKE) -j `$(NPROC)` && \
|
||||
rm -rf "$(ROOT)/$@.partial/lib/rustlib" "$(ROOT)/$@.partial/share/doc/rust" && \
|
||||
rm -rf $(ROOT)/$@.partial/lib/rustlib/{components,install.log,rust-installer-version,uninstall.sh,manifest-*} "$(ROOT)/$@.partial/share/doc/rust" && \
|
||||
$(MAKE) -j `$(NPROC)` install DESTDIR="$(ROOT)/$@.partial"
|
||||
rm -rf "$(PREFIX)/rust-build"
|
||||
mkdir -p "$@.partial/lib/rustlib/x86_64-unknown-linux-gnu/bin"
|
||||
mkdir -p "$@.partial/lib/rustlib/$(HOST_TARGET)/bin"
|
||||
mkdir -p "$@.partial/lib/rustlib/$(HOST_TARGET)/lib"
|
||||
cd "$@.partial" && find . -name *.old -exec rm {} ';' && $(PREFIX_STRIP)
|
||||
touch "$@.partial"
|
||||
mv "$@.partial" "$@"
|
||||
endif
|
||||
|
||||
$(PREFIX)/rust-install.tar.gz: $(PREFIX)/rust-install
|
||||
tar \
|
||||
|
|
228
mk/qemu.mk
228
mk/qemu.mk
|
@ -1,23 +1,98 @@
|
|||
QEMU=SDL_VIDEO_X11_DGAMOUSE=0 qemu-system-$(ARCH)
|
||||
QEMUFLAGS=-d cpu_reset -d guest_errors
|
||||
QEMUFLAGS+=-smp 4 -m 2048
|
||||
QEMU_EFI=/usr/share/OVMF/OVMF_CODE.fd
|
||||
QEMU=SDL_VIDEO_X11_DGAMOUSE=0 qemu-system-$(QEMU_ARCH)
|
||||
QEMUFLAGS=-d guest_errors -name "Redox OS $(ARCH)"
|
||||
|
||||
ifeq ($(ARCH),i686)
|
||||
audio?=ac97
|
||||
efi=no
|
||||
QEMU_ARCH=i386
|
||||
QEMU_MACHINE?=pc
|
||||
QEMU_CPU?=pentium2
|
||||
QEMUFLAGS+=-smp 1 -m 1024
|
||||
|
||||
# Default to using kvm when arch is i686 and host is x86_64
|
||||
ifeq ($(HOST_ARCH),x86_64)
|
||||
kvm?=yes
|
||||
endif
|
||||
else ifeq ($(ARCH),x86_64)
|
||||
QEMU_ARCH=x86_64
|
||||
QEMU_MACHINE?=q35
|
||||
QEMU_CPU?=core2duo
|
||||
QEMU_EFI=/usr/share/OVMF/OVMF_CODE.fd
|
||||
QEMUFLAGS+=-smp 4 -m 2048
|
||||
else ifeq ($(ARCH),aarch64)
|
||||
efi=yes
|
||||
live=yes
|
||||
QEMU_ARCH=aarch64
|
||||
QEMU_MACHINE=virt
|
||||
QEMU_CPU=max
|
||||
ifeq ($(BOARD),raspi3bp)
|
||||
QEMU_EFI=https://gitlab.redox-os.org/Ivan/redox_firmware/-/raw/main/platform/raspberry_pi/rpi3/u-boot-rpi-3-b-plus.bin
|
||||
else
|
||||
QEMU_EFI=https://gitlab.redox-os.org/Ivan/redox_firmware/-/raw/main/platform/qemu/qemu_arm64/u-boot-qemu-arm64.bin
|
||||
endif
|
||||
QEMUFLAGS+=-smp 1 -m 2048
|
||||
ifneq ($(vga),no)
|
||||
QEMUFLAGS+=-device ramfb
|
||||
endif
|
||||
ifneq ($(usb),no)
|
||||
QEMUFLAGS+=-device usb-ehci -device usb-kbd -device usb-mouse
|
||||
endif
|
||||
else
|
||||
$(error Unsupported ARCH for QEMU "$(ARCH)"))
|
||||
endif
|
||||
|
||||
# If host and target arch do not match, disable kvm
|
||||
# (unless overridden above or by environment)
|
||||
ifneq ($(ARCH),$(HOST_ARCH))
|
||||
kvm?=no
|
||||
endif
|
||||
|
||||
ifeq ($(efi),yes)
|
||||
FIRMWARE=$(BUILD)/firmware.rom
|
||||
QEMUFLAGS+=-bios $(BUILD)/firmware.rom
|
||||
else
|
||||
FIRMWARE=
|
||||
endif
|
||||
|
||||
ifeq ($(live),yes)
|
||||
DISK=$(BUILD)/livedisk.iso
|
||||
else
|
||||
DISK=$(BUILD)/harddrive.img
|
||||
endif
|
||||
|
||||
ifeq ($(serial),no)
|
||||
QEMUFLAGS+=-chardev stdio,id=debug -device isa-debugcon,iobase=0x402,chardev=debug
|
||||
else
|
||||
QEMUFLAGS+=-chardev stdio,id=debug,signal=off,mux=on,"$(if $(qemu_serial_logfile),logfile=$(qemu_serial_logfile))"
|
||||
QEMUFLAGS+=-serial chardev:debug -mon chardev=debug
|
||||
endif
|
||||
|
||||
ifeq ($(iommu),yes)
|
||||
QEMUFLAGS+=-machine q35,iommu=on
|
||||
QEMUFLAGS+=-machine $(QEMU_MACHINE),iommu=on
|
||||
else
|
||||
QEMUFLAGS+=-machine q35
|
||||
QEMUFLAGS+=-machine $(QEMU_MACHINE)
|
||||
endif
|
||||
ifneq ($(audio),no)
|
||||
QEMUFLAGS+=-device ich9-intel-hda -device hda-duplex
|
||||
|
||||
ifeq ($(audio),no)
|
||||
# No audio
|
||||
else ifeq ($(audio),ac97)
|
||||
# AC'97
|
||||
QEMUFLAGS+=-device AC97
|
||||
else
|
||||
# Intel High Definition Audio
|
||||
QEMUFLAGS+=-device ich9-intel-hda -device hda-output
|
||||
endif
|
||||
|
||||
ifeq ($(net),no)
|
||||
QEMUFLAGS+=-net none
|
||||
else ifeq ($(net),rtl8139)
|
||||
# RTL8139
|
||||
QEMUFLAGS+=-netdev user,id=net0 -device rtl8139,netdev=net0 \
|
||||
-object filter-dump,id=f1,netdev=net0,file=$(BUILD)/network.pcap
|
||||
else ifeq ($(net),virtio)
|
||||
# virtio-net
|
||||
QEMUFLAGS+=-netdev user,id=net0 -device virtio-net,netdev=net0 \
|
||||
-object filter-dump,id=f1,netdev=net0,file=$(BUILD)/network.pcap
|
||||
else
|
||||
ifneq ($(bridge),)
|
||||
QEMUFLAGS+=-netdev bridge,br=$(bridge),id=net0 -device e1000,netdev=net0,id=nic0
|
||||
|
@ -28,127 +103,94 @@ else
|
|||
QEMUFLAGS+=-netdev user,id=net0,hostfwd=tcp::8080-:8080,hostfwd=tcp::8083-:8083,hostfwd=tcp::64126-:64126 -device e1000,netdev=net0,id=nic0
|
||||
else
|
||||
QEMUFLAGS+=-netdev user,id=net0 -device e1000,netdev=net0 \
|
||||
-object filter-dump,id=f1,netdev=net0,file=build/network.pcap
|
||||
-object filter-dump,id=f1,netdev=net0,file=$(BUILD)/network.pcap
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(vga),no)
|
||||
QEMUFLAGS+=-nographic -vga none
|
||||
else ifeq ($(vga),multi)
|
||||
QEMUFLAGS+=-display sdl -vga std -device secondary-vga
|
||||
else ifeq ($(vga),virtio)
|
||||
QEMUFLAGS+=-vga virtio
|
||||
endif
|
||||
|
||||
ifneq ($(usb),no)
|
||||
QEMUFLAGS+=-device nec-usb-xhci,id=xhci -device usb-tablet,bus=xhci.0
|
||||
QEMUFLAGS+=-device nec-usb-xhci,id=xhci
|
||||
endif
|
||||
|
||||
ifeq ($(gdb),yes)
|
||||
QEMUFLAGS+=-s
|
||||
QEMUFLAGS+=-d cpu_reset -s -S
|
||||
endif
|
||||
|
||||
ifeq ($(UNAME),Linux)
|
||||
ifneq ($(kvm),no)
|
||||
QEMUFLAGS+=-enable-kvm -cpu host
|
||||
else
|
||||
QEMUFLAGS+=-cpu max
|
||||
QEMUFLAGS+=-cpu $(QEMU_CPU)
|
||||
endif
|
||||
endif
|
||||
#,int,pcall
|
||||
#-device intel-iommu
|
||||
|
||||
ifeq ($(UNAME),Linux)
|
||||
build/extra.bin:
|
||||
fallocate --posix --length 1G $@
|
||||
else
|
||||
build/extra.bin:
|
||||
truncate -s 1g $@
|
||||
ifeq ($(UNAME),Darwin)
|
||||
QEMUFLAGS+=-cpu $(QEMU_CPU)
|
||||
endif
|
||||
|
||||
qemu: build/harddrive.bin build/extra.bin
|
||||
$(QEMU) $(QEMUFLAGS) \
|
||||
-drive file=build/harddrive.bin,format=raw \
|
||||
-drive file=build/extra.bin,format=raw
|
||||
$(BUILD)/extra.img:
|
||||
truncate -s 1g $@
|
||||
|
||||
qemu_no_build: build/extra.bin
|
||||
$(QEMU) $(QEMUFLAGS) \
|
||||
-drive file=build/harddrive.bin,format=raw \
|
||||
-drive file=build/extra.bin,format=raw
|
||||
$(BUILD)/firmware.rom:
|
||||
ifeq ($(ARCH),aarch64)
|
||||
wget -O $@ $(QEMU_EFI)
|
||||
else
|
||||
cp $(QEMU_EFI) $@
|
||||
endif
|
||||
|
||||
qemu_efi: build/harddrive-efi.bin build/extra.bin
|
||||
qemu: $(DISK) $(FIRMWARE) $(BUILD)/extra.img
|
||||
$(QEMU) $(QEMUFLAGS) \
|
||||
-bios $(QEMU_EFI) \
|
||||
-drive file=build/harddrive-efi.bin,format=raw \
|
||||
-drive file=build/extra.bin,format=raw
|
||||
-drive file=$(DISK),format=raw \
|
||||
-drive file=$(BUILD)/extra.img,format=raw
|
||||
|
||||
qemu_efi_no_build: build/extra.bin
|
||||
qemu_no_build: $(FIRMWARE) $(BUILD)/extra.img
|
||||
$(QEMU) $(QEMUFLAGS) \
|
||||
-bios $(QEMU_EFI) \
|
||||
-drive file=build/harddrive-efi.bin,format=raw \
|
||||
-drive file=build/extra.bin,format=raw
|
||||
-drive file=$(DISK),format=raw \
|
||||
-drive file=$(BUILD)/extra.img,format=raw
|
||||
|
||||
qemu_nvme: build/harddrive.bin build/extra.bin
|
||||
qemu_cdrom: $(DISK) $(FIRMWARE) $(BUILD)/extra.img
|
||||
$(QEMU) $(QEMUFLAGS) \
|
||||
-drive file=build/harddrive.bin,format=raw,if=none,id=drv0 -device nvme,drive=drv0,serial=NVME_SERIAL \
|
||||
-drive file=build/extra.bin,format=raw,if=none,id=drv1 -device nvme,drive=drv1,serial=NVME_EXTRA
|
||||
-boot d -cdrom $(DISK) \
|
||||
-drive file=$(BUILD)/extra.img,format=raw
|
||||
|
||||
qemu_nvme_no_build: build/extra.bin
|
||||
qemu_cdrom_no_build: $(FIRMWARE) $(BUILD)/extra.img
|
||||
$(QEMU) $(QEMUFLAGS) \
|
||||
-drive file=build/harddrive.bin,format=raw,if=none,id=drv0 -device nvme,drive=drv0,serial=NVME_SERIAL \
|
||||
-drive file=build/extra.bin,format=raw,if=none,id=drv1 -device nvme,drive=drv1,serial=NVME_EXTRA
|
||||
-boot d -cdrom $(DISK) \
|
||||
-drive file=$(BUILD)/extra.img,format=raw
|
||||
|
||||
qemu_nvme_efi: build/harddrive-efi.bin build/extra.bin
|
||||
qemu_nvme: $(DISK) $(FIRMWARE) $(BUILD)/extra.img
|
||||
$(QEMU) $(QEMUFLAGS) \
|
||||
-bios $(QEMU_EFI) \
|
||||
-drive file=build/harddrive-efi.bin,format=raw,if=none,id=drv0 -device nvme,drive=drv0,serial=NVME_SERIAL \
|
||||
-drive file=build/extra.bin,format=raw,if=none,id=drv1 -device nvme,drive=drv1,serial=NVME_EXTRA
|
||||
-drive file=$(DISK),format=raw,if=none,id=drv0 -device nvme,drive=drv0,serial=NVME_SERIAL \
|
||||
-drive file=$(BUILD)/extra.img,format=raw,if=none,id=drv1 -device nvme,drive=drv1,serial=NVME_EXTRA
|
||||
|
||||
qemu_nvme_efi_no_build: build/extra.bin
|
||||
qemu_nvme_no_build: $(FIRMWARE) $(BUILD)/extra.img
|
||||
$(QEMU) $(QEMUFLAGS) \
|
||||
-bios $(QEMU_EFI) \
|
||||
-drive file=build/harddrive-efi.bin,format=raw,if=none,id=drv0 -device nvme,drive=drv0,serial=NVME_SERIAL \
|
||||
-drive file=build/extra.bin,format=raw,if=none,id=drv1 -device nvme,drive=drv1,serial=NVME_EXTRA
|
||||
-drive file=$(DISK),format=raw,if=none,id=drv0 -device nvme,drive=drv0,serial=NVME_SERIAL \
|
||||
-drive file=$(BUILD)/extra.img,format=raw,if=none,id=drv1 -device nvme,drive=drv1,serial=NVME_EXTRA
|
||||
|
||||
qemu_nvme_live: build/livedisk.bin build/extra.bin
|
||||
qemu_usb: $(DISK) $(FIRMWARE)
|
||||
$(QEMU) $(QEMUFLAGS) \
|
||||
-drive file=build/livedisk.bin,format=raw,if=none,id=drv0 -device nvme,drive=drv0,serial=NVME_SERIAL \
|
||||
-drive file=build/extra.bin,format=raw,if=none,id=drv1 -device nvme,drive=drv1,serial=NVME_EXTRA
|
||||
-drive if=none,id=usbstick,format=raw,file=$(DISK) \
|
||||
-device usb-storage,drive=usbstick
|
||||
|
||||
qemu_nvme_live_no_build: build/extra.bin
|
||||
qemu_extra: $(FIRMWARE) $(BUILD)/extra.img
|
||||
$(QEMU) $(QEMUFLAGS) \
|
||||
-drive file=build/livedisk.bin,format=raw,if=none,id=drv0 -device nvme,drive=drv0,serial=NVME_SERIAL \
|
||||
-drive file=build/extra.bin,format=raw,if=none,id=drv1 -device nvme,drive=drv1,serial=NVME_EXTRA
|
||||
-drive file=$(BUILD)/extra.img,format=raw
|
||||
|
||||
qemu_live: build/livedisk.bin build/extra.bin
|
||||
qemu_nvme_extra: $(FIRMWARE) $(BUILD)/extra.img
|
||||
$(QEMU) $(QEMUFLAGS) \
|
||||
-drive file=build/livedisk.bin,format=raw \
|
||||
-drive file=build/extra.bin,format=raw
|
||||
-drive file=$(BUILD)/extra.img,format=raw,if=none,id=drv1 -device nvme,drive=drv1,serial=NVME_EXTRA
|
||||
|
||||
qemu_live_no_build: build/extra.bin
|
||||
$(QEMU) $(QEMUFLAGS) \
|
||||
-drive file=build/livedisk.bin,format=raw \
|
||||
-drive file=build/extra.bin,format=raw
|
||||
|
||||
qemu_iso: build/livedisk.iso build/extra.bin
|
||||
$(QEMU) $(QEMUFLAGS) \
|
||||
-boot d -cdrom build/livedisk.iso \
|
||||
-drive file=build/extra.bin,format=raw
|
||||
|
||||
qemu_iso_no_build: build/extra.bin
|
||||
$(QEMU) $(QEMUFLAGS) \
|
||||
-boot d -cdrom build/livedisk.iso \
|
||||
-drive file=build/extra.bin,format=raw
|
||||
|
||||
qemu_iso_efi: build/livedisk-efi.iso build/extra.bin
|
||||
$(QEMU) $(QEMUFLAGS) \
|
||||
-bios $(QEMU_EFI) \
|
||||
-boot d -cdrom build/livedisk-efi.iso \
|
||||
-drive file=build/extra.bin,format=raw
|
||||
|
||||
qemu_iso_efi_no_build: build/extra.bin
|
||||
$(QEMU) $(QEMUFLAGS) \
|
||||
-bios $(QEMU_EFI) \
|
||||
-boot d -cdrom build/livedisk-efi.iso \
|
||||
-drive file=build/extra.bin,format=raw
|
||||
|
||||
qemu_extra: build/extra.bin
|
||||
$(QEMU) $(QEMUFLAGS) \
|
||||
-drive file=build/extra.bin,format=raw
|
||||
|
||||
qemu_nvme_extra: build/extra.bin
|
||||
$(QEMU) $(QEMUFLAGS) \
|
||||
-drive file=build/extra.bin,format=raw,if=none,id=drv1 -device nvme,drive=drv1,serial=NVME_EXTRA
|
||||
#additional steps for $(DISK) are required!!!
|
||||
qemu_raspi: $(FIRMWARE) $(DISK)
|
||||
$(QEMU) -M raspi3b -smp 4,cores=1 \
|
||||
-kernel $(FIRMWARE) \
|
||||
-serial stdio -display none -sd $(DISK)
|
||||
|
|
|
@ -0,0 +1,82 @@
|
|||
$(BUILD)/fetch.tag: prefix $(FSTOOLS_TAG) $(FILESYSTEM_CONFIG) $(CONTAINER_TAG)
|
||||
ifeq ($(PODMAN_BUILD),1)
|
||||
$(PODMAN_RUN) $(MAKE) $@
|
||||
else
|
||||
PACKAGES="$$($(INSTALLER) --list-packages -c $(FILESYSTEM_CONFIG))" && \
|
||||
cd cookbook && \
|
||||
./fetch.sh "$${PACKAGES}"
|
||||
mkdir -p $(BUILD)
|
||||
touch $@
|
||||
endif
|
||||
|
||||
$(BUILD)/repo.tag: $(BUILD)/fetch.tag $(FSTOOLS_TAG) $(CONTAINER_TAG)
|
||||
ifeq ($(PODMAN_BUILD),1)
|
||||
$(PODMAN_RUN) $(MAKE) $@
|
||||
else
|
||||
export PATH="$(PREFIX_PATH):$$PATH" && \
|
||||
PACKAGES="$$($(INSTALLER) --list-packages -c $(FILESYSTEM_CONFIG))" && \
|
||||
cd cookbook && \
|
||||
./repo.sh $(REPO_NONSTOP) "$${PACKAGES}"
|
||||
mkdir -p $(BUILD)
|
||||
# make sure fetch.tag is newer than the things repo modifies
|
||||
touch $<
|
||||
touch $@
|
||||
endif
|
||||
|
||||
# Invoke clean.sh for a single target
|
||||
c.%: $(FSTOOLS_TAG) FORCE
|
||||
ifeq ($(PODMAN_BUILD),1)
|
||||
$(PODMAN_RUN) $(MAKE) $@
|
||||
else
|
||||
export PATH="$(PREFIX_PATH):$$PATH" && \
|
||||
cd cookbook && \
|
||||
./clean.sh $*
|
||||
endif
|
||||
|
||||
# Invoke fetch.sh for a single target
|
||||
f.%: $(FSTOOLS_TAG) FORCE
|
||||
ifeq ($(PODMAN_BUILD),1)
|
||||
$(PODMAN_RUN) $(MAKE) $@
|
||||
else
|
||||
export PATH="$(PREFIX_PATH):$$PATH" && \
|
||||
cd cookbook && \
|
||||
./fetch.sh $*
|
||||
endif
|
||||
|
||||
# Invoke repo.sh for a single target
|
||||
r.%: $(FSTOOLS_TAG) FORCE
|
||||
ifeq ($(PODMAN_BUILD),1)
|
||||
$(PODMAN_RUN) $(MAKE) $@
|
||||
else
|
||||
export PATH="$(PREFIX_PATH):$$PATH" && \
|
||||
cd cookbook && \
|
||||
./repo.sh $*
|
||||
endif
|
||||
|
||||
# Invoke unfetch.sh for a single target
|
||||
u.%: $(FSTOOLS_TAG) FORCE
|
||||
ifeq ($(PODMAN_BUILD),1)
|
||||
$(PODMAN_RUN) $(MAKE) $@
|
||||
else
|
||||
export PATH="$(PREFIX_PATH):$$PATH" && \
|
||||
cd cookbook && \
|
||||
./unfetch.sh $*
|
||||
endif
|
||||
|
||||
# Invoke clean.sh, and repo.sh for a single target
|
||||
cr.%: $(FSTOOLS_TAG) FORCE
|
||||
$(MAKE) c.$*
|
||||
$(MAKE) r.$*
|
||||
|
||||
# Invoke unfetch.sh, clean.sh, and repo.sh for a single target
|
||||
ucr.%: $(FSTOOLS_TAG) FORCE
|
||||
$(MAKE) u.$*
|
||||
$(MAKE) cr.$*
|
||||
|
||||
uc.%: $(FSTOOLS_TAG) FORCE
|
||||
$(MAKE) u.$*
|
||||
$(MAKE) c.$*
|
||||
|
||||
ucf.%: (FSTOOLS_TAG) FORCE
|
||||
$(MAKE) uc.$*
|
||||
$(MAKE) f.$*
|
|
@ -1,4 +1,4 @@
|
|||
virtualbox: build/harddrive.bin
|
||||
virtualbox: $(BUILD)/harddrive.img
|
||||
echo "Delete VM"
|
||||
-$(VBM) unregistervm Redox --delete; \
|
||||
if [ $$? -ne 0 ]; \
|
||||
|
@ -31,11 +31,12 @@ virtualbox: build/harddrive.bin
|
|||
$(VBM) modifyvm Redox --mouse ps2
|
||||
$(VBM) modifyvm Redox --audio $(VB_AUDIO)
|
||||
$(VBM) modifyvm Redox --audiocontroller hda
|
||||
$(VBM) modifyvm Redox --audioout on
|
||||
$(VBM) modifyvm Redox --nestedpaging on
|
||||
echo "Create Disk"
|
||||
$(VBM) convertfromraw $< build/harddrive.vdi
|
||||
$(VBM) convertfromraw $< $(BUILD)/harddrive.vdi
|
||||
echo "Attach Disk"
|
||||
$(VBM) storagectl Redox --name ATA --add sata --controller IntelAHCI --bootable on --portcount 1
|
||||
$(VBM) storageattach Redox --storagectl ATA --port 0 --device 0 --type hdd --medium build/harddrive.vdi
|
||||
$(VBM) storageattach Redox --storagectl ATA --port 0 --device 0 --type hdd --medium $(BUILD)/harddrive.vdi
|
||||
echo "Run VM"
|
||||
$(VBM) startvm Redox
|
||||
|
|
|
@ -0,0 +1,61 @@
|
|||
FROM ubuntu:latest
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
autoconf \
|
||||
automake \
|
||||
autopoint \
|
||||
bison \
|
||||
build-essential \
|
||||
ca-certificates \
|
||||
cmake \
|
||||
curl \
|
||||
file \
|
||||
flex \
|
||||
fuse3 \
|
||||
genisoimage \
|
||||
git \
|
||||
gperf \
|
||||
libc6-dev-i386 \
|
||||
libexpat-dev \
|
||||
libfuse-dev \
|
||||
libfuse3-dev \
|
||||
libgmp-dev \
|
||||
libhtml-parser-perl \
|
||||
libtool \
|
||||
libfontconfig1-dev \
|
||||
libpng-dev \
|
||||
libjpeg-dev \
|
||||
libsdl2-ttf-dev \
|
||||
libsdl1.2-dev \
|
||||
m4 \
|
||||
nasm \
|
||||
pkg-config \
|
||||
po4a \
|
||||
syslinux-utils \
|
||||
texinfo \
|
||||
ninja-build \
|
||||
meson \
|
||||
python3-mako \
|
||||
xxd \
|
||||
rsync \
|
||||
wget \
|
||||
python3 \
|
||||
make \
|
||||
xdg-utils \
|
||||
zip \
|
||||
unzip \
|
||||
llvm \
|
||||
clang \
|
||||
perl \
|
||||
doxygen \
|
||||
ant \
|
||||
protobuf-compiler \
|
||||
intltool
|
||||
|
||||
# _UID_ must be replaced with the user's uid on host
|
||||
# podman root is mapped to your user id on host during build,
|
||||
# poduser is mapped to your user id during podman run
|
||||
RUN useradd --create-home --no-log-init --uid _UID_ poduser && \
|
||||
chown -R root:root /home
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
#/usr/bin/env bash
|
||||
|
||||
# Install Rust in Podman, after the image has been built
|
||||
|
||||
curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain nightly
|
||||
cargo install --force --version 0.1.1 cargo-config
|
||||
cargo install --force --version 1.16.0 just
|
||||
cargo install --force --version 0.26.0 cbindgen
|
|
@ -0,0 +1,639 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
##########################################################
|
||||
# This function is simply a banner to introduce the script
|
||||
##########################################################
|
||||
banner()
|
||||
{
|
||||
echo "|------------------------------------------|"
|
||||
echo "|----- Welcome to the redox bootstrap -----|"
|
||||
echo "|-------- for building with Podman --------|"
|
||||
echo "|------------------------------------------|"
|
||||
}
|
||||
|
||||
###################################################################################
|
||||
# This function takes care of installing a dependency via package manager of choice
|
||||
# for building Redox on BSDs (macOS, FreeBSD, etc.).
|
||||
# @params: $1 package manager
|
||||
# $2 package name
|
||||
# $3 binary name (optional)
|
||||
###################################################################################
|
||||
install_bsd_pkg()
|
||||
{
|
||||
PKG_MANAGER=$1
|
||||
PKG_NAME=$2
|
||||
BIN_NAME=$3
|
||||
if [ -z "$BIN_NAME" ]; then
|
||||
BIN_NAME=$PKG_NAME
|
||||
fi
|
||||
|
||||
BIN_LOCATION=$(which $BIN_NAME || true)
|
||||
if [ -z "$BIN_LOCATION" ]; then
|
||||
echo "$PKG_MANAGER install $PKG_NAME"
|
||||
$PKG_MANAGER install "$PKG_NAME"
|
||||
else
|
||||
echo "$BIN_NAME already exists at $BIN_LOCATION, no need to install $PKG_NAME..."
|
||||
fi
|
||||
}
|
||||
|
||||
install_macports_pkg()
|
||||
{
|
||||
install_bsd_pkg "sudo port" "$1" "$2"
|
||||
}
|
||||
|
||||
install_brew_pkg()
|
||||
{
|
||||
install_bsd_pkg "brew" $@
|
||||
}
|
||||
|
||||
install_brew_cask_pkg()
|
||||
{
|
||||
install_bsd_pkg "brew cask" $@
|
||||
}
|
||||
|
||||
install_freebsd_pkg()
|
||||
{
|
||||
install_bsd_pkg "sudo pkg" $@
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# This function checks which of the supported package managers
|
||||
# is available on the macOS host.
|
||||
# If a supported package manager is found, it delegates the installing work to
|
||||
# the relevant function.
|
||||
# Otherwise this function will exit this script with an error.
|
||||
###############################################################################
|
||||
osx()
|
||||
{
|
||||
echo "Detected macOS!"
|
||||
|
||||
if [ ! -z "$(which brew)" ]; then
|
||||
osx_homebrew $@
|
||||
elif [ ! -z "$(which port)" ]; then
|
||||
osx_macports $@
|
||||
else
|
||||
echo "Please install either Homebrew or MacPorts, if you wish to use this script"
|
||||
echo "Re-run this script once you installed one of those package managers"
|
||||
echo "Will not install, now exiting..."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# This function takes care of installing all dependencies using MacPorts
|
||||
# for building Redox on macOS
|
||||
# @params: $1 the emulator to install, "virtualbox" or "qemu"
|
||||
###############################################################################
|
||||
osx_macports()
|
||||
{
|
||||
echo "MacPorts detected! Now updating..."
|
||||
sudo port -v selfupdate
|
||||
|
||||
echo "Installing missing packages..."
|
||||
|
||||
install_macports_pkg "git"
|
||||
|
||||
|
||||
if [ "$1" == "qemu" ]; then
|
||||
install_macports_pkg "qemu" "qemu-system-x86_64"
|
||||
elif [ "$1" == "virtualbox" ]; then
|
||||
install_macports_pkg "virtualbox"
|
||||
else
|
||||
echo "Unknown emulator: $1"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
install_macports_pkg "osxfuse"
|
||||
install_macports_pkg "podman"
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# This function takes care of installing all dependencies using Homebrew
|
||||
# for building Redox on macOS
|
||||
# @params: $1 the emulator to install, "virtualbox" or "qemu"
|
||||
###############################################################################
|
||||
osx_homebrew()
|
||||
{
|
||||
echo "Homebrew detected! Now updating..."
|
||||
brew update
|
||||
|
||||
echo "Installing missing packages..."
|
||||
|
||||
install_brew_pkg "git"
|
||||
|
||||
|
||||
if [ "$1" == "qemu" ]; then
|
||||
install_brew_pkg "qemu" "qemu-system-x86_64"
|
||||
elif [ "$1" == "virtualbox" ]; then
|
||||
install_brew_pkg "virtualbox"
|
||||
else
|
||||
echo "Unknown emulator: $1"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
install_brew_pkg "make"
|
||||
install_brew_pkg "podman"
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# This function takes care of installing all dependencies using pkg
|
||||
# for building Redox on FreeBSD
|
||||
# @params: $1 the emulator to install, "virtualbox" or "qemu"
|
||||
###############################################################################
|
||||
freebsd()
|
||||
{
|
||||
set -x
|
||||
echo "FreeBSD detected!"
|
||||
echo "Installing missing packages..."
|
||||
|
||||
install_freebsd_pkg "git"
|
||||
|
||||
|
||||
if [ "$1" == "qemu" ]; then
|
||||
install_freebsd_pkg "qemu" "qemu-system-x86_64"
|
||||
elif [ "$1" == "virtualbox" ]; then
|
||||
install_freebsd_pkg "virtualbox"
|
||||
else
|
||||
echo "Unknown emulator: $1"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
install_freebsd_pkg "gmake"
|
||||
install_freebsd_pkg "podman"
|
||||
set +x
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# This function takes care of installing all dependencies for building Redox on
|
||||
# Arch Linux
|
||||
# @params: $1 the emulator to install, "virtualbox" or "qemu"
|
||||
###############################################################################
|
||||
archLinux()
|
||||
{
|
||||
|
||||
echo "Detected Arch Linux"
|
||||
packages="git podman fuse"
|
||||
if [ "$1" == "qemu" ]; then
|
||||
packages="$packages qemu"
|
||||
elif [ "$1" == "virtualbox" ]; then
|
||||
packages="$packages virtualbox"
|
||||
else
|
||||
echo "Unknown emulator: $1"
|
||||
exit 1
|
||||
fi
|
||||
# Scripts should not cause a system update in order to just install a couple
|
||||
# of packages. If pacman -S --needed is going to fail, let it fail and the
|
||||
# user will figure out the issues (without updating if required) and rerun
|
||||
# the script.
|
||||
#echo "Updating system..."
|
||||
#sudo pacman -Syu
|
||||
|
||||
echo "Installing packages $packages..."
|
||||
sudo pacman -S --needed $packages
|
||||
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# This function takes care of installing all dependencies for building Redox on
|
||||
# Debian-based Linux
|
||||
# @params: $1 the emulator to install, "virtualbox" or "qemu"
|
||||
# $2 the package manager to use
|
||||
###############################################################################
|
||||
ubuntu()
|
||||
{
|
||||
echo "Detected Ubuntu/Debian"
|
||||
echo "Updating system..."
|
||||
sudo "$2" update
|
||||
echo "Installing required packages..."
|
||||
sudo "$2" install \
|
||||
podman curl git make libfuse-dev
|
||||
if [ "$1" == "qemu" ]; then
|
||||
if [ -z "$(which qemu-system-x86_64)" ]; then
|
||||
echo "Installing QEMU..."
|
||||
sudo "$2" install qemu-system-x86 qemu-kvm
|
||||
sudo "$2" install qemu-efi-arm qemu-system-arm
|
||||
else
|
||||
echo "QEMU already installed!"
|
||||
fi
|
||||
elif [ "$1" == "virtualbox" ]; then
|
||||
if [ -z "$(which virtualbox)" ]; then
|
||||
|
||||
if grep '^ID=debian$' /etc/os-release > /dev/null; then
|
||||
echo "Virtualbox is not in the official debian packages"
|
||||
echo "To install virtualbox on debian, see https://wiki.debian.org/VirtualBox"
|
||||
echo "Please install VirtualBox and re-run this script,"
|
||||
echo "or run with -e qemu"
|
||||
exit 1
|
||||
else
|
||||
echo "Installing VirtualBox..."
|
||||
sudo "$2" install virtualbox
|
||||
fi
|
||||
else
|
||||
echo "VirtualBox already installed!"
|
||||
fi
|
||||
else
|
||||
echo "Unknown emulator: $1"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# This function takes care of installing all dependencies for building Redox on
|
||||
# Fedora Linux
|
||||
# @params: $1 the emulator to install, "virtualbox" or "qemu"
|
||||
###############################################################################
|
||||
fedora()
|
||||
{
|
||||
echo "Detected Fedora"
|
||||
if [ -z "$(which git)" ]; then
|
||||
echo "Installing git..."
|
||||
sudo dnf install git-all
|
||||
fi
|
||||
|
||||
if [ "$1" == "qemu" ]; then
|
||||
if [ -z "$(which qemu-system-x86_64)" ]; then
|
||||
echo "Installing QEMU..."
|
||||
sudo dnf install qemu-system-x86 qemu-kvm
|
||||
else
|
||||
echo "QEMU already installed!"
|
||||
fi
|
||||
elif [ "$1" == "virtualbox" ]; then
|
||||
if [ -z "$(which virtualbox)" ]; then
|
||||
echo "Please install VirtualBox and re-run this script,"
|
||||
echo "or run with -e qemu"
|
||||
exit 1
|
||||
else
|
||||
echo "VirtualBox already installed!"
|
||||
fi
|
||||
else
|
||||
echo "Unknown emulator: $1"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Use rpm -q <package> to check if it's already installed
|
||||
PKGS=$(for pkg in podman; do rpm -q $pkg > /dev/null || echo $pkg; done)
|
||||
# If the list of packages is not empty, install missing
|
||||
COUNT=$(echo $PKGS | wc -w)
|
||||
if [ $COUNT -ne 0 ]; then
|
||||
echo "Installing necessary build tools..."
|
||||
sudo dnf install $PKGS
|
||||
fi
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# This function takes care of installing all dependencies for building Redox on
|
||||
# *SUSE Linux
|
||||
# @params: $1 the emulator to install, "virtualbox" or "qemu"
|
||||
###############################################################################
|
||||
suse()
|
||||
{
|
||||
echo "Detected SUSE Linux"
|
||||
|
||||
packages=(
|
||||
"make"
|
||||
"fuse-devel"
|
||||
"podman"
|
||||
)
|
||||
|
||||
if [ -z "$(which git)" ]; then
|
||||
echo "Will install git ..."
|
||||
packages+=(git)
|
||||
fi
|
||||
|
||||
if [ "$1" == "qemu" ]; then
|
||||
if [ -z "$(which qemu-system-x86_64)" ]; then
|
||||
echo "Will install QEMU..."
|
||||
packages+=(qemu-x86 qemu-kvm)
|
||||
else
|
||||
echo "QEMU already installed!"
|
||||
fi
|
||||
elif [ "$1" == "virtualbox" ]; then
|
||||
if [ -z "$(which virtualbox)" ]; then
|
||||
echo "Please install VirtualBox and re-run this script,"
|
||||
echo "or run with -e qemu"
|
||||
exit 1
|
||||
else
|
||||
echo "VirtualBox already installed!"
|
||||
fi
|
||||
else
|
||||
echo "Unknown emulator: $1"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Installing necessary build tools..."
|
||||
|
||||
# We could install all the packages in a single zypper command with:
|
||||
#
|
||||
# zypper install package1 package2 package3
|
||||
#
|
||||
# But there is an issue with this: zypper returns a success code if at
|
||||
# least one of the packages was correctly installed, but we need it to fail
|
||||
# if any of the packages is missing.
|
||||
#
|
||||
# To confirm that the packages are available, we try to install them one by
|
||||
# one with --dry-run.
|
||||
# We still install all the packages in a single zypper command so that the
|
||||
# user has to confirm only once.
|
||||
for p in ${packages[@]}; do
|
||||
if rpm -q "${p}" > /dev/null ; then
|
||||
echo "${p} is already installed"
|
||||
else
|
||||
# Zypper shows a confirmation prompt and the "y" answer even with
|
||||
# --non-interactive and --no-confirm:
|
||||
#
|
||||
# 1 new package to install.
|
||||
# Overall download size: 281.7 KiB. Already cached: 0 B. After the operation, additional 394.6 KiB will be used.
|
||||
# Continue? [y/n/v/...? shows all options] (y): y
|
||||
#
|
||||
# That could make the user think that the package was installed,
|
||||
# when it was only a dry run.
|
||||
# To avoid the confusion, we hide the output unless there was an
|
||||
# error.
|
||||
if out="$(zypper --non-interactive install --no-confirm --dry-run --force-resolution ${p} 2>&1)" ; then
|
||||
echo "${p} can be installed"
|
||||
else
|
||||
echo "no"
|
||||
echo ""
|
||||
echo "Zypper output:"
|
||||
echo ""
|
||||
echo "${out}"
|
||||
echo ""
|
||||
echo "Could not find how to install '${p}', try running:"
|
||||
echo ""
|
||||
echo " zypper install ${p}"
|
||||
echo ""
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
zypper install ${packages[@]}
|
||||
|
||||
}
|
||||
|
||||
##############################################################################
|
||||
# This function takes care of installing all dependencies for building Redox on
|
||||
# Gentoo Linux
|
||||
# @params: $1 the emulator to install, "virtualbox" or "qemu"
|
||||
##############################################################################
|
||||
gentoo()
|
||||
{
|
||||
echo "Detected Gentoo Linux"
|
||||
if [ -z "$(which git)" ]; then
|
||||
echo "Installing git..."
|
||||
sudo emerge dev-vcs/git
|
||||
fi
|
||||
if [ -z "$(which fusermount 2>/dev/null)" ] && [ -z "$(which fusermount3 2>/dev/null)" ]; then
|
||||
echo "Installing fuse..."
|
||||
sudo emerge sys-fs/fuse
|
||||
fi
|
||||
|
||||
if [ "$1" == "qemu" ]; then
|
||||
if [ -z "$(which qemu-system-x86_64)" ]; then
|
||||
echo "Please install QEMU and re-run this script"
|
||||
echo "Step1. Add QEMU_SOFTMMU_TARGETS=\"x86_64\" to /etc/portage/make.conf"
|
||||
echo "Step2. Execute \"sudo emerge app-emulation/qemu\""
|
||||
exit 1
|
||||
else
|
||||
echo "QEMU already installed!"
|
||||
fi
|
||||
elif [ "$1" == "virtualbox" ]; then
|
||||
if [ -z "$(which virtualbox)" ]; then
|
||||
echo "Please install VirtualBox and re-run this script,"
|
||||
echo "or run with -e qemu"
|
||||
exit 1
|
||||
else
|
||||
echo "VirtualBox already installed!"
|
||||
fi
|
||||
else
|
||||
echo "Unknown emulator: $1"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$(which cmake)" ]; then
|
||||
echo "Installing cmake..."
|
||||
sudo emerge dev-util/cmake
|
||||
fi
|
||||
if [ -z "$(which podman)" ]; then
|
||||
echo "Please install Podman, https://wiki.gentoo.org/wiki/Podman"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
##############################################################################
|
||||
# This function takes care of installing all dependencies for building Redox on
|
||||
# Solus
|
||||
# @params: $1 the emulator to install, "virtualbox" or "qemu"
|
||||
##############################################################################
|
||||
solus()
|
||||
{
|
||||
echo "Detected Solus"
|
||||
|
||||
if [ "$1" == "qemu" ]; then
|
||||
if [ -z "$(which qemu-system-x86_64)" ]; then
|
||||
sudo eopkg it qemu
|
||||
else
|
||||
echo "QEMU already installed!"
|
||||
fi
|
||||
elif [ "$1" == "virtualbox" ]; then
|
||||
if [ -z "$(which virtualbox)" ]; then
|
||||
echo "Please install VirtualBox and re-run this script,"
|
||||
echo "or run with -e qemu"
|
||||
exit 1
|
||||
else
|
||||
echo "VirtualBox already installed!"
|
||||
fi
|
||||
else
|
||||
echo "Unknown emulator: $1"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Installing necessary build tools..."
|
||||
#if guards are not necessary with eopkg since it does nothing if latest version is already installed
|
||||
sudo eopkg it fuse-devel git make fuse2-devel rsync
|
||||
if [ -z "$(which podman)" ]; then
|
||||
echo "Please install Podman"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
######################################################################
|
||||
# This function outlines the different options available for bootstrap
|
||||
######################################################################
|
||||
usage()
|
||||
{
|
||||
echo "------------------------"
|
||||
echo "|Redox bootstrap script|"
|
||||
echo "------------------------"
|
||||
echo "Usage: ./podman_bootstrap.sh"
|
||||
echo "OPTIONS:"
|
||||
echo
|
||||
echo " -h,--help Show this prompt"
|
||||
echo " -u [branch] Update git repo and update rust"
|
||||
echo " If blank defaults to master"
|
||||
echo " -s Check the status of the current travis build"
|
||||
echo " -e [emulator] Install specific emulator, virtualbox or qemu"
|
||||
echo " -p [package Choose an Ubuntu package manager, apt-fast or"
|
||||
echo " manager] aptitude"
|
||||
echo " -d Only install the dependencies, skip boot step"
|
||||
echo "EXAMPLES:"
|
||||
echo
|
||||
echo "./podman_bootstrap.sh -e qemu"
|
||||
exit
|
||||
}
|
||||
|
||||
|
||||
#############################################################
|
||||
# Looks for and installs a cargo-managed binary or subcommand
|
||||
#############################################################
|
||||
cargoInstall() {
|
||||
if [[ "`cargo install --list`" != *"$1 v$2"* ]]; then
|
||||
cargo install --force --version "$2" "$1"
|
||||
else
|
||||
echo "You have $1 version $2 installed already!"
|
||||
fi
|
||||
}
|
||||
|
||||
####################################################################
|
||||
# This function gets the current build status from travis and prints
|
||||
# a message to the user
|
||||
####################################################################
|
||||
statusCheck() {
|
||||
for i in $(echo "$(curl -sf https://api.travis-ci.org/repositories/redox-os/redox.json)" | tr "," "\n")
|
||||
do
|
||||
if echo "$i" | grep -iq "last_build_status" ;then
|
||||
if echo "$i" | grep -iq "0" ;then
|
||||
echo
|
||||
echo "********************************************"
|
||||
echo "Travis reports that the last build succeeded!"
|
||||
echo "Looks like you are good to go!"
|
||||
echo "********************************************"
|
||||
elif echo "$i" | grep -iq "null" ;then
|
||||
echo
|
||||
echo "******************************************************************"
|
||||
echo "The Travis build did not finish, this is an error with its config."
|
||||
echo "I cannot reliably determine whether the build is succeeding or not."
|
||||
echo "Consider checking for and maybe opening an issue on gitlab"
|
||||
echo "******************************************************************"
|
||||
else
|
||||
echo
|
||||
echo "**************************************************"
|
||||
echo "Travis reports that the last build *FAILED* :("
|
||||
echo "Might want to check out the issues before building"
|
||||
echo "**************************************************"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
###########################################################################
|
||||
# This function is the main logic for the bootstrap; it clones the git repo
|
||||
# then it installs the dependent packages
|
||||
###########################################################################
|
||||
boot()
|
||||
{
|
||||
echo "Cloning gitlab repo..."
|
||||
git clone https://gitlab.redox-os.org/redox-os/redox.git --origin upstream --recursive
|
||||
echo "Creating .config with PODMAN_BUILD=1"
|
||||
echo 'PODMAN_BUILD?=1' > redox/.config
|
||||
echo "Cleaning up..."
|
||||
rm podman_bootstrap.sh
|
||||
echo
|
||||
echo "---------------------------------------"
|
||||
echo "Well it looks like you are ready to go!"
|
||||
echo "---------------------------------------"
|
||||
statusCheck
|
||||
echo "The file redox/.config was created with PODMAN_BUILD=1."
|
||||
echo "Run the following commands to build redox using Podman:"
|
||||
echo
|
||||
echo "cd redox"
|
||||
MAKE="make"
|
||||
if [[ "$(uname)" == "FreeBSD" ]]; then
|
||||
MAKE="gmake"
|
||||
echo "kldload fuse.ko # This loads the kernel module for FUSE"
|
||||
fi
|
||||
echo "$MAKE all"
|
||||
echo "$MAKE virtualbox or qemu"
|
||||
echo
|
||||
echo " Good luck!"
|
||||
|
||||
exit
|
||||
}
|
||||
|
||||
if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then
|
||||
usage
|
||||
elif [ "$1" == "-u" ]; then
|
||||
git pull upstream master
|
||||
git submodule update --recursive --init
|
||||
rustup update nightly
|
||||
exit
|
||||
elif [ "$1" == "-s" ]; then
|
||||
statusCheck
|
||||
exit
|
||||
fi
|
||||
|
||||
emulator="qemu"
|
||||
defpackman="apt-get"
|
||||
dependenciesonly=false
|
||||
update=false
|
||||
while getopts ":e:p:udhs" opt
|
||||
do
|
||||
case "$opt" in
|
||||
e) emulator="$OPTARG";;
|
||||
p) defpackman="$OPTARG";;
|
||||
d) dependenciesonly=true;;
|
||||
u) update=true;;
|
||||
h) usage;;
|
||||
s) statusCheck && exit;;
|
||||
\?) echo "I don't know what to do with that option, try -h for help"; exit 1;;
|
||||
esac
|
||||
done
|
||||
|
||||
banner
|
||||
|
||||
if [ "$update" == "true" ]; then
|
||||
git pull upstream master
|
||||
git submodule update --recursive --init
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ "Darwin" == "$(uname -s)" ]; then
|
||||
osx "$emulator"
|
||||
else
|
||||
# Here we will use package managers to determine which operating system the user is using.
|
||||
|
||||
# SUSE and derivatives
|
||||
if hash 2>/dev/null zypper; then
|
||||
suse "$emulator"
|
||||
# Debian or any derivative of it
|
||||
elif hash 2>/dev/null apt-get; then
|
||||
ubuntu "$emulator" "$defpackman"
|
||||
# Fedora
|
||||
elif hash 2>/dev/null dnf; then
|
||||
fedora "$emulator"
|
||||
# Gentoo
|
||||
elif hash 2>/dev/null emerge; then
|
||||
gentoo "$emulator"
|
||||
# Solus
|
||||
elif hash 2>/dev/null eopkg; then
|
||||
solus "$emulator"
|
||||
# Arch Linux
|
||||
elif hash 2>/dev/null pacman; then
|
||||
archLinux "$emulator"
|
||||
# FreeBSD
|
||||
elif hash 2>/dev/null pkg; then
|
||||
freebsd "$emulator"
|
||||
# Unsupported platform
|
||||
else
|
||||
printf "\e[31;1mFatal error: \e[0;31mUnsupported platform, please open an issue\e[0m\n"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$dependenciesonly" = false ]; then
|
||||
boot
|
||||
fi
|
||||
|
||||
echo "Redox bootstrap complete!"
|
2
redoxfs
2
redoxfs
|
@ -1 +1 @@
|
|||
Subproject commit f1b88c38c0a9b6bf9e24f82397a8a9505c9a2df2
|
||||
Subproject commit 14a07dc268ec41db87d4f453022ac8805b918d20
|
2
relibc
2
relibc
|
@ -1 +1 @@
|
|||
Subproject commit 1a0edd8eeb2e3aae407a91795696461f475b445e
|
||||
Subproject commit 65589f9c935a7eaaa2d1d8db4875fbb458b29edd
|
2
rust
2
rust
|
@ -1 +1 @@
|
|||
Subproject commit fb4ac5ad6ecbde2d46c021b1c7efe55a049475c3
|
||||
Subproject commit e9ed31b0540da8c7eae71de353a741294139ae8b
|
|
@ -1 +0,0 @@
|
|||
nightly-2020-07-27
|
|
@ -0,0 +1,3 @@
|
|||
[toolchain]
|
||||
channel = "nightly-2023-09-07"
|
||||
components = ["rust-src"]
|
|
@ -0,0 +1,75 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
usage()
|
||||
{
|
||||
echo "Usage: $0 -r recipe [ -e command_name ] [ -R ] [ -X | -6 | -A ] [[ -b backtracefile ] | [ addr1 ... ]]"
|
||||
echo
|
||||
echo "Print the backtrace contained in the backtracefile."
|
||||
echo "Symbols are taken from the executable for the given recipe."
|
||||
echo "If no backtracefile is given, decode the given addresses instead."
|
||||
echo "This command must be run in the 'redox' directory."
|
||||
echo
|
||||
echo "-X for x86_64, -6 for i686, -A for aarch64 (x86_64 is the default)."
|
||||
echo "To read from stdin, use '-b -'"
|
||||
echo "The name of the executable must match what Cargo believes it to be."
|
||||
echo "If the executalbe is named 'recipe_command', just use 'command' as the name."
|
||||
echo "The debug version of the executable is used if available."
|
||||
echo "The release version is used if no debug version exists."
|
||||
echo "-R to force the use of the 'release' version of the executable."
|
||||
echo "Make sure the executable is the one that produced the backtrace."
|
||||
exit 1
|
||||
}
|
||||
|
||||
ARCH="x86_64"
|
||||
|
||||
while getopts ":b:e:r:hRXA6" opt
|
||||
do
|
||||
case "$opt" in
|
||||
X) ARCH="x86_64";;
|
||||
A) ARCH="aarch64";;
|
||||
6) ARCH="i686";;
|
||||
b) INFILE="$OPTARG";;
|
||||
e) COMMAND="$OPTARG";;
|
||||
i) INST="$OPTARG";;
|
||||
r) RECIPE_NAME="$OPTARG";;
|
||||
R) RELEASE=true;;
|
||||
h) usage;;
|
||||
\?) echo "Unknown option -$OPTARG, try -h for help"; exit;;
|
||||
:) echo "-$OPTARG requires a value"; exit;;
|
||||
esac
|
||||
done
|
||||
shift $((OPTIND -1))
|
||||
|
||||
if [ -z "$RECIPE_NAME" ]
|
||||
then
|
||||
usage
|
||||
fi
|
||||
|
||||
if [ -z "$INFILE" -a $# = 0 ]
|
||||
then
|
||||
usage
|
||||
fi
|
||||
|
||||
# if no command name is given, assume it's the same as the recipe name
|
||||
RECIPE_DIR="$(cd cookbook; target/release/find_recipe $RECIPE_NAME)"
|
||||
if [ -z "$COMMAND" ]
|
||||
then
|
||||
COMMAND="$RECIPE_NAME"
|
||||
fi
|
||||
|
||||
# look for the debug version of the command
|
||||
EXECUTABLE=cookbook/"$RECIPE_DIR"/target/"$ARCH"-unknown-redox/build/target/"$ARCH"-unknown-redox/debug/"$COMMAND"
|
||||
|
||||
# try the release version next
|
||||
if [ ! -f "$EXECUTABLE" -o ! -z "$RELEASE" ]
|
||||
then
|
||||
EXECUTABLE=cookbook/"$RECIPE_DIR"/target/"$ARCH"-unknown-redox/build/target/"$ARCH"-unknown-redox/release/"$COMMAND"
|
||||
fi
|
||||
|
||||
if [ $# -ne 0 ]
|
||||
then
|
||||
addr2line --demangle=rust --inlines --pretty-print --functions --exe="$EXECUTABLE" $@
|
||||
else
|
||||
sed '/^\s*$/d; s/^.*0x\([0-9a-f]*\).*$/\1/g' "$INFILE" | addr2line --demangle=rust --inlines --pretty-print --functions --exe="$EXECUTABLE"
|
||||
fi
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
if [ -z "$1" ] || [ -z "$2" ]
|
||||
then
|
||||
echo "Build or clean all recipe directories in a category" >&2
|
||||
echo Usage: $0 "<action>" "<recipe-category>" >&2
|
||||
echo "<action>" can be f, r, c, u, or combinations that \"make\" understands >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
set -x
|
||||
|
||||
action="${1#-}"
|
||||
|
||||
for recipe in `find cookbook/recipes/"$2" -name "recipe.*"`
|
||||
do
|
||||
recipe_folder=`dirname "$recipe"`
|
||||
recipe_name=`basename "$recipe_folder"`
|
||||
make "$action"."$recipe_name"
|
||||
done
|
|
@ -0,0 +1,49 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
LAST_RELEASE_TAG="$(git describe --tags --abbrev=0)"
|
||||
LAST_RELEASE_TIMESTAMP="$(git log --format="%ct" -1 "${LAST_RELEASE_TAG}")"
|
||||
echo "Last release: ${LAST_RELEASE_TAG} at ${LAST_RELEASE_TIMESTAMP}"
|
||||
|
||||
REPOS=(
|
||||
redox=.
|
||||
cookbook=cookbook
|
||||
rust=rust
|
||||
)
|
||||
|
||||
for package in $(installer/target/release/redox_installer --list-packages -c config/$(uname -m)/desktop.toml)
|
||||
do
|
||||
REPOS+=("${package}=cookbook/recipes/${package}/source")
|
||||
done
|
||||
|
||||
# TODO: resolve dependencies instead of manually adding these initfs packages
|
||||
for package in init logd nulld ramfs randd zerod
|
||||
do
|
||||
REPOS+=("${package}=cookbook/recipes/${package}/source")
|
||||
done
|
||||
|
||||
for name_repo in "${REPOS[@]}"
|
||||
do
|
||||
name="$(echo "${name_repo}" | cut -d "=" -f 1)"
|
||||
repo="$(echo "${name_repo}" | cut -d "=" -f 2-)"
|
||||
echo -en "\x1B[1m${name}:\x1B[0m "
|
||||
if [ -e "${repo}/.git" ]
|
||||
then
|
||||
remote="$(git -C "${repo}" remote get-url origin)"
|
||||
website="${remote%.*}"
|
||||
before="$(git -C "${repo}" log --until="${LAST_RELEASE_TIMESTAMP}" --format="%h" -1)"
|
||||
after="$(git -C "${repo}" log --since="${LAST_RELEASE_TIMESTAMP}" --format="%h" -1)"
|
||||
if [ -z "${before}" ]
|
||||
then
|
||||
echo "New repository at ${website}"
|
||||
elif [ -z "${after}" ]
|
||||
then
|
||||
echo "No changes"
|
||||
else
|
||||
echo "${website}/-/compare/${before}...${after}"
|
||||
fi
|
||||
else
|
||||
echo "Not a git repository"
|
||||
fi
|
||||
done
|
|
@ -0,0 +1,14 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
if [ $# -ne 1 ]
|
||||
then
|
||||
echo "Usage: $0 recipe_name"
|
||||
echo " Print the commit hash for recipe_name"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cd cookbook
|
||||
recipe_path="$(target/release/find_recipe $1)"
|
||||
|
||||
cd "$recipe_path"/source
|
||||
git branch -v
|
|
@ -0,0 +1,53 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
if [ -n "$1" ]
|
||||
then
|
||||
DISK="$1"
|
||||
else
|
||||
DISK=/dev/disk/by-partlabel/REDOX_INSTALL
|
||||
fi
|
||||
|
||||
if [ ! -b "${DISK}" ]
|
||||
then
|
||||
echo "$0: '${DISK}' is not a block device" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "${ARCH}" ]
|
||||
then
|
||||
export ARCH=x86_64
|
||||
fi
|
||||
|
||||
if [ -z "${CONFIG_NAME}" ]
|
||||
then
|
||||
export CONFIG_NAME=demo
|
||||
fi
|
||||
|
||||
IMAGE="build/${ARCH}/${CONFIG_NAME}/filesystem.img"
|
||||
set -x
|
||||
make "${IMAGE}"
|
||||
sudo popsicle "${IMAGE}" "${DISK}"
|
||||
set +x
|
||||
|
||||
ESP="$(bootctl --print-esp-path)"
|
||||
if [ -z "${ESP}" ]
|
||||
then
|
||||
echo "$0: no ESP found" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
BOOTLOADER="cookbook/recipes/core/bootloader/target/${ARCH}-unknown-redox/stage/boot/bootloader.efi"
|
||||
set -x
|
||||
sudo mkdir -pv "${ESP}/EFI" "${ESP}/loader/entries"
|
||||
sudo cp -v "${BOOTLOADER}" "${ESP}/EFI/redox.efi"
|
||||
sudo tee "${ESP}/loader/entries/redox.conf" <<EOF
|
||||
title Redox OS
|
||||
efi /EFI/redox.efi
|
||||
EOF
|
||||
set +x
|
||||
|
||||
sync
|
||||
|
||||
echo "Finished installing Redox OS dual boot"
|
|
@ -0,0 +1,42 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Ensure arch and config are set as desired, we use these to find the build dir
|
||||
export ARCH=$(uname -m)
|
||||
export CONFIG_NAME=desktop
|
||||
|
||||
# Make sure to unmount the image first
|
||||
make unmount &>/dev/null || true
|
||||
|
||||
# Mount the image
|
||||
make mount >/dev/null
|
||||
|
||||
# Find all files
|
||||
find "build/${ARCH}/${CONFIG_NAME}/" -type f | cut -d / -f5- |\
|
||||
sort |\
|
||||
uniq |\
|
||||
while read path
|
||||
do
|
||||
# Skip empty paths
|
||||
if [ -z "${path}" ]
|
||||
then
|
||||
continue
|
||||
fi
|
||||
|
||||
# Find all packages providing this file
|
||||
pkgs="$(
|
||||
find cookbook/recipes/*"/target/${ARCH}-unknown-redox/stage/${path}" 2>/dev/null |
|
||||
cut -d/ -f3 |
|
||||
tr '\n' ' ' |
|
||||
sort |
|
||||
uniq
|
||||
)"
|
||||
if [ -n "${pkgs}" ]
|
||||
then
|
||||
echo "$path: ${pkgs}"
|
||||
else
|
||||
echo "$path: no packages, see config/${ARCH}/${CONFIG_NAME}.toml"
|
||||
fi
|
||||
done
|
||||
|
||||
# Make sure to unmount the image
|
||||
make unmount &>/dev/null || true
|
|
@ -0,0 +1,23 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Given a string, find recipe.toml files containing that string.
|
||||
# Create a list that can be copy/pasted into a filesystem config.
|
||||
|
||||
if [ -z "$*" ]
|
||||
then
|
||||
echo "Find matching recipes, and format for inclusion in config"
|
||||
echo "Usage: $0 \"pattern\""
|
||||
echo "Must be run from 'redox' directory"
|
||||
echo "e.g. $0 \"TODO.*error\""
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cookbook_recipes="cookbook/recipes"
|
||||
recipe_paths=$(grep -rl "$*" "$cookbook_recipes" --include recipe.toml)
|
||||
|
||||
for recipe_path in $recipe_paths
|
||||
do
|
||||
recipe_dir="$(dirname $recipe_path)"
|
||||
recipe_name="$(basename $recipe_dir)"
|
||||
echo "$recipe_name = {} # " $(grep "$*" $recipe_path)
|
||||
done
|
|
@ -0,0 +1,27 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
if [ $# = 0 ]
|
||||
then
|
||||
find cookbook/recipes \( -name stage.pkgar -o -name stage.tar.gz \) -exec ls -hs {} \;
|
||||
exit 0
|
||||
fi
|
||||
|
||||
for recipe in $@
|
||||
do
|
||||
if [ "$recipe" = "-h" ] || [ "$recipe" = "--help" ]
|
||||
then
|
||||
echo "Usage: $0 [recipe] ..."
|
||||
echo " For the recipe(s), prints the size of 'stage.pkgar' and 'stage.tar.gz'."
|
||||
echo " If no recipe is given, then all packages are listed."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
recipe_paths=$(find cookbook/recipes -name $recipe)
|
||||
for recipe_path in $recipe_paths
|
||||
do
|
||||
if [ -f "$recipe_path/recipe.toml" ] || [ -f "$recipe_path/recipe.sh" ]
|
||||
then
|
||||
find "$recipe_path" \( -name stage.pkgar -o -name stage.tar.gz \) -exec ls -hs {} \;
|
||||
fi
|
||||
done
|
||||
done
|
|
@ -0,0 +1,26 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Show the contents of the stage and sysroot folders in some recipe
|
||||
|
||||
if [ -z "$*" ]
|
||||
then
|
||||
echo "Show the contents of the stage and sysroot folders in recipe(s)"
|
||||
echo "Usage: $0 recipe1 ..."
|
||||
echo "Must be run from the 'redox' directory"
|
||||
echo "e.g. $0 kernel"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
find_recipe="target/release/find_recipe"
|
||||
if [ ! -x "cookbook/$find_recipe" ]
|
||||
then
|
||||
echo "$find_recipe not found."
|
||||
echo "Please run 'make fstools' and try again."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
for recipe in $*
|
||||
do
|
||||
recipe_dir="$(cd cookbook; "$find_recipe" "$recipe")"
|
||||
ls -1 "cookbook/$recipe_dir/target"/*/{stage,sysroot}
|
||||
done
|
|
@ -0,0 +1,33 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
ARCHS=(
|
||||
i686
|
||||
x86_64
|
||||
)
|
||||
CONFIGS=(
|
||||
demo
|
||||
desktop
|
||||
)
|
||||
|
||||
VENTOY="/media/${USER}/Ventoy"
|
||||
if [ ! -d "${VENTOY}" ]
|
||||
then
|
||||
echo "Ventoy not mounted" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
for ARCH in "${ARCHS[@]}"
|
||||
do
|
||||
for CONFIG_NAME in "${CONFIGS[@]}"
|
||||
do
|
||||
IMAGE="build/${ARCH}/${CONFIG_NAME}/livedisk.iso"
|
||||
make ARCH="${ARCH}" CONFIG_NAME="${CONFIG_NAME}" "${IMAGE}"
|
||||
cp -v "${IMAGE}" "${VENTOY}/redox-${CONFIG_NAME}-${ARCH}.iso"
|
||||
done
|
||||
done
|
||||
|
||||
sync
|
||||
|
||||
echo "Finished copying configs (${CONFIGS[@]}) for archs (${ARCHS[@]})"
|
Reference in New Issue