[Touch-packages] [Bug 1375637] Re: Premature end of data in tag file line 247651 with libxml2

2015-11-20 Thread Quanah Gibson-Mount
Hi Sebastien,

The problem is I've found no consistent trigger for the bug.  I have 225
packages in my repository, built out for two different branches and two
oses (so 225x4).  createrepo just randomly corrupts when executing
'createrepo --update .' when adding a new source/binary rpm pair.  It is
trivially solvable (rm -rf repodata .repodata; createrepo .), but having
to briefly have a 100% repo outage is the problem.

I've not seen anything specific about the packages that would cause this
to occur.  It seems to be some type of race condition during the update
process, because of it complaining about " I/O error : No such file or
directory".

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to libxml2 in Ubuntu.
https://bugs.launchpad.net/bugs/1375637

Title:
  Premature end of data in tag file line 247651 with libxml2

Status in libxml2 package in Ubuntu:
  Confirmed

Bug description:
  Hello,

  I'm getting the following behaviour of createrepo on Ubuntu 14.04.1
  LTS with libxml2=2.9.1+dfsg1-3ubuntu4.3(trusty-updates/main) and
  libxml2=2.9.1+dfsg1-3ubuntu4(trusty/main).

  createrepo -g 
/home/jenkins/workspace/tmp/fuel_5_1_mirror/local_mirror/centos/os/x86_64/comps.xml
 \
-o 
/home/jenkins/workspace/tmp/fuel_5_1_mirror/local_mirror/centos/os/x86_64/ 
/home/jenkins/workspace/tmp/fuel_5_1_mirror/local_mirror/centos/os/x86_64/
  I/O error : No such file or directory

  (process:29830): GLib-WARNING **: GError set over the top of a previous 
GError or uninitialized memory.
  This indicates a bug in someone's code. You must ensure an error is NULL 
before it's set.
  The overwriting error message was: Parsing filelists.xml error: Premature end 
of data in tag package line 246828

  
  (process:29830): GLib-WARNING **: GError set over the top of a previous 
GError or uninitialized memory.
  This indicates a bug in someone's code. You must ensure an error is NULL 
before it's set.
  The overwriting error message was: Parsing filelists.xml error: Premature end 
of data in tag filelists line 2

  Spawning worker 0 with 54 pkgs
  Spawning worker 1 with 54 pkgs
  Spawning worker 2 with 54 pkgs
  Spawning worker 3 with 54 pkgs
  Spawning worker 4 with 54 pkgs
  Spawning worker 5 with 54 pkgs
  Spawning worker 6 with 54 pkgs
  Spawning worker 7 with 54 pkgs
  Spawning worker 8 with 54 pkgs
  Spawning worker 9 with 54 pkgs
  Spawning worker 10 with 53 pkgs
  Spawning worker 11 with 53 pkgs
  Spawning worker 12 with 53 pkgs
  Spawning worker 13 with 53 pkgs
  Spawning worker 14 with 53 pkgs
  Spawning worker 15 with 53 pkgs
  Spawning worker 16 with 53 pkgs
  Spawning worker 17 with 53 pkgs
  Spawning worker 18 with 53 pkgs
  Spawning worker 19 with 53 pkgs
  Spawning worker 20 with 53 pkgs
  Spawning worker 21 with 53 pkgs
  Spawning worker 22 with 53 pkgs
  Spawning worker 23 with 53 pkgs
  Workers Finished
  Saving Primary metadata
  Saving file lists metadata
  Saving other metadata
  Generating sqlite DBs
  Traceback (most recent call last):
File "/usr/share/createrepo/genpkgmetadata.py", line 308, in 
  main(sys.argv[1:])
File "/usr/share/createrepo/genpkgmetadata.py", line 280, in main
  mdgen.doRepoMetadata()
File "/usr/lib/python2.7/dist-packages/createrepo/__init__.py", line 999, 
in doRepoMetadata
  rp.getFilelists(complete_path, csum)
