⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fcs.mex

📁 操作系统SunOS 4.1.3版本的源码
💻 MEX
📖 第 1 页 / 共 2 页
字号:
.PL RIGHT.sp 5.UH M "Printing Man Pages Procedures Outline".UH S "TERMS".LPSome definitions to make life easier:.UH S "Freeze date"The last day engineers (and other random hackers) can make changes toman pages.  We set this date based on the time we'll require to do our work.Since engineers are responsible for making changes to pages they affect, they need warning of this cut-off.  Traditionally, theyprocrastinate when it comes to man pages, this puts a fire under them..UH S "Build"The compiling and configuring of a system, for our purposes this termwill refer to the entire operating system, which is "built" by therelease engineers. This is done immediately prior to making release tapes..UH S "Code fork"This process of cloning all the release machine sources onto anothermachine can take anywhere from 2 days to 3 weeks.  Sources arecloned to make builds, or to begin work on the next release (yup, eventhough work on this release isn't nearly finished, somebody's alreadyonto the next one \(em it never ends!).UH S "Thaw date"Man pages are again available for changes.  Like the freeze date, weset this date.  It generally coincides with the end of the build.  .UH S "PREPARATION".LP.UH S "8 Weeks Out".LPAnnounce man page freeze date to the mail alias for thecurrent release.  Also make this announcement on thesubsequent release machine, if the code forkfor that release has already taken place.  It's not very wiseto be completely inflexible about this date, recognize thatsome engineers will not be able to meet this deadline.Offer early on to negotiate, then you'll have a good ideaof what to expect.  Below is an example of the mail announcement..BS GRAY.LS 2%  mail 4-0@argon, 4-1@argonSubject: man pages are FROZEN for both 4.0 and 4.1Cc: syspubs@gottliebMan pages will remain FROZEN for final edits,merges of ECD material, administratrivia, and FCSprinting, until at least March 7.  If you haven'tcontacted me already about changes, they'll have towait until after the thaw (e.g., 4.1).Unless I've given you specific permission, do notcheck in any man page updates on larry, argon, orany 4.x release machine until I've announced the thaw.Questions and/or flames to me.-bob.LE.BE.LPStart catching up on evaluated bugs.  All bugs evaluatedfor the current release must be fixed in source andreleased on elmer.  Evaluate all new bugs for the next release..UH S "4 Weeks Out".LPFreeze man pages, this includes putting a warning in.L /etc/motdon release machine, and sending mail.  Again, this should also be doneon the subsequent release machine, if necessary..UH S "3 Weeks Out".LPHard freeze.  When the freeze has been in effect for a week,it is then considered a "hard freeze" and absolutely no changeswill be accepted..LPThe following files can be updated once the hard freeze isset.  The updates must be done by hand, but should not be extensive, each is already a good working file..LS 2/usr/src/bin/manpages	/usr/src/bin/spell.ok.LE.LPAt some point.L /usr/src/bin/titlesshould be created and added tothis list.  These files will be used by make during thechecks process..LPWhen all merges and bug fixes have been made, and all pages arepresent and checked in, you can begin the finalchecks and fixes..UH S "DOCUMENT CONTROL".LPcover.mex is a standard file that needs to be edited for eachrelease.  Roger will provide the partnum, revision, and date line.  Itis important that these are changed which each release.  The dateand release appear on the title page, and the release also appearsin the footer of each page..LPEdit line 2 of.L /usr/doctools/tmac/sunman ,.L /usr/doctools/tmac/anand.L /usr/lib/tmac/tmac.anon all doctools hosts, and.L /usr/src/usr.lib/tmac/tmac.anand.L /usr/lib/tmac/tmac.anon all affected release machines:.LS 2\&.\"     @(#)tmac.sunman 1.36    88/03/05\&.ds ]W Sun Release \f(LB4.0\fP.LE.LPThe permission modes on.L /usr/libmay make it necessary to apply some force to edit these files. .LPYou also have to do this at alpha and beta stages:.TSlfL l.4.1\e(*a  4.1\(*a4.1\e(*b  4.1\(*b.TE.LPThe copyright statement should also be reviewed at this time.Every non-Sun product mentioned in the pages should be coveredby a trademark statement.  Examples of trademarked productsinclude:  Ethernet,VAX, MicroSoft, and PostScript.  References to these products shouldonly been used when absolutely necessary, and when referring tothat specific product, otherwise generic references are sufficient..UH S "FINAL CHECKS".LPTo run the final checks on all the printed man pages, cd to.L /usr/src/manon the release machine and type:.BS GRAY.LS 2% make prep.LE.BE.LPThis will invoke the following targets:.IP "files" Extract the current version of all manpages listed in.L $(FILES)of.L man?/Printfile ..IP "update"Append to.L man?/Printfileand.L man?/Makefilethe list of man pages to be added to or deleted from.L $(FILES) .These pages must be inserted alphabetically in.L $(FILES) ,as well as in.L man?/List.? ,or deleted in both places. .L $(FILES)must bemaintained by hand, in both the Makefile and Printfilefile.  They should be updated as changes occur during the release,this target should merely be a final test ofthat maintenance..IP "pagelist"Create.L /usr/src/tmp/man?.pagelist ,a list of all printed man pages for each section.Also \(lqtouch\(rq pagelist in the currentdirectory so that this target is only madeonce..IP "bin/hier"Create.L /bin/hierusing find in.L /proto .	.IP "badpgrefs"Create.L /usr/src/tmp/man?.badpgrefs ,a list of all man pages and any bad references theymay contain.  Also \(lqtouch\(rq badpgrefs in thecurrent directory so that this target is onlymade once..br.ne 8.IP "titles"Create.L /usr/src/tmp/man?.titles ,a list of all man pages and any title references theymay contain.  Title references are definedas any line containing more than one wordbeginning with a capital letter, or linesbeginning with .I[RB] followed by a capitalizedword[s].  TX macros are excluded.  Also\(lqtouch\(rq titles in the current directory sothat this target is only made once..IP "no.ix"Create.L /usr/src/tmp/man?.no.ix ,a list of all man pages with no indexentries.  Also \(lqtouch\(rq no.ix in thecurrent directory so that this target is onlymade once..IP "badnames"Create.L /usr/src/tmp/man?.badnames ,a list of all man pages and NAME lines that containpoint size or font changes, or line breaks.Also \(lqtouch\(rq badnames in the current directoryso that this target is only made once..IP "badhf"Create.L /usr/src/tmp/man?.badhf ,a list of all man pages that have the TH macroarguments in the wrong order.  Also \(lqtouch\(rqbadhf in the current directory so that thistarget is only made once..IP "spell"Create.L /usr/src/tmp/man?.spell ,a list of all man pages and any incorrect spellings theymay contain.Also \(lqtouch\(rq spell in thecurrent directory so that this target is onlymade once..IP "badtroff"Create.L /usr/src/tmp/man?.badtroff ,a list of all man pages and any bad troff usage theymay contain.  Also \(lqtouch\(rq badtroff in thecurrent directory so that this target is onlymade once..LPThen, using the files generated by.L "make prep" ,edit the man pages requiring fixes.  Allowapproximately one man week for these fixes,depending on the number of pages that have beenchanged or added..LPOnce the .L $(FILES)lists have been updated, they need to becollated before quitting the file.  The last comment inserted by.L "make update"will tell you whether you should use:.LS 21G/FILES!}make collate.LE.LPor.LS 21G/FILES!}make FILES.LE.LPto collate the .L $(FILES)lists..L "make collate"is used if you are editing the Printfile,.L "make FILES"is used to collate the Makefile..LPEach of these will replace the existing FILES list with a new onethat is complete and correctly collated.  In the Printfile,the .L $(FILES)will only include the printed man pages; inMakefile, the printed pages as well as.L \&.so 'swill be included.  Invoking.L makefrom within.L vimay seem a bit confusing, so below is areview brief of what happens when you follow the example above..LPFirst, understand that the exclamation point in the abovecommand is a shell escape, so it is actually the shell calling.L make ,and not.L vi .In its logical fashion,.L makethen searches the current directory(\fL/man/man?\fP)for a file called.L Makefile ,finding it, make reads.L Makefile ..L Makefileincludes the file.L ../Makefile.master ..L makeknows then to read.L ../Makefile.masterto find a rule for.L collate .Indeed we find the target.L collateand its rule:.LS 2collate:	-@ $(MAKE) -f Printfile collate.LEThe rule being nothing but a nested make command, we stilldon't know what.L collatedoes.  To discover that we mustfollow the nested make command to.L Printfile(remember that we are still in the.L man/man?directory, so the file we are discussing is.L man/man?/Printfile ).In this file.L makefinds the macro definition for.L $(FILES)and includes.L ../Printfile.master .Finally, after reading four makefiles.L makefinds the definitive rule for.L collate :.BS.LS 2.ps -2collate: 	-@if test `pwd | sed 's/.*\e///'` = man3 ; \e	then \e		echo 3.FILES= $(3.FILES) | tr ' ' '\e012' | sort -u | fmt | \e			sed -e 's/$$/ \e\e/' -e '$$s/\e\e//' ; echo "" ; \e		echo 3l.FILES= $(3l.FILES) | tr ' ' '\e012' | sort -u | fmt | \e			sed -e 's/$$/ \e\e/' -e '$$s/\e\e//' ; echo "" ; \e		echo 3m.FILES= $(3m.FILES) | tr ' ' '\e012' | sort -u | fmt | \e			sed -e 's/$$/ \e\e/' -e '$$s/\e\e//' ; echo "" ; \e		echo 3r.FILES= $(3r.FILES) | tr ' ' '\e012' | sort -u | fmt | \e			sed -e 's/$$/ \e\e/' -e '$$s/\e\e//' ; echo "" ; \e		echo 3v.FILES= $(3v.FILES) | tr ' ' '\e012' | sort -u | fmt | \e			sed -e 's/$$/ \e\e/' -e '$$s/\e\e//' ; \e	else \e		echo FILES= $(FILES) | tr ' ' '\e012' | sort -u | fmt | \e			sed -e 's/$$/ \e\e/' -e '$$s/\e\e//' ; \e	fi.ps +2.LE.BEThe rule itself is not really important, what isimportant is the ordering of the steps.L maketook to find the rule.  The definition of .L $(FILES)found in.L man?/Printfilewill be used for $(FILES)in the above rule.  We are still in the nested.L make ,the output of.L collatewill be passed to the original.L makewhich will then pass it to.L vi ,where the new collated.L $(FILES)list replaces the original definition..UH S "INDEXING".LPThe following procedure is relies on the.L awk -basedpix indexing script which is not yet working.  It is thereforesubject to changes, and obviously, should NOT be rununtil a working script exists..BS GRAY.LS 2% pix.LE.BE.LPRun script, this will create the indexing scripts foreach page..LPFake a trial index and print it for editing.  Duplicateand kludgy entries and primary entries that should besecondary should be obvious.  These can be fixedby editing the pix generated scripts.   Cosmeticfixes to the index should also be done at thispoint..LPOnce satisfied with the scripts, apply them to the pages.At some point (not necessarily now) the scripts need to bearchived somewhere, so that the next run of pix can accessthem for comparison..UH S "CODE FORK".LPBy this time the code fork for the subsequentrelease will have been completed.  When the manpages thaw, all work on the current releasemachine must be included on the subsequentrelease machine.  This would be an ideal time toduplicate changes onto that machine..LPYou can generate a list of all pages that havebeen changed since the last build by repeating thefollowing commands for each subdirectory.  .BS GRAY.LS 2% cd /usr/src/man/man?/SCCS% ls \-lt > /tmp/?.list% vi /tmp/?.list.LE.BE.LPRemove lines with obviously old dates, using:.BS GRAY.LS 2	\fIRemember, this is done while still in vi\fR	/Feb:.,$d	\fIFeb is used as an example, substitute the appropriate string\fR.LE.BE.LPThen strip off all but the filename part of each line, using:.BS GRAY.LS 2:%s/.* s\.//.LE.BE.UH S "CLONING SOURCES".LPYou are now ready to clone source.  This is a twostep process..LPFirst,.BS GRAY.LS 2% make \-f Printfile clone.LE.BE.LPThis duplicates the.L /usr/src/manhierarchy in .L $(DESTDIR) ,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -