<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/apt-pkg/deb/debsrcrecords.cc, branch 2.2.1</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=2.2.1</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=2.2.1'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2019-02-26T15:31:20Z</updated>
<entry>
<title>pkgSrcRecords::Parser: Fold Files2() into Files()</title>
<updated>2019-02-26T15:31:20Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2019-02-26T10:59:38Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=e217a3a425ba72e8b6ce395e1ecd411fbe58e916'/>
<id>urn:sha1:e217a3a425ba72e8b6ce395e1ecd411fbe58e916</id>
<content type='text'>
This is possible now with the API break. Cleaner code, woohoo.
</content>
</entry>
<entry>
<title>Remove obsolete RCS keywords</title>
<updated>2018-05-07T11:41:31Z</updated>
<author>
<name>Guillem Jover</name>
<email>guillem@debian.org</email>
</author>
<published>2018-05-06T20:32:41Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=164f1b78d1849a0f33df7352875f86e28f5de06a'/>
<id>urn:sha1:164f1b78d1849a0f33df7352875f86e28f5de06a</id>
<content type='text'>
Prompted-by: Jakub Wilk &lt;jwilk@debian.org&gt;
</content>
</entry>
<entry>
<title>deprecate the single-line deprecation ignoring macro</title>
<updated>2017-12-13T22:53:26Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2017-12-13T11:51:26Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=5d5ca1aac76448cdfd16972090d246c44671dce6'/>
<id>urn:sha1:5d5ca1aac76448cdfd16972090d246c44671dce6</id>
<content type='text'>
gcc has problems understanding this construct and additionally thinks it
would produce multiple lines and stuff, so to keep using it isn't really
worth it for the few instances we have: We can just write the long form
there which works better.

Reported-By: gcc
Gbp-Dch: Ignore
</content>
</entry>
<entry>
<title>use pkgTagSection::Key in srcRecords parser</title>
<updated>2017-09-26T20:23:05Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2017-09-26T20:23:05Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=d006da196dd4289ab3667817d218e6c6ac7bdb6b'/>
<id>urn:sha1:d006da196dd4289ab3667817d218e6c6ac7bdb6b</id>
<content type='text'>
Using hardcoded array-indexes in the build-dependency parsing is
efficient, but less discoverable and easier to break. We can avoid
this by making it even more efficient (not that it would be noticeable)
allowing us to do explicitly named comparisons instead.

Gbp-Dch: Ignore
</content>
</entry>
<entry>
<title>allow empty build-dependency fields in the parser</title>
<updated>2017-09-26T17:45:12Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2017-09-26T17:45:12Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=7ea3c67f96e3bc82f86afe72d6c61308c92de515'/>
<id>urn:sha1:7ea3c67f96e3bc82f86afe72d6c61308c92de515</id>
<content type='text'>
APT used to parse only wellformed files produced by repository creation
tools which removed empty files as pointless before apt would see them.

Now that apt can be told to parse e.g. debian/control files directly, it
needs to be a little more accepting through: We had this with comments
already, now let it deal with the far more trivial empty fields.

Closes: #875363
</content>
</entry>
<entry>
<title>Reformat and sort all includes with clang-format</title>
<updated>2017-07-12T11:57:51Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2017-07-12T11:40:41Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=87274d0f22e1dfd99b2e5200e2fe75c1b804eac3'/>
<id>urn:sha1:87274d0f22e1dfd99b2e5200e2fe75c1b804eac3</id>
<content type='text'>
This makes it easier to see which headers includes what.

The changes were done by running

    git grep -l '#\s*include'  \
        | grep -E '.(cc|h)$' \
        | xargs sed -i -E 's/(^\s*)#(\s*)include/\1#\2 include/'

To modify all include lines by adding a space, and then running
./git-clang-format.sh.
</content>
</entry>
<entry>
<title>Fix parsing of or groups in build-deps with ignored packages</title>
<updated>2017-05-31T12:39:53Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2017-05-30T20:24:14Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=7ddf958e370d13f93edc6923bee289b2f6444b41'/>
<id>urn:sha1:7ddf958e370d13f93edc6923bee289b2f6444b41</id>
<content type='text'>
If the last alternative(s) of an Or group is ignored, because it does
not match an architecture list, we would end up keeping the or flag,
effectively making the next AND an OR.