File "/usr/lib/python2.7/dist-packages/sqlitecachec.py", line 55, in 
getFilelists
  self.repoid))
  TypeError: Parsing filelists.xml error: Premature end of data in tag file 
line 247651


  Problem fixes by installing libxml2=2.9.1+dfsg1 from debian sid.
  Comparing patchsets in debian package sources between  2.9.1+dfsg1 and 
2.9.1+dfsg1-3ubuntu4.3 I see in debian package much more patches, I suppose one 
of them helps in my problem:

  2.9.1+dfsg1-3ubuntu4.3:

  0001-modify-xml2-config-and-pkgconfig-behaviour.patch
  0002-Fix-an-error-in-xmlCleanupParser.patch
  0003-Fix-missing-break-on-last-function-for-attributes.patch
  0004-xmllint-memory-should-fail-on-empty-files.patch
  0005-properly-quote-the-namespace-uris-written-out-during.patch
  0006-Fix-a-parsing-bug-on-non-ascii-element-and-CR-LF-usa.patch
  0006-fix-python-multiarch-includes.patch
  0007-Fix-XPath-optimization-with-predicates.patch
  CVE-2014-0191.patch
  lp1321869.patch
  xmllint_pretty.patch

  
  2.9.1+dfsg1: 

  0001-modify-xml2-config-and-pkgconfig-behaviour.patch
  0002-fix-python-multiarch-includes.patch
  0003-Fix-an-error-in-xmlCleanupParser.patch
  0004-Fix-missing-break-on-last-function-for-attributes.patch
  0005-xmllint-memory-should-fail-on-empty-files.patch
  0006-properly-quote-the-namespace-uris-written-out-during.patch
  0007-Fix-a-parsing-bug-on-non-ascii-element-and-CR-LF-usa.patch
  0008-missing-else-in-xlink.c.patch
  0009-Catch-malloc-error-and-exit-accordingly.patch
  0010-Fix-handling-of-mmap-errors.patch
  0011-Avoid-crash-if-allocation-fails.patch
  0012-Fix-a

[Touch-packages] [Bug 1375637] Re: Premature end of data in tag file line 247651 with libxml2

2015-11-19 Thread Quanah Gibson-Mount
When will this be fixed?  I'm currently using a single server to host
both debs and rpms, and this bug triggers fairly frequently, causing me
to have to take down my repo and regenerate it.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to libxml2 in Ubuntu.
https://bugs.launchpad.net/bugs/1375637

Title:
  Premature end of data in tag file line 247651 with libxml2

Status in libxml2 package in Ubuntu:
  Confirmed

Bug description:
  Hello,

  I'm getting the following behaviour of createrepo on Ubuntu 14.04.1
  LTS with libxml2=2.9.1+dfsg1-3ubuntu4.3(trusty-updates/main) and
  libxml2=2.9.1+dfsg1-3ubuntu4(trusty/main).

  createrepo -g 
/home/jenkins/workspace/tmp/fuel_5_1_mirror/local_mirror/centos/os/x86_64/comps.xml
 \
-o 
/home/jenkins/workspace/tmp/fuel_5_1_mirror/local_mirror/centos/os/x86_64/ 
/home/jenkins/workspace/tmp/fuel_5_1_mirror/local_mirror/centos/os/x86_64/
  I/O error : No such file or directory

  (process:29830): GLib-WARNING **: GError set over the top of a previous 
GError or uninitialized memory.
  This indicates a bug in someone's code. You must ensure an error is NULL 
before it's set.
  The overwriting error message was: Parsing filelists.xml error: Premature end 
of data in tag package line 246828

  
  (process:29830): GLib-WARNING **: GError set over the top of a previous 
GError or uninitialized memory.
  This indicates a bug in someone's code. You must ensure an error is NULL 
before it's set.
  The overwriting error message was: Parsing filelists.xml error: Premature end 
