From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: "Alexey I. Froloff" To: sisyphus@lists.altlinux.org Date: Sun, 22 Nov 2009 04:58:25 +0300 Message-Id: <1258855105-6864-1-git-send-email-raorn@altlinux.org> X-Mailer: git-send-email 1.6.5.3 In-Reply-To: <20091121201250.GC21302@altlinux.org> References: <20091121201250.GC21302@altlinux.org> Cc: "Alexey I. Froloff" Subject: [sisyphus] [PATCH] Access to changelogs via record parser interface X-BeenThere: sisyphus@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Sisyphus discussions List-Id: ALT Linux Sisyphus discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Nov 2009 01:58:43 -0000 Archived-At: List-Archive: List-Post: Add RecordParser::Changelog() and SrcRecordParser::Changelog() functions that returns raw changelog text. libapt-pkg SONAME changed according to libtool versioning rules. Signed-off-by: Alexey I. Froloff --- apt/apt-pkg/Makefile.am | 2 +- apt/apt-pkg/deb/debrecords.cc | 8 ++++++++ apt/apt-pkg/deb/debrecords.h | 1 + apt/apt-pkg/deb/debsrcrecords.h | 1 + apt/apt-pkg/pkgrecords.h | 1 + apt/apt-pkg/rpm/rpmrecords.cc | 14 ++++++++++++++ apt/apt-pkg/rpm/rpmrecords.h | 1 + apt/apt-pkg/rpm/rpmsrcrecords.cc | 13 +++++++++++++ apt/apt-pkg/rpm/rpmsrcrecords.h | 1 + apt/apt-pkg/srcrecords.h | 1 + 10 files changed, 42 insertions(+), 1 deletions(-) diff --git a/apt/apt-pkg/Makefile.am b/apt/apt-pkg/Makefile.am index ebf0398..ca563d7 100644 --- a/apt/apt-pkg/Makefile.am +++ b/apt/apt-pkg/Makefile.am @@ -2,7 +2,7 @@ lib_LTLIBRARIES = libapt-pkg.la libapt_pkg_la_LIBADD = @RPMLIBS@ -libapt_pkg_la_LDFLAGS = -version-info 2:0:0 -release @GLIBC_VER@-@LIBSTDCPP_VER@ +libapt_pkg_la_LDFLAGS = -version-info 3:0:1 -release @GLIBC_VER@-@LIBSTDCPP_VER@ AM_CPPFLAGS = -DLIBDIR=\"$(libdir)\" diff --git a/apt/apt-pkg/deb/debrecords.cc b/apt/apt-pkg/deb/debrecords.cc index aa6253a..7b31626 100644 --- a/apt/apt-pkg/deb/debrecords.cc +++ b/apt/apt-pkg/deb/debrecords.cc @@ -92,6 +92,14 @@ string debRecordParser::LongDesc() return Section.FindS("Description"); } /*}}}*/ +// RecordParser::Changelog - Return package changelog if any /*{{{*/ +// --------------------------------------------------------------------- +/* */ +string debRecordParser::Changelog() +{ + return string(""); +} + /*}}}*/ // RecordParser::SourcePkg - Return the source package name if any /*{{{*/ // --------------------------------------------------------------------- /* */ diff --git a/apt/apt-pkg/deb/debrecords.h b/apt/apt-pkg/deb/debrecords.h index 8760c38..a71e9bd 100644 --- a/apt/apt-pkg/deb/debrecords.h +++ b/apt/apt-pkg/deb/debrecords.h @@ -44,6 +44,7 @@ class debRecordParser : public pkgRecords::Parser virtual string ShortDesc(); virtual string LongDesc(); virtual string Name(); + virtual string Changelog(); virtual void GetRec(const char *&Start,const char *&Stop); diff --git a/apt/apt-pkg/deb/debsrcrecords.h b/apt/apt-pkg/deb/debsrcrecords.h index ff14045..18a9339 100644 --- a/apt/apt-pkg/deb/debsrcrecords.h +++ b/apt/apt-pkg/deb/debsrcrecords.h @@ -38,6 +38,7 @@ class debSrcRecordParser : public pkgSrcRecords::Parser virtual string Version() const {return Sect.FindS("Version");}; virtual string Maintainer() const {return Sect.FindS("Maintainer");}; virtual string Section() const {return Sect.FindS("Section");}; + virtual string Changelog() const {return string("");}; virtual const char **Binaries(); virtual bool BuildDepends(vector &BuildDeps, bool ArchOnly); virtual unsigned long Offset() {return iOffset;}; diff --git a/apt/apt-pkg/pkgrecords.h b/apt/apt-pkg/pkgrecords.h index 1bf1f9e..9f831a3 100644 --- a/apt/apt-pkg/pkgrecords.h +++ b/apt/apt-pkg/pkgrecords.h @@ -67,6 +67,7 @@ class pkgRecords::Parser virtual string ShortDesc() {return string();}; virtual string LongDesc() {return string();}; virtual string Name() {return string();}; + virtual string Changelog() {return string();}; // The record in binary form virtual void GetRec(const char *&Start,const char *&Stop) {Start = Stop = 0;}; diff --git a/apt/apt-pkg/rpm/rpmrecords.cc b/apt/apt-pkg/rpm/rpmrecords.cc index eb64fe9..e3f6852 100644 --- a/apt/apt-pkg/rpm/rpmrecords.cc +++ b/apt/apt-pkg/rpm/rpmrecords.cc @@ -171,6 +171,20 @@ string rpmRecordParser::LongDesc() return Ret; } /*}}}*/ +// RecordParser::Changelog - Return package changelog if any /*{{{*/ +// ----------------------------------------------- +string rpmRecordParser::Changelog() +{ + char *str; + + str = headerSprintf(HeaderP, + "[* %{CHANGELOGTIME:day} %{CHANGELOGNAME}\n%{CHANGELOGTEXT}\n\n]", + rpmTagTable, rpmHeaderFormats, NULL); + + return string(str?str:""); +} + + /*}}}*/ // RecordParser::SourcePkg - Return the source package name if any /*{{{*/ // --------------------------------------------------------------------- /* */ diff --git a/apt/apt-pkg/rpm/rpmrecords.h b/apt/apt-pkg/rpm/rpmrecords.h index 71e3325..d8a72d5 100644 --- a/apt/apt-pkg/rpm/rpmrecords.h +++ b/apt/apt-pkg/rpm/rpmrecords.h @@ -59,6 +59,7 @@ class rpmRecordParser : public pkgRecords::Parser virtual string ShortDesc(); virtual string LongDesc(); virtual string Name(); + virtual string Changelog(); inline Header GetRecord() { return HeaderP; }; diff --git a/apt/apt-pkg/rpm/rpmsrcrecords.cc b/apt/apt-pkg/rpm/rpmsrcrecords.cc index 43b25fa..3429309 100644 --- a/apt/apt-pkg/rpm/rpmsrcrecords.cc +++ b/apt/apt-pkg/rpm/rpmsrcrecords.cc @@ -191,6 +191,19 @@ string rpmSrcRecordParser::Section() const return string(rc?str:""); } +// SrcRecordParser::Changelog - Package changelog +// ---------------------------------------------- +string rpmSrcRecordParser::Changelog() const +{ + char *str; + + str = headerSprintf(HeaderP, + "[* %{CHANGELOGTIME:day} %{CHANGELOGNAME}\n%{CHANGELOGTEXT}\n\n]", + rpmTagTable, rpmHeaderFormats, NULL); + + return string(str?str:""); +} + unsigned long rpmSrcRecordParser::Offset() { return Handler->Offset(); diff --git a/apt/apt-pkg/rpm/rpmsrcrecords.h b/apt/apt-pkg/rpm/rpmsrcrecords.h index 6c96a40..41505ae 100644 --- a/apt/apt-pkg/rpm/rpmsrcrecords.h +++ b/apt/apt-pkg/rpm/rpmsrcrecords.h @@ -48,6 +48,7 @@ public: virtual string Version() const; virtual string Maintainer() const; virtual string Section() const; + virtual string Changelog() const; virtual const char **Binaries(); virtual unsigned long Offset(); virtual string AsStr(); diff --git a/apt/apt-pkg/srcrecords.h b/apt/apt-pkg/srcrecords.h index 006c9d3..8bc013f 100644 --- a/apt/apt-pkg/srcrecords.h +++ b/apt/apt-pkg/srcrecords.h @@ -70,6 +70,7 @@ class pkgSrcRecords virtual string Version() const = 0; virtual string Maintainer() const = 0; virtual string Section() const = 0; + virtual string Changelog() const = 0; virtual const char **Binaries() = 0; // Ownership does not transfer virtual bool BuildDepends(vector &BuildDeps, bool ArchOnly) = 0; -- 1.6.5.3