For example, when parsing (on amd64):

    debhelper (&gt;= 9), libnacl-dev [amd64] | libnacl-dev [i386]
 =&gt; debhelper (&gt;= 9), libnacl-dev |

Which can cause python-apt to crash.

Even worse:

     debhelper (&gt;= 9), libnacl-dev [amd64] | libnacl-dev [i386], foobar
  =&gt; debhelper (&gt;= 9), libnacl-dev [amd64] | foobar

By setting the previous alternatives Or flag to the current Or flag
if the current alternative is ignored, we solve the issue.

LP: #1694697
</content>
</entry>
<entry>
<title>add support for Build-Depends/Conflicts-Arch</title>
<updated>2016-11-09T15:18:54Z</updated>
<author>
<name>Johannes Schauer</name>
<email>josch@debian.org</email>
</author>
<published>2016-11-09T14:28:15Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=c5f22e483cc0f31f2938874370ac776e40792069'/>
<id>urn:sha1:c5f22e483cc0f31f2938874370ac776e40792069</id>
<content type='text'>
These new enum values might cause "interesting" behaviour in tools not
expecting them – like an old apt would think a Build-Conflicts-Arch is
some sort of Build-Depends – but that can't reasonably be avoided and
effects only packages using B-D/C-A so if there is any breakage the
tools can easily be adapted.

The APT_PKG_RELEASE number is increased so that libapt users can detect
the availability of these new enum fields via:
 #if APT_PKG_ABI &gt; 500 || (APT_PKG_ABI == 500 &amp;&amp; APT_PKG_RELEASE &gt;= 1)

Closes: #837395
</content>
</entry>
<entry>
<title>Fix segfault and out-of-bounds read in Binary fields</title>
<updated>2016-08-31T10:12:56Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2016-08-31T09:36:44Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=ce6cd75dc367b92f65e4fb539dd166d0f3361f8c'/>
<id>urn:sha1:ce6cd75dc367b92f65e4fb539dd166d0f3361f8c</id>
<content type='text'>
If a Binary field contains one or more spaces before a comma, the
code produced a segmentation fault, as it accidentally set a pointer
to 0 instead of the value of the pointer.

If the comma is at the beginning of the field, the code would
create a binStartNext that points one element before the start
of the string, which is undefined behavior.

We also need to check that we do not exit the string during the
replacement of spaces before commas: A string of the form " ,"
would normally exit the boundary of the Buffer:

	binStartNext = offset 1 ','
	binEnd = offset 0	' '
	isspace_ascii(*binEnd) = true =&gt; --binEnd
				      =&gt; binEnd = - 1

We get rid of the problem by only allowing spaces to be eliminated
if they are not the first character of the buffer:

        binStartNext = offset 1 ','
        binEnd = offset 0       ' '
        binEnd &gt; buffer = false, isspace_ascii(*binEnd) = true
		 =&gt; exit loop
                =&gt; binEnd remains 0
</content>
</entry>
<entry>
<title>support "install ./foo.changes"</title>
<updated>2016-07-22T14:05:09Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2016-07-08T13:59:23Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=92296fe4b0862a04ea3d965b4cd2d4a420e3be9f'/>
<id>urn:sha1:92296fe4b0862a04ea3d965b4cd2d4a420e3be9f</id>
<content type='text'>
We support installing ./foo.deb (and ./foo.dsc for source) for a while
now, but it can be a bit clunky to work with those directly if you e.g.
build packages locally in a 'central' build-area.

The changes files also include hashsums and can be signed, so this can
also be considered an enhancement in terms of security as a user "just"
has to verify the signature on the changes file then rather than
checking all deb files individually in these manual installation
procedures.
</content>
</entry>
</feed>