of data in tag filelists line 2

  Spawning worker 0 with 54 pkgs
  Spawning worker 1 with 54 pkgs
  Spawning worker 2 with 54 pkgs
  Spawning worker 3 with 54 pkgs
  Spawning worker 4 with 54 pkgs
  Spawning worker 5 with 54 pkgs
  Spawning worker 6 with 54 pkgs
  Spawning worker 7 with 54 pkgs
  Spawning worker 8 with 54 pkgs
  Spawning worker 9 with 54 pkgs
  Spawning worker 10 with 53 pkgs
  Spawning worker 11 with 53 pkgs
  Spawning worker 12 with 53 pkgs
  Spawning worker 13 with 53 pkgs
  Spawning worker 14 with 53 pkgs
  Spawning worker 15 with 53 pkgs
  Spawning worker 16 with 53 pkgs
  Spawning worker 17 with 53 pkgs
  Spawning worker 18 with 53 pkgs
  Spawning worker 19 with 53 pkgs
  Spawning worker 20 with 53 pkgs
  Spawning worker 21 with 53 pkgs
  Spawning worker 22 with 53 pkgs
  Spawning worker 23 with 53 pkgs
  Workers Finished
  Saving Primary metadata
  Saving file lists metadata
  Saving other metadata
  Generating sqlite DBs
  Traceback (most recent call last):
File "/usr/share/createrepo/genpkgmetadata.py", line 308, in 
  main(sys.argv[1:])
File "/usr/share/createrepo/genpkgmetadata.py", line 280, in main
  mdgen.doRepoMetadata()
File "/usr/lib/python2.7/dist-packages/createrepo/__init__.py", line 999, 
in doRepoMetadata
  rp.getFilelists(complete_path, csum)
File "/usr/lib/python2.7/dist-packages/sqlitecachec.py", line 55, in 
getFilelists
  self.repoid))
  TypeError: Parsing filelists.xml error: Premature end of data in tag file 
line 247651


  Problem fixes by installing libxml2=2.9.1+dfsg1 from debian sid.
  Comparing patchsets in debian package sources between  2.9.1+dfsg1 and 
2.9.1+dfsg1-3ubuntu4.3 I see in debian package much more patches, I suppose one 
of them helps in my problem:

  2.9.1+dfsg1-3ubuntu4.3:

  0001-modify-xml2-config-and-pkgconfig-behaviour.patch
  0002-Fix-an-error-in-xmlCleanupParser.patch
  0003-Fix-missing-break-on-last-function-for-attributes.patch
  0004-xmllint-memory-should-fail-on-empty-files.patch
  0005-properly-quote-the-namespace-uris-written-out-during.patch
  0006-Fix-a-parsing-bug-on-non-ascii-element-and-CR-LF-usa.patch
  0006-fix-python-multiarch-includes.patch
  0007-Fix-XPath-optimization-with-predicates.patch
  CVE-2014-0191.patch
  lp1321869.patch
  xmllint_pretty.patch

  
  2.9.1+dfsg1: 

  0001-modify-xml2-config-and-pkgconfig-behaviour.patch
  0002-fix-python-multiarch-includes.patch
  0003-Fix-an-error-in-xmlCleanupParser.patch
  0004-Fix-missing-break-on-last-function-for-attributes.patch
  0005-xmllint-memory-should-fail-on-empty-files.patch
  0006-properly-quote-the-namespace-uris-written-out-during.patch
  0007-Fix-a-parsing-bug-on-non-ascii-element-and-CR-LF-usa.patch
  0008-missing-else-in-xlink.c.patch
  0009-Catch-malloc-error-and-exit-accordingly.patch
  0010-Fix-handling-of-mmap-errors.patch
  0011-Avoid-crash-if-allocation-fails.patch
  0012-Fix-a-possible-NULL-dereference.patch
  0013-Clear-up-a-potential-NULL-dereference.patch
  0014-Fix-XPath-optimization-with-predicates.patch
  0015-xmllint-pretty-crashed-without-following-numeric-arg.patch
  0016-Fix-potential-NULL-pointer-dereferences-in-regexp-co.patch
  0017-Fix-a-potential-NULL-dereference-in-tree-code.patch
  0018-Fix-pointer-dereferenced-before-null-check.patch
  0019-Fix-a-bug-loading-some-compressed-files.patch
  0020-Avoid-a-possibility-

