<div dir="ltr"><div>Hi Martin,</div><div><br></div><div>Thank you for this clarification. The situation appears complicated because Ubuntu receives a package which may or may not include a Debian revision. Regardless, if Ubuntu modifies the source, it appends <font face="monospace, monospace">ubuntu*</font> (no hyphen). This is what I did not discover through searching and is the origin of my question.</div><div><br></div><div>If I understand correctly, to deconstruct the result in reverse temporal order:</div><div><ol><li>To find an Ubuntu revision, if any, chop right on <font face="monospace, monospace">ubuntu*</font><br></li><li>To find a Debian revision, if any, chop right on hyphen<br></li><li>Chop right on ~ and + to remove what is not clear yet<br></li><li>What remains is the original upstream version (optional epoch) from which this chain of transformation emerged (it may be a Debian product or originate upstream of Debian)<br></li></ol></div><div>The function of ~ and + are still not entirely clear to me. It seems:<br></div><div><br></div><div>1<font face="monospace, monospace">.0~foo</font> means derives from version <font face="monospace, monospace">1.0</font> preceding commit <font face="monospace, monospace">foo</font> </div><div><font face="monospace, monospace">1.0+foo</font> means derives from version <font face="monospace, monospace">1.0</font> succeeding commit <font face="monospace, monospace">foo</font></div><div><br></div><div>So that <font face="monospace, monospace">1.0~foo+really.bar</font> means?</div><div><br></div><div>Best regards,</div><div><br></div><div>Stephen Quintero </div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jan 14, 2016 at 11:21 PM, Martin Pitt <span dir="ltr"><<a href="mailto:martin.pitt@ubuntu.com" target="_blank">martin.pitt@ubuntu.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello Stephen,<br>
<br>
Stephen Quintero [2016-01-14 19:00 -0800]:<br>
<span class="">> As I understand from the Debian policy manual a package Version string<br>
> should include the revision, if any, appended after a hyphen to the<br>
> version, while the version itself should represent the upstream version, so<br>
</span>> that apache2 *2.4.10-8ubuntu2* indicates:<br>
<br>
This is true for packages which have an actual upstream, like Apache.<br>
<span class=""><br>
> Many packages appear not to conform to this. For example:<br>
><br>
</span>> - apt: *0.8.16~exp12ubuntu10*<br>
> - apt: *1.0.1ubuntu2*<br>
> - apt-clone: *0.3.1~ubuntu11*<br>
> - apt-listchanges: *2.85.13ubuntu2*<br>
<br>
Projects like apt, debian-installer etc. have no "upstream" in that<br>
sense, they are being developed by the Debian project itself for<br>
Debian. As such they don't distinguish between an "upstream version"<br>
and a "Debian revision", and should *not* have a revision number.<br>
<br>
See <a href="https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Version" rel="noreferrer" target="_blank">https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Version</a><br>
<span class=""><br>
> None of these Version strings have a hyphen to separate any revision. Take<br>
> the last example. Does it indicate version '2.85.1' revision '3ubuntu2',<br>
> or version '2.85.13' revision 'ubuntu2', or just version '2.85.13ubuntu2'<br>
> in which case it is clearly not an upstream version at all.<br>
<br>
</span>Appending "ubuntuX" to the version number (both for versions with<br>
upstreams and native ones) is the Ubuntu version policy, so that it<br>
can always be seen which Debian version the Ubuntu package derived<br>
from. So you can always chop off "ubuntu.*" to get the Debian version.<br>
<span class=""><br>
> Other package Version strings do have a hyphen separating a revision from<br>
> the version, but the version is still obviously not the upstream version.<br>
> For example:<br>
><br>
</span>> - account-plugins: *0.11+14.04.20140409.1-0ubuntu1*<br>
> - xchat-gnome: *1:0.30.0~git20131003.d20b8d+really20110821-0.2ubuntu12*<br>
> - x11proto-randr: *1.4.0+git20120101.is.really.1.4.0-0ubuntu1*<br>
<br>
Yes, upstream versions can become pretty complicated when doing things<br>
like "update to the latest upstream snapshot" (common for upstreams<br>
which are slow to release), or "revert to an earlier version". Much of<br>
that is coming from the fact that version numbers are required to be<br>
monotonously increasing, which requires this<br>
"oldversion+really_newversion" trick.<br>
<span class="HOEnZb"><font color="#888888"><br>
Martin<br>
<br>
--<br>
Martin Pitt | <a href="http://www.piware.de" rel="noreferrer" target="_blank">http://www.piware.de</a><br>
Ubuntu Developer (<a href="http://www.ubuntu.com" rel="noreferrer" target="_blank">www.ubuntu.com</a>) | Debian Developer (<a href="http://www.debian.org" rel="noreferrer" target="_blank">www.debian.org</a>)<br>
</font></span></blockquote></div><br></div>