| 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 | |
| … | |
… | |
| 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> |
| 60 | Gentoo/FreeBSD is an effort effort to provide a fully-capable FreeBSD operating |
60 | Gentoo/FreeBSD is an effort to provide a fully-capable FreeBSD operating system |
| 61 | system with Gentoo's design sensibilities. The long-term goal of the Gentoo/BSD |
61 | with Gentoo's design sensibilities. The long-term goal of the Gentoo/BSD project |
| 62 | project is to allow users to choose any combination of *BSD or Linux kernels, |
62 | is 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. |
63 | GNU 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> |
| … | |
… | |
| 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 |
| … | |
… | |
| 97 | joining the Gentoo/FreeBSD development effort: |
97 | joining 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> |
| … | |
… | |
| 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> |
| 213 | CHOST="i686-gentoo-freebsd5.4" |
213 | CHOST="i686-gentoo-freebsd5.4" |
| 214 | ACCEPT_KEYWORDS="~x86-fbsd ~x86" |
214 | ACCEPT_KEYWORDS="~x86-fbsd ~x86" |
| 215 | FEATURES="-sandbox collision-protect" |
215 | FEATURES="-sandbox collision-protect" |
| 216 | PORTDIR_OVERLAY="/usr/local/portage/gentoo-freebsd" |
216 | PORTDIR_OVERLAY="/usr/local/portage/gentoo-freebsd" |
| 217 | </pre> |
217 | </pre> |
| 218 | |
218 | |
| 219 | <p> |
219 | <p> |
| … | |
… | |
| 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> |
| 313 | There are many things you could help with, depending on your skill level and |
313 | There are many things you could help with, depending on your skill level and |
| 314 | spare time: |
314 | spare 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> |
| … | |
… | |
| 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} -d</c> somewhere. The easy way to deal with |
368 | a missing <c>${INSTALL} -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 |
| … | |
… | |
| 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> |
| … | |
… | |
| 441 | <title>Contact</title> |
441 | <title>Contact</title> |
| 442 | <section> |
442 | <section> |
| 443 | <body> |
443 | <body> |
| 444 | |
444 | |
| 445 | <p> |
445 | <p> |
| 446 | At list of Gentoo/FreeBSD developers can be found at the <uri |
446 | A list of Gentoo/FreeBSD developers can be found at the <uri |
| 447 | link="/proj/en/gentoo-alt/bsd/fbsd/">project page</uri>. Other ways to contact |
447 | link="/proj/en/gentoo-alt/bsd/fbsd/">project page</uri>. Other ways to contact |
| 448 | Gentoo/FreeBSD developers include our IRC Channel <c>#gentoo-bsd</c> on |
448 | Gentoo/FreeBSD developers include our IRC Channel <c>#gentoo-bsd</c> on |
| 449 | Freenode, as well as the mailing list <mail>gentoo-bsd@gentoo.org</mail>. To |
449 | Freenode, as well as the mailing list <mail>gentoo-bsd@gentoo.org</mail>. To |
| 450 | subscribe just send an empty email to |
450 | subscribe 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 |