[Touch-packages] [Bug 1003633] Re: Escape plus character in apt HTTP requests to work around Amazon S3 bug

2015-11-03 Thread Quanah Gibson-Mount
I filed https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1512845 for
the https issue

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to apt in Ubuntu.
https://bugs.launchpad.net/bugs/1003633

Title:
  Escape plus character in apt HTTP requests to work around Amazon S3
  bug

Status in apt package in Ubuntu:
  Fix Released

Bug description:
  
  Amazon S3 performs incorrect query-string un-escaping on URLs and improperly 
converts the plus ('+') character to a space (' ') when processing incoming GET 
requests for files.  This causes apt-get to get HTTP 404 errors when 
downloading packages from S3-hosted mirrors which include a + character in the 
name of the package.

  For more background info, see:
  https://forums.aws.amazon.com/thread.jspa?threadID=55746

  One possibly solution is to change the call to QuoteString in http.cc
  to include '+' in the character set, which would escape the plus
  character to the %2B form, which will be properly processed by Amazon
  S3.

  Thanks,
  Doug

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1003633/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp


[Touch-packages] [Bug 1512845] [NEW] Escape plus character in apt HTTPS requests to work around Amazon S3 bug

2015-11-03 Thread Quanah Gibson-Mount
Public bug reported:

As noted in bug#1003633, S3 is broken when a + sign exists unless it is
escaped.  This was fixed in 2013 for http based repos.  However, it is
still broken for https based repositories.

apt-get install zimbra-openssl
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  zimbra-openssl-lib
The following NEW packages will be installed:
  zimbra-openssl zimbra-openssl-lib
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,324 kB of archives.
After this operation, 6,313 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 https://repo.zimbra.com/apt/87/ trusty/zimbra zimbra-openssl-lib amd64 
1.0.1p-1zimbra8.7b1+14.04 [828 kB]
Err https://repo.zimbra.com/apt/87/ trusty/zimbra zimbra-openssl-lib amd64 
1.0.1p-1zimbra8.7b1+14.04
  HttpError403
Get:2 https://repo.zimbra.com/apt/87/ trusty/zimbra zimbra-openssl amd64 
1.0.1p-1zimbra8.7b1+14.04 [497 kB]
Err https://repo.zimbra.com/apt/87/ trusty/zimbra zimbra-openssl amd64 
1.0.1p-1zimbra8.7b1+14.04
  HttpError403
E: Failed to fetch 
https://repo.zimbra.com/apt/87/pool/zimbra/z/zimbra-openssl/zimbra-openssl-lib_1.0.1p-1zimbra8.7b1+14.04_amd64.deb
  HttpError403

E: Failed to fetch https://repo.zimbra.com/apt/87/pool/zimbra/z/zimbra-
openssl/zimbra-openssl_1.0.1p-1zimbra8.7b1+14.04_amd64.deb  HttpError403

E: Unable to fetch some archives, maybe run apt-get update or try with
--fix-missing?


Escaping the + sign fixes the issue when testing with wget:

root@zre-ldap001:/home/quanah# wget 
https://repo.zimbra.com/apt/87/pool/zimbra/z/zimbra-openssl/zimbra-openssl_1.0.1p-1zimbra8.7b1%2B14.04_amd64.deb
--2015-11-03 13:11:03--  
https://repo.zimbra.com/apt/87/pool/zimbra/z/zimbra-openssl/zimbra-openssl_1.0.1p-1zimbra8.7b1%2B14.04_amd64.deb
Resolving repo.zimbra.com (repo.zimbra.com)... 54.230.4.69, 54.230.6.152, 
54.192.4.217, ...
Connecting to repo.zimbra.com (repo.zimbra.com)|54.230.4.69|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 496784 (485K) [application/x-debian-package]
Saving to: ‘zimbra-openssl_1.0.1p-1zimbra8.7b1+14.04_amd64.deb’

