diff options
author | David Kalnischkies <david@kalnischkies.de> | 2017-05-28 13:24:33 +0200 |
---|---|---|
committer | David Kalnischkies <david@kalnischkies.de> | 2017-06-28 19:18:47 +0200 |
commit | 96ebab48c25fcd1ee83729cdba4be8a6343a8766 (patch) | |
tree | f7fdd7f2a561beb89dbfe70ca194b289b40362e5 /apt-pkg | |
parent | 081fbea14d12f79c8d91ce4fe1f1004c7bc08656 (diff) |
show a Release-Notes URI if infos were changed
This gives the repository owner a chance to explain why this change was
needed – e.g. explaining the organisational changes or simply detailing
the changes in the new release made. Note that this URI is also shown
if the change is accepted, so it also draws attention to release notes
of minor updates (if users watch apt output closely).
Diffstat (limited to 'apt-pkg')
-rw-r--r-- | apt-pkg/acquire-item.cc | 11 | ||||
-rw-r--r-- | apt-pkg/deb/debmetaindex.cc | 1 | ||||
-rw-r--r-- | apt-pkg/metaindex.cc | 3 | ||||
-rw-r--r-- | apt-pkg/metaindex.h | 2 |
4 files changed, 17 insertions, 0 deletions
diff --git a/apt-pkg/acquire-item.cc b/apt-pkg/acquire-item.cc index f5ff8288b..ddcff5808 100644 --- a/apt-pkg/acquire-item.cc +++ b/apt-pkg/acquire-item.cc @@ -1623,6 +1623,7 @@ bool pkgAcqMetaBase::VerifyVendor(string const &) /*{{{*/ { "Codename", AllowInfoChange, &metaIndex::GetCodename }, { nullptr, false, nullptr } }; + _error->PushToStack(); auto const CheckReleaseInfo = [&](char const * const Type, bool const AllowChange, decltype(checkers[0].Getter) const Getter) { std::string const Last = (TransactionManager->LastMetaIndexParser->*Getter)(); std::string const Now = (TransactionManager->MetaIndexParser->*Getter)(); @@ -1655,6 +1656,16 @@ bool pkgAcqMetaBase::VerifyVendor(string const &) /*{{{*/ CRI &= Allow; } } + if (_error->empty(GlobalError::NOTICE) == false) + { + auto const notes = TransactionManager->MetaIndexParser->GetReleaseNotes(); + if (notes.empty() == false) + { + // TRANSLATOR: the "this" refers to changes in the repository like a new release or owner change + _error->Notice(_("More information about this can be found online in the Release notes at: %s"), notes.c_str()); + } + } + _error->MergeWithStack(); if (CRI == false) { // TRANSLATOR: %s is the name of the manpage in question, e.g. apt-secure(8) diff --git a/apt-pkg/deb/debmetaindex.cc b/apt-pkg/deb/debmetaindex.cc index 424ef08f6..df7419ddd 100644 --- a/apt-pkg/deb/debmetaindex.cc +++ b/apt-pkg/deb/debmetaindex.cc @@ -398,6 +398,7 @@ bool debReleaseIndex::Load(std::string const &Filename, std::string * const Erro SetVersion(Section.FindS("Version")); Suite = Section.FindS("Suite"); Codename = Section.FindS("Codename"); + SetReleaseNotes(Section.FindS("Release-Notes")); { std::string const archs = Section.FindS("Architectures"); if (archs.empty() == false) diff --git a/apt-pkg/metaindex.cc b/apt-pkg/metaindex.cc index 8765851d6..695cf8804 100644 --- a/apt-pkg/metaindex.cc +++ b/apt-pkg/metaindex.cc @@ -16,6 +16,7 @@ class metaIndexPrivate /*{{{*/ std::string Label; std::string Version; signed short DefaultPin; + std::string ReleaseNotes; }; /*}}}*/ @@ -67,6 +68,7 @@ APT_PURE std::string metaIndex::GetLabel() const { return d->Label; } APT_PURE std::string metaIndex::GetVersion() const { return d->Version; } APT_PURE std::string metaIndex::GetCodename() const { return Codename; } APT_PURE std::string metaIndex::GetSuite() const { return Suite; } +APT_PURE std::string metaIndex::GetReleaseNotes() const { return d->ReleaseNotes; } APT_PURE signed short metaIndex::GetDefaultPin() const { return d->DefaultPin; } APT_PURE bool metaIndex::GetSupportsAcquireByHash() const { return SupportsAcquireByHash; } APT_PURE time_t metaIndex::GetValidUntil() const { return ValidUntil; } @@ -164,3 +166,4 @@ void metaIndex::SetOrigin(std::string const &origin) { d->Origin = origin; } void metaIndex::SetLabel(std::string const &label) { d->Label = label; } void metaIndex::SetVersion(std::string const &version) { d->Version = version; } void metaIndex::SetDefaultPin(signed short const defaultpin) { d->DefaultPin = defaultpin; } +void metaIndex::SetReleaseNotes(std::string const ¬es) { d->ReleaseNotes = notes; } diff --git a/apt-pkg/metaindex.h b/apt-pkg/metaindex.h index eeeb9d807..1951f118f 100644 --- a/apt-pkg/metaindex.h +++ b/apt-pkg/metaindex.h @@ -77,6 +77,7 @@ public: std::string GetVersion() const; std::string GetCodename() const; std::string GetSuite() const; + std::string GetReleaseNotes() const; signed short GetDefaultPin() const; bool GetSupportsAcquireByHash() const; time_t GetValidUntil() const; @@ -123,6 +124,7 @@ public: APT_HIDDEN void SetLabel(std::string const &label); APT_HIDDEN void SetVersion(std::string const &version); APT_HIDDEN void SetDefaultPin(signed short const defaultpin); + APT_HIDDEN void SetReleaseNotes(std::string const ¬es); }; #endif |