From owner-p4-projects@FreeBSD.ORG Tue Dec 6 18:39:19 2011 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 26DBA1065719; Tue, 6 Dec 2011 18:39:19 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DC1431065704 for ; Tue, 6 Dec 2011 18:39:18 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id C8F358FC3A for ; Tue, 6 Dec 2011 18:39:18 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id pB6IdIB1053612 for ; Tue, 6 Dec 2011 18:39:18 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id pB6IdIGd053609 for perforce@freebsd.org; Tue, 6 Dec 2011 18:39:18 GMT (envelope-from rene@FreeBSD.org) Date: Tue, 6 Dec 2011 18:39:18 GMT Message-Id: <201112061839.pB6IdIGd053609@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 202700 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Dec 2011 18:39:19 -0000 http://p4web.freebsd.org/@@202700?ac=10 Change 202700 by rene@rene_acer on 2011/12/06 18:38:53 IFC Affected files ... .. //depot/projects/docproj_nl/en_US.ISO8859-1/articles/contributors/contrib.committers.sgml#71 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/articles/portbuild/article.sgml#40 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/advanced-networking/chapter.sgml#33 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/disks/chapter.sgml#22 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/porters-handbook/book.sgml#116 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/share/sgml/authors.ent#64 integrate .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/articles/contributing-ports/article.sgml#17 integrate .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/virtualization/chapter.sgml#24 integrate .. //depot/projects/docproj_nl/share/pgpkeys/jhibbits.key#1 branch .. //depot/projects/docproj_nl/share/pgpkeys/pgpkeys-developers.sgml#64 integrate .. //depot/projects/docproj_nl/share/pgpkeys/pgpkeys.ent#62 integrate .. //depot/projects/docproj_nl/www/en/administration.sgml#23 integrate .. //depot/projects/docproj_nl/www/en/developers.sgml#65 integrate .. //depot/projects/docproj_nl/www/share/sgml/news.xml#124 integrate Differences ... ==== //depot/projects/docproj_nl/en_US.ISO8859-1/articles/contributors/contrib.committers.sgml#71 (text+ko) ==== @@ -1,4 +1,4 @@ - + @@ -1168,7 +1168,7 @@ authentication parameters, you will have to get an IP address to communicate. Most of time you will obtain your wireless IP address via DHCP. To achieve that, - simply edit /etc/rc.conf and add + edit /etc/rc.conf and add DHCP to the configuration for your device as shown in various examples above: @@ -1229,7 +1229,7 @@ the 802.1X authentication protocol and uses one of several ciphers instead of WEP for data integrity. The only cipher required by WPA is TKIP (Temporary Key Integrity - Protocol) which is a cipher that extends the basic RC4 + Protocol). TKIP is a cipher that extends the basic RC4 cipher used by WEP by adding integrity checking, tamper detection, and measures for responding to any detected intrusions. TKIP is designed to work on legacy hardware @@ -1247,7 +1247,7 @@ station and the access point using a pre-shared secret. The former is commonly termed WPA Enterprise with the latter known as WPA Personal. Since most people will not - set up a RADIUS backend server for wireless network, + set up a RADIUS backend server for their wireless network, WPA-PSK is by far the most commonly encountered configuration for WPA. @@ -1262,7 +1262,7 @@ WPA-PSK - WPA-PSK also known as WPA-Personal is based on a + WPA-PSK, also known as WPA-Personal, is based on a pre-shared key (PSK) generated from a given password and that will be used as the master key in the wireless network. This means every wireless user will share the @@ -1293,7 +1293,7 @@ wlans_ath0="wlan0" ifconfig_wlan0="WPA DHCP" - Then, we can bring up the interface: + Then we can bring up the interface: &prompt.root; /etc/rc.d/netif start Starting wpa_supplicant. @@ -1346,16 +1346,16 @@ wme burst roaming MANUAL - If the /etc/rc.conf is set up - with the line ifconfig_wlan0="DHCP" - then it is no need to run the - dhclient command manually, - dhclient will be launched after - wpa_supplicant plumbs the - keys. + If /etc/rc.conf has an + ifconfig_wlan0 entry with the + DHCP string (like + ifconfig_wlan0="DHCP"), + dhclient will be launched + automatically after wpa_supplicant + associates with the access point. - In the case where the use of DHCP is not possible, + If DHCP is not possible or desired, you can set a static IP address after wpa_supplicant has authenticated the station: @@ -1374,7 +1374,7 @@ wme burst roaming MANUAL When DHCP is not used, you also have to manually set - up the default gateway and the nameserver: + the default gateway and the nameserver: &prompt.root; route add default your_default_router &prompt.root; echo "nameserver your_DNS_server" >> /etc/resolv.conf @@ -1384,17 +1384,17 @@ WPA with EAP-TLS The second way to use WPA is with an 802.1X backend - authentication server, in this case WPA is called - WPA-Enterprise to make difference with the less secure - WPA-Personal with its pre-shared key. The - authentication in WPA-Enterprise is based on EAP - (Extensible Authentication Protocol). + authentication server. In this case WPA is called + WPA-Enterprise to differentiate it from the less secure + WPA-Personal with its pre-shared key. + Authentication in WPA-Enterprise is based on the + Extensible Authentication Protocol (EAP). - EAP does not come with an encryption method, it was - decided to embed EAP inside an encrypted tunnel. Many - types of EAP authentication methods have been designed, - the most common methods are EAP-TLS, EAP-TTLS and - EAP-PEAP. + EAP does not come with an encryption method. + Instead, it was decided to embed EAP inside an encrypted + tunnel. There are many EAP authentication methods, but + EAP-TLS, EAP-TTLS, and EAP-PEAP are the most + common. EAP-TLS (EAP with Transport Layer Security) is a very well-supported authentication protocol in the @@ -1559,7 +1559,7 @@ The ca_cert field indicates the pathname of the CA certificate file. This file - is needed to verify the server certificat. + is needed to verify the server certificate. @@ -1601,23 +1601,26 @@ WPA with EAP-PEAP + + PEAPv0/EAP-MSCHAPv2 is the most common PEAP method. + In the rest of this document, we will use the PEAP term + to refer to that method. + + PEAP (Protected EAP) has been designed as an - alternative to EAP-TTLS. There are two types of PEAP - methods, the most common one is PEAPv0/EAP-MSCHAPv2. In - the rest of this document, we will use the PEAP term to - refer to that EAP method. PEAP is the most used EAP - standard after EAP-TLS, in other words if you have a - network with mixed OSes, PEAP should be the most - supported standard after EAP-TLS. + alternative to EAP-TTLS, and is the most used EAP + standard after EAP-TLS. In other words, if you have a + network with mixed OSes, PEAP should be the + most supported standard after EAP-TLS. PEAP is similar to EAP-TTLS: it uses a server-side certificate to authenticate clients by creating an encrypted TLS tunnel between the client and the authentication server, which protects the ensuing - exchange of authentication information. In term of - security the difference between EAP-TTLS and PEAP is - that PEAP authentication broadcasts the username in - clear, only the password is sent in the encrypted TLS + exchange of authentication information. In terms of + security, the difference between EAP-TTLS and PEAP is + that PEAP authentication broadcasts the username in the + clear, with only the password sent in the encrypted TLS tunnel. EAP-TTLS will use the TLS tunnel for both username and password. @@ -1662,10 +1665,10 @@ This field contains the parameters for the - first phase of the authentication (the TLS + first phase of authentication (the TLS tunnel). According to the authentication server used, you will have to specify a specific label - for the authentication. Most of time, the label + for authentication. Most of the time, the label will be client EAP encryption which is set by using peaplabel=0. More information can be found in the @@ -1686,7 +1689,7 @@ wlans_ath0="wlan0" ifconfig_wlan0="WPA DHCP" - Then, we can bring up the interface: + Then we can bring up the interface: &prompt.root; /etc/rc.d/netif start Starting wpa_supplicant. @@ -1713,7 +1716,7 @@ WEP (Wired Equivalent Privacy) is part of the original 802.11 standard. There is no authentication mechanism, - only a weak form of access control, and it is easily to be + only a weak form of access control, and it is easily cracked. WEP can be set up with @@ -1728,18 +1731,18 @@ The weptxkey means which WEP key will be used in the transmission. Here we used the third key. This must match the setting in the access - point. If you do not have any idea of what is the key - used by the access point, you should try to use + point. If you do not have any idea of which key is + used by the access point, try 1 (i.e., the first key) for this value. - The wepkey means setting the - selected WEP key. It should in the format - index:key, if the index is - not given, key 1 is set. That is - to say we need to set the index if we use keys other + The wepkey selects one of the + WEP keys. It should be in the format + index:key. Key + 1 is used by default; the index + only needs to be set if we use a key other than the first key. @@ -1750,7 +1753,7 @@ - You are encouraged to read &man.ifconfig.8; manual + You are encouraged to read the &man.ifconfig.8; manual page for further information. The wpa_supplicant facility also @@ -1781,7 +1784,7 @@ IBSS mode, also called ad-hoc mode, is designed for point to point connections. For example, to establish an ad-hoc network between the machine A and the machine - B we will just need to choose two IP addresses + B, we will just need to choose two IP addresses and a SSID. On the box A: @@ -1826,7 +1829,7 @@ protmode CTS wme burst Both A and B are now - ready to exchange informations. + ready to exchange information. @@ -1843,19 +1846,19 @@ Before configuring your &os; machine as an AP, the kernel must be configured with the appropriate wireless networking support for your wireless card. You also have to - add the support for the security protocols you intend to + add support for the security protocols you intend to use. For more details, see . The use of the NDIS driver wrapper and the &windows; - drivers do not allow currently the AP operation. Only + drivers do not currently allow AP operation. Only native &os; wireless drivers support AP mode. - Once the wireless networking support is loaded, you can + Once wireless networking support is loaded, you can check if your wireless device supports the host-based access - point mode (also know as hostap mode): + point mode (also known as hostap mode): &prompt.root; ifconfig wlan0 create wlandev ath0 &prompt.root; ifconfig wlan0 list caps @@ -1865,8 +1868,8 @@ This output displays the card capabilities; the HOSTAP word confirms this wireless card can act as an Access Point. Various supported ciphers are - also mentioned: WEP, TKIP, AES, etc., these informations - are important to know what security protocols could be set + also mentioned: WEP, TKIP, AES, etc. This information + is important to know what security protocols can be used on the Access Point. The wireless device can only be put into hostap mode @@ -1881,7 +1884,7 @@ &prompt.root; ifconfig wlan0 create wlandev ath0 wlanmode hostap &prompt.root; ifconfig wlan0 inet 192.168.0.1 netmask 255.255.255.0 ssid freebsdap mode 11g channel 1 - Use again ifconfig to see the status + Use ifconfig again to see the status of the wlan0 interface: &prompt.root; ifconfig wlan0 @@ -2154,7 +2157,7 @@ On &os;, it is possible to combine two or even more network interfaces together in a failover fashion, that is, to use the most preferred and available connection from a - group of network interfaces, and have the operating system to + group of network interfaces, and have the operating system switch automatically when the link state changes. We will cover link aggregation and failover in ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/disks/chapter.sgml#22 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -4038,7 +4038,7 @@ Synopsis - High-availability is one of the main requirements in serious + High availability is one of the main requirements in serious business applications and highly-available storage is a key component in such environments. Highly Available STorage, or HASTHighly Available @@ -4109,7 +4109,7 @@ drives. - File system agnostic, thus allowing to use any file + File system agnostic; works with any file system supported by &os;. @@ -4152,7 +4152,7 @@ total. - Since the HAST works in + Since HAST works in a primary-secondary configuration, it allows only one of the cluster nodes to be active at any given time. The primary node, also called @@ -4175,7 +4175,7 @@ HAST operates synchronously on a block - level, which makes it transparent for file systems and + level, making it transparent to file systems and applications. HAST provides regular GEOM providers in /dev/hast/ directory for use by other tools or applications, thus there is @@ -4252,7 +4252,7 @@ For stripped-down systems, make sure this module is available. Alternatively, it is possible to build GEOM_GATE support into the kernel - statically, by adding the following line to the custom kernel + statically, by adding this line to the custom kernel configuration file: options GEOM_GATE @@ -4290,10 +4290,10 @@ class="directory">/dev/hast/) will be called test. - The configuration of HAST is being done + Configuration of HAST is done in the /etc/hast.conf file. This file should be the same on both nodes. The simplest configuration - possible is following: + possible is: resource test { on hasta { @@ -4317,9 +4317,9 @@ alternatively in the local DNS. - Now that the configuration exists on both nodes, it is - possible to create the HAST pool. Run the - following commands on both nodes to place the initial metadata + Now that the configuration exists on both nodes, + the HAST pool can be created. Run these + commands on both nodes to place the initial metadata onto the local disk, and start the &man.hastd.8; daemon: &prompt.root; hastctl create test @@ -4334,52 +4334,52 @@ available. - HAST is not responsible for selecting node's role - (primary or secondary). - Node's role has to be configured by an administrator or other - software like Heartbeat using the + A HAST node's role (primary or + secondary) is selected by an administrator + or other + software like Heartbeat using the &man.hastctl.8; utility. Move to the primary node (hasta) and - issue the following command: + issue this command: &prompt.root; hastctl role primary test - Similarly, run the following command on the secondary node + Similarly, run this command on the secondary node (hastb): &prompt.root; hastctl role secondary test - It may happen that both of the nodes are not able to - communicate with each other and both are configured as - primary nodes; the consequence of this condition is called - split-brain. In order to troubleshoot + When the nodes are unable to + communicate with each other, and both are configured as + primary nodes, the condition is called + split-brain. To troubleshoot this situation, follow the steps described in . - It is possible to verify the result with the + Verify the result with the &man.hastctl.8; utility on each node: &prompt.root; hastctl status test - The important text is the status line - from its output and it should say complete + The important text is the status line, + which should say complete on each of the nodes. If it says degraded, something went wrong. At this point, the synchronization between the nodes has already started. The synchronization - completes when the hastctl status command + completes when hastctl status reports 0 bytes of dirty extents. - The last step is to create a filesystem on the + The next step is to create a filesystem on the /dev/hast/test - GEOM provider and mount it. This has to be done on the - primary node (as the + GEOM provider and mount it. This must be done on the + primary node, as /dev/hast/test - appears only on the primary node), and - it can take a few minutes depending on the size of the hard - drive: + appears only on the primary node. + Creating the filesystem can take a few minutes, depending on the + size of the hard drive: &prompt.root; newfs -U /dev/hast/test &prompt.root; mkdir /hast/test @@ -4387,9 +4387,9 @@ Once the HAST framework is configured properly, the final step is to make sure that - HAST is started during the system boot time - automatically. The following line should be added to the - /etc/rc.conf file: + HAST is started automatically during the system + boot. Add this line to + /etc/rc.conf: hastd_enable="YES" @@ -4397,26 +4397,25 @@ Failover Configuration The goal of this example is to build a robust storage - system which is resistant from the failures of any given node. - The key task here is to remedy a scenario when a - primary node of the cluster fails. Should - it happen, the secondary node is there to + system which is resistant to the failure of any given node. + The scenario is that a + primary node of the cluster fails. If + this happens, the secondary node is there to take over seamlessly, check and mount the file system, and continue to work without missing a single bit of data. - In order to accomplish this task, it will be required to - utilize another feature available under &os; which provides + To accomplish this task, another &os; feature provides for automatic failover on the IP layer — - CARP. CARP stands for - Common Address Redundancy Protocol and allows multiple hosts + CARP. CARP (Common Address + Redundancy Protocol) allows multiple hosts on the same network segment to share an IP address. Set up CARP on both nodes of the cluster according to the documentation available in . - After completing this task, each node should have its own + After setup, each node will have its own carp0 interface with a shared IP address 172.16.0.254. - Obviously, the primary HAST node of the - cluster has to be the master CARP + The primary HAST node of the + cluster must be the master CARP node. The HAST pool created in the previous @@ -4430,17 +4429,17 @@ In the event of CARP interfaces going up or down, the &os; operating system generates a &man.devd.8; - event, which makes it possible to watch for the state changes + event, making it possible to watch for the state changes on the CARP interfaces. A state change on the CARP interface is an indication that - one of the nodes failed or came back online. In such a case, - it is possible to run a particular script which will - automatically handle the failover. + one of the nodes failed or came back online. These state change + events make it possible to run a script which will + automatically handle the HAST failover. - To be able to catch the state changes on the - CARP interfaces, the following - configuration has to be added to the - /etc/devd.conf file on each node: + To be able to catch state changes on the + CARP interfaces, add this + configuration to + /etc/devd.conf on each node: notify 30 { match "system" "IFNET"; @@ -4456,12 +4455,12 @@ action "/usr/local/sbin/carp-hast-switch slave"; }; - To put the new configuration into effect, run the - following command on both nodes: + Restart &man.devd.8; on both nodes to put the new configuration + into effect: &prompt.root; /etc/rc.d/devd restart - In the event that the carp0 + When the carp0 interface goes up or down (i.e. the interface state changes), the system generates a notification, allowing the &man.devd.8; subsystem to run an arbitrary script, in this case @@ -4471,7 +4470,7 @@ &man.devd.8; configuration, please consult the &man.devd.conf.5; manual page. - An example of such a script could be following: + An example of such a script could be: #!/bin/sh @@ -4557,13 +4556,13 @@ ;; esac - In a nutshell, the script does the following when a node + In a nutshell, the script takes these actions when a node becomes master / primary: - Promotes the HAST pools as + Promotes the HAST pools to primary on a given node. @@ -4571,7 +4570,7 @@ HAST pool. - Mounts the pools at appropriate place. + Mounts the pools at an appropriate place. @@ -4590,15 +4589,15 @@ Keep in mind that this is just an example script which - should serve as a proof of concept solution. It does not + should serve as a proof of concept. It does not handle all the possible scenarios and can be extended or altered in any way, for example it can start/stop required - services etc. + services, etc. - For the purpose of this example we used a standard UFS - file system. In order to reduce the time needed for + For this example, we used a standard UFS + file system. To reduce the time needed for recovery, a journal-enabled UFS or ZFS file system can be used. @@ -4615,41 +4614,40 @@ General Troubleshooting Tips - HAST should be generally working - without any issues, however as with any other software + HAST should generally work + without issues. However, as with any other software product, there may be times when it does not work as supposed. The sources of the problems may be different, but the rule of thumb is to ensure that the time is synchronized between all nodes of the cluster. - The debugging level of the &man.hastd.8; should be - increased when troubleshooting HAST - problems. This can be accomplished by starting the + When troubleshooting HAST problems, + the debugging level of &man.hastd.8; should be increased + by starting the &man.hastd.8; daemon with the -d - argument. Note, that this argument may be specified + argument. Note that this argument may be specified multiple times to further increase the debugging level. A - lot of useful information may be obtained this way. It - should be also considered to use -F - argument, which will start the &man.hastd.8; daemon in + lot of useful information may be obtained this way. Consider + also using the -F + argument, which starts the &man.hastd.8; daemon in the foreground. Recovering from the Split-brain Condition - The consequence of a situation when both nodes of the - cluster are not able to communicate with each other and both - are configured as primary nodes is called - split-brain. This is a dangerous + Split-brain is when the nodes of the + cluster are unable to communicate with each other, and both + are configured as primary. This is a dangerous condition because it allows both nodes to make incompatible - changes to the data. This situation has to be handled by - the system administrator manually. + changes to the data. This problem must be corrected + manually by the system administrator. - In order to fix this situation the administrator has to + The administrator must decide which node has more important changes (or merge them - manually) and let the HAST perform - the full synchronization of the node which has the broken - data. To do this, issue the following commands on the node + manually) and let HAST perform + full synchronization of the node which has the broken + data. To do this, issue these commands on the node which needs to be resynchronized: &prompt.root; hastctl role init <resource> ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/porters-handbook/book.sgml#116 (text+ko) ==== @@ -1,7 +1,7 @@ All boolean tests should utilize the checkyesno function. No hand-rolled tests for [Yy][Ee][Ss], etc. + + + If there is a loop (for example, waiting for something to + start) does it have a counter to terminate the loop? We do + not want the boot to be stuck forever if there is an error. + + + + Does the script create files or directories that need + specific permissions, for example, a pid file that needs + to be owned by the user that runs the process? Rather than + the traditional touch/chown/chmod routine consider using + &man.install.1; with the proper command line arguments to + do the whole procedure with one step. + ==== //depot/projects/docproj_nl/en_US.ISO8859-1/share/sgml/authors.ent#64 (text+ko) ==== @@ -13,7 +13,7 @@ builds for the other languages, and we will poke fun of you in public. - $FreeBSD: doc/en_US.ISO8859-1/share/sgml/authors.ent,v 1.560 2011/11/16 19:49:58 brueffer Exp $ + $FreeBSD: doc/en_US.ISO8859-1/share/sgml/authors.ent,v 1.561 2011/12/03 14:01:37 jhibbits Exp $ --> aaron@FreeBSD.org"> @@ -578,6 +578,8 @@ jhb@FreeBSD.org"> +jhibbits@FreeBSD.org"> + jhs@FreeBSD.org"> jilles@FreeBSD.org"> ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/articles/contributing-ports/article.sgml#17 (text+ko) ==== @@ -1,5 +1,5 @@ @@ -591,6 +591,11 @@ &pgpkey.dhn; + + &a.jhibbits; + &pgpkey.jhibbits; + + &a.pho; &pgpkey.pho; ==== //depot/projects/docproj_nl/share/pgpkeys/pgpkeys.ent#62 (text+ko) ==== @@ -1,5 +1,5 @@ - + @@ -150,6 +150,7 @@ + ==== //depot/projects/docproj_nl/www/en/administration.sgml#23 (text+ko) ==== @@ -1,5 +1,5 @@ + %developers; @@ -123,6 +123,7 @@
  • &a.tabthorpe; <tabthorpe@FreeBSD.org>
  • &a.marcus; <marcus@FreeBSD.org>
  • &a.bapt; <bapt@FreeBSD.org>
  • +
  • &a.beat; <beat@FreeBSD.org>
  • &a.erwin; <erwin@FreeBSD.org>
  • &a.linimon; <linimon@FreeBSD.org>
  • &a.pav; <pav@FreeBSD.org>
  • ==== //depot/projects/docproj_nl/www/en/developers.sgml#65 (text+ko) ==== @@ -6,7 +6,7 @@ us to update author names, or the representation of those names (such as adding email addresses), by just editing a single file. -$FreeBSD: www/en/developers.sgml,v 1.302 2011/11/12 16:49:42 scheidell Exp $ +$FreeBSD: www/en/developers.sgml,v 1.304 2011/12/04 05:38:01 tabthorpe Exp $ --> @@ -278,6 +278,7 @@ + @@ -682,7 +683,7 @@ - + ==== //depot/projects/docproj_nl/www/share/sgml/news.xml#124 (text+ko) ==== @@ -25,7 +25,7 @@ - $FreeBSD: www/share/sgml/news.xml,v 1.407 2011/11/18 14:43:32 jkois Exp $ + $FreeBSD: www/share/sgml/news.xml,v 1.410 2011/12/04 06:29:22 ryusuke Exp $ @@ -33,9 +33,30 @@ 2011 + 12 + + + 2 + +

    New member for the Ports Management team: + Beat Gätzi

    +
    +
    +
    + + 11 + 30 + + +

    New committer: + Justin Hibbits (src)

    +
    +
    + + 17