aboutsummaryrefslogtreecommitdiff
path: root/ru_RU.KOI8-R
diff options
context:
space:
mode:
authorSergio Carlavilla Delgado <carlavilla@FreeBSD.org>2021-01-25 23:31:29 +0000
committerSergio Carlavilla Delgado <carlavilla@FreeBSD.org>2021-01-25 23:31:29 +0000
commit989d921f5d4ac8d8b7c831c13b8954ad1901be24 (patch)
treea5d768f9af4b55422fdf5b17064879ae1c7ce032 /ru_RU.KOI8-R
parent0cff342f42461c5081b98bce7581f43df319e4f4 (diff)
downloaddoc-989d921f5d4ac8d8b7c831c13b8954ad1901be24.tar.gz
doc-989d921f5d4ac8d8b7c831c13b8954ad1901be24.zip
Migrate doc to Hugo/AsciiDoctor
I'm very pleased to announce the release of our new website and documentation using the new toolchain with Hugo and AsciiDoctor. To get more information about the new toolchain please read the FreeBSD Documentation Project Primer[1], Hugo docs[2] and AsciiDoctor docs[3]. Acknowledgment: Benedict Reuschling <bcr@> Glen Barber <gjb@> Hiroki Sato <hrs@> Li-Wen Hsu <lwhsu@> Sean Chittenden <seanc@> The FreeBSD Foundation [1] https://docs.FreeBSD.org/en/books/fdp-primer/ [2] https://gohugo.io/documentation/ [3] https://docs.asciidoctor.org/home/ Approved by: doceng, core
Diffstat (limited to 'ru_RU.KOI8-R')
-rw-r--r--ru_RU.KOI8-R/Makefile16
-rw-r--r--ru_RU.KOI8-R/Makefile.inc3
-rw-r--r--ru_RU.KOI8-R/articles/Makefile37
-rw-r--r--ru_RU.KOI8-R/articles/Makefile.inc8
-rw-r--r--ru_RU.KOI8-R/articles/committers-guide/Makefile25
-rw-r--r--ru_RU.KOI8-R/articles/committers-guide/article.xml3352
-rw-r--r--ru_RU.KOI8-R/articles/contributing/Makefile25
-rw-r--r--ru_RU.KOI8-R/articles/contributing/article.xml535
-rw-r--r--ru_RU.KOI8-R/articles/cups/Makefile21
-rw-r--r--ru_RU.KOI8-R/articles/cups/article.xml360
-rw-r--r--ru_RU.KOI8-R/articles/explaining-bsd/Makefile27
-rw-r--r--ru_RU.KOI8-R/articles/explaining-bsd/article.xml643
-rw-r--r--ru_RU.KOI8-R/articles/fonts/Makefile23
-rw-r--r--ru_RU.KOI8-R/articles/fonts/article.xml931
-rw-r--r--ru_RU.KOI8-R/articles/freebsd-questions/Makefile23
-rw-r--r--ru_RU.KOI8-R/articles/freebsd-questions/article.xml611
-rw-r--r--ru_RU.KOI8-R/articles/geom-class/Makefile22
-rw-r--r--ru_RU.KOI8-R/articles/geom-class/article.xml813
-rw-r--r--ru_RU.KOI8-R/articles/gjournal-desktop/Makefile22
-rw-r--r--ru_RU.KOI8-R/articles/gjournal-desktop/article.xml718
-rw-r--r--ru_RU.KOI8-R/articles/hubs/Makefile22
-rw-r--r--ru_RU.KOI8-R/articles/hubs/article.xml745
-rw-r--r--ru_RU.KOI8-R/articles/ipsec-must/Makefile23
-rw-r--r--ru_RU.KOI8-R/articles/ipsec-must/article.xml355
-rw-r--r--ru_RU.KOI8-R/articles/mailing-list-faq/Makefile31
-rw-r--r--ru_RU.KOI8-R/articles/mailing-list-faq/article.xml497
-rw-r--r--ru_RU.KOI8-R/articles/new-users/Makefile23
-rw-r--r--ru_RU.KOI8-R/articles/new-users/article.xml916
-rw-r--r--ru_RU.KOI8-R/articles/pam/Makefile38
-rw-r--r--ru_RU.KOI8-R/articles/pam/article.xml1388
-rw-r--r--ru_RU.KOI8-R/articles/pr-guidelines/Makefile23
-rw-r--r--ru_RU.KOI8-R/articles/pr-guidelines/article.xml1100
-rw-r--r--ru_RU.KOI8-R/articles/problem-reports/Makefile24
-rw-r--r--ru_RU.KOI8-R/articles/problem-reports/article.xml1244
-rw-r--r--ru_RU.KOI8-R/articles/releng/Makefile34
-rw-r--r--ru_RU.KOI8-R/articles/releng/article.xml1123
-rw-r--r--ru_RU.KOI8-R/articles/releng/extra.css21
-rw-r--r--ru_RU.KOI8-R/articles/solid-state/Makefile22
-rw-r--r--ru_RU.KOI8-R/articles/solid-state/article.xml479
-rw-r--r--ru_RU.KOI8-R/articles/vm-design/Makefile26
-rw-r--r--ru_RU.KOI8-R/articles/vm-design/article.xml981
-rw-r--r--ru_RU.KOI8-R/books/Makefile15
-rw-r--r--ru_RU.KOI8-R/books/Makefile.inc7
-rw-r--r--ru_RU.KOI8-R/books/arch-handbook/driverbasics/chapter.xml591
-rw-r--r--ru_RU.KOI8-R/books/arch-handbook/locking/chapter.xml347
-rw-r--r--ru_RU.KOI8-R/books/arch-handbook/sound/chapter.xml698
-rw-r--r--ru_RU.KOI8-R/books/design-44bsd/Makefile21
-rw-r--r--ru_RU.KOI8-R/books/design-44bsd/book.xml2259
-rw-r--r--ru_RU.KOI8-R/books/design-44bsd/fig1.eps340
-rw-r--r--ru_RU.KOI8-R/books/design-44bsd/fig2.eps1476
-rw-r--r--ru_RU.KOI8-R/books/developers-handbook/Makefile49
-rw-r--r--ru_RU.KOI8-R/books/developers-handbook/book.xml503
-rw-r--r--ru_RU.KOI8-R/books/developers-handbook/chapters.ent40
-rw-r--r--ru_RU.KOI8-R/books/developers-handbook/introduction/chapter.xml236
-rw-r--r--ru_RU.KOI8-R/books/developers-handbook/kerneldebug/chapter.xml885
-rw-r--r--ru_RU.KOI8-R/books/developers-handbook/policies/chapter.xml459
-rw-r--r--ru_RU.KOI8-R/books/developers-handbook/secure/chapter.xml553
-rw-r--r--ru_RU.KOI8-R/books/faq/Makefile34
-rw-r--r--ru_RU.KOI8-R/books/faq/book.xml7543
-rw-r--r--ru_RU.KOI8-R/books/fdp-primer/Makefile56
-rw-r--r--ru_RU.KOI8-R/books/fdp-primer/book.xml263
-rw-r--r--ru_RU.KOI8-R/books/fdp-primer/doc-build/chapter.xml491
-rw-r--r--ru_RU.KOI8-R/books/fdp-primer/overview/chapter.xml293
-rw-r--r--ru_RU.KOI8-R/books/fdp-primer/see-also/chapter.xml131
-rw-r--r--ru_RU.KOI8-R/books/fdp-primer/sgml-markup/chapter.xml2731
-rw-r--r--ru_RU.KOI8-R/books/fdp-primer/the-website/chapter.xml211
-rw-r--r--ru_RU.KOI8-R/books/fdp-primer/tools/chapter.xml295
-rw-r--r--ru_RU.KOI8-R/books/fdp-primer/writing-style/chapter.xml487
-rw-r--r--ru_RU.KOI8-R/books/handbook/Makefile265
-rw-r--r--ru_RU.KOI8-R/books/handbook/advanced-networking/Makefile18
-rw-r--r--ru_RU.KOI8-R/books/handbook/advanced-networking/chapter.xml4251
-rw-r--r--ru_RU.KOI8-R/books/handbook/audit/Makefile17
-rw-r--r--ru_RU.KOI8-R/books/handbook/audit/chapter.xml817
-rw-r--r--ru_RU.KOI8-R/books/handbook/basics/Makefile17
-rw-r--r--ru_RU.KOI8-R/books/handbook/basics/chapter.xml3941
-rw-r--r--ru_RU.KOI8-R/books/handbook/bibliography/Makefile17
-rw-r--r--ru_RU.KOI8-R/books/handbook/bibliography/chapter.xml626
-rw-r--r--ru_RU.KOI8-R/books/handbook/book.xml307
-rw-r--r--ru_RU.KOI8-R/books/handbook/boot/Makefile17
-rw-r--r--ru_RU.KOI8-R/books/handbook/boot/chapter.xml1011
-rw-r--r--ru_RU.KOI8-R/books/handbook/bsdinstall/Makefile15
-rw-r--r--ru_RU.KOI8-R/books/handbook/bsdinstall/chapter.xml2652
-rw-r--r--ru_RU.KOI8-R/books/handbook/chapters.ent72
-rw-r--r--ru_RU.KOI8-R/books/handbook/colophon.xml23
-rw-r--r--ru_RU.KOI8-R/books/handbook/config/Makefile17
-rw-r--r--ru_RU.KOI8-R/books/handbook/config/chapter.xml3016
-rw-r--r--ru_RU.KOI8-R/books/handbook/cutting-edge/Makefile17
-rw-r--r--ru_RU.KOI8-R/books/handbook/cutting-edge/chapter.xml2239
-rw-r--r--ru_RU.KOI8-R/books/handbook/desktop/Makefile18
-rw-r--r--ru_RU.KOI8-R/books/handbook/desktop/chapter.xml1092
-rw-r--r--ru_RU.KOI8-R/books/handbook/disks/Makefile17
-rw-r--r--ru_RU.KOI8-R/books/handbook/disks/chapter.xml4183
-rw-r--r--ru_RU.KOI8-R/books/handbook/eresources/Makefile18
-rw-r--r--ru_RU.KOI8-R/books/handbook/eresources/chapter.xml2127
-rw-r--r--ru_RU.KOI8-R/books/handbook/filesystems/Makefile16
-rw-r--r--ru_RU.KOI8-R/books/handbook/filesystems/chapter.xml580
-rw-r--r--ru_RU.KOI8-R/books/handbook/firewalls/Makefile17
-rw-r--r--ru_RU.KOI8-R/books/handbook/firewalls/chapter.xml2459
-rw-r--r--ru_RU.KOI8-R/books/handbook/geom/Makefile17
-rw-r--r--ru_RU.KOI8-R/books/handbook/geom/chapter.xml787
-rw-r--r--ru_RU.KOI8-R/books/handbook/install/Makefile17
-rw-r--r--ru_RU.KOI8-R/books/handbook/install/chapter.xml4900
-rw-r--r--ru_RU.KOI8-R/books/handbook/introduction/Makefile17
-rw-r--r--ru_RU.KOI8-R/books/handbook/introduction/chapter.xml960
-rw-r--r--ru_RU.KOI8-R/books/handbook/kernelconfig/Makefile18
-rw-r--r--ru_RU.KOI8-R/books/handbook/kernelconfig/chapter.xml1541
-rw-r--r--ru_RU.KOI8-R/books/handbook/l10n/Makefile18
-rw-r--r--ru_RU.KOI8-R/books/handbook/l10n/chapter.xml1028
-rw-r--r--ru_RU.KOI8-R/books/handbook/linuxemu/Makefile17
-rw-r--r--ru_RU.KOI8-R/books/handbook/linuxemu/chapter.xml3405
-rw-r--r--ru_RU.KOI8-R/books/handbook/mac/Makefile17
-rw-r--r--ru_RU.KOI8-R/books/handbook/mac/chapter.xml2172
-rw-r--r--ru_RU.KOI8-R/books/handbook/mail/Makefile17
-rw-r--r--ru_RU.KOI8-R/books/handbook/mail/chapter.xml2105
-rw-r--r--ru_RU.KOI8-R/books/handbook/mirrors/Makefile17
-rw-r--r--ru_RU.KOI8-R/books/handbook/mirrors/chapter.xml909
-rw-r--r--ru_RU.KOI8-R/books/handbook/multimedia/Makefile17
-rw-r--r--ru_RU.KOI8-R/books/handbook/multimedia/chapter.xml1725
-rw-r--r--ru_RU.KOI8-R/books/handbook/network-servers/Makefile17
-rw-r--r--ru_RU.KOI8-R/books/handbook/network-servers/chapter.xml5122
-rw-r--r--ru_RU.KOI8-R/books/handbook/pgpkeys/Makefile21
-rw-r--r--ru_RU.KOI8-R/books/handbook/pgpkeys/chapter.xml45
-rw-r--r--ru_RU.KOI8-R/books/handbook/ports/Makefile17
-rw-r--r--ru_RU.KOI8-R/books/handbook/ports/chapter.xml1909
-rw-r--r--ru_RU.KOI8-R/books/handbook/ppp-and-slip/Makefile18
-rw-r--r--ru_RU.KOI8-R/books/handbook/ppp-and-slip/chapter.xml3180
-rw-r--r--ru_RU.KOI8-R/books/handbook/preface/preface.xml656
-rw-r--r--ru_RU.KOI8-R/books/handbook/printing/Makefile18
-rw-r--r--ru_RU.KOI8-R/books/handbook/printing/chapter.xml4828
-rw-r--r--ru_RU.KOI8-R/books/handbook/security/Makefile17
-rw-r--r--ru_RU.KOI8-R/books/handbook/security/chapter.xml4902
-rw-r--r--ru_RU.KOI8-R/books/handbook/serialcomms/Makefile18
-rw-r--r--ru_RU.KOI8-R/books/handbook/serialcomms/chapter.xml2863
-rw-r--r--ru_RU.KOI8-R/books/handbook/txtfiles.ent79
-rw-r--r--ru_RU.KOI8-R/books/handbook/vinum/Makefile17
-rw-r--r--ru_RU.KOI8-R/books/handbook/vinum/chapter.xml1380
-rw-r--r--ru_RU.KOI8-R/books/handbook/x11/Makefile17
-rw-r--r--ru_RU.KOI8-R/books/handbook/x11/chapter.xml1808
-rw-r--r--ru_RU.KOI8-R/books/porters-handbook/Makefile83
-rw-r--r--ru_RU.KOI8-R/books/porters-handbook/appendices/Makefile17
-rw-r--r--ru_RU.KOI8-R/books/porters-handbook/appendices/chapter.xml76
-rw-r--r--ru_RU.KOI8-R/books/porters-handbook/book.xml81
-rw-r--r--ru_RU.KOI8-R/books/porters-handbook/chapters.ent22
-rw-r--r--ru_RU.KOI8-R/books/porters-handbook/keeping-up/Makefile17
-rw-r--r--ru_RU.KOI8-R/books/porters-handbook/keeping-up/chapter.xml167
-rw-r--r--ru_RU.KOI8-R/books/porters-handbook/makefiles/Makefile17
-rw-r--r--ru_RU.KOI8-R/books/porters-handbook/makefiles/chapter.xml4536
-rw-r--r--ru_RU.KOI8-R/books/porters-handbook/new-port/Makefile17
-rw-r--r--ru_RU.KOI8-R/books/porters-handbook/new-port/chapter.xml52
-rw-r--r--ru_RU.KOI8-R/books/porters-handbook/pkg-files/Makefile17
-rw-r--r--ru_RU.KOI8-R/books/porters-handbook/pkg-files/chapter.xml213
-rw-r--r--ru_RU.KOI8-R/books/porters-handbook/plist/Makefile17
-rw-r--r--ru_RU.KOI8-R/books/porters-handbook/plist/chapter.xml298
-rw-r--r--ru_RU.KOI8-R/books/porters-handbook/porting-dads/Makefile17
-rw-r--r--ru_RU.KOI8-R/books/porters-handbook/porting-dads/chapter.xml743
-rw-r--r--ru_RU.KOI8-R/books/porters-handbook/porting-samplem/Makefile17
-rw-r--r--ru_RU.KOI8-R/books/porters-handbook/porting-samplem/chapter.xml111
-rw-r--r--ru_RU.KOI8-R/books/porters-handbook/porting-why/Makefile17
-rw-r--r--ru_RU.KOI8-R/books/porters-handbook/porting-why/chapter.xml26
-rw-r--r--ru_RU.KOI8-R/books/porters-handbook/quick-porting/Makefile17
-rw-r--r--ru_RU.KOI8-R/books/porters-handbook/quick-porting/chapter.xml420
-rw-r--r--ru_RU.KOI8-R/books/porters-handbook/security/Makefile17
-rw-r--r--ru_RU.KOI8-R/books/porters-handbook/security/chapter.xml509
-rw-r--r--ru_RU.KOI8-R/books/porters-handbook/slow-porting/Makefile17
-rw-r--r--ru_RU.KOI8-R/books/porters-handbook/slow-porting/chapter.xml447
-rw-r--r--ru_RU.KOI8-R/books/porters-handbook/special/Makefile17
-rw-r--r--ru_RU.KOI8-R/books/porters-handbook/special/chapter.xml5012
-rw-r--r--ru_RU.KOI8-R/books/porters-handbook/testing/Makefile17
-rw-r--r--ru_RU.KOI8-R/books/porters-handbook/testing/chapter.xml214
-rw-r--r--ru_RU.KOI8-R/books/porters-handbook/upgrading/Makefile17
-rw-r--r--ru_RU.KOI8-R/books/porters-handbook/upgrading/chapter.xml311
-rw-r--r--ru_RU.KOI8-R/books/porters-handbook/uses.xml833
-rw-r--r--ru_RU.KOI8-R/books/porters-handbook/versions.xml4805
-rw-r--r--ru_RU.KOI8-R/flyer/Makefile20
-rw-r--r--ru_RU.KOI8-R/flyer/flyer.tex187
-rw-r--r--ru_RU.KOI8-R/htdocs/FAQ/Makefile19
-rw-r--r--ru_RU.KOI8-R/htdocs/FAQ/index.html20
-rw-r--r--ru_RU.KOI8-R/htdocs/Makefile98
-rw-r--r--ru_RU.KOI8-R/htdocs/Makefile.inc6
-rw-r--r--ru_RU.KOI8-R/htdocs/about.xml122
-rw-r--r--ru_RU.KOI8-R/htdocs/applications.xml152
-rw-r--r--ru_RU.KOI8-R/htdocs/art.xml135
-rw-r--r--ru_RU.KOI8-R/htdocs/availability.xml35
-rw-r--r--ru_RU.KOI8-R/htdocs/commercial/Makefile24
-rw-r--r--ru_RU.KOI8-R/htdocs/commercial/commercial.xml80
-rw-r--r--ru_RU.KOI8-R/htdocs/commercial/includes.xml21
-rw-r--r--ru_RU.KOI8-R/htdocs/community.xsl140
-rw-r--r--ru_RU.KOI8-R/htdocs/community/Makefile19
-rw-r--r--ru_RU.KOI8-R/htdocs/community/irc.xml39
-rw-r--r--ru_RU.KOI8-R/htdocs/community/mailinglists.xml135
-rw-r--r--ru_RU.KOI8-R/htdocs/community/newsgroups.xml43
-rw-r--r--ru_RU.KOI8-R/htdocs/community/social.xsl63
-rw-r--r--ru_RU.KOI8-R/htdocs/community/webresources.xml64
-rw-r--r--ru_RU.KOI8-R/htdocs/copyright/Makefile23
-rw-r--r--ru_RU.KOI8-R/htdocs/copyright/copyright.xml38
-rw-r--r--ru_RU.KOI8-R/htdocs/copyright/daemon.xml79
-rw-r--r--ru_RU.KOI8-R/htdocs/copyright/freebsd-doc-license.xml100
-rw-r--r--ru_RU.KOI8-R/htdocs/copyright/freebsd-license.xml73
-rw-r--r--ru_RU.KOI8-R/htdocs/copyright/license.xml155
-rw-r--r--ru_RU.KOI8-R/htdocs/copyright/trademarks.xml91
-rw-r--r--ru_RU.KOI8-R/htdocs/developers.xml219
-rw-r--r--ru_RU.KOI8-R/htdocs/developers/Makefile15
-rw-r--r--ru_RU.KOI8-R/htdocs/developers/cvs.xml76
-rw-r--r--ru_RU.KOI8-R/htdocs/doc/Makefile47
-rw-r--r--ru_RU.KOI8-R/htdocs/docproj/Makefile30
-rw-r--r--ru_RU.KOI8-R/htdocs/docproj/current.xml254
-rw-r--r--ru_RU.KOI8-R/htdocs/docproj/doc-set.xml57
-rw-r--r--ru_RU.KOI8-R/htdocs/docproj/docproj.xml93
-rw-r--r--ru_RU.KOI8-R/htdocs/docproj/handbook.xml471
-rw-r--r--ru_RU.KOI8-R/htdocs/docproj/handbook3.xml275
-rw-r--r--ru_RU.KOI8-R/htdocs/docproj/sgml.xml177
-rw-r--r--ru_RU.KOI8-R/htdocs/docproj/submitting.xml152
-rw-r--r--ru_RU.KOI8-R/htdocs/docproj/translations.xml524
-rw-r--r--ru_RU.KOI8-R/htdocs/docproj/who.xml49
-rw-r--r--ru_RU.KOI8-R/htdocs/docs.xml32
-rw-r--r--ru_RU.KOI8-R/htdocs/docs/Makefile15
-rw-r--r--ru_RU.KOI8-R/htdocs/docs/books.xml404
-rw-r--r--ru_RU.KOI8-R/htdocs/docs/man.xml104
-rw-r--r--ru_RU.KOI8-R/htdocs/docs/webresources.xml118
-rw-r--r--ru_RU.KOI8-R/htdocs/donations/Makefile14
-rw-r--r--ru_RU.KOI8-R/htdocs/donations/donors.xml2201
-rw-r--r--ru_RU.KOI8-R/htdocs/donations/index.xml234
-rw-r--r--ru_RU.KOI8-R/htdocs/donations/wantlist.xml597
-rw-r--r--ru_RU.KOI8-R/htdocs/events/2003/Makefile19
-rw-r--r--ru_RU.KOI8-R/htdocs/events/2003/bsdcon-devsummit.xml213
-rw-r--r--ru_RU.KOI8-R/htdocs/events/Makefile45
-rw-r--r--ru_RU.KOI8-R/htdocs/events/Makefile.inc11
-rw-r--r--ru_RU.KOI8-R/htdocs/events/events.css25
-rw-r--r--ru_RU.KOI8-R/htdocs/events/rss.xsl145
-rw-r--r--ru_RU.KOI8-R/htdocs/features.xml264
-rw-r--r--ru_RU.KOI8-R/htdocs/gnome/Makefile42
-rw-r--r--ru_RU.KOI8-R/htdocs/gnome/Makefile.inc9
-rw-r--r--ru_RU.KOI8-R/htdocs/gnome/TODO18
-rw-r--r--ru_RU.KOI8-R/htdocs/gnome/contact.xml54
-rw-r--r--ru_RU.KOI8-R/htdocs/gnome/docs/Makefile28
-rw-r--r--ru_RU.KOI8-R/htdocs/gnome/docs/bugging.xml113
-rw-r--r--ru_RU.KOI8-R/htdocs/gnome/docs/develfaq.xml230
-rw-r--r--ru_RU.KOI8-R/htdocs/gnome/docs/example-Makefile.xml81
-rw-r--r--ru_RU.KOI8-R/htdocs/gnome/docs/faq2.xml1079
-rw-r--r--ru_RU.KOI8-R/htdocs/gnome/docs/gnome2_porting.xml321
-rw-r--r--ru_RU.KOI8-R/htdocs/gnome/docs/gnome_porting.xml204
-rw-r--r--ru_RU.KOI8-R/htdocs/gnome/docs/knownissues.xml81
-rw-r--r--ru_RU.KOI8-R/htdocs/gnome/docs/porting.xml310
-rw-r--r--ru_RU.KOI8-R/htdocs/gnome/docs/volunteer.xml54
-rw-r--r--ru_RU.KOI8-R/htdocs/gnome/includes.xml16
-rw-r--r--ru_RU.KOI8-R/htdocs/gnome/includes.xsl42
-rw-r--r--ru_RU.KOI8-R/htdocs/gnome/index.xsl216
-rw-r--r--ru_RU.KOI8-R/htdocs/gnome/news.xml927
-rw-r--r--ru_RU.KOI8-R/htdocs/gnome/newsflash.xsl68
-rw-r--r--ru_RU.KOI8-R/htdocs/gnome/screenshots.xml59
-rw-r--r--ru_RU.KOI8-R/htdocs/handbook/Makefile14
-rw-r--r--ru_RU.KOI8-R/htdocs/handbook/index.xml32
-rw-r--r--ru_RU.KOI8-R/htdocs/index.xsl343
-rw-r--r--ru_RU.KOI8-R/htdocs/internal/Makefile38
-rw-r--r--ru_RU.KOI8-R/htdocs/internal/README.mirror33
-rw-r--r--ru_RU.KOI8-R/htdocs/internal/about.xml143
-rw-r--r--ru_RU.KOI8-R/htdocs/internal/bylaws.xml96
-rw-r--r--ru_RU.KOI8-R/htdocs/internal/core-vote.xml113
-rw-r--r--ru_RU.KOI8-R/htdocs/internal/developer.xml106
-rw-r--r--ru_RU.KOI8-R/htdocs/internal/doceng.xml92
-rw-r--r--ru_RU.KOI8-R/htdocs/internal/expire-bits.xml47
-rw-r--r--ru_RU.KOI8-R/htdocs/internal/fortunes.xml64
-rw-r--r--ru_RU.KOI8-R/htdocs/internal/homepage.xml27
-rw-r--r--ru_RU.KOI8-R/htdocs/internal/internal.xml88
-rw-r--r--ru_RU.KOI8-R/htdocs/internal/machines.xml399
-rw-r--r--ru_RU.KOI8-R/htdocs/internal/mirror.xml77
-rw-r--r--ru_RU.KOI8-R/htdocs/internal/new-account.xml136
-rw-r--r--ru_RU.KOI8-R/htdocs/internal/photos.xml117
-rw-r--r--ru_RU.KOI8-R/htdocs/internal/policies.xml71
-rw-r--r--ru_RU.KOI8-R/htdocs/internal/releng.xml35
-rw-r--r--ru_RU.KOI8-R/htdocs/internal/rtp.xml204
-rw-r--r--ru_RU.KOI8-R/htdocs/internal/statistic.xml51
-rw-r--r--ru_RU.KOI8-R/htdocs/internet.xml162
-rw-r--r--ru_RU.KOI8-R/htdocs/java/Makefile27
-rw-r--r--ru_RU.KOI8-R/htdocs/java/Makefile.inc7
-rw-r--r--ru_RU.KOI8-R/htdocs/java/advocacy.xml41
-rw-r--r--ru_RU.KOI8-R/htdocs/java/dists/Makefile16
-rw-r--r--ru_RU.KOI8-R/htdocs/java/dists/index.xml70
-rw-r--r--ru_RU.KOI8-R/htdocs/java/docs/Makefile20
-rw-r--r--ru_RU.KOI8-R/htdocs/java/docs/faq.xml122
-rw-r--r--ru_RU.KOI8-R/htdocs/java/docs/howtoports.xml47
-rw-r--r--ru_RU.KOI8-R/htdocs/java/docs/newbies.xml36
-rw-r--r--ru_RU.KOI8-R/htdocs/java/docs/performance.xml209
-rw-r--r--ru_RU.KOI8-R/htdocs/java/docs/tutorials.xml32
-rw-r--r--ru_RU.KOI8-R/htdocs/java/howhelp.xml120
-rw-r--r--ru_RU.KOI8-R/htdocs/java/index.xml105
-rw-r--r--ru_RU.KOI8-R/htdocs/java/install.xml107
-rw-r--r--ru_RU.KOI8-R/htdocs/java/links/Makefile25
-rw-r--r--ru_RU.KOI8-R/htdocs/java/links/api.xml127
-rw-r--r--ru_RU.KOI8-R/htdocs/java/links/development.xml106
-rw-r--r--ru_RU.KOI8-R/htdocs/java/links/documentation.xml38
-rw-r--r--ru_RU.KOI8-R/htdocs/java/links/freebsd.xml53
-rw-r--r--ru_RU.KOI8-R/htdocs/java/links/index.xml48
-rw-r--r--ru_RU.KOI8-R/htdocs/java/links/resources.xml49
-rw-r--r--ru_RU.KOI8-R/htdocs/java/links/servlets.xml71
-rw-r--r--ru_RU.KOI8-R/htdocs/java/links/tools.xml39
-rw-r--r--ru_RU.KOI8-R/htdocs/java/links/tutorials.xml40
-rw-r--r--ru_RU.KOI8-R/htdocs/java/links/vendor.xml56
-rw-r--r--ru_RU.KOI8-R/htdocs/java/newsflash.xml690
-rw-r--r--ru_RU.KOI8-R/htdocs/java/press.xml33
-rw-r--r--ru_RU.KOI8-R/htdocs/logo.xml126
-rw-r--r--ru_RU.KOI8-R/htdocs/mailto.xml56
-rw-r--r--ru_RU.KOI8-R/htdocs/marketing/Makefile19
-rw-r--r--ru_RU.KOI8-R/htdocs/marketing/os-comparison.xml633
-rw-r--r--ru_RU.KOI8-R/htdocs/news/1996/Makefile16
-rw-r--r--ru_RU.KOI8-R/htdocs/news/1996/index.xml56
-rw-r--r--ru_RU.KOI8-R/htdocs/news/1997/Makefile16
-rw-r--r--ru_RU.KOI8-R/htdocs/news/1997/index.xml251
-rw-r--r--ru_RU.KOI8-R/htdocs/news/1998/Makefile19
-rw-r--r--ru_RU.KOI8-R/htdocs/news/1998/index.xml237
-rw-r--r--ru_RU.KOI8-R/htdocs/news/1998/press.xml479
-rw-r--r--ru_RU.KOI8-R/htdocs/news/1999/Makefile19
-rw-r--r--ru_RU.KOI8-R/htdocs/news/1999/index.xml384
-rw-r--r--ru_RU.KOI8-R/htdocs/news/1999/press.xml913
-rw-r--r--ru_RU.KOI8-R/htdocs/news/2000/Makefile19
-rw-r--r--ru_RU.KOI8-R/htdocs/news/2000/index.xml452
-rw-r--r--ru_RU.KOI8-R/htdocs/news/2000/press.xml623
-rw-r--r--ru_RU.KOI8-R/htdocs/news/2001/Makefile18
-rw-r--r--ru_RU.KOI8-R/htdocs/news/2001/news.xml965
-rw-r--r--ru_RU.KOI8-R/htdocs/news/2001/press.xml350
-rw-r--r--ru_RU.KOI8-R/htdocs/news/2002/Makefile22
-rw-r--r--ru_RU.KOI8-R/htdocs/news/2002/news.xml826
-rw-r--r--ru_RU.KOI8-R/htdocs/news/2002/press.xml412
-rw-r--r--ru_RU.KOI8-R/htdocs/news/2003/Makefile23
-rw-r--r--ru_RU.KOI8-R/htdocs/news/2003/news.xml632
-rw-r--r--ru_RU.KOI8-R/htdocs/news/2003/press.xml661
-rw-r--r--ru_RU.KOI8-R/htdocs/news/Makefile47
-rw-r--r--ru_RU.KOI8-R/htdocs/news/Makefile.inc7
-rw-r--r--ru_RU.KOI8-R/htdocs/news/news.xml87
-rw-r--r--ru_RU.KOI8-R/htdocs/news/press-rel-1.xml71
-rw-r--r--ru_RU.KOI8-R/htdocs/news/press-rel-2.xml110
-rw-r--r--ru_RU.KOI8-R/htdocs/news/press-rel-3.xml102
-rw-r--r--ru_RU.KOI8-R/htdocs/news/press-rel-4.xml254
-rw-r--r--ru_RU.KOI8-R/htdocs/news/press-rel-5.xml148
-rw-r--r--ru_RU.KOI8-R/htdocs/news/pressreleases.xml79
-rw-r--r--ru_RU.KOI8-R/htdocs/news/sou1999.xml396
-rw-r--r--ru_RU.KOI8-R/htdocs/news/status/Makefile17
-rw-r--r--ru_RU.KOI8-R/htdocs/news/status/status.xml112
-rw-r--r--ru_RU.KOI8-R/htdocs/platforms/Makefile33
-rw-r--r--ru_RU.KOI8-R/htdocs/platforms/Makefile.inc9
-rw-r--r--ru_RU.KOI8-R/htdocs/platforms/alpha.xml59
-rw-r--r--ru_RU.KOI8-R/htdocs/platforms/amd64.xml93
-rw-r--r--ru_RU.KOI8-R/htdocs/platforms/amd64/Makefile19
-rw-r--r--ru_RU.KOI8-R/htdocs/platforms/amd64/motherboards.xml712
-rw-r--r--ru_RU.KOI8-R/htdocs/platforms/arm.xml79
-rw-r--r--ru_RU.KOI8-R/htdocs/platforms/i386.xml62
-rw-r--r--ru_RU.KOI8-R/htdocs/platforms/ia64.xml29
-rw-r--r--ru_RU.KOI8-R/htdocs/platforms/ia64/Makefile17
-rw-r--r--ru_RU.KOI8-R/htdocs/platforms/ia64/index.xml70
-rw-r--r--ru_RU.KOI8-R/htdocs/platforms/ia64/machines.xml135
-rw-r--r--ru_RU.KOI8-R/htdocs/platforms/ia64/refs.xml90
-rw-r--r--ru_RU.KOI8-R/htdocs/platforms/ia64/todo.xml114
-rw-r--r--ru_RU.KOI8-R/htdocs/platforms/index.xml82
-rw-r--r--ru_RU.KOI8-R/htdocs/platforms/mips.xml91
-rw-r--r--ru_RU.KOI8-R/htdocs/platforms/pc98.xml71
-rw-r--r--ru_RU.KOI8-R/htdocs/platforms/ppc.xml264
-rw-r--r--ru_RU.KOI8-R/htdocs/platforms/sparc.xml166
-rw-r--r--ru_RU.KOI8-R/htdocs/platforms/x86-64.xml34
-rw-r--r--ru_RU.KOI8-R/htdocs/platforms/xbox.xml66
-rw-r--r--ru_RU.KOI8-R/htdocs/portmgr/Makefile19
-rw-r--r--ru_RU.KOI8-R/htdocs/portmgr/charter.xml107
-rw-r--r--ru_RU.KOI8-R/htdocs/portmgr/index.xml126
-rw-r--r--ru_RU.KOI8-R/htdocs/portmgr/policies.xml237
-rw-r--r--ru_RU.KOI8-R/htdocs/portmgr/qa.xml201
-rw-r--r--ru_RU.KOI8-R/htdocs/ports/Makefile98
-rw-r--r--ru_RU.KOI8-R/htdocs/ports/Makefile.inc23
-rw-r--r--ru_RU.KOI8-R/htdocs/ports/Makefile.inc020
-rwxr-xr-xru_RU.KOI8-R/htdocs/ports/categories100
-rw-r--r--ru_RU.KOI8-R/htdocs/ports/categories.descriptions13
-rw-r--r--ru_RU.KOI8-R/htdocs/ports/growth/Makefile11
-rw-r--r--ru_RU.KOI8-R/htdocs/ports/index.xml74
-rw-r--r--ru_RU.KOI8-R/htdocs/ports/installing.xml43
-rwxr-xr-xru_RU.KOI8-R/htdocs/ports/packages25
-rwxr-xr-xru_RU.KOI8-R/htdocs/ports/portindex393
-rw-r--r--ru_RU.KOI8-R/htdocs/ports/ports.ent23
-rw-r--r--ru_RU.KOI8-R/htdocs/ports/references.xml98
-rw-r--r--ru_RU.KOI8-R/htdocs/ports/searching.xml48
-rw-r--r--ru_RU.KOI8-R/htdocs/ports/updating.xml60
-rw-r--r--ru_RU.KOI8-R/htdocs/projects/Makefile26
-rw-r--r--ru_RU.KOI8-R/htdocs/projects/Makefile.inc11
-rw-r--r--ru_RU.KOI8-R/htdocs/projects/busdma/Makefile24
-rw-r--r--ru_RU.KOI8-R/htdocs/projects/busdma/index.xml1281
-rw-r--r--ru_RU.KOI8-R/htdocs/projects/busdma/style.css38
-rw-r--r--ru_RU.KOI8-R/htdocs/projects/cvsweb.xml147
-rw-r--r--ru_RU.KOI8-R/htdocs/projects/newbies.xml283
-rw-r--r--ru_RU.KOI8-R/htdocs/projects/projects.xml588
-rw-r--r--ru_RU.KOI8-R/htdocs/projects/summerofcode.xml436
-rw-r--r--ru_RU.KOI8-R/htdocs/prstats/Makefile13
-rw-r--r--ru_RU.KOI8-R/htdocs/prstats/index.xml48
-rw-r--r--ru_RU.KOI8-R/htdocs/publish.xml655
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.3R/Makefile45
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.3R/announce.xml275
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.3R/docbook.css160
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.3R/errata.html346
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.3R/hardware-alpha.html5916
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.3R/hardware-amd64.html5091
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.3R/hardware-i386.html6387
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.3R/hardware-ia64.html2713
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.3R/hardware-pc98.html4833
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.3R/hardware-sparc64.html1962
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.3R/hardware.xml44
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.3R/installation-alpha.html1155
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.3R/installation-amd64.html1131
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.3R/installation-i386.html1576
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.3R/installation-ia64.html860
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.3R/installation-pc98.html972
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.3R/installation-sparc64.html913
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.3R/installation.xml44
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.3R/migration-guide.html919
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.3R/readme.html436
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.3R/relnotes-alpha.html2259
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.3R/relnotes-amd64.html2302
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.3R/relnotes-i386.html2455
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.3R/relnotes-ia64.html2275
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.3R/relnotes-pc98.html2336
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.3R/relnotes-sparc64.html2285
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.3R/relnotes.xml44
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.4R/Makefile46
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.4R/announce.xml282
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.4R/docbook.css160
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.4R/errata.html126
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.4R/hardware-alpha.html5921
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.4R/hardware-amd64.html5446
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.4R/hardware-i386.html6950
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.4R/hardware-ia64.html2673
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.4R/hardware-pc98.html4970
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.4R/hardware-sparc64.html1912
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.4R/hardware.xml43
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.4R/installation-alpha.html1200
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.4R/installation-amd64.html1174
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.4R/installation-i386.html1622
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.4R/installation-ia64.html902
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.4R/installation-pc98.html1016
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.4R/installation-sparc64.html955
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.4R/installation.xml44
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.4R/migration-guide.html937
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.4R/readme.html435
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.4R/relnotes-alpha.html918
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.4R/relnotes-amd64.html931
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.4R/relnotes-i386.html945
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.4R/relnotes-ia64.html921
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.4R/relnotes-pc98.html915
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.4R/relnotes-sparc64.html940
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/5.4R/relnotes.xml42
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/Makefile25
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/Makefile.inc7
-rw-r--r--ru_RU.KOI8-R/htdocs/releases/index.xml826
-rw-r--r--ru_RU.KOI8-R/htdocs/releng/Makefile18
-rw-r--r--ru_RU.KOI8-R/htdocs/releng/charter.xml80
-rw-r--r--ru_RU.KOI8-R/htdocs/releng/index.xml522
-rw-r--r--ru_RU.KOI8-R/htdocs/relnotes.xml170
-rw-r--r--ru_RU.KOI8-R/htdocs/relnotes/Makefile20
-rw-r--r--ru_RU.KOI8-R/htdocs/search/Makefile23
-rw-r--r--ru_RU.KOI8-R/htdocs/search/index-site.xsl63
-rw-r--r--ru_RU.KOI8-R/htdocs/search/search-mid.xml49
-rw-r--r--ru_RU.KOI8-R/htdocs/search/search.xml664
-rw-r--r--ru_RU.KOI8-R/htdocs/search/searchhints.xml63
-rw-r--r--ru_RU.KOI8-R/htdocs/search/sitemap.xml1165
-rw-r--r--ru_RU.KOI8-R/htdocs/security/Makefile46
-rw-r--r--ru_RU.KOI8-R/htdocs/security/advisories.xml37
-rw-r--r--ru_RU.KOI8-R/htdocs/security/errata-rss.xsl26
-rw-r--r--ru_RU.KOI8-R/htdocs/security/mkindex.xsl31
-rw-r--r--ru_RU.KOI8-R/htdocs/security/notices.xml31
-rw-r--r--ru_RU.KOI8-R/htdocs/security/security-rdf.xsl23
-rw-r--r--ru_RU.KOI8-R/htdocs/security/security-rss.xsl26
-rw-r--r--ru_RU.KOI8-R/htdocs/security/security.xml485
-rw-r--r--ru_RU.KOI8-R/htdocs/send-pr.xml185
-rw-r--r--ru_RU.KOI8-R/htdocs/snapshots/Makefile19
-rw-r--r--ru_RU.KOI8-R/htdocs/snapshots/Makefile.inc11
-rw-r--r--ru_RU.KOI8-R/htdocs/snapshots/index.xml174
-rw-r--r--ru_RU.KOI8-R/htdocs/support.xml1177
-rw-r--r--ru_RU.KOI8-R/htdocs/support/Makefile14
-rw-r--r--ru_RU.KOI8-R/htdocs/support/bugreports.xml77
-rw-r--r--ru_RU.KOI8-R/htdocs/support/webresources.xml120
-rw-r--r--ru_RU.KOI8-R/htdocs/tutorials/Makefile21
-rw-r--r--ru_RU.KOI8-R/htdocs/tutorials/index.xml29
-rw-r--r--ru_RU.KOI8-R/htdocs/where.xml250
-rw-r--r--ru_RU.KOI8-R/man/FRDP.man.dist87
-rw-r--r--ru_RU.KOI8-R/man/Makefile18
-rw-r--r--ru_RU.KOI8-R/man/Makefile.inc5
-rw-r--r--ru_RU.KOI8-R/man/man1/Makefile232
-rw-r--r--ru_RU.KOI8-R/man/man1/apply.1132
-rw-r--r--ru_RU.KOI8-R/man/man1/apropos.167
-rw-r--r--ru_RU.KOI8-R/man/man1/basename.1111
-rw-r--r--ru_RU.KOI8-R/man/man1/biff.1131
-rw-r--r--ru_RU.KOI8-R/man/man1/brandelf.1107
-rw-r--r--ru_RU.KOI8-R/man/man1/bsdiff.167
-rw-r--r--ru_RU.KOI8-R/man/man1/bspatch.165
-rw-r--r--ru_RU.KOI8-R/man/man1/builtin.1332
-rw-r--r--ru_RU.KOI8-R/man/man1/c89.1172
-rw-r--r--ru_RU.KOI8-R/man/man1/c99.1185
-rw-r--r--ru_RU.KOI8-R/man/man1/cat.1203
-rw-r--r--ru_RU.KOI8-R/man/man1/chgrp.1147
-rw-r--r--ru_RU.KOI8-R/man/man1/chkey.126
-rw-r--r--ru_RU.KOI8-R/man/man1/ckdist.1128
-rw-r--r--ru_RU.KOI8-R/man/man1/cmp.1125
-rw-r--r--ru_RU.KOI8-R/man/man1/colrm.192
-rw-r--r--ru_RU.KOI8-R/man/man1/column.1104
-rw-r--r--ru_RU.KOI8-R/man/man1/comm.1126
-rw-r--r--ru_RU.KOI8-R/man/man1/cp.1286
-rw-r--r--ru_RU.KOI8-R/man/man1/crontab.1135
-rw-r--r--ru_RU.KOI8-R/man/man1/cut.1164
-rw-r--r--ru_RU.KOI8-R/man/man1/df.1170
-rw-r--r--ru_RU.KOI8-R/man/man1/domainname.165
-rw-r--r--ru_RU.KOI8-R/man/man1/du.1150
-rw-r--r--ru_RU.KOI8-R/man/man1/echo.195
-rw-r--r--ru_RU.KOI8-R/man/man1/enigma.1127
-rw-r--r--ru_RU.KOI8-R/man/man1/example.1150
-rw-r--r--ru_RU.KOI8-R/man/man1/expand.1122
-rw-r--r--ru_RU.KOI8-R/man/man1/expr.1276
-rw-r--r--ru_RU.KOI8-R/man/man1/false.168
-rw-r--r--ru_RU.KOI8-R/man/man1/fdformat.1172
-rw-r--r--ru_RU.KOI8-R/man/man1/file2c.176
-rw-r--r--ru_RU.KOI8-R/man/man1/find.1971
-rw-r--r--ru_RU.KOI8-R/man/man1/finger.1253
-rw-r--r--ru_RU.KOI8-R/man/man1/fold.191
-rw-r--r--ru_RU.KOI8-R/man/man1/from.199
-rw-r--r--ru_RU.KOI8-R/man/man1/fsync.163
-rw-r--r--ru_RU.KOI8-R/man/man1/gcore.1103
-rw-r--r--ru_RU.KOI8-R/man/man1/groups.164
-rw-r--r--ru_RU.KOI8-R/man/man1/head.172
-rw-r--r--ru_RU.KOI8-R/man/man1/hostname.172
-rw-r--r--ru_RU.KOI8-R/man/man1/id.1164
-rw-r--r--ru_RU.KOI8-R/man/man1/intro.186
-rw-r--r--ru_RU.KOI8-R/man/man1/ipcrm.186
-rw-r--r--ru_RU.KOI8-R/man/man1/ipcs.1170
-rw-r--r--ru_RU.KOI8-R/man/man1/join.1217
-rw-r--r--ru_RU.KOI8-R/man/man1/kbdmap.1150
-rw-r--r--ru_RU.KOI8-R/man/man1/kenv.176
-rw-r--r--ru_RU.KOI8-R/man/man1/keylogin.133
-rw-r--r--ru_RU.KOI8-R/man/man1/keylogout.146
-rw-r--r--ru_RU.KOI8-R/man/man1/kill.1154
-rw-r--r--ru_RU.KOI8-R/man/man1/killall.1163
-rw-r--r--ru_RU.KOI8-R/man/man1/ldd.173
-rw-r--r--ru_RU.KOI8-R/man/man1/ln.1224
-rw-r--r--ru_RU.KOI8-R/man/man1/locale.1101
-rw-r--r--ru_RU.KOI8-R/man/man1/lock.185
-rw-r--r--ru_RU.KOI8-R/man/man1/lockf.1141
-rw-r--r--ru_RU.KOI8-R/man/man1/logins.1110
-rw-r--r--ru_RU.KOI8-R/man/man1/logname.176
-rw-r--r--ru_RU.KOI8-R/man/man1/look.1122
-rw-r--r--ru_RU.KOI8-R/man/man1/lorder.193
-rw-r--r--ru_RU.KOI8-R/man/man1/lsvfs.154
-rw-r--r--ru_RU.KOI8-R/man/man1/makewhatis.1143
-rw-r--r--ru_RU.KOI8-R/man/man1/man.1299
-rw-r--r--ru_RU.KOI8-R/man/man1/manpath.1101
-rw-r--r--ru_RU.KOI8-R/man/man1/minigzip.178
-rw-r--r--ru_RU.KOI8-R/man/man1/mkdir.1107
-rw-r--r--ru_RU.KOI8-R/man/man1/mkfifo.1103
-rw-r--r--ru_RU.KOI8-R/man/man1/mkstr.1131
-rw-r--r--ru_RU.KOI8-R/man/man1/mptable.177
-rw-r--r--ru_RU.KOI8-R/man/man1/mv.1158
-rw-r--r--ru_RU.KOI8-R/man/man1/ncplist.182
-rw-r--r--ru_RU.KOI8-R/man/man1/ncplogin.1242
-rw-r--r--ru_RU.KOI8-R/man/man1/ncplogout.157
-rw-r--r--ru_RU.KOI8-R/man/man1/newgrp.199
-rw-r--r--ru_RU.KOI8-R/man/man1/nfsstat.1109
-rw-r--r--ru_RU.KOI8-R/man/man1/nice.1126
-rw-r--r--ru_RU.KOI8-R/man/man1/nohup.1124
-rw-r--r--ru_RU.KOI8-R/man/man1/od.1266
-rw-r--r--ru_RU.KOI8-R/man/man1/pagesize.158
-rw-r--r--ru_RU.KOI8-R/man/man1/passwd.1256
-rw-r--r--ru_RU.KOI8-R/man/man1/pkg_info.1288
-rw-r--r--ru_RU.KOI8-R/man/man1/pkill.1284
-rw-r--r--ru_RU.KOI8-R/man/man1/printenv.187
-rw-r--r--ru_RU.KOI8-R/man/man1/pwd.1104
-rw-r--r--ru_RU.KOI8-R/man/man1/rcp.1153
-rw-r--r--ru_RU.KOI8-R/man/man1/realpath.167
-rw-r--r--ru_RU.KOI8-R/man/man1/rev.151
-rw-r--r--ru_RU.KOI8-R/man/man1/rm.1232
-rw-r--r--ru_RU.KOI8-R/man/man1/rmdir.198
-rw-r--r--ru_RU.KOI8-R/man/man1/rup.194
-rw-r--r--ru_RU.KOI8-R/man/man1/ruptime.198
-rw-r--r--ru_RU.KOI8-R/man/man1/rusers.1102
-rw-r--r--ru_RU.KOI8-R/man/man1/rwall.182
-rw-r--r--ru_RU.KOI8-R/man/man1/rwho.183
-rw-r--r--ru_RU.KOI8-R/man/man1/script.1159
-rw-r--r--ru_RU.KOI8-R/man/man1/sh.12253
-rw-r--r--ru_RU.KOI8-R/man/man1/shar.1114
-rw-r--r--ru_RU.KOI8-R/man/man1/sleep.1125
-rw-r--r--ru_RU.KOI8-R/man/man1/split.1170
-rw-r--r--ru_RU.KOI8-R/man/man1/tail.1191
-rw-r--r--ru_RU.KOI8-R/man/man1/talk.1162
-rw-r--r--ru_RU.KOI8-R/man/man1/tcopy.1126
-rw-r--r--ru_RU.KOI8-R/man/man1/tee.184
-rw-r--r--ru_RU.KOI8-R/man/man1/test.1328
-rw-r--r--ru_RU.KOI8-R/man/man1/tftp.1186
-rw-r--r--ru_RU.KOI8-R/man/man1/time.1141
-rw-r--r--ru_RU.KOI8-R/man/man1/true.168
-rw-r--r--ru_RU.KOI8-R/man/man1/truncate.1153
-rw-r--r--ru_RU.KOI8-R/man/man1/truss.196
-rw-r--r--ru_RU.KOI8-R/man/man1/tsort.1100
-rw-r--r--ru_RU.KOI8-R/man/man1/tty.188
-rw-r--r--ru_RU.KOI8-R/man/man1/ul.1108
-rw-r--r--ru_RU.KOI8-R/man/man1/uname.1104
-rw-r--r--ru_RU.KOI8-R/man/man1/uniq.1160
-rw-r--r--ru_RU.KOI8-R/man/man1/unvis.163
-rw-r--r--ru_RU.KOI8-R/man/man1/uptime.163
-rw-r--r--ru_RU.KOI8-R/man/man1/users.163
-rw-r--r--ru_RU.KOI8-R/man/man1/vidcontrol.1530
-rw-r--r--ru_RU.KOI8-R/man/man1/vis.1147
-rw-r--r--ru_RU.KOI8-R/man/man1/w.1155
-rw-r--r--ru_RU.KOI8-R/man/man1/wall.185
-rw-r--r--ru_RU.KOI8-R/man/man1/wc.1161
-rw-r--r--ru_RU.KOI8-R/man/man1/what.191
-rw-r--r--ru_RU.KOI8-R/man/man1/which.186
-rw-r--r--ru_RU.KOI8-R/man/man1/who.1154
-rw-r--r--ru_RU.KOI8-R/man/man1/whoami.161
-rw-r--r--ru_RU.KOI8-R/man/man1/write.1119
-rw-r--r--ru_RU.KOI8-R/man/man1/xstr.1169
-rw-r--r--ru_RU.KOI8-R/man/man1/yes.158
-rw-r--r--ru_RU.KOI8-R/man/man1/ypmatch.179
-rw-r--r--ru_RU.KOI8-R/man/man1/ypwhich.1103
-rw-r--r--ru_RU.KOI8-R/man/man3/Makefile13
-rw-r--r--ru_RU.KOI8-R/man/man3/setbuf.3204
-rw-r--r--ru_RU.KOI8-R/man/man3/strcpy.3192
-rw-r--r--ru_RU.KOI8-R/man/man5/Makefile6
-rw-r--r--ru_RU.KOI8-R/man/man5/finger.conf.592
-rw-r--r--ru_RU.KOI8-R/man/man8/Makefile15
-rw-r--r--ru_RU.KOI8-R/man/man8/bsdlabel.8504
-rw-r--r--ru_RU.KOI8-R/man/man8/fdisk.8448
-rw-r--r--ru_RU.KOI8-R/man/man8/gjournal.8253
-rw-r--r--ru_RU.KOI8-R/man/man8/intro.893
-rw-r--r--ru_RU.KOI8-R/man/man8/mount_ntfs.8170
-rw-r--r--ru_RU.KOI8-R/man/man8/nanobsd.8313
-rw-r--r--ru_RU.KOI8-R/share/xml/catalog.xml40
-rw-r--r--ru_RU.KOI8-R/share/xml/entities.ent30
-rw-r--r--ru_RU.KOI8-R/share/xml/events.xml65
-rw-r--r--ru_RU.KOI8-R/share/xml/events2003.xml260
-rw-r--r--ru_RU.KOI8-R/share/xml/events2004.xml454
-rw-r--r--ru_RU.KOI8-R/share/xml/events2005.xml293
-rw-r--r--ru_RU.KOI8-R/share/xml/events2006.xml511
-rw-r--r--ru_RU.KOI8-R/share/xml/events2007.xml619
-rw-r--r--ru_RU.KOI8-R/share/xml/events2008.xml548
-rw-r--r--ru_RU.KOI8-R/share/xml/events2009.xml498
-rw-r--r--ru_RU.KOI8-R/share/xml/events2010.xml493
-rw-r--r--ru_RU.KOI8-R/share/xml/events2011.xml255
-rw-r--r--ru_RU.KOI8-R/share/xml/events2012.xml75
-rw-r--r--ru_RU.KOI8-R/share/xml/events2013.xml47
-rw-r--r--ru_RU.KOI8-R/share/xml/freebsd-xhtml.xsl21
-rw-r--r--ru_RU.KOI8-R/share/xml/glossary.ent1732
-rw-r--r--ru_RU.KOI8-R/share/xml/header.l10n.ent108
-rw-r--r--ru_RU.KOI8-R/share/xml/l10n.ent64
-rw-r--r--ru_RU.KOI8-R/share/xml/libcommon.xsl110
-rw-r--r--ru_RU.KOI8-R/share/xml/mailing-lists.ent586
-rw-r--r--ru_RU.KOI8-R/share/xml/mirrors-local.xsl28
-rw-r--r--ru_RU.KOI8-R/share/xml/navibar.l10n.ent165
-rw-r--r--ru_RU.KOI8-R/share/xml/news.xml1233
-rw-r--r--ru_RU.KOI8-R/share/xml/newsgroups.ent16
-rw-r--r--ru_RU.KOI8-R/share/xml/press.xml805
-rw-r--r--ru_RU.KOI8-R/share/xml/release.l10n.ent117
-rw-r--r--ru_RU.KOI8-R/share/xml/teams.ent55
-rw-r--r--ru_RU.KOI8-R/share/xml/templates.events.xsl357
-rw-r--r--ru_RU.KOI8-R/share/xml/templates.usergroups.xsl27
-rw-r--r--ru_RU.KOI8-R/share/xml/trademarks.ent429
-rw-r--r--ru_RU.KOI8-R/share/xml/translators.ent39
-rw-r--r--ru_RU.KOI8-R/share/xml/transtable-local.xsl19
-rw-r--r--ru_RU.KOI8-R/share/xml/transtable.xml367
-rw-r--r--ru_RU.KOI8-R/share/xml/urls.ent25
659 files changed, 0 insertions, 300835 deletions
diff --git a/ru_RU.KOI8-R/Makefile b/ru_RU.KOI8-R/Makefile
deleted file mode 100644
index 77723ed149..0000000000
--- a/ru_RU.KOI8-R/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-#
-# The FreeBSD Russian Documentation Project
-#
-# $FreeBSD$
-# $FreeBSDru: frdp/doc/ru_RU.KOI8-R/Makefile,v 1.3 2004/02/21 15:25:00 andy Exp $
-#
-# Original revision: r5542
-#
-
-SUBDIR = articles
-SUBDIR+= books
-
-COMPAT_SYMLINK = ru
-
-DOC_PREFIX?= ${.CURDIR}/..
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/ru_RU.KOI8-R/Makefile.inc b/ru_RU.KOI8-R/Makefile.inc
deleted file mode 100644
index 453700a49b..0000000000
--- a/ru_RU.KOI8-R/Makefile.inc
+++ /dev/null
@@ -1,3 +0,0 @@
-# $FreeBSD$
-
-DOC_PREFIX?= ${.CURDIR}/../..
diff --git a/ru_RU.KOI8-R/articles/Makefile b/ru_RU.KOI8-R/articles/Makefile
deleted file mode 100644
index b88cf43fe7..0000000000
--- a/ru_RU.KOI8-R/articles/Makefile
+++ /dev/null
@@ -1,37 +0,0 @@
-#
-# The FreeBSD Russian Documentation Project
-#
-# $FreeBSD$
-# $FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/Makefile,v 1.37 2006/03/22 17:06:02 marck Exp $
-#
-# Original revision: r21216
-#
-
-SUBDIR =
-SUBDIR+= committers-guide
-SUBDIR+= contributing
-#SUBDIR+= contributors
-SUBDIR+= cups
-SUBDIR+= explaining-bsd
-#SUBDIR+= filtering-bridges
-SUBDIR+= fonts
-SUBDIR+= freebsd-questions
-SUBDIR+= geom-class
-SUBDIR+= gjournal-desktop
-SUBDIR+= hubs
-SUBDIR+= ipsec-must
-SUBDIR+= mailing-list-faq
-SUBDIR+= new-users
-SUBDIR+= pam
-SUBDIR+= pr-guidelines
-SUBDIR+= problem-reports
-SUBDIR+= releng
-#SUBDIR+= serial-uart
-SUBDIR+= solid-state
-#SUBDIR+= vinum
-SUBDIR+= vm-design
-
-# ROOT_SYMLINKS+= new-users
-
-DOC_PREFIX?= ${.CURDIR}/../..
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/ru_RU.KOI8-R/articles/Makefile.inc b/ru_RU.KOI8-R/articles/Makefile.inc
deleted file mode 100644
index e435b6f579..0000000000
--- a/ru_RU.KOI8-R/articles/Makefile.inc
+++ /dev/null
@@ -1,8 +0,0 @@
-#
-# $FreeBSD$
-# $FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/Makefile.inc,v 1.4 2001/07/25 10:26:26 phantom Exp $
-#
-# Original revision: r5542
-#
-
-DESTDIR?= ${DOCDIR}/ru_RU.KOI8-R/articles/${.CURDIR:T}
diff --git a/ru_RU.KOI8-R/articles/committers-guide/Makefile b/ru_RU.KOI8-R/articles/committers-guide/Makefile
deleted file mode 100644
index 661c4d5b69..0000000000
--- a/ru_RU.KOI8-R/articles/committers-guide/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-#
-# The FreeBSD Russian Documentation Project
-#
-# $FreeBSD$
-# $FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/committers-guide/Makefile,v 1.2 2004/09/21 08:24:32 marck Exp $
-#
-# Original revision: r21980
-#
-# Article: The FreeBSD Committers Guide
-
-
-DOC?= article
-
-FORMATS?= html
-WITH_ARTICLE_TOC?= YES
-
-INSTALL_COMPRESSED?= gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= article.xml
-
-URL_RELPREFIX?= ../../../..
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/ru_RU.KOI8-R/articles/committers-guide/article.xml b/ru_RU.KOI8-R/articles/committers-guide/article.xml
deleted file mode 100644
index cf8dfd4e81..0000000000
--- a/ru_RU.KOI8-R/articles/committers-guide/article.xml
+++ /dev/null
@@ -1,3352 +0,0 @@
-<?xml version="1.0" encoding="koi8-r"?>
-<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
- "http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
-<!--
- The FreeBSD Russian Documentation Project
-
- $FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/committers-guide/article.xml,v 1.30 2007/05/09 06:08:23 gad Exp $
-
- Original revision: r30088
--->
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="ru">
- <info><title>Справочник коммиттера</title>
-
-
- <authorgroup>
- <author><personname><surname>The FreeBSD Documentation Project</surname></personname></author>
- <author><personname><firstname>Дмитрий</firstname><surname>Морозовский</surname></personname><contrib>Перевод на русский язык: </contrib></author>
- </authorgroup>
-
- <copyright>
- <year>1999</year>
- <year>2000</year>
- <year>2001</year>
- <year>2002</year>
- <year>2003</year>
- <year>2004</year>
- <year>2005</year>
- <year>2006</year>
- <year>2007</year>
- <holder>The FreeBSD Documentation Project</holder>
- </copyright>
-
- <legalnotice xml:id="trademarks" role="trademarks">
- &tm-attrib.freebsd;
- &tm-attrib.cvsup;
- &tm-attrib.ibm;
- &tm-attrib.intel;
- &tm-attrib.sparc;
- &tm-attrib.general;
- </legalnotice>
-
- <pubdate>$FreeBSD$</pubdate>
-
- <releaseinfo>$FreeBSD$</releaseinfo>
-
- <abstract>
- <para>Данный документ содержит информацию для сообщества коммиттеров
- FreeBSD. Все новые коммиттеры должны изучить его перед началом работы;
- прочим коммиттерам также рекомендуется время от времени просматривать
- его.</para>
- </abstract>
- </info>
-
- <sect1 xml:id="admin">
- <title>Административные детали</title>
-
- <informaltable frame="none" orient="port" pgwide="1">
- <tgroup cols="2">
- <tbody>
- <row>
- <entry><emphasis>Хост основного репозитория</emphasis></entry>
- <entry><systemitem class="fqdomainname">ncvs.FreeBSD.org</systemitem></entry>
- </row>
-
- <row>
- <entry><emphasis>Способ авторизации</emphasis></entry>
- <entry>&man.ssh.1;, только протокол 2</entry>
- </row>
-
- <row>
- <entry><emphasis>Основной корень репозитория (CVSROOT)</emphasis></entry>
- <entry>
- <systemitem class="fqdomainname">ncvs.FreeBSD.org</systemitem><literal>:</literal><filename>/home/ncvs</filename> (см. также <xref linkend="cvs.operations"/>).
- </entry>
- </row>
-
- <row>
- <entry><emphasis>&a.cvsadm;</emphasis></entry>
- <entry>&a.peter.email; и &a.markm.email;, а также &a.joe.email; и &a.marcus.email; для
- иерархии <filename>ports/</filename></entry>
- </row>
-
- <row>
- <entry><emphasis>Списки рассылки</emphasis></entry>
- <entry>&a.doc-developers;, &a.doc-committers;;
- &a.ports-developers;, &a.ports-committers;;
- &a.src-developers;, &a.src-committers;. (Каждому репозиторию
- проекта соответствуют отдельные списки рассылки с суффиксами
- -developers и -committers. Архивы этих списков хранятся в файлах
- <filename>/home/mail/<replaceable>repository-name</replaceable>-developers-archive</filename>
- и
- <filename>/home/mail/<replaceable>repository-name</replaceable>-committers-archive</filename>
- на машинах кластера <systemitem class="fqdomainname">FreeBSD.org</systemitem>).
- </entry>
- </row>
-
-
- <row>
- <entry><emphasis>Отчеты Правления</emphasis></entry>
- <entry><filename>/home/core/public/monthly-report</filename>
- на машинах кластера <systemitem class="fqdomainname">FreeBSD.org</systemitem>.
- </entry>
- </row>
-
- <row>
- <entry><emphasis>Наиболее значимые метки CVS</emphasis></entry>
- <entry><literal>RELENG_4</literal> (ветвь 4.X-STABLE),
- <literal>RELENG_5</literal> (ветвь 5.X-STABLE),
- <literal>RELENG_6</literal> (ветвь 6.X-STABLE),
- <literal>HEAD</literal> (ветвь -CURRENT)</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Для авторизации на машины проекта вы должны использовать протоколы
- &man.ssh.1; или &man.telnet.1; с включенным Kerberos 5. В случае
- &man.ssh.1;, допустим только протокол версии 2.
- Эти протоколы являются значительно более защищенными по сравнению с
- &man.telnet.1; или &man.rlogin.1;, поскольку информация об авторизации
- передается в зашифрованном виде. По умолчанию, протокол &man.ssh.1;
- также шифрует весь трафик. Учитывая наличие таких утилит, как
- &man.ssh-agent.1; и &man.scp.1;, протокол &man.ssh.1; значительно
- удобнее прочих в использовании. Если вы ничего не знаете об &man.ssh.1;,
- загляните в раздел <xref linkend="ssh.guide"/>.</para>
- </sect1>
-
- <sect1 xml:id="committer.types">
- <title>Типы коммит битов</title>
-
- <para>CVS Репозиторий FreeBSD состоит из нескольких разделов, охватывающих
- исходные тексты базовой операционной системы, документацию, инфраструктуру
- построения внешних приложений (портов), а также различные служебные
- утилиты. Право записи в репозиторий (<quote>коммит бит</quote>)
- подразумевает указание области дерева, в которое оно может быть применено.
- Как правило, области напрямую связаны с группой, подтвердившей право
- коммиттера на бит. В дальнейшем, область действия коммит бита
- может быть расширена; в этом случае, коммиттер должен следовать
- стандартным правилам нового для коммиттера в данной области, в частности,
- получая подтверждения на каждый коммит и, возможно, в течение какого-то
- времени работу с ментором.</para>
-
- <informaltable frame="none" pgwide="1">
- <tgroup cols="3">
- <tbody>
- <row>
- <entry><emphasis>Тип коммит бита</emphasis></entry>
- <entry><emphasis>Ответственные</emphasis></entry>
- <entry><emphasis>Области репозитория</emphasis></entry>
- </row>
-
- <row>
- <entry>src</entry>
- <entry>core@</entry>
- <entry>src/ и соответствующие части doc/</entry>
- </row>
-
- <row>
- <entry>doc</entry>
- <entry>doceng@</entry>
- <entry>doc/, www/, документация дерева src/</entry>
- </row>
-
- <row>
- <entry>ports</entry>
- <entry>portmgr@</entry>
- <entry>ports/</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Биты, выделенные до разделения дерева на области могут использоваться
- во всех частях дерева. Однако, с точки зрения здравого смысла, коммиттер,
- не имеющий опыта работы в какой-либо части дерева, должен предоставлять
- предлагаемые изменения для рассмотрения другими коммиттерами, получать
- подтверждения от ответственных за различные части репозитория, а также,
- возможно, работать совместно с ментором. Поскольку правила ведения
- различных областей кода различаются, указанные нормы скорее направлены
- на благо коммиттера, не имеющего достаточного опыта работы в данной
- области.</para>
-
- <para>Вне зависимости от области приложения усилий, запросы коммиттеров
- на рассмотрение предлагаемых изменений в процессе разработки могут
- только приветствоваться.</para>
-
- <sect2>
- <title>Правила для коммиттеров документации (<filename>doc/</filename>)
- при работе с деревом исходных текстов
- (<filename>src/</filename>)</title>
-
- <itemizedlist>
- <listitem><para>Коммиттеры документации могут самостоятельно изменять
- документацию к исходным текстам, например, страницы справочника, файлы
- README, базы данных утилиты fortune, календарей, а также исправлять
- комментарии в исходных текстах без дополнительного согласования с
- коммиттерами исходных текстов, при условии сохранения здравого смысла
- и манеры коммитов.</para></listitem>
-
- <listitem><para>Коммиттеры документации могут вносить незначительные
- изменения и исправления в исходные тексты (такие как исправления к
- процессу сборки, добавление малых дополнительных возможностей и т.п.)
- при наличии одобрения от коммиттера исходных
- текстов.</para></listitem>
-
- <listitem><para>Коммиттер документации может расширить область действия
- своего бита на область исходных текстов (и стать, таким образом,
- коммиттером исходных текстов), найдя себе ментора, который предложит
- это расширение Правлению (Core). После одобрения, строка с его именем
- пользователя вносится в файл 'access', и применяются обычные правила
- периода работы с ментором, подразумевающие получение одобрения на
- каждый коммит.</para></listitem>
-
- <listitem><para>Одобрение коммита ("Approved by") может производиться
- только "полновесным" (не работающим с ментором) коммиттером исходных
- текстов; последние могут рассматривать предлагаемые изменения и
- указываться в строке "Reviewed by".</para></listitem>
- </itemizedlist>
- </sect2>
-
- </sect1>
-
- <sect1 xml:id="cvs.operations">
- <title>Работа с CVS</title>
-
- <para>Подразумевается, что вы уже имеете опыт базовой работы с CVS.</para>
-
- <para>&a.cvsadm; являются <quote>владельцами</quote> репозитория CVS и
- ответственны за все прямые его изменения (в целях чистки или исправления
- каких-либо вопиющих ошибок коммиттеров при работе с CVS). Если в
- результате ваших действий с частью репозитория произошел несчастный
- случай, например, после неверной операции <command>cvs import</command>
- или <command>cvs tag</command>, пошлите письмо соответствующей подгруппе
- &a.cvsadm; (см. следующую таблицу) и сообщите о проблеме. В наиболее
- серьезных случаях, касающихся не только какой-либо части репозитория, а
- дерева CVS в целом, вы можете написать &a.cvsadm;. Пожалуйста,
- <emphasis>не надо</emphasis> писать группе &a.cvsadm; по поводу
- репозиторного копирования и прочих вопросов, которые может решить
- соответствующая подгруппа.</para>
-
- <para><anchor xml:id="repomeisters"/>Напрямую изменять содержимое репозитория может только группа
- CVS-мастеров; для обеспечения этого, только CVS-мастера имеют учетные
- записи на машинах, поддерживающих основной репозиторий.</para>
-
- <note><para>Адреса, на которые следует посылать запросы, зависят от области
- репозитория, которую требуется поправить:</para>
-
- <itemizedlist>
- <listitem><para>ncvs@ - репозиторий <filename>
- /home/ncvs</filename>, основные исходные тексты
- </para></listitem>
-
- <listitem><para>pcvs@ - репозиторий <filename>
- /home/pcvs</filename>, порты</para></listitem>
-
- <listitem><para>dcvs@ - репозиторий <filename>
- /home/dcvs</filename>, документация</para></listitem>
-
- <listitem><para>projcvs@ - репозиторий <filename>
- /home/projcvs</filename>, прочие проекты</para></listitem>
- </itemizedlist>
- </note>
-
- <para>Дерево CVS в настоящее время разделено на четыре независимых
- репозитория: <literal>doc</literal>, <literal>ports</literal>,
- <literal>projects</literal> и <literal>src</literal>. Для удобства
- работы пользователей при распространении через
- <application>CVSup</application> различные деревья комбинируются в
- одно, с одним служебным каталогом <literal>CVSROOT</literal>.</para>
-
- <note><para>Обратите внимание, что модуль <literal>www</literal>, содержащий
- исходные тексты
- <link xlink:href="http://www.FreeBSD.org">веб-сайта FreeBSD</link>, расположен
- в репозитории <literal>doc</literal>.</para></note>
-
- <para>В настоящее время, все репозитории CVS располагаются на одной машине,
- <systemitem class="fqdomainname">ncvs.FreeBSD.org</systemitem>, однако, для обеспечения
- возможности в будущем разнести их по физически различным машинам, для
- каждой поддерживается отдельное имя хоста. Их и следует использовать
- коммиттерам. Наконец, каждый репозиторий расположен в отдельном каталоге.
- В итоге, общая картина выглядит так:</para>
-
- <table frame="none" xml:id="cvs-repositories-and-hosts">
- <title>Репозитории CVS &os;, хосты и каталоги</title>
-
- <tgroup cols="3">
- <thead>
- <row>
- <entry>Репозиторий</entry>
- <entry>Хост</entry>
- <entry>Каталог</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>doc</entry>
- <entry>dcvs.FreeBSD.org</entry>
- <entry>/home/dcvs</entry>
- </row>
-
- <row>
- <entry>ports</entry>
- <entry>pcvs.FreeBSD.org</entry>
- <entry>/home/pcvs</entry>
- </row>
-
- <row>
- <entry>projects</entry>
- <entry>projcvs.FreeBSD.org</entry>
- <entry>/home/projcvs</entry>
- </row>
-
- <row>
- <entry>src</entry>
- <entry>ncvs.FreeBSD.org</entry>
- <entry>/home/ncvs</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>Операции с CVS производятся удаленно, путем установки переменной
- окружения <envar>CVSROOT</envar> (она должна указывать на соответствующий
- хост и каталог верхнего уровня, например
- <systemitem class="fqdomainname">ncvs.FreeBSD.org</systemitem><literal>:</literal><filename>/home/ncvs</filename>)
- и последующего выполнения команд выгрузки и коммита. Многие коммиттеры
- определяют команды-синонимы, разворачивающиеся в запуск
- <application>cvs</application> с правильными параметрами. В частности,
- пользователи оболочки &man.tcsh.1; могут добавить следующие строки в
- свой скрипт начальной загрузки <filename>.cshrc</filename>:</para>
-
- <programlisting>alias dcvs cvs -d <replaceable>user</replaceable>@dcvs.FreeBSD.org:/home/dcvs
-alias pcvs cvs -d <replaceable>user</replaceable>@pcvs.FreeBSD.org:/home/pcvs
-alias projcvs cvs -d <replaceable>user</replaceable>@projcvs.FreeBSD.org:/home/projcvs
-alias scvs cvs -d <replaceable>user</replaceable>@ncvs.FreeBSD.org:/home/ncvs</programlisting>
-
- <para>Теперь все операции с CVS могут выполняться на локальной машине,
- а для внесения изменений в официальное дерево CVS следует использовать
- команду <command><replaceable>X</replaceable>cvs commit</command>.
- Если вам нужно добавить в проект что-либо совершенно новое (например,
- исходные тексты сторонних разработчиков), нужно использовать команду
- <command>cvs import</command>; обратитесь к странице справочника по
- &man.cvs.1; за подробностями.</para>
-
- <note>
- <para>Пожалуйста, <emphasis>не используйте</emphasis> команды
- <command>cvs checkout</command> или
- <command>cvs update</command> для синхронизации ваших исходных текстов.
- Протокол CVS не оптимизирован для удаленной работы и требует
- значительных накладных расходов со стороны сервера. Пожалуйста,
- используйте метод синхронизации посредством <command>cvsup</command>,
- а основной хост используйте только для собственно коммитов.
- Наша распределенная сеть серверов cvsup достаточно развита. При
- необходимости синхронизации с самыми свежими изменениями вы можете
- пользоваться машиной <systemitem>cvsup-master</systemitem>, которая обладает
- достаточными ресурсами для удаленной работы с CVS; за нее отвечает
- &a.kuriyama.email;.
- </para>
- </note>
-
- <para>Если вам нужно использовать команды CVS <command>add</command> и
- <command>delete</command>, так чтобы в реальности переместить часть
- исходных текстов подобно действию команды &man.mv.1;, нужно запросить
- операцию <quote>репозиторного копирования</quote> (repository copy).
- При этом кто-либо из <link linkend="repomeisters">CVS-мастеров</link>
- скопирует необходимые файлы внутри репозитория на нужное место и даст вам
- знать об этом. Репозиторное копирование производится для сохранения
- истории (журналов изменения). Возможность отследить историю изменений
- очень ценна для всего проекта FreeBSD.</para>
-
- <para>Документация по CVS, учебные материалы и FAQ можно найти по адресу:
- <uri xlink:href="http://www.cvshome.org/docs/">http://www.cvshome.org/docs/</uri>.
- Очень полезна также книга Карла Фогеля (Karl Fogel)
- <link xlink:href="http://cvsbook.red-bean.com/cvsbook.html">Open Source
- Development with CVS</link>.
- Некоторая полезная информация о CVS на русском языке может быть найдена
- <link xlink:href="http://alexm.here.ru/cvs-ru/">здесь</link>.</para>
-
- <para>&a.des.email; написал такой <quote>мини-пример</quote> работы с CVS:</para>
-
- <orderedlist>
- <listitem>
- <para>Извлечение нужного модуля из репозитория: команда
- <command>co</command> или <command>checkout</command>.</para>
-
- <screen>&prompt.user; <userinput>cvs checkout shazam</userinput></screen>
-
- <para>Эта команда извлечет копию модуля <filename>shazam</filename>.
- Если модуль с таким именем не существует (не описан в файле modules),
- будет произведена попытка извлечь директорию верхнего уровня
- <filename>shazam</filename>.</para>
-
- <table frame="none">
- <title>Полезные опции команды <command>cvs checkout</command></title>
-
- <tgroup cols="2">
- <tbody>
- <row>
- <entry><option>-P</option></entry>
- <entry>Не создавать (точнее, удалить после завершения
- выполнения) пустые каталоги</entry>
- </row>
-
- <row>
- <entry><option>-l</option></entry>
- <entry>Извлекать один уровень каталогов (без
- подкаталогов)</entry>
- </row>
-
- <row>
- <entry><option>-r<replaceable>rev</replaceable></option></entry>
- <entry>Извлечь ревизию, ветвь или тег
- <replaceable>rev</replaceable> для указанного модуля</entry>
- </row>
-
- <row>
- <entry><option>-D<replaceable>date</replaceable></option></entry>
- <entry>Извлечь состояние модуля в репозитории на момент
- <replaceable>date</replaceable></entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>Примеры в применении к FreeBSD:</para>
-
- <itemizedlist>
- <listitem>
- <para>Извлечь модуль <filename>miscfs</filename>, расположенный в
- каталоге репозитория <filename>src/sys/miscfs</filename>:</para>
-
- <screen>&prompt.user; <userinput>cvs co miscfs</userinput></screen>
-
- <para>После выполнения вы получите каталог
- <filename>miscfs</filename>, содержащий подкаталоги
- <filename>CVS</filename>, <filename>deadfs</filename>,
- <filename>devfs</filename> и т.д. Один из них
- (<filename>linprocfs</filename>) будет пустым.</para>
- </listitem>
-
- <listitem>
- <para>Извлечь те же файлы, но с полным путем:</para>
-
- <screen>&prompt.user; <userinput>cvs co src/sys/miscfs</userinput></screen>
-
- <para>Теперь у вас есть каталог <filename>src</filename>,
- содержащий подкаталоги <filename>CVS</filename> и
- <filename>sys</filename>. Каталог <filename>src/sys</filename>
- содержит подкаталоги <filename>CVS</filename> и
- <filename>miscfs</filename> и т.д.</para>
- </listitem>
-
- <listitem>
- <para>Извлечь те же файлы, удалив при этом пустые
- подкаталоги:</para>
-
- <screen>&prompt.user; <userinput>cvs co -P miscfs</userinput></screen>
-
- <para>Вы получите каталог
- <filename>miscfs</filename> с подкаталогами
- <filename>CVS</filename>, <filename>deadfs</filename>,
- <filename>devfs</filename>... однако без подкаталога
- <filename>linprocfs</filename>, поскольку он не содержит файлов.</para>
- </listitem>
-
- <listitem>
- <para>Извлечь каталог <filename>miscfs</filename> без
- подкаталогов:</para>
-
- <screen>&prompt.user; <userinput>cvs co -l miscfs</userinput></screen>
-
- <para>Теперь в каталоге <filename>miscfs</filename> будет только
- один подкаталог <filename>CVS</filename>.</para>
- </listitem>
-
- <listitem>
- <para>Извлечь модуль <filename>miscfs</filename> из ветви
- 6.X:</para>
-
- <screen>&prompt.user; <userinput>cvs co -rRELENG_6 miscfs</userinput></screen>
-
- <para>Теперь вы можете изменить исходные тексты и произвести коммит
- в эту ветвь.</para>
- </listitem>
-
- <listitem>
- <para>Извлечь модуль <filename>miscfs</filename> по состоянию на
- момент выхода 6.0-RELEASE:</para>
-
- <screen>&prompt.user; <userinput>cvs co -rRELENG_6_0_0_RELEASE miscfs</userinput></screen>
-
- <para>В этом случае вы не сможете внести изменения в репозиторий,
- поскольку <literal>RELENG_6_0_0_RELEASE</literal> описывает
- момент времени, а не ветвь разработки.</para>
- </listitem>
-
- <listitem>
- <para>Извлечь модуль <filename>miscfs</filename> по состоянию на
- 15 января 2000 г:</para>
-
- <screen>&prompt.user; <userinput>cvs co -D'01/15/2000' miscfs</userinput></screen>
-
- <para>Как и в предыдущем случае, изменения не могут быть
- записаны.</para>
- </listitem>
-
- <listitem>
- <para>Извлечь модуль <filename>miscfs</filename>, каким он был
- неделю назад:</para>
-
- <screen>&prompt.user; <userinput>cvs co -D'last week' miscfs</userinput></screen>
-
- <para>И вновь, изменения не могут быть записаны.</para>
- </listitem>
- </itemizedlist>
-
- <para>Обратите внимание, что мета-данные хранятся в подкаталогах
- <filename>CVS</filename>.</para>
-
- <para>Аргументы опций <option>-D</option> and <option>-r</option>
- сохраняются (являются <quote>клейкими</quote>, sticky), например,
- при последующем использовании команды
- <command>cvs update</command>.</para>
- </listitem>
-
- <listitem>
- <para>Проверка состояния извлеченных файлов: команда
- <command>status</command>.</para>
-
- <screen>&prompt.user; <userinput>cvs status shazam</userinput></screen>
-
- <para>Эта команда покажет статус файла <filename>shazam</filename>
- или каждого файла в директории <filename>shazam</filename>.
- Для каждого из файлов статус может быть одним из:</para>
-
- <informaltable frame="none" pgwide="1">
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>Up-to-date</entry>
- <entry>Файл соответствует репозиторию и не
- модифицировался</entry>
- </row>
-
- <row>
- <entry>Needs Patch</entry>
- <entry>Файл не изменялся, но репозиторий содержит обновленную
- версию</entry>
- </row>
-
- <row>
- <entry>Locally Modified</entry>
- <entry>Файл соответствует репозиторию, но был изменен
- локально</entry>
- </row>
-
- <row>
- <entry>Needs Merge</entry>
- <entry>Файл изменен локально; вместе с тем, файл изменен и в
- репозитории</entry>
- </row>
-
- <row>
- <entry>File had conflicts on merge</entry>
- <entry>После последнего обновления возникли конфликты, и они
- все еще не устранены</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Кроме того, будут показаны локальная версия и дата модификации,
- версия и дата последней из доступных (если вы применяли
- <quote>клейкие</quote> дату, тег или ветвь, последняя доступная версия
- может отличаться от вашей), а также клейкие теги, временные метки
- и опции.</para>
- </listitem>
-
- <listitem>
- <para>Обновление извлеченного модуля: команда
- <command>update</command>.</para>
-
- <screen>&prompt.user; <userinput>cvs update shazam</userinput></screen>
-
- <para>Эта команда обновит состояние файла <filename>shazam</filename>
- или файлов в каталоге <filename>shazam</filename> до наиболее
- свежих версий выбранной вами при извлечении ветви. Если выбирался
- <quote>момент времени</quote>, не произойдет ничего, если только
- за истекшее время в репозитории не был перемещен тег или не
- произошло чего-нибудь еще непредвиденного.</para>
-
- <para>Полезные опции в дополнение к уже описанным для команды
- <command>checkout</command>:</para>
-
- <informaltable frame="none" pgwide="1">
- <tgroup cols="2">
- <tbody>
- <row>
- <entry><option>-d</option></entry>
- <entry>Извлечь вновь появившиеся или пропущенные ранее
- подкаталоги</entry>
- </row>
-
- <row>
- <entry><option>-A</option></entry>
- <entry>Обновиться до текущего состояния головной ветви</entry>
- </row>
-
- <row>
- <entry><option>-j<replaceable>rev</replaceable></option></entry>
- <entry>магическая опция (см. ниже)</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Если вы извлекали модуль с опциями <option>-r</option> или
- <option>-D</option>, выполнение команды <command>cvs update</command>
- с другими параметрами <option>-r</option> или <option>-D</option>
- или с опцией <option>-A</option> приведет к выбору новой ветви,
- ревизии или даты. Использование опции <option>-A</option>
- удаляет использованные ранее клейкие свойства; опции
- <option>-r</option> и <option>-D</option>, наоборот, фиксируют
- их.</para>
-
- <para>Теоретически использование <literal>HEAD</literal> в качестве
- аргумента опции <option>-r</option> должно дать тот же результат, что
- и указание опции <option>-A</option>, однако это верно лишь
- в теории.</para>
-
- <para>Опция <option>-d</option> полезна, если:</para>
- <itemizedlist>
- <listitem>
- <para>после извлечения вами модуля кем-либо еще в него были
- добавлены дополнительные каталоги;</para>
- </listitem>
-
- <listitem>
- <para>вы извлекали верхний уровень модуля при помощи опции
- <option>-l</option>, а в дальнейшем решили извлечь и
- подкаталоги;</para>
- </listitem>
-
- <listitem>
- <para>вы удалили какие-либо подкаталоги и теперь хотите
- вновь извлечь их.</para>
- </listitem>
- </itemizedlist>
-
- <para><emphasis>Обращайте внимание на вывод команды <command>cvs
- update</command>.</emphasis> Действие, произведенное с файлом,
- обозначается буквой перед его именем:</para>
-
- <informaltable frame="none" pgwide="1">
- <tgroup cols="2">
- <tbody>
- <row>
- <entry><literal>U</literal></entry>
- <entry>Файл был успешно обновлен.</entry>
- </row>
-
- <row>
- <entry><literal>P</literal></entry>
- <entry>Файл был успешно обновлен (произведен успешный патч
- из удаленного репозитория).</entry>
- </row>
-
- <row>
- <entry><literal>M</literal></entry>
- <entry>Файл был изменен, и при этом обновлен успешно.</entry>
- </row>
-
- <row>
- <entry><literal>C</literal></entry>
- <entry>Файл был изменен, и при объединении изменений возникли
- конфликты.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Объединение (merging) производится, если вы выгрузили рабочую
- копию какого-то модуля, изменили его, затем кто-либо еще произвел
- коммит собственных изменений, и, наконец, вы выполняете команду
- <command>cvs update</command>. CVS знает, что производились локальные
- изменения, и пытается объединить ваши изменения с теми, что произошли
- в репозитории (от состоянии версии, которую вы выгружали, до версии,
- до которой вы пытаетесь обновиться). Если изменения происходили с
- различными частями файла, объединение почти всегда произойдет успешно
- (хотя результат при этом может не быть синтаксически или семантически
- корректным).</para>
-
- <para>CVS выводит букву <literal>M</literal> перед именем всех локально
- измененных файлов, даже если у них нет новых версий в репозитории,
- так что команда <command>cvs update</command> удобна для быстрого
- получения списка файлов, которые вы изменяли.</para>
-
- <para>Если в результате вы видите букву <literal>C</literal>, ваши
- изменения конфликтуют с изменениями, внесенными в репозиторий
- (изменения были в одних и тех же или рядом расположенных строках,
- либо вы изменили файл настолько, что при сравнении
- <command>cvs</command> не смогла удержать контекст и приложить
- изменения из репозитория). Вам необходимо устранить конфликты,
- вручную редактируя файл. Конфликтующие фрагменты помечаются
- строками из знаков <literal>&lt;</literal>, <literal>=</literal> и
- <literal>&gt;</literal>. В начале каждого из конфликтов присутствует
- строка из семи знаков <literal>&lt;</literal> и имени файла, затем
- идет фрагмент, содержащий внесенные вами изменения, разделитель
- из семи знаков <literal>=</literal>, соответствующий фрагмент из
- версии файла, содержащейся в репозитории, и, наконец, строка из семи
- знаков <literal>&gt;</literal> совместно с номером версии, до которой
- вы обновляли файл.</para>
-
- <para>Опция <option>-j</option> содержит некоторое количество черной
- магии. При ее наличии локальный файл обновляется до указанной версии
- так же, как и при использовании опции <option>-r</option>, но
- отслеживаемые номер версии или ветвь не изменяются. Эта опция умеет
- смысл лишь при парном использовании: при этом делается попытка
- применить изменения между двумя указанными версиями к локальной
- копии файла.</para>
-
- <para>К примеру, вы внесли изменения и произвели коммит в файл
- <filename>shazam/shazam.c</filename> в &os.current;, а позднее
- хотите перенести обновления в &os.stable; (Merge-From-Current, MFC).
- Версия, которая требует переноса&nbsp;&mdash; 1.15:</para>
-
- <itemizedlist>
- <listitem>
- <para>Извлеките текущую версию модуля <filename>shazam</filename>
- для ветви &os.stable;:</para>
-
- <screen>&prompt.user; <userinput>cvs co -rRELENG_6 shazam</userinput></screen>
- </listitem>
-
- <listitem>
- <para>Приложите изменения между версиями 1.14 и 1.15:</para>
-
- <screen>&prompt.user; <userinput>cvs update -j1.14 -j1.15 shazam/shazam.c</userinput></screen>
- </listitem>
- </itemizedlist>
-
- <para>Почти наверняка вы получите конфликт в строках, содержащих
- идентификатор файла (<literal>$Id: article.xml,v 1.19 2007-05-09 06:08:50 bvs Exp $</literal> или, в случае FreeBSD,
- <literal>$FreeBSD$</literal>).
- Вам потребуется отредактировать файл для устранения конфликта
- (в данном случае достаточно убрать строки-разделители и вторую строку
- <literal>$Id: article.xml,v 1.19 2007-05-09 06:08:50 bvs Exp $</literal>, оставив лишь строку с <literal>$Id: article.xml,v 1.19 2007-05-09 06:08:50 bvs Exp $</literal>
- для &os.stable;).</para>
- </listitem>
-
- <listitem>
- <para>Просмотр изменение между локальной версией и версией из
- репозитория: команда <command>diff</command>.</para>
-
- <screen>&prompt.user; <userinput>cvs diff shazam</userinput></screen>
-
- <para>Эта команда покажет все отличия локального состояния файла (или
- файлов модуля) <filename>shazam</filename> от состояния, сохраненного
- в репозитории.</para>
-
- <table frame="none">
- <title>Полезные опции команды <command>cvs diff</command></title>
-
- <tgroup cols="2">
- <tbody>
- <row>
- <entry><option>-u</option></entry>
- <entry>Использовать унифицированный (unified) формат.</entry>
- </row>
-
- <row>
- <entry><option>-c</option></entry>
- <entry>Использовать контекстный (context) формат.</entry>
- </row>
-
- <row>
- <entry><option>-N</option></entry>
- <entry>Показывать отсутствующие или созданные файлы.</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>Всегда имеет смысл пользоваться опцией <option>-u</option>,
- поскольку унифицированный формат гораздо удобнее и лучше читаем,
- чем почти все другие (в некоторых случаях контекстный формат,
- генерируемый опцией <option>-c</option> может быть несколько лучше,
- но он гораздо более громоздок). Унифицированный формат различий
- состоит из серии фрагментов, каждый из которых начинается со строки,
- состоящей из двух символов <literal>@</literal> и номеров строк,
- описывающих положение изменившегося участка. Затем следует группа
- строк: те, что начинаются с пробела, описывают контекст, начинающиеся
- с символа <literal>-</literal> определяют удаленные строки, наконец,
- начинающиеся с символа <literal>+</literal>&nbsp;&mdash;
- добавленные.</para>
-
- <para>Вы можете сравнивать текущее состояние с версией, отличающейся
- от той, с которой вы извлекали файл, указав опцию <option>-r</option>
- или <option>-D</option> подобно командам <command>checkout</command>
- и <command>update</command>, или даже получить список изменений между
- любыми двумя версиями (вне зависимости от того, что лежит в вашей
- локальной копии), указав <emphasis>две</emphasis> версии при помощи
- опций <option>-r</option> или <option>-D</option>.</para>
- </listitem>
-
- <listitem>
- <para>Просмотр журнала изменений: команда <command>log</command>.</para>
-
- <screen>&prompt.user; <userinput>cvs log shazam</userinput></screen>
-
- <para>Если <filename>shazam</filename> является обычным файлом, эта
- команда выдаст на экран <emphasis>заголовок</emphasis> с информацией
- о файле, в частности, его местоположении в репозитории, какая версия
- соответствует текущему состоянию (<literal>HEAD</literal>), в каких
- ветвях разработки файл присутствует, а также перечислит теги, которыми
- он помечен. Затем, для каждой версии файла выводится соответствующее
- ей журнальное сообщение, включающее дату, время и автора коммита,
- количество добавленных и удаленных строк и собственно журнального
- сообщения, написанного коммиттером.</para>
-
- <para>Если <filename>shazam</filename> является каталогом, вышеописанная
- процедура выполняется для каждого файла в каталоге. Если при этом
- команде <command>log</command> не был указан флаг <option>-l</option>,
- процедура рекурсивно повторяется для всех подкаталогов.</para>
-
- <para>Команда <command>log</command> используется для просмотра истории
- одного или нескольких файлов в том виде, как она сохранена в
- репозитории CVS. Используя опцию
- <option>-r<replaceable>rev</replaceable></option>, вы можете
- посмотреть журнальное сообщение к одной определенной версии:</para>
-
- <screen>&prompt.user; <userinput>cvs log -r1.2 shazam</userinput></screen>
-
- <para>Эта команда покажет журнальное сообщение для версии
- <literal>1.2</literal> файла <filename>shazam</filename> (или для
- версий <literal>1.2</literal> каждого из файлов в каталоге
- <filename>shazam</filename>).</para>
- </listitem>
-
- <listitem>
- <para>Кто что делал: команда <command>annotate</command>.
- Эта команда показывает перед каждой строкой указанного файла (файлов)
- имя пользователя, вносившего последние изменения в эту строку.</para>
-
- <screen>&prompt.user; <userinput>cvs annotate shazam</userinput></screen>
- </listitem>
-
- <listitem>
- <para>Добавление новых файлов: команда <command>add</command>.</para>
-
- <para>Создайте файл, выполните для него команду
- <command>cvs add</command>, затем произведите запись в репозиторий
- (коммит): <command>cvs commit</command>.</para>
-
- <para>Точно так же, новые каталоги добавляются в репозиторий путем
- создания и последующего выполнения команды <command>cvs add</command>.
- Заметьте, что выполнять коммит после добавления каталога не
- надо.</para>
- </listitem>
-
- <listitem>
- <para>Удаление устаревших файлов: команда
- <command>remove</command>.</para>
-
- <para>Удалите файл, затем выполните команду <command>cvs rm</command>
- с его именем в качестве параметра, наконец, выполните для него
- <command>cvs commit</command>.</para>
- </listitem>
-
- <listitem>
- <para>Внесение изменений в репозиторий: команда
- <command>commit</command> или <command>checkin</command>.</para>
-
- <table frame="none">
- <title>Useful <command>cvs commit</command> options</title>
-
- <tgroup cols="2">
- <tbody>
- <row>
- <entry><option>-f</option></entry>
- <entry>Форсировать внесение изменений для не модифицированного
- файла.</entry>
- </row>
-
- <row>
- <entry><option>-m<replaceable>msg</replaceable></option></entry>
- <entry>Указать сообщение для журнала в командной строке (не
- запускать текстовый редактор).</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>Опцию <option>-f</option> следует использовать, если вы поняли,
- что забыли указать какую-либо важную информацию в журнале
- изменений.</para>
-
- <para>Хорошие журнальные сообщения очень важны. Они дают возможность
- другим узнать, зачем вы производили изменения, причем не только в
- момент их произведения, но и месяцы или годы спустя, когда кто-либо
- заинтересуется, почему выглядящий нелогично или неэффективно фрагмент
- кода попал в каши исходные тексты. Кроме того, это очень помогает
- в оценке того, нужно ли переносить соответствующий код в &os.stable;
- (MFC).</para>
-
- <para>Сообщения должны быть ясными, краткими, четкими, и представлять
- из себя разумную аннотацию, какие изменения были произведены и
- почему.</para>
-
- <para>Сообщения должны достаточно ясно показывать сторонним
- разработчикам, насколько их касаются изменения и нужно ли
- им исследовать изменения подробно.</para>
-
- <para>Избегайте внесения нескольких не связанных друг с другом
- изменений за один раз. Это затрудняет объединение изменений,
- а также, при обнаружении ошибок, усложняет поиск ответственного
- за ошибки участка.</para>
-
- <para>Избегайте смешивания в одном коммите изменений функциональности
- со стилистическими правками или исправлениями в пробелах.
- Это усложняет объединение, и, кроме того, затрудняет понимание того,
- какие именно функциональные изменения были внесены. В случае коммита
- в файлы документации, это затруднит работу групп поддержки перевода,
- поскольку становится сложнее отделить изменения, требующие
- перевода.</para>
-
- <para>Избегайте коммита большой группы файлов за один раз с одним
- общим и невнятным сообщением. Напротив, вносите изменения в отдельные
- файлы (или небольшие группы связанных файлов) с адекватными
- сообщениями для журналирования.</para>
-
- <para>Перед коммитом, <emphasis>обязательно</emphasis>:</para>
-
- <itemizedlist>
- <listitem>
- <para>проверьте, что вы будете выполнять коммит в правильную ветвь,
- посредством команды <command>cvs status</command>.</para>
- </listitem>
-
- <listitem>
- <para>проверьте ваши изменения при помощи команды
- <command>cvs diff</command></para>
- </listitem>
- </itemizedlist>
-
- <para>Кроме того, ВСЕГДА указывайте, в какие именно файлы вы вносите
- изменения, так чтобы не включить в этот список лишних файлов.
- Команда <command>cvs commit</command> без аргументов включит
- все измененные файлы в текущем каталоге и всех подкаталогах.
- </para>
- </listitem>
- </orderedlist>
-
- <para>Еще несколько полезных советов:</para>
-
- <orderedlist>
- <listitem>
-
- <para>Часто используемые опции можно занести в файл
- <filename>~/.cvsrc</filename>, например:</para>
-
- <programlisting>cvs -z3
-diff -Nu
-update -Pd
-checkout -P</programlisting>
-
- <para>Для данного случая:</para>
-
- <itemizedlist>
- <listitem>
- <para>всегда использовать компрессию уровня 3 для связи с удаленным
- сервером CVS. В случае медленного соединения это избавит вас от
- лишней головной боли.</para>
- </listitem>
-
- <listitem>
- <para>всегда использовать опции <option>-N</option> (показывать
- добавленные или удаленные файлы) и <option>-u</option>
- (унифицированный формат) для &man.diff.1;.</para>
- </listitem>
-
- <listitem>
- <para>всегда использовать опции <option>-P</option> (удалять пустые
- каталоги) и <option>-d</option> (добавлять новые каталоги)
- при обновлении.</para>
- </listitem>
-
- <listitem>
- <para>всегда использовать опцию <option>-P</option> (удалять пустые
- каталоги) при извлечении файлов и модулей.</para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para>Пользуйтесь скриптом Эйвинда Эклунда (Eivind Eklund)
- <command>cdiff</command> для просмотра изменению унифицированного
- формата. Он является оберткой для &man.less.1;, добавляющей
- цветовые коды ANSI для выделения заголовком, добавленных и удаленных
- строк; прочие строки не модифицируются. Помимо этого, скрипт
- корректно разворачивает табуляции (которые часто выглядят неправильно
- в изменениях из-за дополнительного символа в начале строки).</para>
-
- <para><package>textproc/cdiff</package></para>
-
- <para>Просто используйте его вместо &man.more.1; или &man.less.1;:</para>
-
- <screen>&prompt.user; <userinput>cvs diff -Nu shazam | cdiff</userinput></screen>
-
- <para>Помимо этого, некоторые текстовые редакторы, такие как &man.vim.1;
- (<package>editors/vim</package>) поддерживают
- цветовую синтаксическую разметку многих типов файлов, в том числе
- файлов изменений и журналов CVS/RCS.</para>
-
- <screen>&prompt.user; <userinput>echo "syn on" &gt;&gt; ~/.vimrc </userinput>
-&prompt.user; <userinput>cvs diff -Nu shazam | vim -</userinput>
-&prompt.user; <userinput>cvs log shazam | vim -</userinput> </screen>
- </listitem>
-
- <listitem>
- <para>CVS&nbsp;&mdash; старая, загадочная и порой слабо предсказуемая
- в своем поведении программа. <!-- XXX
- exhibits non-deterministic behavior which some claim as proof
- that it is actually merely the Newtonian manifestation of a
- sentient transdimensional entity. -->
- Ни один человек не способен удержать в голове все тонкости ее работы,
- так что не бойтесь спрашивать совета у Искусственного Интеллекта
- (а именно &a.cvsadm;).</para>
- </listitem>
-
- <listitem>
- <para>Не оставляйте компьютер в процессе работы команды
- <command>cvs commit</command> (в редакторе при написании журнального
- сообщения) слишком надолго (более чем на 2&ndash;3 минуты). Эта
- команда блокирует каталог репозитория, в котором она запущена, и не
- позволяет другим разработчикам изменять его содержимое. Если вам
- нужно написать длинное журнальное сообщение, подготовьте его заранее
- и вставьте в редакторе во время выполнения команды
- <command>cvs commit</command>, либо запишите его в файл и используйте
- опцию CVS <option>-F</option>:</para>
-
- <screen>&prompt.user; <userinput>vi logmsg</userinput>
-&prompt.user; <userinput>cvs ci -F logmsg shazam</userinput></screen>
-
- <para>Это самый быстрый способ передать журнальное сообщение CVS;
- однако, вы должны быть внимательны при редактировании файла
- <filename>logmsg</filename>, поскольку при выполнении коммита
- у вас не будет шансов его поправить.</para>
- </listitem>
-
- <listitem>
- <para>Вы можете существенно ускорить скорость работы CVS с центральным
- репозиторием, используя постоянное соединение с репозиторием.
- Для этого добавьте в файл <filename>~/.ssh/config</filename> строки
- </para>
-
- <programlisting>Host ncvs.FreeBSD.org
- ControlPath /home/<replaceable>user</replaceable>/.ssh/cvs.cpath
-Host dcvs.FreeBSD.org
- ControlPath /home/<replaceable>user</replaceable>/.ssh/cvs.cpath
-Host projcvs.FreeBSD.org
- ControlPath /home/<replaceable>user</replaceable>/.ssh/cvs.cpath
-Host pcvs.FreeBSD.org
- ControlPath /home/<replaceable>user</replaceable>/.ssh/cvs.cpath</programlisting>
-
- <para>Затем откройте постоянное соединение с машиной repoman:</para>
-
- <screen>&prompt.user; <userinput>ssh -fNM ncvs.FreeBSD.org</userinput></screen>
-
- <para>Теперь команды CVS должны выполняться быстрее, поскольку
- используют существующее соединение с репозиторием. Учтите, что
- регистр в именах хостов имеет значение.</para>
-
- </listitem>
-
- </orderedlist>
-
- </sect1>
-
- <sect1 xml:id="conventions">
- <title>Соглашения и традиции</title>
-
- <para>Став коммиттером, вы должны прежде всего произвести некоторые
- стандартные действия.</para>
-
- <itemizedlist>
- <listitem>
- <para>Добавьте себя в список <quote>SGML сущностей</quote> авторов
- в файл
- <filename>doc/en_US.ISO8859-1/share/xml/authors.ent</filename>;
- это изменение должно быть сделано прежде прочих, поскольку в
- противном случае следующий ваш коммит неизбежно разрушит
- процесс построения дерева doc/.</para>
-
- <para>Это довольно простая задача, но при этом она является неплохим
- первым тестом ваших навыков работы с CVS.</para>
- </listitem>
-
- <listitem>
- <para>Также добавьте свою <quote>SGML сущность</quote> в
- <filename>www/en/developers.xml</filename>.</para>
- </listitem>
-
- <listitem>
- <para>Добавьте себя в раздел <quote>Разработчики</quote> статьи
- <link xlink:href="&url.articles.contributors;/index.html">Участники проекта
- FreeBSD</link>
- (<filename>doc/en_US.ISO8859-1/articles/contributors/contrib.committers.xml</filename>)
- и удалите свою запись из раздела <quote>Прочие участники</quote>
- (<filename>doc/en_US.ISO8859-1/articles/contributors/contrib.additional.xml</filename>).</para>
- </listitem>
-
- <listitem>
- <para>Добавьте новость о новом коммиттере в файл
- <filename>www/share/xml/news.xml</filename>. Используйте существующие
- записи вида <quote>Новый коммиттер</quote> как шаблон.</para>
- </listitem>
-
- <listitem>
- <para>Вам нужно добавить ваш PGP или GnuPG ключ в каталог
- <filename>doc/share/pgpkeys</filename> (а если у вас нет ключа,
- вам нужно его создать). Не забудьте изменить и произвести коммит
- в файл <filename>doc/share/pgpkeys/pgpkeys.ent</filename>.</para>
-
- <para>&a.des.email; написал скрипт для упрощения этого процесса.
- Дополнительную информацию можно прочесть в файле <link xlink:href="http://cvsweb.FreeBSD.org/doc/share/pgpkeys/README">README</link>.</para>
-
- <note>
- <para>Очень важно, чтобы в Руководстве пользователя был записан
- актуальный PGP/GnuPG ключ, поскольку он может потребоваться
- для идентификации коммиттера (например, его будет проверять группа
- &a.admins; для аварийного восстановления учетной записи). Полный
- набор актуальных ключей пользователей домена <systemitem class="fqdomainname">FreeBSD.org</systemitem> можно найти по адресу <link xlink:href="&url.base;/doc/pgpkeyring.txt">http://www.FreeBSD.org/doc/pgpkeyring.txt</link>.</para>
- </note>
- </listitem>
-
- <listitem>
- <para>Добавьте себя в файл <filename>src/share/misc/committers-<replaceable>репозиторий</replaceable>.dot</filename>,
- где репозиторием будет являться либо doc, либо ports, либо src в зависимости от полученных вами коммиттерских
- привилегий.</para>
- </listitem>
-
- <listitem>
- <para>Некоторые коммиттеры добавляют информацию о своем местоположении
- в файл
- <filename>ports/astro/xearth/files/freebsd.committers.markers</filename>.</para>
- </listitem>
-
- <listitem>
- <para>Некоторые добавляют данные о дне своего рождения в файл
- <filename>src/usr.bin/calendar/calendars/calendar.freebsd</filename>.</para>
- </listitem>
-
- <listitem>
- <para>Представьтесь другим коммиттерам, иначе никто не будет знать,
- кто вы и чем занимаетесь. От вас не требуется писать подробное
- резюме или биографию: будут достаточны один-два абзаца о себе и
- областях FreeBSD, в которых вы планируете работать. Пошлите это
- письмо в &a.developers;&nbsp;&mdash; и все!</para>
- </listitem>
-
- <listitem>
- <para>Зайдите на машину <systemitem>hub.FreeBSD.org</systemitem> и создайте
- файл <filename>/var/forward/<replaceable>user</replaceable></filename>
- (замените <replaceable>user</replaceable> на ваше имя пользователя).
- Этот файл должен содержать адрес электронной почты, на который
- будет переправляться вся почта на адрес
- <replaceable>yourusername</replaceable>@FreeBSD.org, в том числе
- сообщения о коммитах и другая почта на адреса &a.committers; и
- &a.developers;. Слишком большие почтовые ящики на машине
- <systemitem>hub</systemitem> могут быть <quote>нечаянно</quote> удалены
- или обрезаны без предупреждения, так что, чтобы не потерять почту,
- регулярно читайте ее либо перенаправьте куда-нибудь еще.</para>
-
- <para>Из-за ощутимой загрузки, возникающей на серверах, обрабатывающих
- списки рассылки, из-за большого количества незапрошенной почты
- (спама), сервер, принимающий почту для домена FreeBSD.org,
- производит некоторые основные проверки и на основании их отвергает
- некоторые письма. На настоящий момент единственным проверяемым
- параметром является корректность информации DNS для хоста,
- доставляющего почту, но в будущем список может вырасти. Эти
- проверки временами обвиняют в том, что они отвергают правильную
- почту. Если вы хотите отключить проверки для своего адреса,
- создайте файл <filename>~/.spam_lover</filename> в своей
- домашней директории на машине
- <systemitem class="fqdomainname">freefall.FreeBSD.org</systemitem>.</para>
- </listitem>
-
- <listitem>
- <para>Если вы были подписаны на &a.cvsall;, вам, скорее всего,
- следует отписаться от него, чтобы не получать дубликатов
- каждого сообщения о коммитах.</para>
- </listitem>
- </itemizedlist>
-
- <para>Все новые коммиттеры первоначально работают под руководством
- ментора. Ваш ментор отвечает за обучение вас правилам и соглашениям,
- принятым в проекте, и помогает вам сделать первые шаги в среде
- коммиттеров. Он(а) также персонально отвечает за ваши действия
- в этот начальный период. До тех пор, пока ваш ментор не решит
- (и не анонсирует это посредством форсированного коммита файла
- <filename>access</filename>), что вы достаточно освоились и готовы
- работать самостоятельно, перед любым коммитом вы должны получить
- одобрение (approval) ментора и указать это в журнальном сообщении
- коммита строкой <literal>Approved by:</literal>.</para>
-
- <para>Все коммиты в дерево <filename>src</filename> сначала должны
- производиться в ветвь &os.current; и лишь затем интегрироваться
- в &os.stable;. Никакие серьезные изменения, новые возможности
- или рискованные модификации не должны производиться напрямую
- в ветви &os.stable;.</para>
- </sect1>
-
- <sect1 xml:id="pref-license">
- <title>Предпочтительная лицензия для новых файлов</title>
-
- <para>В настоящее время Проект &os; считает предпочтительной формой
- лицензии на исходные тексты следующий текст:</para>
-
-<programlisting>/*-
-* Copyright (c) [year] [your name]
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions
-* are met:
-* 1. Redistributions of source code must retain the above copyright
-* notice, this list of conditions and the following disclaimer.
-* 2. Redistributions in binary form must reproduce the above copyright
-* notice, this list of conditions and the following disclaimer in the
-* documentation and/or other materials provided with the distribution.
-*
-* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-* SUCH DAMAGE.
-*
-* [id for your version control system, if any]
-*/</programlisting>
-
-<!-- XXX дать перевод *вместе* с оригинальным английским текстом -->
-
- <para>Проект &os; крайне не рекомендует так называемый <quote>третий
- пункт</quote>, или <quote>пункт о рекламе</quote> в лицензии на новый
- исходный код. В связи с большим количеством участников проекта &os;,
- выполнение этого пункта большинством коммерческих производителей все
- более затруднительно. Если ваш код в дереве исходников содержит
- <quote>пункт о рекламе</quote>, рассмотрите возможность его удаления.
- На самом деле, рассмотрите возможность перехода на приведенную
- лицензию.</para>
-
- <para>Проект &os; не рекомендует использование полностью новых лицензий
- или вариаций стандартных лицензий. Новые лицензии перед использованием
- в репозитории проекта требуют утверждения группой
- <email>core@FreeBSD.org</email>. Большое число различных лицензий
- затрудняет использование кода, в основном из-за ненамеренных
- неверных выводов из плохо сформулированных формулировок лицензии.</para>
-
- <para>Политика проекта требует, чтобы код под НЕ-BSD лицензиями располaгался
- только в определённых местах репозитория, а в некоторых случаях компиляция
- должна быть условной по умолчанию или вообще отключена. К примеру, ядро
- GENERIC должно состоять только из лицензий идентичных или в значительной степени
- схожих с BSD лицензией. Программное обеспечение под лицензиями GPL, APSL, CDDL
- и др. не должно включаться в состав GENERIC.</para>
-
- <para>Разработчикам напоминается, что в open source правильное понимание "open"
- также важно, как правильное понимание "source", ибо некорректное использование
- интеллектуальной собственности имеет серьезные последствия. Какие-либо вопросы
- или беспокойства на этот счёт должны быть немедленно вынесены на обсуждение
- главной команде разработчиков (core team).</para>
-
- </sect1>
-
- <sect1 xml:id="developer.relations">
- <title>Взаимодействие между разработчиками</title>
-
- <para>Если вы работаете над собственным исходным кодом, либо в области,
- в которой вы уже определены как ответственная персона, вам, скорее всего,
- не потребуется согласовывать коммит с кем-либо еще из разработчиков.
- Те же правила действуют, если вы нашли ошибку в той части системы,
- которой явно давно никто не занимается (к нашему стыду, существует
- несколько таких областей). Если же вы собираетесь модифицировать
- что-либо активно поддерживаемое (по-хорошему, узнать это можно только
- исследуя архивы списка рассылки <literal>cvs-committers</literal>),
- стоит послать предполагаемый патч ответственному за этот участок кода,
- как вы бы поступали, пока не были коммиттером. В случае портов нужно
- обращаться по адресу, указанному в строке <varname>MAINTAINER</varname>
- в файле <filename>Makefile</filename>. Для других частей репозитория,
- в случае если вам не очевидно, кто ведет данный участок кода, может
- помочь исследование вывода команды <command>cvs log</command>.
- &a.fenner.email; написал отличный скрипт для определения разработчиков,
- наиболее активно производивших коммиты, выводящий для каждого из
- указанных файлов имя пользователя вместе с количеством произведенных
- им коммитов в данный файл. Скрипт можно найти на машине
- <systemitem>freefall</systemitem> в файле <filename>~fenner/bin/whodid</filename>.
- Если найденная вами персона не отвечает на ваши вопросы или иным образом
- демонстрирует отсутствие интереса к проблеме, смело производите коммит
- самостоятельно.</para>
-
- <para>Если вы по каким-либо причинам не уверены в своих изменениях,
- предложите их для оценки в списке рассылки <literal>-hackers</literal>
- перед коммитом. Будет лучше, если вас обругают там и тогда, чем
- когда предлагаемое изменение уже будет частью репозитория. Если
- случилось так, что ваш коммит встретил сопротивление, возможно,
- стоит его откатить (back out) до тех пор, пока не будет достигнут
- консенсус. Помните&nbsp;&mdash; с помощью CVS всегда можно вернуться
- к предыдущему состоянию.</para>
-
- <para>Не принимайте в штыки мнения других разработчиков, с которыми вы не
- согласны. Если они предлагают иное решение проблемы чем вы, или даже
- иначе воспринимают проблему, это не значит, что они глупы, имеют
- сомнительное происхождение, хотят разрушить вашу работу, очернить
- ваше доброе имя, или развалить проект FreeBSD. Просто они смотрят на
- мир под иным углом. Различные взгляды&nbsp;&mdash; благо.</para>
-
- <para>Будьте честны в спорах. Оценивайте свою позицию по заслугам, честно
- относитесь к ее слабым сторонам и будьте готовы принять другие точки
- зрения и пути решения. Будьте открыты.</para>
-
- <para>Будьте терпимы, если вас поправляют. Все мы совершаем ошибки.
- Если вы ошиблись, извинитесь. Не обвиняйте ни себя, ни, тем более,
- других в ошибке. Не теряйте времени на смущение или упреки, просто
- исправьте ошибку и двигайтесь дальше.</para>
-
- <para>Спрашивайте и просите о помощи. Предлагайте ваши изменения для
- рассмотрения коллегам и рассматривайте их изменения. Одним из
- преимуществ программного обеспечения с открытыми исходными текстами
- является открытость разработки. Если никто не будет исследовать
- чужой код, это преимущество исчезнет.</para>
-
- </sect1>
-
- <sect1 xml:id="gnats">
- <title>GNATS</title>
-
- <para>Для отслеживания ошибок и запросов на изменения проект FreeBSD
- использует <application>GNATS</application>. Если вы исправили ошибку
- или внесли изменения, описанные в одном из сообщений об ошибках (PR),
- не забудьте закрыть это сообщение, используя команду
- <command>edit-pr <replaceable>pr-number</replaceable></command> на машине
- <systemitem>freefall</systemitem>. Хорошо будет, если вы потратите немного
- времени на поиск и закрытие других PR по этой теме. Вы и сами можете
- пользоваться &man.send-pr.1; для предложения изменений, которые, по
- вашему мнению, могут потребовать более подробного обсуждения с
- коллегами.</para>
-
- <para>Более подробно о <application>GNATS</application> можно прочитать
- по адресам:</para>
-
- <itemizedlist>
- <listitem>
- <para><uri xlink:href="http://www.cs.utah.edu/csinfo/texinfo/gnats/gnats.html">http://www.cs.utah.edu/csinfo/texinfo/gnats/gnats.html</uri></para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="&url.base;/support.html">http://www.FreeBSD.org/support.html</link></para>
- </listitem>
-
- <listitem>
- <para>&man.send-pr.1;</para>
- </listitem>
- </itemizedlist>
-
- <para>Вы можете пользоваться локальной копией GNATS, поддерживая ее
- синхронность при помощи CVSup. При этом вы можете использовать
- команды GNATS локально, а также пользоваться другими интерфейсами,
- такими как <command>tkgnats</command>, что позволит вам работать с
- базой сообщений об ошибках без соединения с Интернет.</para>
-
- <procedure>
- <title>Использование локальной копии GNATS</title>
-
- <step>
- <para>Если вы еще не поддерживаете зеркало дерева GNATS, добавьте в ваш
- <filename>supfile</filename> строку</para>
-
- <programlisting>gnats release=current prefix=/usr</programlisting>
-
- <para>Учтите, что эта строка должна предшествовать любым строкам,
- содержащим параметр <quote>tag=</quote>, поскольку дерево GNATS не
- находится под управлением CVS и не имеет символьных меток.</para>
-
- <para>После запуска cvsup в каталоге <filename>/usr/gnats</filename>
- будет создана копия дерева GNATS FreeBSD. Вы можете использовать
- файл <emphasis>refuse</emphasis> для копирования отдельных категорий.
- Например, если вас интересуют только сообщения категории
- <literal>docs</literal>, добавьте в файл
- <filename>/usr/local/etc/cvsup/sup/refuse</filename><footnote>
- <para>Точный путь к файлу зависит от установок <literal>*default
- base</literal> в вашем файле
- <filename>supfile</filename>.</para>
- </footnote> строку</para>
-
- <programlisting>gnats/[a-ce-z]*</programlisting>
-
- <para>Прочие примеры в этом разделе подразумевают, что вы
- синхронизируете только категорию <literal>docs</literal>.</para>
- </step>
-
- <step>
- <para>Установите порт GNATS из
- <filename>ports/databases/gnats</filename>. После установки вы
- обнаружите различные служебные каталоги в дереве
- <filename>$PREFIX/share/gnats</filename>.</para>
- </step>
-
- <step>
- <para>Создайте символьные ссылки на синхронизированные каталоги GNATS
- в служебный каталог GNATS:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/local/share/gnats/gnats-db</userinput>
-&prompt.root; <userinput>ln -s /usr/gnats/docs</userinput></screen>
-
- <para>Проделайте эту операцию для всех синхронизируемых категорий.</para>
- </step>
-
- <step>
- <para>Обновите служебный файл GNATS <filename>categories</filename>,
- расположенный в каталоге
- <filename>$PREFIX/share/gnats/gnats-db/gnats-adm</filename>:</para>
-
- <programlisting># This category is mandatory
-pending:Category for faulty PRs:gnats-admin:
-#
-# FreeBSD categories
-#
-docs:Documentation Bug:freebsd-doc:</programlisting>
- </step>
-
- <step>
- <para>Запустите <filename>$PREFIX/libexec/gnats/gen-index</filename>
- для создания индекса. Вывод этой команды должен быть перенаправлен
- в файл
- <filename>$PREFIX/share/gnats/gnats-db/gnats-adm/index</filename>.
- Эту операцию можно выполнять периодически при помощи &man.cron.8;
- или запускать &man.cvsup.1; из скрипта, который затем сгенерирует
- новый индекс:</para>
-
- <screen>&prompt.root; <userinput>/usr/local/libexec/gnats/gen-index \
- &gt; /usr/local/share/gnats/gnats-db/gnats-adm/index</userinput></screen>
- </step>
-
- <step>
- <para>Протестируйте созданную конфигурацию запросом к базе данных
- GNATS. Следующая команда выведет список открытых сообщений об
- ошибках в категории <literal>docs</literal>:</para>
-
- <screen>&prompt.root; <userinput>query-pr -c docs -s open</userinput></screen>
-
- <para>Другие интерфейсы, например, порт
- <package>databases/tkgnats</package> также должны
- работать.</para>
- </step>
-
- <step>
- <para>Выберите PR и закройте его.</para>
- </step>
- </procedure>
-
- <note>
- <para>Описанная процедура позволяет вам выбирать и просматривать
- сообщения об ошибках локально. Для редактирования или закрытия вам
- потребуется зайти на машину <systemitem>freefall</systemitem>.</para>
- </note>
- </sect1>
-
- <sect1 xml:id="people">
- <title>Кто есть кто</title>
-
- <para>Помимо мастеров репозитория, существует еще несколько участников и
- групп проекта FreeBSD, с которыми вам как коммиттеру может потребоваться
- общаться. Краткий и ни в коем случае не полный список приводится ниже.
- </para>
-
- <variablelist>
-
- <varlistentry>
- <term>&a.jhb.email;</term>
-
- <listitem>
- <para>Джон возглавляет проект SMPng и отвечает за архитектуру,
- дизайн и реализацию перехода на многонитевое ядро. Джон также
- является редактором статьи "Архитектура SMPng". Если вы работаете
- с тонкими блокировками многопроцессорного ядра, координируйте свою
- работу с Джоном.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.doceng;</term>
-
- <listitem>
- <para>doceng&nbsp;&mdash; группа, отвечающая за инфраструктуру
- построения документации, прием новых коммиттеров документации и
- актуальность информации относительно CVS на веб-сайте и FTP-сайте
- FreeBSD. Эта группа не разбирает конфликты. Большая часть
- обсуждений, связанных с документацией, происходит в &a.doc;.
- Дополнительную информацию о деятельности группы можно найти в ее
- <link xlink:href="http://www.FreeBSD.org/internal/doceng.html">собственном
- документе</link>.
- Коммиттеры, заинтересованные в обновлении документации, должны
- ознакомиться с <link xlink:href="&url.books.fdp-primer;/index.html">Учебником по Проекту
- Документирования FreeBSD для новых участников</link>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.ru.email;</term>
-
- <listitem>
- <para>Руслан великолепно знает тонкости &man.mdoc.7;. Если вы
- пишете справочную страницу и нуждаетесь в совете по ее структуре
- или разметке, обратитесь к Руслану.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.bde.email;</term>
-
- <listitem>
- <para>Брюс занимается общим стилем кода проекта. Если ваш коммит
- мог бы быть лучше оформлен, Брюс укажет вам на это. Радуйтесь,
- что такой человек вообще есть. Брюс также является знатоком
- различных стандартов, применимых к FreeBSD.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.murray.email;</term>
- <term>&a.dwhite.email;</term>
- <term>&a.rwatson.email;</term>
- <term>&a.kensmith.email;</term>
- <term>&a.hrs.email;</term>
- <term>&a.mux.email;</term>
- <term>&a.bmah.email;</term>
-
- <listitem>
- <para>Таков состав группы &a.re;. Эта группа отвечает за сроки
- и процесс выпуска релизов. В период заморозки кода, выпускающие
- инженеры принимают окончательные решения по поводу всех изменений
- системы в ветви, готовящейся к очередному релизу. Если вы хотите
- интегрировать какие-либо изменения из &os.current; в
- &os.stable; (какими бы они ни были в данный конкретный момент),
- вам предстоит общаться с этой группой.</para>
-
- <para>Хироки, кроме того, ведет раздел документации к релизам
- (<filename>src/release/doc/*</filename>). Если ваши изменения
- стоят того, чтобы быть упомянутыми в информации о релизе,
- сообщите об этом Хироки. Еще лучше, если вы пошлете патч
- с предлагаемыми изменениями к документу.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.cperciva.email;</term>
-
- <listitem>
- <para>Колин&nbsp;&mdash;
- <link xlink:href="&url.base;/security/">FreeBSD Security
- Officer</link>
- и отвечает за деятельность группы &a.security-officer;.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.wollman.email;</term>
-
- <listitem>
- <para>Если вам нужен совет по поводу темных мест сетевой части ядра,
- или вы не уверены в планируемом изменении сетевой подсистемы,
- мудрым решением будет обратиться к Гарретту. Помимо того, он
- хорошо разбирается в различных стандартах, применимых к
- FreeBSD.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.committers;</term>
-
- <listitem>
- <para>cvs-committers&nbsp;&mdash; адрес, используемый CVS для посылки
- сообщений о коммитах. Вы <emphasis>никогда</emphasis> не должны
- посылать письма напрямую на этот адрес; следует лишь отвечать на
- него, когда вам нужно послать короткие комментарии, непосредственно
- относящиеся к коммиту.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.developers;</term>
-
- <listitem>
- <para>Все коммиттеры подписаны на список рассылки -developers.
- Этот список создан для обсуждения вопросов, касающихся
- <quote>сообщества</quote> коммиттеров FreeBSD, таких как выборы
- Правления, анонсы и т.п.</para>
-
- <para>&a.developers; служит для только для использования FreeBSD
- коммиттерами. Коммиттеры должны иметь возможность публично
- обсуждать вещи, которые должны быть разрешены, перед тем, как
- они будут публично объявлены. Данные дискуссии
- не предназначены для широкой публики и могут нанести вред
- FreeBSD.</para>
-
- <para>Все FreeBSD коммиттеры должны соблюдать авторские права
- оригинального автора или авторов писем из этого списка рассылки. Не
- публикуйте и не пересылайте сообщения из &a.developers; вне
- подписчиков данного списка рассылки без согласия всех авторов.</para>
-
- <para>Нарушители авторских прав будут удалены из списка
- подписчиков &a.developers;, и будут приостановлены их коммиттерские
- привилегии. Повторяющиеся или вопиющие нарушения приведут к
- полному лишению коммиттерских прав.</para>
-
- <para>Этот список <emphasis>не</emphasis>
- предназначен для обсуждения кода, и <emphasis>не
- является</emphasis> заменой списков &a.arch; или &a.audit;.
- На самом деле, такое его использование вредит проекту, поскольку
- открытые обсуждения вопросов, касающихся всего сообщества
- пользователей FreeBSD в закрытом списке недопустимы. И, наконец:
- <emphasis>никогда, действительно никогда не пишите в &a.developers;
- с копией в другой список рассылки FreeBSD</emphasis>. Никогда не
- пишите в какой-либо другой список рассылки с копией в
- &a.developers;. Подобные действия серьезно подрывают смысл
- существования данного списка рассылки.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect1>
-
- <sect1 xml:id="ssh.guide">
- <title>SSH: быстрый старт</title>
-
- <procedure>
- <step>
- <para>Если вы используете FreeBSD версии 4.0 или более позднюю,
- OpenSSH включен в базовую поставку системы. Для более ранних версий
- обновите и установите OpenSSH из порта
- <package>security/openssh</package>.</para>
- </step>
-
- <step>
- <para>Для тех, кто не хочет набирать свой пароль каждый раз при
- использовании &man.ssh.1; и использует для авторизации ключи
- RSA или DSA, удобной будет утилита &man.ssh-agent.1;. Если вы
- собираетесь использовать ее, убедитесь, что она запущена раньше
- прочих приложений. Пользователи X Window, например, обычно
- запускают ее из файлов <filename>.xsession</filename> или
- <filename>.xinitrc</filename>. Подробнее смотрите в справочной
- странице &man.ssh-agent.1;.</para>
- </step>
-
- <step>
- <para>Создайте пару ключей при помощи &man.ssh-keygen.1;. Ключи
- появятся в каталоге
- <filename>$HOME/.ssh/</filename>.</para>
- </step>
-
- <step>
- <para>Пошлите ваш публичный ключ (содержимое файла
- <filename>$HOME/.ssh/id_dsa.pub</filename>
- или <filename>$HOME/.ssh/id_rsa.pub</filename>)
- вашему будущему ментору, чтобы он мог быть помещен в файл
- <filename><replaceable>yourlogin</replaceable></filename> в каталоге
- <filename>/c/ssh-keys/</filename> на машине
- <systemitem>freefall</systemitem>.
- </para>
- </step>
- </procedure>
-
- <para>Теперь вы можете пользоваться утилитой &man.ssh-add.1; для
- авторизации один раз за сессию. Утилита запросит кодовую фразу
- для вашего секретного ключа и затем сохранит ее в агенте авторизации
- (&man.ssh-agent.1;). Если вы хотите удалить сохраненный секретный
- ключ из агента, используйте команду <command>ssh-add -d</command>.</para>
-
- <para>Для теста используйте команду типа <command>ssh
- freefall.FreeBSD.org ls /usr</command>.</para>
-
- <para>За дополнительной информацией обращайтесь к
- <package>security/openssh</package>, &man.ssh.1;,
- &man.ssh-add.1;, &man.ssh-agent.1;, &man.ssh-keygen.1; и
- &man.scp.1;.</para>
- </sect1>
-
- <sect1 xml:id="rules">
- <title>Большой Список Правил Коммиттера FreeBSD</title>
-
- <orderedlist>
- <listitem>
- <para>Уважайте других коммиттеров.</para>
- </listitem>
-
- <listitem>
- <para>Уважайте других участников проекта.</para>
- </listitem>
-
- <listitem>
- <para>Обсудите любые значимые изменения
- <emphasis>до</emphasis> коммита.</para>
- </listitem>
-
- <listitem>
- <para>Уважайте существующих мейнтейнеров (указанных в поле
- <varname>MAINTAINER</varname> файлов <filename>Makefile</filename>
- или в файле <filename>MAINTAINER</filename> в корневом каталоге
- репозитория).</para>
- </listitem>
-
- <listitem>
- <para>Любое спорное изменение необходимо откатить (back out) в ожидании
- решения, если того требует мейнтейнер. Вопросы безопасности могут
- перекрывать мнение мейнтейнера, если так решит Security Officer.
- </para>
- </listitem>
-
- <listitem>
- <para>Изменения вносятся в ветвь &os.current; до &os.stable;, за
- исключением случаев, прямо разрешенных выпускающими инженерами или
- неприменимости изменения к &os.current;. Любое нетривиальное и
- не срочное изменение должно быть выдержано в &os.current; в течение
- по крайней мере 3 дней перед переносом, чтобы его могли адекватно
- протестировать. Выпускающие инженеры обладают той же властью в
- ветви &os.stable;, что и мейнтейнеры (см. правило 5).</para>
- </listitem>
-
- <listitem>
- <para>Не пререкайтесь с другими коммиттерами публично: это дурно
- выглядит. Если вам необходимо с чем-либо <quote>категорически не
- согласиться</quote>, делайте это личной почтой.</para>
- </listitem>
-
- <listitem>
- <para>Соблюдайте все периоды заморозки кода (core freeze), а также
- своевременно читайте списки рассылки <literal>committers</literal> и
- <literal>developers</literal>, чтобы быть в курсе расписания таких
- периодов.</para>
- </listitem>
-
- <listitem>
- <para>Если вы сомневаетесь в какой-либо процедуре, сначала
- спросите!</para>
- </listitem>
-
- <listitem>
- <para>Тестируйте свои изменения перед коммитом.</para>
- </listitem>
-
- <listitem>
- <para>Не производите коммит в деревья
- <filename>src/contrib</filename>,
- <filename>src/crypto</filename> и
- <filename>src/sys/contrib</filename> без
- <emphasis>прямого</emphasis> разрешения (approval) соответствующего
- мейнтейнера(ов).</para>
- </listitem>
- </orderedlist>
-
- <para>Невыполнение этих правил может служить основанием для приостановки
- или, в случае рецидивов, полного лишения коммиттерских прав. Члены
- Правления (Core) имеют право временно приостановить права коммиттера
- до момента, когда Правление в целом сможет решить вопрос.
- В <quote>аварийном</quote> случае (коммиттер разрушает репозиторий)
- такие права имеют также ответственные за репозиторий. Для приостановки
- прав коммиттера более чем на неделю или для полного лишения таковых прав
- требуется квалифицированное большинство (2/3) голосов Правления. Это
- правило существует не потому, что Правление состоит из злобных
- диктаторов, разбрасывающихся коммиттерами словно банками из-под колы,
- но ради предоставления проекту аварийного выключателя. Если кто-то
- выходит из-под контроля, важно иметь возможность справиться с ситуацией
- немедленно, а не быть втянутыми в дебаты. В любом случае, коммиттер,
- чьи права приостановлены, имеет право на <quote>слушания
- Правления</quote>, на которых определяется срок приостановки или
- лишения коммиттерских прав. Коммиттер, права которого приостановлены
- может запросить пересмотр своего вопроса через 30 дней и каждые
- последующие 30 дней (если общий период приостановки превышает 30 дней).
- Коммиттер, полностью лишенный прав, может запросить пересмотр по
- истечении 6 месяцев. Правила пересмотра являются <emphasis>полностью
- неформальными</emphasis> и во всех случаях Правление имеет право
- отвергнуть запрос на пересмотр, если считает свое первоначальное решение
- верным.</para>
-
- <para>Во всех прочих аспектах деятельности проекта, Правление является
- подмножеством коммиттеров и ограничено <emphasis>теми же
- правилами</emphasis>. Само по себе членство в Правлении не дает права
- преступать описанные правила. Правление обладает <quote>особой
- силой</quote> только в случае деятельность как целое, а не на
- индивидуальной основе. Члены Правления&nbsp;&mdash; в первую очередь
- коммиттеры.</para>
-
- <sect2>
- <title>Подробности</title>
-
- <orderedlist>
- <listitem xml:id="respect">
- <para>Уважайте других коммиттеров.</para>
-
- <para>Вы должны относиться к другим коммиттерам как к коллегам по
- разработке (кем они и являются). Несмотря на возникающие временами
- попытки утверждать обратное, никто не стал коммиттером по своей или
- чьей-либо еще глупости, и мало что обижает сильнее, чем подобные
- обвинения от коллег. Вне зависимости от того, всегда ли мы
- чувствуем уважение друг к другу или нет (у каждого бывают не лучшие
- дни), мы всегда должны <emphasis>выказывать</emphasis> уважение к
- другим коммиттерам, как в публичных форумах, так и в личной почте.
- </para>
-
- <para>Способность совместной работы в течение длительного
- времени&nbsp;&mdash; одно из главных достижений проекта, много
- более важное, чем любой набор изменений в коде, и никакие аргументы
- относительно кода не стоят потерь в возможности гармонично работать
- вместе.</para>
-
- <para>Чтобы не противоречить этому правилу, никогда не посылайте
- писем, когда вы злы или каким-либо иным образом можете
- спровоцировать других на конфронтацию. Сначала успокойтесь,
- затем подумайте о том, как наиболее эффективно убедить оппонента(ов)
- в правильности ваших аргументов; не подливайте масла в огонь ради
- краткого мига злорадства, если ценой будет долгая ругань.
- Это не просто крайне <quote>энергетически неэффективно</quote>:
- повторяющиеся прецеденты публичной агрессии, влияющие на нашу
- способность работать вместе, будут всерьез рассмотрены лидерами
- проекта, и могут привести к приостановке или потере прав
- коммиттера. Во внимание будут приниматься как публичные
- высказывания, так и личная переписка; это не означает, что Правление
- будет требовать раскрытия тайны переписки, однако, все
- предоставленные затронутыми коммиттерами материалы будут
- рассмотрены.</para>
-
- <para>Описанные процедуры никого не могут порадовать даже в малом,
- однако <quote>целостность проекта превыше всего</quote>. Никакой
- объем кода не стоит потери целостности.</para>
- </listitem>
-
- <listitem>
- <para>Уважайте других участников проекта.</para>
-
- <para>Вы не всегда были коммиттером. В свое время вы были простым
- сторонним участником (contributor). Помните об этом все время.
- Помните, сколь важно было добиться внимания и помощи. Не забывайте,
- насколько ваше участие было важным для вас. Помните свои ощущения.
- Не препятствуйте другим участникам и не унижайте их. Относитесь к
- ним с уважением. Возможно, они наши будущие коммиттеры, и они
- настолько же важны для проекта, как и коммиттеры. Их вклад в
- проект настолько же ценен и важен, как и ваш. В конце концов,
- вам пришлось приложить немало усилий для проекта, чтобы стать
- коммиттером. Всегда помните об этом.</para>
-
- <para>Обдумайте первое правило <xref linkend="respect"/> и применяйте
- его и к другим участникам проекта.</para>
- </listitem>
-
- <listitem>
- <para>Обсудите любые значимые изменения
- <emphasis>до</emphasis> коммита.</para>
-
- <para>Репозиторий CVS&nbsp;&mdash; не место для анонса изменений или
- обсуждения их. Все изменения должны обсуждаться в списках
- рассылки, и лишь после достижения консенсуса вносится в
- репозиторий. Это не означает, что вы должны спрашивать разрешения
- на исправление очевидной синтаксической ошибки в коде или опечатки
- в странице справочника. Вы должны ощутить, когда предполагаемое
- изменение требует предварительного обсуждения и обратной связи.
- Как правило, никто не станет возражать против обширных изменений,
- если результат очевидно лучше предыдущего состояния, однако
- никто не любит, когда эти изменения <emphasis>неожиданны</emphasis>.
- Лучший способ убедиться, что вы на правильном пути&nbsp;&mdash;
- дать ваш код просмотреть кому-либо еще из коммиттеров.</para>
-
- <para>Если вы сомневаетесь, просите отзыва!</para>
- </listitem>
-
- <listitem>
- <para>Уважайте существующих мейнтейнеров.</para>
-
- <para>Многие части кода FreeBSD не являются чьей-либо
- <quote>собственностью</quote>: ситуация, когда некто подпрыгнет
- и завопит, если вы внесете изменения в <quote>его</quote> код,
- редка; однако, всегда стоит предварительно проверить. Одним из
- используемых соглашений было добавление строки MAINTAINER в файл
- <filename>Makefile</filename> пакета или части дерева, которая
- активно поддерживается одним или несколькими коммиттерами; см.
- также соответствующий раздел <link xlink:href="&url.books.developers-handbook;/policies.html">
- http://www.FreeBSD.org/doc/ru_RU.KOI8-R/books/developers-handbook/policies.html</link>.
- В случае, если какой-то участок системы
- имеет несколько мейнтейнеров, изменение его одним из них должно
- быть одобрено по крайней мере одним из других. В случаях, когда
- <quote>принадлежность</quote> кода неясна, вы можете взглянуть
- на историю коммитов, чтобы понять, кто наиболее активно либо в
- последнее время работал в этой области.</para>
-
- <para>Отдельные области FreeBSD попадают под контроль коммиттеров,
- занимающихся поддержкой целых категорий на пути эволюции FreeBSD,
- таких как локализация или сетевая подсистема. Для дополнительной
- информации смотрите <link xlink:href="&url.articles.contributors;/staff-who.html">
- http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/contributors/staff-who.html</link>
- </para>
- </listitem>
-
- <listitem>
- <para>Любое спорное изменение необходимо откатить в ожидании
- решения, если того требует мейнтейнер. Вопросы безопасности могут
- перекрывать мнение мейнтейнера, если так решит Security Officer.
- </para>
-
- <para>Это может быть нелегко, особенно в период конфликта (когда
- каждый участник уверен, что прав именно он). К счастью, CVS
- дает возможность, вместо того чтобы вести бушующую перебранку,
- просто откатить внесенные изменения, успокоиться всем участникам
- конфликта, а затем попробовать найти взаимоприемлемый путь.
- Если в конце концов окажется, что изменение стоит того, оно
- может быть легко применено вновь. В противном случае,
- пользователям не придется жить с неправильным состоянием дерева
- исходных текстов, пока стороны заняты выяснением отношений.
- Запросы на откаты возникают <emphasis>крайне</emphasis> редко, поскольку обсуждение обычно
- выявляет неверные или спорные моменты до коммита; однако, если
- такой запрос все же возник, он должен быть безусловно удовлетворен,
- чтобы мы могли спокойно выяснить, было изменение неверным или
- нет.</para>
- </listitem>
-
- <listitem>
- <para>Изменения вносятся в ветвь &os.current; до &os.stable;, за
- исключением случаев, прямо разрешенных выпускающими инженерами или
- неприменимости изменения к &os.current;. Любое нетривиальное и
- не срочное изменение должно быть выдержано в &os.current; в течение
- по крайней мере 3 дней перед переносом, чтобы его могли адекватно
- протестировать. Выпускающие инженеры обладают той же властью в
- ветви &os.stable;, что и мейнтейнеры (см. правило 5).</para>
-
- <para>Это еще одно <quote>не обсуждаемое</quote> правило: выпускающий
- инженер безусловно отвечает за последствия, если выясняется что
- внесенные изменения неверны. Уважайте эти права, и помогайте
- группе выпуска релизов в работе с ветвью &os.stable;. На первый
- взгляд может показаться, что ветвь &os.stable; развивается
- чересчур консервативно. Не забывайте, однако, что разумный
- консерватизм&nbsp;&mdash; отличительное свойство &os.stable;,
- и что эта ветвь развивается по законам, отличным от законов
- &os.current;. Кроме того, нет смысла тестировать изменения в
- &os.current;, если они немедленно переносятся в &os.stable;.
- Разработчики &os.current; должны иметь возможность протестировать
- внесенные изменения, так что оставьте время для такого
- тестирования, если только речь не идет о критическом исправлении
- или о чем-либо очевидно не требующем тестирования (например,
- исправления опечаток в страницах справочника, очевидных ошибок или
- опечаток в исходных текстах и т.п.) Иными словами, исходите из
- соображений здравого смысла.</para>
-
- <para>Изменения в ветви поддержки безопасности (security branches,
- например, <literal>RELENG_6_0</literal>) должны быть одобрены
- членом группы &a.security-officer; или, в некоторых случаях, одним
- из выпускающих инженеров (&a.re;).</para>
- </listitem>
-
- <listitem>
- <para>Не пререкайтесь с другими коммиттерами публично: это дурно
- выглядит. Если вам необходимо с чем-либо <quote>категорически не
- согласиться</quote>, делайте это личной почтой.</para>
-
- <para>Для всех участников проекта очень важно поддержание его
- публичного образа; особенно это важно, если мы хотим продолжать
- привлекать новых участников. Случается, что, несмотря на все
- усилия по сохранению власти над собой, люди срываются и грубят
- друг другу. Лучшее, что здесь можно сделать&nbsp;&mdash;
- минимизировать эффект, пока все участники не успокоятся.
- Следовательно, вы не должны озвучивать свою ярость публично,
- а равно и пересылать частную переписку в общедоступные списки
- рассылки. Выражения, употребляющиеся в переписке один на один
- зачастую гораздо менее сдержанны, чем те, которые каждый участник
- употребил бы публично, так что подобной переписке нет места в
- публичных рассылках: это лишь усугубит и без того неприятную
- ситуацию. Если кто-либо, говорящий вам нелицеприятные слова,
- делает это в частной переписке, соблюдайте приличия и вы:
- отвечайте приватно. Если, по вашему мнению, кто-либо из
- разработчиков поступает с вами нечестно, и это настолько
- мучит вас, обратитесь к Правлению, а не выносите конфликт
- наружу. Правление приложит все силы к разрешению ситуации,
- выступая в роли третейского судьи. В случаях, когда спор
- затрагивает какие-либо части кода, и участники не могут прийти к
- взаимно приемлемому соглашению, Правление может привлечь
- независимого участника для разрешения вопроса. В этом случае
- все участники конфликта должны согласиться принять решение,
- вынесенное третьей стороной.</para>
- </listitem>
-
- <listitem>
- <para>Соблюдайте все периоды заморозки кода (core freeze), а также
- своевременно читайте списки рассылки <literal>committers</literal> и
- <literal>developers</literal>, чтобы быть в курсе расписания таких
- периодов.</para>
-
- <para>Внесение не одобренных изменений в период заморозки кода
- является довольно большой ошибкой. Коммиттеры должны быть
- в курсе событий, прежде чем внести 10 мегабайт изменений
- после долгого отсутствия. Нарушающие это правило будут
- подвергаться заморозке коммиттерского бита до прохождения курса
- в Счастливом Лагере Повышения Квалификации FreeBSD, который
- организован в Гренландии.</para>
- </listitem>
-
- <listitem>
- <para>Если вы сомневаетесь в какой-либо процедуре, сначала
- спросите!</para>
-
- <para>Множество ошибок совершается, когда кто-либо совершает
- поспешные действия, думая, что поступает правильно. Делая
- что-либо впервые, вы, скорее всего, не знаете принятых мелочей
- и тонкостей, и лучше всего будет сначала спросить, не то вы
- имеете шансы выставить себя не в лучшем свете. Не стоит
- стыдиться спросить <quote>Как, черт возьми, это надо
- делать?</quote> Мы и так знаем, что вы умны: иначе вы не стали
- бы коммиттером.</para>
- </listitem>
-
- <listitem>
- <para>Тестируйте свои изменения перед коммитом.</para>
-
- <!-- XXX Needs update re sparc64 + pc98
- Also, needs more details on which machines are available for testing
- -->
- <para>Это правило может показаться очевидным. Впрочем, если бы оно
- действительно было очевидно для всех, мы не так часто сталкивались
- со случаями явного его нарушения. Если ваши изменения затрагивают
- ядро, убедитесь, что после него нормально собираются ядра GENERIC
- и LINT. Если вы изменяете другую часть исходного кода, убедитесь,
- что код собирается (успешно завершается make buildworld). Если
- вы изменяете код в какой-либо ветви, убедитесь, что вы тестируете
- его на машине, которая работает именно на этой ветви кода. Если
- ваши изменения могут затронуть другие архитектуры, проверьте его
- на всех поддерживаемых архитектурах. Список доступных ресурсов
- можно найти на странице <uri xlink:href="&url.base;/internal/">&url.base;/internal/</uri>. По мере расширения списка поддерживаемых платформ
- в кластер будут добавляться соответствующие машины для
- тестирования.</para>
- </listitem>
-
- <listitem>
- <para>Не производите коммит в деревья
- <filename>src/contrib</filename>,
- <filename>src/crypto</filename> и
- <filename>src/sys/contrib</filename> без
- <emphasis>прямого</emphasis> разрешения (approval) соответствующего
- мейнтейнера(ов).</para>
-
- <para>Описанные деревья содержат исходный код сторонних
- производителей, который, как правило, импортируется в
- соответствующие ветви. Любой коммит, даже не выводящий файл из
- ветви производителя, может стать головной болью для ответственных
- за эту часть проекта разработчиков. Так что, если у вас нет
- <emphasis>прямого</emphasis> разрешения от мейнтейнера,
- <emphasis>ничего</emphasis> не делайте с этой частью
- репозитория (если, конечно, вы не поддерживаете этот код
- сами).</para>
-
- <para>Отметим, что только что сказанное вовсе не означает, что вы не
- должны пытаться улучшить упомянутый код, наоборот, этому будут
- только рады. Лучше всего, если вы передадите ваши исправления
- вендору. Если изменения специфичны для FreeBSD, обсудите вопрос
- с мейнтейнером, возможно, он посчитает разумным применить их
- локально. Тем не менее, что бы вы ни делали,
- <emphasis>не</emphasis> производите коммит сами!</para>
-
- <para>Если вы хотите стать ответственным за <quote>ничей</quote>
- участок дерева исходников, свяжитесь с &a.core;.</para>
- </listitem>
- </orderedlist>
- </sect2>
-
- <sect2>
- <title>Правила работы с различными архитектурами</title>
-
- <para>Начиная с версии 5.0 проект FreeBSD начал поддерживать несколько
- новых вычислительных архитектур, и более не является
- <quote>&i386;-центричным</quote>. Для упрощения поддержки FreeBSD
- на базе всех этих платформ Правлением было сформулировано следующее
- заявление:</para>
-
- <blockquote>
- <para>Основной 32-битной платформой разработки является i386;
- основная 64-битная платформа&nbsp;&mdash; Sparc64. Крупные
- изменения в дизайне (в том числе основные изменения в API и ABI)
- до попадания в репозиторий должны быть отлажены по крайней мере
- на одной 32 и одной 64-битной платформе, желательно на основных
- поддерживаемых платформах.</para>
- </blockquote>
-
- <para>Платформы i386 и Sparc64 были выбраны по причине широкой
- распространенности доступности для разработчиков; кроме того, они
- представляют принципиально разные подходы к дизайну процессора и
- системы в целом: порядок байт в слове, организация регистров,
- реализация DMA, кэша, страничной адресации и т.д.</para>
-
- <para>Процессор Alpha, конечно, является 64-битным, однако он
- представляет более традиционный дизайн и потому не может служить
- достаточно хорошей тестовой платформой для отработки тонкостей,
- с которыми разработчик может столкнуться на других 64-битных
- платформах. Платформа ia64 во многом сложна так же, как и
- Sparc64, однако ее доступность для разработчиков пока оставляет
- желать лучшего.</para>
-
- <para>Мы будем переформулировать эти правила по мере того, как будут
- меняться цены и доступность 64-битных платформ.</para>
-
- <!-- XXX ??? XXX -->
- <para>Кроме того, разработчики должны быть в курсе наших правил классов
- поддержки (Tier Policy) различных аппаратных архитектур. Эти правила
- предназначены для общего описание процесса разработки, и потому
- отличаются от вышеописанных требований к возможностям и архитектурам.
- Правила классов поддержки на период выпуска релизов много жестче, чем
- ограничения на изменения в процессе разработки.</para>
- </sect2>
-
- <sect2>
- <title>Другие рекомендации</title>
-
- <para>Перед коммитом в области документации используйте какие-либо
- средства проверки орфографии. Для документов SGML, кроме того,
- при помощи команды <command>make lint</command> следует проверить
- корректность форматирования.</para>
-
- <para>Для страниц справочника, при помощи утилиты из коллекции портов
- <command>manck</command> проверяйте корректность перекрестных ссылок
- и ссылок на файлы, а также наличие всех необходимых ссылок на синонимы
- (переменная <varname>MLINK</varname>).</para>
-
- <para>Не смешивайте функциональные изменения со стилистическими
- (не изменяющими функциональных свойств кода). Такое смешивание
- затрудняет вычленение изменений при использовании команды
- <command>cvs diff</command> и, таким образом, может скрыть появившиеся
- ошибки. Не смешивайте в коммите в деревья <filename>doc/</filename> и
- <filename>www/</filename> изменения текста и переформатирование: это
- затрудняет работу переводчиков. Производите все стилистические
- изменения или переформатирования отдельными коммитами, и четко
- обозначайте их как таковые в журнальных сообщениях к коммиту.</para>
- </sect2>
-
- <sect2>
- <title>Удаление возможностей</title>
-
- <para>При необходимости удаления какой-либо функциональной возможности
- из утилит базовой системы следует использовать следующую схему
- действий:</para>
-
- <orderedlist>
- <listitem>
- <para>В странице справочника и, возможно, в комментариях к релизу
- опция, утилита или интерфейс объявляются устаревающими и не
- рекомендованными к использованию (deprecated); их использование
- выводит предупреждение.</para>
- </listitem>
-
- <listitem>
- <para>Опция, утилита или интерфейс сохраняются до очередного
- основного релиза (релиз X.0).</para>
- </listitem>
-
- <listitem>
- <para>Опция, утилита или интерфейс удаляются, в том числе из
- документации: теперь они являются устаревшими. Как правило,
- об этом стоит упомянуть в комментариях к релизу.</para>
- </listitem>
- </orderedlist>
- </sect2>
- </sect1>
-
- <sect1 xml:id="archs">
- <title>Поддержка различных архитектур</title>
-
- <para>FreeBSD является хорошо портируемой операционной системой и
- предназначена для работы на самых разнообразных аппаратных
- архитектурах. Важной частью процесса обеспечения гибкости в
- поддержке современных тенденций развития оборудования является
- деление кода на машинно-зависимый (Machine Dependent, MD) и
- машинно-независимый (Machine Independent, MI), а также, по возможности,
- минимизация машинно-зависимой части кода. Каждая новая аппаратная
- архитектура, которую начинает поддерживать FreeBSD, ощутимо увеличивает
- работу по поддержке кода, инструментария и процесса выпуска релизов.
- Кроме того, становится значительно сложнее эффективно тестировать
- изменения в коде ядра. Все это делает необходимым введение различных
- классов поддержки для различных архитектур, при сохранении максимальной
- стабильности малого числа "основных платформ".</para>
-
- <sect2>
- <title>Основные намерения</title>
-
- <para>Проект FreeBSD предназначен для работы на рабочих станциях,
- серверах и высокопроизводительных встроенных системах. Сохраняя
- ориентир на малое количество архитектур в интересах таких систем,
- проект FreeBSD остается способен поддерживать высокий уровень
- надежности, стабильности и производительности, а также уменьшить
- нагрузку на различные группы поддержки проекта, такие как группы
- поддержки портов, документации, безопасности и выпуска релизов.
- Разнообразие поддерживаемых аппаратных платформ расширяет область
- применимости FreeBSD за счет поддержки новых возможностей (например,
- поддержка 64-битных процессоров, использование во встроенных системах
- и т.п.); тем не менее, расширение этого списка всегда должно быть
- тщательно оценено с позиций увеличения затрат на поддержку
- дополнительной аппаратной платформы.</para>
-
- <para>Проект FreeBSD делит различные аппаратные платформы на 4 класса.
- Для каждого класса описывается набор требований, необходимых для
- присвоения платформе данного класса, и обязательства разработчиков
- по отношению к платформе. Кроме того, определяется порядок смены
- класса для архитектуры.</para>
- </sect2>
-
- <sect2>
- <title>Класс 1: Полностью поддерживаемые архитектуры</title>
-
- <para>Платформы 1 класса полностью поддерживаются группой безопасности,
- группой выпуска релизов и мейнтейнерами инструментария. Новые
- возможности, добавляемые в код системы, должны быть полностью
- функциональны для всех архитектур первого класса для каждого из
- релизов (исключением могут быть архитектурно-зависимые возможности,
- такие как драйвера аппаратуры). Как правило, все платформы 1 класса
- должны поддерживаться системами сборки либо расположенными
- непосредственно в кластере FreeBSD.org, либо легко доступными для
- всех разработчиков.</para>
-
- <para>Архитектуры первого класса должны быть готовыми к эксплуатации
- под управлением FreeBSD во всех аспектах, включая процесс установки
- и среду разработки.</para>
-
- <para>В настоящее время платформами 1 класса являются i386, Sparc64,
- AMD64, and PC98.</para>
- </sect2>
-
- <sect2>
- <title>Класс 2: Архитектуры для разработчиков</title>
-
- <para>Платформы 2 класса не поддерживаются группами безопасности и
- выпуска релизов. Поддержка инструментария оставляется на усмотрение
- его мейнтейнеров. Новые возможности, реализуемые в FreeBSD, должны
- быть реализуемы на этих платформах, однако непосредственная реализация
- на момент добавления кода в дерево исходных текстов не требуется.
- Реализация порта на архитектуру 2 класса может быть добавлена в
- репозиторий, если она не входит в противоречие с текущим состоянием
- систем первого класса и не влияет в существенной степени на прочие
- платформы 2 класса. Для добавления архитектуры 2 класса в дерево
- исходных текстов FreeBSD система должна быть способна загрузиться
- хотя бы в однопользовательский режим на реальной аппаратуре.
- Некоторые исключения из последнего правила могут быть сделаны для
- новой аппаратуры, находящейся в состоянии разработки и временно
- не доступной для проекта.</para>
-
- <para>Обычно архитектурами 2 класса являются те, которые планируются
- к переходу в 1 класс, но пока находятся в состоянии разработки.
- Также во втором классе могут находится платформы, перешедшие из
- 1 класса по причине потери актуальности, по мере того как уменьшается
- количество ресурсов, доступных для поддержки системы в состоянии
- готовности к промышленной эксплуатации.</para>
-
- <para>В настоящее время платформами 2 класса являются PowerPC
- и ia64.</para>
- </sect2>
-
- <sect2>
- <title>Класс 3: Экспериментальные архитектуры</title>
-
- <para>Платформы 3 класса не поддерживаются группами безопасности и
- выпуска релизов. Поддержка инструментария оставляется на усмотрение
- его мейнтейнеров. Архитектурами третьего класса могут быть: те, для
- которых нет и в ближайшее время не предвидится доступного проекту
- оборудования; имеющие менее трех активных разработчиков; не способные
- загрузиться в однопользовательский режим на реальной аппаратуре (или
- под управлением эмулятора, если реальная аппаратура недоступна);
- наконец, системы, которые оцениваются как исчезающие, чья дальнейшая
- распространенность сомнительна. Поддержка систем 3 класса не вносится
- в основное дерево исходных текстов FreeBSD, однако работа над такими
- архитектурами может производиться в репозитории Perforce FreeBSD, для
- облегчения контроля версий и дальнейшей интеграции с основной массой
- кода.</para>
-
- <para>В настоящее время единственной платформой 3 класса является
- &s390;.</para>
- </sect2>
-
- <sect2>
- <title>Класс 4: не поддерживаемые архитектуры</title>
-
- <para>Системы 4 класса никак не поддерживаются проектом.</para>
-
- <para>К 4 классу относятся все архитектуры, не перечисленные выше.</para>
- </sect2>
-
- <sect2>
- <title>Правила смены класса для архитектуры</title>
-
- <para>Для переноса платформы из класса в класс требуется решение,
- утвержденное Правлением, которое, в свою очередь, согласует его
- с группами безопасности, выпуска релизов и поддержки инструментария.
- </para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="ports">
- <title>FAQ по работе с портами</title>
-
- <qandaset>
- <qandadiv>
- <title>Добавление нового порта</title>
-
- <qandaentry>
- <question>
- <para>Как добавить новый порт?</para>
- </question>
-
- <answer>
- <para>Для начала прочитайте раздел, посвященный репозиторному
- копированию.</para>
-
- <para>Самым простым будет использовать скрипт
- <command>addport</command> на машине
- <systemitem>freefall</systemitem>. Он добавит порт из указанного вами
- каталоге, определив нужную категорию из файла
- <filename>Makefile</filename>, добавит строку в файл
- <filename>CVSROOT/modules</filename> и в файл
- <filename>Makefile</filename> для нужной категории.
- Скрипт был написан &a.mharo.email; и &a.will.email;; вопросы и исправления
- по поводу <command>addport</command> следует отправлять Уиллу,
- как текущему мейнтейнеру.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Что еще следует сделать, добавляя новый порт?</para>
- </question>
-
- <answer>
- <para>Проверьте его. Желательно убедиться в том, что порт и
- соответствующий пакет корректно собираются. Рекомендуемая
- последовательность действий такова:</para>
-
- <screen>&prompt.root; <userinput>make install</userinput>
-&prompt.root; <userinput>make package</userinput>
-&prompt.root; <userinput>make deinstall</userinput>
-&prompt.root; <userinput>pkg_add <replaceable>имя собранного пакета</replaceable></userinput>
-&prompt.root; <userinput>make deinstall</userinput>
-&prompt.root; <userinput>make reinstall</userinput>
-&prompt.root; <userinput>make package</userinput>
- </screen>
-
- <para>Более подробные инструкции можно найти в
- <link xlink:href="&url.books.porters-handbook;/index.html">Руководстве
- FreeBSD по созданию портов</link>.</para>
-
- <para>Пользуйтесь &man.portlint.1; для проверки корректности порта.
- Не обязательно добиваться полного отсутствия предупреждений,
- но по крайней мере исправьте простейшие из них.</para>
-
- <para>Если новый порт прислал человек, еще не упомянутый в
- <link xlink:href="&url.articles.contributors;/contrib-additional.html">Списке
- прочих участников</link>, добавьте его имя туда.</para>
-
- <para>Закройте PR, если новый порт пришел в виде PR. Для этого
- воспользуйтесь командой
- <userinput>edit-pr <replaceable>PR#</replaceable></userinput>
- на машине <systemitem>freefall</systemitem> и измените значение в строке
- <varname>state</varname> с <constant>open</constant> на
- <constant>closed</constant>. Затем опишите причину смены
- статуса, и на этом работа закончена.</para>
- </answer>
- </qandaentry>
- </qandadiv>
-
- <qandadiv>
- <title>Удаление порта</title>
-
- <qandaentry>
- <question>
- <para>Как удалить существующий порт?</para>
- </question>
-
- <answer>
- <para>Для начала прочтите раздел о репозиторном копировании.
- Прежде чем удалить порт, вы должны проверить, что удаление не
- затронет другие порты коллекции.</para>
- <itemizedlist>
- <listitem>
- <para>Убедитесь, что другие порты не зависят от удаляемого:</para>
- <itemizedlist>
- <listitem>
- <para>Имя пакета (PKGNAME) должно встречаться в свежем
- файле INDEX ровно один раз.</para>
- </listitem>
- <listitem>
- <para>В файлах Makefile* других портов не должно
- встречаться ни одной ссылки на каталог удаляемого
- порта или имя его пакета (PKGNAME).</para>
- </listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <para>Удалите порт:</para>
-
- <procedure>
- <step>
- <para>Удалите файлы порта командой
- <command>cvs remove</command>.</para>
- </step>
-
- <step>
- <para>Удалите строку <varname>SUBDIR</varname> для
- удаляемого порта из файла <filename>Makefile</filename>
- категории.</para>
- </step>
-
- <step>
- <para>Удалите запись для порта из файла модулей
- <filename>CVSROOT/modules</filename>.</para>
- </step>
-
- <step>
- <para>Добавьте соответствующую строку в файл
- <filename>ports/MOVED</filename>.</para>
- </step>
-
- <step>
- <para>Если порт упоминается в файле
- <filename>ports/LEGAL</filename>, удалите его оттуда.
- </para>
- </step>
- </procedure>
- </listitem>
- </itemizedlist>
-
- <para>Вы можете воспользоваться скриптом <command>rmport</command>
- из каталога <filename>ports/Tools/scripts</filename>.
- Этот скрипт написал &a.vd.email;, и он же его поддерживает, так что
- вопросы, исправления и замечания по поводу <command>rmport</command>
- следует посылать непосредственно ему.</para>
- </answer>
- </qandaentry>
- </qandadiv>
-
- <qandadiv>
- <title>Репозиторное копирование</title>
-
- <qandaentry>
- <question>
- <para>Когда требуется репозиторное копирование?</para>
- </question>
-
- <answer>
- <para>При необходимости добавления порта, имеющего отношение
- к другому, уже находящемуся в репозитории в другом каталоге,
- необходимо произвести репозиторное копирование. В данном
- случае <wordasword>имеющий отношение</wordasword> означает
- другую версию или небольшую модификацию. Примерами могут
- служить различные версии
- <filename>print/ghostscript*</filename> и английская и
- локализованные версии
- <filename>x11-wm/windowmaker*</filename>.</para>
-
- <para>Другим примером является необходимость перенести порт из
- одного подкаталога в другой, или переименовать каталог, когда
- автор меняет имя своей программы.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Когда репозиторное копирование <emphasis>не</emphasis>
- требуется?</para>
- </question>
-
- <answer>
- <para>Если нет истории, которую стоило бы сохранять. Для порта,
- добавленного в неправильную категорию и сразу же перемещенного,
- будет вполне достаточно выполнить команды
- <command>cvs remove</command> для старого варианта и
- <command>addport</command> для нового.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Что нужно делать?</para>
- </question>
-
- <answer>
- <para>Создайте в <application>GNATS</application> PR, описав
- причины репозиторного копирования. Поменяйте ответственного
- на <literal>portmgr</literal> и установите статус
- (<varname>state</varname>) в состояние
- <literal>repocopy</literal>. Если ваш запрос будет одобрен
- группой &a.portmgr;, он будет переадресован на
- <literal>pcvs</literal>. &a.portmgr; может произвести
- копирование каталогов самостоятельно; в противном случае
- группа &a.pcvs; произведет собственно
- копирование и вернет вам ваш PR. После этого, вам необходимо
- проделать следующее:</para>
-
- <itemizedlist>
- <listitem>
- <para>После репозиторного копирования порта:</para>
-
- <procedure>
- <step>
- <para>Обновите новый вариант порта до новой версии.
- Не забудьте изменить строку <varname>LATEST_LINK</varname>,
- чтобы не получить двух портов с одним именем. В
- некоторых исключительных случаях может быть необходимо
- изменить переменную <varname>PORTNAME</varname> вместо
- <varname>LATEST_LINK</varname>, но это должно быть сделано
- только тогда когда это действительно нужно. Например,
- при использовании существующего порта в качестве основы для
- весьма похожей программы с другим именем или при обновлении
- порта до новой основной версии программы, при котором изменяется
- имя самого дистрибутива, как в случае перехода с
- <filename>textproc/libxml</filename> на
- <filename>textproc/libxml2</filename>. В большинстве случаев
- изменение <varname>LATEST_LINK</varname> должно быть достаточно.</para>
- </step>
-
- <step>
- <para>Добавьте новый каталог в список
- <varname>SUBDIR</varname> в родительском файле
- <filename>Makefile</filename>.
- Для проверки вы можете воспользоваться
- командой <command>make checksubdirs</command>.</para>
- </step>
-
- <step>
- <para>Если порт менял категорию, измените строку
- <varname>CATEGORIES</varname> в файле
- <filename>Makefile</filename>.</para>
- </step>
-
- <step>
- <para>Добавьте строку для нового модуля в
- <filename>CVSROOT/modules</filename>.</para>
- </step>
-
- <step>
- <para>Добавьте строку в файл
- <filename>ports/MOVED</filename>, в случае
- если вы удалили первоначальный порт.</para>
- </step>
- </procedure>
- </listitem>
-
- <listitem>
- <para>При удалении порта:</para>
-
- <procedure>
- <step>
- <para>Тщательно проверьте коллекцию на предмет портов,
- зависящих от удаляемого и обновите их при необходимости.
- Выполнение команды <command>grep</command> по содержимому
- файла <filename>INDEX</filename> недостаточно, поскольку
- некоторые порты могут быть сконфигурированы на этапе
- сборки. Рекомендуется использовать полный поиск при
- помощи команды <command>grep -r</command>.</para>
- </step>
-
- <step>
- <para>Удалите старый порт, запись <varname>SUBDIR</varname>
- и строку, описывающую модуль.</para>
- </step>
-
- <step>
- <para>Добавьте строку в файл
- <filename>ports/MOVED</filename>.</para>
- </step>
- </procedure>
- </listitem>
-
- <listitem>
- <para>После репозиторного перемещения (операции
- <quote>переименования</quote>, когда после копирования
- старый вариант удаляется):</para>
-
- <procedure>
- <step>
- <para>Используйте процедуры из предыдущих двух пунктов для
- активации нового порта и удаления старого.</para>
- </step>
- </procedure>
- </listitem>
- </itemizedlist>
- </answer>
- </qandaentry>
- </qandadiv>
-
- <qandadiv>
- <title>Заморозка портов</title>
-
- <qandaentry>
- <question>
- <para>Что такое <quote>заморозка портов</quote>?</para>
- </question>
-
- <answer>
- <para>Перед выпуском релиза для сохранения целостности различных
- частей системы требуется на некоторое время ограничить
- коммиты в дерево портов. Этот процесс и называется
- <quote>заморозкой портов</quote>.</para>
-
- <para>За дополнительной информацией по поводу правил поведения
- во время заморозки обращайтесь к документу
- <link xlink:href="&url.base;/ru/portmgr/qa.html">Задачи контроля
- качества для Группы управления портами</link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Сколько длится заморозка?</para>
- </question>
-
- <answer>
- <para>Обычно неделю или две.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Что это значит для меня?</para>
- </question>
-
- <answer>
- <para>Во время заморозки вы не можете производить какие-либо
- коммиты в дерево портов без прямого разрешения группы порт-менеджеров.
- <quote>Прямое разрешение</quote> здесь означает, что вы послали
- свой патч группе порт-менеджеров и получили ответ
- <quote>Вперед, производите коммит</quote>.
- </para>
-
- <para>В период заморозки не все изменения могут быть внесены
- в дерево. За подробностями обращайтесь к документу
- <link xlink:href="&url.base;/ru/portmgr/qa.html">Задачи контроля
- качества для Группы управления портами</link>.
- </para>
-
- <para>Отметим, что у вас нет подразумеваемого разрешения
- исправлять неработающий порт в период заморозки только потому,
- что порт не работает.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Откуда я узнаю о начале периода заморозки?</para>
- </question>
-
- <answer>
- <para>Обычно за 2-3 недели до начала периода заморозки
- кто-либо из группы порт-менеджеров посылает письмо с предупреждением об этом в
- &a.ports; и &a.committers;. Точное время начала периода
- заморозки определяется за несколько дней до собственно
- релиза, поскольку фиксируемое дерево портов должно быть
- синхронизировано с релизом, а точная дата выпуска
- определяется по ходу дела.</para>
-
- <para>Разумеется, после начала периода заморозки в
- &a.committers; будет отправлено еще одно предупреждение.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Как узнать, когда период заморозки портов закончился?</para>
- </question>
-
- <answer>
- <para>Завершение периода заморозки анонсируется группой порт-менеджеров
- посылкой письма в &a.ports; и &a.committers; через несколько
- часов после релиза. Отметим, что факт выпуска релиза не
- означает автоматического завершения заморозки. Нам потребуется
- убедиться, что в последние минуты не произошло ничего
- непредвиденного, что заставило бы перевыпускать релиз.</para>
- </answer>
- </qandaentry>
- </qandadiv>
-
- <qandadiv>
- <title>Создание новой категории</title>
-
- <qandaentry>
- <question>
- <para>Какова процедура создания новой категории портов?</para>
- </question>
-
- <answer>
- <para>Разработчик, предлагающий новую категорию, должен
- подготовить детальное обоснование ее создания, в том числе
- описание причин, по которым текущий список категорий
- недостаточен, а также список портов, переносимых в новую
- категорию.</para>
-
- <para>Прежде чем отправлять запрос, помните, что процесс потребует
- приложения немалых сил от многих участников, затронет всякого,
- кто поддерживает актуальное состояние дерева портов целиком, и,
- наконец, что подобные предложения неизбежно вызовут споры и
- расхождения во мнениях.</para>
-
- <!-- XXX change to url.ru.books after merging 5.3.4 -->
- <para>Обратитесь к разделу
- <link xlink:href="&url.books.porters-handbook;/makefile-categories.html#PROPOSING-CATEGORIES">
- Proposing a New Category</link> Руководства по созданию портов.
- После передачи PR группе &a.portmgr; решение о создании категории
- остается за ней. В случае утверждения новой категории кто-либо
- из &a.portmgr; делает следующее:</para>
-
- <procedure>
- <step>
- <para>Производит нужные репозиторные копирования.</para>
- </step>
-
- <step>
- <para>Обновляет определения <varname>VALID_CATEGORIES</varname>
- в файле <filename>ports/Mk/bsd.port.mk</filename>.
- </para>
- </step>
-
- <step>
- <para>Возвращает PR вам.</para>
- </step>
- </procedure>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Как устроен процесс?</para>
- </question>
-
- <answer>
- <para>Процедура является надстройкой над уже описанной процедурой
- репозиторного копирования отдельного порта.</para>
-
- <procedure>
- <step>
- <para>Обновите файлы <filename>Makefile</filename> для всех
- перенесенных портов. Пока не добавляйте новую категорию
- в процесс построения индекса.</para>
-
- <para>Для этого вам необходимо:</para>
- <procedure>
- <step>
- <para>Сменить для всех портов значение переменной
- <varname>CATEGORIES</varname> (это и было нашей
- целью, не правда ли?) Новая категория должна быть
- указано в списке <emphasis>первой</emphasis>, это
- поможет проверить, правильно ли установлена
- переменная <varname>PKGORIGIN</varname>.</para>
- </step>
-
- <step>
- <para>Выполните команду <command>make
- describe</command>. Поскольку процедура построения
- главного индекса <command>make index</command>,
- которую вам предстоит выполнить несколько позже,
- использует именно <command>make describe</command>,
- обнаружение ошибок сейчас сэкономит вам немало
- времени в будущем.</para>
- </step>
-
- <step>
- <para>Если вы хотите быть совсем честным, самое время
- запустить &man.portlint.1;.</para>
- </step>
- </procedure>
- </step>
-
- <step>
- <para>Проверьте корректность переменных
- <varname>PKGORIGIN</varname>. Система работы с портами
- использует значение переменной
- <varname>CATEGORIES</varname> для установки переменной
- <varname>PKGORIGIN</varname>, которая затем используется
- для связи установленных пакетов с каталогами дерева
- портов. Если эта связь установлена неправильно, перестанут
- правильно функционировать утилиты работы с портами, такие
- как &man.pkg.version.1; и &man.portupgrade.1;.</para>
-
- <para>Для проверки следует использовать скрипт
- <filename>chkorigin.sh</filename>: <command>env
- PORTSDIR=<replaceable>/path/to/ports</replaceable>
- sh -e <replaceable>/path/to/ports</replaceable>/Tools/scripts/chkorigin.sh
- </command>. Эта команда проверит
- <emphasis>каждый</emphasis> порт в дереве, в том числе и
- те, что не включены в процесс сборки, так что ее можно
- использовать сразу после репозиторного копирования.
- Совет: не забудьте проверить <varname>PKGORIGIN</varname>
- для зависимых от изменяемых вами портов!</para>
- </step>
-
- <step>
- <para>Протестируйте изменения локально, на вашей машине:
- закомментируйте строки <varname>SUBDIR</varname> для
- старых портов, затем разрешите обработку новой
- категории в файле <filename>ports/Makefile</filename>.
- Запустите <command>make checksubdirs</command> в
- затрагиваемых категориях. Наконец, выполните в каталоге
- <filename>ports/</filename> команду
- <command>make index</command>. Ее выполнение может занять
- до 40 минут даже на современной машине, однако, это
- необходимые затраты для того, чтобы не создать проблем
- для других.</para>
- </step>
-
- <step>
- <para>После завершения этой операции вы можете вносить в
- репозиторий изменения <filename>ports/Makefile</filename>
- для включения новой категории в процесс сборки, а также
- производить коммит изменений <filename>Makefile</filename>
- для старых категорий.</para>
- </step>
-
- <step>
- <para>Добавьте в файл <filename>CVSROOT-ports/modules</filename>
- строку
- <programlisting>ports_<replaceable>categoryname</replaceable>&nbsp;&nbsp;&nbsp;<replaceable>categoryname</replaceable></programlisting>
- </para>
-
- <para>Поля должны быть разделены табуляцией.</para>
-
- <para>Если <replaceable>categoryname</replaceable>
- содержит дефисы, замените их на подчеркивания.</para>
- </step>
-
- <step>
- <para>Поменяйте строки для затронутых модулей в файле
- <filename>CVSROOT-ports/modules</filename>.</para>
- </step>
-
- <step>
- <para>Добавьте нужные строки в файл
- <filename>ports/MOVED</filename>.</para>
- </step>
-
- <step>
- <para>Обновите инструкции для &man.cvsup.1;:</para>
-
- <itemizedlist>
- <listitem>
- <para>
- Добавьте категорию в файл
- <filename>distrib/cvsup/sup/README</filename>
- </para>
- </listitem>
-
- <listitem>
- <para>
- Добавьте в каталог
- <filename>distrib/cvsup/sup/ports-<replaceable>categoryname</replaceable></filename>
- два файла:
- <filename>list.cvs</filename> и
- <filename>releases</filename>.</para>
- </listitem>
-
- <listitem>
- <para>
- Добавьте категорию в файл
- <filename>src/share/examples/cvsup/ports-supfile</filename>
- </para>
- </listitem>
- </itemizedlist>
-
- <para>
- (Обратите внимание: эти
- файлы расположены в репозитории src, а не ports).
- Если вы не являетесь коммиттером src, вам потребуется
- создать PR.</para>
- </step>
-
- <step>
- <para>Обновите список категорий, используемый в &man.sysinstall.8;
- в <filename>src/usr.sbin/sysinstall</filename>.</para>
- </step>
-
- <step>
- <para>Обновите документацию:</para>
-
- <itemizedlist>
- <listitem>
- <para>
- <link xlink:href="&url.books.porters-handbook;/makefile-categories.html#PORTING-CATEGORIES">
- Руководство FreeBSD по созданию портов</link></para>
- </listitem>
-
- <listitem>
- <para>
- Файл <filename>www/en/ports/categories</filename>.
- Обратите внимание, что строки в них сгруппированы по
- категориям, описанным в файле
- <filename>www/en/ports/categories.descriptions</filename>.
- </para>
- </listitem>
-
- <listitem>
- <para>Раздел Руководства, перечисляющий
- <link xlink:href="&url.books.handbook;/cvsup.html#CVSUP-COLLEC">
- cvsup коллекции</link>.</para>
- </listitem>
- </itemizedlist>
- <para>(Внимание: все эти файлы находятся в репозитории
- документации. Если вы не являетесь коммиттером в этой области,
- создайте PR в категории документации (doc).</para>
- </step>
-
- <step>
- <para>Старые варианты портов могут быть удалены из
- репозитория только после того, как все описанные процедуры
- будут завершены, и никто не жалуется на новую структуру.</para>
- </step>
- </procedure>
-
- <para>Специально обновлять <link xlink:href="&url.base;/ports/index.html">веб-страницу портов</link>
- при добавлении новой категории не нужно: изменение файла
- <filename>www/en/ports/categories</filename> будет учтено при
- ежедневной перестройке списка портов
- (<filename>INDEX</filename>) автоматически.
- </para>
- </answer>
- </qandaentry>
- </qandadiv>
-
- <qandadiv>
- <title>Прочие вопросы</title>
-
- <qandaentry>
- <question>
- <para>Как мне проверить, что мой порт корректно собирается?</para>
- </question>
-
- <answer>
- <para>В первую очередь проверьте свой порт по адресу
- <uri xlink:href="http://pointyhat.FreeBSD.org/errorlogs/">http://pointyhat.FreeBSD.org/errorlogs/</uri>.
- Там вы найдете журналы сборки пакетов на всех поддерживаемых
- архитектурах для большинства последних ветвей разработки.</para>
-
- <para>Впрочем, отсутствие вашего порта среди журналов с ошибками
- еще не значит, что он успешно собирается (например, может не
- собираться один из зависимых портов). Необходимую информацию вы
- можете найти на машине <systemitem>pointyhat</systemitem> в каталогах
- <filename>/a/portbuild/&lt;arch&gt;/&lt;major_version&gt;</filename>.
- Каждая пара архитектуры и базовой версии содержит следующие
- подкаталоги:</para>
-
-<programlisting>errors журналы ошибок последней сборки версии &lt;major_version&gt; на платформе &lt;arch&gt;
-logs все журналы последней сборки версии &lt;major_version&gt; на платформе &lt;arch&gt;
-packages свежесобранные пакеты для версии &lt;major_version&gt; на платформе &lt;arch&gt;
-bak/errors журналы ошибок последней полной сборки версии &lt;major_version&gt; на платформе &lt;arch&gt;
-bak/logs все журналы последней полной сборки версии &lt;major_version&gt; на платформе &lt;arch&gt;
-bak/packages пакеты последней полной сборки версии &lt;major_version&gt; на платформе &lt;arch&gt;</programlisting>
-
- <para>Общее правило: пакет, присутствующий в каталоге
- <filename>packages</filename> или каталоге
- <filename>logs</filename>, и при этом отсутствующий в
- <filename>errors</filename>, собрался успешно. (Именно каталоги
- <filename>errors</filename> вы видите на веб-сервере
- <systemitem>pointyhat</systemitem>).</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Я добавил новый порт. Нужно ли добавлять его в файл
- <filename>INDEX</filename>?</para>
- </question>
-
- <answer>
- <para>Нет. <filename>INDEX</filename> больше не хранится
- в CVS репозитории. Данный файл может быть сгенерирован
- с помощью команды <command>make index</command> или
- уже сгенерированная версия может быть загружена с помощью
- <command>make fetchindex</command>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Какие еще файлы я не должен трогать?</para>
- </question>
-
- <answer>
- <para>Любой файл в на верхнем уровне <filename>ports/</filename>,
- а также все файлы в каталогах, имена которых начинаются с
- прописной буквы (например, <filename>Mk/</filename>,
- <filename>Tools/</filename> и т.п.). В частности, упаси вас
- Бог трогать файлы <filename>ports/Mk/bsd.port*.mk</filename>,
- если вы не хотите привести порт-менеджеров в ярость!</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Каков корректный порядок обновления порта, когда его
- исходный архив поменялся, но не сменил имя?</para>
- </question>
-
- <answer>
- <para>При возникновении ситуации, когда автор обновляет
- дистрибутивный архив без изменения идентификатора версии,
- сообщение о коммите должно содержать аннотацию различий между
- предыдущим и обновленным состоянием архива, чтобы можно было
- убедиться, что архив не испорчен и не подменен злоумышленником.
- Если текущая версия порта существовала достаточное время, копии
- архива будут доступны на ftp-серверах проекта; в противном
- случае следует связаться с автором или мейнтейнером порта для
- выяснения причин замены архива.</para>
- </answer>
- </qandaentry>
- </qandadiv>
- </qandaset>
- </sect1>
-
- <sect1 xml:id="perks">
- <title>Пряники и прочие льготы</title>
-
- <para>Увы, льгот, возникающих от того, что вы являетесь коммиттером,
- не так уж много. Пожалуй, единственным несомненным долговременным
- преимуществом будет признание вас как компетентного специалиста.
- Тем не менее, кое-какие льготы все же существуют:</para>
-
- <variablelist>
-
- <varlistentry>
- <term>Прямой доступ к машине <systemitem>cvsup-master</systemitem></term>
-
- <listitem>
- <para>Будучи коммиттером, вы можете обратиться к &a.kuriyama.email;, чтобы
- получить доступ к машине
- <systemitem class="fqdomainname">cvsup-master.FreeBSD.org</systemitem>, приложив
- вывод команды <command>cvpasswd
- <replaceable>yourusername</replaceable>@FreeBSD.org
- freefall.FreeBSD.org</command>. Обратите внимание: в командной
- строке вы должны указать <systemitem>freefall.FreeBSD.org</systemitem>,
- хотя реальным сервером будет <systemitem>cvsup-master</systemitem>.
- Доступом к <systemitem>cvsup-master</systemitem> не следует злоупотреблять:
- это весьма загруженная машина.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Бесплатная подписка на комплект из 4 CD или DVD</term>
-
- <listitem>
- <para>Компания <link xlink:href="http://www.freebsdmall.com">FreeBSD Mall,
- Inc.</link> предоставляет для всех коммиттеров FreeBSD возможность
- бесплатной подписки на выпуски FreeBSD. Порядок подписки появляется
- в списке рассылки <email>developers@FreeBSD.org</email> после
- каждого релиза.</para>
- </listitem>
- </varlistentry>
-
- </variablelist>
- </sect1>
-
- <sect1 xml:id="misc">
- <title>Прочие вопросы</title>
-
- <qandaset>
- <qandaentry>
- <question>
- <para>Почему не следует вносить малозначимые изменения в ветви
- разработчика (vendor branches)?</para>
- </question>
-
- <answer>
- <itemizedlist>
- <listitem>
- <para>После этого действия каждый новый релиз от разработчика
- требует ручного приложения и объединения патчей.</para>
- </listitem>
-
- <listitem>
- <para>Что хуже, каждый новый релиз от разработчика требует
- ручной <emphasis>проверки</emphasis> приложенных патчей.</para>
- </listitem>
-
- <listitem>
- <para>Опция CVS <option>-j</option> не всегда хорошо работает.
- Можете спросить &a.obrien.email;, он расскажет вам жутких
- историй.</para>
- </listitem>
- </itemizedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Как мне добавить файл в ветвь CVS?</para>
- </question>
-
- <answer>
- <para>Для добавления файла в ветви просто обновите исходные файлы
- до нужной ветви, а затем используйте команду
- <command>cvs add</command>. Например, если мы хотите перенести
- файл <filename>src/sys/alpha/include/smp.h</filename> из ветви
- HEAD в ветвь RELENG_6, в которой он пока не существует, можно
- использовать следующую последовательность действий:</para>
-
- <example>
- <title>MFC для нового файла</title>
-
- <screen>&prompt.user; <userinput>cd sys/alpha/include</userinput>
-&prompt.user; <userinput>cvs update -rRELENG_6</userinput>
-cvs update: Updating .
-U clockvar.h
-U console.h
-...
-&prompt.user; <userinput>cvs update -kk -Ap smp.h &gt; smp.h</userinput>
-===================================================================
-Checking out smp.h
-RCS: /usr/cvs/src/sys/alpha/include/smp.h,v
-VERS: 1.1
-***************
-&prompt.user; <userinput>cvs add smp.h</userinput>
-cvs add: scheduling file `smp.h' for addition on branch `RELENG_6'
-cvs add: use 'cvs commit' to add this file permanently
-&prompt.user; <userinput>cvs commit</userinput>
- </screen>
- </example>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Какую <quote>мета-информацию</quote> я должен включать в
- сообщения для коммита?</para>
- </question>
-
- <answer>
- <para>Помимо информативного описания содержания коммита вам может
- потребоваться включить в сообщение дополнительную
- информацию.</para>
-
- <para>Она состоит из одной или нескольких строк вида: ключевое слово
- или словосочетание, двоеточие, табуляции для форматирования,
- собственно дополнительная информация.</para>
-
- <para>Ключевыми словами могут быть:</para>
-
- <informaltable frame="none" pgwide="1">
- <tgroup cols="2">
- <tbody>
- <row>
- <entry><literal>PR:</literal></entry>
- <entry>Идентификатор сообщения об ошибке, затрагиваемого
- (как правило, закрываемого) данным коммитом.</entry>
- </row>
-
- <row>
- <entry><literal>Submitted by:</literal></entry>
- <entry>Имя и e-mail адрес приславшего исправление; для
- коммиттеров&nbsp;&mdash; просто имя пользователя в
- кластере FreeBSD.</entry>
- </row>
-
- <row>
- <entry><literal>Reviewed by:</literal></entry>
- <entry>Имя и e-mail адрес того или тех, кто рецензировал
- изменения; для коммиттеров&nbsp;&mdash; имя пользователя в
- кластере FreeBSD. Если изменения были посланы в список
- рассылки на рецензию и получили одобрение, имя списка
- рассылки.</entry>
- </row>
-
- <row>
- <entry><literal>Approved by:</literal></entry>
- <entry>Имя и e-mail адрес того или тех, кто одобрил
- изменение; как и прежде, для коммиттеров просто имя
- пользователя в кластере. Обычной практикой является
- получение одобрения для коммитов в новые для вас области
- дерева. Кроме того, в период перед каждым релизом все
- коммиты <emphasis>должны</emphasis> быть одобрены группой
- выпускающих инженеров. В случае ваших первых коммитов
- вы должны получить одобрение на них у вашего ментора, и
- упомянуть его в виде
- <quote><replaceable>username-of-mentor</replaceable>
- <literal>(mentor)</literal></quote>.
- </entry>
- </row>
-
- <row>
- <entry><literal>Obtained from:</literal></entry>
- <entry>Имя проекта, из исходного кода которого было взято
- изменение.</entry>
- </row>
-
- <row>
- <entry><literal>MFC after:</literal></entry>
-
- <entry>Если вы хотите получать по почте напоминания об
- <acronym>MFC</acronym>, укажите число дней, недель или
- месяцев с момента изначального коммита, через которое
- вы планируете произвести <acronym>MFC</acronym>.</entry>
- </row>
-
- <row>
- <entry><literal>Security:</literal></entry>
-
- <entry>Если ваши изменения затрагивают вопросы безопасности
- или исправляют какие-либо уязвимости, укажите ссылки на
- опубликованные отчеты или описание проблемы.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <example>
- <title>Сообщение для коммита, основанного на PR</title>
-
- <para>Вы собираетесь внести коммит, основанный на PR, присланном
- John Smith и содержащим патч для исправления проблемы. Ваше
- сообщение должно заканчиваться примерно такими строками:</para>
-
- <programlisting>...
-
-PR: foo/12345
-Submitted by: John Smith &lt;John.Smith@example.com&gt;</programlisting>
- </example>
-
- <example>
- <title>Сообщение для коммита, требующего рецензии</title>
-
- <para>Вы собираетесь изменить подсистему работы с виртуальной
- памятью. Вы опубликовали предполагаемые изменения в
- соответствующем списке рассылки (в данном случае
- <literal>freebsd-arch</literal>), и изменения были
- одобрены.</para>
-
- <programlisting>...
-
-Reviewed by: -arch</programlisting>
- </example>
-
- <example>
- <title>Сообщение для коммита, требующего одобрения</title>
-
- <para>Вы намерены произвести коммит в область дерева, для которой
- определен ведущий (MAINTAINER). Вы скоординировали усилия с
- мейнтейнером, и он отреагировал <quote>Отлично. Производи
- коммит.</quote></para>
-
- <programlisting>...
-
-Approved by: <replaceable>abc</replaceable></programlisting>
-
- <para>Где <replaceable>abc</replaceable> имя пользователя,
- одобрившего ваш коммит.</para>
- </example>
-
- <example>
- <title>Сообщение для коммита, использующего код OpenBSD</title>
-
- <para>Вы собираетесь внести изменение, основанное на коде,
- использованном проектом OpenBSD.</para>
-
- <programlisting>...
-
-Obtained from: OpenBSD</programlisting>
- </example>
-
- <example>
- <title>Сообщение для коммита, планирующего интеграцию из
- &os.current; в &os.stable; через некоторое время</title>
-
- <para>Вы хотите внести изменения, которые должны быть интегрированы
- из &os.current; в ветвь &os.stable; через две недели.</para>
-
- <programlisting>...
-
-MFC after: <replaceable>2 weeks</replaceable></programlisting>
-
- <para>Где <replaceable>2</replaceable> является количеством дней,
- недель или месяцев, через которое вы планируете интегрировать
- (<acronym>MFC</acronym>) в &os.stable;. В качестве
- <replaceable>weeks</replaceable> может быть использовано
- <literal>week</literal>, <literal>weeks</literal>,
- <literal>month</literal>, <literal>months</literal>, либо
- этот параметр может быть опущен (при этом подразумевается
- <replaceable>X</replaceable> дней).</para>
- </example>
-
- <para>В отдельных случаях вам потребуется комбинировать приведенные
- примеры.</para>
-
- <para>Рассмотрим ситуацию, когда некто прислал сообщение об ошибке,
- содержащее код из проекта NetBSD. Вы заинтересовались этим
- случаем, но он расположен в той части дерева, в которой вы обычно
- не работаете, так что вы решаете выдать изменения на рассмотрение
- списка рассылки <literal>arch</literal>. Поскольку изменения были
- достаточно сложны, вы решаете интегрировать их
- (<acronym>MFC</acronym>) через месяц, чтобы обеспечить адекватное
- время для тестирования.</para>
-
- <para>В описанном случае сообщения для коммита может выглядеть
- примерно так:</para>
-
- <programlisting>PR: foo/54321
-Submitted by: John Smith &lt;John.Smith@example.com&gt;
-Reviewed by: -arch
-Obtained from: NetBSD
-MFC after: 1 month</programlisting>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Как мне получить доступ к <systemitem class="fqdomainname">people.FreeBSD.org</systemitem> для того чтобы разместить
- там персональную информацию или информацию о моих проектах?</para>
- </question>
-
- <answer>
- <para><systemitem class="fqdomainname">people.FreeBSD.org</systemitem>&nbsp;&mdash;
- синоним для <systemitem class="fqdomainname">freefall.FreeBSD.org</systemitem>.
- Просто создайте каталог <filename>public_html</filename>. Все,
- что вы разместите в нем, будет автоматически доступно по адресу
- <uri xlink:href="http://people.FreeBSD.org/">http://people.FreeBSD.org/</uri>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Где расположены архивы списков рассылки?</para>
- </question>
-
- <answer>
- <para>Списки рассылки архивируются в иерархию каталогов
- <filename>/g/mail</filename>, видимую на всех машинах кластера как
- <filename>/hub/g/mail</filename> (см. &man.pwd.1;).</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Мне бы хотелось стать ментором для нового коммиттера. Какого
- технологического процесса я должен придерживаться?</para>
- </question>
-
- <answer>
- <para>Обратитесь к документу <link xlink:href="http://www.freebsd.org/internal/new-account.html">Процедура
- создания нового аккаунта</link>.</para>
- </answer>
- </qandaentry>
- </qandaset>
- </sect1>
-</article>
diff --git a/ru_RU.KOI8-R/articles/contributing/Makefile b/ru_RU.KOI8-R/articles/contributing/Makefile
deleted file mode 100644
index 7154591fa3..0000000000
--- a/ru_RU.KOI8-R/articles/contributing/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-#
-# The FreeBSD Russian Documentation Project
-#
-# $FreeBSD$
-# $FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/contributing/Makefile,v 1.1 2005/05/25 17:54:31 andy Exp $
-#
-# Article: Contributing to FreeBSD
-#
-# Original revision: r39631
-#
-
-DOC?= article
-
-FORMATS?= html
-WITH_ARTICLE_TOC?= YES
-
-INSTALL_COMPRESSED?=gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= article.xml
-
-URL_RELPREFIX?= ../../../..
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/ru_RU.KOI8-R/articles/contributing/article.xml b/ru_RU.KOI8-R/articles/contributing/article.xml
deleted file mode 100644
index 5c26fa85b0..0000000000
--- a/ru_RU.KOI8-R/articles/contributing/article.xml
+++ /dev/null
@@ -1,535 +0,0 @@
-<?xml version="1.0" encoding="koi8-r"?>
-<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
- "http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
-<!--
- The FreeBSD Russian Documentation Project
-
- $FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/contributing/article.xml,v 1.3 2006/03/28 16:40:29 gad Exp $
-
- Original revision: r43184
--->
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="ru">
- <info><title>Участие в проекте FreeBSD</title>
-
-
- <abstract>
- <para>В этой статье описаны различные способы, которыми отдельные лица и
- организаций могут принять участие в Проекте FreeBSD.</para>
- </abstract>
-
- <authorgroup>
- <author><personname><firstname>Джордан</firstname><surname>Хаббард</surname></personname><contrib>Текст предоставил </contrib></author>
- </authorgroup>
-
- <legalnotice xml:id="trademarks" role="trademarks">
- &tm-attrib.freebsd;
-
- &tm-attrib.ieee;
-
- &tm-attrib.general;
- </legalnotice>
-
- <pubdate>$FreeBSD$</pubdate>
-
- <releaseinfo>$FreeBSD$</releaseinfo>
- </info>
-
- <indexterm><primary>участие</primary></indexterm>
-
- <para>Итак, вы хотите внести свой вклад во FreeBSD? Это великолепно!
- Жизнеспособность FreeBSD <emphasis>основана</emphasis> на помощи её
- пользователей. Ваша помощь не только принимается, она жизненно необходима
- для продолжения роста FreeBSD.</para>
-
- <para>Несмотря на уверения некоторых людей, вам не нужно быть гениальным
- программистом или персоной, лично связанной с руководящей группой FreeBSD,
- чтобы ваша помощь была принята. FreeBSD разрабатывает большое и
- увеличивающееся количество участников со всего мира, самого разного
- возраста и разных областей технической экспертизы. Работы, которую
- необходимо сделать, всегда больше, чем разработчиков, могущих её выполнить,
- и дополнительная помощь всегда приветствуется.</para>
-
- <para>Проект FreeBSD занимается операционной системой в целом, а не только
- ядром или несколькими отдельными утилитами. Таким образом, в нашем
- <filename>TODO</filename>-списке широкий спектр задач: от документации,
- бета-тестирования и презентаций до программы установки системы и
- специфических разработок уровня ядра. Люди любого уровня практически в
- любой области определённо смогут помочь проекту.</para>
-
- <para>Коммерческие структуры, связанные с использованием FreeBSD, также
- приглашаются к диалогу. Нужны ли вам особые расширения, для работы вашего
- продукта? Вы увидите, что мы отвечаем на ваши запросы, если они не слишком
- необычны. Вы работаете над дополнительными продуктами? Дайте нам знать!
- Мы сможем работать вместе над некоторыми его аспектами. Мир свободного
- программного обеспечения ставит под сомнение многие существующие
- представления о том, как программного обеспечение разрабатывается,
- продаётся и поддерживается, и мы настоятельно просим вас посмотреть на
- него ещё раз.</para>
-
- <sect1 xml:id="contrib-what">
- <title>Что нужно</title>
-
- <para>В следующем перечне представлены задачи и подпроекты, являющиеся
- некоторым отражением различных списков <filename>TODO</filename> и
- запросов пользователей.</para>
-
- <sect2 xml:id="non-programmer-tasks">
- <title>Текущие задачи не для программистов</title>
-
- <para>Многие люди, связанные с FreeBSD, не являются программистами. В
- Проекте участвуют создатели документации, Web-дизайнеры и специалисты
- по поддержке пользователей. Все, что им нужно для участия, это своё
- время и желание учиться.</para>
-
- <orderedlist>
- <listitem>
- <para>Периодически читайте FAQ и Руководство. Если что-то описано
- плохо, устарело или даже полностью неправильно, дайте нам знать.
- Ещё лучше, если вы пришлёте нам исправление (выучить Docbook не так
- сложно, но и против посланий в формате ASCII никто возражать не
- будет).</para>
- </listitem>
-
- <listitem>
- <para>Помогите перевести документацию FreeBSD на ваш родной язык.
- Если документация на вашем языке уже существует, вы можете помочь
- перевести дополнительные документы или проверить, не устарели ли
- переводы. Первым делом взгляните на <link xlink:href="&url.books.fdp-primer;/translations.html">FAQ по
- переводам</link> в Учебнике проекта документирования FreeBSD. Вас
- не призывают перевести все документы FreeBSD &mdash; как
- доброволец, вы можете делать столько переводов, сколько захотите.
- Если кто-то начал перевод, другие всегда присоединятся. Если у вас
- есть время и желание перевести одну часть документации, пожалуйста,
- переведите инструкции по установке.</para>
- </listitem>
-
- <listitem>
- <para>Время от времени (или даже регулярно) читайте &a.questions; и
- &ng.misc;. Вам может понравиться делиться своим опытом и помогать
- людям решать их проблемы; иногда вы сможете узнать для себя что-то
- новое! Эти форумы могут также стать источником идей, над которыми
- вам стоит поработать.</para>
- </listitem>
- </orderedlist>
- </sect2>
-
- <sect2 xml:id="ongoing-programmer-tasks">
- <title>Текущие задачи для программистов</title>
-
- <para>Большинство задач, перечисленных здесь, требуют либо значительных
- затрат времени, либо глубоких знаний ядра FreeBSD, либо того и другого.
- Однако имеется также много полезных задач, которые подойдут для
- <quote>воскресных хакеров</quote>.</para>
-
- <orderedlist>
- <listitem>
- <para>Если вы работаете с FreeBSD-CURRENT и обладаете хорошим
- подключением к Internet, то существует машина <systemitem class="fqdomainname">current.FreeBSD.org</systemitem>, которая строит полный
- релиз ежедневно&mdash;сейчас и всегда. Попробуйте установить
- самый последний релиз с этой машины и сообщите обо всех
- обнаруженных при этом ошибках.</para>
- </listitem>
-
- <listitem>
- <para>Читайте &a.bugs;. Здесь может встретиться проблема, которую
- вы сможете конструктивно прокомментировать или патчи, которые вы
- можете протестировать. Либо вы можете даже попытаться исправить
- какую-то проблему самостоятельно.</para>
- </listitem>
-
- <listitem>
- <para>Если вы знаете о существовании каких-либо исправлений ошибок,
- успешно применённых к -CURRENT, но ещё не перенесённых в -STABLE
- после достаточно большого интервала времени (обычно несколько
- недель), направьте коммиттеру вежливое напоминание.</para>
- </listitem>
-
- <listitem>
- <para>Перенос стороннего программного обеспечения в каталог
- <filename>src/contrib</filename> дерева
- исходных текстов.</para>
- </listitem>
-
- <listitem>
- <para>Проверка актуальности кода в каталоге
- <filename>src/contrib</filename>.</para>
- </listitem>
-
- <listitem>
- <para>Построение из дерева исходных текстов (или её части) с
- включением режима дополнительных предупреждений, избавление от
- них.</para>
- </listitem>
-
- <listitem>
- <para>Исправление предупреждений от портов, которые используют
- недопустимые вызовы типа <function>gets()</function> или включают
- файл объявлений <filename>malloc.h</filename>.</para>
- </listitem>
-
- <listitem>
- <para>Если вы создавали порты и вам приходилось делать специфичные
- для &os; исправления, пошлите ваши патчи авторам оригинального
- программного обеспечения (это упростит вам жизнь при выпуске
- следующей версии).</para>
- </listitem>
-
- <listitem>
- <para>Найдите копии официальных стандартов, например, &posix;. Вы
- можете найти несколько ссылок на них на странице Web-сайта <link xlink:href="&url.base;/projects/c99/index.html">Проекта соответствия
- FreeBSD стандартам C99 &amp; POSIX</link>. Сравните поведение FreeBSD
- с тем, что определено стандартом. Если реакция отличается,
- особенно в незначительных или непонятных разделах спецификации,
- направьте об этом PR. Если можете, найдите, как исправить это и
- включите в PR патч. Если вы полагаете, что в стандарте есть
- ошибка, направьте запрос его разработчикам.</para>
- </listitem>
-
- <listitem>
- <para>Предложите дополнительные задачи для этого списка!</para>
- </listitem>
- </orderedlist>
- </sect2>
-
- <sect2>
- <title>Работа с базой сообщений об ошибках PR</title>
-
- <indexterm>
- <primary>база сообщений об ошибках</primary>
- </indexterm>
-
- <para><link xlink:href="http://www.FreeBSD.org/cgi/query-pr-summary.cgi">Список
- сообщений об ошибках FreeBSD</link> содержит все актуальные
- сообщения о проблемах и запросы на улучшения, которые были посланы
- пользователями FreeBSD. База данных PR содержит задачи как для
- программистов, так и не для них. Просмотрите открытые PR, найдите те,
- что привлекут ваше внимание.
- Некоторые из них могут быть очень простыми, требующими лишь ещё одной
- пары глаз, чтобы посмотреть и подтвердить, что предлагаемое в PR
- исправление достаточно. Другие могут быть гораздо сложнее и даже вовсе
- не содержать исправления.</para>
-
- <para>Начните с тех PR, которые никому ещё не назначены. Если PR уже
- за кем-то закреплено, но содержит проблему, которую вы можете решить,
- направьте по электронной почте письмо человеку, которому назначено это
- PR, и спросите, можете ли вы поработать над ней&mdash;у них уже может
- готов патч для тестирования или какие-то идеи, которые можно вместе
- обсудить.</para>
- </sect2>
-
- <sect2>
- <title>Выберите один из пунктов со странички <quote>идей</quote></title>
-
- <para><link xlink:href="http://wiki.freebsd.org/IdeasPage">Список проектов
- и идей для добровольцев</link> также доступен для людей,
- желающих помочь проекту &os;. Список постоянно обновляется и
- содержит пункты, как для программистов, так и для не
- программистов, с информацией о каждом проекте.</para>
- </sect2>
-
- </sect1>
-
- <sect1 xml:id="contrib-how">
- <title>Как принять участие в работе</title>
-
- <para>Характер участия в работе над системой обычно подпадает под одну или
- несколько из следующих 5 категорий:</para>
-
- <sect2 xml:id="contrib-general">
- <title>Сообщения об ошибках и отзывы общего характера</title>
-
- <para>Идеи или пожелания <emphasis>общего</emphasis> технического
- характера должны направляться по электронной почте в адрес &a.hackers;.
- Подобным же образом тот, кто интересуется такими вещами (и устойчив к
- <emphasis>большому</emphasis> потоку почты!) может подписаться на
- список рассылки &a.hackers;. Обратитесь к <link xlink:href="&url.books.handbook;/eresources.html#ERESOURCES-MAIL">Руководству
- FreeBSD</link> для получения дополнительной информации об этом и
- других списках рассылки.</para>
-
- <para>Если вы нашли ошибку или предлагаете внести какое-то конкретное
- исправление, пожалуйста, отправьте сообщение при помощи программы
- &man.send-pr.1; или её <link xlink:href="&url.base;/send-pr.html">
- Web-эквивалента</link>. Постарайтесь заполнить все поля в сообщении
- об ошибке. Если его размер оно не превышает 65 Кбайт, включите все
- патчи непосредственно в сообщение. Если патч предназначен для дерева
- исходных текстов, поместите <literal>[PATCH]</literal> в теме
- сообщения. При включении патчей <emphasis>не используйте</emphasis>
- технику cut-and-paste, потому что при этом символы табуляции
- преобразуются в пробелы и патч становится непригодным к использованию.
- Если объём патчей превышает 20 Кбайт, лучше включать их в сообщение
- в сжатом виде, для чего упакуйте их (например, при помощи
- &man.gzip.1; или &man.bzip2.1;) и обработайте архив утилитой
- &man.uuencode.1;.</para>
-
- <para>После отправки сообщения вы должны получить подтверждение и номер
- для отслеживания. Сохраните этот номер, чтобы использовать его в
- дальнейшем при направлении подробностей о проблеме по электронной почте
- на адрес &a.bugfollowup;. Используйте номер в качестве темы письма, например,
- <literal>"Re: kern/3377"</literal>. Дополнительная информация о любом
- сообщении об ошибке должна направляться этим способом.</para>
-
- <para>Если вы не получили подтверждения в течение разумного периода
- времени (от 3 дней до недели, в зависимости от вашего подключения к
- электронной почты) или по какой-то причине не можете воспользоваться
- командой &man.send-pr.1;, то можете попросить кого-нибудь направить
- сообщение за вас на адрес &a.bugs;.</para>
-
- <para>Прочтите также <link xlink:href="&url.articles.problem-reports;/article.html">эту статью</link>,
- чтобы узнать, как писать хорошие сообщения о проблемах.</para>
- </sect2>
-
- <sect2>
- <title>Изменения в документации</title>
-
- <indexterm>
- <primary>посылка документации</primary>
- </indexterm>
-
- <para>Изменения в документации обсуждаются в &a.doc;. Пожалуйста,
- посмотрите <link xlink:href="&url.books.fdp-primer;/index.html">Учебник
- Проекта документирования FreeBSD</link> для получения полных
- инструкций. Посылайте свои пожелания и изменения (принимаются даже
- самые небольшие!) при помощи &man.send-pr.1;, как это описано в разделе
- о <link linkend="contrib-general">сообщениях об ошибках и общих
- пожеланиях</link>.</para>
- </sect2>
-
- <sect2>
- <title>Изменения к имеющемуся исходному коду</title>
-
- <indexterm><primary>FreeBSD-CURRENT</primary></indexterm>
-
- <para>Добавление нового исходного кода или внесение изменений в
- существующий является не такой простой задачей, и зависит во многом от
- того, насколько вы далеки от текущего состояния разработок во FreeBSD.
- Существуют специальные промежуточные релизы FreeBSD, известные как
- <quote>FreeBSD-CURRENT</quote>, которые доступны несколькими разными
- способами, удобными разработчикам, активно работающим над системой.
- Обратитесь к <link xlink:href="&url.books.handbook;/current-stable.html">
- Руководству FreeBSD</link> для получения дополнительной информации
- о получении и использовании FreeBSD-CURRENT.</para>
-
- <para>Если вы работаете с несколько устаревшими исходными текстами, то
- ваши изменения иногда могут оказаться уже ненужными или слишком
- большими, чтобы повторно интегрировать их во FreeBSD. Уменьшить такой
- риск можно, подписавшись на списки рассылки &a.announce; и &a.current;,
- в которых обсуждается текущее состояние системы.</para>
-
- <para>Предположим, что вы смогли получить актуальные исходные
- тексты, на базе которых делали свои изменения. Тогда следующим шагом
- является создание набора файлов, отражающих ваши изменения для их
- посылки тем, кто отвечает за поддержку FreeBSD. Это делается при
- помощи команды &man.diff.1;.</para>
-
- <para>Предпочтительным форматом &man.diff.1; для посылки патчей является
- унифицированная выдача, создаваемая командой <command>diff
- -u</command>.</para>
-
- <indexterm>
- <primary><command>diff</command></primary>
- </indexterm>
-
- <para>К примеру:</para>
-
- <screen>&prompt.user; <userinput>diff -u oldfile newfile</userinput></screen>
-
- <para>или</para>
-
- <screen>&prompt.user; <userinput>diff -u -r -N olddir newdir</userinput></screen>
-
- <para>создаст набор патчей в унифицированном формате для конкретного
- файла с исходным текстом или для иерархии каталогов.</para>
-
- <para>Дополнительную информацию можно найти в &man.diff.1;.</para>
-
- <para>После того, как вы получили набор diff-файлов (которые вы можете
- протестировать командой &man.patch.1;), вы должны прислать их для
- включения во FreeBSD. Воспользуйтесь программой &man.send-pr.1;, как
- это описано в разделе о <link linkend="contrib-general">сообщениях об
- ошибках и общих замечаниях</link>. <emphasis>Не посылайте</emphasis>
- diff-файлы в список рассылки &a.hackers;, они будут потеряны! Нам
- очень нужна ваша помощь (это добровольный проект!); из-за нашей
- занятости мы не сможем рассмотреть его сразу, и он будет находиться в
- базе данных PR, пока мы не сделаем это. Укажите на вашу посылку,
- включив строку <literal>[PATCH]</literal> в тему сообщения.</para>
-
- <indexterm>
- <primary><command>uuencode</command></primary>
- </indexterm>
-
- <para>Если вы считаете, что это нужно (к примеру, вы добавляли, удаляли
- или переименовывали файлы), то объедините ваши изменения в
- <command>tar</command>-файл и обработайте его программой
- &man.uuencode.1;. Принимаются также и архивы, созданные программой
- &man.shar.1;.</para>
-
- <para>Если ваше изменение потенциально может оказаться сомнительным,
- например, вы не уверены в отсутствии лицензионных ограничений
- относительно его распространения, то вы должны послать его напрямую
- в список
- рассылки &a.core;, а не через &man.send-pr.1;. В списке рассылки
- &a.core; участвует гораздо меньшее количество людей, которые выполняют
- основную ежедневную работу над FreeBSD. Заметьте, что эта группа
- также <emphasis>очень занята</emphasis>, так что сюда письма нужно
- посылать только в случае действительной необходимости.</para>
-
- <para>Пожалуйста, обратитесь к справке по &man.intro.9; и &man.style.9;
- для получения некоторой информации о стиле кодирования. Мы надеемся,
- что вы хотя бы примете эту информацию к сведению перед тем, как
- прислать нам свой код.</para>
- </sect2>
-
- <sect2>
- <title>Новый код или большие дополнительные пакеты</title>
-
- <para>В случае значительного объёма присланного вами кода и
- соответствующей работы, либо добавления к FreeBSD важной новой функции,
- становится практически всегда необходимо посылать изменения в виде
- tar-файлов, обработанных uuencode, или передавать их на Web-сайт или
- FTP-сервер для получения другими людьми. Если у вас нет доступа к
- Web- или FTP-серверам, попросите в соответствующем списке рассылке
- FreeBSD кого-нибудь разместить изменения за вас.</para>
-
- <para>При работе с большим объёмом кода неизбежно возникает вопрос о
- соблюдении авторских прав. Допустимыми лицензионными соглашениями для
- кода, включаемого во FreeBSD, являются следующие:</para>
-
- <orderedlist>
- <listitem>
- <para>Лицензионное соглашение BSD<indexterm><primary>лицензионное
- соглашение BSD</primary></indexterm>. Оно является самым
- предпочтительным из-за <quote>отсутствия дополнительных
- условий</quote> и общей привлекательности для коммерческих
- компаний. Проект FreeBSD далёк от того, чтобы выступать против
- коммерческого использования, но активно популяризирует такое
- пересечение коммерческих интересов, которое позволит постепенно
- запустить механизм инвестиций во FreeBSD.</para>
- </listitem>
-
- <listitem>
- <para>
- <indexterm>
- <primary>GPL</primary>
- <see>GNU General Public License</see>
- </indexterm>
-
- <indexterm><primary>GNU General Public License</primary></indexterm>
-
- GNU General Public License, или <quote>GPL</quote>. Это
- лицензионное соглашение не очень популярно у нас из-за объёма
- требований, которые нужно выполнять всем, кто собирается
- использовать код в коммерческих целях. Однако, учитывая абсолютное
- превосходство объёма этого кода (компилятор, ассемблер, инструменты
- форматирования текста и так далее) было бы глупо отказываться от
- дополнительных разработок, подпадающих под действие этой лицензии.
- Код, распространяемый по условиям лицензионного соглашения GPL
- также размещается в отдельной части дерева исходных текстов, в
- <filename>/sys/gnu</filename> или
- <filename>/usr/src/gnu</filename>, и поэтому
- легко идентифицируется всяким, для кого GPL представляет
- проблему.</para>
- </listitem>
- </orderedlist>
-
- <para>Разработки, подпадающие под действие других типов лицензионных
- соглашений, должны быть тщательно просмотрены перед принятием
- решения об их включении во FreeBSD. Разработки, на которые
- распространяются жёсткие ограничения коммерческих лицензионных
- соглашений, обычно отвергаются, а авторам всегда предлагается
- распространять подобные изменения по собственным каналам.</para>
-
- <para>Для того, чтобы на вашу работу распространялись условия
- лицензионного ограничения <quote>в стиле BSD</quote>, разместите
- следующий текст в самом начале каждого файла с исходными текстами,
- которые вы хотите защитить, заменив текст между <literal>%%</literal>
- соответствующей информацией:</para>
-
- <programlisting>Copyright (c) %%полные_номера_годов%%
- %%ваше_имя%%, %%ваш_штат%% %%ваш_почтовый_индекс%%.
- All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer as
- the first lines of this file unmodified.
-2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY %%your_name_here%% ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-IN NO EVENT SHALL %%your_name_here%% BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- &dollar;&os;&dollar;</programlisting>
-
- <para>Для вашего удобства копия этого текста размещена в файле
- <filename>/usr/share/examples/etc/bsd-style-copyright</filename>.
- </para>
- </sect2>
-
- <sect2>
- <title>Деньги, оборудование или Internet-доступ</title>
-
- <para>Мы всегда с удовольствием примем материальную помощь, нужную для
- дальнейшего существования Проекта FreeBSD, а в добровольном проекте,
- типа нашего маленькая помощь может послужить долго! Безвозмездная
- передача вычислительной техники также очень важна для расширения списка
- поддерживаемого периферийного оборудования, так как обычно у нас нет
- средств для самостоятельного его приобретения.</para>
-
- <sect3 xml:id="donations">
- <title>Финансовая помощь</title>
-
- <para>The FreeBSD Foundation является некоммерческой организацией,
- освобождённой от уплаты налогов, созданной с целью реализации целей
- Проекта FreeBSD. Как организация типа 501(c)3, Фонд обычно
- освобождается от федерального налога США на прибыль. Суммы
- безвозмездных пожертвований таким организациям часто вычитаются
- из общей суммы налогооблагаемой прибыли.</para>
-
- <para>Финансовая помощь может быть направлена в виде чеков на адрес:
- <address>
- The FreeBSD Foundation
- <street>P.O. Box 20247</street>
- <city>Boulder</city>,
- <state>CO</state> <postcode>80308</postcode>
- <country>USA</country>
- </address>
- </para>
-
- <para>The FreeBSD Foundation теперь может принимать помощь через Web
- по системе PayPal. Для направления помощи, пожалуйста, посетите
- <link xlink:href="http://www.freebsdfoundation.org">Web-сайт</link>
- Фонда.</para>
-
- <para>Дополнительную информацию о Фонде FreeBSD можно найти на
- странице, содержащей <link xlink:href="http://people.FreeBSD.org/~jdp/foundation/announcement.html">
- вводную информации о Фонде FreeBSD</link>. Для того, чтобы
- обратиться в Фонд по электронной почте, напишите письмо на адрес
- <email>bod@FreeBSDFoundation.org</email>.</para>
- </sect3>
-
- <sect3>
- <title>Помощь в виде оборудования</title>
-
- <indexterm><primary>безвозмездная помощь</primary></indexterm>
-
- <para>Проект FreeBSD с удовольствие примет помощь в виде оборудования,
- которому он найдёт хорошее применение. Если вы заинтересованы в
- передаче оборудования, пожалуйста, обратитесь к <link xlink:href="&url.base;/donations/">Руководству Центра
- пожертвований</link>.</para>
- </sect3>
- </sect2>
- </sect1>
-
- <index/>
-</article>
diff --git a/ru_RU.KOI8-R/articles/cups/Makefile b/ru_RU.KOI8-R/articles/cups/Makefile
deleted file mode 100644
index e6a7dd26e5..0000000000
--- a/ru_RU.KOI8-R/articles/cups/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# The FreeBSD Russian Documentation Project
-#
-# $FreeBSD$
-#
-# Article: CUPS on FreeBSD
-#
-# Original revision: r39631
-#
-
-DOC?= article
-
-FORMATS?= html
-
-INSTALL_COMPRESSED?=gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= article.xml
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/ru_RU.KOI8-R/articles/cups/article.xml b/ru_RU.KOI8-R/articles/cups/article.xml
deleted file mode 100644
index 2f08d736ac..0000000000
--- a/ru_RU.KOI8-R/articles/cups/article.xml
+++ /dev/null
@@ -1,360 +0,0 @@
-<?xml version="1.0" encoding="koi8-r"?>
-<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
- "http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
-<!--
- The FreeBSD Russian Documentation Project
-
- $FreeBSD$
-
- Original revision: r46469
--->
-<!--
-Translation: Taras Korenko,
- Alexander Nedotsukov
- -->
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="ru">
- <info><title>Универсальная Система Печати Unix на FreeBSD</title>
-
-
- <authorgroup>
- <author><personname><firstname>Chess</firstname><surname>Griffin</surname></personname><affiliation>
- <address><email>chess@chessgriffin.com</email></address>
- </affiliation></author>
- </authorgroup>
-
- <legalnotice xml:id="trademarks" role="trademarks">
- &tm-attrib.freebsd;
- &tm-attrib.general;
- </legalnotice>
-
- <pubdate>$FreeBSD$</pubdate>
-
- <releaseinfo>$FreeBSD$</releaseinfo>
-
- <abstract>
- <para>Эта статья посвящена конфигурированию Универсальной Системы Печати
- UNIX (CUPS) на &os;.</para>
- </abstract>
- </info>
-
- <sect1 xml:id="printing-cups">
- <title>Знакомимся с Универсальной Системой Печати UNIX (CUPS)</title>
-
- <indexterm><primary>printing</primary></indexterm>
- <indexterm><primary>CUPS</primary></indexterm>
-
- <para>Универсальная Система Печати UNIX (Common Unix Printing System, или
- сокращенно <application>CUPS</application>), предоставляет переносимую
- среду печати для &unix; и &unix;-подобных операционных систем. Она была
- разработана компанией Easy Software Products, чтобы предоставить
- стандартное решение в печати для всех разработчиков и пользователей
- &unix;.</para>
-
- <para>Универсальная Система Печати UNIX использует протокол межсетевой
- печати (Internet Printing Protocol, <acronym>IPP</acronym>) как
- основу для управления заданиями на печать и очередями. Также
- частично поддерживаются следующие протоколы: <acronym>LPD</acronym>,
- <acronym>SMB</acronym> и AppSocket (также известный как JetDirect).
- <application>CUPS</application> дает возможность обзора сетевых
- принтеров и использования опций, базирующихся на ПостСкрипт Описании
- Принтеров (PostScript Printer Definition, <acronym>PPD</acronym>),
- чтобы поддерживать в &unix; общепринятые традиции печати. В результате
- <application>CUPS</application> идеально подходит для совместного
- использования принтеров в смешанной среде из &os;, &linux;,
- &macos;&nbsp;X или &windows;.</para>
-
- <para>Официальный сайт Универсальной Системы Печати UNIX &mdash;
- <uri xlink:href="http://www.cups.org/">http://www.cups.org/</uri>.</para>
- </sect1>
-
- <sect1 xml:id="printing-cups-install">
- <title>Установка сервера печати CUPS</title>
-
- <para>Для установки <application>CUPS</application> используя пакет,
- запустите на выполнение такую команду:</para>
-
- <screen>&prompt.root; <userinput>pkg install cups</userinput></screen>
-
- <para>Другие необязательные, но рекомендуемые к установке
- пакеты это <package>print/gutenprint-cups</package>
- и <package>print/hplip</package>, каждый из которых
- добавляет драйвера и утилиты для разнообразных принтеров. После
- установки файлы конфигурации <application>CUPS</application> могут быть
- найдены в директории <filename>/usr/local/etc/cups</filename>.</para>
- </sect1>
-
- <sect1 xml:id="printing-cups-configuring-server">
- <title>Настройка сервера печати CUPS</title>
-
- <para>Чтобы настроить сервер <application>CUPS</application> необходимо
- отредактировать несколько конфигурационных файлов. Для начала создайте
- или исправьте файл <filename>/etc/devfs.rules</filename> и добавьте
- следующую информацию для того, чтобы установить соответствующие права
- на все потенциальные файлы устройств принтеров и связать принтеры
- с группой пользователей <systemitem class="groupname">cups</systemitem>:</para>
-
- <programlisting>[system=10]
-add path 'unlpt*' mode 0660 group cups
-add path 'ulpt*' mode 0660 group cups
-add path 'lpt*' mode 0660 group cups
-add path 'usb/<replaceable>X</replaceable>.<replaceable>Y</replaceable>.<replaceable>Z</replaceable>' mode 0660 group cups</programlisting>
-
- <note>
- <para>Замените <replaceable>X</replaceable>,
- <replaceable>Y</replaceable> и <replaceable>Z</replaceable> номерами
- соответствующего принтеру целевого устройства USB, отображаемого
- в каталоге <filename>/dev/usb</filename>. Чтобы
- найти требуемые значения, просмотрите вывод &man.dmesg.8; и найдите
- связанное с вашим принтером имя специального устройства
- <filename>ugen<replaceable>X</replaceable>.<replaceable>Y</replaceable></filename>,
- последнее будет символической ссылкой на искомое устройство в каталоге
- <filename>/dev/usb</filename>.</para>
- </note>
-
- <para>Затем, добавьте следующие две записи в
- <filename>/etc/rc.conf</filename>:</para>
-
- <programlisting>cupsd_enable="YES"
-devfs_system_ruleset="system"</programlisting>
-
- <para>Эти две записи будут запускать сервер печати
- <application>CUPS</application> во время загрузки системы и
- применять локальное правило devfs, созданное выше.</para>
-
- <para>Для того, чтобы печать <application>CUPS</application> стала
- доступна для некоторых &microsoft.windows; клиентов, необходимо
- раскомментировать следующую запись в
- <filename>/usr/local/etc/cups/mime.types</filename> и
- <filename>/usr/local/etc/cups/mime.convs</filename>:</para>
-
- <programlisting>application/octet-stream</programlisting>
-
- <para>По окончанию внесения изменений службы &man.devfs.8; и
- <application>CUPS</application> необходимо перезапустить, для чего
- перезагрузите операционную систему или выполните от пользователя
- <systemitem class="username">root</systemitem> следующие две команды:</para>
-
- <screen>&prompt.root; <userinput>/etc/rc.d/devfs restart</userinput>
-&prompt.root; <userinput>/usr/local/etc/rc.d/cupsd restart</userinput></screen>
- </sect1>
-
- <sect1 xml:id="printing-cups-configuring-printers">
- <title>Настройка принтеров на сервере печати CUPS</title>
-
- <para>После того, как система <application>CUPS</application> была
- установлена и сконфигурирована, системный администратор может начать
- конфигурирование локальных принтеров, подключенных к серверу печати
- <application>CUPS</application>. Эта часть процесса очень похожа,
- если не идентична настройке принтеров <application>CUPS</application>
- в других &unix;-подобных операционных системах, таких как
- дистрибутивы &linux;.</para>
-
- <para>Основным способом управления и администрирования сервера
- <application>CUPS</application> является веб-интерфейс,
- на который можно попасть запустив веб-браузер и набрав
- <uri xlink:href="http://localhost:631">http://localhost:631</uri> в его адресной строке.
- Если сервер <application>CUPS</application> находится на другой
- машине в сети, замените <systemitem>localhost</systemitem> на
- <acronym>IP</acronym> адрес сервера. Веб-интерфейс
- <application>CUPS</application> достаточно очевиден, там есть разделы
- для управления принтерами и заданиями на печать, авторизацией
- пользователей и т.п. Кроме того, в правой части страницы
- администрирования есть несколько флажков (check-box), дающих
- удобный доступ к часто меняемым установкам, таким как разрешение
- публичного доступа к подключенным к системе принтерам, предоставление
- удаленного управления сервером <application>CUPS</application>,
- изменение уровня доступа пользователей к принтерам и их заданиям
- на печать.</para>
-
- <para>Добавление принтера в общем такое же простое, как нажатие
- <quote>Add Printer</quote> на странице администрирования
- веб-интерфейса сервера <application>CUPS</application> или как нажатие
- одной из кнопок <quote>New Printers Found</quote> на той же
- странице администрирования. Когда перед вами предстанет выпадающий
- список <quote>Device</quote>, просто выберите требуемый локально
- подключенный принтер, а дальше следуйте подсказкам интерфейса.
- В случае если были установлены порты или пакеты
- <package>print/gutenprint-cups</package> или
- <package>print/hplip</package>, как указывалось выше,
- дополнительные драйвера печати будут доступны на последующих
- страницах, что может обеспечить большую надежность и расширенные
- возможности.</para>
- </sect1>
-
- <sect1 xml:id="printing-cups-clients">
- <title>Конфигурирование клиентов CUPS</title>
-
- <para>После того, как сервер <application>CUPS</application> был настроен,
- принтеры добавлены и сделаны доступными в сети, следующий шаг &mdash;
- это настройка клиентов или машин, которые будут иметь доступ к серверу
- <application>CUPS</application>. Если у вас единственный настольный
- компьютер, который работает одновременно и сервером и клиентом,
- то в большинстве этой информации вы не нуждаетесь.</para>
-
- <sect2 xml:id="printing-cups-clients-unix">
- <title>&unix; клиенты</title>
-
- <para>На &unix; клиентах также потребуется установить
- <application>CUPS</application>. После установки системы
- печати на клиенте, <application>CUPS</application>-принтеры,
- присутствующие в сети, чаще всего автоматически находятся
- менеджерами принтеров разных графических оболочек, таких как
- <application>GNOME</application> или <application>KDE</application>.
- В качестве альтернативы, вы можете воспользоваться веб-интерфейсом
- <application>CUPS</application> на клиентской машине по адресу
- <uri xlink:href="http://localhost:631">http://localhost:631</uri> и на странице
- администрирования выбрать <quote>Add Printer</quote>. Когда
- перед вами предстанет выпадающий список <quote>Device</quote>,
- просто выберите сетевой <application>CUPS</application> принтер, если
- он был обнаружен автоматически, или выберите <literal>ipp</literal>
- или <literal>http</literal> и введите <acronym>IPP</acronym> или
- <acronym>HTTP</acronym> адрес (<acronym>URI</acronym>) сетевого
- <application>CUPS</application> принтера:</para>
-
- <programlisting>ipp://<replaceable>server-name-or-ip</replaceable>/printers/<replaceable>printername</replaceable></programlisting>
-
- <programlisting>http://<replaceable>server-name-or-ip</replaceable>:631/printers/<replaceable>printername</replaceable></programlisting>
-
- <para>Если <application>CUPS</application> клиент не находит в сети
- принтеры, доступные через сервер <application>CUPS</application>,
- то иногда помогает создание или изменение файла
- <filename>/usr/local/etc/cups/client.conf</filename> с добавлением
- единственной записи, подобной следующей:</para>
-
- <programlisting>ServerName <replaceable>server-ip</replaceable></programlisting>
-
- <para>В этом случае <replaceable>server-ip</replaceable> необходимо
- заменить на <acronym>IP</acronym> адрес сервера
- <application>CUPS</application> в сети.</para>
- </sect2>
-
- <sect2 xml:id="printing-cups-clients-windows">
- <title>&windows;-клиенты</title>
-
- <para>Версии &windows;, предшествующие XP, не имели встроенной
- поддержки протокола <acronym>IPP</acronym>. Однако &windowsxp;
- и более поздние версии уже обладают такой возможностью. Следовательно,
- добавить <application>CUPS</application> принтер в этих версиях
- &windows; довольно просто. В большинстве случаев, администратору
- &windows; потребуется запустить мастера установки принтера
- (<literal>Add Printer</literal>) выбрать сетевой принтер
- (<literal>Network Printer</literal>), а затем ввести
- <acronym>URI</acronym> следующего формата:</para>
-
- <programlisting>http://<replaceable>server-name-or-ip</replaceable>:631/printers/<replaceable>printername</replaceable></programlisting>
-
- <para>Если используется версия &windows; без поддержки протокола
- <acronym>IPP</acronym>, то общим случаем подключения к
- <application>CUPS</application>-принтеру будет совместное
- использование <application>CUPS</application> и
- <package>net/samba3</package>. Описание этой
- возможности выходит за рамки данной статьи.</para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="printing-cups-troubleshooting">
- <title>Устранение неполадок с CUPS</title>
-
- <para>Проблемы c <application>CUPS</application> часто возникают
- из-за неверных прав доступа. Сначала дважды проверьте права доступа
- в &man.devfs.8; (сверьтесь с уже описанными выше). Затем, проверьте
- реальные права устройств, созданных в файловой системе. Также бывает
- полезным удостовериться, что ваш пользователь входит в группу
- <systemitem class="groupname">cups</systemitem>. Если у вас складывается впечатление,
- что флажки прав доступа на странице администрирования веб-интерфейса
- <application>CUPS</application> не работают, то иным решением
- может быть резервное копирование конфигурационного файла
- <filename>/usr/local/etc/cups/cupsd.conf</filename> и редактирование
- разных опций конфигурации с подбором их комбинаций.
- Ниже приведено содержимое тестового файла конфигурации
- <filename>/usr/local/etc/cups/cupsd.conf</filename>.
- Пожалуйста, обратите внимание на то, что безопасность в этом примере
- <filename>cupsd.conf</filename> была пожертвована в угоду простоте
- настройки; как только администратор успешно подсоединится к серверу
- <application>CUPS</application> и сконфигурирует клиентов,
- рекомендуется пересмотреть данную конфигурацию и добавить разграничение
- доступа.</para>
-
- <programlisting># Log general information in error_log - change "info" to "debug" for
-# troubleshooting...
-LogLevel info
-
-# Administrator user group...
-SystemGroup wheel
-
-# Listen for connections on Port 631.
-Port 631
-#Listen localhost:631
-Listen /var/run/cups.sock
-
-# Show shared printers on the local network.
-Browsing On
-BrowseOrder allow,deny
-#BrowseAllow @LOCAL
-BrowseAllow 192.168.1.* # change to local LAN settings
-BrowseAddress 192.168.1.* # change to local LAN settings
-
-# Default authentication type, when authentication is required...
-DefaultAuthType Basic
-DefaultEncryption Never # comment this line to allow encryption
-
-# Allow access to the server from any machine on the LAN
-&lt;Location /&gt;
- Order allow,deny
- #Allow localhost
- Allow 192.168.1.* # change to local LAN settings
-&lt;/Location&gt;
-
-# Allow access to the admin pages from any machine on the LAN
-&lt;Location /admin&gt;
- #Encryption Required
- Order allow,deny
- #Allow localhost
- Allow 192.168.1.* # change to local LAN settings
-&lt;/Location&gt;
-
-# Allow access to configuration files from any machine on the LAN
-&lt;Location /admin/conf&gt;
- AuthType Basic
- Require user @SYSTEM
- Order allow,deny
- #Allow localhost
- Allow 192.168.1.* # change to local LAN settings
-&lt;/Location&gt;
-
-# Set the default printer/job policies...
-&lt;Policy default&gt;
- # Job-related operations must be done by the owner or an adminstrator...
- &lt;Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs \
-Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription \
-Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job \
-CUPS-Move-Job&gt;
- Require user @OWNER @SYSTEM
- Order deny,allow
- &lt;/Limit&gt;
-
- # All administration operations require an adminstrator to authenticate...
- &lt;Limit Pause-Printer Resume-Printer Set-Printer-Attributes Enable-Printer \
-Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs \
-Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer \
-Promote-Job Schedule-Job-After CUPS-Add-Printer CUPS-Delete-Printer CUPS-Add-Class \
-CUPS-Delete-Class CUPS-Accept-Jobs CUPS-Reject-Jobs CUPS-Set-Default&gt;
- AuthType Basic
- Require user @SYSTEM
- Order deny,allow
- &lt;/Limit&gt;
-
- # Only the owner or an administrator can cancel or authenticate a job...
- &lt;Limit Cancel-Job CUPS-Authenticate-Job&gt;
- Require user @OWNER @SYSTEM
- Order deny,allow
- &lt;/Limit&gt;
-
- &lt;Limit All&gt;
- Order deny,allow
- &lt;/Limit&gt;
-&lt;/Policy&gt;</programlisting>
- </sect1>
-
- <index/>
-</article>
diff --git a/ru_RU.KOI8-R/articles/explaining-bsd/Makefile b/ru_RU.KOI8-R/articles/explaining-bsd/Makefile
deleted file mode 100644
index abdb5630fc..0000000000
--- a/ru_RU.KOI8-R/articles/explaining-bsd/Makefile
+++ /dev/null
@@ -1,27 +0,0 @@
-#
-# The FreeBSD Russian Documentation Project
-#
-# $FreeBSD$
-# $FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/explaining-bsd/Makefile,v 1.6 2005/05/28 13:32:41 andy Exp $
-#
-# Article: Explaining BSD
-#
-# Original revision: r39631
-#
-
-MAINTAINER=kappa@FreeBSD.org.ua
-
-DOC?= article
-
-FORMATS?= html
-WITH_ARTICLE_TOC?= YES
-
-INSTALL_COMPRESSED?= gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= article.xml
-
-URL_RELPREFIX?= ../../../..
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/ru_RU.KOI8-R/articles/explaining-bsd/article.xml b/ru_RU.KOI8-R/articles/explaining-bsd/article.xml
deleted file mode 100644
index ced328d306..0000000000
--- a/ru_RU.KOI8-R/articles/explaining-bsd/article.xml
+++ /dev/null
@@ -1,643 +0,0 @@
-<?xml version="1.0" encoding="koi8-r"?>
-<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
- "http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
-<!--
- The FreeBSD Russian Documentation Project
-
- $FreeBSD$
- $FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/explaining-bsd/article.xml,v 1.11 2007/01/06 18:28:16 gad Exp $
-
- Original revision: r46457
--->
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="ru">
- <info><title>Что такое BSD</title>
-
-
- <author><personname><firstname>Greg</firstname><surname>Lehey</surname></personname><affiliation>
- <address><email>grog@FreeBSD.org</email></address>
- </affiliation></author>
-
- <legalnotice xml:id="trademarks" role="trademarks">
- &tm-attrib.freebsd;
- &tm-attrib.amd;
- &tm-attrib.apple;
- &tm-attrib.intel;
- &tm-attrib.linux;
- &tm-attrib.opengroup;
- &tm-attrib.sparc;
- &tm-attrib.sun;
- &tm-attrib.unix;
- &tm-attrib.general;
- </legalnotice>
-
- <pubdate>$FreeBSD$</pubdate>
-
- <releaseinfo>$FreeBSD$</releaseinfo>
-
- <abstract>
- <para>В мире программ с открытыми исходниками, слово
- <quote>Linux</quote> практически стало синонимом слова
- <quote>Операционная Система</quote>, хотя это далеко не
- единственная операционная система &unix;, исходные коды которой
- доступны широкой публике. Согласно данным <link xlink:href="http://www.leb.net/hzo/ioscount/data/r.9904.txt">Internet
- Operating System Counter</link>, в апреле 1999-го 31,3% всех
- подключённых к Internet машин работали под Linux. 14,6%
- использовали BSD &unix;. Некоторые из мировых лидеров в области
- Web-услуг, например <link xlink:href="http://www.yahoo.com/">Yahoo!</link>,
- работают под BSD. Самый загруженный в мире FTP-сервер 1999 года
- (сейчас он не работает), <link xlink:href="ftp://ftp.cdrom.com/">
- ftp.cdrom.com</link>, функционировал под управлением BSD и передавал
- 1,4 Тбайта данных в день. Очевидно, что это
- не узкий, специализированный рынок: можно сказать, что BSD &mdash;
- это тщательно скрываемая тайна.</para>
-
- <para>Так в чём же секрет? Почему известность BSD оставляет
- желать лучшего? Эта публикация ставить целью ответить на эти и
- другие вопросы.</para>
-
- <para>На протяжении всего текста обращайте внимание на
- <emphasis>выделенные</emphasis> отличия BSD от Linux.</para>
- </abstract>
- </info>
-
- <sect1 xml:id="what-is-bsd">
- <title>Что такое BSD?</title>
-
- <para>BSD означает <quote>Berkeley Software Distribution</quote>.
- Так называлось программное обеспечение, распространявшееся в
- исходных кодах Калифорнийским Университетом в Беркли, которое
- сначала представляло из себя дополнения к операционной системе
- &unix; компании AT&amp;T. На основе версии 4.4BSD-Lite были
- созданы несколько операционных систем с открытыми исходными
- кодами. В их состав включены разработки других проектов, среди
- которых особо следует выделить Проект GNU. Вот что такое
- собственно операционная система BSD:</para>
-
- <itemizedlist>
- <listitem>
- <para>Ядро BSD, отвечающее за планировку процессов, управление
- памятью, поддержку многопроцессорных систем (SMP), работу с
- устройствами и так далее.</para>
-
- <para><emphasis>В отличие от Linux, существует несколько
- ядер BSD, отличающихся возможностями.</emphasis></para>
- </listitem>
-
- <listitem>
- <para>Библиотека C, основной системный интерфейс
- программирования.</para>
-
- <para><emphasis>Библиотека C в BSD основывается на коде из
- Беркли, а не из Проекта GNU.</emphasis></para>
- </listitem>
-
- <listitem>
- <para>Оболочки, файловые утилиты, компиляторы, редакторы
- связей и другие утилиты пользователя.</para>
-
- <para><emphasis>Некоторые из них базируются на коде GNU, а
- некоторые -- нет.</emphasis></para>
- </listitem>
-
- <listitem>
- <para>Система X Window, отвечающая за графический интерфейс.</para>
-
- <para>Система X Window, которая используется в большинстве версий BSD,
- поддерживается <link xlink:href="http://www.X.org/">проектом X.Org</link>.
- &os; дает пользователю возможность выбирать из множества
- графических оболочек, таких как <application>Gnome</application>,
- <application>KDE</application> или <application>Xfce</application>;
- а также из множества легких оконных менеджеров наподобие
- <application>Openbox</application>,
- <application>Fluxbox</application> или
- <application>Awesome</application>.</para>
- </listitem>
-
- <listitem>
- <para>Множество разных других прикладных и системных программ.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 xml:id="what-a-real-unix">
- <title>Что, настоящий &unix;?</title>
-
- <para>Операционные системы BSD не являются клонами друг друга.
- Они лишь потомки общего предка, ОС &unix; от AT&amp;T
- Research, которая также дала начало современной ОС &unix; System
- V. Это факт может удивить, если вспомнить, что AT&amp;T никогда
- не открывала исходные коды своих разработок.</para>
-
- <para>Действительно, &unix; никогда не был программным обеспечением
- с открытым исходным кодом, и в законном смысле BSD определённо
- <emphasis>НЕ</emphasis> &unix;. Но с другой стороны, в AT&amp;T
- активно использовали чужие разработки, например программное
- обеспечение, разрабатываемое Группой по Исследованиям в области
- Информатики (CSRG) Калифорнийского Университета в Беркли. С
- 1976 CSRG выпускала свой код на магнитных лентах под названием
- <emphasis>Berkely Software Distribution</emphasis>, сокращённо
- <emphasis>BSD</emphasis>.</para>
-
- <para>Изначально дистрибутивы BSD представляли собой наборы
- пользовательских программ, и так было до тех пор, пока CSRG не
- заключила контракт с Агентством по Перспективным Проектам при
- Министерстве Обороны США (DARPA). Целью контракта было
- обновление коммуникационных протоколов, на которых держалась
- компьютерная сеть агентства -- ARPANET. Новое семейство протоколов
- получило имя <emphasis>Internet Protocols</emphasis> или
- <emphasis>TCP/IP</emphasis>, по названиям двух основных
- протоколов. Их первая широко известная реализация была выпущена
- в составе 4.2BSD в 1982 году.</para>
-
- <para>В течение восьмидесятых годов образовалось несколько
- компаний по производству рабочих станций. Многие из них
- предпочли купить лицензию на &unix;, нежели разрабатывать своё ПО
- с нуля. Следует отметить компанию Sun, которая поступила именно
- таким образом и на основе 4.2BSD выпустила свою операционную
- систему &sunos;. Когда AT&amp;T тоже решила заняться коммерческой
- продажей своей ОС &unix;, появилась на свет несколько аскетичная
- реализация под названием System III, за которой в скором времени
- последовала System V. Интересно, что эти версии не содержали в
- себе собственной поддержки работы в сети и использовали код
- BSD, в том числе реализацию TCP/IP и набор утилит, среди которых
- следует выделить оболочку <emphasis>csh</emphasis> и текстовый
- редактор <emphasis>vi</emphasis>. Все эти
- <quote>добавки</quote> совместно получили название
- <emphasis>Berkely Extensions</emphasis>.</para>
-
- <para>Дистрибутив BSD содержал код, принадлежавший AT&amp;T, и,
- следовательно, требовал лицензии. К 1990 году финансирование
- CSRG прекратилось, и группа была распущена. Кое-кто из бывших
- членов группы решил опубликовать код BSD отдельно от закрытого
- кода AT&amp;T. В концe концов это удалось, и так появилась на
- свет версия <emphasis>Networking Tape 2</emphasis> или
- <emphasis>Net/2</emphasis>. Net/2 не была законченной, цельной
- операционной системой: около 20% кода ядра отсутствовало. Один
- из членов CSRG, William F. Jolitz, дописал недостающий код и
- опубликовал результат в начале 1992 года под именем
- <emphasis>386BSD</emphasis>. В то же самое время другая группа
- бывших членов CSRG организовала коммерческую компанию <link xlink:href="http://www.bsdi.com/">Berkeley Software Design Inc.</link>
- и выпустила бета-версию операционной системы <link xlink:href="http://www.bsdi.com/">BSD/386</link>, которая базировалась
- на том же самом коде. Позже это название было изменено на
- BSD/OS.</para>
-
- <para>386BSD так никогда и не стала полноценной операционной
- системой. Зато в 1993 году из неё выделились два проекта: <link xlink:href="http://www.NetBSD.org/">NetBSD</link> и <link xlink:href="&url.base;/index.html">FreeBSD</link>. Изначально
- разработчики разделились на два лагеря из-за расхождений во
- мнениях относительно того, сколько же ещё можно ждать улучшений
- в 386BSD. В начале года образовалась NetBSD, а первая версия
- FreeBSD была готова только к его концу. Время шло, и
- технические различия возрастали. Вдобавок проекты поставили
- перед собой разные цели, как будет показано ниже. В 1996 году
- от NetBSD отделился ещё один проект &mdash; <link xlink:href="http://www.OpenBSD.org/">OpenBSD</link>, а в 2003 году от FreeBSD
- отделилась <link xlink:href="http://www.dragonflybsd.org/">DragonFlyBSD</link>.</para>
- </sect1>
-
- <sect1 xml:id="why-is-bsd-not-better-known">
- <title>Почему BSD недостаточно известна?</title>
-
- <para>Действительно, существует ряд причин этому недоразумению:</para>
-
- <orderedlist>
- <listitem>
- <para>Разработчики BSD часто больше заинтересованы в качестве
- своего кода и заняты его <quote>шлифовкой</quote>, а не
- рекламой.</para>
- </listitem>
-
- <listitem>
- <para>По большому счёту Linux своей популярностью обязан
- прежде всего внешним по отношению к проекту факторам,
- например средствам массовой информации и компаниям, которые
- решили сделать бизнес на предоставлении услуг пользователям
- Linux.</para>
- </listitem>
-
- <listitem>
- <para>Разработчики BSD, как правило, более опытны, чем
- разработчики Linux, и в силу этого часто уделяют меньше
- внимания облегчению жизни простым пользователям. Новичок
- чувствует себя более комфортно в среде Linux.</para>
- </listitem>
-
- <listitem>
- <para>В 1992 году компания AT&amp;T подала в суд на <link xlink:href="http://www.bsdi.com/">BSDI</link>, компанию-поставщика
- ОС BSD/386. Основным пунктом обвинения было то, что BSD/386
- содержала в себе закрытый код, принадлежавший AT&amp;T.
- Дело вроде бы уладили за пределами суда в 1994-ом, но целая
- серия вторичных тяжб и по сей день отравляет жизнь многим
- людям. Совсем недавно, в марте 2000, в Internet была
- опубликована статья, утверждавшая, что судебное
- разбирательство окончательно завершено (<quote>recently
- settled</quote>).</para>
-
- <para>В результате разбирательства прояснился вопрос с
- названиями: если в 80-х годах BSD была известна под именем
- <quote>BSD &unix;</quote>, то с исключением последних следов
- кода, принадлежавшего AT&amp;T, BSD потеряла право
- называться &unix;. Вы можете заметить этот факт по
- изменившимся заглавиям книг: <quote>операционная система
- 4.3BSD &unix;</quote> и <quote>операционная система
- 4.4BSD</quote>.</para> </listitem>
-
- <listitem>
- <para>Существует мнение, что проекты BSD сильно отличаются и, в
- добавок, <quote>воюют</quote> между собой. <link xlink:href="http://interactive.wsj.com/bin/login?Tag=/&amp;URI=/archive/retrieve.cgi%253Fid%253DSB952470579348918651.djm&amp;">Статья
- в Wall Street Journal</link> называет это
- <quote>балканизацией</quote> среди проектов BSD. Можно
- утверждать, что такое мнение, как и описанная судебная
- тяжба, основывается прежде всего на событиях давно минувших
- дней.</para>
- </listitem>
- </orderedlist>
- </sect1>
-
- <sect1 xml:id="compairing-bsd-and-linux">
- <title>Сравнение BSD и Linux</title>
-
- <para>В чём заключается главная разница, к примеру, между
- Debian Linux и FreeBSD? Для среднего пользователя она на
- удивление мала: оба продукта представляют собой &unix;-подобные
- операционные системы. Оба продукта разрабатываются на
- некоммерческой основе (это не относится к некоторым другим
- дистрибутивам Linux). В этом разделе мы рассмотрим BSD в
- сравнении с Linux. Всё сказанное в основном будет касаться
- FreeBSD, которой принадлежит около 80% всех инсталляций BSD в
- мире, хотя отличия от NetBSD, OpenBSD и DragonFlyBSD в рамках предмета
- данной статьи незначительны.</para>
-
- <sect2>
- <title>Кому принадлежит BSD?</title>
-
- <para>Нельзя сказать, что какой-то конкретный человек или
- корпорация владеет BSD. Разработка и распространение ведутся
- группой высококвалифицированных и преданных проекту
- специалистов со всего мира. Некоторые компоненты BSD
- представляют собой отдельные проекты с открытым кодом со своими
- законами и коллективами разработчиков.</para>
- </sect2>
-
- <sect2>
- <title>Как выглядит процесс разработки и обновления BSD?</title>
-
- <para>Ядра BSD используют Open Source модель разработки. Каждый
- проект поддерживает публично доступное <emphasis>дерево
- исходников</emphasis> с помощью <link xlink:href="http://www.cvshome.org/">Concurrent Versions
- System</link> (CVS). Это дерево содержит абсолютно весь
- исходный код проекта, а также документацию и вспомогательные
- файлы. CVS позволяет пользователям получить копию дерева
- любой версии системы.</para>
-
- <para>Огромное число людей со всего мира участвуют в
- совершенствовании BSD. Все они разделены на три
- группы:</para>
-
- <itemizedlist>
- <listitem>
- <para><firstterm>Контрибуторы</firstterm>
- пишут код или документацию. Они не могут добавлять или
- изменять код непосредственно в дереве исходников проекта.
- Это привилегия особым образом зарегистрированных
- разработчиков, или <emphasis>коммиттеров
- (committers)</emphasis>, которые просматривают и тестируют
- присылаемый им код и включают его в дерево.</para>
- </listitem>
-
- <listitem>
- <para><firstterm>Коммиттеры</firstterm> являются разработчиками,
- которые имеют доступ на запись в дерево
- исходных кодов проекта. Чтобы стать коммиттером, человек
- должен проявить себя в той области, в которой он хочет
- работать.</para>
-
- <para>Каждый коммиттер по своему собственному усмотрению решает,
- нужно ли ему подтверждение правильности планируемых
- изменений от других разработчиков или нет. В общем
- случае опытный коммиттер может вносить очевидно выгодные
- изменения ни с кем не советуясь. К примеру, коммиттер
- проекта документации может исправлять опечатки или
- грамматические ошибки в документах без предварительного
- согласования. Напротив, далеко идущие или просто сложные
- изменения настоятельно рекомендуется представлять к
- обсуждению перед окончательным внесением в дерево. Бывают
- крайние случаи, когда член Core Team, выполняющий функцию
- архитектора проекта, может санкционировать немедленную
- отмену или <firstterm>откат</firstterm>
- каких-то изменений в дереве. Все коммиттеры обязательно
- получают уведомление о каждом изменении в дереве по
- электронной почте, так что их невозможно сохранить в
- тайне.</para>
- </listitem>
-
- <listitem>
- <para><firstterm>Правление</firstterm> (Core Team). В проектах
- FreeBSD и NetBSD имеются управляющие советы, которые занимаются
- координационной деятельностью. Их роль, права и обязанности не
- всегда чётко определены. Необязательно (хотя в порядке вещей)
- быть коммиттером для того, чтобы входить в состав Core
- Team. Правила, которым следует Core Team, различаются
- между проектами, но в общем случае члены Core Team
- определяют общее направление развития системы в большей
- степени, чем все остальные разработчики.</para>
- </listitem>
- </itemizedlist>
-
- <para>Такое положение вещей отличается от принятого в Linux:</para>
-
- <orderedlist>
- <listitem>
- <para>Не существует человека, который бы контролировал
- содержимое системы. На практике значение этого отличия
- оказывается переоценённым, так как Ведущий Архитектор
- может всегда потребовать откат изменений. Ко всему
- прочему, в проекте Linux на современном этапе изменения в
- код вносятся тоже не одним, а несколькими людьми.</para>
- </listitem>
-
- <listitem>
- <para>С другой стороны, <emphasis>существует</emphasis>
- центральное хранилище (repository), откуда можно получить
- полный код всей системы, причём как современных, так и
- предыдущих версий.</para>
- </listitem>
-
- <listitem>
- <para>Проекты BSD являются цельными <quote>Операционными
- Системами</quote>, а не просто ядрами. Это различие тоже
- иногда переоценивают: ни BSD, ни Linux не представляют
- ценности без приложений, а они порой одни и те же в обеих
- средах.</para>
- </listitem>
-
- <listitem>
- <para>В результате формализованной процедуры поддержки
- единого дерева исходников в CVS процесс разработки BSD
- является полностью открытым, и мы получаем возможность
- доступа к любой версии системы по номеру или по дате. CVS
- также очень хорошо подходит для последовательных изменений
- в коде: к примеру, хранилище кода FreeBSD обновляется
- около ста раз за день, и большинство этих изменений весьма
- малы и незначительны в отдельности друг от друга.</para>
- </listitem>
- </orderedlist>
- </sect2>
-
- <sect2>
- <title>Версии BSD</title>
-
- <para>FreeBSD, NetBSD и OpenBSD предоставляет миру три различных варианта
- системы. Как и в Linux, версиям присваиваются номера,
- например 1.4.1 или 3.5. В добавок, номер версии имеет суффикс
- -- обозначение варианта, которое указывает на цели той или
- иной версии.</para>
-
- <orderedlist>
- <listitem>
- <para>Версия для разработчиков носит название
- <firstterm>CURRENT</firstterm>. FreeBSD присваивает ей и
- номер, например FreeBSD 5.0-CURRENT. NetBSD использует
- чуть-чуть другую схему наименований и добавляет к номеру
- однобуквенный суффикс, обозначающий изменения во
- внутренних интерфейсах. Пример: NetBSD 1.4.3G. OpenBSD не
- нумерует разрабатываемую версию
- (<quote>OpenBSD-current</quote>). Все новые разработки
- производятся именно на этой <quote>ветке</quote> (branch)
- системы.</para>
- </listitem>
-
- <listitem>
- <para>Через определённые интервалы от 3 до 6 месяцев проект
- выпускает версию <firstterm>RELEASE</firstterm>, которая
- распространяется на CD-ROM и доступна для скачивания с серверов
- FTP. Примерами таких версий могут служить OpenBSD
- 2.6-RELEASE и NetBSD 1.4-RELEASE. Этот вариант
- предназначен для конечных пользователей. NetBSD также
- предоставляет так называемые <emphasis>исправленные релизы
- (patch releases)</emphasis>, обозначаемые третьей цифрой в
- номере, например NetBSD 1.4.2.</para>
- </listitem>
-
- <listitem>
- <para>По мере обнаружения ошибок в версии RELEASE
- необходимые исправления вносятся в дерево CVS.
- Получающаяся система в проекте FreeBSD носит название
- <firstterm>STABLE</firstterm>, а в NetBSD и OpenBSD
- продолжает называться RELEASE. Некоторые мелкие улучшения
- тоже иногда вносятся в эту версию после продолжительного
- периода тестирования в CURRENT.</para>
- </listitem>
- </orderedlist>
-
- <para><emphasis>Linux, напротив, поддерживает два различных
- дерева исходников, которые называются соответственно
- стабильной версией и версией для разработчиков. Стабильные
- версии имеют чётный вторичный номер, например 2.0, 2.2 или
- 2.4. Версии для разработчиков используют нечётные номера,
- такие как 2.1, 2.3 или 2.5. Во обоих случаях, к двойному
- номеру версии добавляется ещё одно число, указывающее на
- конкретный релиз. Стоит также отметить, что каждый поставщик
- предоставляет свой собственный вариант пользовательских
- программ (userland), так что имя дистрибутива тоже имеет
- значение. Естественно, что поставщики нумеруют свои изделия
- каждый по-своему, и, таким образом, мы получаем что-то вроде
- <quote>TurboLinux 6.0 с ядром 2.2.14</quote>.</emphasis></para>
- </sect2>
-
- <sect2>
- <title>Какие существуют варианты BSD?</title>
-
- <para>В отличие от многочисленных дистрибутивов Linux, в мире существует
- лишь четыре крупных BSD проекта с открытыми исходными кодами.
- Каждый из них поддерживает своё собственное дерево исходников
- и своё собственное ядро. На практике однако оказывается,
- что пользовательские части (userland) различных BSD отличаются
- гораздо меньше, чем у разных дистрибутивов Linux.</para>
-
- <para>Цели каждого из проектов не поддаются чёткой формулировке.
- Различия между ними весьма субъективны. В основном,</para>
-
- <itemizedlist>
- <listitem>
- <para>проект &os; нацелен на повышение производительности
- и простоту в использовании конечными пользователями.
- &os; очень ценят в среде web-хостеров. Эта ОС работает
- на <link xlink:href="&url.base;/platforms/">нескольких
- аппаратных платформах</link>, число пользователей &os;
- значительно превышает число пользователей других
- проектов.</para>
- </listitem>
-
- <listitem>
- <para>проект NetBSD ставит целью максимальную мобильность
- (или переносимость) кода: девиз <quote>конечно NetBSD
- работает на этом</quote>. NetBSD поддерживает машины от
- крошечных палмтопов до огромных серверов и использовалась
- NASA в космических миссиях. Это хороший выбор для старой
- не-&intel; аппаратуры.</para>
- </listitem>
-
- <listitem>
- <para>проект OpenBSD нацелен на безопасность и
- <quote>чистоту</quote> кода. С помощью комбинирования
- концепций открытых исходников и скрупулёзного анализа кода
- проект демонстрирует чудеса корректности работы системы. В
- силу названных причин совершенно естественно, что OpenBSD
- выбирают организации, для которых очень важна защита
- информации, например банки, фондовые биржи и различные
- департаменты правительства США. Также как и NetBSD,
- проект поддерживает целый ряд аппаратных платформ.</para>
- </listitem>
-
- <listitem>
- <para>Целью DragonFlyBSD является достижение высокой
- производительности и масштабируемости в любой ситуации&mdash;как
- для одиночных однопроцессорных, так и крупных кластерных систем.
- DragonFlyBSD ставит перед собой несколько долгосрочных технических
- задач, но основной упор делается на создание инфраструктуры для
- работы с SMP, которая была бы проста для понимания, поддержки и
- ведения в ней разработок.</para>
- </listitem>
- </itemizedlist>
-
- <para>Следует упомянуть ещё две операционных системы BSD &unix;,
- которые не предоставляют публичного доступа к своим исходным
- кодам. Это BSD/OS компании BSDI и &macos; X компании Apple.</para>
-
- <itemizedlist>
- <listitem>
- <para>BSD/OS являлась самым старым из потомков 4.4BSD.
- Исходный код был недоступен широкой публике, хотя лицензия на
- него стоила относительно немного. BSD/OS во многом похожа
- на FreeBSD. Через два года после поглощения BSDi компанией Wind
- River Systems, BSD/OS перестала существовать как отдельный продукт.
- Поддержку и исходный код ещё можно получить у Wind River, но все
- новые разработки сосредоточены на встраиваемой операционной
- системой VxWorks.</para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="http://www.apple.com/macosx/server/">&macos;
- X</link> &mdash; это самая последняя версия операционной
- системы для линейки компьютеров &apple; &mac;.
- Ядро этой операционной системы, <link xlink:href="http://developer.apple.com/darwin/">Darwin</link>,
- построенное на коде BSD, доступно в виде полностью
- функциональной операционной системы с открытым кодом для
- компьютеров архитектур x86 и PPC. Однако код графической системы
- Aqua/Quartz и многих других проприетарных компонентов &macos; X
- остаётся закрытым. Несколько разработчиков Darwin являются также
- коммиттерами FreeBSD и наоборот.</para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2>
- <title>В чём отличие между лицензией BSD и Общественной
- Лицензией GNU (GPL)?</title>
-
- <para>Linux распространяется на условиях лицензии
- <link xlink:href="http://www.fsf.org/copyleft/gpl.html">GNU General
- Public License</link> (GPL), русский перевод которой тоже
- <link xlink:href="http://www.gnu.org/copyleft/copyleft.ru.html">существует</link>.
- Эта лицензия имеет целью уничтожить программное обеспечение с
- закрытым исходным кодом. В частности, любое ПО, базирующееся
- на продукте, выпущенном на условиях лицензии GPL, тоже должно
- поставляться с исходными кодами по первому требованию.
- <link xlink:href="http://www.opensource.org/licenses/bsd-license.html">Лицензия
- BSD</link> не накладывает таких жёстких ограничений:
- разрешается распространение программного обеспечения в
- двоичном виде (binary-only). Этот факт привлекает
- разработчиков встроенных (embedded) приложений.</para>
- </sect2>
-
- <sect2>
- <title>Что ещё следует знать?</title>
-
- <para>То обстоятельство, что приложений для BSD существует
- меньше, чем для Linux, вынудило разработчиков BSD позаботиться
- о создании дополнительной совместимости с Linux, которая
- позволяет запускать программы для Linux на компьютере,
- работающем под BSD. Программный пакет, обеспечивающий
- совместимость, включает в себя как ядерную реализацию
- системных вызовов Linux, так и разнообразные файлы,
- необходимые программам, скомпилированным для Linux, например
- библиотеку C. Разница в скорости выполнения Linux-приложений
- на машине с Linux и на такой же машине с BSD незаметна.</para>
-
- <para>Принцип <quote>вся система от одного поставщика</quote>,
- используемый в BSD, приводит к упрощению процедур обновления
- системы по сравнению с многими дистрибутивами Linux. BSD
- предоставляет специальные модули совместимости с устаревшими
- версиями системных библиотек, и таким образом делает возможным
- запуск откомпилированных несколько лет назад программ на
- обновлённой системе.</para>
- </sect2>
-
- <sect2>
- <title>Что же выбрать, BSD или Linux?</title>
-
- <para>Во что выливается всё вышесказанное на практике? Кому
- предназначена BSD, и кому -- Linux?</para>
-
- <para>Это действительно очень сложный вопрос. Приведём несколько
- советов, которые призваны помочь Вам с выбором:</para>
-
- <itemizedlist>
- <listitem>
- <para><quote>Не тронь, пока работает</quote>: если Вы уже
- успешно используете какую-нибудь Open Source ОС, и она Вас
- устраивает, то пожалуй не стоит ничего менять.</para>
- </listitem>
-
- <listitem>
- <para>Системы BSD, в особенности FreeBSD, могут
- демонстрировать большую по сравнению с Linux
- производительность. Но это вовсе не универсальное
- правило. Во многих случаях эта разница не заметна, если
- вообще есть. Иногда Linux может работать лучше, чем
- FreeBSD.</para>
- </listitem>
-
- <listitem>
- <para>В общем случае, у систем BSD очень хорошая репутация,
- когда дело касается надёжности. Это, в основном, связано
- с более <quote>зрелой</quote> базой исходных кодов.</para>
- </listitem>
-
- <listitem>
- <para>BSD проекты имеют более лучшую репутацию за качество и
- полноту документации. Различные проекты документирования
- ставят своей целью предоставлять активно изменяющуюся
- документацию, в том числе и на нескольких языках и покрывающую все
- аспекты системы.</para>
- </listitem>
-
- <listitem>
- <para>Лицензия BSD иногда может быть более привлекательной,
- нежели GPL.</para>
- </listitem>
-
- <listitem>
- <para>В BSD может работать большинство исполнимых файлов Linux,
- однако в Linux выполнимые файлы BSD запускаться не будут. Во
- многих реализациях BSD могут также выполняться двоичные файл и
- других &unix;-подобных систем. Таким образом, BSD может предложить
- более простой способ перехода с других систем, чем Linux.</para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2>
- <title>Кто предоставляет техническую поддержку, обслуживание и
- обучение для систем BSD?</title>
-
- <para>BSDi / <link xlink:href="http://www.freebsdmall.com">FreeBSD
- Mall, Inc.</link> уже около десяти лет предлагает контракты на
- поддержку FreeBSD.</para>
-
- <para>Кроме того, каждый из проектов постоянно обновляет список
- консультантов, которые оказывают поддержку за отдельную плату: <link xlink:href="&url.base;/commercial/consult_bycat.html">FreeBSD</link>,
- <link xlink:href="http://www.NetBSD.org/gallery/consultants.html">
- NetBSD</link> и <link xlink:href="http://www.OpenBSD.org/support.html">OpenBSD</link>.</para>
- </sect2>
- </sect1>
-</article>
diff --git a/ru_RU.KOI8-R/articles/fonts/Makefile b/ru_RU.KOI8-R/articles/fonts/Makefile
deleted file mode 100644
index f635ca9152..0000000000
--- a/ru_RU.KOI8-R/articles/fonts/Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# The FreeBSD Russian Documentation Project
-#
-# $FreeBSD$
-# $FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/fonts/Makefile,v 1.4 2005/12/06 17:56:24 gad Exp $
-#
-# Original revision: r39631
-#
-# Article: Fonts and FreeBSD
-
-DOC?= article
-
-FORMATS?= html
-
-INSTALL_COMPRESSED?=gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= article.xml
-
-URL_RELPREFIX?= ../../../..
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/ru_RU.KOI8-R/articles/fonts/article.xml b/ru_RU.KOI8-R/articles/fonts/article.xml
deleted file mode 100644
index 156301df38..0000000000
--- a/ru_RU.KOI8-R/articles/fonts/article.xml
+++ /dev/null
@@ -1,931 +0,0 @@
-<?xml version="1.0" encoding="koi8-r"?>
-<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
- "http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
-<!--
- The FreeBSD Russian Documentation Project
-
- $FreeBSD$
- $FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/fonts/article.xml,v 1.5 2005/12/06 17:56:24 gad Exp $
-
- Original revision: r46439
--->
-<!-- Recently, I wanted to figure out how to use some additional fonts that
- I had accumulated. I finally figured out *how to do it* from the various
- man pages and documentation. Since it might be of use to other users,
- and I didn't see any reference to this topic in the FAQ or handbook, I
- thought I'd try my hand at a simple cookbook tutorial addressing the
- use of fonts. I have included my unanswered questions at the end of
- the document.
-
- Anyway, here's what I put together. This is my present understanding of
- fonts and how to use them with FreeBSD. I am sure that there are errors or
- misunderstandings, but it contains enough valid information to allow the
- use of additional fonts with Ghostscript, X11 and Groff. This is my first
- attempt to write anything along the lines of a tutorial/FAQ, so I am sure
- it is pretty raw. There are probably better ways to do some of this stuff,
- and I would welcome being corrected.
- -->
-<!-- The section "Setting a virtual console to 80x60 line mode" was
- updated to reflect changes in FreeBSD system configuration
- files by Mark Ovens <mark@ukug.uk.FreeBSD.org> 27/5/00
- -->
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="ru">
- <info><title>Шрифты и FreeBSD</title><subtitle>Пособие</subtitle>
-
-
-
-
- <authorgroup>
- <author><personname><firstname>Dave</firstname><surname>Bodenstab</surname></personname><affiliation>
- <address>
- <email>imdave@synet.net</email>
- </address>
- </affiliation></author>
- </authorgroup>
-
- <pubdate>7 августа 1996</pubdate>
-
- <releaseinfo>$FreeBSD$</releaseinfo>
-
- <legalnotice xml:id="trademarks" role="trademarks">
- &tm-attrib.freebsd;
- &tm-attrib.adobe;
- &tm-attrib.apple;
- &tm-attrib.linux;
- &tm-attrib.microsoft;
- &tm-attrib.opengroup;
- &tm-attrib.general;
- </legalnotice>
-
- <abstract>
- <para>Этот документ содержит описание различных файлов шрифтов, которые
- могут использоваться с FreeBSD и драйвером системной консоли, системой
- <application>X11</application>, программами <application>Ghostscript</application>
- и <application>Groff</application>. Даются реально работающие
- примеры по переключению экрана системной консоли в режим 80x60 и
- использованию файлов шрифтов формата Type 1 с перечисленными выше
- прикладными программами.</para>
- </abstract>
- </info>
-
- <sect1 xml:id="intro">
- <title>Введение</title>
-
- <para>Существует много мест, где можно найти файлы шрифтов, но встает
- вопрос о возможных способах их использования с FreeBSD. Ответ может быть
- найден в результате тщательного изучения документации по тем компонентам,
- которые вы собираетесь использовать. На это тратится очень много
- времени, и это пособие является попыткой дать готовые ответы для тех, кто
- заинтересуется такими вопросами.</para>
- </sect1>
-
- <sect1 xml:id="terminology">
- <title>Основные термины</title>
-
- <para>Имеется множество различных форматов файлов шрифтов и соответствующих
- окончаний имен файлов. Здесь обсуждаются лишь следующие из них:</para>
-
- <variablelist>
- <varlistentry>
- <term><filename>.pfa</filename>, <filename>.pfb</filename></term>
-
- <listitem>
- <para>Файлы шрифтов &postscript; type 1. Файлы
- <filename>.pfa</filename> являются текстовым (
- <emphasis>A</emphasis>scii) представлением, а
- <filename>.pfb</filename> - двоичным
- (<emphasis>B</emphasis>inary).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><filename>.afm</filename></term>
-
- <listitem>
- <para>Параметры (метрики) соответствующих шрифтов типа type 1.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><filename>.pfm</filename></term>
-
- <listitem>
- <para>Метрики для принтеров соответствующих шрифтов типа type
- 1.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><filename>.ttf</filename></term>
-
- <listitem>
- <para>Файл шрифтов &truetype;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><filename>.fot</filename></term>
-
- <listitem>
- <para>Неявная ссылка на файл шрифтов TrueType (реальной информации о
- шрифте здесь не содержится)</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><filename>.fon</filename>, <filename>.fnt</filename></term>
-
- <listitem>
- <para>Файлы экранных шрифтов с побитным представлением</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Файлы <filename>.fot</filename> используются в &windows; в качестве
- некой символической ссылки на файл со шрифтом в формате &truetype;
- (<filename>.ttf</filename>). Файлы шрифтов <filename>.fon</filename>
- также используются в &windows;. Мне неизвестно, как можно использовать
- этот формат шрифтов во FreeBSD.</para>
- </sect1>
-
- <sect1 xml:id="font-formats">
- <title>Какие форматы файлов шрифтов я могу использовать?</title>
-
- <para>То, файл шрифтов какого формата будет полезен, зависит от
- используемого приложения. Сама по себе FreeBSD шрифтов не использует.
- Прикладные программы и/или драйверы могут использовать файлы шрифтов.
- Вот краткий справочник по типам файлов шрифтов и
- приложениям/драйверам:</para>
-
- <variablelist>
- <varlistentry>
- <term>Драйвер</term>
-
- <listitem>
- <variablelist>
- <varlistentry>
- <term>vt</term>
-
- <listitem>
- <para><filename>.hex</filename></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>syscons</term>
-
- <listitem>
- <para><filename>.fnt</filename></para>
- </listitem>
- </varlistentry>
- </variablelist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Приложение</term>
-
- <listitem>
- <variablelist>
- <varlistentry>
- <term><application>Ghostscript</application></term>
-
- <listitem>
- <para><filename>.pfa</filename>,
- <filename>.pfb</filename>,
- <filename>.ttf</filename></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><application>X11</application></term>
-
- <listitem>
- <para><filename>.pfa</filename>,
- <filename>.pfb</filename></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><application>Groff</application></term>
-
- <listitem>
- <para><filename>.pfa</filename>,
- <filename>.afm</filename></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><application>Povray</application></term>
-
- <listitem>
- <para><filename>.ttf</filename></para>
- </listitem>
- </varlistentry>
- </variablelist>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Окончание <filename>.fnt</filename> используется достаточно часто. Я
- полагаю, что когда кто-нибудь собирается создать файл шрифтов для своего
- приложения, чаще всего выбирается именно это окончание. Поэтому файлы с
- таким окончанием не все имеют одинаковый формат; в частности, формат
- файлов <filename>.fnt</filename>, используемых драйвером syscons во
- FreeBSD, может отличаться от формата файлов <filename>.fnt</filename>,
- встречающихся в &ms-dos;/&windows;. Я даже не пытался использовать другие
- файлы <filename>.fnt</filename>, кроме тех, что поставляются с
- FreeBSD.</para>
- </sect1>
-
- <sect1 xml:id="virtual-console">
- <title>Настройка виртуальной консоли на режим работы 80x60</title>
-
- <para>Во-первых, должен быть загружен шрифт размера 8x8. Для этого файл
- <filename>/etc/rc.conf</filename> должен содержать строчку (измените в
- ней имя файла со шрифтом на соответствующий вашей локализации):</para>
-
- <informalexample>
- <programlisting>font8x8="iso-8x8" # font 8x8 from /usr/share/syscons/fonts/* (or NO).</programlisting>
- </informalexample>
-
- <para>Команда для переключения режимов называется &man.vidcontrol.1;:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>vidcontrol VGA_80x60</userinput></screen>
- </informalexample>
-
- <para>Различные программы, ориентированные на работу с экраном, такие, как
- &man.vi.1;, должны уметь определять текущие размеры экрана. Так как это
- делается через вызовы <command>ioctl</command> к драйверу консоли
- (такому, как &man.syscons.4;), то размеры будут определяться
- правильно.</para>
-
- <para>Чтобы это проходило более гладко, можно включить эти команды в
- скрипты начальной загрузки, чтобы они выполнялись при запуске системы.
- Чтобы это сделать, добавьте такую строчку в
- <filename>/etc/rc.conf</filename></para>
-
- <informalexample>
- <programlisting>
- allscreens_flags="VGA_80x60" # Set this vidcontrol mode for all virtual screens
- </programlisting>
- </informalexample>
-
- <para>Справочная информация: &man.rc.conf.5;, &man.vidcontrol.1;.</para>
- </sect1>
-
- <sect1 xml:id="type1-fonts-x11">
- <title>Использование шрифтов type 1 с системой <application>X11</application></title>
-
- <para><application>X11</application> может использовать файлы шрифтов в формате
- <filename>.pfa</filename> или <filename>.pfb</filename>. Шрифты для <application>X11</application>
- располагаются в различных подкаталогах в
- <filename>/usr/X11R6/lib/X11/fonts</filename>. На каждый файл со шрифтом
- имеется ссылка по его <application>X11</application>-имени в файле <filename>fonts.dir</filename> в
- каждом таком каталоге.</para>
-
- <para>Существует каталог по имени <filename>Type1</filename>. Самым
- простым способом добавить новый шрифт заключается в помещении его в этот
- каталог. Но лучше хранить все новые шрифты в отдельном каталоге и
- использовать символические ссылки для добавляемых шрифтов. Это позволяет
- легко управлять отдельными добавляемыми шрифтами, не путая их с
- изначально поставляемыми. Например:</para>
-
- <informalexample>
- <screen>
-<lineannotation>Создаем каталог для файлов шрифтов</lineannotation>
-&prompt.user; <userinput>mkdir -p /usr/local/share/fonts/type1</userinput>
-&prompt.user; <userinput>cd /usr/local/share/fonts/type1</userinput>
-
-<lineannotation>Помещаем сюда файлы .pfa, .pfb и .afm</lineannotation>
-<lineannotation>Кому-то может потребоваться хранить здесь также</lineannotation>
-<lineannotation>сопроводительные файлы и документацию к шрифтам</lineannotation>
-&prompt.user; <userinput>cp /cdrom/fonts/atm/showboat/showboat.pfb .</userinput>
-&prompt.user; <userinput>cp /cdrom/fonts/atm/showboat/showboat.afm .</userinput>
-
-<lineannotation>Обновление индексного файла со ссылками на файлы шрифтов</lineannotation>
-&prompt.user; <userinput>echo showboat - InfoMagic CICA, Dec 1994, /fonts/atm/showboat &gt;&gt;INDEX</userinput></screen>
- </informalexample>
-
- <para>Теперь, чтобы использовать новый шрифт с <application>X11</application>, нужно дать доступ к
- файлу шрифтов и обновить файлы и именами шрифтов. Имена шрифтов в <application>X11</application>
- выглядят следующим образом:</para>
-
- <informalexample>
- <screen>
--bitstream-charter-medium-r-normal-xxx-0-0-0-0-p-0-iso8859-1
- | | | | | | | | | | | | \ \
- | | | | | \ \ \ \ \ \ \ +----+- набор символов
- | | | | \ \ \ \ \ \ \ +- средняя ширина
- | | | | \ \ \ \ \ \ +- spacing
- | | | \ \ \ \ \ \ +- разрешение по вертикали
- | | | \ \ \ \ \ +- разрешение по горизонтали
- | | | \ \ \ \ +- пунктов
- | | | \ \ \ +- пиксел
- | | | \ \ \
- foundry family weight slant width additional style</screen>
- </informalexample>
-
- <para>Для каждого нового файла шрифтов необходимо создать новое имя. Если
- у вас есть какая-либо информация из сопроводительной документации к
- шрифту, то она может служить основой для создания имени. Если информации
- нет, то можно получить некоторую информацию от использования программы
- &man.strings.1; над файлом шрифта. Например:</para>
-
- <informalexample>
- <screen>
-&prompt.user; <userinput>strings showboat.pfb | more</userinput>
-%!FontType1-1.0: Showboat 001.001
-%%CreationDate: 1/15/91 5:16:03 PM
-%%VMusage: 1024 45747
-% Generated by Fontographer 3.1
-% Showboat
- 1991 by David Rakowski. Alle Rechte Vorbehalten.
-FontDirectory/Showboat known{/Showboat findfont dup/UniqueID known{dup
-/UniqueID get 4962377 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-12 dict begin
-/FontInfo 9 dict dup begin
- /version (001.001) readonly def
- /FullName (Showboat) readonly def
- /FamilyName (Showboat) readonly def
- /Weight (Medium) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -106 def
- /UnderlineThickness 16 def
- /Notice (Showboat
- 1991 by David Rakowski. Alle Rechte Vorbehalten.) readonly def
-end readonly def
-/FontName /Showboat def
---stdin--</screen>
- </informalexample>
-
- <para>Пользуясь этой информацией, можно составить возможное имя:</para>
-
- <informalexample>
- <screen>-type1-Showboat-medium-r-normal-decorative-0-0-0-0-p-0-iso8859-1</screen>
- </informalexample>
-
- <para>Компонентами нашего имени являются:</para>
-
- <variablelist>
- <varlistentry>
- <term>Foundry</term>
-
- <listitem>
- <para>Давайте называть все новые шрифты
- <literal>type1</literal>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Family</term>
-
- <listitem>
- <para>Имя шрифта.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Weight</term>
-
- <listitem>
- <para>Normal, bold, medium, semibold, и так далее. Из результата
- работы команды &man.strings.1; похоже, что этот шрифт имеет ширину
- <emphasis>medium</emphasis>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Slant</term>
-
- <listitem>
- <para><emphasis remap="bf">r</emphasis>oman, <emphasis remap="bf">i</emphasis>talic, <emphasis remap="bf">o</emphasis>blique, и так далее. Так как
- <emphasis>ItalicAngle</emphasis> равен нулю, то будет
- использоваться <emphasis>roman</emphasis>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Width</term>
-
- <listitem>
- <para>Normal, wide, condensed, extended, и так далее. Пока это не
- будет проверено, предполагаем <emphasis>normal</emphasis>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Дополнительный стиль</term>
-
- <listitem>
- <para>Обычно опускается, но он будет указывать, что в шрифте есть
- декоративные заглавные буквы.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Spacing</term>
-
- <listitem>
- <para>proportional или monospaced. Используется
- <emphasis>proportional</emphasis>, потому что
- <emphasis>isFixedPitch</emphasis> равен false.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Все эти имена произвольны, но нужно стараться следовать существующим
- соглашениям. В программе для <application>X11</application> на шрифт ссылаются по имени с
- применением шаблонов, так что в выбираемом имени это должно учитываться.
- Можно начать с простого использования
-
- <informalexample>
- <screen>&hellip;-normal-r-normal-&hellip;-p-&hellip;
- </screen>
- </informalexample>
-
- в качестве имени, а затем использовать &man.xfontsel.1; для его проверки
- и изменения имени на основе того, как выглядит шрифт.</para>
-
- <para>Итак, завершая наш пример:</para>
-
- <informalexample>
- <screen>
-<lineannotation>Делаем шрифт доступным для X11</lineannotation>
-&prompt.user; <userinput>cd /usr/X11R6/lib/X11/fonts/Type1</userinput>
-&prompt.user; <userinput>ln -s /usr/local/share/fonts/type1/showboat.pfb .</userinput>
-
-<lineannotation>Редактируем файлы fonts.dir and fonts.scale, добавляя строку,
-описывающую шрифт и увеличивая количество шрифтов в первой строке.</lineannotation>
-&prompt.user; <userinput>ex fonts.dir
-:1p
-25
-:1c
-26
-.
-:$a
-showboat.pfb -type1-showboat-medium-r-normal-decorative-0-0-0-0-p-0-iso8859-1
-.
-:wq</userinput>
-
-<lineannotation>fonts.scale идентичен
-fonts.dir&hellip;</lineannotation>
-&prompt.user; <userinput>cp fonts.dir fonts.scale</userinput>
-
-<lineannotation>Указываем X11, что произошли изменения</lineannotation>
-&prompt.user; <userinput>xset fp rehash</userinput>
-
-<lineannotation>Проверяем новый шрифт</lineannotation>
-&prompt.user; <userinput>xfontsel -pattern -type1-*</userinput></screen>
- </informalexample>
-
- <para>Справочная информация: &man.xfontsel.1;, &man.xset.1;, <citetitle>The
- X Windows System in a Nutshell</citetitle>, <link xlink:href="http://www.ora.com/">O'Reilly &amp; Associates</link>.</para>
- </sect1>
-
- <sect1 xml:id="type1-fonts-ghostscript">
- <title>Использование шрифтов type 1 с пакетом Ghostscript</title>
-
- <para><application>Ghostscript</application> ссылается на шрифт через свой файл
- <filename>Fontmap</filename>. Он должен быть подправлен так же, как
- и файл <filename>fonts.dir</filename> в случае <application>X11</application>. <application>Ghostscript</application> может
- использовать файлы шрифтов в форматах <filename>.pfa</filename> или
- <filename>.pfb</filename>. Взяв шрифт из предыдущего примера, его можно
- использовать с <application>Ghostscript</application> вот так:</para>
-
- <informalexample>
- <screen>
-<lineannotation>Помещаем файл со шрифтом в каталог со шрифтами Ghostscript</lineannotation>
-&prompt.user; <userinput>cd /usr/local/share/ghostscript/fonts</userinput>
-&prompt.user; <userinput>ln -s /usr/local/share/fonts/type1/showboat.pfb .</userinput>
-
-<lineannotation>Редактируем Fontmap, чтобы Ghostscript знал о шрифте</lineannotation>
-&prompt.user; <userinput>cd /usr/local/share/ghostscript/4.01</userinput>
-&prompt.user; <userinput>ex Fontmap
-:$a
-/Showboat (showboat.pfb) ; % From CICA /fonts/atm/showboat
-.
-:wq</userinput>
-
-<lineannotation>Используем Ghostscript для проверки шрифта</lineannotation>
-&prompt.user; <userinput>gs prfont.ps</userinput>
-Aladdin Ghostscript 4.01 (1996-7-10)
-Copyright (C) 1996 Aladdin Enterprises, Menlo Park, CA. All rights
-reserved.
-This software comes with NO WARRANTY: see the file PUBLIC for details.
-Loading Times-Roman font from /usr/local/share/ghostscript/fonts/tir_____.pfb...
- /1899520 581354 1300084 13826 0 done.
-GS&gt;<userinput>Showboat DoFont</userinput>
-Loading Showboat font from /usr/local/share/ghostscript/fonts/showboat.pfb...
- 1939688 565415 1300084 16901 0 done.
-&gt;&gt;showpage, press &lt;return&gt; to continue&lt;&lt;
-&gt;&gt;showpage, press &lt;return&gt; to continue&lt;&lt;
-&gt;&gt;showpage, press &lt;return&gt; to continue&lt;&lt;
-GS&gt;<userinput>quit</userinput></screen>
- </informalexample>
-
- <para>Справочная информация: <filename>fonts.txt</filename> из дистрибутива
- <application>Ghostscript 4.01</application></para>
- </sect1>
-
- <sect1 xml:id="type1-fonts-groff">
- <title>Использование шрифтов в формате type 1 с программой Groff</title>
-
- <para>Теперь, когда новый шрифт может быть использован как с <application>X11</application>, так и в
- <application>Ghostscript</application>, как использовать его с программой <application>groff</application>? Во-первых, так как
- мы имеем дело со &postscript;-шрифтами формата type 1, то подходящим
- устройством <application>groff</application> является <emphasis>ps</emphasis>. Для каждого шрифта,
- который может использоваться программой <application>groff</application>, должен быть создан файл
- шрифта. Имя шрифта для <application>groff</application> является просто именем файла из каталога
- <filename>/usr/share/groff_font/devps</filename>. В нашем примере
- файлом шрифта может быть
- <filename>/usr/share/groff_font/devps/SHOWBOAT</filename>. Файл должен
- быть создан с помощью утилит, поставляемых с программой <application>groff</application>.</para>
-
- <para>Первой утилитой является <command>afmtodit</command>. Обычно она не
- устанавливается, так что она должна быть получена из дистрибутива с
- исходными текстами. Я обнаружил, что нужно изменить первую строку файла,
- что я делал так:</para>
-
- <informalexample>
- <screen>
-&prompt.user; <userinput>cp /usr/src/gnu/usr.bin/groff/afmtodit/afmtodit.pl /tmp</userinput>
-&prompt.user; <userinput>ex /tmp/afmtodit.pl
-:1c
-#!/usr/bin/perl -P-
-.
-:wq</userinput></screen>
- </informalexample>
-
- <para>Эта утилита создаст файл шрифтов для <application>groff</application> из файла метрик (с
- окончанием <filename>.afm</filename>). Продолжая с нашим
- примером:</para>
-
- <informalexample>
- <screen>
-<lineannotation>Многие файлы .afm в формате Mac
-&hellip; строки разделены символом ^M. Нам нужно преобразовать их в
-разделитель ^J в стиле &unix;</lineannotation>
-&prompt.user; <userinput>cd /tmp</userinput>
-&prompt.user; <userinput>cat /usr/local/share/fonts/type1/showboat.afm |
- tr '\015' '\012' &gt;showboat.afm</userinput>
-
-<lineannotation>Теперь создаем файл шрифтов groff</lineannotation>
-&prompt.user; <userinput>cd /usr/share/groff_font/devps</userinput>
-&prompt.user; <userinput>/tmp/afmtodit.pl -d DESC -e text.enc /tmp/showboat.afm generate/textmap SHOWBOAT</userinput></screen>
- </informalexample>
-
- <para>Теперь к шрифту можно обращаться по имени SHOWBOAT.</para>
-
- <para>Если в системе для управления принтерами используется программа
- <application>Ghostscript</application>, то больше ничего делать не нужно. Однако, если используются
- настоящие &postscript;-принтеры, то для использования шрифта его нужно
- загрузить в принтер (если только в принтере шрифт showboat не встроен или
- не имеется на диске со шрифтами). Последний шаг заключается в создании
- загружаемого шрифта. Утилита <command>pfbtops</command> используется для
- создания шрифта в формате <filename>.pfa</filename>, а файл для
- <filename>загрузки</filename> изменяется для указания нового шрифта.
- Файл для <filename>загрузки</filename> должен ссылаться на внутреннее имя
- шрифта. Оно может быть легко определено из файла шрифтов groff, как
- это показывается здесь:</para>
-
- <informalexample>
- <screen>
-<lineannotation>Создание файла шрифта .pfa</lineannotation>
-&prompt.user; <userinput>pfbtops /usr/local/share/fonts/type1/showboat.pfb &gt;showboat.pfa</userinput></screen>
- </informalexample>
-
- <para>Конечно, если файл <filename>.pfa</filename> уже имеется, для его
- использования создаем символическую ссылку на него.</para>
-
- <informalexample>
- <screen>
-<lineannotation>Получение внутреннего имени шрифта</lineannotation>
-&prompt.user; <userinput>fgrep internalname SHOWBOAT</userinput>
-internalname Showboat
-
-<lineannotation>Указываем утилите groff, что шрифт должен быть загружен</lineannotation>
-&prompt.user; <userinput>ex download
-:$a
-Showboat showboat.pfa
-.
-:wq</userinput></screen>
- </informalexample>
-
- <para>Для тестирования шрифта:</para>
-
- <informalexample>
- <screen>
-&prompt.user; <userinput>cd /tmp</userinput>
-&prompt.user; <userinput>cat &gt;example.t &lt;&lt;EOF
-.sp 5
-.ps 16
-This is an example of the Showboat font:
-.br
-.ps 48
-.vs (\n(.s+2)p
-.sp
-.ft SHOWBOAT
-ABCDEFGHI
-.br
-JKLMNOPQR
-.br
-STUVWXYZ
-.sp
-.ps 16
-.vs (\n(.s+2)p
-.fp 5 SHOWBOAT
-.ft R
-To use it for the first letter of a paragraph, it will look like:
-.sp 50p
-\s(48\f5H\s0\fRere is the first sentence of a paragraph that uses the
-showboat font as its first letter.
-Additional vertical space must be used to allow room for the larger
-letter.
-EOF</userinput>
-&prompt.user; <userinput>groff -Tps example.t &gt;example.ps</userinput>
-
-<lineannotation>Для использования с ghostscript/ghostview</lineannotation>
-&prompt.user; <userinput>ghostview example.ps</userinput>
-
-<lineannotation>Для его печати</lineannotation>
-&prompt.user; <userinput>lpr -Ppostscript example.ps</userinput></screen>
- </informalexample>
-
- <para>Справочная информация:
- <filename>/usr/src/gnu/usr.bin/groff/afmtodit/afmtodit.man</filename>,
- &man.groff.font.5;, &man.groff.char.7;, &man.pfbtops.1;.</para>
- </sect1>
-
- <sect1 xml:id="convert-truetype">
- <title>Преобразование файлов шрифтов TrueType в формат groff/PostScript для
- использования с groff</title>
-
- <para>Потенциально это требует некоторых усилий, просто потому что зависит
- некоторых утилит, которые в качестве части системы не устанавливаются.
- Это:</para>
-
- <variablelist>
- <varlistentry>
- <term><command>ttf2pf</command></term>
-
- <listitem>
- <para>Утилита для преобразования TrueType в PostScript. Она
- позволяет преобразовать шрифт TrueType в метрику шрифта в текстовом
- формате (файл <filename>.afm</filename>).</para>
-
- <para>Доступна по адресу <uri xlink:href="http://sunsite.icm.edu.pl/pub/GUST/contrib/BachoTeX98/ttf2pf/">http://sunsite.icm.edu.pl/pub/GUST/contrib/BachoTeX98/ttf2pf/</uri>.
- Замечание: Эти файлы являются PostScript-программами и должны быть
- скачаны на диск щелчком на ссылке при нажатой клавише
- <keycap>Shift</keycap>. В противном случае для их просмотра ваш
- браузер может попытаться запустить программу
- <application>ghostview</application>.</para>
-
- <para>Интерес представляют следующие файлы:</para>
-
- <itemizedlist>
- <listitem>
- <para><filename>GS_TTF.PS</filename></para>
- </listitem>
-
- <listitem>
- <para><filename>PF2AFM.PS</filename></para>
- </listitem>
-
- <listitem>
- <para><filename>ttf2pf.ps</filename></para>
- </listitem>
- </itemizedlist>
-
- <para>Смесь верхнего/нижнего регистров присутствует из-за того, что
- эти файлы предназначены и для DOS. <filename>ttf2pf.ps</filename>
- использует остальные с именами в верхнем регистре, так что при
- переименовании это нужно учитывать. (На самом деле
- <filename>GS_TTF.PS</filename> и <filename>PFS2AFM.PS</filename>
- предположительно являются частью дистрибутива <application>Ghostscript</application>, но их
- легко использовать как отдельные утилиты. В поставку FreeBSD они
- не включены.) Вы можете также установить их в каталог
- <filename>/usr/local/share/groff_font/devps</filename>(?).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>afmtodit</command></term>
-
- <listitem>
- <para>Создает файлы шрифтов для использования с программой <application>groff</application> из
- текстовых файлов с метриками шрифта. Она обычно располагается в
- каталоге <filename>/usr/src/contrib/groff/afmtodit</filename> и
- для ее использования требуется проделать некоторую работу.</para>
-
- <note>
- <para>Если вы избегаете работать в дереве
- <filename>/usr/src</filename>, просто скопируйте содержимое
- вышеупомянутого каталога во временный рабочий каталог.</para>
- </note>
-
- <para>Во рабочем каталоге вам нужно построить утилиту. Просто
- введите такую команду:</para>
-
- <screen>
-<prompt>#</prompt> <userinput>make -f Makefile.sub afmtodit</userinput>
- </screen>
-
- <para>Вам может также потребоваться скопировать
- <filename>/usr/contrib/groff/devps/generate/textmap</filename> в
- <filename>/usr/share/groff_font/devps/generate</filename>, если его
- не существует.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Как только эти утилиты готовы, вы можете начать:</para>
-
- <orderedlist>
- <listitem>
- <para>Создайте файл <filename>.afm</filename> по такой команде:</para>
-
- <screen><prompt>%</prompt> <userinput>gs -dNODISPLAY -q -- ttf2pf.ps <replaceable>TTF_name</replaceable> <replaceable>PS_font_name</replaceable> <replaceable>AFM_name</replaceable></userinput>
- </screen>
-
- <para>Здесь <replaceable>TTF_name</replaceable> обозначает ваш файл со
- шрифтом TrueType, <replaceable>PS_font_name</replaceable> является
- именем для файла <filename>.pfa</filename>,
- <replaceable>AFM_name</replaceable> задает имя для файла
- <filename>.afm</filename>. Если вы не укажете имена выходных файлов,
- для форматов <filename>.pfa</filename> или <filename>.afm</filename>,
- то по умолчанию будут использоваться имена, получаемые из имени файла
- со шрифтом TrueType.</para>
-
- <para>При этом также будет создан файл <filename>.pfa</filename>,
- текстовый файл с метриками PostScript-шрифта
- ((<filename>.pfb</filename> для двоичного представления). Это не
- не обязательно, но может быть (я думаю) полезным для сервера
- шрифтов.</para>
-
- <para>Например, для преобразования шрифта 30f9 Barcode с именами файлов
- по умолчанию, воспользуйтесь следующей командой:</para>
-
- <screen>
-<prompt>%</prompt> <userinput>gs -dNODISPLAY -- ttf2pf.ps 3of9.ttf</userinput>
-Aladdin Ghostscript 5.10 (1997-11-23)
-Copyright (C) 1997 Aladdin Enterprises, Menlo Park, CA. All rights reserved.
-This software comes with NO WARRANTY: see the file PUBLIC for details.
-Converting 3of9.ttf to 3of9.pfa and 3of9.afm.
- </screen>
-
- <para>Если вы хотите, чтобы преобразованные шрифты сохранялись в файлы
- <filename>A.pfa</filename> and <filename>B.afm</filename>, то
- выдайте такую команду:</para>
-
- <screen>
-<prompt>%</prompt> <userinput>gs -dNODISPLAY -- ttf2pf.ps 3of9.ttf A B</userinput>
-Aladdin Ghostscript 5.10 (1997-11-23)
-Copyright (C) 1997 Aladdin Enterprises, Menlo Park, CA. All rights reserved.
-This software comes with NO WARRANTY: see the file PUBLIC for details.
-Converting 3of9.ttf to A.pfa and B.afm.
- </screen>
- </listitem>
-
- <listitem>
- <para>Создайте PostScript-файл для <application>groff</application>:</para>
-
- <para>Смените текущий каталог на
- <filename>/usr/share/groff_font/devps</filename> для облегчения
- запуска упоминаемых далее программ. Для этого вам может понадобиться
- иметь привилегии администратора системы. (Или, если вы избегаете
- здесь работать, обязательно посмотрите файлы
- <filename>DESC</filename>, <filename>text.enc</filename> и
- <filename>generate/textmap</filename> в этом каталоге.)</para>
-
- <screen><prompt>%</prompt> <userinput>afmtodit -d DESC -e text.enc file.afm \
- generate/textmap <replaceable>PS_font_name</replaceable></userinput>
- </screen>
-
- <para>Здесь <filename>file.afm</filename> является файлом
- <replaceable>AFM_name</replaceable>, созданным программой
- <command>ttf2pf.ps</command> выше, а
- <replaceable>PS_font_name</replaceable> является именем шрифта,
- используемым в той команде, так же, как и имя, которое будет
- использовать утилита &man.groff.1; для ссылки на этот шрифт.
- Например, полагая, что вы использовали первую команду
- <command>tiff2pf.ps</command> выше, то шрифт 3of9 Barcode может быть
- создан при помощи такой команды:</para>
-
- <screen>
-<prompt>%</prompt> <userinput>afmtodit -d DESC -e text.enc 3of9.afm \
- generate/textmap 3of9</userinput>
- </screen>
-
- <para>Проверьте, что полученный файл
- <replaceable>PS_font_name</replaceable> (к примеру,
- <filename>3of9</filename> из примера выше) расположен в каталоге
- <filename>/usr/share/groff_font/devps</filename>, скопировав или
- перенеся его сюда.</para>
-
- <para>Заметьте, что если <filename>ttf2pf.ps</filename> назначает
- имя шрифта, используя один из найденных в файле шрифта TrueType, а
- вы хотите использовать другое имя, то вы должны отредактировать файл
- <filename>.afm</filename> до запуска команды
- <command>afmtodit</command>. Это имя к тому же должно
- совпадать с тем, что используется в файле Fontmap, если вы
- собираетесь перенаправлять вывод &man.groff.1; утилите
- &man.gs.1;.</para>
- </listitem>
- </orderedlist>
- </sect1>
-
- <sect1 xml:id="truetype-for-other-programs">
- <title>Можно ли использовать шрифты в формате TrueType с другими
- программами?</title>
-
- <para>Формат TrueType используется в Windows, Windows 95 и на компьютерах
- Macintosh. Он достаточно популярен и в этом формате имеется большое
- количество шрифтов.</para>
-
- <para>К сожалению, я знаю лишь несколько программ, которые могут
- использовать этот формат: на ум приходят <application>Ghostscript</application> и <application>Povray</application>. Его
- поддержка в программе <application>Ghostscript</application>, согласно документации, находится в
- зачаточном состоянии и получаемый результат хуже того, что получается при
- использовании шрифтов type 1. Программа <application>Povray</application> версии 3 также может
- использовать шрифты TrueType, но я очень сомневаюсь, что много кто
- создает документы как последовательность анимированных страниц
- :-).</para>
-
- <para>Такая весьма печальная ситуация может вскоре измениться. В рамках
- проекта <link xlink:href="http://www.freetype.org/">FreeType Project</link>
- в настоящее время разрабатывается полезный набор инструментов для работы
- с FreeType:</para>
-
- <itemizedlist>
- <listitem>
- <para>Сервер шрифтов <command>xfsft</command> для <application>X11</application> может работать и
- со шрифтами TrueType, и с обычными шрифтами. Хотя в настоящее время
- он еще находится в стадии отладки, но его уже можно использовать.
- Посмотрите <link xlink:href="http://www.dcs.ed.ac.uk/home/jec/programs/xfsft/">страницу
- Juliusz Chroboczek</link>, чтобы получить более полную информацию.
- Указания по переносу на FreeBSD можно найти на странице <link xlink:href="http://math.missouri.edu/~stephen/software/">Стивена
- Монтгомери</link> (Stephen Montgomery), посвященной программному
- обеспечению.</para>
- </listitem>
-
- <listitem>
- <para><application>xfstt</application> является еще одним сервером шрифтов для
- <application>X11</application>, доступный по адресу <uri xlink:href="ftp://sunsite.unc.edu/pub/Linux/X11/fonts">ftp://sunsite.unc.edu/pub/Linux/X11/fonts</uri>.</para>
- </listitem>
-
- <listitem>
- <para>Программа, которая называется <command>ttf2bdf</command>, может
- генерировать BDF-файлы, которые можно использовать в системе X
- Window, из файлов шрифтов TrueType. Выполнимые файлы Linux могут
- находиться по адресу <uri xlink:href="ftp://crl.nmsu.edu/CLR/multiling/General">ftp://crl.nmsu.edu/CLR/multiling/General</uri>.</para>
- </listitem>
-
- <listitem>
- <para>и другие &hellip;</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 xml:id="obtaining-additional-fonts">
- <title>Где можно найти дополнительные шрифты?</title>
-
- <para>Много шрифтов можно найти в сети Интернет. Они либо абсолютно
- бесплатны, либо условно-бесплатны. В добавок, множество шрифтов
- находится в категории <filename>x11-fonts/</filename> Коллекции
- Портов.</para>
- </sect1>
-
- <sect1 xml:id="additional-questions">
- <title>Дополнительные вопросы</title>
-
- <itemizedlist>
- <listitem>
- <para>Для чего предназначены файлы <filename>.pfm</filename>?</para>
- </listitem>
-
- <listitem>
- <para>Можно ли получить файл <filename>.afm</filename> из файла
- <filename>.pfa</filename> или <filename>.pfb</filename>?</para>
- </listitem>
-
- <listitem>
- <para>Как получить файлы преобразования символов <application>groff</application> для
- PostScript-шрифтов с нестандартными названиями символов?</para>
- </listitem>
-
- <listitem>
- <para>Можно ли настроить xditview и устройства devX?? на работу всех
- новых шрифтов?</para>
- </listitem>
-
- <listitem>
- <para>Хорошо бы иметь примеры использования шрифтов TrueType с
- программами <application>Povray</application> и <application>Ghostscript</application>.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-</article>
diff --git a/ru_RU.KOI8-R/articles/freebsd-questions/Makefile b/ru_RU.KOI8-R/articles/freebsd-questions/Makefile
deleted file mode 100644
index 6ebef0d245..0000000000
--- a/ru_RU.KOI8-R/articles/freebsd-questions/Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# The FreeBSD Russian Documentation Project
-#
-# $FreeBSD$
-# $FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/freebsd-questions/Makefile,v 1.4 2005/10/28 17:35:48 gad Exp $
-#
-# Original revision: r39631
-#
-
-DOC?= article
-
-FORMATS?= html
-WITH_ARICLE_TOC?= YES
-
-INSTALL_COMPRESSED?= gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= article.xml
-
-URL_RELPREFIX?= ../../../..
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/ru_RU.KOI8-R/articles/freebsd-questions/article.xml b/ru_RU.KOI8-R/articles/freebsd-questions/article.xml
deleted file mode 100644
index f681dc9182..0000000000
--- a/ru_RU.KOI8-R/articles/freebsd-questions/article.xml
+++ /dev/null
@@ -1,611 +0,0 @@
-<?xml version="1.0" encoding="koi8-r"?>
-<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
- "http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
-<!--
- The FreeBSD Russian Documentation Project
-
- $FreeBSD$
- $FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/freebsd-questions/article.xml,v 1.10 2005/10/09 10:45:04 gad Exp $
-
- Original revision: r46431
--->
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="ru">
- <info><title>Как работать со списком рассылки FreeBSD-questions c максимальной
- отдачей</title>
-
-
- <author><personname><firstname>Greg</firstname><surname>Lehey</surname></personname><affiliation>
- <address><email>grog@FreeBSD.org</email></address>
- </affiliation></author>
-
- <legalnotice xml:id="trademarks" role="trademarks">
- &tm-attrib.freebsd;
- &tm-attrib.microsoft;
- &tm-attrib.opengroup;
- &tm-attrib.qualcomm;
- &tm-attrib.general;
- </legalnotice>
-
- <pubdate>$FreeBSD$</pubdate>
-
- <releaseinfo>$FreeBSD$</releaseinfo>
-
- <abstract>
- <para>В этом документе содержится информация, которая будет полезна
- тем, кто собирается отправить письмо в список рассылки
- FreeBSD-questions. Даются советы и рекомендации, которые максимально
- увеличат шанс на получение полезных ответов.</para>
-
- <para>Этот документ регулярно публикуется в списке рассылки
- FreeBSD-questions.</para>
- </abstract>
- </info>
-
- <sect1>
- <title xml:id="Introduction">Введение</title>
-
- <para><literal>FreeBSD-questions</literal> является списком рассылки,
- который поддерживается проектом FreeBSD для оказания помощи тем, у кого
- возникли вопросы по поводу использования FreeBSD в повседневной работе.
- В другом списке рассылки, <literal>FreeBSD-hackers</literal>,
- обсуждаются более сложные вопросы, такие, как направление будущей
- работы над системой.</para>
-
- <note>
- <para>Термин <quote>хакер</quote> не имеет ничего общего с
- проникновением на компьютеры других людей. Правильным термином для
- обозначения такой деятельности является <quote>кракер</quote>, однако
- популярная пресса этого еще не поняла. Хакеры FreeBSD нарушением
- защиты не занимаются. Более полное описание хакеров находится в
- руководстве Эрика Рэймонда (Eric Raymond) <link xlink:href="http://www.catb.org/~esr/faqs/hacker-howto.html">Как стать
- хакером</link></para>
- </note>
-
- <para>Данный регулярно рассылаемый документ предназначен для помощи как
- тем, кто ищет ответов на вопросы во FreeBSD-questions
- (<quote>новички</quote>), так и тем, кто на эти вопросы отвечает
- (<quote>хакеры</quote>).</para>
-
- <para>Несомненно, здесь существуют некоторые трения, которые проистекают
- из-за разных точек зрения этих двух групп. Новички обвиняют хакеров в
- высокомерии, заносчивости и несостоятельности в оказании помощи, когда
- как хакеры обвиняют начинающих в том, что последние глупы, не умеют
- читать по-английски и ждут, что им все будет преподнесено на блюдечке с
- голубой каемочкой. Конечно, есть элемент правды в обоих этих
- утверждениях, однако по большей части такие мнения появляются из-за
- чувства разочарования.</para>
-
- <para>В этом документе я постараюсь уменьшить это разочарование и помочь
- всем получить более хорошие результаты от FreeBSD-questions. В
- следующем разделе я дам рекомендации по посылке вопросов; после этого
- мы посмотрим, как нужно на них отвечать.</para>
- </sect1>
-
- <sect1>
- <title xml:id="subscribe">Как подписаться на FreeBSD-questions</title>
-
- <para>FreeBSD-questions является списком рассылки, распространяемым по
- электронной почте, поэтому вам нужен доступ к системе электронной
- почты. Зайдите через ваш WWW браузер на <link xlink:href="&a.questions.url;">информационную страничку списка рассылки FreeBSD-question</link>. В разделе
- <quote>Подписка на freebsd-questions</quote> (Subscribing to freebsd-questions)
- заполните поле <quote>Ваш адрес электронной почты</quote> (Your email address);
- другие поля являются опциональными.
- </para>
-
- <note>
- <para>Поля для паролей в форме для подписки предоставляют только слабую защищённость,
- но должны предохранить других от путаницы с вашей подпиской. <emphasis>Не используйте
- ценный пароль</emphasis>, потому как он будет отослан вам по почте обратно в виде
- незашифрованного текста.</para>
- </note>
-
- <para>Вы получите подтверждающее письмо от
- <application>mailman</application>; следуйте включенным в него инструкциям
- для завершения процесса подписки.</para>
-
- <para>И наконец, когда вы получите приветственное письмо от
- <application>mailman</application> с подробной информацией о списке и
- с паролем, <emphasis>пожалуйста, сохраните его</emphasis>. Если вы
- когда-нибудь захотите покинуть список рассылки, вам нужна будет эта
- информация. За дополнительной информацией обращайтесь к следующему
- разделу.</para>
- </sect1>
-
- <sect1>
- <title xml:id="unsubscribe">Как отписаться от FreeBSD-questions</title>
-
- <para>Когда вы подписывались на список рассылки FreeBSD-questions, вы
- получили приглашающее сообщение от
- <application>mailman</application>. В этом сообщении, кроме всего
- прочего, вам рассказывалось о том, как отписаться. Вот типичное
- сообщение:</para>
-
- <literallayout class="monospaced">
-Welcome to the freebsd-questions@freebsd.org mailing list!
-
-To post to this list, send your email to:
-
- freebsd-questions@freebsd.org
-
-General information about the mailing list is at:
-
- http://lists.freebsd.org/mailman/listinfo/freebsd-questions
-
-If you ever want to unsubscribe or change your options (e.g., switch to
-or from digest mode, change your password, etc.), visit your
-subscription page at:
-
-http://lists.freebsd.org/mailman/options/freebsd-questions/grog%40lemsi.de
-
-You can also make such adjustments via email by sending a message to:
-
- freebsd-questions-request@freebsd.org
-
-with the word `help' in the subject or body (don't include the
-quotes), and you will get back a message with instructions.
-
-You must know your password to change your options (including changing
-the password, itself) or to unsubscribe. It is:
-
- 12345
-
-Normally, Mailman will remind you of your freebsd.org mailing list
-passwords once every month, although you can disable this if you
-prefer. This reminder will also include instructions on how to
-unsubscribe or change your account options. There is also a button on
-your options page that will email your current password to you.</literallayout>
-
- <para>Используя URL, указанный в вашем приветственном сообщении, вы можете
- посетить <quote>страничку по управлению учетной записью</quote> и запросить
- <quote>отписать</quote> вас от списка рассылки FreeBSD-questions.</para>
-
- <para>Подтверждающее письмо будет выслано вам от
- <application>mailman</application>; следуйте включённым в него инструкциям
- для завершения процесса отписки.</para>
-
- <para>Если вы это сделали, и до сих пор не можете понять, что происходит,
- отправьте письмо на <email>freebsd-questions-request@FreeBSD.org</email>, и они
- помогут вам разобраться. <emphasis>Не</emphasis> посылайте сообщений во
- FreeBSD-questions: здесь вам помочь не смогут.</para>
- </sect1>
-
- <sect1>
- <title xml:id="askwho">Нужно задавать вопросы в <literal>-questions</literal>
- или <literal>-hackers</literal>?</title>
-
- <para>Общим вопросам по FreeBSD посвящены два списка рассылки,
- <literal>FreeBSD-questions</literal> и
- <literal>FreeBSD-hackers</literal>. В некоторых случаях на самом деле
- не ясно, в каком списке нужно задавать вопрос. Следующий критерий,
- однако, должен помочь в 98% всех случаев:</para>
-
- <orderedlist>
- <listitem>
- <para>Если вопрос является общим, спрашивайте во
- <literal>FreeBSD-questions</literal>. Примерами могут служить
- вопросы по установке FreeBSD или использованию конкретных утилит
- &unix;.</para>
- </listitem>
-
- <listitem>
- <para>Если вы думаете, что вопрос относится к ошибке, но вы не
- уверены или не знаете, как ее исправить, пошлите сообщение во
- <literal>FreeBSD-questions</literal>.</para>
- </listitem>
-
- <listitem>
- <para>Если вопрос относится к ошибке и вы
- <emphasis>уверены</emphasis>, что это ошибка (например, вы можете
- указать место в коде, где она происходит, и, может быть, у вас есть
- для нее исправление), то пошлите сообщение в список рассылки
- <literal>FreeBSD-hackers</literal>.</para>
- </listitem>
-
- <listitem>
- <para>Если вопрос относится к усовершенствованию FreeBSD, и вы можете
- дать предложения по ее реализации, то посылайте сообщение во
- <literal>FreeBSD-hackers</literal>.</para>
- </listitem>
- </orderedlist>
-
- <para>Имеется также некоторое количество других <link xlink:href="&url.books.handbook;/eresources-mail.html">специализированных списков рассылки</link>.
- Здесь также подходит указанный выше критерий, и в ваших интересах
- следовать ему, потому что именно так можно получить результат.</para>
- </sect1>
-
- <sect1>
- <title xml:id="before">Перед посылкой вопроса</title>
-
- <para>Вы можете (и должны) что-нибудь сделать сами перед тем, как задать
- вопрос в одном из списков рассылки:</para>
-
- <itemizedlist>
- <listitem>
- <para>Попытайтесь решить проблему самостоятельно. Если вы пошлёте вопрос,
- который покажет, что вы пытались решить проблему, ваш вопрос, как правило, привлечёт
- более положительное внимание со стороны людей, читающих его. Попытка решить
- проблему самостоятельно также увеличит уровень вашего понимания FreeBSD,
- и в конечном счёте позволит вам использовать ваши знания для помощи другим,
- отвечая на вопросы, посылаемые в списки рассылки.
- </para>
- </listitem>
-
- <listitem>
- <para>Прочтите страницы справочника и документацию FreeBSD (установлена
- в <filename>/usr/doc</filename> или доступна через WWW на
- <uri xlink:href="http://www.FreeBSD.org">http://www.FreeBSD.org</uri>), особенно
- <link xlink:href="&url.books.handbook;/index.html">Руководство пользователя</link>
- и <link xlink:href="&url.books.faq;/index.html">FAQ</link>.
- </para>
- </listitem>
-
- <listitem>
- <para>Просмотрите и/или поищите в архивах списка рассылки, задавился ли
- ваш или схожий вопрос (и возможно отвечался) в списке. Вы можете
- просмотреть и/или поискать в архивах списков рассылки на <uri xlink:href="http://www.FreeBSD.org/mail">http://www.FreeBSD.org/mail</uri> и <uri xlink:href="http://www.FreeBSD.org/search/search.html#mailinglists">http://www.FreeBSD.org/search/search.html#mailinglists</uri>
- соответственно. Это может быть сделано также и на других WWW сайтах,
- к примеру, на <uri xlink:href="http://marc.theaimsgroup.com">http://marc.theaimsgroup.com</uri>.
- </para>
- </listitem>
-
- <listitem>
- <para>Используйте поисковик, например, <link xlink:href="http://www.google.com">Google</link>
- или <link xlink:href="http://www.yahoo.com">Yahoo</link> для поиска ответов на ваш вопрос.
- Google имеет даже <link xlink:href="http://www.google.com/bsd">BSD ориентированный поисковой интерфейс</link>.
- </para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1>
- <title xml:id="submit">Как посылать вопрос</title>
-
- <para>При посылке сообщения в список рассылки FreeBSD-questions, имейте
- в виду следующее:</para>
-
- <itemizedlist>
- <listitem>
- <para>Помните, что за ответы на вопросы о FreeBSD никто денег не
- получает. Все делают это в свободное время. Вы можете привлечь
- внимание, послав четко сформулированный вопрос, содержащий как
- можно больше относящейся к делу информации. Вы можете не получить
- внимания, послав неполный, непонятный или примитивный вопрос.
- В действительности можно посылать сообщение в список рассылки
- FreeBSD-questions и не получить ответа, даже если вы следуете этим
- правилам. Еще более вероятно не получить ответа, если вы им не
- следуете. В оставшейся части документа мы рассмотрим, как получить
- максимум от вопроса во FreeBSD-questions.</para>
- </listitem>
-
- <listitem>
- <para>Не всякий человек, могущий ответить на вопрос о FreeBSD, читает
- все сообщения: обычно читается строка с темой письма и решается,
- представляет ли сообщение интерес. То есть в ваших интересах
- указать тему письма. <quote>FreeBSD problem</quote> или <quote>Help</quote> недостаточно.
- Если вы не укажете тему вообще, то многие даже не потрудятся прочесть
- сообщение. Если тема сообщения недостаточно конкретна, то люди,
- которые могут ответить, могут его не прочесть.</para>
- </listitem>
-
- <listitem>
- <para>Оформляйте ваше сообщение так, чтобы оно было читабельно, и
- ПОЖАЛУЙСТА, НЕ КРИЧИТЕ!!!!!. Мы понимаем, что для многих английский
- не является родным языком, и не исключаем этого, однако действительно
- очень трудно и мучительно читать сообщение, полное опечаток или в
- котором отсутствуют разделители строк.</para>
-
- <para>Не упускайте из виду эффект, который производит плохо
- отформатированное письмо, причем не только в списке рассылки
- FreeBSD-questions. По вашему почтовому сообщению люди составляют
- мнение о вас, и если сообщение плохо отформатировано, содержит по
- одной строке на абзац, неправильно разделено или полно ошибок, то
- о вас сложится плохое впечатление.</para>
-
- <para>Множество плохо форматированных сообщений возникает из-за <link xlink:href="http://www.lemis.com/email.html">неправильно работающих или
- плохо настроенных почтовых программ</link>. Известно, что следующие
- почтовые программы могут посылать неправильно отформатированные
- сообщения без вашего ведома об этом:</para>
-
- <itemizedlist>
- <listitem>
- <para>&eudora;</para>
- </listitem>
-
- <listitem>
- <para>exmh</para>
- </listitem>
-
- <listitem>
- <para>&microsoft; Exchange</para>
- </listitem>
-
- <listitem>
- <para>&microsoft; Outlook</para>
- </listitem>
- </itemizedlist>
-
- <para>Постарайтесь не использовать <acronym>MIME</acronym>:
- многие используют программы, которые не очень хорошо работают с
- <acronym>MIME</acronym>.</para>
- </listitem>
-
- <listitem>
- <para>Проверьте правильность настроек времени и временной зоны. Это
- может выглядеть немножко глупо, потому что ваши сообщения все равно
- будут доставляться, однако многие люди получают несколько сотен
- сообщений в день. Зачастую они сортируют входящие сообщения по
- теме и дате, и если ваше сообщение не будет предшествовать первому
- ответу, то они могут предположить, что оно потерялось и даже не
- взглянут на него.</para>
- </listitem>
-
- <listitem>
- <para>Не включайте не связанные друг с другом вопросы в одно и то же
- письмо. Во-первых, длинное сообщение отпугивает людей, а во-вторых,
- труднее найти людей, которые могут ответить на все вопросы, и
- прочитали такое сообщение.</para>
- </listitem>
-
- <listitem>
- <para>Сообщите максимальное количество информации. Это трудно, и нужно
- пояснить, какую информацию нужно сообщать, а поначалу:</para>
-
- <itemizedlist>
- <listitem>
- <para>Практически в любом случае важно знать версию FreeBSD, с
- которой вы работаете. Особенно, в частности, в случае
- FreeBSD-CURRENT вы должны также указать дату исходных текстов,
- хотя, конечно, вам не нужно посылать сообщения о -CURRENT в
- список рассылки FreeBSD-questions.</para>
- </listitem>
-
- <listitem>
- <para>В случае любой проблемы, которая <emphasis>может</emphasis>
- быть связана с работой оборудования, расскажите о вашем
- аппаратном обеспечении. В случае сомнений предположите, что это,
- возможно, вина оборудования. Какой тип процессора используется?
- Насколько он быстр? Какая материнская плата? Сколько
- установлено памяти? Какое периферийное оборудование?</para>
-
- <para>Конечно, это приговор, но вывод команды &man.dmesg.8;
- зачастую может оказаться очень полезным, так как он говорит не
- только об оборудовании, с которым вы работаете, но также и о
- версии FreeBSD.</para>
- </listitem>
-
- <listitem>
- <para>Если выдаются сообщения об ошибках, недостаточно написать
- <quote>I get error messages</quote>, напишите (например) <quote>I
- get the error message 'No route to host'</quote>.</para>
- </listitem>
-
- <listitem>
- <para>Если ваша система завершает работу аварийно, не пишите
- <quote>My system panicked</quote>, напишите (к примеру) <quote>my
- system panicked with the message 'free vnode
- isn't'</quote>.</para>
- </listitem>
-
- <listitem>
- <para>Если у вас возникли трудности при установке FreeBSD,
- пожалуйста, опишите ваше оборудование. В частности, важно знать
- адреса ввода/вывода и IRQ адаптеров, установленных в вашей
- машине.</para>
- </listitem>
-
- <listitem>
- <para>Если у вас возникли трудности в настройке PPP, опишите
- настройку. Какую версию PPP вы используете? Какой тип
- аутентификации? У вас используется статическое или динамическое
- выделение адресов IP? Какие сообщения вы получили в файле
- протокола?</para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para>Основной объем информации, который вы должны дать, представляет
- собой вывод программ, таких, как &man.dmesg.8;, или консольные
- сообщения, которые обычно появляются в файле
- <filename>/var/log/messages</filename>. Не пытайтесь скопировать эту
- информацию, набрав ее снова; это действительно трудно, и здесь легко
- сделать ошибку. Чтобы послать содержимое файлов протоколов,
- сделайте копию файла и воспользуйтесь редактором для того, чтобы
- обрезать информацию, оставив только относящуюся к делу, либо
- скопируйте и вставьте текст в ваше сообщение. В случае вывода
- программ, таких, как &man.dmesg.8;, перенаправьте вывод в файл и
- включите его в письмо. Например,</para>
-
- <screen>
-&prompt.user; <userinput>dmesg &gt; /tmp/dmesg.out</userinput>
- </screen>
-
- <para>Эта команда перенаправляет информацию в файл
- <filename>/tmp/dmesg.out</filename>.</para>
- </listitem>
-
- <listitem>
- <para>Если вы все это сделали, и все же не можете получить ответа,
- этому могут быть другие причины. Например, проблема столь сложна,
- что никто не знает ответа, или тот, кто знает, отсутствовал. Если
- вы не получили ответа, скажем, в течении недели, может помочь
- повторная посылка сообщения. Если вы не получили ответа на свое
- второе послание, скорее всего, вы вовсе не получите его из этого
- списка рассылки. Повторная посылка того же самого сообщения снова и
- снова только повредит вашей репутации.</para>
- </listitem>
- </itemizedlist>
-
- <para>Подводя итог, давайте предположим, что вы знаете ответ на следующий
- вопрос (да, это один и тот же вопрос). Выберите,
- на какой вопрос вы в большей степени готовы ответить:</para>
-
- <example>
- <title>Сообщение 1</title>
-
- <literallayout class="monospaced">
-Subject: HELP!!?!??
-I just can't get hits damn silly FereBSD system to
-workd, and Im really good at this tsuff, but I have never seen
-anythign sho difficult to install, it jst wont work whatever I try
-so why don't you guys tell me what I doing wrong.
- </literallayout>
- </example>
-
- <example>
- <title>Сообщение 2</title>
-
- <literallayout class="monospaced">
-Subject: Problems installing FreeBSD
-
-I've just got the FreeBSD 2.1.5 CDROM from Walnut Creek, and I'm having a lot
-of difficulty installing it. I have a 66 MHz 486 with 16 MB of
-memory and an Adaptec 1540A SCSI board, a 1.2GB Quantum Fireball
-disk and a Toshiba 3501XA CDROM drive. The installation works just
-fine, but when I try to reboot the system, I get the message
-<quote>Missing Operating System</quote>.
- </literallayout>
- </example>
- </sect1>
-
- <sect1>
- <title xml:id="followup">Как дополнить вопрос</title>
-
- <para>Часто вам бывает нужно дать дополнительную информацию к вопросу,
- который вы уже отослали. Лучшим способом сделать это является ответ на
- первоначальное сообщение. Здесь есть три момента:</para>
-
- <orderedlist>
- <listitem>
- <para>Вы включаете текст исходного сообщения, чтобы люди знали, о чем
- вы говорите. Однако не забудьте удалить ненужный текст.</para>
- </listitem>
-
- <listitem>
- <para>Текст в строке с темой письма остается тем же самым (вы не забыли
- его указать, не правда ли?). Многие почтовые программы сортируют
- сообщения по теме письма. Это поможет при группировке
- сообщений.</para>
- </listitem>
-
- <listitem>
- <para>Ссылочные номера сообщений в заголовке будут указывать на
- предыдущее сообщение. Некоторые почтовые программы, такие, как
- <link xlink:href="http://www.mutt.org/">mutt</link>, могут
- <emphasis>упорядочивать</emphasis> сообщения, показывая точную связь
- между ними.</para>
- </listitem>
- </orderedlist>
- </sect1>
-
- <sect1>
- <title xml:id="answer">Как отвечать на вопрос</title>
-
- <para>Перед тем, как отвечать на вопрос в списке рассылки
- FreeBSD-questions, имейте в виду:</para>
-
- <orderedlist>
- <listitem>
- <para>Многие замечания, касающиеся посылки вопросов, относятся и к
- ответам на них. Прочтите эти замечания.</para>
- </listitem>
-
- <listitem>
- <para>Ответил ли кто-либо на вопрос? Самым простым способом проверить
- это является сортировка входящей почты по темам писем: тогда
- (надеемся) вы увидите вопрос с последующими ответами все
- вместе.</para>
-
- <para>Если кто-то уже ответил на вопрос, это вовсе не значит, что вы
- не должны посылать свой ответ. Но сначала имеет смысл прочитать
- все другие ответы.</para>
- </listitem>
-
- <listitem>
- <para>Есть ли у вас что добавить сверх того, что уже было сказано? В
- общем случае ответы <quote>Yeah, me too</quote> сильно не помогут,
- хотя есть и исключения, например, когда кто-нибудь описывает свою
- проблему и не знает, его ли это ошибка, или что-то не так с
- аппаратным или программным обеспечением. Если вы посылаете сообщение
- <quote>me too</quote>, включите также относящуюся к делу
- информацию.</para>
- </listitem>
-
- <listitem>
- <para>Уверены ли вы, что поняли вопрос? Очень часто тот, кто задает
- вопрос, путается или не может все хорошо описать. Даже при самом
- полном понимании системы легко послать ответ, который не отвечает
- на вопрос. К сожалению, так вы никому не поможете, только ещё больше
- запутаете и разочаруете спрашивающего. Если никто больше не
- отвечает, или вы не очень уверены, то всегда можете запросить более
- подробную информацию.</para>
- </listitem>
-
- <listitem>
- <para>Уверены ли вы, что ваш ответ корректен? Если нет, то подождите
- пару дней. Если никого больше не появится с лучшим ответом, чем ваш,
- то вы можете ответить и сказать, например, <quote>I don't know if
- this is correct, but since nobody else has replied, why don't you try
- replacing your ATAPI CDROM with a frog?</quote>.</para>
- </listitem>
-
- <listitem>
- <para>Если нет причин поступить как-то иначе, то ответьте отправителю и
- в список рассылки FreeBSD-questions. Многие подписчики
- FreeBSD-questions <quote>таятся</quote>: они учатся на чтении
- сообщений, посланных и отвеченных другими. Если вы пошлете
- сообщение, представляющее интерес для всех, минуя список рассылки, то
- лишите этих людей их информации. Будьте внимательны при ответе всем;
- многие посылают сообщения с сотнями CC-адресатов. В таких случаях
- удалите лишние строки Cc:.</para>
- </listitem>
-
- <listitem>
- <para>Из исходного сообщения включите текст, который относится к делу.
- Избегайте излишнего цитирования, но не переусердствуйте. Тот, кто не
- читал первоначального сообщения, должен понять, о чём же идёт
- речь.</para>
- </listitem>
-
- <listitem>
- <para>Используйте приемы выделения текста, который взят из исходного
- сообщения и текста, который добавили вы. Лично я нахожу, что для
- первоначального текста лучше всего работает вставка символа
- <quote><literal>&gt; </literal></quote>. Вставка пробела после
- <quote><literal>&gt; </literal></quote> и пустых строк между вашим
- и первоначальным текстами сделает результат более читабельным.</para>
- </listitem>
-
- <listitem>
- <para>Поместите ваш ответ в правильном месте (после текста, на который
- вы отвечаете). Очень трудно читать набор ответов, когда каждый из
- них следует перед текстом, к которому относится.</para>
- </listitem>
-
- <listitem>
- <para>Большинство почтовых программ меняют строку темы письма в ответе,
- предваряя ее текстом типа <quote>Re: </quote>. Если ваша почтовая
- программа не делает это автоматически, вы должны делать это
- вручную.</para>
- </listitem>
-
- <listitem>
- <para>Если спрашивающий не следует соглашениям по форматированию текста
- (слишком длинные строки, неподходящая строка темы),
- <emphasis>пожалуйста</emphasis>, исправьте эти ошибки. В случае
- некорректной строки темы письма (типа <quote>HELP!!??</quote>)
- измените её, например, так: <quote>Re: Difficulties with sync PPP
- (was: HELP!!??)</quote>. В таком случае у других людей, пытающихся
- отследить обсуждение, будет меньше проблем.</para>
-
- <para>В таких случаях хорошо сказать, что вы сделали и почему, но
- постарайтесь не грубить. Если вы чувствуете, что не можете ответить,
- не скатываясь на грубость, воздержитесь от ответа вообще.</para>
-
- <para>Если вы хотите ответить на сообщение лишь потому, что оно плохо
- оформлено, ответьте только автору, но не в список. Если хотите, то
- в ответ можете просто послать ему эту статью.</para>
- </listitem>
- </orderedlist>
- </sect1>
-</article>
diff --git a/ru_RU.KOI8-R/articles/geom-class/Makefile b/ru_RU.KOI8-R/articles/geom-class/Makefile
deleted file mode 100644
index 9b74ce0c2a..0000000000
--- a/ru_RU.KOI8-R/articles/geom-class/Makefile
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# $FreeBSD$
-#
-# Article: Writing a GEOM Class
-#
-# Original revision: r39631
-#
-
-DOC?= article
-
-FORMATS?= html
-WITH_ARTICLE_TOC?= YES
-
-INSTALL_COMPRESSED?= gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= article.xml
-
-URL_RELPREFIX?= ../../../..
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/ru_RU.KOI8-R/articles/geom-class/article.xml b/ru_RU.KOI8-R/articles/geom-class/article.xml
deleted file mode 100644
index 7f175d1321..0000000000
--- a/ru_RU.KOI8-R/articles/geom-class/article.xml
+++ /dev/null
@@ -1,813 +0,0 @@
-<?xml version="1.0" encoding="koi8-r"?>
-<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
- "http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
-<!--
- The FreeBSD Russian Documentation Project
- $FreeBSD$
- $FreeBSDru$
- Original revision: r44964
--->
-<!-- Перевод: Тарас Коренко -->
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="ru">
-
-
- <info><title>Создание класса GEOM</title>
-
- <authorgroup>
- <author><personname><firstname>Ivan</firstname><surname>Voras</surname></personname><affiliation>
- <address><email>ivoras@FreeBSD.org</email>
- </address>
- </affiliation></author>
- </authorgroup>
-
- <legalnotice xml:id="trademarks" role="trademarks">
- &tm-attrib.freebsd;
- &tm-attrib.intel;
- &tm-attrib.general;
- </legalnotice>
-
- <pubdate>$FreeBSD$</pubdate>
-
- <releaseinfo>$FreeBSD$</releaseinfo>
-
- <abstract>
- <para>Эта статья документирует некоторые начальные выкладки
- в разработке GEOM-классов, а также модулей ядра в общем.
- Предполагается, что читатель близко знаком с программированием
- на Си в контексте пространства пользовательских процессов
- (userland).</para>
- </abstract>
- </info>
-
- <sect1 xml:id="intro">
- <title>Вступление</title>
-
- <sect2 xml:id="intro-docs">
- <title>Документация</title>
-
- <para>Документация по программированию для ядра скудная, это одна из
- немногих областей программирования, где почти нет хороших учебных
- пособий, и совет <quote>читай исходники!</quote> &mdash;
- сохраняет свою справедливость. Однако, существует несколько
- статей и книг разной актуальности, которые рекомендуются к изучению
- перед тем, как начать программировать:</para>
-
- <itemizedlist>
- <listitem>
- <para><link xlink:href="&url.books.developers-handbook;/index.html">
- Руководство FreeBSD для разработчиков</link> &mdash; часть
- Проекта Документации FreeBSD, ничего специфичного
- о программировании ядра в нем нет, зато есть немного общей
- полезной информации.</para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="&url.books.arch-handbook;/index.html">
- Руководство по Архитектуре FreeBSD</link> &mdash; также
- является частью Проекта Документации FreeBSD, содержит описания
- некоторых низкоуровневых средств и процедур. Уделите внимание
- разделу номер 13 &mdash;
- <link xlink:href="&url.books.arch-handbook;/driverbasics.html">
- Написание драйверов устройств для FreeBSD</link>.</para>
- </listitem>
-
- <listitem>
- <para>Несколько интересных статей об устройстве ядра
- можно найти на сайте
- <link xlink:href="http://www.freebsddiary.com">FreeBSD
- Diary</link>.</para>
- </listitem>
-
- <listitem>
- <para>Страницы из раздела номер 9 системного справочника,
- содержат важную документацию по функциям ядра.</para>
- </listitem>
-
- <listitem>
- <para>Страница справочника &man.geom.4;, а также <link xlink:href="http://phk.freebsd.dk/pubs/">слайды Пола-Хеннинга Кампа
- </link> &mdash; общее представление о подсистеме GEOM.</para>
- </listitem>
-
- <listitem>
- <para>Страницы справочника &man.g.bio.9;, &man.g.event.9;,
- &man.g.data.9;, &man.g.geom.9;, &man.g.provider.9;,
- &man.g.consumer.9;, &man.g.access.9;, а также другие,
- связанные с вышеупомянутыми и раскрывающие специфический
- функционал подсистемы GEOM.</para>
- </listitem>
-
- <listitem>
- <para>Страница справочника &man.style.9; &mdash; документирует
- соглашения о стиле оформления кода, которые обязаны быть соблюдены
- если вы планируете передать ваш код в Subversion репозиторий
- FreeBSD.</para>
- </listitem>
- </itemizedlist>
- </sect2>
- </sect1>
-
- <sect1 xml:id="prelim">
- <title>Подготовка</title>
-
- <para>Для того, чтоб заниматься разработками для ядра, желательно
- иметь два отдельных компьютера. Один из них предназначен для среды
- разработки и исходных кодов, а второй &mdash; для запуска тестов
- отлаживаемого кода. Второму компьютеру для работы достаточно
- иметь возможность выполнять начальную загрузку по сети и монтирование
- файловых систем по сети. В этой ситуации, если отлаживаемый код
- содержит ошибки и вызовет аварийную остановку системы, то это не
- повлечет порчу или утерю исходного кода
- <!-- (and other <quote>live</quote> data). -->.
- Второму компьютеру даже не потребуется иметь свой монитор,
- достаточно будет соединения асинхронных портов кабелем RS-232 или
- соединения при помощи KVM-устройства.</para>
-
- <para>Но так как далеко не у каждого есть два или более компьютеров
- под рукой, есть пара способов подготовить иную <quote>живую</quote>
- систему для разработки кода для ядра. Один из них &mdash; это
- разработка в <link xlink:href="http://www.vmware.com/">VMWare</link>
- или <link xlink:href="http://www.qemu.org/">QEmu</link> виртуальной машине
- (это лучшее из доступного, после, конечно-же, выделенного для тестов
- компьютера).</para>
-
- <sect2 xml:id="prelim-system">
- <title>Настройка системы для разработки</title>
-
- <para>Прежде всего необходимо иметь в ядре поддержку
- <option>INVARIANTS</option>. Добавьте следующие строки в
- файл конфигурации ядра:</para>
-
- <programlisting>options INVARIANT_SUPPORT
-options INVARIANTS</programlisting>
-
- <para>Для большей информативности при отладке включите поддержку
- WITNESS, которая будет предупреждать вас в случае возникновения
- взаимоблокировок:</para>
-
- <programlisting>options WITNESS_SUPPORT
-options WITNESS
-</programlisting>
-
- <para>Также включите отладочные символы, если планируете
- выполнять отладку по дампам аварийных отказов</para>
-
- <programlisting> makeoptions DEBUG=-g</programlisting>
-
- <para>Установка отладочного ядра обычным способом (<command>make
- installkernel</command>) не даст привычного результата:
- файл ядра будет называться <filename>kernel.debug</filename>
- и будет находиться в
- <filename>/usr/obj/usr/src/sys/KERNELNAME/</filename>.
- Для удобства, отладочное ядро необходимо скопировать в
- <filename>/boot/kernel/</filename>.</para>
-
- <para>Также удобно иметь включенный отладчик ядра, так вы сможете
- исследовать паники сразу-же после их возникновения. Для включения
- отладчика добавьте следующие строки в файл конфигурации ядра:</para>
-
- <programlisting>options KDB
-options DDB
-options KDB_TRACE</programlisting>
-
- <para>Для автоматического запуска отладчика ядра после возникновения
- паники может понадобиться установить переменную sysctl:</para>
-
- <programlisting> debug.debugger_on_panic=1</programlisting>
-
- <para>Паники системы будут происходить, поэтому уделите внимание
- кэшу файловой системы. Обычно, при включенном механизме
- softupdates, последняя версия файла может быть утеряна если
- паника произошла раньше сбрасывания кэша на устройство хранения.
- Выключение механизма softupdates (посредством монтирования файловой
- системы с опцией <quote>sync</quote>) значительно сказывается на
- производительности и, опять-же, не гарантирует целостности
- данных. Как компромисс, можно сократить задержки сбрасывания
- кэша механизма softupdates. Есть три переменных sysctl, значения
- которых необходимо изменить (лучше всего &mdash; прописав их в
- <filename>/etc/sysctl.conf</filename>):</para>
-
- <programlisting>kern.filedelay=5
-kern.dirdelay=4
-kern.metadelay=3</programlisting>
-
- <para>Значения этих переменных &mdash; секунды.</para>
-
- <para>Для отладки паник ядра необходимы дампы памяти.
- Так как паника ядра может <quote>сломать</quote> файловую
- систему, дамп сначала сохраняется в <quote>сырой</quote>
- раздел. Обычно, это своп-раздел. Поэтому, размер своп-раздела
- должен быть не меньше размера ОЗУ компьютера. При последующей
- загрузке дамп копируется в обычный файл. Это происходит сразу-же
- после проверки и монтирования файловых систем, но перед
- активированием раздела свопа. Такое поведение контролируется
- следующими переменными <filename>/etc/rc.conf</filename>:</para>
-
- <programlisting>dumpdev="/dev/ad0s4b"
-dumpdir="/usr/core" </programlisting>
-
- <para>Переменная <varname>dumpdev</varname> указывает на раздел
- подкачки, а <varname>dumpdir</varname> сообщает системе куда
- перемещать дамп ядра при следующей загрузке.</para>
-
- <para>Сохранение дампа ядра &mdash; процесс медленный, и, если
- у вашего компьютера много оперативной памяти (&gt;256M) и если
- паники случаются часто, то ожидание сохранения дампов может начать
- раздражать (вспомним, что над дампом происходит две операции:
- сохранение в своп-файл и перемещение на файловую систему).
- В таком случае может оказаться удобным ограничивание объема
- используемой системой памяти путем установки переменной в
- <filename>/boot/loader.conf</filename>:</para>
-
- <programlisting> hw.physmem="256M"</programlisting>
-
- <para>Если паники случаются часто и размер файловых систем большой
- (или же вы просто не доверяете softupdates и фоновой проверке
- файловых систем), рекомендуется отключить фоновую проверку файловых
- систем посредством установки переменной в
- <filename>/etc/rc.conf</filename>:</para>
-
- <programlisting> background_fsck="NO"</programlisting>
-
- <para>В этом случае файловые системы будут проверяться только при
- необходимости. Также заметьте, что в случае использования фоновой
- проверки, новая паника может случиться в то время, когда
- проверяются диски. Другими словами, наиболее безопасный способ
- &mdash; не иметь много локальных файловых систем, а использовать
- второй компьютер в качестве NFS-сервера.</para>
- </sect2>
-
- <sect2 xml:id="prelim-starting">
- <title>Начало проекта</title>
-
- <para>Для написания нового класса GEOM необходимо создать поддиректорию
- в любой доступной пользователю директории. Совсем не обязательно,
- чтоб ваш модуль изначально размещался в
- <filename>/usr/src</filename>.</para>
- </sect2>
-
- <sect2 xml:id="prelim-makefile">
- <title>Makefile</title>
-
- <para>Правилом хорошего тона является создание
- <filename>Makefile</filename>-ов для каждого нетривиального
- проекта, примером которого конечно-же является создание
- модулей ядра.</para>
-
- <para>Создание <filename>Makefile</filename> &mdash; дело
- не сложное благодаря исчерпывающему набору вспомогательных средств,
- предоставляемых системой. В вкратце, вот как должен выглядеть
- <filename>Makefile</filename> для модуля ядра:</para>
-
- <programlisting>SRCS=g_journal.c
-KMOD=geom_journal
-
-.include &lt;bsd.kmod.mk&gt;</programlisting>
-
- <para>Этот <filename>Makefile</filename> (с измененными именами
- файлов) подойдет к любому модулю ядра. Класс GEOM может размещаться
- в одном единственном модуле ядра. Если для сборки вашего модуля
- требуется больше, чем один файл, то перечислите их имена,
- разделенные пробельными символами, в переменной <envar>SRCS</envar>.
- </para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="kernelprog">
- <title>Программирование в ядре FreeBSD</title>
-
- <sect2 xml:id="kernelprog-memalloc">
- <title>Выделение памяти</title>
-
- <para>Прочитайте &man.malloc.9; &mdash; выделение памяти лишь
- немного отличается от своего эквивалента, используемого в пространстве
- пользовательских процессов (userland). Наиболее приметно то, что
- <function>malloc</function>() и <function>free</function>()
- принимают дополнительные параметры, которые описаны в странице
- справочника.</para>
-
- <para>Тип <quote>malloc_type</quote> необходимо объявить в секции
- деклараций файла с исходным кодом, например:</para>
-
- <programlisting> static MALLOC_DEFINE(M_GJOURNAL, "gjournal data", "GEOM_JOURNAL Data");</programlisting>
-
- <para>Для того, чтобы можно было использовать этот макрос,
- необходимо включить следующие заголовочные файлы:
- <filename>sys/param.h</filename>,
- <filename>sys/kernel.h</filename> и
- <filename>sys/malloc.h</filename></para>
-
- <para>Существует еще один механизм выделения памяти &mdash; UMA
- (Universal Memory Allocator), описанный в &man.uma.9;.
- Это специфический метод, преимущественно предназначенный для
- быстрого выделения памяти под списки, состоящие из элементов
- одинакового размера (например, динамические массивы структур).</para>
- </sect2>
-
- <sect2 xml:id="kernelprog-lists">
- <title>Очереди и списки</title>
-
- <para>Ознакомьтесь с &man.queue.3;
- Во множестве случаев вам необходимо будет организовывать и
- управлять такой структурой данных, как списки. К счастью, эта
- структура данных реализована несколькими способами в виде макросов
- на Си, а также включена в систему. Наиболее гибкий и часто
- употребляемый тип списка &mdash; TAILQ. Этот тип списка также один
- из наиболее требовательных к памяти (его элементы - с двойными
- связями), а также &mdash; наиболее медленный (однако счет идет
- на несколько инструкций ЦПУ, поэтому последнее утверждение не следует
- воспринимать в всерьез).</para>
-
- <para>Если важна скорость получения данных, то возьмите на вооружение
- &man.tree.3; и &man.hashinit.9;.</para>
- </sect2>
-
- <sect2 xml:id="kernelprog-bios">
- <title>BIOs</title>
-
- <para>Структура <varname remap="structname">bio</varname> используется для всех
- операций ввода/вывода, касающихся GEOM. Она содержит
- информацию о том, какое устройство ('поставщик geom') должно ответить
- на запрос, тип запроса, смещение, длину и указатель на буфер,
- а также набор <quote>определенных пользователем</quote> флагов и
- полей
- <!-- , которые могут помочь осуществить various hacks-->.
- </para>
-
- <para>Важным моментом является то, что <varname remap="structname">bio</varname>
- обрабатываются асинхронно. Это значит, что во многих частях кода
- нет аналога к &man.read.2; и &man.write.2; функциям из пространства
- пользовательских процессов, которые не возвращают управление пока
- не выполнится системный вызов. Скорее, по завершении обработки
- запроса (или в случае ошибки при обработке) как извещение вызывается
- определенная пользователем функция.</para>
-
- <para>Асинхронная модель программирования в чем-то сложней,
- нежели чаще используемая императивная модель, используемая в
- пространстве пользовательских процессов; в любом случае, привыкание
- займет некоторое время. В некоторых случаях могут быть использованы
- вспомогательные функции <function>g_write_data</function>() и
- <function>g_read_data</function>(), но <emphasis>далеко не
- всегда</emphasis>. В частности, эти функции не могут использоваться
- когда захвачен мьютекс; например, мьютекс GEOM-топологии или
- внутренний мьютекс, удерживаемый в ходе выполнения
- <function>.start</function>() или <function>.stop</function>().</para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="geom">
- <title>Программирование в системе GEOM</title>
-
- <sect2 xml:id="geom-ggate">
- <title>Ggate</title>
-
- <para>Если максимальная производительность не требуется,
- то более простой способ совершать преобразования данных &mdash;
- это выполнять их в пространстве пользовательских процессов
- посредством ggate (GEOM gate). К недостаткам следует отнести
- невозможность простого переноса кода в ядро.</para>
- </sect2>
-
- <sect2 xml:id="geom-class">
- <title>Класс GEOM</title>
-
- <para>Класс GEOM выполняет преобразования данных. Эти преобразования
- могут быть скомпонованы друг с другом в виде дерева. Экземпляр
- класса GEOM называют <emphasis>geom</emphasis>.</para>
-
- <para>В каждом классе GEOM есть несколько <quote>методов класса</quote>,
- которые вызываются когда экземпляра класса нет в наличии (или же
- они не привязаны к конкретному экземпляру класса).</para>
-
- <itemizedlist>
- <listitem>
- <para><function>.init</function> вызывается тогда, когда
- системе GEOM становится известно о классе GEOM (например,
- когда загружается модуль ядра).</para>
- </listitem>
-
- <listitem>
- <para><function>.fini</function> будет вызван в случае отказа
- GEOM системы от класса (например, при выгрузке модуля).</para>
- </listitem>
-
- <listitem>
- <para><function>.taste</function> вызывается, когда в
- системе появляется новый класс или поставщик geom
- (<quote>provider</quote>). Если соответствие найдено, то эта
- функция обычно создает и запускает экземпляр geom.</para>
- </listitem>
-
- <listitem>
- <para><function>.destroy_geom</function> вызывается при
- необходимости разрушить экземпляр geom.</para>
- </listitem>
-
- <listitem>
- <para><function>.ctlconf</function> будет вызван, когда
- пользователь запросит изменение конфигурации существующего
- экземпляра geom</para>
- </listitem>
- </itemizedlist>
-
- <para>Также определены функции событий GEOM, которые копируются
- в экземпляр geom.</para>
-
- <para>Поле <function>.geom</function> в структуре
- <varname remap="structname">g_class</varname> &mdash; это список (LIST) экземпляров
- geom, реализованных из класса.</para>
-
- <para>Эти функции вызываются из g_event потока ядра.</para>
- </sect2>
-
- <sect2 xml:id="geom-softc">
- <title>Softc</title>
-
- <para><quote>softc</quote> &mdash; это устаревший термин
- для <quote>приватных данных драйвера</quote> (<quote>driver
- private data</quote>). Название вероятней всего происходит от
- устаревшего термина <quote>software control block</quote>.
- В системе GEOM softc это структура (точнее: указатель на
- структуру) которая может быть присоединена к экземпляру geom
- и может содержать приватные данные экземпляра. У большинства
- классов GEOM есть следующие члены:</para>
-
- <itemizedlist>
- <listitem>
- <para><varname>struct g_provider *provider</varname> :
- <quote>поставщик geom</quote> предоставляемый данным экземпляром
- geom</para>
- </listitem>
-
- <listitem>
- <para><varname>uint16_t n_disks</varname> : Количество
- потребителей geom (<quote>consumer</quote>), обслуживаемых данным
- экземпляром geom</para>
- </listitem>
-
- <listitem>
- <para><varname>struct g_consumer **disks</varname> :
- Массив <varname>struct g_consumer*</varname>. (Невозможно
- обойтись одинарным указателем, потому что система GEOM создает
- для нас структуры struct g_consumer*)</para>
- </listitem>
- </itemizedlist>
-
- <para>Структура <varname remap="structname">softc</varname> содержит состояние
- экземпляра geom. У каждого экземпляра есть свой softc.</para>
- </sect2>
-
- <sect2 xml:id="geom-metadata">
- <title>Метаданные</title>
-
- <para>Формат метаданных в той или иной мере зависит от конкретного
- класса, но <emphasis>обязан</emphasis> начинаться с:</para>
-
- <itemizedlist>
- <listitem>
- <para>16-байтного буфера для подписи &mdash; строки с
- завершающим нулем (обычно это имя класса)</para>
- </listitem>
-
- <listitem>
- <para>uint32 идентификатора версии</para>
- </listitem>
- </itemizedlist>
-
- <para>Подразумевается, что классы geom знают как обращаться с
- метаданными с идентификаторами версий ниже, чем их собственные.</para>
-
- <para>Метаданные размещаются в последнем секторе поставщика geom
- (поэтому обязаны целиком умещаться в нем).</para>
-
- <para>(Все это зависит от реализации, но весь существующий код работает
- подобно описанному и поддерживается библиотеками.)</para>
- </sect2>
-
- <sect2 xml:id="geom-creating">
- <title>Маркирование/создание экземпляра geom</title>
-
- <para>Последовательность событий следующая:</para>
-
- <itemizedlist>
- <listitem>
- <para>пользователь запускает служебную программу &man.geom.8;</para>
- </listitem>
-
- <listitem>
- <para>программа решает каким классом geom ей придется
- управлять и ищет библиотеку
- <filename>geom_<replaceable>CLASSNAME</replaceable>.so</filename>
- (которая обычно находится в <filename>/lib/geom</filename>).</para>
- </listitem>
-
- <listitem>
- <para>она открывает библиотеку при помощи &man.dlopen.3;,
- извлекает вспомогательные функции и определения параметров
- командной строки.</para>
- </listitem>
- </itemizedlist>
-
- <para>Вот так происходит создание/маркирование нового экземпляра
- geom:</para>
-
- <itemizedlist>
- <listitem>
- <para>&man.geom.8; ищет команду в аргументах командной
- строки (обычно это <option>label</option>) и вызывает
- вспомогательную функцию.</para>
- </listitem>
-
- <listitem>
- <para>Вспомогательная функция проверяет параметры и
- собирает метаданные, которые записываются во все вовлеченные
- поставщики geom.</para>
- </listitem>
-
- <listitem>
- <para>Это <quote>повреждает (spoil)</quote> существующие
- экземпляры geom (если они были) и порождает новый виток
- <quote>тестирования</quote> поставщиков geom. Целевой класс geom
- опознает метаданные и активирует экземпляр geom.</para>
- </listitem>
- </itemizedlist>
-
- <para>(Приведенная выше последовательность событий зависит от
- конкретной реализации, но весь существующий код работает
- подобно описанному и поддерживается библиотеками.)</para>
- </sect2>
-
- <sect2 xml:id="geom-command">
- <title>Структура команд geom</title>
-
- <para>Вспомогательная библиотека <filename>geom_CLASSNAME.so</filename>
- экспортирует структуру <varname remap="structname">class_commands</varname>,
- которая является массивом элементов
- <varname remap="structname">struct g_command</varname>. Эти команды одинакового
- формата и выглядят следующим образом:</para>
-
- <programlisting> команда [-опции] имя_geom [другие]</programlisting>
-
- <para>Общими командами являются:</para>
-
- <itemizedlist>
- <listitem>
- <para>label &mdash; записать метаданные в устройства,
- чтобы они могли быть опознаны в процессе тестирования
- и использованы в соответствующих экземплярах geom</para>
- </listitem>
-
- <listitem>
- <para>destroy &mdash; разрушить метаданные, за которым
- последует разрушение экземпляров geom</para>
- </listitem>
- </itemizedlist>
-
- <para>Общие опции:</para>
-
- <itemizedlist>
- <listitem>
- <para><literal>-v</literal> : детальный вывод</para>
- </listitem>
-
- <listitem>
- <para><literal>-f</literal> : принудить</para>
- </listitem>
- </itemizedlist>
-
- <para>Некоторые операции, к примеру маркирование метаданными и
- разрушение метаданных могут быть выполнены из пространства
- пользовательских процессов. Для этого, структура
- <varname remap="structname">g_command</varname> содержит поле
- <varname>gc_func</varname>, которое может быть установлено на
- функцию (в том-же <filename>.so</filename>), которая будет вызвана
- для обработки команды. В случае, когда <varname>gc_func</varname>
- равно NULL, команда будет передана модулю ядра: функции
- <function>.ctlreq</function> класса GEOM.</para>
- </sect2>
-
- <sect2 xml:id="geom-geoms">
- <title>Экземпляры geom</title>
-
- <para>У экземпляров классов GEOM есть внутренние данные, которые
- хранятся в структурах softc, а также есть некоторые функции,
- посредством которых они реагируют на внешние события.</para>
-
- <para>Функции событий:</para>
-
- <itemizedlist>
- <listitem>
- <para><function>.access</function> : просчитывает
- права доступа (чтение/запись/исключительный доступ)</para>
- </listitem>
-
- <listitem>
- <para><function>.dumpconf</function> : возвращает
- информацию о экземпляре geom; формат XML</para>
- </listitem>
-
- <listitem>
- <para><function>.orphan</function> : вызывается, когда
- отсоединяется любой из низлежащих поставщиков geom</para>
- </listitem>
-
- <listitem>
- <para><function>.spoiled</function> : вызывается, когда
- производится запись в низлежащий поставщик geom</para>
- </listitem>
-
- <listitem>
- <para><function>.start</function> : обрабатывает ввод/вывод</para>
- </listitem>
- </itemizedlist>
-
- <para>Эти функции вызываются из ядерного потока
- <function>g_down</function> и в этом контексте не может быть
- блокировок (поищите определение <quote>блокировка</quote> в других
- источниках), что немного ограничивает свободу действий, но
- способствует быстроте обработки.</para>
-
- <para>Из вышеупомянутых, наиболее важной и выполняющей полезную работу
- функцией является <function>.start</function>(), которая вызывается
- всякий раз, когда поставщику geom, управляемому экземпляром класса,
- приходит запрос BIO.</para>
- </sect2>
-
- <sect2 xml:id="geom-threads">
- <title>Потоки выполнения системы geom</title>
-
- <para>Системой GEOM в ядре ОС создаются и используются три
- потока выполнения (kernel threads):</para>
-
- <itemizedlist>
- <listitem>
- <para><literal>g_down</literal> : Обрабатывает запросы,
- приходящие от высокоуровневых сущностей (таких, как запросы из
- пространства пользовательских процессов) на пути к физическим
- устройствам</para>
- </listitem>
-
- <listitem>
- <para><literal>g_up</literal> : Обрабатывает ответы от
- драйверов устройств на запросы, выполненные высокоуровневыми
- сущностями</para>
- </listitem>
-
- <listitem>
- <para><literal>g_event</literal> : Отрабатывает в остальных
- случаях, как-то создание экземпляра geom, просчитывание прав
- доступа, события <quote>повреждения</quote> и т.п.</para>
- </listitem>
- </itemizedlist>
-
- <para>Когда пользовательский процесс запрашивает <quote>прочитать
- данные X по смещению Y файла</quote>, происходит следующее:</para>
-
- <itemizedlist>
- <listitem>
- <para>Файловая система преобразует запрос в экземпляр
- структуры bio и передает его системе GEOM. Файловая система
- <quote>знает</quote>, что экземпляр geom должен обработать запрос,
- так как файловые системы размещаются непосредственно
- над экземпляром geom.</para>
- </listitem>
-
- <listitem>
- <para>Запрос завершается вызовом функции
- <function>.start</function>() в потоке g_down и достигает
- верхнего экземпляра geom.</para>
- </listitem>
-
- <listitem>
- <para>Верхний экземпляр geom (например, это секционировщик
- разделов (partition slicer)) определяет, что запрос должен быть
- переадресован нижестоящему экземпляру geom (к примеру, драйверу
- диска). Вышестоящий экземпляр geom создает копию запроса bio
- (запросы bio <emphasis>ВСЕГДА</emphasis> копируются при передаче
- между экземплярами geom при помощи
- <function>g_clone_bio</function>()!),
- изменяет поля смещения и целевого поставщика geom и запускает
- на обработку копию при помощи функции
- <function>g_io_request</function>()</para>
- </listitem>
-
- <listitem>
- <para>Драйвер диска также получает запрос bio, как вызов
- функции <function>.start</function>() в потоке
- <literal>g_down</literal>. Драйвер обращается к контроллеру диска,
- получает блок данных и вызывает функцию
- <function>g_io_deliver</function>() используя копию запроса bio
- </para>
- </listitem>
-
- <listitem>
- <para>Теперь, извещение о завершении bio
- <quote>всплывает</quote> в потоке <literal>g_up</literal>.
- Сначала в потоке <literal>g_up</literal> вызывается функция
- <function>.done</function>() секционировщика разделов,
- последний использует полученную информацию, разрушает
- клонированный экземпляр структуры bio посредством
- <function>g_destroy_bio</function>() и вызывает
- <function>g_io_deliver</function>() используя
- первоначальный запрос</para>
- </listitem>
-
- <listitem>
- <para>Файловая система получает данные и передает их
- пользовательскому процессу</para>
- </listitem>
- </itemizedlist>
-
- <para>За информацией о том, как данные передаются в структуре
- <varname remap="structname">bio</varname> между экземплярами geom,
- смотрите &man.g.bio.9; (обратите внимание на использование полей
- <varname>bio_parent</varname> и <varname>bio_children</varname>).
- </para>
-
- <para>Важный момент в том, что <emphasis>НЕЛЬЗЯ ДОПУСКАТЬ БЛОКИРОВОК
- В ПОТОКАХ G_UP И G_DOWN</emphasis>. Вот неполный перечень того,
- что нельзя делать в этих потоках:</para>
-
- <itemizedlist>
- <listitem>
- <para>Вызывать функции <function>msleep</function>() или
- <function>tsleep</function>().</para>
- </listitem>
-
- <listitem>
- <para>Использовать функции
- <function>g_write_data</function>() и
- <function>g_read_data</function>(), так как они блокируются
- в момент обмена данными с потребителями geom.</para>
- </listitem>
-
- <listitem>
- <para>Ожидать ввод/вывод.</para>
- </listitem>
-
- <listitem>
- <para>Вызывать &man.malloc.9; и
- <function>uma_zalloc</function>() с установленным флагом
- <varname>M_WAITOK</varname>.</para>
- </listitem>
-
- <listitem>
- <para>Использовать &man.sx.9; <!-- и другие sleepable locks. -->
- </para>
- </listitem>
- </itemizedlist>
-
- <para>Это ограничение на код GEOM призвано избежать от
- <quote>засорения</quote> пути запроса ввода/вывода, так как
- блокировки обычно не имеют четких временных границ, и нет гарантий
- на занимаемое время (также на то есть и другие технические причины).
- Это также значит, что в вышеупомянутых потоках сколь-нибудь сложные
- операции выполнить нельзя, например: любое сложное преобразование
- требует выделения памяти. К счастью решение есть: создание
- дополнительных ядерных потоков.</para>
- </sect2>
-
- <sect2 xml:id="geom-kernelthreads">
- <title>Ядерные потоки выполнения, предназначенные для использования
- в коде geom</title>
-
- <para>Ядерные потоки выполнения создаются функцией
- &man.kthread.create.9;, в своем поведении они схожи с потоками,
- созданными в пространстве пользовательских процессов, но есть одно
- отличие: они не могут известить вызвавший их поток о своем завершении;
- по завершению &mdash; необходимо вызывать &man.kthread.exit.9;</para>
-
- <para>В коде GEOM обычное назначение этих потоков &mdash; разгрузить
- поток <literal>g_down</literal>
- (функцию <function>.start</function>() ) от обработки запросов. Эти
- потоки подобны <quote>обработчикам событий</quote>
- (<quote>event handlers</quote>):
- у них есть очередь событий (которая наполняется событиями от разных
- функций из разных потоков; очередь необходимо защищать мьютексом),
- события из очереди выбираются одно за другим и обрабатываются
- в большом блоке <literal>switch</literal>().</para>
-
- <para>Основное преимущество использования отдельного потока, который
- обрабатывает запросы ввода/вывода, то, что он может блокироваться по
- мере необходимости. Это, несомненно, привлекательно, но должно быть
- хорошо обдумано. Блокирование &mdash; хорошо и удобно, но может
- существенно снизить производительность преобразований данных в
- системе GEOM. Особо требовательные к производительности классы
- могут делать всю работу в функции <function>.start</function>(),
- уделяя особое внимание ошибкам при работе с памятью.</para>
-
- <para>Еще одно преимущество потока <quote>обработчика событий</quote>
- это сериализация всех запросов и ответов, приходящих с разных
- потоков geom в один поток. Это также удобно, но может быть медленным.
- В большинстве случаев, обработка запросов функцией
- <function>.done</function>() может быть оставлена потоку
- <literal>g_up</literal>.</para>
-
- <para>У мьютексов в ядре FreeBSD (&man.mutex.9;) есть одно различие
- с их аналогами из пространства пользовательских процессов &mdash;
- во время удержания мьютекса в коде не должно быть блокировки. Если
- в коде необходимо блокирование, то лучше использовать &man.sx.9;.
- С другой стороны, если вся ваша работа выполняется в одном потоке,
- вы можете обойтись вообще без мьютексов.</para>
- </sect2>
- </sect1>
-</article>
diff --git a/ru_RU.KOI8-R/articles/gjournal-desktop/Makefile b/ru_RU.KOI8-R/articles/gjournal-desktop/Makefile
deleted file mode 100644
index 8432b7dbfd..0000000000
--- a/ru_RU.KOI8-R/articles/gjournal-desktop/Makefile
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# $FreeBSD$
-#
-# Article: Implementing UFS journaling on a desktop PC
-#
-# Original revision: r39631
-#
-
-DOC?= article
-
-FORMATS?= html
-
-INSTALL_COMPRESSED?=gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= article.xml
-IMAGES_EN= disklabel1.png
-IMAGES_EN+= disklabel2.png
-URL_RELPREFIX?= ../../../..
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/ru_RU.KOI8-R/articles/gjournal-desktop/article.xml b/ru_RU.KOI8-R/articles/gjournal-desktop/article.xml
deleted file mode 100644
index 4bb6001630..0000000000
--- a/ru_RU.KOI8-R/articles/gjournal-desktop/article.xml
+++ /dev/null
@@ -1,718 +0,0 @@
-<?xml version="1.0" encoding="koi8-r"?>
-<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
- "http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
-<!--
- The FreeBSD Russian Documentation Project
- $FreeBSD$
- Original revision: r43184
--->
-<!-- Перевод: Тарас Коренко -->
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="ru">
- <info><title>Настройка журналирования UFS для настольного компьютера.</title>
-
-
- <author><personname><firstname>Manolis</firstname><surname>Kiagias</surname></personname><affiliation>
- <address><email>manolis@FreeBSD.org</email></address>
- </affiliation></author>
-
- <copyright>
- <year>2008</year>
- <holder role="mailto:manolis@FreeBSD.org">Manolis Kiagias</holder>
- </copyright>
-
- <pubdate>$FreeBSD$</pubdate>
-
- <releaseinfo>$FreeBSD$</releaseinfo>
-
- <legalnotice xml:id="trademarks" role="trademarks">
- &tm-attrib.freebsd;
- &tm-attrib.general;
- </legalnotice>
-
- <abstract>
- <para>Журналируемая файловая система использует лог для записи всех
- транзакций, происходящих в файловой системе, который также
- сохраняет ее целостность в случае краха системы или пропадания
- питания. Несмотря на то, что всё еще возможна потеря несохранённых
- изменений файлов, журналирование почти полностью исключает
- возможность повреждения структуры файловой системы, вызванное
- непредвиденным остановом работы. Журналирование также сокращает
- до минимума время, необходимое для проверки файловой системы после
- отказа. Несмотря на то, что в используемой &os; файловой системе
- UFS нет поддержки журналирования, новый класс системы GEOM
- в &os;&nbsp;7.<replaceable>X</replaceable> может быть использован
- для для ведения независимого от файловой системы журналирования.
- Эта статья объясняет, как реализовать журналирование UFS для
- типичного настольного компьютера.</para>
- </abstract>
- </info>
-
- <sect1 xml:id="introduction">
- <title>Вступление</title>
-
- <para>Серверное оборудование обычно хорошо защищено от потери питания.
- Настольный компьютер часто подвержен неожиданным пропаданиям питания,
- случайным нажатиям кнопки Reset и другим происшествиям (часто
- связанным с неосторожностью пользователей), которые могут привести
- к непредвиденным выключениям. Механизм Soft Updates, как правило,
- достаточно эффективно защищает файловую систему в таких случаях, однако
- в последствии требуется длительная фоновая проверка. В очень редких
- случаях повреждения файловой системы достигают того уровня, при
- котором становится необходимым вмешательство пользователя и данные
- могут быть утерянными.</para>
-
- <para>Новая возможность журналирования, предоставленная системой GEOM,
- может существенно выручить в подобных случаях, исключая время,
- необходимое для проверки файловых систем и удостовериваясь,
- что файловая система быстро восстановлена в целостное состояние.</para>
-
- <para>Эта статья описывает порядок действий, необходимых для
- конфигурирования журналирования UFS на типичном настольном компьютере,
- в котором один жесткий диск используется для размещения как
- операционной системы, так и данных. В статье подразумевается
- установка &os; "с нуля". Шаги достаточно просты и не требуют
- чрезмерно сложных манипуляций с командной строкой</para>
-
- <para>После прочтения данной статьи вы будете знать:</para>
-
- <itemizedlist>
- <listitem>
- <para>Как зарезервировать место для журнала во время новой
- установки &os;.</para>
- </listitem>
-
- <listitem>
- <para>Как загрузить модуль <literal>geom_journal</literal> (или
- включить поддержку журналирования в специализированном ядре
- системы).</para>
- </listitem>
-
- <listitem>
- <para>Как преобразовать существующую файловую систему, в систему,
- использующую журналирование, и какие опции монтирования
- использовать в <filename>/etc/fstab</filename>.</para>
- </listitem>
-
- <listitem>
- <para>Как реализовать журналирование на новых (пустых) разделах.</para>
- </listitem>
-
-
- <listitem>
- <para>Как диагностировать неполадки, связанные с журналированием.</para>
- </listitem>
- </itemizedlist>
-
- <para>Перед прочтением этой статьи вам необходимо:</para>
-
- <itemizedlist>
- <listitem>
- <para>Понимать базовые концепции таких операционных систем,
- как &unix; и &os;.</para>
- </listitem>
-
- <listitem>
- <para>Быть знакомым с процедурой установки &os;, а также с программой
- <application>sysinstall</application>.</para>
- </listitem>
- </itemizedlist>
-
- <warning>
- <para>Процедура, описанная здесь, подразумевает подготовку к новой
- установке, в которой на дисках еще нет пользовательских данных.
- Так как эту процедуру можно модифицировать и расширить на системы,
- которые уже используются, вам настоятельно рекомендуется сделать
- <emphasis>резервную копию</emphasis> всех ценных данных.
- Путаница в низкоуровневых операциях с дисками и разделами может
- привести к фатальным ошибкам и потере данных.</para>
- </warning>
- </sect1>
-
- <sect1 xml:id="understanding-journaling">
- <title>Реализация журналирования в &os;</title>
-
- <para>Журналирование, предоставляемое системой GEOM
- в &os;&nbsp;7.<replaceable>X</replaceable>, не является особенностью
- файловой системы (в отличие от, например, файловой системы ext3
- в &linux;), оно функционирует на блочном уровне. А это значит,
- что оно может быть применено к разным типам файловых систем,
- однако для &os;&nbsp;7.0-RELEASE журналирование может быть применено
- только для UFS2.</para>
-
- <para>Возможность журналирования обеспечивается загрузкой модуля
- <filename>geom_journal.ko</filename> в ядро (или сборкой собственного
- ядра с активированием соответствующих опций) и использованием команды
- <command>gjournal</command> для конфигурирования файловой системы.
- В общем, вы предпочтете журналировать файловые системы большого размера,
- к примеру - <filename>/usr</filename>. Однако, вам придется
- зарезервировать некоторое количество свободного места (см.
- следующий раздел).</para>
-
- <para>Когда файловая система журналируется, некоторая часть
- дискового пространства требуется для хранения самого журнала.
- Дисковое пространство, содержащее данные, называется
- <emphasis>поставщиком данных (data provider)</emphasis>,
- а часть пространства, содержащая журнал, называется
- <emphasis>поставщиком журнала (journal provider)</emphasis>.
- Поставщики данных и журнала должны быть на разных разделах,
- если журналирование достраивается к содержащему данные разделу.
- А если журналирование включается для нового раздела, у вас есть
- возможность использовать один поставщик для данных и журнала.
- В любом из двух вышеупомянутых случаев команда
- <command>gjournal</command> задействует поставщики и создаст
- конечную журналируемую файловую систему. Например:</para>
-
- <itemizedlist>
- <listitem>
- <para>Вы намереваетесь журналировать файловую систему
- <filename>/usr</filename>, размещенную на
- <filename>/dev/ad0s1f</filename>,
- файловая система уже содержит данные.</para>
- </listitem>
-
- <listitem>
- <para>Вы зарезервировали часть дискового пространства на разделе
- <filename>/dev/ad0s1g</filename>.</para>
- </listitem>
-
- <listitem>
- <para>Используя команду <command>gjournal</command>,
- создаем новый файл устройства
- <filename>/dev/ad0s1f.journal</filename>,
- для которого <filename>/dev/ad0s1f</filename>
- является поставщиком данных, а
- <filename>/dev/ad0s1g</filename> &mdash;
- поставщик журнала. Это новое устройство необходимо использовать
- во всех последующих операциях.</para>
- </listitem>
- </itemizedlist>
-
- <para>Размер дискового пространства, отводимого под поставщик журнала,
- зависит от нагруженности файловой системы, а не от размера самого
- поставщика данных. Например, для типичного настольного компьютера
- достаточно отвести 1&nbsp;Гб под поставщик журнала для файловой
- системы <filename>/usr</filename>, в то время как компьютеру,
- имеющему интенсивный дисковый ввод/вывод (например, редактирование
- видео) может потребоваться больше. Если свободное место на поставщике
- журнала заканчивается раньше, чем происходит сброс журнала на
- диск, &mdash; вы получите панику ядра.</para>
-
- <note>
- <para>Очень маловероятно то, что размеры журнала, предложенные здесь,
- станут причиной проблем с обычным настольным компьютером (на котором
- вы просматриваете веб-страницы, обрабатываете текст или проигрываете
- мультимедийные файлы). Если работа вашего компьютера подразумевает
- интенсивную дисковую активность, то для обеспечения стабильности
- следует придерживаться следующего правила: размер ОЗУ должен
- уместиться в 30% размера, отведенного под журнал. Например, если в
- вашем компьютере установлен 1&nbsp;Гб ОЗУ, создайте под поставщик
- журнала раздел размером около 3.3&nbsp;Гб. (Умножьте размер ОЗУ
- в 3.3 раза, чтоб получить размер журнала).</para>
- </note>
-
- <para>Для получения дополнительной информации о журналировании, пожалуйста,
- прочитайте страницу справочника, посвященную &man.gjournal.8;.</para>
- </sect1>
-
- <sect1 xml:id="reserve-space">
- <title>Действия, необходимые во время установки &os;</title>
-
- <sect2>
- <title>Выделение места под журналирование</title>
-
- <para>Типичный настольный компьютер обычно имеет один жесткий диск, на
- котором хранится как операционная система, так и пользовательские
- данные. Вероятно, что схема разбития винчестера (по умолчанию),
- выбранная в меню <application>sysinstall</application>, является
- более или менее подходящей: настольному компьютеру не требуется большой
- раздел <filename>/var</filename>, в то время, как для раздела
- <filename>/usr</filename> выделяется значительный объем дискового
- пространства, ввиду того, что пользовательские данные и множество
- пэкэджей хранятся именно в поддиректориях <filename>/usr</filename>.
- </para>
-
- <para>Разбиение по умолчанию (получаемое при нажатии <keycap>A</keycap>
- в редакторе разделов &os;, называемом
- <application>Disklabel</application>) не оставляет свободного места.
- Каждый подлежащий журналированию раздел требует отдельного раздела
- для журнала. Ввиду того, что раздел <filename>/usr</filename> &mdash;
- наибольший, есть смысл немного уменьшить его размер, чтобы получить
- пространство, необходимое для журнала.</para>
-
- <para>В нашем примере используется жесткий диск размером 80&nbsp;Гб.
- Следующий скриншот показывает результаты разбиения по умолчанию,
- выполненного при помощи <application>Disklabel</application>
- в процессе установки операционной системы:</para>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="disklabel1"/>
- </imageobject>
- </mediaobject>
-
- <para>Если это разбиение более или менее вас устраивает, то его легко
- модифицировать для журналирования. Используйте клавиши со стрелками
- для того, чтобы выделить раздел, отведенный под
- <filename>/usr</filename>, потом нажмите <keycap>D</keycap>
- чтобы удалить его.</para>
-
- <para>Теперь переведите подсвечивание к имени диска, находящемуся вверху
- экрана, и нажмите <keycap>C</keycap> &mdash; создайте новый раздел
- <filename>/usr</filename>. Новый раздел должен быть меньше на 1&nbsp;Гб
- (если вы собираетесь журналировать только <filename>/usr</filename>)
- или на 2&nbsp;Гб (если журналированию подлежат как
- <filename>/usr</filename>, так и <filename>/var</filename>).
- Во всплывающем окне выберите "создать файловую систему" и укажите
- <filename>/usr</filename> точкой монтирования.</para>
-
- <note>
- <para>Следует ли журналировать <filename>/var</filename> раздел?
- Обычно есть смысл журналировать большие разделы. Вы можете решить
- не журналировать <filename>/var</filename>, однако журналирование
- на обычном настольном компьютере не причинит вреда. Если
- файловая система не нагружена (что типично для настольной системы),
- то можно выделить меньше дискового пространства под журнал.</para>
-
- <para>В этом примере подразумевается журналирование двух файловых
- систем: <filename>/usr</filename> и <filename>/var</filename>.
- Естественно, вы можете подкорректировать процедуру под свои
- задачи.</para>
- </note>
-
- <para>Чтобы не усложнять описываемую методику, для создания разделов,
- необходимых для размещения журналов, мы будем использовать утилиту
- <application>sysinstall</application>. Однако, во время установки
- утилита <application>sysinstall</application> требует указания
- точек монтирования для каждого созданного вами раздела. Но разделы,
- содержащие журналы, вам никогда и никуда монтировать
- не придется.</para>
-
- <para>Чтобы избежать вопросов о точках монтирования, мы создадим разделы
- под журналы и установим их тип в swap. Раздел, предназначенный для
- свопа, никогда и никуда не монтируется, плюс к тому, утилита
- <application>sysinstall</application> позволяет создавать столько
- разделов под своп, сколько необходимо. После первой перезагрузки
- необходимо подредактировать файл <filename>/etc/fstab</filename>,
- удалив в нём лишние записи о своп-разделах.</para>
-
- <para>Для создания своп-раздела, используя клавиши со стрелками,
- перемещайте подсвечивание к верхней части экрана в утилите
- <application>Disklabel</application> так, чтобы стало подсвеченным
- имя диска. Потом, нажмите <keycap>N</keycap>, введите необходимый
- размер раздела (<replaceable>1024M</replaceable>), а после &mdash;
- выберите во всплывшем окне <quote>swap space</quote>. Повторите
- эти шаги для всех оставшихся журналов. В этом примере мы создаем
- два раздела, на которых будут размещаться журналы для
- <filename>/usr</filename> и <filename>/var</filename>. Конечный
- результат показан на следующем скриншоте:</para>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="disklabel2"/>
- </imageobject>
- </mediaobject>
-
- <para>По завершении создания разделов мы рекомендуем вам записать
- на бумагу названия разделов и их точек монтирования: с этой информацией
- вы будете сверяться во время конфигурирования. Это также поможет
- уменьшить количество ошибок, приводящих к повреждению установки.
- Следующая табличка отображает наши заметки, сделанные для данного
- примера:</para>
-
- <table pgwide="1">
- <title>Разделы и журналы</title>
- <tgroup cols="3">
- <thead>
- <row>
- <entry>Раздел</entry>
- <entry>Точка монтирования</entry>
- <entry>Журнал</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>ad0s1d</entry>
- <entry>/var</entry>
- <entry>ad0s1h</entry>
- </row>
-
- <row>
- <entry>ad0s1f</entry>
- <entry>/usr</entry>
- <entry>ad0s1g</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>Дальше продолжайте обычную установку. Однако, мы рекомендуем
- вам отложить инсталляцию приложений сторонних разработчиков (пакетов)
- до полной настройки журналирования.</para>
- </sect2>
-
- <sect2 xml:id="first-boot">
- <title>Первая загрузка</title>
-
- <para>Ваша система загрузится нормально, однако вам необходимо будет
- подредактировать <filename>/etc/fstab</filename> и удалить те
- лишние своп-разделы, которые вы создавали под журналы.
- Как правило, в названии файла устройства, созданного автоматически
- утилитой <application>sysinstall</application>, присутствует
- суффикс <quote>b</quote> (в нашем примере это ad0s1b). Удалите
- другие записи о своп-разделах и перезагрузите компьютер, после чего
- &os; перестанет их использовать.</para>
-
- <para>После второй перезагрузки, компьютер будет готов к
- конфигурированию журналирования.</para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="configure-journal">
- <title>Настройка журналирования</title>
-
- <sect2 xml:id="running-gjournal">
- <title>Работа с командой <command>gjournal</command></title>
-
- <para>Подготовив необходимые разделы, перейдем к конфигурированию
- журналирования. Нам будет необходимо загрузиться в
- однопользовательском режиме, для этого залогинимся пользователем
- <systemitem class="username">root</systemitem> и напечатаем:</para>
-
- <screen>&prompt.root; <userinput>shutdown now</userinput></screen>
-
- <para>Нажмите <keycap>Enter</keycap> для получения приглашения
- командного интерпретатора. Нам необходимо будет размонтировать
- разделы, которые подлежат журналированию, в нашем примере это
- <filename>/usr</filename> и <filename>/var</filename>.</para>
-
- <screen>&prompt.root; <userinput>umount /usr /var</userinput></screen>
-
- <para>Загрузите модуль ядра, необходимый для журналирования:</para>
-
- <screen>&prompt.root; <userinput>gjournal load</userinput></screen>
-
- <para>На данном этапе сверьтесь со своими записями и определите, какие
- разделы будут использоваться под какой журнал. В нашем примере
- <filename>/usr</filename> располагается на
- <filename>ad0s1f</filename>, а его журнал
- будет располагаться на <filename>ad0s1g</filename>,
- и, по аналогии, для <filename>/var</filename>: файловая система
- располагается на <filename>ad0s1d</filename>,
- а ее журнал &mdash; на <filename>ad0s1h</filename>.
- Наберите следующие команды:</para>
-
- <screen>&prompt.root; <userinput>gjournal label ad0s1f ad0s1g</userinput>
-
-GEOM_JOURNAL: Journal 2948326772: ad0s1f contains data.
-GEOM_JOURNAL: Journal 2948326772: ad0s1g contains journal.
-
-&prompt.root; <userinput>gjournal label ad0s1d ad0s1h</userinput>
-
-GEOM_JOURNAL: Journal 3193218002: ad0s1d contains data.
-GEOM_JOURNAL: Journal 3193218002: ad0s1h contains journal.</screen>
-
- <note>
- <para>Если последний сектор любого из двух разделов (поставщиков
- данных) используется, команда <command>gjournal</command>
- возвратит ошибку. Вам необходимо будет использовать флаг
- <option>-f</option> для принудительной перезаписи, например:</para>
-
- <screen>&prompt.root; <userinput>gjournal label -f ad0s1d ad0s1h</userinput></screen>
- <para>Так как это &mdash; новая установка, очень маловероятен факт,
- что что-нибудь будет действительно переписано.</para>
- </note>
-
- <para>На данном этапе созданы два устройства:
- <filename>ad0s1d.journal</filename> и
- <filename>ad0s1f.journal</filename>. Они
- представляют <filename>/var</filename> и <filename>/usr</filename>
- соответственно. Перед монтированием, нам необходимо установить флаг
- журналирования и снять флаг механизма Soft Updates:</para>
-
- <screen>&prompt.root; <userinput>tunefs -J enable -n disable ad0s1d.journal</userinput>
-
-tunefs: gjournal set
-tunefs: soft updates cleared
-
-&prompt.root; <userinput>tunefs -J enable -n disable ad0s1f.journal</userinput>
-
-tunefs: gjournal set
-tunefs: soft updates cleared</screen>
-
- <para>Теперь, смонтируйте новые устройства в соответствующие места
- файловой системы (обратите внимание на то, что мы можем использовать
- опцию монтирования <option>async</option>):</para>
-
- <screen>&prompt.root; <userinput>mount -o async /dev/ad0s1d.journal /var</userinput>
-&prompt.root; <userinput>mount -o async /dev/ad0s1f.journal /usr</userinput></screen>
-
- <para>Откройте <filename>/etc/fstab</filename> и исправьте записи для
- следующих файловых систем: <filename>/usr</filename> и
- <filename>/var</filename>:</para>
-
- <programlisting>/dev/ad0s1f.journal /usr ufs rw,async 2 2
-/dev/ad0s1d.journal /var ufs rw,async 2 2</programlisting>
-
- <warning>
- <para>Убедитесь, что упомянутые выше записи правильные, иначе старт
- системы будет проблематичным после перезагрузки!</para>
- </warning>
-
- <para>И напоследок, подредактируйте
- <filename>/boot/loader.conf</filename>: добавьте следующую строку
- и модуль &man.gjournal.8; будет загружаться автоматически при старте
- системы:</para>
-
- <programlisting>geom_journal_load="YES"</programlisting>
-
- <para>Поздравляем! Журналирование успешно сконфигурировано. Вам
- необходимо лишь набрать <userinput>exit</userinput> для возвращения
- в многопользовательский режим или перезагрузить систему, чтобы полностью
- проверить вашу конфигурацию (рекомендуется). Во время загрузки
- вы увидите сообщения, подобные следующим:</para>
-
- <screen>ad0: 76293MB XEC XE800JD-00HBC0 08.02D08 at ata0-master SATA150
-GEOM_JOURNAL: Journal 2948326772: ad0s1g contains journal.
-GEOM_JOURNAL: Journal 3193218002: ad0s1h contains journal.
-GEOM_JOURNAL: Journal 3193218002: ad0s1d contains data.
-GEOM_JOURNAL: Journal ad0s1d clean.
-GEOM_JOURNAL: Journal 2948326772: ad0s1f contains data.
-GEOM_JOURNAL: Journal ad0s1f clean.</screen>
-
- <para>После непредвиденного останова работы системы сообщения будут
- немного отличаться, например:</para>
-
- <screen>GEOM_JOURNAL: Journal ad0s1d consistent.</screen>
-
- <para>Это обычно значит, что &man.gjournal.8; воспользовался
- информацией в журнале для возвращения файловой системы к целостному
- состоянию.</para>
- </sect2>
-
- <sect2 xml:id="gjournal-new">
- <title>Журналирование новых разделов</title>
-
- <para>Процедура, описанная выше, необходима для подключения
- журналирования разделов, содержащих данные. Журналирование пустых
- разделов немного проще, ввиду того, что поставщик данных и поставщик
- журнала могут быть размещены на одном и том же разделе. Например,
- предположим, что был установлен новый жесткий диск и был создан новый
- раздел <filename>/dev/ad1s1d</filename>. Создание
- журнала не сложнее набора:</para>
-
- <screen>&prompt.root; <userinput>gjournal label ad1s1d</userinput></screen>
-
- <para>Размер журнала &mdash; 1&nbsp;Гб по умолчанию. Однако, вы можете
- изменить это значение используя ключ <option>-s</option>. Значение
- можно задавать в байтах, в килобайтах, мегабайтах или гигабайтах
- (используя суффикс <literal>K</literal>, <literal>M</literal> или
- <literal>G</literal>). Имейте ввиду, что команда
- <command>gjournal</command> не позволит вам создать журнал
- недопустимо малого размера.</para>
-
- <para>К примеру, чтобы создать журнал размером в 2Гб, можно использовать
- следующую команду:</para>
-
- <screen>&prompt.root; <userinput>gjournal label -s 2G ad1s1d</userinput></screen>
-
- <para>Далее, вы можете создать файловую систему на новом разделе,
- а также разрешить журналирование ключом <option>-J</option>:</para>
-
- <screen>&prompt.root; <userinput>newfs -J /dev/ad1s1d.journal</userinput></screen>
- </sect2>
-
- <sect2 xml:id="configure-kernel">
- <title>Встраивание журналирования в специализированное ядро</title>
-
- <para>Если вы не желаете загружать <literal>geom_journal</literal>
- как модуль, то можно встроить его функции прямо в ваше
- специализированное ядро. Редактируя конфигурационный файл ядра,
- убедитесь, что в нем находятся следующие две строки:</para>
-
- <programlisting>options UFS_GJOURNAL # Прим.: Это включено в GENERIC
-
-options GEOM_JOURNAL # А эту строку необходимо добавить</programlisting>
-
- <para>Соберите и установите новое ядро следуя указаниям
- <link xlink:href="&url.books.handbook;/kernelconfig.html">
- Руководства &os;&nbsp;.</link></para>
-
- <para>И не забудьте удалить соответствующую строку загрузки модуля
- (<quote>load</quote>) из <filename>/boot/loader.conf</filename>
- (если на предыдущем этапе она была туда внесена).</para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="troubleshooting-gjournal">
- <title>Устранение неполадок с журналированием</title>
-
- <para>Этот раздел содержит часто задаваемые вопросы касательно неполадок,
- связанных с журналированием.</para>
-
- <qandaset>
- <qandaentry>
- <question xml:id="kernel-panic">
- <para>Я получаю паники ядра во время высокой дисковой активности.
- Как это связано с журналированием?</para>
- </question>
-
- <answer>
- <para>Вероятно, что журнал заполняется раньше, чем происходит
- сброс его на диск. Помните, размер журнала зависит от
- загруженности диска, а не от размера поставщика данных.
- Если загрузка диска высокая, вам потребуется раздел большего
- размера для журнала. См. замечания в разделе
- <link linkend="understanding-journaling">Реализация
- журналирования</link></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="unable-boot">
- <para>Я допустил некоторые ошибки во время конфигурирования,
- теперь система не загружается. Можно это как-нибудь
- исправить?</para>
- </question>
-
- <answer>
- <para>Вы либо забыли внести запись (опечатались) в
- <filename>/boot/loader.conf</filename>, либо есть ошибки в
- файле <filename>/etc/fstab</filename>. Это легко исправить.
- Нажмите <keycap>Enter</keycap>, чтобы получить приглашение
- командного интерпретатора в однопользовательском режиме.
- Потом, проверьте возможные варианты:</para>
-
- <screen>&prompt.root; <userinput>cat /boot/loader.conf</userinput></screen>
-
- <para>Если отсутствует запись <literal>geom_journal_load</literal>,
- или она содержит ошибки, журналируемые устройства не создадутся.
- Загрузите модуль вручную, примонтируйте все разделы и
- переходите в многопользовательский режим (продолжайте
- загрузку).</para>
-
- <screen>&prompt.root; <userinput>gjournal load</userinput>
-
-GEOM_JOURNAL: Journal 2948326772: ad0s1g contains journal.
-GEOM_JOURNAL: Journal 3193218002: ad0s1h contains journal.
-GEOM_JOURNAL: Journal 3193218002: ad0s1d contains data.
-GEOM_JOURNAL: Journal ad0s1d clean.
-GEOM_JOURNAL: Journal 2948326772: ad0s1f contains data.
-GEOM_JOURNAL: Journal ad0s1f clean.
-
-&prompt.root; <userinput>mount -a</userinput>
-&prompt.root; <userinput>exit</userinput>
-<emphasis>(boot continues)</emphasis></screen>
-
- <para>Если же запись о <literal>geom_journal_load</literal>
- верна, то проверьте <filename>/etc/fstab</filename>.
- Вероятней всего, что вы обнаружите опечатку или отсутствие
- необходимой записи. В этом случае смонтируйте вручную
- оставшиеся разделы и продолжите загрузку в многопользовательский
- режим.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="remove-journaling">
- <para>Возможно ли отказаться от журналирования и вернуться
- к моей привычной файловой системе с механизмом Soft Updates?</para>
- </question>
-
- <answer>
- <para>Несомненно. Используйте приведенную ниже последовательность
- действий, которая обращает изменения. Разделы, созданные для
- поставщиков журналов, могут позже быть использованы для других
- целей.</para>
-
- <para>Залогиньтесь <systemitem class="username">root</systemitem> и переведите систему
- в однопользовательский режим:</para>
-
- <screen>&prompt.root; <userinput>shutdown now</userinput></screen>
-
- <para>Размонтируйте журналируемые разделы:</para>
-
- <screen>&prompt.root; <userinput>umount /usr /var</userinput></screen>
-
- <para>Синхронизируйте журналы:</para>
-
- <screen>&prompt.root; <userinput>gjournal sync</userinput></screen>
-
- <para>Остановите поставщиков журналов:</para>
-
- <screen>&prompt.root; <userinput>gjournal stop ad0s1d.journal</userinput>
-&prompt.root; <userinput>gjournal stop ad0s1f.journal</userinput></screen>
-
- <para>Удалите метаданные журналирования со всех задействованных
- устройств:</para>
-
- <screen>&prompt.root; <userinput>gjournal clear ad0s1d</userinput>
-&prompt.root; <userinput>gjournal clear ad0s1f</userinput>
-&prompt.root; <userinput>gjournal clear ad0s1g</userinput>
-&prompt.root; <userinput>gjournal clear ad0s1h</userinput></screen>
-
- <para>Снимите флаг журналирования и установите флаг механизма Soft
- Updates:</para>
-
- <screen>&prompt.root; <userinput>tunefs -J disable -n enable ad0s1d</userinput>
-
-tunefs: gjournal cleared
-tunefs: soft updates set
-
-&prompt.root; <userinput>tunefs -J disable -n enable ad0s1f</userinput>
-
-tunefs: gjournal cleared
-tunefs: soft updates set</screen>
-
- <para>Смонтируйте вручную старые (первоначальные) устройства:</para>
-
- <screen>&prompt.root; <userinput>mount -o rw /dev/ad0s1d /var</userinput>
-&prompt.root; <userinput>mount -o rw /dev/ad0s1f /usr</userinput></screen>
-
- <para>Откройте файл <filename>/etc/fstab</filename> и приведите
- его к изначальному виду:</para>
-
- <programlisting>/dev/ad0s1f /usr ufs rw 2 2
-/dev/ad0s1d /var ufs rw 2 2</programlisting>
-
-
- <para>И напоследок, удалите строку, загружающую модуль
- <literal>geom_journal</literal>, из файла
- <filename>/boot/loader.conf</filename> и перезагрузите
- операционную систему.</para>
-
- </answer>
- </qandaentry>
- </qandaset>
- </sect1>
-
- <sect1 xml:id="further-reading">
- <title>Для дальнейшего ознакомления</title>
-
- <para>Журналирование &mdash; относительно новая функциональная возможность
- &os;, и как такова, она еще недостаточно документирована. Однако, вы
- можете сочти полезными следующие источники:</para>
-
- <itemizedlist>
- <listitem>
- <para>Новый <link xlink:href="&url.books.handbook;/geom-gjournal.html">раздел
- Руководства FreeBSD</link>, посвященный журналированию.</para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="http://lists.freebsd.org/pipermail/freebsd-current/2006-June/064043.html">Этот пост</link>
- в списке рассылки &a.current.name;, написанный &a.pjd.email; &mdash;
- автором &man.gjournal.8;.</para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="http://lists.freebsd.org/pipermail/freebsd-questions/2008-April/173501.html">Этот пост</link>
- от &a.ivoras.email; в списке рассылки &a.questions.name;.</para>
- </listitem>
-
- <listitem>
- <para>Страницы справочника &man.gjournal.8; и &man.geom.8;.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-</article>
diff --git a/ru_RU.KOI8-R/articles/hubs/Makefile b/ru_RU.KOI8-R/articles/hubs/Makefile
deleted file mode 100644
index 9fa1690d32..0000000000
--- a/ru_RU.KOI8-R/articles/hubs/Makefile
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# The FreeBSD Russian Documentation Project
-#
-# $FreeBSD$
-# $FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/hubs/Makefile,v 1.3 2004/04/12 07:55:51 marck Exp $
-#
-# Original revision: r39631
-#
-# Article: Mirroring FreeBSD
-
-DOC?= article
-
-FORMATS?= html
-WITH_ARTICLE_TOC?= YES
-
-INSTALL_COMPRESSED?=gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= article.xml
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/ru_RU.KOI8-R/articles/hubs/article.xml b/ru_RU.KOI8-R/articles/hubs/article.xml
deleted file mode 100644
index f6f6e0bedf..0000000000
--- a/ru_RU.KOI8-R/articles/hubs/article.xml
+++ /dev/null
@@ -1,745 +0,0 @@
-<?xml version="1.0" encoding="koi8-r"?>
-<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
- "http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
-<!--
- The FreeBSD Russian Documentation Project
-
- $FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/hubs/article.xml,v 1.21 2007/05/15 18:39:34 gad Exp $
-
- Original revision: r46284
--->
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="ru">
- <info><title>Поддержка зеркал FreeBSD</title>
-
-
- <authorgroup>
- <author><personname><firstname>Jun</firstname><surname>Kuriyama</surname></personname><affiliation>
- <address><email>kuriyama@FreeBSD.org</email></address>
- </affiliation></author>
-
- <author><personname><firstname>Valentino</firstname><surname>Vaschetto</surname></personname><affiliation>
- <address><email>logo@FreeBSD.org</email></address>
- </affiliation></author>
-
- <author><personname><firstname>Daniel</firstname><surname>Lang</surname></personname><affiliation>
- <address><email>dl@leo.org</email></address>
- </affiliation></author>
-
- <author><personname><firstname>Ken</firstname><surname>Smith</surname></personname><affiliation>
- <address><email>kensmith@FreeBSD.org</email></address>
- </affiliation></author>
-
- <author><personname><firstname>Дмитрий</firstname><surname>Морозовский</surname></personname><contrib>Перевод на русский язык: </contrib></author>
- </authorgroup>
-
- <legalnotice xml:id="trademarks" role="trademarks">
- &tm-attrib.freebsd;
- &tm-attrib.general;
- </legalnotice>
-
- <pubdate>$FreeBSD$</pubdate>
-
- <releaseinfo>$FreeBSD$</releaseinfo>
-
- <abstract>
- <para>Рабочий вариант статьи, описывающей процесс создания и поддержки
- зеркала FreeBSD и адресованной администраторам зеркал.</para>
- </abstract>
- </info>
-
- <note>
- <para>На текущий момент заявки на подключение новых зеркал
- не принимаются.</para>
- </note>
-
- <sect1 xml:id="mirror-contact">
- <title>Контактная информация</title>
-
- <para>Координаторы системы зеркал доступны по электронной почте по адресу
- <email>mirror-admin@FreeBSD.org</email>. Помимо этого, существует
- &a.hubs;.</para>
- </sect1>
-
- <sect1 xml:id="mirror-requirements">
- <title>Требования к зеркалам FreeBSD</title>
-
- <sect2 xml:id="mirror-diskspace">
- <title>Дисковое пространство</title>
-
- <para>Одним из наиболее важных требований является дисковое пространство.
- В зависимости от набора релизов, архитектур и степени полноты зеркала
- вам может потребоваться огромный объем диска. Не лишним будет
- помнить, что <emphasis>официальное</emphasis> зеркало, скорее всего,
- должно быть полным. Веб-страницы всегда должны
- зеркалироваться полностью. Кроме того, учтите, что приводимые оценки
- объема относятся к состоянию на момент последнего редактирования
- данной статьи (&rel2.current;-RELEASE/&rel.current;-RELEASE).
- Дальнейший процесс разработки и последующие релизы только увеличат
- требуемый объем. Кроме того, разумно будет зарезервировать некоторое
- (10-20%) дополнительное пространство спокойствия ради. Вот некоторые
- оценки объема:</para>
-
- <itemizedlist>
- <listitem>
- <para>Полное зеркало FTP: 1.4 TB</para>
- </listitem>
-
- <listitem>
- <para>Комплект изменений CTM: 10 GB</para>
- </listitem>
-
- <listitem>
- <para>Веб-страницы: 1 GB</para>
- </listitem>
- </itemizedlist>
-
- <para>Текущее использование диска зеркалом FTP можно посмотреть на
- <link xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/dir.sizes">ftp://ftp.FreeBSD.org/pub/FreeBSD/dir.sizes</link>.</para>
- </sect2>
-
- <sect2 xml:id="mirror-bandwidth">
- <title>Требования к сетевой связности и пропускной способности</title>
-
- <para>Разумеется, у вас должно быть подключение к интернет.
- Требуемая пропускная способность ваших каналов зависит от
- предполагаемого профиля использования вашего зеркала.
- Если вы собираетесь копировать некоторые части FreeBSD для
- локального использования на вашей машине или в интранете,
- требования могут быть много мягче, чем для публичного зеркала.
- Для официального зеркала необходимая пропускная способность
- увеличивается еще больше. Мы можем дать лишь очень грубые
- оценки:</para>
-
- <itemizedlist>
- <listitem>
- <para>Зеркало для локального доступа: фактически минимум не
- определен, но канал шириной менее 2 Mbps может сделать процесс
- обновления мучительно медленным.</para>
- </listitem>
-
- <listitem>
- <para>Неофициальное публичное зеркало: 34 Mbps выглядит
- неплохо для начала.</para>
- </listitem>
-
- <listitem>
- <para>Официальное зеркало: рекомендуется канал шириной более
- 100 Mbps; кроме того, ваша машина должна стоять как можно ближе к
- граничным маршрутизаторам вашей сети.</para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2 xml:id="mirror-system">
- <title>Системные требования, процессор и память</title>
-
- <para>Эти требования в первую очередь определяются максимальным ожидаемым
- количеством клиентов (устанавливается администратором сервера).
- Также, на требуемые ресурсы влияет список сервисов, которые вы будете
- предоставлять. Зеркала FTP и/или HTTP не требуют особенно много
- ресурсов. Будьте на чеку, если планируете предоставлять rsync.
- Выбор rsync может иметь огромное влияние на требования к аппаратным
- ресурсам, поскольку rsync признан "прожорливым" по памяти.
- Вот некоторые советы по конфигурации аппаратной части сервера:</para>
-
- <para>Для умеренно посещаемого сайта, предоставляющего
- <application>rsync</application>, можно использовать процессор
- с частотой 800MHz - 1 GHz и по крайней мере 512MB памяти.
- Скорее всего, данная конфигурация может считаться минимальной для
- <emphasis>официального</emphasis> зеркала.</para>
-
- <para>Для регулярно посещаемого сайта вам потребуется больше памяти
- (хорошим стартом будет 2GB) и больше процессорной мощности, что может
- означать требование многопроцессорной (SMP) платформы.</para>
-
- <para>Кроме того, вам потребуется быстрая дисковая подсистема, в первую
- очередь, для работы с репозиторием SVN (крайне рекомендуем RAID).
- Контроллер SCSI, оборудованный собственной памятью, также может
- ощутимо ускорить процесс, поскольку большая часть сервисов связана
- с большим количеством дисковых запросов небольшого размера.</para>
- </sect2>
-
- <sect2 xml:id="mirror-services">
- <title>Предоставляемые сервисы</title>
-
- <para>Всякое зеркало должно предоставлять набор основных сервисов.
- Помимо требуемого минимального набора, существуют дополнительные
- сервисы, которые администратор сервера может пожелать предоставлять.
- Этот раздел описывает, какие сервисы вы можете предоставлять, и какие
- действия для этого потребуются от вас.</para>
-
- <sect3 xml:id="mirror-serv-ftp">
- <title>FTP (требуется для FTP зеркала)</title>
-
- <para>Это один из наиболее базовых сервисов; его предоставление требуется
- для каждого зеркала, распространяющего файлы FreeBSD по FTP.
- Доступ по FTP должен быть анонимным, и не должны применяться
- какие-либо ограничения по соотношению объема передано/принято
- (что вообще является, на наш взгляд, странным подходом).
- Закачка (upload) файлов на сервер не требуется (и
- <emphasis>должна</emphasis> быть запрещена в разделе FreeBSD).
- Кроме того, архив файлов FreeBSD должен быть доступен с путем
- <filename>/pub/FreeBSD</filename>.</para>
-
- <para>
- Для предоставления анонимного FTP доступа может быть использован
- целый ряд программ (перечислены в алфавитном порядке):</para>
-
- <itemizedlist>
- <listitem>
- <para><command>/usr/libexec/ftpd</command>: базовый
- FTP-даемон FreeBSD. Не забудьте прочитать &man.ftpd.8;.</para>
- </listitem>
-
- <listitem>
- <para><package>ftp/ncftpd</package>: коммерческий
- пакет, свободен для использования в учебных целях.</para>
- </listitem>
-
- <listitem>
- <para><package>ftp/oftpd</package>: FTP-даемон,
- написанный в основном с точки зрения защищенности.</para>
- </listitem>
-
- <listitem>
- <para><package>ftp/proftpd</package>: Модульный
- и очень гибкий FTP-даемон.</para>
- </listitem>
-
- <listitem>
- <para><package>ftp/pure-ftpd</package>:
- Еще один FTP-даемон, разработанный с позиций защищенности.</para>
- </listitem>
-
- <listitem>
- <para><package>ftp/twoftpd</package>:
- См. предыдущий пункт.</para>
- </listitem>
-
- <listitem>
- <para><package>ftp/vsftpd</package>:
- <quote>очень защищенный</quote> (<quote>very secure</quote>)
- ftpd.</para>
- </listitem>
- </itemizedlist>
-
- <para><application>ftpd</application>,
- <application>proftpd</application> и, возможно,
- <application>ncftpd</application> являются наиболее часто
- встречающимися FTP серверами.
- Прочие распространены среди существующих зеркал в существенно
- меньшей степени. Дополнительным поводом для рассмотрения может
- являться возможность гибко ограничивать количество одновременных
- соединений, что поможет вам удержать в нужных рамках потребление
- пропускной способности ваших каналов и машинные ресурсы.</para>
- </sect3>
-
- <sect3 xml:id="mirror-serv-rsync">
- <title>Rsync (необязательный сервис для FTP зеркала)</title>
-
- <para>
- <application>Rsync</application> часто используется для
- предоставления доступа к FTP-области FreeBSD, чтобы другие зеркала
- могли синхронизироваться по вашему. Протокол rsync во многом
- отличается от FTP, в частности, он гораздо гуманнее с точки зрения
- пропускной способности каналов, поскольку не требует передачи
- измененного файла целиком (передаются лишь различия). Взамен
- <application>Rsync</application> требует значительных объемов
- памяти. Размер каждого процесса зависит от размера синхронизируемого
- модуля (в основном от количества директорий и файлов).
- <application>Rsync</application> может использовать в качестве
- транспортного протокола <command>rsh</command> или
- <command>ssh</command> (по умолчанию); также, может использоваться
- внутренний протокол <application>rsync</application> (этот метод
- предпочтителен для публичных rsync-серверов).
- Поддерживается авторизация клиентов и различные ограничения.
- Для протокола rsync существует единственный пакет:</para>
-
- <itemizedlist>
- <listitem>
- <para><package>net/rsync</package></para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3 xml:id="mirror-serv-http">
- <title>HTTP (требуется для веб-страниц, дополнителен для FTP зеркал)</title>
- <para>Если вы хотите поддерживать зеркало веб-страниц FreeBSD,
- вам потребуется установить веб-сервер.
- Дополнительно, вы можете предоставлять HTTP доступ к FTP-набору
- файлов FreeBSD. Выбор веб-сервера остается на усмотрение
- администратора зеркала. Некоторые из наиболее популярных
- веб-серверов перечислены ниже.</para>
-
- <itemizedlist>
- <listitem>
- <para><package>www/apache13</package>:
- <application>Apache</application>&nbsp;&mdash; самый
- широко распространённый в Интернете веб-сервер, активно
- используемый проектом FreeBSD. Вы можете также использовать
- веб-сервер <application>Apache</application> следующего
- поколения, доступный в коллекции портов как
- <package>www/apache22</package>.</para>
- </listitem>
-
- <listitem>
- <para><package>www/thttpd</package>:
- Для обслуживания большого количества запросов к статическим
- документам сервер thttpd может оказаться более эффективным, чем
- <application>Apache</application>. thttpd отлично оптимизирован
- по производительности при работе под FreeBSD.</para>
- </listitem>
-
- <listitem>
- <para><package>www/boa</package>:
- <application>Boa</application>&nbsp;&mdash; еще одна
- альтернатива <application>thttpd</application> и
- <application>Apache</application>. Этот сервер
- должен быть ощутимо более высокопроизводительным, чем
- <application>Apache</application>,
- для полностью статических страниц. На время написания данного
- документа, впрочем, он не так хорошо оптимизирован под
- FreeBSD, как <application>thttpd</application>.</para>
- </listitem>
-
- <listitem>
- <para><package>www/nginx</package>:
- <application>Nginx</application> &mdash;
- высокопроизводительный веб-сервер, отличающийся низкими
- требованиями к объему оперативной памяти и обладающий
- ключевыми функциональными возможностями для построения
- современной веб-инфраструктуры. Функциональные
- возможности включают следующее: HTTP-сервер, обратный
- прокси для HTTP, почтовый прокси сервер, кеширование,
- балансировка нагрузки, сжатие, ограничение количества
- запросов, мультиплексирование и повторное использование
- соединений, поддержка разгрузки SSL (SSL offload) и
- вещания медиапотоков (media streaming).</para>
- </listitem>
- </itemizedlist>
- </sect3>
- </sect2>
- </sect1>
-
- <sect1 xml:id="mirror-howto">
- <title>Как вести зеркало FreeBSD</title>
-
- <para>Теперь вам известно, какая потребуется машина и как предоставлять
- сервисы, но не как получить их самому. :-)
- В этом разделе описывается процесс ведения зеркала и поддержания
- его в актуальном состоянии, в том числе какие инструменты
- использовать и какие сайты выбирать в качестве источников для
- синхронизации.</para>
-
- <sect2 xml:id="mirror-ftp-rsync">
- <title>Зеркалирование FTP-области</title>
-
- <para>Файлы, доступные по FTP, составляют большую часть зеркала.
- Они включают <emphasis>дистрибутивные наборы</emphasis>, необходимые
- для установки по сети, <emphasis>ветви (branches)</emphasis>,
- в которых отражено текущее состояние исходных текстов,
- <emphasis>образы ISO</emphasis> для записи компакт-дисков с
- дистрибутивами для установки, образами <quote>живых</quote> файловых
- систем и пакетами, дерево портов, исходные дистрибутивы для сборки
- портов и кучу готовых пакетов. И, разумеется, все
- вышеописанное&nbsp;&mdash; для разных версий FreeBSD и различных
- архитектур.</para>
-
- <para>Наиболее эффективным будет синхронизация FTP-области при помощи
- <application>rsync</application>. Для этого следует установить
- пакет <package>net/rsync</package>, который был
- описан в разделе <xref linkend="mirror-serv-rsync"/>.
- Поскольку доступ по протоколу <application>rsync</application> не
- является обязательным, выбранный вами сайт может его не
- поддерживать. Возможно, вам придется немного поискать в сетевой
- окрестности зеркало, поддерживающее
- <application>rsync</application>.</para>
-
- <note>
- <para>Поскольку от количества клиентов
- <application>rsync</application> ощутимо зависит загрузка сервера,
- большинство администраторов вводят ограничения доступа. Для
- поддержания зеркала вам следует связаться с администратором сайта,
- с которым вы будете синхронизироваться, для уточнения локальных
- правил и, возможно, для внесения в них исключения для вас
- (поскольку вы также поддерживаете зеркало).</para>
- </note>
-
- <para>Строка для синхронизации FreeBSD по rsync выглядит примерно
- так:</para>
-
- <screen>&prompt.user; <userinput>rsync -vaHz --delete rsync://ftp4.de.FreeBSD.org/FreeBSD/ /pub/FreeBSD/</userinput></screen>
-
- <para>Загляните в документацию по <application>rsync</application>,
- также доступную по адресу
- <link xlink:href="http://rsync.samba.org/">http://rsync.samba.org/</link>
- за дополнительной информацией по различным опциям rsync.
- Обратите внимание, что в случае синхронизации модуля целиком (а не
- отдельного каталога) необходимо явно указать результирующий каталог,
- потому что каталог с именем модуля (в данном случае "FreeBSD")
- не создается. Для поддержания актуальности вам потребуется
- создать скрипт для запуска подобной команды из &man.cron.8;.</para>
- </sect2>
-
- <sect2 xml:id="mirror-www">
- <title>Зеркалирование страниц WWW</title>
-
- <para>Веб-сайт &os; следует зеркалировать исключительно при
- помощи <application>rsync</application>.</para>
-
- <para>Командная строка для синхронизации веб-сайта &os;
- выглядит примерно так:</para>
-
- <screen>&prompt.user; <userinput>rsync -vaHz --delete rsync://bit0.us-west.freebsd.org/FreeBSD-www-data/ /usr/local/www/</userinput></screen>
- </sect2>
-
- <sect2 xml:id="mirror-how-often">
- <title>Как часто синхронизироваться?</title>
-
- <para>Каждое зеркало должно регулярно обновляться. Вам потребуется
- какой-то набор скриптов, выполняемых посредством &man.cron.8;.
- Поскольку каждый администратор, как правило, пишет такие скрипты сам
- и на свой лад, мы не можем выдать конкретных указаний. Общие же советы
- выглядят так:</para>
-
- <procedure>
- <step>
- <para>Создайте скрипт с командой, которая запустит нужное приложение
- для обновления зеркала. Рекомендуем использовать скрипт на языке
- обычного <command>/bin/sh</command>.</para>
- </step>
-
- <step>
- <para>Добавьте команд перенаправления вывода, чтобы записать
- диагностику работы в файл.</para>
- </step>
-
- <step>
- <para>Попробуйте, как ваш скрипт работает. По завершении проверьте
- логи.</para>
- </step>
-
- <step>
- <para>При помощи утилиты &man.crontab.1; добавьте ваш скрипт в таблицу
- регулярных заданий &man.crontab.5; соответствующего пользователя.
- Это должен быть пользователь, отличный от пользователя FTP-даемона,
- чтобы файлы в FTP-области без атрибута "чтение для всех" не были
- доступны анонимным FTP-пользователям. Данное свойство используется
- для тестирования перед выходом новых релизов, для того чтобы
- удостовериться, что все официальные зеркала содержат все
- необходимые файлы к моменту официального объявления релиза.</para>
- </step>
- </procedure>
-
- <para>Некоторые рекомендуемые установки частоты обновления:</para>
-
- <itemizedlist>
- <listitem>
- <para>FTP-набор: раз в сутки</para>
- </listitem>
-
- <listitem>
- <para>WWW-страницы: раз в сутки</para>
- </listitem>
- </itemizedlist>
- </sect2>
- </sect1>
-
- <sect1 xml:id="mirror-where">
- <title>С какого сервера синхронизироваться</title>
-
- <para>Это важный вопрос, так что мы попытаемся пояснить, откуда берутся
- ответы. Для начала повторим еще несколько раз: <emphasis>никогда
- не синхронизируйтесь с <systemitem class="fqdomainname">ftp.FreeBSD.org</systemitem>
- </emphasis>.</para>
-
- <sect2 xml:id="mirror-where-organization">
- <title>Организация системы зеркал</title>
-
- <para>Зеркала организуются по странам. Имена хостов всех официальных
- зеркал построены по принципу
- <systemitem class="fqdomainname">ftpN.CC.FreeBSD.org</systemitem>,
- где <emphasis>CC</emphasis> (country code)&nbsp;&mdash; домен
- верхнего уровня страны, где расположено зеркало,
- <emphasis>N</emphasis>&nbsp;&mdash; номер зеркала в данной стране.
- Этот же принцип применим к именам хостов
- <systemitem>wwwN.CC.FreeBSD.org</systemitem> и т.п.
- Кроме того, есть зеркала без доменной части, обозначающей страну.
- Все они имеют очень хорошие внешние каналы и обслуживают большое число
- одновременных соединений.
- Имя <systemitem class="fqdomainname">ftp.FreeBSD.org</systemitem> на самом деле
- указывает на две машины, одна из которых в настоящее время находится
- в Дании, а другая в США.
- Ни одна из этих машин <emphasis>НЕ</emphasis> является основным
- сайтом, и потому не должна использоваться для синхронизации.
- Масса документации для <quote>живых</quote> пользователей указывает на
- <systemitem class="fqdomainname">ftp.FreeBSD.org</systemitem>, так что автоматическим
- системам ведения зеркал следует выбирать другие источники
- синхронизации.</para>
-
- <para>Кроме того, существует иерархия зеркал в терминах их удаленности от
- центра, или <emphasis>слоях</emphasis>. Основные сайты могут быть
- описаны как <emphasis>Зеркала нулевого слоя</emphasis>. Зеркала,
- синхронизирующиеся по ним, считаются <emphasis>слоем 1</emphasis>,
- следующие&nbsp;&mdash; <emphasis>слоем 2</emphasis> и т.д. Официальные
- сайты приглашаются на низкие слои, однако следует помнить, что чем
- меньше номер слоя, тем выше требования к зеркалу, как было описано в
- <xref linkend="mirror-requirements"/>. Помимо того, доступ к
- зеркалам 1 слоя может быть ограничен; безусловно ограничен доступ к
- основным сайтам. Иерархия <emphasis>слоев</emphasis> не отражается в
- DNS и, вообще говоря, нигде (кроме мастер-сайтов) не документирована.
- Тем не менее, официальные зеркала с малыми (1-4, как правило) номерами
- обычно представляют первый слой. (Это грубая оценка, и ни в коем
- случае не правило).</para>
- </sect2>
-
- <sect2 xml:id="mirror-where-where">
- <title>Так откуда же мне синхронизироваться?</title>
-
- <para>Главное&nbsp;&mdash; НЕ с
- <systemitem class="fqdomainname">ftp.FreeBSD.org</systemitem>. Короткий ответ:
- с зеркала, которое расположено недалеко от вас в терминах Интернет,
- и/или доступ к которому наилучший.</para>
-
- <sect3 xml:id="mirror-where-simple">
- <title>Я хочу получить копию зеркала хоть откуда-нибудь!</title>
-
- <para>Если у вас нет каких-либо специальных предпочтений или
- требований, см. <xref linkend="mirror-where-where"/>.
- Это означает:</para>
-
- <procedure>
- <step>
- <para>Выберите те из них, с которыми вам работать быстрее всего
- (меньшее число промежуточных узлов и время отклика), и которые
- предоставляют нужные вам сервисы (такие как
- <application>rsync</application>).</para>
- </step>
-
- <step>
- <para>Свяжитесь с администраторами выбранного сервера, опишите
- ваши запросы и уточните их правила.</para>
- </step>
-
- <step>
- <para>Сконфигурируйте ваше зеркало, как описывалось выше.</para>
- </step>
- </procedure>
- </sect3>
-
- <sect3 xml:id="mirror-where-official">
- <title>Я поддерживаю официальное зеркало, какой сайт
- мне выбрать?</title>
-
- <para>В основном, правила, описанные в
- <xref linkend="mirror-where-simple"/>, применимы. Дополнительно
- можно убедиться, что выбранный сайт принадлежит низкому слою.
- Другие соображения относительно <emphasis>официальных</emphasis>
- зеркал описаны в <xref linkend="mirror-official"/>.</para>
- </sect3>
-
- <sect3 xml:id="mirror-where-master">
- <title>Мне нужен доступ к основным сайтам!</title>
-
- <para>При наличии достаточных причин вы можете получить доступ
- к одному из основных сайтов. Доступ к ним ограничен; существуют
- специальные правила их использования. Наличие у вас статуса
- <emphasis>официального</emphasis> зеркала, безусловно, является
- хорошим подспорьем. В противном случае убедитесь, что ваша
- страна действительно нуждается еще в одном зеркале.
- Если их уже три или более, сначала свяжитесь с администратором
- соответствующей зоны DNS (<email>hostmaster@CC.FreeBSD.org</email>)
- или напишите в &a.hubs;.</para>
-
- <para>Доступ к одному из мастер-сайтов или подходящему зеркалу 1 уровня
- вам помогут обеспечить те же, кто помогал вам получить статус
- <emphasis>официального</emphasis> зеркала. В случае неудачи
- свяжитесь с <email>mirror-admin@FreeBSD.org</email> и попросите
- помощи у них.</para>
-
- <para>Существует один основной сайт для синхронизации набора файлов
- FTP.</para>
-
- <sect4 xml:id="mirror-where-master-ftp">
- <title>ftp-master.FreeBSD.org</title>
-
- <para>Это основной сервер для синхронизации FTP набора.</para>
-
- <para>В дополнение к FTP, <systemitem>ftp-master.FreeBSD.org</systemitem>
- поддерживает доступ по <application>rsync</application>.
- Использование этих протоколов описано в
- <xref linkend="mirror-ftp-rsync"/>.</para>
-
- <para>Приветствуется предоставление зеркалами
- <emphasis>1 уровня</emphasis> доступа к FTP-области по протоколу
- <application>rsync</application>.</para>
- </sect4>
- </sect3>
- </sect2>
- </sect1>
-
- <sect1 xml:id="mirror-official">
- <title>Официальные зеркала</title>
-
- <para>Официальные зеркала обладают следующим свойствами:</para>
-
- <itemizedlist>
- <listitem>
- <para>a) имеют запись в домене <systemitem>FreeBSD.org</systemitem>
- (обычно типа CNAME).</para>
- </listitem>
-
- <listitem>
- <para>b) присутствуют в списке официальных зеркал в Руководстве
- по FreeBSD и другой документации.</para>
- </listitem>
- </itemizedlist>
-
- <para>На настоящий момент это все, что отличает их от прочих зеркал.
- Официальные зеркала не обязательно принадлежат к
- <emphasis>Первому уровню</emphasis>, однако, вряд ли можно найти
- зеркало <emphasis>уровня 1</emphasis>, не являющееся официальным.</para>
-
- <sect2 xml:id="mirror-official-requirements">
- <title>Отдельные требования к официальным зеркалам 1 уровня</title>
-
- <para>Описать требования для всех официальных зеркал не так просто,
- поскольку проект FreeBSD достаточно мягок в этом отношении.
- Несколько проще указать, что требуется от <emphasis>официальных
- зеркал уровня 1</emphasis>. Прочие официальные зеркала должны
- рассматривать этот список как <emphasis>настойчивые
- пожелания</emphasis>.</para>
-
- <para>Зеркала 1 уровня должны:</para>
-
- <itemizedlist>
- <listitem>
- <para>поддерживать полный список файлов</para>
- </listitem>
-
- <listitem>
- <para>предоставлять доступ для других зеркал</para>
- </listitem>
-
- <listitem>
- <para>обеспечивать доступ по протоколам
- <application>FTP</application> и
- <application>rsync</application>.</para>
- </listitem>
- </itemizedlist>
-
- <para>Кроме того, администратор такого зеркала должен быть подписан
- на &a.hubs;. См. <link xlink:href="http://www.FreeBSD.org/doc/ru_RU.KOI8-R/books/handbook/eresources.html#ERESOURCES-MAIL">здесь</link>
- для дополнительной информации о подписке.</para>
-
- <important>
- <para>Администраторы зеркал, в особенности 1 уровня, должны
- <emphasis>очень</emphasis> внимательно следить за
- <link xlink:href="http://www.FreeBSD.org/releng/">графиком релизов</link>.
- Это поможет подготовиться к крупным всплескам нагрузки на зеркало,
- которые всегда происходят после очередного релиза.</para>
-
- <para>Кроме того, важно поддерживать актуальность зеркал (в особенности
- зеркал уровня 1). Если Зеркало1 не синхронизировалось в течение
- длительного времени, то зеркала следующего уровня будут
- синхронизироваться по устаревшей информации и т.д.
- Поддерживайте актуальность ваших зеркал!</para>
- </important>
- </sect2>
-
- <sect2 xml:id="mirror-official-become">
- <title>Как стать официальным зеркалом?</title>
-<!--
- <para>Небезынтересный вопрос, в особенности если учитывать последствия
- становления официальным зеркалом, например, увеличившиеся счета
- за интернет от вашего провайдера (ведь нагрузка на ваш сервер
- неизбежно увеличится). Статус официального зеркала может быть
- ключевым требованием для доступа к основному сайту.</para>
-
- <para>Прежде чем отправлять заявку, убедитесь в необходимости
- дополнительного официального зеркала в вашем регионе. Справьтесь у
- администратора вашей зоны (<email>hostmaster@CC.FreeBSD.org</email>)
- или, в случае, если вам не отвечают, здесь: &a.hubs;.</para>
-
- <para>Собственно процедура такова:</para>
-
- <procedure>
- <step>
- <para>Обеспечьте работоспособность и актуальность зеркала (скорее
- всего, синхронизируясь не по основному сайту).</para>
- </step>
-
- <step>
- <para>Подпишитесь <ulink url="http://www.FreeBSD.org/doc/ru_RU.KOI8-R/books/handbook/eresources.html#ERESOURCES-MAIL">здесь</ulink>
- на &a.hubs;.</para>
- </step>
-
- <step>
- <para>После успешного завершения предыдущих пунктов, напишите
- администратору DNS вашего региона (страны) и попросите его создать
- запись в зоне для вашего сайта. Почтовый адрес администратора
- <email>hostmaster@CC.FreeBSD.org</email>, где
- <emphasis>CC</emphasis>&nbsp;&mdash; код вашей страны (и суффикс
- домена верхнего уровня). Формат вашей записи в DNS описан в
- <xref linkend="mirror-where-organization"/>.</para>
-
- <para>Если для вашей страны пока не создано поддомена, свяжитесь с
- <email>mirror-admin@FreeBSD.org</email> или сначала напишите
- в &a.hubs;.</para>
- </step>
-
- <step>
- <para>Персона, помогавшая вам получить статус официального зеркала,
- должна послать письмо <email>mirror-admin@FreeBSD.org</email>,
- чтобы ваш сайт был включен в список официальных зеркал в <ulink
- url="http://www.FreeBSD.org/doc/ru_RU.KOI8-R/books/handbook">
- Руководстве FreeBSD</ulink>.</para>
- </step>
- </procedure>
--->
- <!-- XXX Ну не писать же здесь "как-нибудь так (с) Масяня" [marck] ;-))) XXX
- <para>That is it.</para>
- -->
- <para>На текущий момент заявки на подключение новых зеркал
- не принимаются.</para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="mirror-statpages">
- <title>Статистика некоторых зеркал</title>
-
- <para>Вот несколько ссылок на статистику использования зеркал</para>
-
- <sect2 xml:id="mirror-statpagesftp">
- <title>Статистика FTP сайтов</title>
-
- <itemizedlist>
- <listitem>
- <para>ftp.is.FreeBSD.org - <email>hostmaster@is.FreeBSD.org</email> -
- <link xlink:href="http://www.rhnet.is/status/draupnir/draupnir.html">
- (загрузка канала)</link>
- <link xlink:href="http://www.rhnet.is/status/ftp/ftp-notendur.html">(FTP
- процессы)</link>
- <link xlink:href="http://www.rhnet.is/status/ftp/http-notendur.html">
- (HTTP процессы)</link></para>
- </listitem>
-
- <listitem>
- <para>ftp.cz.FreeBSD.org - <email>cejkar@fit.vutbr.cz</email> -
- <link xlink:href="http://www.cz.FreeBSD.org/stats/mrtg/net.html">
- (загрузка канала)</link>
- <link xlink:href="http://www.freebsd.cz/stats/mrtg/ftpd.html">
- (FTP процессы)</link>
- <link xlink:href="http://www.freebsd.cz/stats/mrtg/rsyncd.html">
- (rsync процессы)</link></para>
- </listitem>
-
- <listitem>
- <para>ftp2.ru.FreeBSD.org - <email>mirror@macomnet.ru</email> -
- <link xlink:href="http://mirror.macomnet.net/mrtg/mirror.macomnet.net_195.128.64.25.html">(Bandwidth)</link>
- <link xlink:href="http://mirror.macomnet.net/mrtg/mirror.macomnet.net_proc.html">(HTTP and FTP users)</link></para>
- </listitem>
- </itemizedlist>
- </sect2>
- </sect1>
-</article>
diff --git a/ru_RU.KOI8-R/articles/ipsec-must/Makefile b/ru_RU.KOI8-R/articles/ipsec-must/Makefile
deleted file mode 100644
index 64934e4158..0000000000
--- a/ru_RU.KOI8-R/articles/ipsec-must/Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# The FreeBSD Russian Documentation Project
-#
-# $FreeBSD$
-# $FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/ipsec-must/Makefile,v 1.3 2004/02/20 07:52:54 andy Exp $
-# Article: Independent Verification of IPsec Functionality in FreeBSD
-#
-# Original revision: r39631
-#
-
-DOC?= article
-
-FORMATS?= html
-
-INSTALL_COMPRESSED?=gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= article.xml
-
-URL_RELPREFIX?= ../../../..
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/ru_RU.KOI8-R/articles/ipsec-must/article.xml b/ru_RU.KOI8-R/articles/ipsec-must/article.xml
deleted file mode 100644
index 80f671486c..0000000000
--- a/ru_RU.KOI8-R/articles/ipsec-must/article.xml
+++ /dev/null
@@ -1,355 +0,0 @@
-<?xml version="1.0" encoding="koi8-r"?>
-<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
- "http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
-<!--
- The FreeBSD Russian Documentation Project
-
- $FreeBSD$
- $FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/ipsec-must/article.xml,v 1.7 2004/07/16 12:06:05 den Exp $
-
- Original revision: r44703
--->
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="ru">
- <info><title>Независимое исследование работы IPsec во FreeBSD</title>
-
-
- <author><personname><firstname>David</firstname><surname>Honig</surname></personname><affiliation>
- <address><email>honig@sprynet.com</email></address>
- </affiliation></author>
-
- <pubdate>1999-05-03</pubdate>
-
- <legalnotice xml:id="trademarks" role="trademarks">
- &tm-attrib.freebsd;
- &tm-attrib.opengroup;
- &tm-attrib.general;
- </legalnotice>
-
- <releaseinfo>$FreeBSD$</releaseinfo>
-
- <abstract>
- <para>Вы только что установили и настроили IPsec, и оно,
- кажется, заработало. Как это можно проверить? Я опишу метод
- экспериментальной проверки правильного функционирования
- IPsec.</para>
- </abstract>
- </info>
-
- <sect1 xml:id="problem">
- <title>Постановка задачи</title>
-
- <para>Для начала предположим, что Вы <link linkend="ipsec-install">
- настроили <emphasis>IPsec</emphasis></link>. Как Вы
- узнаете, что IPsec <link linkend="caveat">работает</link>?
- Несомненно, соединения не будет, если Вы неверно его
- сконфигурировали. И оно, конечно, появится в выводе команды
- &man.netstat.1;, когда Вы всё сделаете верно. Но можно ли
- как-то подтвердить сам факт функционирования IPsec?</para>
- </sect1>
-
- <sect1 xml:id="solution">
- <title>Решение</title>
-
- <para>Для начала немножко криптографической теории:</para>
-
- <orderedlist>
- <listitem>
- <para>Шифрованные данные равномерно распределены по области
- определения, то есть каждый символ имеет максимальную
- энтропию;</para>
- </listitem>
-
- <listitem>
- <para><quote>Сырые</quote> и несжатые данные как правило
- избыточны, то есть их энтропия меньше максимально
- возможной.</para>
- </listitem>
- </orderedlist>
-
- <para>Предположим, что у Вас имеется возможность измерить энтропию
- входящего и исходящего трафика на сетевом интерфейсе. В этом
- случае Вы сможете легко отличить зашифрованные данные от
- открытых, причём даже в том случае, когда часть данных в
- <quote>режиме шифрования</quote> передаётся в открытом виде, к
- примеру внешние заголовки IP, которые используются для
- маршрутизации.</para>
-
- <sect2 xml:id="MUST">
- <title>MUST</title>
-
- <para><quote>Универсальный Статистический Тест для Генераторов
- Случайных Чисел</quote> Уэли Маурера (Ueli Maurer's Universal
- Statistical Test for Random Bit Generators), сокращённо <link xlink:href="http://www.geocities.com/SiliconValley/Code/4704/universal.pdf">
- <acronym>MUST</acronym></link> позволяет быстро измерить
- энтропию последовательного набора данных. Используемый
- алгоритм похож на алгоритм сжатия. <link linkend="code">В
- приложении</link> приведён исходный код, позволяющий измерять
- энтропию последовательных кусков данных размером около
- четверти мегабайта.</para>
- </sect2>
-
- <sect2 xml:id="tcpdump">
- <title>Tcpdump</title>
-
- <para>Ещё нам нужен способ сохранения информации,
- проходящей через интерфейс. Программа &man.tcpdump.1;
- позволяет сделать это в случае, если Вы <link linkend="kernel">сконфигурировали своё ядро</link> с
- поддержкой <emphasis>Пакетного Фильтра Беркли (Berkeley Packet
- Filter)</emphasis>.</para>
-
- <para>Команда</para>
-
- <screen><userinput>tcpdump -c 4000 -s 10000 -w <replaceable>dumpfile.bin</replaceable></userinput></screen>
-
- <para>сохранит 4000 пакетов в файл
- <replaceable>dumpfile.bin</replaceable>. В данном примере объём
- записываемой информации в каждом пакете не может превышать
- 10,000 байтов.</para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="experiment">
- <title>Эксперимент</title>
-
- <para>Повторите следующие шаги эксперимента:</para>
-
- <procedure>
- <step>
- <para>Откройте два окна терминала и свяжитесь в одном из них с
- каким-нибудь компьютером через канал IPsec, а в другом &mdash; с
- обычным, <quote>незащищённым</quote> компьютером.</para>
- </step>
-
- <step>
- <para>Теперь начните <link linkend="tcpdump">сохранять
- пакеты</link>.</para>
- </step>
-
- <step>
- <para>В <quote>шифрованном</quote> окне запустите команду &unix;
- &man.yes.1;, которая будет выдавать бесконечный
- поток символов <literal>y</literal>. Немножко подождите и
- завершите её. Затем переключитесь в обычное окно (не
- использующее канал IPsec) и сделайте то же самое.</para>
- </step>
-
- <step>
- <para>Заключительный этап: запустите <link linkend="code">
- MUST</link>, передав ему для обработки только что
- сохранённые пакеты через командную строку. Вы должны
- увидеть что-то вроде изображённого чуть ниже. Заметьте, что
- безопасное соединение имеет 93% (6,7) от ожидаемого значения
- (7,18), а обычное соединение &mdash; всего лишь 29%
- (2,1).</para>
-
- <screen>&prompt.user; <userinput>tcpdump -c 4000 -s 10000 -w <replaceable>ipsecdemo.bin</replaceable></userinput>
-&prompt.user; <userinput>uliscan <replaceable>ipsecdemo.bin</replaceable></userinput>
-
-Uliscan 21 Dec 98
-L=8 256 258560
-Measuring file ipsecdemo.bin
-Init done
-Expected value for L=8 is 7.1836656
-6.9396 --------------------------------------------------------
-6.6177 -----------------------------------------------------
-6.4100 ---------------------------------------------------
-2.1101 -----------------
-2.0838 -----------------
-2.0983 -----------------</screen>
- </step>
- </procedure>
- </sect1>
-
- <sect1 xml:id="caveat">
- <title>Замечание</title>
-
- <para>Этот эксперимент показывает, что IPsec
- <emphasis>действительно</emphasis> распределяет передаваемые
- байты по области определения <emphasis>равномерно</emphasis>,
- как и любое другое шифрование. Однако этот метод <emphasis>не
- может</emphasis> обнаружить множество других изъянов в системе
- (хотя я таковых не знаю). Для примера можно привести плохие
- алгоритмы генерации или обмена ключами, нарушение
- конфиденциальности данных или ключей, использование слабых в
- криптографическом смысле алгоритмов, взлом ядра и т. д. Изучайте
- исходный код, узнавайте, что там происходит.</para>
- </sect1>
-
- <sect1 xml:id="IPsec">
- <title>Определение IPsec</title>
-
- <para>IPsec представляет собой протокол безопасного обмена
- информацией по Internet. Существует в виде расширения к IPv4;
- является неотъемлемой частью IPv6. Содержит в себе протокол
- шифрования и аутентификации на уровне IP (межмашинное
- <quote>host-to-host</quote> взаимодействие). SSL защищает
- только лишь конкретный прикладной сокет;
- <application>SSH</application> защищает вход на машину;
- <application>PGP</application> защищает определённый файл или
- письмо. IPsec шифрует всю информацию, передаваемую между двумя
- машинами.</para>
- </sect1>
-
- <sect1 xml:id="ipsec-install">
- <title>Установка IPsec</title>
-
- <para>Большинство современных версий FreeBSD уже имеют поддержку
- IPsec. Вероятно, Вы должны будете лишь добавить опцию
- <option>IPsec</option> в конфигурационный файл ядра, и после
- сборки и инсталляции нового ядра, сконфигурировать соединение
- IPsec с помощью команды &man.setkey.8;.</para>
-
- <para>Более подробно о том, как запустить IPsec во FreeBSD можно
- прочесть в <link xlink:href="&url.books.handbook;/ipsec.html">Руководстве
- пользователя</link>.</para>
- </sect1>
-
- <sect1 xml:id="kernel">
- <title>src/sys/i386/conf/KERNELNAME</title>
-
- <para>Для того, чтобы захватывать сетевой трафик при помощи
- &man.tcpdump.1;, следующие строки должны присутствовать
- в конфигурационном файле ядра. Не
- забудьте после модификации запустить &man.config.8;, и, как
- обычно, пересобрать и установить новое ядро.</para>
-
- <programlisting>device bpf</programlisting>
- </sect1>
-
- <sect1 xml:id="code">
- <title>Универсальный Статистический Тест Маурера (размер блока
- &mdash; 8 бит)</title>
-
- <para>Оригинал нижеприведённого кода находится по <link xlink:href="http://www.geocities.com/SiliconValley/Code/4704/uliscanc.txt">
- этому адресу</link>.</para>
-
- <programlisting>/*
- ULISCAN.c ---blocksize of 8
-
- 1 Oct 98
- 1 Dec 98
- 21 Dec 98 uliscan.c derived from ueli8.c
-
- This version has // comments removed for Sun cc
-
- This implements Ueli M Maurer's "Universal Statistical Test for Random
- Bit Generators" using L=8
-
- Accepts a filename on the command line; writes its results, with other
- info, to stdout.
-
- Handles input file exhaustion gracefully.
-
- Ref: J. Cryptology v 5 no 2, 1992 pp 89-105
- also on the web somewhere, which is where I found it.
-
- -David Honig
- honig@sprynet.com
-
- Usage:
- ULISCAN filename
- outputs to stdout
-*/
-
-#define L 8
-#define V (1&lt;&lt;L)
-#define Q (10*V)
-#define K (100 *Q)
-#define MAXSAMP (Q + K)
-
-#include &lt;stdio.h&gt;
-#include &lt;math.h&gt;
-
-int main(argc, argv)
-int argc;
-char **argv;
-{
- FILE *fptr;
- int i,j;
- int b, c;
- int table[V];
- double sum = 0.0;
- int iproduct = 1;
- int run;
-
- extern double log(/* double x */);
-
- printf("Uliscan 21 Dec 98 \nL=%d %d %d \n", L, V, MAXSAMP);
-
- if (argc &lt; 2) {
- printf("Usage: Uliscan filename\n");
- exit(-1);
- } else {
- printf("Measuring file %s\n", argv[1]);
- }
-
- fptr = fopen(argv[1],"rb");
-
- if (fptr == NULL) {
- printf("Can't find %s\n", argv[1]);
- exit(-1);
- }
-
- for (i = 0; i &lt; V; i++) {
- table[i] = 0;
- }
-
- for (i = 0; i &lt; Q; i++) {
- b = fgetc(fptr);
- table[b] = i;
- }
-
- printf("Init done\n");
-
- printf("Expected value for L=8 is 7.1836656\n");
-
- run = 1;
-
- while (run) {
- sum = 0.0;
- iproduct = 1;
-
- if (run)
- for (i = Q; run &amp;&amp; i &lt; Q + K; i++) {
- j = i;
- b = fgetc(fptr);
-
- if (b &lt; 0)
- run = 0;
-
- if (run) {
- if (table[b] &gt; j)
- j += K;
-
- sum += log((double)(j-table[b]));
-
- table[b] = i;
- }
- }
-
- if (!run)
- printf("Premature end of file; read %d blocks.\n", i - Q);
-
- sum = (sum/((double)(i - Q))) / log(2.0);
- printf("%4.4f ", sum);
-
- for (i = 0; i &lt; (int)(sum*8.0 + 0.50); i++)
- printf("-");
-
- printf("\n");
-
- /* refill initial table */
- if (0) {
- for (i = 0; i &lt; Q; i++) {
- b = fgetc(fptr);
- if (b &lt; 0) {
- run = 0;
- } else {
- table[b] = i;
- }
- }
- }
- }
-}</programlisting>
- </sect1>
-</article>
diff --git a/ru_RU.KOI8-R/articles/mailing-list-faq/Makefile b/ru_RU.KOI8-R/articles/mailing-list-faq/Makefile
deleted file mode 100644
index 754ba37930..0000000000
--- a/ru_RU.KOI8-R/articles/mailing-list-faq/Makefile
+++ /dev/null
@@ -1,31 +0,0 @@
-#
-# The FreeBSD Russian Documentation Project
-#
-# $FreeBSD$
-# $FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/mailing-list-faq/Makefile,v 1.1 2005/06/10 06:27:12 gad Exp $
-#
-# Original revision: r39665
-#
-# Article: Frequently Asked Questions About The FreeBSD Mailing Lists
-
-DOC?= article
-
-FORMATS?= html
-
-INSTALL_COMPRESSED?=gz
-INSTALL_ONLY_COMPRESSED?=
-
-WITH_ARTICLE_TOC?=YES
-
-#
-# SRCS lists the individual XML files that make up the document. Changes
-# to any of these files will force a rebuild
-#
-
-# XML content
-SRCS= article.xml
-
-URL_RELPREFIX?= ../../../..
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/ru_RU.KOI8-R/articles/mailing-list-faq/article.xml b/ru_RU.KOI8-R/articles/mailing-list-faq/article.xml
deleted file mode 100644
index e1061e180c..0000000000
--- a/ru_RU.KOI8-R/articles/mailing-list-faq/article.xml
+++ /dev/null
@@ -1,497 +0,0 @@
-<?xml version="1.0" encoding="koi8-r"?>
-<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
- "http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
-<!--
- The FreeBSD Russian Documentation Project
-
- $FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/mailing-list-faq/article.xml,v 1.4 2006/02/09 14:56:28 marck Exp $
-
- Original revision: r46073
--->
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="ru">
- <info><title>Часто задаваемые вопросы по спискам рассылки &os;</title>
-
-
- <authorgroup>
- <author><personname><surname>The &os; Documentation Project</surname></personname></author>
- </authorgroup>
-
- <copyright>
- <year>2004</year>
- <year>2005</year>
- <holder>The &os; Documentation Project</holder>
- </copyright>
-
- <pubdate>$FreeBSD$</pubdate>
-
- <releaseinfo>$FreeBSD$</releaseinfo>
-
- <abstract>
- <para>Эта статья посвящена часто задаваемым вопросам (FAQ) по
- спискам рассылки &os;. Если вы хотите помочь поддерживать данный
- документ, напишите письмо в &a.doc;.
- Последняя версия данного документа доступна на
- <link xlink:href="http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/mailing-list-faq/index.html">WWW
- сервере &os;</link>. Вы можете получить данную статью в
- виде одного большого
- <link xlink:href="article.html">HTML</link> файла, используя HTTP протокол
- или в виде простого текста, форматов PostScript, PDF, и других с <link xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/">FTP
- сервера &os;</link>. Возможно вы захотите <link xlink:href="&url.base;/search/index.html">Найти
- FAQ</link>.</para>
- </abstract>
- </info>
-
- <sect1 xml:id="introduction">
- <title>Введение</title>
-
- <para>Цель этого документа ответить на часто задаваемые
- вопросы, касающиеся списков рассылки &os;. Хотя FAQ задумывались
- для снижения количества задаваемых повторяющихся вопросов, они стали
- восприниматься, как ценные источники информации.</para>
-
- <para>Этот документ - попытка представить консенсус всего сообщества,
- и поэтому он не может считаться <emphasis>официальным</emphasis>.
- Если вы найдете технические неточности в данном документе или
- у вас есть предложения по добавлению новых пунктов, пожалуйста
- отправьте PR или напишите в &a.doc;. Спасибо.</para>
-
- <qandaset>
- <qandaentry>
- <question xml:id="purpose">
- <para>Зачем вообще нужны списки рассылки по &os;?</para>
- </question>
-
- <answer>
- <para>Списки рассылки по &os; служат, как первичное средство
- связи &os; сообщества, они покрывают множество различных
- тем.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="audience">
- <para>Кто пользуется этими списками рассылки?</para>
- </question>
-
- <answer>
- <para>Это зависит от темы обсуждения каждого конкретного
- списка рассылки. Некоторые списки больше ориентированны на
- разработчиков, некоторые на всё сообщество &os; в целом. Список
- существующих на сегодняшний день списков рассылки доступен
- <link xlink:href="http://lists.FreeBSD.org/mailman/listinfo">здесь</link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="participation-who">
- <para>Доступны ли списки рассылки по &os; для каждого?</para>
- </question>
-
- <answer>
- <para>Повторюсь, это зависит от характера обсуждаемых тем в каждом
- конкретном листе. Пожалуйста прочтите устав списка рассылки
- перед отправлением в него письма и соблюдайте его при каждом
- отправлении. Это будет полезно каждому получить больше опыта
- по работе со списками рассылки.</para>
-
- <para>Если после просмотра выше расположенного списка, вы до
- сих пор не знаете в какой список рассылки направить
- письмо, то вам наверняка подойдёт freebsd-questions (но
- прежде прочтите ниже).</para>
-
- <para>Заметьте, что для отправки письма в список рассылки
- необязательно быть подписанным на него. Это поможет
- легче присоединиться к сообществу &os; и способствует
- открытому обмену идей. Но, из-за небрежности некоторых
- людей некоторые списки проводят политику предварительного
- ручного просмотра сообщений от не подписанных пользователей, чтобы
- убедиться в их целесообразности.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="subscribe">
- <para>Как я могу подписаться?</para>
- </question>
-
- <answer>
- <para>Вы можете использовать <link xlink:href="http://lists.FreeBSD.org/mailman/listinfo">
- web интерфейс Mailman</link> для подписки на любой
- из открытых списков рассылки.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="unsubscribe">
- <para>Как мне отписаться?</para>
- </question>
-
- <answer>
- <para>Вы можете использовать вышеупомянутый интерфейс
- или следовать инструкциям, находящимся в конце каждого
- письма, отправленного в этот список рассылки.</para>
-
- <para>Пожалуйста, не посылайте письма с отказом от подписки
- в сами публичные списки. Во-первых, вы так не
- отпишитесь, а во-вторых, вызовете раздражение
- подписчиков, и вероятно получите неприятные высказывания
- в свой адрес. Это классическая ошибка при работе со
- списками рассылки; старайтесь не повторять её.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="archives">
- <para>Доступны ли архивы?</para>
- </question>
-
- <answer>
- <para>Да. Архивы доступны
- <link xlink:href="http://docs.FreeBSD.org/mail/">здесь</link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="digest">
- <para>Доступны ли списки рассылки в дайджест формате?</para>
- </question>
-
- <answer>
- <para>Да. Посмотрите <link xlink:href="http://lists.FreeBSD.org/mailman/listinfo">
- web интерфейс Mailman</link>.</para>
- </answer>
- </qandaentry>
- </qandaset>
- </sect1>
-
- <sect1 xml:id="etiquette">
- <title>Этикет списков рассылки</title>
-
- <para>Участие в любом списке рассылки, как и в любом другом
- сообществе требует общего базиса для общения. Пожалуйста,
- отправляйте только подходящие сообщения и следуйте общепринятым
- нормам этикета.</para>
-
- <qandaset>
- <qandaentry>
- <question xml:id="before-posting">
- <para>Что я должен сделать перед отправлением письма?</para>
- </question>
-
- <answer>
- <para>Вы уже сделали важный шаг, решив прочитать эту
- статью. Если вы новичок во &os;, то сначала ознакомьтесь
- с программным обеспечением и связанной с нею
- документацией, включающей множество
- <link xlink:href="&url.base;/ru/docs/books.html">книг и
- статьей</link>.
- Могут быть
- интересными: <link xlink:href="&url.books.faq;/index.html">
- Часто задаваемые вопросы по &os; (FAQ)</link>,
- <link xlink:href="&url.books.handbook;/index.html">
- Руководство по &os; </link>,
- и статьи <link xlink:href="&url.articles.freebsd-questions;/article.html">
- Как работать со списком рассылки FreeBSD-questions с максимальной отдачей</link>,
- <link xlink:href="&url.articles.explaining-bsd;/article.html">
- Что такое BSD</link>,
- и <link xlink:href="&url.articles.new-users;/article.html">
- Пособие для новичков во &os;</link>.</para>
-
- <para>Вы можете получить нелицеприятные высказывания в свой
- адрес, если зададите вопрос, ответ на который
- есть в приведённой выше документации. Это не потому что
- добровольцы, работающие над данным проектом очень плохие
- люди, а после многократного ответа на одни и те же
- вопросы - раздражение берёт своё. Это особенно справедливо,
- если уже существует и доступен ответ на вопрос. Не
- забывайте, что вся работа по улучшению &os; выполняется
- добровольцами, и что мы только люди.</para>
- </answer>
-
- </qandaentry>
-
- <qandaentry>
- <question xml:id="inappropriate">
- <para>Что считается несоответствующим письмом?</para>
- </question>
-
- <answer>
- <itemizedlist>
- <listitem>
- <para>Письма должны соответствовать уставу
- списка рассылки.</para>
- </listitem>
-
- <listitem>
- <para>Избегайте личных оскорблений. Как хорошие
- жители сети, мы должны держать себя по высоким
- стандартам поведения.</para>
- </listitem>
-
- <listitem>
- <para>Спам не разрешён. Нарушители данного правила
- будут забаненны.</para>
- </listitem>
- </itemizedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="etiquette-posting">
- <para>Что считается хорошим этикетом при посылке писем
- в списки рассылки?</para>
- </question>
-
- <answer>
- <itemizedlist>
- <listitem>
- <para>Пожалуйста, составляйте строки длиной примерно в
- 75 символов, так так не каждый использует модную
- почтовую программу с графическим интерфейсом.</para>
- </listitem>
-
- <listitem>
- <para>Пожалуйста, обращайте внимание на тот факт, что
- пропускная способность ограничена. Не каждый
- читает почту через высокоскоростное
- соединение. Если вы отправляете содержимое
- какого-нибудь файла, например <filename>config.log</filename>
- или объёмную трассировку стека, то, пожалуйста, размещайте его
- на каком-нибудь веб-сайте и присылайте просто ссылку на
- на него. Помните, что такие сообщения будут
- заархивированны, и это просто добавит ненужные байты
- к архиву.</para>
- </listitem>
-
- <listitem>
- <para>Оформляйте ваше сообщение, чтобы оно было читабельно
- и ПОЖАЛУЙСТА, НЕ КРИЧИТЕ!!!!!. Не упускайте из виду эффект,
- которое производит плохо отформатированное письмо, причём
- не только в списках рассылки &os;. Ваше сообщение будет
- просмотрено другими людьми, и если оно плохо отформатировано, имеет
- множество ошибок и/или восклицательных знаков, то это создаст
- нехорошее впечатление о вас.</para>
- </listitem>
-
- <listitem>
- <para>Пожалуйста, используйте подходящий язык общения для
- конкретного списка рассылки.
- <link xlink:href="&url.base;/community/mailinglists.html">
- Существует</link> много не англоязычных рассылок.</para>
-
- <para>Мы понимаем, что для многих английский не родной язык и
- поэтому мы пытаемся сделать некие пособия. Считается
- плохим тоном критиковать людей не говорящих по-английски за
- лексические и грамматические ошибки. &os; имеет отличные
- продвижения в этом отношении. Пожалуйста, помогайте
- сохранять нам эту традицию.</para>
- </listitem>
-
- <listitem>
- <para>Пожалуйста, используйте совместимый со стандартами
- почтовый клиент (MUA). Много плохо отформатированных
- сообщений исходят от
- <link xlink:href="http://www.lemis.com/grog/email/email.php">неправильно
- работающих или плохо сконфигурированных почтовых клиентов</link>.
- Известно, что следующие почтовые программы могут посылать
- неправильно отформатированные сообщения без вашего ведома:</para>
-
- <itemizedlist>
- <listitem>
- <para>exmh</para>
- </listitem>
-
- <listitem>
- <para>&microsoft; Exchange</para>
- </listitem>
-
- <listitem>
- <para>&microsoft; &outlook;</para>
- </listitem>
- </itemizedlist>
-
- <para>Постарайтесь не использовать <acronym>MIME</acronym>:
- многие используют программы, которые не очень хорошо работают с
- <acronym>MIME</acronym>.</para>
- </listitem>
-
- <listitem>
- <para>Проверьте правильность настроек времени и временной зоны. Это
- может выглядеть немножко глупо, потому что ваши сообщения все равно
- будут доставляться, однако многие люди получают несколько сотен
- сообщений в день. Зачастую они сортируют входящие сообщения по
- теме и дате, и если ваше сообщение не будет предшествовать первому
- ответу, то они могут предположить, что оно потерялось и даже не
- взглянут на него.</para>
- </listitem>
-
- <listitem>
- <para>Основной объем информации, который вы должны предоставить, представляет
- собой вывод программ, таких, как &man.dmesg.8;, или консольные
- сообщения, которые обычно появляются в файле
- <filename>/var/log/messages</filename>. Не пытайтесь скопировать
- эту информацию, набрав ее снова; это действительно трудно, и
- здесь легко сделать ошибку. Чтобы послать содержимое файлов
- протоколов, сделайте копию файла и воспользуйтесь редактором
- для того, чтобы обрезать информацию, оставив только относящуюся
- к делу, либо скопируйте и вставьте текст в ваше сообщение. В
- случае вывода программ, таких,
- как <command>dmesg</command>, перенаправьте вывод в файл и
- включите его в письмо. Например,</para>
-
- <screen>&prompt.user; <userinput>dmesg &gt; /tmp/dmesg.out</userinput></screen>
-
- <para>Данная команда перенаправит информацию в файл
- <filename>/tmp/dmesg.out</filename>.</para>
- </listitem>
-
- <listitem>
- <para>При использовании операций копирования и вставки
- учтите, что некоторые такие операции отрицательно сказываются
- на формате строк. Особенно это стоит учесть при посылке
- содержимого файлов <filename>Makefile</filename>, где
- <literal>tab</literal> является важным символом. Это
- довольно часто встречающаяся проблема
- в <link xlink:href="&url.base;/support.html">
- базе данных сообщений об ошибках</link>.
- В <filename>Makefile</filename> символы tab меняются
- на пробелы, или раздражающие <literal>=3B</literal>
- escape последовательности.</para>
- </listitem>
- </itemizedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="etiquette-replying">
- <para>Каких правил этикета стоит придерживаться при ответе
- на уже существующее сообщение?</para>
- </question>
-
- <answer>
- <itemizedlist>
- <listitem>
- <para>Пожалуйста, включайте относящийся к теме текст из
- исходного письма. Сокращайте его до минимума, но не
- переусердствуйте. Любой, кто не читал исходное сообщение
- должен суметь понять о чём идёт речь.</para>
-
- <para>Это особенно важно для ответов, где исходное сообщение составляло
- сотни строчек.</para>
- </listitem>
-
- <listitem>
- <para>Отделяйте текст исходного сообщения
- от текста, добавляемого вами. Чаще всего строчки исходного
- сообщения
- предваряются <quote><literal>&gt; </literal></quote> и
- пробелом. Отделяйте ваш текст от текста исходного сообщения
- пустыми строчками. Эти правила помогут сделать ваши
- сообщения более читабельными.</para>
- </listitem>
-
- <listitem>
- <para>Пожалуйста, убедитесь, что присваивания текста, который
- вы цитируйте корректны. Люди могут обидеться, если
- вы присвоите им слова, которые они не писали.</para>
- </listitem>
-
- <listitem>
- <para>Пожалуйста, не пишите <literal>ответ в начале</literal>. Это значит,
- что при ответе на сообщения, вставляйте ваши ответы в
- конец, после текста, копируемого из исходного сообщения.</para>
- <!-- note: the question and answer are intentionally
- reversed for humorous effect -->
- <itemizedlist>
- <listitem>
- <para>A: Потому что это не соответствует логическому
- ходу обсуждения.</para>
- </listitem>
- <listitem>
- <para>Q: Почему верхнее сообщение осуждает это?</para>
- </listitem>
- </itemizedlist>
- <para>(Спасибо Рэнди Бушу (Randy Bush) за шутку.)</para>
- </listitem>
- </itemizedlist>
- </answer>
- </qandaentry>
- </qandaset>
- </sect1>
-
- <sect1 xml:id="recurring">
- <title>Повторяющиеся темы в списках рассылки</title>
-
- <para>Участие в списках рассылки, как и участие в любом сообществе
- требует общего базиса для общения. Большое количество рассылок
- предполагают знание истории Проекта. В частности, существует
- несколько тем обсуждения, которые возникают у
- новичков. Обязанность каждого участника не создавать дискуссии
- на эти темы, тем самым помочь спискам рассылки не отрываться от
- обсуждаемых тем и обезопасить себя от разгорячённых бесед.</para>
-
- <para>Лучший способ предотвратить это - ознакомиться с
- <link xlink:href="http://docs.FreeBSD.org/mail/">архивами списков рассылки</link>,
- чтобы понять, что происходило до этого. В этом случае, незаменимым
- окажется <link xlink:href="http://www.FreeBSD.org/search/search.html#mailinglists">
- интерфейс поиска по спискам рассылки</link>. (Если этот
- способ не принёс результатов, воспользуйтесь вашей любимой
- поисковой системой).</para>
-
- <para>Познакомившись с архивами, вы не только будете знать какие темы
- обсуждались до этого, а также узнаете какие тенденции общения
- существуют в данной рассылке, кто является участниками и какова
- конечная аудитория. Эти вещи довольно хорошо знать перед отправкой
- письма в любую рассылку, и это касается не только списков
- рассылки &os;.</para>
-
- <para>Нет сомнения, что архивы довольно объёмные и некоторые вопросы
- повторяются гораздо чаще чем другие, иногда в виде
- откликов (followups), где тема сообщения уже не соответствует новому
- положению дел. Тем не менее, старайтесь избегать повторяющихся
- тем.</para>
- </sect1>
-
- <sect1 xml:id="bikeshed">
- <title>Что такое велосипедный навес ("Bikeshed")?</title>
- <para>В литературной нотации, <literal>велосипедный навес</literal> - это
- маленький внешний кожух, в который можно поместить один вид
- двухколёсного транспорта. Тем не менее, на языке &os;, этот термин
- ("bikeshed") относится к темам, которые достаточно просты, и на которые
- (почти) каждый может предложить собственное мнение, и часто (почти)
- каждый его и предлагает. Детали происхождения данного термина более
- подробно рассмотрены <link xlink:href="&url.books.faq;/misc.html#BIKESHED-PAINTING">здесь</link>.
- У вас должно иметься представление о данном понятии перед
- отправкой письма в любой список рассылки &os;.</para>
-
- <para>Bikeshed - это тема разговора, которая будет иметь
- тенденцию порождать немедленные мета-дискуссии и флэйм.</para>
-
- <para>Пожалуйста, помогайте сохранять списки рассылки настолько
- полезными для многих людей, насколько это возможно путём
- предотвращения bikeshed. Спасибо.</para>
- </sect1>
-
- <sect1 xml:id="acknowledgments">
- <title>Благодарности</title>
-
- <variablelist>
- <varlistentry>
- <term>&a.grog.email;</term>
- <listitem>
- <para>Первоначальный автор большинства материала по этикету списков
- рассылки, взятого из статьи <link xlink:href="&url.articles.freebsd-questions;/article.html">
- Как работать со списком рассылки FreeBSD-questions с максимальной отдачей</link>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.linimon.email;</term>
- <listitem>
- <para>Создание черновой версии данного FAQ.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect1>
-
-</article>
diff --git a/ru_RU.KOI8-R/articles/new-users/Makefile b/ru_RU.KOI8-R/articles/new-users/Makefile
deleted file mode 100644
index a48d8e5494..0000000000
--- a/ru_RU.KOI8-R/articles/new-users/Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# The FreeBSD Russian Documentation Project
-#
-# $FreeBSD$
-# $FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/new-users/Makefile,v 1.2 2005/10/28 17:39:43 gad Exp $
-#
-# Original revision: r39631
-#
-# Article: For People New to Both FreeBSD and Unix
-
-DOC?= article
-
-FORMATS?= html
-
-INSTALL_COMPRESSED?=gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= article.xml
-
-URL_RELPREFIX?= ../../../..
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/ru_RU.KOI8-R/articles/new-users/article.xml b/ru_RU.KOI8-R/articles/new-users/article.xml
deleted file mode 100644
index e2cd637972..0000000000
--- a/ru_RU.KOI8-R/articles/new-users/article.xml
+++ /dev/null
@@ -1,916 +0,0 @@
-<?xml version="1.0" encoding="koi8-r"?>
-<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
- "http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
-<!--
- The FreeBSD Russian Documentation Project
-
- $FreeBSD$
- $FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/new-users/article.xml,v 1.6 2007/05/15 18:28:39 gad Exp $
-
- Original revision: r46448
--->
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="ru">
- <info><title>Пособие для новичков во FreeBSD и &unix;</title>
-
-
- <authorgroup>
- <author><personname><firstname>Annelise</firstname><surname>Anderson</surname></personname><affiliation>
- <address><email>andrsn@andrsn.stanford.edu</email></address>
- </affiliation></author>
- </authorgroup>
-
- <pubdate>15 августа 1997</pubdate>
-
- <legalnotice xml:id="trademarks" role="trademarks">
- &tm-attrib.freebsd;
- &tm-attrib.ibm;
- &tm-attrib.microsoft;
- &tm-attrib.opengroup;
- &tm-attrib.general;
- </legalnotice>
-
- <releaseinfo>$FreeBSD$</releaseinfo>
-
- <abstract>
- <para>Поздравляем вас с установкой FreeBSD! Это вводное пособие
- предназначено для тех, кто является новичком в мире FreeBSD
- <emphasis>и</emphasis> &unix;&mdash;так что оно начнётся с
- основ.</para>
- </abstract>
- </info>
-
- <sect1 xml:id="in-and-out">
- <title>Регистрация в системе и выход из неё</title>
-
- <para>Зарегистрируйтесь в системе (когда увидите приглашение
- <prompt>login:</prompt>) как пользователь, которого вы создали во время
- установки, или войдите в систему как пользователь
- <systemitem class="username">root</systemitem>. (В вашей установленной системе уже имеется
- учётная запись для пользователя <systemitem class="username">root</systemitem>; который может переходить хоть куда
- и делать всё, что угодно, в том числе удаление необходимых для работы
- файлов, так что будьте внимательны!) Обозначения &prompt.user; и
- &prompt.root; в последующем тексте означают приглашения системы (ваше
- может отличаться от него), причём &prompt.user; обозначает обычного
- пользователя, а &prompt.root; пользователя <systemitem class="username">root</systemitem>.</para>
-
- <para>Чтобы выйти из системы (и получить новое приглашение
- <prompt>login:</prompt>) наберите</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>exit</userinput></screen>
- </informalexample>
-
- <para>столько раз, сколько нужно. Да, нажимайте <keysym>enter</keysym>
- после набора команд, и помните, что &unix; чувствителен к регистру
- букв&mdash;набирайте <command>exit</command>, но не
- <command>EXIT</command>.</para>
-
- <para>Для завершения работы машины наберите</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>/sbin/shutdown -h now</userinput></screen>
- </informalexample>
-
- <para>Или, для перезагрузки нужно набрать</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>/sbin/shutdown -r now</userinput></screen>
- </informalexample>
-
- <para>или</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>/sbin/reboot</userinput></screen>
- </informalexample>
-
- <para>Перезагрузку можно также выполнить нажатием клавиш
- <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap>
- <keycap>Delete</keycap></keycombo>. Подождите некоторое время, чтобы
- дать этой команде отработать. В последних релизах FreeBSD она
- эквивалента выдаче команды <command>/sbin/reboot</command> и гораздо,
- гораздо лучше, чем нажатие кнопки сброса. Вы ведь не хотите всё
- переустанавливать заново, не так ли?</para>
- </sect1>
-
- <sect1 xml:id="adding-a-user">
- <title>Добавление пользователя с привилегиями root</title>
-
- <para>Если при установке системы вы не создали ни одного пользователя, и
- поэтому вошли в систему как <systemitem class="username">root</systemitem>, то теперь вы должны создать
- пользователя по команде</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>adduser</userinput></screen>
- </informalexample>
-
- <para>При первом использовании утилиты <command>adduser</command> она может запрашивать
- сохранение некоторых параметров для использования их по умолчанию.
- вы можете сделать оболочкой, используемой по умолчанию, командный
- процессор &man.csh.1;, а не &man.sh.1;, если по умолчанию вам
- предлагается <command>sh</command>. В противном случае просто нажимайте
- enter для принятия всех предлагаемых по умолчанию вариантов. Эти
- значения по умолчанию сохраняются в файле
- <filename>/etc/adduser.conf</filename>, в форме, доступной для
- редактирования.</para>
-
- <para>Предположим, что вы создали пользователя <systemitem class="username">jack</systemitem> с
- полным именем <emphasis>Jack Benimble</emphasis>. Назначьте пользователю
- <systemitem class="username">jack</systemitem> пароль, если информационная безопасность имеет значение (даже если
- это дети, которые могут стучать по клавиатуре). Когда вам будет задан
- вопрос по включению пользователя <systemitem class="username">jack</systemitem> в другие группы, наберите
- <systemitem class="groupname">wheel</systemitem></para>
-
- <informalexample>
- <screen>Login group is ``jack''. Invite jack into other groups: <userinput>wheel</userinput></screen>
- </informalexample>
-
- <para>Это позволит входить в систему как пользователь
- <systemitem class="username">jack</systemitem> и использовать команду &man.su.1; для того,
- чтобы стать пользователем <systemitem class="username">root</systemitem>. Тогда вас не будут больше обвинять в
- том, чтобы вы входите в систему как пользователь <systemitem class="username">root</systemitem>.</para>
-
- <para>Вы можете прекратить работы с <command>adduser</command> в любой
- момент, нажав <keycombo><keycap>Ctrl</keycap>
- <keycap>C</keycap></keycombo>, а в завершении ввода у вас будет шанс
- подтвердить заведение нового пользователя или набрать <keycap>n</keycap>
- в качестве отрицательного ответа. Вам может захотеться создать второго
- нового пользователя, для того, чтобы при редактировании файлов
- для входа пользователя <systemitem class="username">jack</systemitem> имелся горячий резерв на тот случай,
- если что-то пойдёт не так.</para>
-
- <para>После того, как вы это сделаете, воспользуйтесь командой
- <command>exit</command> для возврата к приглашению ко входу в систему и
- зарегистрируйтесь в ней как пользователь <systemitem class="username">jack</systemitem>.
- Вообще говоря, лучше всего основную массу работы выполнять, работая как
- обычный пользователь, который не имеет мощь и опасность пользователя
- <systemitem class="username">root</systemitem>.</para>
-
- <para>Если вы уже создали пользователя и хотите, чтобы он мог выполнять
- команду <command>su</command> для получения привилегий <systemitem class="username">root</systemitem>, вы можете
- войти в систему как <systemitem class="username">root</systemitem> и отредактировать файл
- <filename>/etc/group</filename>, добавив пользователя <systemitem class="username">jack</systemitem> в первую
- строчку (в группу <systemitem class="groupname">wheel</systemitem>). Однако сначала вам
- нужно поупражняться с программой &man.vi.1;, текстовым
- редактором,&mdash;или использовать более простой редактор, &man.ee.1;,
- имеющийся в последней версии FreeBSD.</para>
-
- <para>Для удаления пользователя воспользуйтесь командой
- <command>rmuser</command>.</para>
- </sect1>
-
- <sect1 xml:id="looking-around">
- <title>Просмотр окружения</title>
-
- <para>Войдя в систему как обычный пользователь, оглянитесь вокруг и
- попробуйте выполнить некоторые команды, дающие доступ к источникам
- информации и помощи внутри FreeBSD.</para>
-
- <para>Вот некоторые команды и то, что они делают:</para>
-
- <variablelist>
- <varlistentry>
- <term><command>id</command></term>
-
- <listitem>
- <para>Говорит вам, кто вы!</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>pwd</command></term>
-
- <listitem>
- <para>Показывает, где вы находитесь&mdash;текущий рабочий
- каталог.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>ls</command></term>
-
- <listitem>
- <para>Выдаёт список файлов, находящихся в текущем каталоге.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>ls -F</command></term>
-
- <listitem>
- <para>Выдаёт перечень файлов, находящихся в текущем каталоге,
- добавляя символы <literal>*</literal> после выполнимых файлов,
- <literal>/</literal> после каталогов и <literal>@</literal> после
- символических ссылок.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>ls -l</command></term>
-
- <listitem>
- <para>Выдаёт перечень файлов в расширенном формате&mdash;размер, дата
- и права доступа.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>ls -a</command></term>
-
- <listitem>
- <para>Вместе со всеми выдаёт и список скрытых
- <quote>dot</quote>-файлов (начинающихся с точки). Если вы
- являетесь пользователем <systemitem class="username">root</systemitem>, то <quote>dot</quote>-файлы выдаются
- и без указания флага <option>-a</option>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>cd</command></term>
-
- <listitem>
- <para>Смена каталогов. <command>cd
- ..</command> перемещает на один уровень
- выше; обратите внимание на промежуток после <command>cd</command>.
- <command>cd /usr/local</command> перейдёт в
- указанное место. <command>cd ~</command>
- перейдёт в домашний каталог человека, который вошёл в
- систему&mdash;к примеру, <filename>/usr/home/jack</filename>.
- попробуйте выполнить команду <command>cd
- /cdrom</command>, а затем
- <command>ls</command> для проверки того, что ваш CDROM смонтирован
- и работает.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>less
- <replaceable>filename</replaceable></command></term>
-
- <listitem>
- <para>Позволяет вам просмотреть файл (с именем
- <replaceable>filename</replaceable>) без внесения в него изменений.
- Попробуйте выполнить команду <command>less
- /etc/fstab</command>. Для выхода
- наберите <command>q</command>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>cat
- <replaceable>filename</replaceable></command></term>
-
- <listitem>
- <para>Выдаёт содержимое <replaceable>filename</replaceable> на экран.
- если он слишком длинный и вы можете увидеть только его конец,
- нажмите <keycap>ScrollLock</keycap> и используйте клавишу
- <keycap>стрелка вверх</keycap> для движения назад; вы можете
- также использовать <keycap>ScrollLock</keycap> и со страницами
- справки. Нажмите <keycap>ScrollLock</keycap> снова для прекращения
- прокрутки. Вам может захотеться попробовать команду
- <command>cat</command> с некоторыми из dot-файлов в вашем домашнем
- каталоге&mdash;<command>cat
- .cshrc</command>, <command>cat
- .login</command>, <command>cat
- .profile</command>.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>В файле <filename>.cshrc</filename> вы заметите алиасы для некоторых
- из команд <command>ls</command> (они очень удобны). Вы можете создать
- другие алиасы, отредактировав файл <filename>.cshrc</filename>. Вы
- можете сделать эти алиасы доступными всем пользователям системы, поместив
- их в общесистемный конфигурационный файл для <command>csh</command>,
- <filename>/etc/csh.cshrc</filename>.</para>
- </sect1>
-
- <sect1 xml:id="getting-help">
- <title>Получение помощи и информации</title>
-
- <para>Вот несколько полезных источников получения помощи. Здесь
- <replaceable>Text</replaceable> обозначает что-то по вашему выбору, что
- вы вводите&mdash;обычно команду или имя файла.</para>
-
- <variablelist>
- <varlistentry>
- <term><command>apropos <replaceable>text</replaceable></command></term>
-
- <listitem>
- <para>Всё, что содержит строку <replaceable>text</replaceable> в
- <database>базе whatis</database>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>man <replaceable>text</replaceable></command></term>
-
- <listitem>
- <para>Страница справки по <replaceable>text</replaceable>. Это
- главный источник документации в &unix;-системах.
- <command>man ls</command> покажет вам все
- способы использования команды <command>ls</command>. Нажимайте
- <keycap>Enter</keycap> для передвижения по тексту,
- <keycombo><keycap>Ctrl</keycap><keycap>B</keycap></keycombo> для
- возврата на страницу назад,
- <keycombo><keycap>Ctrl</keycap><keycap>F</keycap></keycombo> для
- продвижения вперёд, <keycap>q</keycap> или
- <keycombo><keycap>Ctrl</keycap><keycap>C</keycap></keycombo> для
- выхода.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>which <replaceable>text</replaceable></command></term>
-
- <listitem>
- <para>Покажет, в каком месте из маршрута поиска пользователя
- находится команда <replaceable>text</replaceable>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>locate <replaceable>text</replaceable></command></term>
-
- <listitem>
- <para>Все маршруты, где находится строчка
- <replaceable>text</replaceable>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>whatis <replaceable>text</replaceable></command></term>
-
- <listitem>
- <para>Описывает, что делает команда <replaceable>text</replaceable>
- и её справочная страница. Команда <command>whatis *</command>
- расскажет вам обо всех двоичных файлах в текущем каталоге.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>whereis <replaceable>text</replaceable></command></term>
-
- <listitem>
- <para>Ищет файл <replaceable>text</replaceable> и выдаёт полный путь
- до него.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Вы можете захотеть попробовать использоваться команду
- <command>whatis</command> с некоторыми полезными командами типа
- <command>cat</command>, <command>more</command>, <command>grep</command>,
- <command>mv</command>, <command>find</command>,
- <command>tar</command>, <command>chmod</command>,
- <command>chown</command>, <command>date</command>, и
- <command>script</command>. Команда <command>more</command> позволит
- вам читать постранично, как и в DOS, например, <command>ls -l |
- more</command> или <command>more
- <replaceable>filename</replaceable></command>. Знак
- <literal>*</literal> работает как общий шаблон&mdash;например,
- <command>ls w*</command> выдаст перечень файлов, начинающихся с буквы
- <literal>w</literal>.</para>
-
- <para>Некоторые из этих команд работают не очень хорошо? Обе команды
- &man.locate.1; и &man.whatis.1; зависят от базы данных, которая
- перестраивается еженедельно. Если ваша машина будет оставаться включенной
- на выходные (и она работает под FreeBSD), то вы можете пожелать
- запускать определённые команды раз в день, неделю, месяц. Запускайте их
- как <systemitem class="username">root</systemitem> и дайте каждой отработать, прежде чем запускать
- следующую.</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>periodic daily</userinput>
-<lineannotation>выдача опущена</lineannotation>
-&prompt.root; <userinput>periodic weekly</userinput>
-<lineannotation>выдача опущена</lineannotation>
-&prompt.root; <userinput>periodic monthly</userinput>
-<lineannotation>выдача опущена</lineannotation></screen>
- </informalexample>
-
- <para>Если вам надоело ждать, нажмите
- <keycombo><keycap>Alt</keycap><keycap>F2</keycap></keycombo> для перехода
- в другую <firstterm>виртуальную консоль</firstterm>, и войдите в систему
- снова. В конце концов, это многопользовательская и многозадачная
- система. Тем не менее эти команды, скорее всего, в процессе работы будут
- выдавать сообщения вам на экран; вы можете набрать
- <command>clear</command> в приглашении для очистки экрана. Пока они
- работают, вы можете смотреть в содержимое файлов
- <filename>/var/mail/root</filename> и
- <filename>/var/log/messages</filename>.</para>
-
- <para>Выполнение таких команд является частью системного
- администрирования&mdash;и как единственный пользователь &unix;-системы вы
- являетесь собственным системным администратором. Практически всё, для
- чего вам нужно быть пользователем <systemitem class="username">root</systemitem>, это системное администрирование.
- Эти обязанности не описываются достаточно хорошо даже в тех больших
- толстых книгах по &unix;, в которых слишком много места отдаётся описанию
- работы с меню в оконных менеджерах. Вам может понадобиться одна из двух
- лучших книг по системному администрированию, либо автора Эви Немет
- <citetitle>UNIX System Administration
- Handbook</citetitle> (Prentice-Hall, 1995, ISBN
- 0-13-15051-7)&mdash;второе издание с красной обложкой; или
- автора &AElig;leen Frisch <citetitle>Essential System
- Administration</citetitle> (O'Reilly &amp; Associates, 2002,
- ISBN 0-596-00343-9). Я использую книгу Немет.</para>
- </sect1>
-
- <sect1 xml:id="editing-text">
- <title>Редактирование текста</title>
-
- <para>Для конфигурации вашей системы вам нужно редактировать текстовые
- файлы. Большинство из них будут находиться в каталоге
- <filename>/etc</filename>; и вам необходимо командой
- <command>su</command> получить полномочия пользователя <systemitem class="username">root</systemitem>, чтобы их
- править. Вы можете использовать простой редактор <command>ee</command>,
- однако в смысле перспективности лучше изучить текстовый редактор
- <command>vi</command>. В каталоге
- <filename>/usr/src/contrib/nvi/docs/tutorial</filename> есть прекрасный
- учебник по vi, если у вас есть исходники системы.</para>
-
- <para>Перед тем, как редактировать файл, наверное, вы должны сохранить
- резервную копию. Предположим, что вы собираетесь отредактировать файл
- <filename>/etc/rc.conf</filename>. Вы можете воспользоваться командой
- <command>cd /etc</command> для перехода в каталог
- <filename>/etc</filename> и выполнить следующее:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>cp rc.conf rc.conf.orig</userinput></screen>
- </informalexample>
-
- <para>При этом файл <filename>rc.conf</filename> скопируется в
- <filename>rc.conf.orig</filename>, и в последующем вы сможете скопировать
- <filename>rc.conf.orig</filename> в файл
- <filename>rc.conf</filename> для восстановления оригинала. Но ещё лучше
- его переместить (переименовать), после чего скопировать обратно:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>mv rc.conf rc.conf.orig</userinput>
-&prompt.root; <userinput>cp rc.conf.orig rc.conf</userinput></screen>
- </informalexample>
-
- <para>потому что команда <command>mv</command> сохраняет исходную
- информацию о дате и владельце файла. Теперь вы можете редактировать
- <filename>rc.conf</filename>. Если вы захотите восстановить исходное
- состояние, то выполните <userinput>mv rc.conf rc.conf.myedit</userinput>
- (полагаем, что вы хотите сохранить отредактированную версию), а
- затем</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>mv rc.conf.orig rc.conf</userinput></screen>
- </informalexample>
-
- <para>для возврата всего на место.</para>
-
- <para>Для редактирования файла наберите</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>vi <replaceable>filename</replaceable></userinput></screen>
- </informalexample>
-
- <para>Передвигайтесь по тексту при помощи клавиш со стрелками.
- <keycap>Esc</keycap> (клавиша отмены) переводит редактор
- <command>vi</command> в командный режим. Вот некоторые из них:</para>
-
- <variablelist>
- <varlistentry>
- <term><command>x</command></term>
-
- <listitem>
- <para>удалить символ, на котором находится курсор</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>dd</command></term>
-
- <listitem>
- <para>удалить целую строку (даже если на экране она не помещается в
- целую строку)</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>i</command></term>
-
- <listitem>
- <para>вставка текста в позиции курсора</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>a</command></term>
-
- <listitem>
- <para>вставка текста после курсора</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Сразу после набора <command>i</command> или <command>a</command> вы
- можете вводить текст. <command>Esc</command> возвратит вас обратно в
- командный режим, где вы можете набрать</para>
-
- <variablelist>
- <varlistentry>
- <term><command>:w</command></term>
-
- <listitem>
- <para>для записи ваших изменений на диск и продолжения
- редактирования</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>:wq</command></term>
-
- <listitem>
- <para>для записи и выхода</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>:q!</command></term>
-
- <listitem>
- <para>для выхода без сохранения изменений</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>/<replaceable>text</replaceable></command></term>
-
- <listitem>
- <para>для перемещения курсора на <replaceable>text</replaceable>;
- <command>/</command><keycap>Enter</keycap> (клавиша ввода) для
- поиска следующего экземпляра
- <replaceable>text</replaceable>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>G</command></term>
-
- <listitem>
- <para>для перехода в конец файла</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command><replaceable>n</replaceable>G</command></term>
-
- <listitem>
- <para>Для перехода к строке <replaceable>n</replaceable> в файле,
- где <replaceable>n</replaceable> является числом</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><keycombo><keycap>Ctrl</keycap><keycap>L</keycap></keycombo></term>
-
- <listitem>
- <para>для перерисовки экрана</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><keycombo><keycap>Ctrl</keycap><keycap>b</keycap></keycombo> и
- <keycombo><keycap>Ctrl</keycap><keycap>f</keycap></keycombo></term>
-
- <listitem>
- <para>для перемотки на экран назад и вперёд, как при работе с
- <command>more</command> и <command>view</command>.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Поупражняйтесь с редактором <command>vi</command> в своём домашнем
- каталоге, создав новый файл по команде <command>vi
- <replaceable>filename</replaceable></command>, добавляя и удаляя текст,
- сохраняя файл и вызывая его снова. Редактор <command>vi</command>
- преподносит некоторые сюрпризы, потому что он на самом деле достаточно
- сложный, и иногда вы можете неправильно вызвать команду, которая сделает
- нечто, чего вы не ожидали. (Некоторым людям действительно нравится
- <command>vi</command>&mdash;он более мощный, чем EDIT из
- DOS&mdash;посмотрите команду <command>:r</command>.) Для того, чтобы
- удостовериться, что вы находитесь в режиме команд, нажимайте
- <keycap>Esc</keycap> один или несколько раз, и начинайте снова с этого
- места, если возникли какие-то проблемы, часто сохраняйте текст командой
- <command>:w</command> и используйте <command>:q!</command> для того,
- чтобы прекратить работу и начать всё сначала (с вашей последней команды
- <command>:w</command>), если это нужно.</para>
-
- <para>Теперь вы можете выполнить <command>cd</command> для перехода в каталог
- <filename>/etc</filename>, <command>su</command> в пользователя <systemitem class="username">root</systemitem>,
- использовать <command>vi</command> для редактирования файла
- <filename>/etc/group</filename> и добавлять пользователя в группу <systemitem class="groupname">wheel</systemitem>,
- чтобы он имел полномочия пользователя root. Просто добавьте запятую и
- имя входа пользователя в конце первой строки этого файла, нажмите
- <keycap>Esc</keycap> и воспользуйтесь <command>:wq</command> для записи
- файла на диск и выхода. Работает всегда. (Вы не поставили пробел после
- запятой, ведь так?)</para>
- </sect1>
-
- <sect1 xml:id="other-useful-commands">
- <title>Другие полезные команды</title>
-
- <variablelist>
- <varlistentry>
- <term><command>df</command></term>
-
- <listitem>
- <para>выдаёт данные о занятом файлами пространстве и смонтированных
- файловых системах.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>ps aux</command></term>
-
- <listitem>
- <para>показывает работающие процессы. <command>ps ax</command>
- является частоупотребительной формой.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>rm <replaceable>filename</replaceable></command></term>
-
- <listitem>
- <para>удаляет <replaceable>filename</replaceable>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>rm -R <replaceable>dir</replaceable></command></term>
-
- <listitem>
- <para>удаляет каталог <replaceable>dir</replaceable> и все его
- подкаталоги&mdash;осторожно!</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>ls -R</command></term>
-
- <listitem>
- <para>выдаёт список файлов в текущем каталоге и всех его
- подкаталогах; я использовал вариант, <command>ls -AFR &gt;
- where.txt</command>, для получения перечня всех файлов в
- <filename>/</filename> и (отдельно) <filename>/usr</filename> до
- того, как узнал о более эффективном способе поиска файлов.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>passwd</command></term>
-
- <listitem>
- <para>для изменения пароля пользователя (или пароля <systemitem class="username">root</systemitem>)</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>man hier</command></term>
-
- <listitem>
- <para>справочная страница по файловой структуре &unix;</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Используйте <command>find</command> для поиска
- <filename>filename</filename> в <filename>/usr</filename> или в любом из
- её подкаталогов при помощи команды</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>find /usr -name "<replaceable>filename</replaceable>"</userinput></screen>
- </informalexample>
-
- <para>Вы можете использовать <literal>*</literal> в качестве шаблона внутри
- <parameter>"<replaceable>filename</replaceable>"</parameter>
- (это выражение должно быть в кавычках). Если вы укажете команде
- <command>find</command> на поиск в <filename>/</filename>, а не в
- <filename>/usr</filename>, то она будет искать файл(ы) во всех
- смонтированных файловых системах, включая CDROM и раздел DOS.</para>
-
- <para>Прекрасным пособием, описывающим команды и утилиты &unix;, является
- книга Abrahams &amp; Larson, <citetitle>Unix for the
- Impatient</citetitle> (2nd ed., Addison-Wesley, 1996). Масса информации
- по &unix; есть и в Internet.</para>
- </sect1>
-
- <sect1 xml:id="next-steps">
- <title>Следующие шаги</title>
-
- <para>Теперь вы должны иметь инструменты, которые необходимо держать под
- рукой и умеете редактировать файлы, так что вы должны суметь запустить
- всё, что угодно. Много полезной информации содержится в Руководстве по
- FreeBSD (которое, скорее всего, есть на вашем жёстком диске) и <link xlink:href="&url.base;/index.html">Web-сайте FreeBSD</link>. На CDROM, а
- также Web-сайте находятся различные пакеты и порты. В Руководстве
- рассказывается более подробно о том, как их использовать (получить
- пакет, если он существует, командой <command>pkg_add
- /cdrom/packages/All/<replaceable>packagename</replaceable></command>,
- где <replaceable>packagename</replaceable> является именем файла
- пакета). На CDROM находится перечни пакетов и портов с их краткими
- описаниями в файлах <filename>cdrom/packages/index</filename>,
- <filename>cdrom/packages/index.txt</filename> и
- <filename>cdrom/ports/index</filename>, а более полные описания можно
- найти в <filename>/cdrom/ports/*/*/pkg/DESCR</filename>, где знаки
- <literal>*</literal> обозначают тематические подкаталоги с программами
- и названиями программ, соответственно.</para>
-
- <para>Если вы посчитаете, что Руководство является слишком сложной книгой
- (что с <command>lndir</command> и всё) по установке портов с CDROM, вот
- рецепт, который обычно срабатывает:</para>
-
- <para>Найдите нужный вам порт, скажем, <command>kermit</command>. На CDROM
- для него должен существовать каталог. Скопируйте этот подкаталог в
- каталог <filename>/usr/local</filename> (хорошее место для программного
- обеспечения, которое вы добавляете, и которое должно быть доступно всем
- пользователям) такой командой:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>cp -R /cdrom/ports/comm/kermit /usr/local</userinput></screen>
- </informalexample>
-
- <para>В результате должен образоваться подкаталог
- <filename>/usr/local/kermit</filename>, содержащий все файлы, что есть в
- подкаталоге <command>kermit</command> на CDROM.</para>
-
- <para>Затем создайте каталог <filename>/usr/ports/distfiles</filename>,
- если он ещё не существует, при помощи команды <command>mkdir</command>.
- Теперь проверьте содержимое <filename>/cdrom/ports/distfiles</filename>
- на предмет наличия файла с именем, говорящем о том, что это тот порт,
- который вы хотите иметь. Скопируйте этот файл в каталог
- <filename>/usr/ports/distfiles</filename>; в последних версиях вы можете
- пропустить этот шаг, и FreeBSD выполнит его за вас. В случае с
- <command>kermit</command>, дистрибутивного файла не существует.</para>
-
- <para>После этого по команде <command>cd</command> перейдите в подкаталог
- <filename>/usr/local/kermit</filename>, в котором есть файл
- <filename>Makefile</filename>. Наберите</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>make all install</userinput></screen>
- </informalexample>
-
- <para>Во время выполнения порт обратится к FTP для получения всех архивных
- файлов, нужных ему и которых не найдено на CDROM или в каталоге
- <filename>/usr/ports/distfiles</filename>. Если сеть у вас ещё не
- работает, и файла для порта в каталоге
- <filename>/cdrom/ports/distfiles</filename> нет, вам потребуется получить
- дистрибутивный файл на другой машине и скопировать его в каталог
- <filename>/usr/ports/distfiles</filename>. Прочтите
- <filename>Makefile</filename> (при помощи команд
- <command>cat</command>, <command>more</command> или
- <command>view</command>), чтобы понять, как называется файл и куда нужно
- обратиться (основной сайт распространения), чтобы его получить.
- (Используйте двоичный тип передачи файлов!) Затем перейдите обратно
- в каталог <filename>/usr/local/kermit</filename>, найдите каталог с
- <filename>Makefile</filename> и наберите <command>make all
- install</command>.</para>
- </sect1>
-
- <sect1 xml:id="your-working-environment">
- <title>Ваше рабочее окружение</title>
-
- <para>Ваш командный процессор является самой важной частью вашего рабочего
- окружения. Оболочка
- занимается интерпретацией команд, которые вы вводите в командной строке,
- и таким образом взаимодействует с остальной частью операционной системы.
- Вы можете также писать скрипты командного процессора, то есть
- последовательности команд, которые должны выполняться
- без вашего участия.</para>
-
- <para>Вместе с FreeBSD устанавливаются два командный процессора:
- <command>csh</command> и <command>sh</command>.
- <command>csh</command> хорош для работы в командной строке, однако
- скрипты должны писаться на языке оболочек <command>sh</command> (или
- <command>bash</command>). Вы можете выяснить, какой командный процессор
- у вас используется, набрав <command>echo $SHELL</command>.</para>
-
- <para>Оболочка <command>csh</command> подходящая, однако
- <command>tcsh</command> может всё, что умеет <command>csh</command> и
- ещё больше. Она позволяет вам восстанавливать прошлые команды клавишами
- со стрелками и редактировать их. В нём есть автозавершение имён файлов
- по нажатию клавиши табуляции (в <command>csh</command> используется
- клавиша <keycap>Esc</keycap>) и он позволяет вам переключаться в каталог,
- в котором вы были ранее, по команде <command>cd -</command>. Также
- в <command>tcsh</command> гораздо легче изменять системное приглашение.
- Это гораздо упрощает жизнь.</para>
-
- <para>Вот три шага по установке нового командного процессора:</para>
-
- <procedure>
- <step>
- <para>Установите командный процессор как порт или пакет, как вы обычно
- это делаете с другим портом или пакетом.</para>
- </step>
-
- <step>
- <para>Работая как пользователь <systemitem class="username">root</systemitem>, отредактируйте файл
- <filename>/etc/shells</filename>, добавив в него строку с новой
- оболочкой, в нашем случае это
- <filename>/usr/local/bin/tcsh</filename>, и сохраните файл.
- (Некоторые порты могут делать это за вас.)</para>
- </step>
-
- <step>
- <para>Воспользуйтесь командой <command>chsh</command> для смены
- постоянно используемой вами оболочки на <command>tcsh</command>, либо
- наберите <command>tcsh</command> в командной строке для смены
- вашей оболочки без повторного входа в систему.</para>
- </step>
- </procedure>
-
- <note>
- <para>Менять командный процессор для пользователя <systemitem class="username">root</systemitem> на что-то,
- отличающееся от <command>sh</command> или <command>csh</command>,
- в ранних версиях FreeBSD и во многих других версиях &unix; может быть опасно; вы
- можете лишиться работающей оболочки при переходе системы в
- однопользовательский режим. Решением является использование
- <command>su -m</command> для того, чтобы стать пользователем <systemitem class="username">root</systemitem>, что
- даст в качестве оболочки <command>tcsh</command>, но вы будете являться
- пользователем <systemitem class="username">root</systemitem>, потому что оболочка является частью окружения. Вы
- можете сделать это постоянным, добавив в ваш файл
- <filename>.tcshrc</filename> в качестве алиаса по такой команде:</para>
-
- <programlisting>alias su su -m</programlisting>
- </note>
-
- <para>При запуске <command>tcsh</command> он будет считывать файлы
- <filename>/etc/csh.cshrc</filename> и
- <filename>/etc/csh.login</filename>, как и <command>csh</command>. Эта
- оболочка также читает файл <filename>.login</filename> из вашего
- домашнего каталога, а также файл <filename>.cshrc</filename>, если только
- вы не создали файл <filename>.tcshrc</filename>. Это вы можете сделать
- простым копированием файла <filename>.cshrc</filename> в
- <filename>.tcshrc</filename>.</para>
-
- <para>Теперь, когда у вас установлен командный процессор
- <command>tcsh</command>, вы можете настроить приглашение командной
- строки. Все подробности можно найти на странице справки по
- <command>tcsh</command>, но всё же вот строка, которая помещается в ваш
- файл <filename>.tcshrc</filename>, которая может показать, сколько команд
- вы уже набрали, сколько сейчас времени и в каком каталоге вы находитесь.
- Она также выдаёт <literal>&gt;</literal>, если вы являетесь обычным
- пользователем, и <literal>#</literal>, если вы являетесь пользователем
- <systemitem class="username">root</systemitem>, однако tsch будет делать это в любом случае:</para>
-
- <para>set prompt = "%h %t %~ %# "</para>
-
- <para>Эта строка должна быть поставлена на то же самое место, что и
- существующая строка установки приглашения, если она есть, либо после
- строки "if($?prompt) then", если её нет. Закомментируйте старую
- строку; вы всегда сможете вернуться к ней обратно, если предпочтёте её.
- Не забудьте о пробелах и кавычках. Вы можете заставить перечитать
- <filename>.tcshrc</filename>, набрав
- <command>source .tcshrc</command>.</para>
-
- <para>Перечень других установленных переменных окружения вы можете
- получить, набрав <command>env</command> в приглашении командной строки.
- В результате, кроме всего прочего, будут показаны редактор, используемый
- по умолчанию, программа постраничной выдачи и тип терминала. Командой,
- полезной при входе в систему с удалённого места и невозможности запуска
- программы, потому что терминал не обладает некоторыми возможностями,
- является команда <command>setenv TERM vt100</command>