summaryrefslogtreecommitdiffstats
path: root/site/gnu/index.php
blob: 80bf282a6fcca992cacd736929f8670002de51cc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
<?php
/*
    Frequently asked questions
    Copyright (C) 2015  Leah Woods <info@minifree.org>

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Affero General Public License as
    published by the Free Software Foundation, either version 3 of the
    License, or (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Affero General Public License for more details.

    You should have received a copy of the GNU Affero General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/
	header('Content-type: text/html; charset=utf-8');
	ob_start();
	include_once "../common/variables.php";
	include_once "../common/functions.php";
?>
<!DOCTYPE html>
<html>
<head>
	<link rel="stylesheet" type="text/css" href="../common/css/main.css" />
	<title>GNU Libreboot</title>
</head>

<body>

	<div id="pagetop">

		<h1>GNU Libreboot</h1>
			<p>
				We are working to make libreboot eligible to be added to the <a href="https://gnu.org/">GNU system</a>,
				and call on the community to help with this effort. <a href="../">Back to home page</a>
			</p>
			<p>
				Firstly, the git repositories (for development) can be found on the <a href="../git/">git page</a>.
			</p>
			<p>
				Libreboot has been 100% philosophically compatible with GNU, from the day the project was founded (our goal is identical to GNU,
				and our philosophy is identical to the one held by that project), but there are some
				technical issues with it that make it incompatible with GNU at present.
			</p>
			<h2>
				So far, we have the following tasks to complete (there may be other tasks):
			</h2>
				<ul class="c">
					<li>
						Convert the documentation to texinfo - partially complete. The docs have been converted using pandoc, 
						but now require a serious cleanup.
						We wish to merge these into 1 documentation file (manual) in texinfo file. 
						The <a href="https://www.gnu.org/software/texinfo/manual/texinfo/">texinfo manual</a> itself
						is an example of how we would like to implement the new libreboot documentation. One file, but we 
						will distribute it separated into separate pages/sections, 
						and in other formats in addition to HTML. (info, PDF, etc). The current live documentation on the 
						libreboot website is the old pre-conversion documentation,
						written in raw HTML. To encourage the transition, we are now refusing all new documentation submissions 
						that are not in texinfo format.
						<ul>
							<li>Texinfo is the official documentation format, for all GNU software.</li>
							<li>GNU Emacs has decent integration for editing Texinfo documents. See <em>Texinfo mode</em>.
							However, any text editor should be fine (the lead developer of libreboot uses Vim).</li>
							<li>
								i18n should be implemented from the start, so that we can start maintaining versions of the documentation
								in non-English languages. GNU Gettext can be used for this.
							</li>
						</ul>
					</li>
					<li>
						Modify the build system, to make use of standard GNU utilities: make, autoconf and so on. The current build system is 
						non-standard (but well documented), written mostly in BASH.Read these documents:
						<ul>
							<li><a href="https://www.gnu.org/prep/standards/html_node/Standard-Targets.html">https://www.gnu.org/prep/standards/html_node/Standard-Targets.html</a></li>
							<li><a href="https://www.gnu.org/prep/maintain/maintain.html#Distributions">https://www.gnu.org/prep/maintain/maintain.html#Distributions</a></li>
						</ul>
					</li>
					<li>
						<s>Document, extensively (and keep it up to date!) full and accurate information about package dependencies, libraries used, etc.
						We already do this to a great extent (via an installation script for Trisquel and Parabola, and the overall build system in libreboot),
						but we can do a better job documentation-wise.</s>
					</li>
					<li>
						<s>Include ChangeLog and NEWS files in the distribution (in the release archives, but probably uncessary in the git repository).
						ChangeLog entries can be generated automatically, using the gnulib gitlog-to-changelog script, and the NEWS file can be generated
						from commit messages.</s> - DONE!
					</li>
					<li>
						<s>Re-license the documentation under GNU FDL.</s> - DONE!
					</li>
					<li>
						<s>Make libreboot possible to build from source without network access.</s> - DONE! (Only in release archives. 
						Development in Git requires network access, for downloading the extra modules that go into the release archives. There is no way to avoid
						this, due to what libreboot actually is - a boot firmware distribution, combining several projects, much like you have <em>GNU/Linux</em> distributions
						which are identical in concept). 
					</li>
				</ul>
			<h2>
				Not required, technically, but will make things easier in general, not just for GNU:
			</h2>
				<ul class="c">
					<li>
                                        Modify the build system, to
					directly download the
					build dependencies
					that libreboot
					currently tells the
					user to install from
					their distribution
					package repository.
					(Only in Git. Release
					archives would have
					them already). Build
					these from source,
					with our own GCC
					(re-using coreboot's
					GCC, which libreboot
					already uses). This
					will make <em>complete
					corresponding
					source</em> provision
					easier, because it
					would be automated;
					this is in contrast to
					the present setup,
					where the person
					distributing binaries
					has to include the
					sources for build
					dependencies from the
					distribution that they
					happened to use for
					compiling those
					packages.
                                                
						<ul>
							<li>This will also make everything self-contained, and coreboot already has integration for cross-compiling. We can make cross compilation
							of utilities for non-x86 architectures much easier, without relying on quirks from the user's GNU/Linux distribution, where the
							only thing we need from their distribution is the necessary toolchain for building <em>libreboot's own version of GCC</em>, which would then take over</li>
							<li>
								However, do not install these dependencies, only self-host them in the libreboot source archive. Also provide an option for the user to ignore libreboot's
								GCC and dependencies, and use what their GNU/Linux distribution provides, when building from source.
							</li>
						</ul>
					</li>
				</ul>

	</div>

<?php
	include "../common/footer.php";
?>

</body>
</html>
<?php
	$strHtml = ob_get_clean();
	echo miniHtml($strHtml);
?>