Bug#782871: apt (1.0.9.8) prevents aptitude handling forget-new properly.

2015-04-19 Thread David Kalnischkies
Control: reassign -1 aptitude
Control: forcemerge 782777 -1
Control: affects -1 apt

On Sun, Apr 19, 2015 at 01:00:59PM +0900, Hae-woo Park wrote:
 Recently I upgraded the following packages from 1.0.9.7 to 1.0.9.8:
 apt, apt-utils, libapt-inst1.5, libapt-pkg4.12. (I am using sid.)
 
 After then aptitude could not handle 'forget-new' (and 'markauto'?) properly.
 When type 'f' (or 'M') for those instruction in aptitude, it seems working;
 but after restarting aptitude the status went back.
 Note that the 'markauto' issue was tested only with 'new' packages.
 
 So now I've rolled back those 4 packages,
 and aptitude properly forgets the new packages by 'forget-new'.

This wierdness is discussed over at aptitude with #782777, so I am
merging with it and let you guys figure it out because I can't reproduce
it here with pure apt(-mark) and this aptitude thingy is pure black
magic for my eyes and ears (on of these days I might start it).


From what I read there it isn't clear to me that a downgrade actually
fixes things. It seems more to fumble around stuff so that it pops up
someplace else.


My biggest problem with it is through that nothing in the vincity of the
autobit handling changed in 1.0.9.8. Not even close to it.


The closest is maybe parse specific-arch dependencies correctly on
single-arch systems, but that just because it is the binary cache
creation changed, which is state potentially shared between different
versions of libapt, but is reshuffled on 'update' and at least partly
with every change to the dpkg/status.

I didn't invalidate the cache with a version bump, which from a (very)
theoretical standpoint is incorrect, but that just means you are
effected by the bug this commit is fixing until after the cache is
invalidated next (given that just one package satisfying the criteria
exists at all in all of Debian, that isn't as bad as it might sound
– especially as the fix is for jessie and this one package is sid only).
That is working the other way around, too, through as a downgrade isn't
breaking it again instantly either. What I can see is that the two
reporters who provided the information are single-arch systems, so they
would be effected by this bug, for multi-arch systems nothing changed.


Now, all that being said, this bears no relation to 'new' nor 'auto' as
this is about dependencies being created incorrectly. At the most its
removing packages as this bug created package structures with a bad
name so they couldn't be found later, but that also means these bad
packages never had a version belonging to it and I doubt aptitude
considers those as new (and they are gone now, not added, so if
anything, 1.0.9.8 would fix it…).

But yes, its the best I got, even through I have no idea what could be
it as the other fixes I would consider even less likely to influence the
outcome of aptitude than the current moon phase:
- apt-key changes do not effect aptitude at all
- VectorizeString is called by aptitude only in mkdir_parents,
  which is itself never called by aptitude…
- WriteApportReport is disabled in Debian by default, called only by
  libapt itself and only as a reaction to a dpkg error while stuff is
  installed. Also, its a crash fix…
- pkgAcquire::Item::Mode is another crash fix, a crash theoretically not
  happening and indeed never happening for 5 years in C++ code. Only
  python3 seems to manage to trigger it. Also only acts while stuff is
  being fetched from the interwebs.
- https is, well, a seperate binary never called directly by aptitude,
  nor does it see the communication with it. Used also only while
  fetching stuff from the (encrypted) interweb.
- a typo in the commandline parsing of apt-get.

And that was it, all 7 changes in 1.0.9.8.

Fun fact: This mail has more lines than 2 times the amount of changed
code lines (which itself counts changes twice as one line added and one
line removed) in the diff between 1.0.9.7 and 1.0.9.8.


Best regards

David Kalnischkies


signature.asc
Description: Digital signature


Bug#782777: Bug#782871: apt (1.0.9.8) prevents aptitude handling forget-new properly.

2015-04-19 Thread Hae-woo Park
[Since bug 782871 and 782777 are merged, so I replied to both 782871@
and 782777@.]

Thank you so much for your kind and detailed explanation, David.

I agree that this bug is really weird.
Actually I _roughly_ checked the diff between 1.0.9.7 and 1.0.9.8
before submitting the bug.
However it was my first time to check the diff in the Debian git
repository, so I thought I missed some changes.
As you told, it seems that the changes should not cause this kind of problem.

Anyway let me explain more.
In my case, I have only sid repository in my sources.list,
while the other reporters said that they had experimental as well.
However the package I have the problem on includes libgcc-4.9-dev
which is mentioned in bug 782777.

IMHO, if there're really small change lists between 1.0.9.7 and 1.0.9.8,
then we can test with patching changes one-by-one.

