<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/apt-private/private-install.cc, branch 2.9.0</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=2.9.0</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=2.9.0'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2024-04-12T14:01:02Z</updated>
<entry>
<title>Only show Recommends/Suggests for new installs, not upgrades</title>
<updated>2024-04-12T14:01:02Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2024-04-12T13:10:20Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=275ee5afe968e77d8379f0f3b6dc54c6239aa4f6'/>
<id>urn:sha1:275ee5afe968e77d8379f0f3b6dc54c6239aa4f6</id>
<content type='text'>
This makes things more useful in combination with the upgrade
command, but introduces a subtle change seen in the test suite
when you use the install command to upgrade packages.
</content>
</entry>
<entry>
<title>Show Recommends/Suggests for upgrades too, move them down</title>
<updated>2024-04-12T13:57:36Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2024-04-12T12:24:33Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=d3274a11d9e153cd996b89436b01d00b218a4985'/>
<id>urn:sha1:d3274a11d9e153cd996b89436b01d00b218a4985</id>
<content type='text'>
Extract the code to show them into its own function and call
it in the old place for output version &lt; 30, or after the
dependencies being installed for new output format.
</content>
</entry>
<entry>
<title>apt: Introduce the new terse apt output format 3.0</title>
<updated>2024-04-12T13:57:36Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2024-04-11T21:04:43Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=abfae1aec588c1b4ae46f229d8312a3c5e6b8b7a'/>
<id>urn:sha1:abfae1aec588c1b4ae46f229d8312a3c5e6b8b7a</id>
<content type='text'>
The key talking points here are:

1. Instead of long sentences, we use short concise messages,
   e.g. "The following NEW packages will be installed" becomes
   "Installing".

2. Dependencies are only listed once. We removed the
   "The following additional packages will be installed" section
   in favor of splitting up the "Installing" section into
   "Installing" and "Installing dependencies" (like dnf)

3. The order of the output is different:

   1. Packages to be installed manually
   2. Packages to be installed automatically
   4. Weak dependencies of new packages not installed
   3. Packages to be upgraded
   4. Packages to be downgraded
   5. Packages that have been kept back / are on hold
   6. Removals
   7. Essential removals

   i.e. we logically show you the action that is being
   done, followed by lists related to the action.

4. As requested by popey, we have colorful UI, with green for
   packages being installed and red for packages being removed.

Caveats:

- The list of recommends and suggests has not been updated yet,
  it should move to after the packages being installed (as they
  are what triggers them)

This also introduces output format versioning, configured by the
APT::Output-Format option. The default value is 0, except for the
apt(8) binary where it is 30 - which enables the new style.
</content>
</entry>
<entry>
<title>Modernize standard library includes</title>
<updated>2024-02-20T12:49:04Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2024-02-20T12:43:08Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=40a75722c43ae24cb9a99d6730a3b25b65819c49'/>
<id>urn:sha1:40a75722c43ae24cb9a99d6730a3b25b65819c49</id>
<content type='text'>
This was automated with sed and git-clang-format, and then I had to
fix up the top of policy.cc by hand as git-clang-format accidentally
indented it by two spaces.
</content>
</entry>
<entry>
<title>Show a separate list of upgrades deferred due to phasing</title>
<updated>2024-02-13T14:08:57Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2024-02-13T11:54:07Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=1a0882558da05eaf471c2b4049ae27305e7c70ec'/>
<id>urn:sha1:1a0882558da05eaf471c2b4049ae27305e7c70ec</id>
<content type='text'>
This introduces a new line:

    The following upgrades have been deferred due to phasing

This is any kept back package that is also phasing. This may
not be 100% accurate as we have kept it back due to other reasons
in an install command, for example, but we don't track for which
packages we applied phasing in reality.

If additional packages are kept back that are not phasing, show
a a notice

"N: Some packages may have been kept back due to phasing."

LP: #1988819
</content>
</entry>
<entry>
<title>Restore ?garbage by calling MarkAndSweep before parsing</title>
<updated>2023-11-20T09:04:05Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2023-11-20T09:02:21Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=b6f362e8013b03efce54e7381e0e22fac1fa1539'/>
<id>urn:sha1:b6f362e8013b03efce54e7381e0e22fac1fa1539</id>
<content type='text'>
This ensures that things work correctly.

LP: #1995790
</content>
</entry>
<entry>
<title>Downgrade unmerged-usr from error to two warnings</title>
<updated>2023-09-20T07:47:47Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2023-09-20T07:46:51Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=925ada57d999a502dc2342092f32232b803be254'/>
<id>urn:sha1:925ada57d999a502dc2342092f32232b803be254</id>
<content type='text'>
One warning will be issued before the Y/n prompt, the other will
be issued at the end after package installs have been attempted
or if there were other failures, such that the last line you see
is warnings about unmerged-usr

I do not anticipate this to be the final version either, but
there we go.

Closes: #1052058
</content>
</entry>
<entry>
<title>Only accept installs of usrmerge on unmerged-usr systems</title>
<updated>2023-09-16T10:37:31Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2023-09-16T10:34:48Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=99c888b5eabbb7008bf4451bc62c277f28bb925f'/>
<id>urn:sha1:99c888b5eabbb7008bf4451bc62c277f28bb925f</id>
<content type='text'>
As of bookworm, merged-usr is mandatory, and people got caught
in the crosshairs of the dpkg fsys-unmessusr debacle and inadvertently
reverted back to an unmerged configuration and continue to remain
on an unsupported system unknowingly.

Help them by erroring out when they are installing packages on /,
they are not in a chroot, and a usrmerge package is available.
</content>
</entry>
<entry>
<title>Add apt install,upgrade,... -U,--update options</title>
<updated>2023-05-02T13:16:54Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2023-04-11T14:37:51Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=3625351722e67903dc34993fe318e50863bd2d31'/>
<id>urn:sha1:3625351722e67903dc34993fe318e50863bd2d31</id>
<content type='text'>
This runs update before opening the cache and sources.list for
installing/upgrading.
</content>
</entry>
<entry>
<title>Respect users pkg order on `apt install` for resolving</title>
<updated>2022-09-02T21:37:58Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2022-09-02T09:07:58Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=e1f332324f81b589561a9d9bce8a55d4895f26ec'/>
<id>urn:sha1:e1f332324f81b589561a9d9bce8a55d4895f26ec</id>
<content type='text'>
The command line is evaluated in two steps: First all packages given
are marked for install and as a second step the resolver is started on
all of them in turn to get their dependencies installed.

This is done so a user can provide a non-default choice on the command
line and have it respected regardless of where on the command line it
appears.

On the other hand, the order in which dependencies are resolved can
matter, so instead of using a "random" order, we now do this in the
order given on the command line, so if you e.g. have a meta package
pulling in non-default choices and mention it first the choices are
respected predictably instead of depending on first appearance of the
package name while creating the binary cache.

I might have "broken" this more than a decade ago while introducing the
reworked command line parsing for Multi-Arch, which also brought in the
split into the two steps mentioned above which was the far more
impactful 'respect user choice' change. This one should hardly matter in
practice, but as the tests show, order can have surprising side effects.
</content>
</entry>
</feed>