100%[===>]
496,784 1.62MB/s   in 0.3s

2015-11-03 13:11:04 (1.62 MB/s) - ‘zimbra-openssl_1.0.1p-
1zimbra8.7b1+14.04_amd64.deb’ saved [496784/496784]

** Affects: apt (Ubuntu)
 Importance: Undecided
 Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to apt in Ubuntu.
https://bugs.launchpad.net/bugs/1512845

Title:
  Escape plus character in apt HTTPS requests to work around Amazon S3
  bug

Status in apt package in Ubuntu:
  New

Bug description:
  As noted in bug#1003633, S3 is broken when a + sign exists unless it
  is escaped.  This was fixed in 2013 for http based repos.  However, it
  is still broken for https based repositories.

  apt-get install zimbra-openssl
  Reading package lists... Done
  Building dependency tree
  Reading state information... Done
  The following extra packages will be installed:
zimbra-openssl-lib
  The following NEW packages will be installed:
zimbra-openssl zimbra-openssl-lib
  0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
  Need to get 1,324 kB of archives.
  After this operation, 6,313 kB of additional disk space will be used.
  Do you want to continue? [Y/n] y
  Get:1 https://repo.zimbra.com/apt/87/ trusty/zimbra zimbra-openssl-lib amd64 
1.0.1p-1zimbra8.7b1+14.04 [828 kB]
  Err https://repo.zimbra.com/apt/87/ trusty/zimbra zimbra-openssl-lib amd64 
1.0.1p-1zimbra8.7b1+14.04
HttpError403
  Get:2 https://repo.zimbra.com/apt/87/ trusty/zimbra zimbra-openssl amd64 
1.0.1p-1zimbra8.7b1+14.04 [497 kB]
  Err https://repo.zimbra.com/apt/87/ trusty/zimbra zimbra-openssl amd64 
1.0.1p-1zimbra8.7b1+14.04
HttpError403
  E: Failed to fetch 
https://repo.zimbra.com/apt/87/pool/zimbra/z/zimbra-openssl/zimbra-openssl-lib_1.0.1p-1zimbra8.7b1+14.04_amd64.deb
  HttpError403

  E: Failed to fetch https://repo.zimbra.com/apt/87/pool/zimbra/z
  /zimbra-openssl/zimbra-openssl_1.0.1p-1zimbra8.7b1+14.04_amd64.deb
  HttpError403

  E: Unable to fetch some archives, maybe run apt-get update or try with
  --fix-missing?

  
  Escaping the + sign fixes the issue when testing with wget:

  root@zre-ldap001:/home/quanah# wget 
https://repo.zimbra.com/apt/87/pool/zimbra/z/zimbra-openssl/zimbra-openssl_1.0.1p-1zimbra8.7b1%2B14.04_amd64.deb
  --2015-11-03 13:11:03--  
https://repo.zimbra.com/apt/87/pool/zimbra/z/zimbra-openssl/zimbra-openssl_1.0.1p-1zimbra8.7b1%2B14.04_amd64.deb
  Resolving repo.zimbra.com (repo.zimbra.com)... 54.230.4.69, 54.230.6.152, 
54.192.4.217, ...
  Connecting to repo.zimbra.com (repo.zimbra.com)|54.230.4.69|:443... connected.
  HTTP request sent, aw

[Touch-packages] [Bug 1003633] Re: Escape plus character in apt HTTP requests to work around Amazon S3 bug

2015-11-03 Thread Quanah Gibson-Mount
I would note this is broken for https based repositories still.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to apt in Ubuntu.
https://bugs.launchpad.net/bugs/1003633

Title:
  Escape plus character in apt HTTP requests to work around Amazon S3
  bug

