summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.travis.yml4
-rw-r--r--apt-pkg/contrib/strutl.cc5
-rw-r--r--apt-pkg/deb/dpkgpm.cc4
-rw-r--r--ftparchive/writer.cc27
4 files changed, 19 insertions, 21 deletions
diff --git a/.travis.yml b/.travis.yml
index 2a648c940..a076d3e4c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,15 +3,13 @@ sudo: required
dist: trusty
before_install:
- sudo add-apt-repository 'deb http://archive.ubuntu.com/ubuntu/ wily main universe' -y
- - sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
- |
sudo sh -c '/bin/echo -e "Package: *\nPin: release n=wily\nPin-Priority: 1" > /etc/apt/preferences.d/wily'
- sudo apt-get update -qq
install:
- sudo ./prepare-release travis-ci
- sudo apt-get -qq -y -t wily install gettext liblz4-dev python3-apt
- - sudo apt-get -qq -y install gcc-5 g++-5
- - CC=gcc-5 CXX=g++-5 make
+ - make
script:
- make test
- ./test/integration/run-tests -q
diff --git a/apt-pkg/contrib/strutl.cc b/apt-pkg/contrib/strutl.cc
index 1d9577125..d0bc938e4 100644
--- a/apt-pkg/contrib/strutl.cc
+++ b/apt-pkg/contrib/strutl.cc
@@ -757,7 +757,10 @@ string TimeRFC1123(time_t Date)
auto const posix = std::locale("C.UTF-8");
std::ostringstream datestr;
datestr.imbue(posix);
- datestr << std::put_time(&Conv, "%a, %d %b %Y %H:%M:%S GMT");
+ APT::StringView const fmt("%a, %d %b %Y %H:%M:%S GMT");
+ std::use_facet<std::time_put<char>>(posix).put(
+ std::ostreambuf_iterator<char>(datestr),
+ datestr, ' ', &Conv, fmt.data(), fmt.data() + fmt.size());
return datestr.str();
}
/*}}}*/
diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc
index d8e838882..5e27c2686 100644
--- a/apt-pkg/deb/dpkgpm.cc
+++ b/apt-pkg/deb/dpkgpm.cc
@@ -1233,9 +1233,9 @@ bool pkgDPkgPM::Go(APT::Progress::PackageManager *progress)
if (notconfidx != std::numeric_limits<decltype(notconfidx)>::max())
{
if (ConfigurePending)
- List.erase(std::next(List.cbegin(), notconfidx), std::prev(List.cend()));
+ List.erase(std::next(List.begin(), notconfidx), std::prev(List.end()));
else
- List.erase(std::next(List.cbegin(), notconfidx), List.cend());
+ List.erase(std::next(List.begin(), notconfidx), List.end());
}
d->stdin_is_dev_null = false;
diff --git a/ftparchive/writer.cc b/ftparchive/writer.cc
index 1036ce0b8..dbeaa16a6 100644
--- a/ftparchive/writer.cc
+++ b/ftparchive/writer.cc
@@ -967,6 +967,15 @@ bool ContentsWriter::ReadFromPkgs(string const &PkgFile,string const &PkgCompres
// ReleaseWriter::ReleaseWriter - Constructor /*{{{*/
// ---------------------------------------------------------------------
/* */
+static std::string formatUTCDateTime(time_t const now)
+{
+ // TimeRFC1123 uses GMT to satisfy HTTP/1.1
+ std::string datetime = TimeRFC1123(now);
+ auto const lastspace = datetime.rfind(' ');
+ if (likely(lastspace != std::string::npos))
+ datetime.replace(lastspace + 1, 3, "UTC");
+ return datetime;
+}
ReleaseWriter::ReleaseWriter(FileFd * const GivenOutput, string const &/*DB*/) : FTWScanner(GivenOutput)
{
if (_config->FindB("APT::FTPArchive::Release::Default-Patterns", true) == true)
@@ -988,20 +997,7 @@ ReleaseWriter::ReleaseWriter(FileFd * const GivenOutput, string const &/*DB*/) :
AddPatterns(_config->FindVector("APT::FTPArchive::Release::Patterns"));
time_t const now = time(NULL);
- auto const posix = std::locale("C.UTF-8");
-
- // FIXME: use TimeRFC1123 here? But that uses GMT to satisfy HTTP/1.1
- std::ostringstream datestr;
- datestr.imbue(posix);
- datestr << std::put_time(gmtime(&now), "%a, %d %b %Y %H:%M:%S UTC");
-
time_t const validuntil = now + _config->FindI("APT::FTPArchive::Release::ValidTime", 0);
- std::ostringstream validstr;
- if (validuntil != now)
- {
- datestr.imbue(posix);
- validstr << std::put_time(gmtime(&validuntil), "%a, %d %b %Y %H:%M:%S UTC");
- }
map<string,string> Fields;
Fields["Origin"] = "";
@@ -1009,8 +1005,9 @@ ReleaseWriter::ReleaseWriter(FileFd * const GivenOutput, string const &/*DB*/) :
Fields["Suite"] = "";
Fields["Version"] = "";
Fields["Codename"] = "";
- Fields["Date"] = datestr.str();
- Fields["Valid-Until"] = validstr.str();
+ Fields["Date"] = formatUTCDateTime(now);
+ if (validuntil != now)
+ Fields["Valid-Until"] = formatUTCDateTime(validuntil);
Fields["Architectures"] = "";
Fields["Components"] = "";
Fields["Description"] = "";