Thanks.



2015-04-19 19:00 GMT+09:00 David Kalnischkies da...@kalnischkies.de:
 Control: reassign -1 aptitude
 Control: forcemerge 782777 -1
 Control: affects -1 apt

 On Sun, Apr 19, 2015 at 01:00:59PM +0900, Hae-woo Park wrote:
 Recently I upgraded the following packages from 1.0.9.7 to 1.0.9.8:
 apt, apt-utils, libapt-inst1.5, libapt-pkg4.12. (I am using sid.)

 After then aptitude could not handle 'forget-new' (and 'markauto'?) properly.
 When type 'f' (or 'M') for those instruction in aptitude, it seems working;
 but after restarting aptitude the status went back.
 Note that the 'markauto' issue was tested only with 'new' packages.

 So now I've rolled back those 4 packages,
 and aptitude properly forgets the new packages by 'forget-new'.

 This wierdness is discussed over at aptitude with #782777, so I am
 merging with it and let you guys figure it out because I can't reproduce
 it here with pure apt(-mark) and this aptitude thingy is pure black
 magic for my eyes and ears (on of these days I might start it).


 From what I read there it isn't clear to me that a downgrade actually
 fixes things. It seems more to fumble around stuff so that it pops up
 someplace else.


 My biggest problem with it is through that nothing in the vincity of the
 autobit handling changed in 1.0.9.8. Not even close to it.


 The closest is maybe parse specific-arch dependencies correctly on
 single-arch systems, but that just because it is the binary cache
 creation changed, which is state potentially shared between different
 versions of libapt, but is reshuffled on 'update' and at least partly
 with every change to the dpkg/status.

 I didn't invalidate the cache with a version bump, which from a (very)
 theoretical standpoint is incorrect, but that just means you are
 effected by the bug this commit is fixing until after the cache is
 invalidated next (given that just one package satisfying the criteria
 exists at all in all of Debian, that isn't as bad as it might sound
 – especially as the fix is for jessie and this one package is sid only).
 That is working the other way around, too, through as a downgrade isn't
 breaking it again instantly either. What I can see is that the two
 reporters who provided the information are single-arch systems, so they
 would be effected by this bug, for multi-arch systems nothing changed.


 Now, all that being said, this bears no relation to 'new' nor 'auto' as
 this is about dependencies being created incorrectly. At the most its
 removing packages as this bug created package structures with a bad
 name so they couldn't be found later, but that also means these bad
 packages never had a version belonging to it and I doubt aptitude
 considers those as new (and they are gone now, not added, so if
 anything, 1.0.9.8 would fix it…).

 But yes, its the best I got, even through I have no idea what could be
 it as the other fixes I would consider even less likely to influence the
 outcome of aptitude than the current moon phase:
 - apt-key changes do not effect aptitude at all
 - VectorizeString is called by aptitude only in mkdir_parents,
   which is itself never called by aptitude…
 - WriteApportReport is disabled in Debian by default, called only by
   libapt itself and only as a reaction to a dpkg error while stuff is
   installed. Also, its a crash fix…
 - pkgAcquire::Item::Mode is another crash fix, a crash theoretically not
   happening and indeed never happening for 5 years in C++ code. Only
   python3 seems to manage to trigger it. Also only acts while stuff is
   being fetched from the interwebs.
 - https is, well, a seperate binary never called directly by aptitude,
   nor does it see the communication with it. Used also only while
   fetching stuff from the (encrypted) interweb.
 - a typo in the commandline parsing of apt-get.

 And that was it, all 7 changes in 1.0.9.8.

 Fun fact: This mail has more lines than 2 times the amount of changed
 code lines (which itself counts changes twice as one line added and one
 line removed) in the diff between 1.0.9.7 and 1.0.9.8.


 Best regards

 David Kalnischkies


--
To UNSUBSCRIBE, email to 

Bug#782871: apt (1.0.9.8) prevents aptitude handling forget-new properly.

2015-04-18 Thread Hae-woo Park
Package: apt
Version: 1.0.9.8

Recently I upgraded the following packages from 1.0.9.7 to 1.0.9.8:
apt, apt-utils, libapt-inst1.5, libapt-pkg4.12. (I am using sid.)

After then aptitude could not handle 'forget-new' (and 'markauto'?) properly.
When type 'f' (or 'M') for those instruction in aptitude, it seems working;
but after restarting aptitude the status went back.
Note that the 'markauto' issue was tested only with 'new' packages.

So now I've rolled back those 4 packages,
and aptitude properly forgets the new packages by 'forget-new'.

Please take a look.
Thanks.


Regards,
Hae-woo Park


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org