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

📄 package.versions.html

📁 有关ecos2。0介绍了实时嵌入式的结构以及线程调度的实现和内存的管理等
💻 HTML
字号:
<!-- Copyright (C) 2003 Red Hat, Inc.                                --><!-- This material may be distributed only subject to the terms      --><!-- and conditions set forth in the Open Publication License, v1.0  --><!-- or later (the latest version is presently available at          --><!-- http://www.opencontent.org/openpub/).                           --><!-- Distribution of the work or derivative of the work in any       --><!-- standard (paper) book form is prohibited unless prior           --><!-- permission is obtained from the copyright holder.               --><HTML><HEAD><TITLE>Package Versioning</TITLE><meta name="MSSmartTagsPreventParsing" content="TRUE"><METANAME="GENERATOR"CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+"><LINKREL="HOME"TITLE="The eCos Component Writer's Guide"HREF="cdl-guide.html"><LINKREL="UP"TITLE="Package Organization"HREF="package.html"><LINKREL="PREVIOUS"TITLE="Package Organization"HREF="package.html"><LINKREL="NEXT"TITLE="Package Contents and Layout"HREF="package.contents.html"></HEAD><BODYCLASS="SECT1"BGCOLOR="#FFFFFF"TEXT="#000000"LINK="#0000FF"VLINK="#840084"ALINK="#0000FF"><DIVCLASS="NAVHEADER"><TABLESUMMARY="Header navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><THCOLSPAN="3"ALIGN="center">The <SPANCLASS="APPLICATION">eCos</SPAN> Component Writer's Guide</TH></TR><TR><TDWIDTH="10%"ALIGN="left"VALIGN="bottom"><AHREF="package.html"ACCESSKEY="P">Prev</A></TD><TDWIDTH="80%"ALIGN="center"VALIGN="bottom">Chapter 2. Package Organization</TD><TDWIDTH="10%"ALIGN="right"VALIGN="bottom"><AHREF="package.contents.html"ACCESSKEY="N">Next</A></TD></TR></TABLE><HRALIGN="LEFT"WIDTH="100%"></DIV><DIVCLASS="SECT1"><H1CLASS="SECT1"><ANAME="PACKAGE.VERSIONS">Package Versioning</H1><P>Below each package directory there can be one or more versionsub-directories, named after the versions. This is a requirement ofthe component framework: it must be possible for users to installmultiple versions of a package and select which one to use for anygiven application. This has a number of advantages to users: mostimportantly it allows a single component repository to be sharedbetween multiple users and multiple projects, as required; also itfacilitates experiments, for example it is relatively easy to try outthe latest version of some package and see if it makes any difference.There is a potential disadvantage in terms of disk space. Howeversince <SPANCLASS="APPLICATION">eCos</SPAN> packages generally consist of source code intended forsmall embedded systems, and given typical modern disk sizes, keeping anumber of different versions of a package installed will usually beacceptable. The administration tool can be used to remove versionsthat are no longer required.</P><DIVCLASS="INFORMALFIGURE"><ANAME="AEN217"><P></P><DIVCLASS="MEDIAOBJECT"><P><IMGSRC="version.png"ALIGN="CENTER"></P></DIV><P></P></DIV><P>The version <TTCLASS="FILENAME">current</TT> is special. Typically itcorresponds to the very latest version of the sources, obtained byanonymous <SPANCLASS="APPLICATION">CVS</SPAN>. These sources may change frequently, unlike fullreleases which do not change (or only when patches are produced).Component writers may also want to work on the<TTCLASS="FILENAME">current</TT> version.</P><P>All other subdirectories of a package correspond to specific releasesof that package. The component framework allows users to select theparticular version of a package they want to use, but by default themost recent one will be used. This requires some rules for orderingversion numbers, a difficult task because of the wide variety of waysin which versions can be identified.</P><P></P><OLTYPE="1"><LI><P>The version <TTCLASS="FILENAME">current</TT> is always considered to bethe most recent version.</P></LI><LI><P>If the first character of both strings are either <TTCLASS="LITERAL">v</TT>or <TTCLASS="LITERAL">V</TT>, these are skipped because it makes littlesense to enforce case sensitivity here. Potentially this could resultin ambiguity if there are two version directories<TTCLASS="LITERAL">V1.0</TT> and <TTCLASS="LITERAL">v1.0</TT>, but this willmatch the confusion experienced by any users of such a package.However if two subsequent releases are called <TTCLASS="LITERAL">V1.0</TT>and <TTCLASS="LITERAL">v1.1</TT>, e.g. because of a minor mix-up whenmaking the distribution file, then the case difference is ignored.</P></LI><LI><P>Next the two version strings are compared one character at a time.If both strings are currently at a digit then a string to numberconversion takes place, and the resulting numbers are compared.For example <TTCLASS="LITERAL">v10</TT> is a more recent release than<TTCLASS="LITERAL">v2</TT>. If the two numbers are the same then processingcontinues, so for <TTCLASS="LITERAL">v2b</TT> and <TTCLASS="LITERAL">v2c</TT>the version comparison code would move on to <TTCLASS="LITERAL">b</TT> and<TTCLASS="LITERAL">c</TT>. </P></LI><LI><P>The characters dot <TTCLASS="LITERAL">.</TT>, hyphen <TTCLASS="LITERAL">-</TT>and underscore <TTCLASS="LITERAL">_</TT> are treated as equivalentseparators, so if one release goes out as <TTCLASS="LITERAL">v1_1</TT> andthe next goes out as <TTCLASS="LITERAL">v1.2</TT> the separator has noeffect.</P></LI><LI><P>If neither string has yet terminated but the characters are different,ASCII comparison is used. For example <TTCLASS="LITERAL">V1.1b</TT> ismore recent than <TTCLASS="LITERAL">v1.1alpha</TT>.</P></LI><LI><P>If one version string terminates before the other, the currentcharacter determines which is the more recent. If the other string iscurrently at a separator character, for example<TTCLASS="LITERAL">v1.3.1</TT> and <TTCLASS="LITERAL">v1.3</TT>, then the formeris assumed to be a minor release and hence more recent than thelatter. If the other string is not at a separator character, forexample <TTCLASS="LITERAL">v1.3beta</TT>, then it is treated as anexperimental version of the <TTCLASS="LITERAL">v1.3</TT> release and henceolder. </P></LI><LI><P>There is no special processing of dates, so with two versions<TTCLASS="LITERAL">ss-20000316</TT> and <TTCLASS="LITERAL">ss-20001111</TT>the numerical values <TTCLASS="LITERAL">20001111</TT> and<TTCLASS="LITERAL">20000316</TT> determine the result: larger values aremore recent. It is suggested that the full year be used in such casesrather than a shorthand like <TTCLASS="LITERAL">00</TT>, to avoidY2100 problems.</P></LI><LI><P>There is no limit on how many levels of versioning are used, sothere could in theory be a <TTCLASS="LITERAL">v3.1.4.1.5.9.2.7</TT> releaseof a package. However this is unlikely to be of benefit to typicalusers of a package.</P></LI></OL><P>The version comparison rules of the component framework may not besuitable for every version numbering scheme in existence, but theyshould cope with many common cases.</P><DIVCLASS="CAUTION"><P></P><TABLECLASS="CAUTION"BORDER="1"WIDTH="100%"><TR><TDALIGN="CENTER"><B>Caution</B></TD></TR><TR><TDALIGN="LEFT"><P>There are some issues still to be resolved before it is possible tocombine the <TTCLASS="FILENAME">current</TT> sources available viaanonymous <SPANCLASS="APPLICATION">CVS</SPAN> and full releases of <SPANCLASS="APPLICATION">eCos</SPAN> and additional packages ina single component repository. The first problem relates to the<SPANCLASS="DATABASE">ecos.db</SPAN> database: if a new package is added viathe CVS repository then this requires a database update, but theadministration tool is bypassed. The second problem arises if anorganization chooses to place its component repository under sourcecode control using <SPANCLASS="APPLICATION">CVS</SPAN>, in which case different directories willbelong to different <SPANCLASS="APPLICATION">CVS</SPAN> servers. These issues will be addressed in afuture release.</P></TD></TR></TABLE></DIV></DIV><DIVCLASS="NAVFOOTER"><HRALIGN="LEFT"WIDTH="100%"><TABLESUMMARY="Footer navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top"><AHREF="package.html"ACCESSKEY="P">Prev</A></TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="cdl-guide.html"ACCESSKEY="H">Home</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top"><AHREF="package.contents.html"ACCESSKEY="N">Next</A></TD></TR><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top">Package Organization</TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="package.html"ACCESSKEY="U">Up</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top">Package Contents and Layout</TD></TR></TABLE></DIV></BODY></HTML>

⌨️ 快捷键说明

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