/[gentoo]/xml/htdocs/doc/en/gentoo-freebsd.xml
Gentoo

Diff of /xml/htdocs/doc/en/gentoo-freebsd.xml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.3 Revision 1.4
1<?xml version='1.0' encoding="UTF-8"?> 1<?xml version="1.0" encoding="UTF-8"?>
2<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/gentoo-freebsd.xml,v 1.3 2005/09/10 21:09:01 rane Exp $ --> 2<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/gentoo-freebsd.xml,v 1.4 2005/09/11 16:27:55 cam Exp $ -->
3<!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> 3<!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
4 4
5<guide link="/doc/en/gentoo-freebsd.xml"> 5<guide link="/doc/en/gentoo-freebsd.xml">
6<title>A short guide to Gentoo/FreeBSD</title> 6<title>A short guide to Gentoo/FreeBSD</title>
7 7
8<author title="Author"> 8<author title="Author">
9 <mail link="ignacio.arquelatour@gmail.com">Ignacio Arque-Latour</mail> 9 <mail link="ignacio.arquelatour@gmail.com">Ignacio Arque-Latour</mail>
10</author> 10</author>
11<author title="Author"> 11<author title="Author">
12 <mail link="citizen428@gentoo.org">Michael Kohl</mail> 12 <mail link="citizen428@gentoo.org">Michael Kohl</mail>
13</author> 13</author>
14<author title="Author"> 14<author title="Author">
15 Otavio R. Piske 15 Otavio R. Piske
16</author> 16</author>
17<author title="Author"> 17<author title="Author">
45<uri link="http://www.netbsd.org/">NetBSD</uri>, commonly known to run on a 45<uri link="http://www.netbsd.org/">NetBSD</uri>, commonly known to run on a
46huge number of architetures, and FreeBSD which focuses mainly on the x86 46huge number of architetures, and FreeBSD which focuses mainly on the x86
47platform. FreeBSD is renowned for its stability, performance and security, thus 47platform. FreeBSD is renowned for its stability, performance and security, thus
48being used from small to huge companies all over the world. FreeBSD's current 48being used from small to huge companies all over the world. FreeBSD's current
49production release version is 5.4, which is also used as the foundation for the 49production release version is 5.4, which is also used as the foundation for the
50Gentoo/FreeBSD project. 50Gentoo/FreeBSD project.
51</p> 51</p>
52 52
53</body> 53</body>
54</section> 54</section>
55<section> 55<section>
56<title>What is Gentoo/FreeBSD?</title> 56<title>What is Gentoo/FreeBSD?</title>
57<body> 57<body>
58 58
59<p> 59<p>
60Gentoo/FreeBSD is an effort effort to provide a fully-capable FreeBSD operating 60Gentoo/FreeBSD is an effort to provide a fully-capable FreeBSD operating system
61system with Gentoo's design sensibilities. The long-term goal of the Gentoo/BSD 61with Gentoo's design sensibilities. The long-term goal of the Gentoo/BSD project
62project is to allow users to choose any combination of *BSD or Linux kernels, 62is to allow users to choose any combination of *BSD or Linux kernels, *BSD or
63*BSD or GNU libc, and *BSD or GNU userland tools. 63GNU libc, and *BSD or GNU userland tools.
64</p> 64</p>
65 65
66</body> 66</body>
67</section> 67</section>
68<section> 68<section>
69<title>FreeBSD and Linux</title> 69<title>FreeBSD and Linux</title>
70<body> 70<body>
71 71
72<p> 72<p>
73Users migrating from Linux to FreeBSD commonly consider the two operating 73Users migrating from Linux to FreeBSD commonly consider the two operating
74systems "almost the same". In fact, FreeBSD really shares a lot of similarities 74systems "almost the same". In fact, FreeBSD really shares a lot of similarities
75with Linux distributions in general. Nevertheless, it has some key differences 75with Linux distributions in general. Nevertheless, it has some key differences
76that are worth noting: 76that are worth noting:
77</p> 77</p>
78 78
79<ul> 79<ul>
80 <li> 80 <li>
81 Contrary to Linux, which actually only refers to the kernel, FreeBSD is a 81 Contrary to Linux, which actually only refers to the kernel, FreeBSD is a
82 complete operating system, consisting of a C library, userland tools and 82 complete operating system, consisting of a C library, userland tools and
83 much more. This development approach makes the overall system very 83 much more. This development approach makes the overall system very
84 consistent 84 consistent.
85 </li> 85 </li>
86 <li> 86 <li>
87 Contrary to the Linux kernel, FreeBSD development is not led by one person, 87 Contrary to the Linux kernel, FreeBSD development is not led by one person,
88 but instead managed by a small group of people called the <uri 88 but instead managed by a small group of people called the <uri
89 link="http://www.freebsd.org/doc/en_US.ISO8859-1/articles/contributors/staff-core.html">Core 89 link="http://www.freebsd.org/doc/en_US.ISO8859-1/articles/contributors/staff-core.html">Core
90 Team</uri>. 90 Team</uri>.
91 </li> 91 </li>
92</ul> 92</ul>
93 93
94<p> 94<p>
95Besides, FreeBSD also has some technical differences which set it apart 95Besides, FreeBSD also has some technical differences which set it apart
96from Linux. Some of them are very important to know, even if you don't plan on 96from Linux. Some of them are very important to know, even if you don't plan on
97joining the Gentoo/FreeBSD development effort: 97joining the Gentoo/FreeBSD development effort:
98</p> 98</p>
99 99
100<ul> 100<ul>
101 <li> 101 <li>
102 To get run-time dynamic linking fuctions like <c>dlopen()</c>, programs do 102 To get run-time dynamic linking functions like <c>dlopen()</c>, programs do
103 not need to be linked against libdl like on GNU/Linux. Instead they are 103 not need to be linked against libdl like on GNU/Linux. Instead they are
104 linked against libc 104 linked against libc.
105 </li> 105 </li>
106 <li> 106 <li>
107 FreeBSD doesn't have an official tool for kernel compilation, thus you'll 107 FreeBSD doesn't have an official tool for kernel compilation, thus you'll
108 have to resolve feature dependecies on your own 108 have to resolve feature dependencies on your own.
109 </li> 109 </li>
110 <li> 110 <li>
111 FreeBSD uses UFS/UFS-2 as its filesystems and has no official support for 111 FreeBSD uses UFS/UFS-2 as its filesystems and has no official support for
112 e.g. ReiserFS or XFS. However, there are projects for adding read-only 112 e.g. ReiserFS or XFS. However, there are projects for adding read-only
113 support for these filesystems. However, accessing ext2/ext3 partitions is 113 support for these filesystems. Accessing ext2/ext3 partitions is already
114 already possible, but you cannot install your system on them. 114 possible, but you cannot install your system on them.
115 </li> 115 </li>
116</ul> 116</ul>
117 117
118</body> 118</body>
119</section> 119</section>
120</chapter> 120</chapter>
121 121
122<chapter> 122<chapter>
123<title>Installing Gentoo/FreeBSD</title> 123<title>Installing Gentoo/FreeBSD</title>
124<section> 124<section>
125<title>Installation instructions</title> 125<title>Installation instructions</title>
126<body> 126<body>
127 127
128<p> 128<p>
129After this short introduction, it's about time to finally install 129After this short introduction, it's about time to finally install
198# <i>mount -t devfs none /mnt/gfbsd/dev/</i> 198# <i>mount -t devfs none /mnt/gfbsd/dev/</i>
199# <i>chroot /mnt/gfbsd/ /bin/bash</i> 199# <i>chroot /mnt/gfbsd/ /bin/bash</i>
200</pre> 200</pre>
201 201
202<p> 202<p>
203After you got hold of the Gentoo/FreeBSD overlay, it's time to link 203After you got hold of the Gentoo/FreeBSD overlay, it's time to link
204<path>/etc/make.profile</path> to the correct profile and add get your 204<path>/etc/make.profile</path> to the correct profile and add get your
205<path>/etc/make.conf</path> ready for Gentoo/FreeBSD. 205<path>/etc/make.conf</path> ready for Gentoo/FreeBSD.
206</p> 206</p>
207 207
208<pre caption="Setting up the profile and editing /etc/make.conf"> 208<pre caption="Setting up the profile and editing /etc/make.conf">
209# <i>ln -sf /usr/local/portage/gentoo-freebsd/profiles/default-bsd/fbsd/5.4/x86/ /etc/make.profile</i> 209# <i>ln -sf /usr/local/portage/gentoo-freebsd/profiles/default-bsd/fbsd/5.4/x86/ /etc/make.profile</i>
210<comment>(FreeBSD's standard editor is ee, which is used to edit /etc/make.conf)</comment> 210<comment>(FreeBSD's standard editor is ee, which is used to edit /etc/make.conf)</comment>
211# <i>ee /etc/make.conf</i> 211# <i>ee /etc/make.conf</i>
212<comment>(Please make sure you add at least the following entries:)</comment> 212<comment>(Please make sure you add at least the following entries:)</comment>
213CHOST="i686-gentoo-freebsd5.4" 213CHOST="i686-gentoo-freebsd5.4"
214ACCEPT_KEYWORDS="~x86-fbsd ~x86" 214ACCEPT_KEYWORDS="~x86-fbsd ~x86"
215FEATURES="-sandbox collision-protect" 215FEATURES="-sandbox collision-protect"
216PORTDIR_OVERLAY="/usr/local/portage/gentoo-freebsd" 216PORTDIR_OVERLAY="/usr/local/portage/gentoo-freebsd"
217</pre> 217</pre>
218 218
219<p> 219<p>
220Now, you have to obtain a copy of the main Gentoo Portage tree, which depending 220Now, you have to obtain a copy of the main Gentoo Portage tree, which depending
221on your connection might take quite a while. 221on your connection might take quite a while.
222</p> 222</p>
223 223
224<pre caption="Obtaining the portage tree"> 224<pre caption="Obtaining the portage tree">
225# <i>emerge --sync</i> 225# <i>emerge --sync</i>
226</pre> 226</pre>
227 227
228<p> 228<p>
229After you have synchronised your Portage tree, you only have to take a few last 229After you have synchronised your Portage tree, you only have to take a few last
294<p> 294<p>
295Please note that currently only the "Traditional" way of building the kernel is 295Please note that currently only the "Traditional" way of building the kernel is
296supported on Gentoo/FreeBSD! Also note that <c>make install</c> will probably 296supported on Gentoo/FreeBSD! Also note that <c>make install</c> will probably
297ask you for a <path>/boot/device.hints</path> file. A default version can be 297ask you for a <path>/boot/device.hints</path> file. A default version can be
298found in the <path>conf</path> subdirectory of the <c>GENERIC</c> configuration 298found in the <path>conf</path> subdirectory of the <c>GENERIC</c> configuration
299and is called <path>GENERIC.hints</path> 299and is called <path>GENERIC.hints</path>
300</p> 300</p>
301 301
302</body> 302</body>
303</section> 303</section>
304</chapter> 304</chapter>
305 305
306<chapter> 306<chapter>
307<title>Developing for Gentoo/FreeBSD</title> 307<title>Developing for Gentoo/FreeBSD</title>
308<section> 308<section>
309<title>How to help </title> 309<title>How to help</title>
310<body> 310<body>
311 311
312<p> 312<p>
313There are many things you could help with, depending on your skill level and 313There are many things you could help with, depending on your skill level and
314spare time: 314spare time:
315</p> 315</p>
316 316
317<ul> 317<ul>
318 <li> 318 <li>
319 We need GCC and binutils hackers who are able to port FreeBSD's patches to 319 We need GCC and binutils hackers who are able to port FreeBSD's patches to
320 the original versions of these tools provided by our main Portage tree 320 the original versions of these tools provided by our main Portage tree.
321 </li> 321 </li>
322 <li> 322 <li>
323 Working with userland ebuilds: this means working closely with other 323 Working with userland ebuilds: this means working closely with other
324 developers in order to have our changes/patches accepted into the main tree 324 developers in order to have our changes/patches accepted into the main tree.
325 </li> 325 </li>
326 <li> 326 <li>
327 Security: if you are into security, we need you! Although security 327 Security: if you are into security, we need you! Although security
328 advisories from the FreeBSD project are tracked and fixed, we can always 328 advisories from the FreeBSD project are tracked and fixed, we can always
329 use help in this area 329 use help in this area.
330 </li> 330 </li>
331 <li> 331 <li>
332 Contacts: we need people who can get in touch with FreeBSD developers to 332 Contacts: we need people who can get in touch with FreeBSD developers to
333 maintain contacts between us and the original project to exchange patches 333 maintain contacts between us and the original project to exchange patches
334 and discuss various problems and their solutions. Note that this should 334 and discuss various problems and their solutions. Note that this should
335 never involve any kind of spamming of mailing lists or IRC channels 335 never involve any kind of spamming of mailing lists or IRC channels.
336 </li> 336 </li>
337 <li> 337 <li>
338 Testing: the more people are actively using Gentoo/FreeBSD, the more bugs 338 Testing: the more people are actively using Gentoo/FreeBSD, the more bugs
339 will be discovered, which helps us improving the quality of the port. If 339 will be discovered, which helps us improving the quality of the port. If
340 you are good at describing bugs or problems, we definitely want to hear 340 you are good at describing bugs or problems, we definitely want to hear
341 from you 341 from you.
342 </li> 342 </li>
343 <li> 343 <li>
344 Other areas where we need help include: system ebuilds, baselayout, 344 Other areas where we need help include: system ebuilds, baselayout,
345 creation of installation CDs, documentation, kernel hacking. 345 creation of installation CDs, documentation, kernel hacking.
346 </li> 346 </li>
347</ul> 347</ul>
348 348
349</body> 349</body>
350</section> 350</section>
351<section> 351<section>
352<title>Building the system and dealing with issues</title> 352<title>Building the system and dealing with issues</title>
353<body> 353<body>
354 354
355<p> 355<p>
356Although Linux and FreeBSD both are Unix-like operating systems, there are some 356Although Linux and FreeBSD both are Unix-like operating systems, there are some
357important differences you have to know about if you want to contribute to our 357important differences you have to know about if you want to contribute to our
358development effort: 358development effort:
359</p> 359</p>
360 360
361<ul> 361<ul>
362 <li> 362 <li>
363 FreeBSD doesn't use the GNU autotools (autoconf, automake, autoheader). 363 FreeBSD doesn't use the GNU autotools (autoconf, automake, autoheader).
364 Instead, it uses its own implementation of <c>make</c>, putting 364 Instead, it uses its own implementation of <c>make</c>, putting
365 configuration options in external files and some .mk files that are 365 configuration options in external files and some .mk files that are
366 included with each Makefile. Although a lot of work has been put into 366 included with each Makefile. Although a lot of work has been put into
367 those .mk files, it is not hard to find some installations failling due to 367 those .mk files, it is not hard to find some installations failing due to
368 a missing <c>${INSTALL}&nbsp;-d</c> somewhere. The easy way to deal with 368 a missing <c>${INSTALL}&nbsp;-d</c> somewhere. The easy way to deal with
369 this kind of problem is to read the Makefile to find the accompanying .mk 369 this kind of problem is to read the Makefile to find the accompanying .mk
370 file, then open that file and try to figure out which part failed (this is 370 file, then open that file and try to figure out which part failed (this is
371 not really hard once you figure out where in the installation process it 371 not really hard once you figure out where in the installation process it
372 stopped) 372 stopped).
373 </li> 373 </li>
374 <li> 374 <li>
375 Besides, due to the fact that FreeBSD is a complete operating system, you 375 Besides, due to the fact that FreeBSD is a complete operating system, you
376 won't find things like a FreeBSD kernel tarball for download on a web site. 376 won't find things like a FreeBSD kernel tarball for download on a web site.
377 The system is meant to be concise, thus whenever you start making an ebuild 377 The system is meant to be concise, thus whenever you start making an ebuild
378 for something that uses system sources, you are very likely to run into 378 for something that uses system sources, you are very likely to run into
379 problems when it tries to access non-existent files or directories. This 379 problems when it tries to access non-existent files or directories. This
380 generally occurs when a Makefile points to <path>${.CURDIR}/../sys</path>, 380 generally occurs when a Makefile points to <path>${.CURDIR}/../sys</path>,
381 or when a Makefile has a source dependency on another system package. There 381 or when a Makefile has a source dependency on another system package. There
382 is no default rule on dealing with such issues, but generally one of the 382 is no default rule on dealing with such issues, but generally one of the
383 following procedures helps: 383 following procedures helps:
384 <ul> 384 <ul>
385 <li> 385 <li>
386 If the ebuild is trying to access kernel sources, patch it to point to 386 If the ebuild is trying to access kernel sources, patch it to point to
387 <path>/usr/src/sys</path> 387 <path>/usr/src/sys</path>
407</section> 407</section>
408<section> 408<section>
409<title>Known issues</title> 409<title>Known issues</title>
410<body> 410<body>
411 411
412<p> 412<p>
413At the moment, there are still quite a lot of known issues. Here are the ones 413At the moment, there are still quite a lot of known issues. Here are the ones
414really worth noting: 414really worth noting:
415</p> 415</p>
416 416
417<ul> 417<ul>
418 <li> 418 <li>
419 Some init scripts depend on the clock service which we don't provide right 419 Some init scripts depend on the clock service which we don't provide right
420 now. You can just remove it from the dependencies of the script and report 420 now. You can just remove it from the dependencies of the script and report
421 that on our <uri link="http://bugs.gentoo.org/">bugzilla</uri>. Please 421 that on our <uri link="http://bugs.gentoo.org/">bugzilla</uri>. Please
422 remember to use the "Gentoo BSD" product for your submission 422 remember to use the "Gentoo BSD" product for your submission.
423 </li> 423 </li>
424 <li> 424 <li>
425 Some ebuilds have hardcoded -ldl flags to link against libdl to get 425 Some ebuilds have hardcoded -ldl flags to link against libdl to get
426 <c>dlopen()</c>. This needs to be fixed 426 <c>dlopen()</c>. This needs to be fixed.
427 </li> 427 </li>
428 <li> 428 <li>
429 xorg-x11 6.8.99.14 and .15 won't build. Until this has been fixed, you can 429 xorg-x11 6.8.99.14 and .15 won't build. Until this has been fixed, you can
430 revert to xorg-x11-6.8.99.13. An ebuild can be obtained via <uri 430 revert to xorg-x11-6.8.99.13. An ebuild can be obtained via <uri
431 link="http://viewcvs.gentoo.org">ViewCVS</uri> 431 link="http://viewcvs.gentoo.org">ViewCVS</uri>.
432 </li> 432 </li>
433 <li>glib and gnome in general need a lot of fixes to be backported.</li> 433 <li>glib and gnome in general need a lot of fixes to be backported.</li>
434</ul> 434</ul>
435 435
436</body> 436</body>
437</section> 437</section>
438</chapter> 438</chapter>
439 439
440<chapter> 440<chapter>
441<title>Contact</title> 441<title>Contact</title>
442<section> 442<section>
443<body> 443<body>
444 444
445<p> 445<p>
446At list of Gentoo/FreeBSD developers can be found at the <uri 446A list of Gentoo/FreeBSD developers can be found at the <uri
447link="/proj/en/gentoo-alt/bsd/fbsd/">project page</uri>. Other ways to contact 447link="/proj/en/gentoo-alt/bsd/fbsd/">project page</uri>. Other ways to contact
448Gentoo/FreeBSD developers include our IRC Channel <c>#gentoo-bsd</c> on 448Gentoo/FreeBSD developers include our IRC Channel <c>#gentoo-bsd</c> on
449Freenode, as well as the mailing list <mail>gentoo-bsd@gentoo.org</mail>. To 449Freenode, as well as the mailing list <mail>gentoo-bsd@gentoo.org</mail>. To
450subscribe just send an empty email to 450subscribe just send an empty email to
451<mail>gentoo-bsd-subscribe@gentoo.org</mail> and follow the instructions 451<mail>gentoo-bsd-subscribe@gentoo.org</mail> and follow the instructions
452included in the reply. 452included in the reply.
453</p> 453</p>
454 454
455</body> 455</body>
456</section> 456</section>
457</chapter> 457</chapter>
458</guide> 458</guide>

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

  ViewVC Help
Powered by ViewVC 1.1.20