Your message dated Fri, 18 Dec 2015 22:52:54 +0100
with message-id <[email protected]>
and subject line Re: Bug#808281: tracker.debian.org: UpdateRepositoriesTask
error
has caused the Debian Bug report #808281,
regarding tracker.debian.org: UpdateRepositoriesTask error
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
808281: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=808281
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: tracker.debian.org
Severity: normal
Tags: patch
Dear Maintainer,
Trying to build a Tracker database from scratch, using the repositories fixture
as descibed in the documentation, I get the following:
2015-12-18 08:54:11,265 INFO: Starting task UpdateRepositoriesTask
2015-12-18 08:54:11,265 INFO: UpdateRepositoriesTask Updating apt's
cache
2015-12-18 08:54:15,313 INFO: UpdateRepositoriesTask Updating data from
Sources files
None
2015-12-18 08:54:15,313 ERROR: Problem processing a task.
Traceback (most recent call last):
File
"/home/tobald/packages/distro-tracker/distro_tracker/core/tasks.py", line 518,
in run
task.execute()
File
"/home/tobald/packages/distro-tracker/distro_tracker/core/tasks.py", line 548,
in wrapper
six.reraise(*sys.exc_info())
File
"/home/tobald/packages/distro-tracker/distro_tracker/core/tasks.py", line 545,
in wrapper
func(self)
File
"/home/tobald/packages/distro-tracker/distro_tracker/core/retrieve_data.py",
line 818, in execute
self.update_sources_files(updated_sources)
File
"/home/tobald/packages/distro-tracker/distro_tracker/core/retrieve_data.py",
line 584, in update_sources_files
repository.shorthand)
AttributeError: 'NoneType' object has no attribute 'shorthand'
The attached naïve patch fixes the issue here.
Cheers,
Christophe
-- System Information:
Debian Release: stretch/sid
APT prefers testing
APT policy: (900, 'testing'), (800, 'unstable'), (600, 'experimental'), (500,
'testing-updates')
Architecture: amd64 (x86_64)
Kernel: Linux 4.2.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=fr_BE.UTF-8, LC_CTYPE=fr_BE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
>From 898e7e20bbe33630e752b1a55ce72f57c6f32b80 Mon Sep 17 00:00:00 2001
From: Christophe Siraut <[email protected]>
Date: Fri, 18 Dec 2015 11:20:33 +0100
Subject: [PATCH] utils.AptCache: fix component_url
---
distro_tracker/core/utils/packages.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/distro_tracker/core/utils/packages.py b/distro_tracker/core/utils/packages.py
index 12c28a1..5321dd6 100644
--- a/distro_tracker/core/utils/packages.py
+++ b/distro_tracker/core/utils/packages.py
@@ -318,7 +318,7 @@ class AptCache(object):
for index_file in entry.index_files:
if os.path.basename(sources_file) in index_file.describe:
split_description = index_file.describe.split()
- component_url = split_description[0] + split_description[1]
+ component_url = split_description[0] + '/' + split_description[1]
break
for repository in Repository.objects.all():
if component_url in repository.component_urls:
--
2.6.4
--- End Message ---
--- Begin Message ---
Hi,
On Fri, 18 Dec 2015, Christophe Siraut wrote:
> The attached naïve patch fixes the issue here.
Thanks for the patch and the report. It looks like the apt_pkg module
changed its behaviour and now strips trailing slashes from the base
URL.
> @@ -318,7 +318,7 @@ class AptCache(object):
> for index_file in entry.index_files:
> if os.path.basename(sources_file) in index_file.describe:
> split_description = index_file.describe.split()
> - component_url = split_description[0] +
> split_description[1]
> + component_url = split_description[0] + '/' +
> split_description[1]
Blindly adding this slash will break systems with an older apt_pkg that
still keeps them (like jessie I guess otherwise the update would not work
on tracker.debian.org).
So I committed this:
--- a/distro_tracker/core/utils/packages.py
+++ b/distro_tracker/core/utils/packages.py
@@ -317,8 +317,9 @@ class AptCache(object):
for entry in sources_list.list:
for index_file in entry.index_files:
if os.path.basename(sources_file) in index_file.describe:
- split_description = index_file.describe.split()
- component_url = split_description[0] + split_description[1]
+ base_url, component, _ = index_file.describe.split(None, 2)
+ base_url = base_url.rstrip('/')
+ component_url = base_url + '/' + component
break
for repository in Repository.objects.all():
if component_url in repository.component_urls:
Cheers,
--
Raphaël Hertzog ◈ Debian Developer
Support Debian LTS: http://www.freexian.com/services/debian-lts.html
Learn to master Debian: http://debian-handbook.info/get/
--- End Message ---