Status in apt package in Ubuntu:
  Fix Released

Bug description:
  
  Amazon S3 performs incorrect query-string un-escaping on URLs and improperly 
converts the plus ('+') character to a space (' ') when processing incoming GET 
requests for files.  This causes apt-get to get HTTP 404 errors when 
downloading packages from S3-hosted mirrors which include a + character in the 
name of the package.

  For more background info, see:
  https://forums.aws.amazon.com/thread.jspa?threadID=55746

  One possibly solution is to change the call to QuoteString in http.cc
  to include '+' in the character set, which would escape the plus
  character to the %2B form, which will be properly processed by Amazon
  S3.

  Thanks,
  Doug

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1003633/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp


[Touch-packages] [Bug 1442775] [NEW] apt-get --ignore-missing doesn't ignore missing packages

2015-04-10 Thread Quanah Gibson-Mount
Public bug reported:

The man page for apt-get states:

   -m, --ignore-missing, --fix-missing
   Ignore missing packages; if packages cannot be retrieved or fail the 
integrity check after retrieval (corrupted package files), hold back those 
packages and handle the
   result. Use of this option together with -f may produce an error in 
some situations. If a package is selected for installation (particularly if it 
is mentioned on the
   command line) and it could not be downloaded then it will be 
silently held back. Configuration Item: APT::Get::Fix-Missing.

However, when removing or purging packages, it does /not/ actually
ignore missing packages:

build@ub14test:~/p4/zimbra/main/ThirdParty/openldap$ sudo apt-get purge -y 
--ignore-missing zimbra-openssl-lib
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package zimbra-openssl-lib
build@ub14test:~/p4/zimbra/main/ThirdParty/openldap$ echo $?
100

This causes some pain when using apt-get in a Makefile and wanting to
ensure custom packages have been removed.

dpkg handles this correctly:

build@ub14test:~/p4/zimbra/main/ThirdParty/openldap$ sudo dpkg --purge 
zimbra-openssl-lib
dpkg: warning: ignoring request to remove zimbra-openssl-lib which isn't 
installed
build@ub14test:~/p4/zimbra/main/ThirdParty/openldap$ echo $?
0

however you then lose dependency tracking.

** Affects: apt (Ubuntu)
 Importance: Undecided
 Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to apt in Ubuntu.
https://bugs.launchpad.net/bugs/1442775

Title:
  apt-get --ignore-missing doesn't ignore missing packages

Status in apt package in Ubuntu:
  New

Bug description:
  The man page for apt-get states:

 -m, --ignore-missing, --fix-missing
 Ignore missing packages; if packages cannot be retrieved or fail 
the integrity check after retrieval (corrupted package files), hold back those 
packages and handle the
 result. Use of this option together with -f may produce an error 
in some situations. If a package is selected for installation (particularly if 
it is mentioned on the
 command line) and it could not be downloaded then it will be 
silently held back. Configuration Item: APT::Get::Fix-Missing.

  However, when removing or purging packages, it does /not/ actually
  ignore missing packages:

  build@ub14test:~/p4/zimbra/main/ThirdParty/openldap$ sudo apt-get purge -y 
--ignore-missing zimbra-openssl-lib
  Reading package lists... Done
  Building dependency tree
  Reading state information... Done
  E: Unable to locate package zimbra-openssl-lib
  build@ub14test:~/p4/zimbra/main/ThirdParty/openldap$ echo $?
  100

  This causes some pain when using apt-get in a Makefile and wanting to
  ensure custom packages have been removed.

  dpkg handles this correctly:

  build@ub14test:~/p4/zimbra/main/ThirdParty/openldap$ sudo dpkg --purge 
zimbra-openssl-lib
  dpkg: warning: ignoring request to remove zimbra-openssl-lib which isn't 
installed
  build@ub14test:~/p4/zimbra/main/ThirdParty/openldap$ echo $?
  0

  however you then lose dependency tracking.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1442775/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp