Imported Upstream version 1.0.1

This commit is contained in:
Sébastien Delafond
2017-07-04 14:45:08 +02:00
parent 1ee35b841d
commit 4f12259bc0
5531 changed files with 1834599 additions and 742844 deletions
+1
View File
@@ -0,0 +1 @@
System test for aptly
+91
View File
@@ -0,0 +1,91 @@
from lib import BaseTest
import time
import json
import random
import string
import os
import inspect
import shutil
try:
import requests
except ImportError:
requests = None
class APITest(BaseTest):
"""
BaseTest + testing aptly API
"""
aptly_server = None
base_url = "127.0.0.1:8765"
def fixture_available(self):
return super(APITest, self).fixture_available() and requests is not None
def prepare(self):
if APITest.aptly_server is None:
super(APITest, self).prepare()
APITest.aptly_server = self._start_process("aptly api serve -no-lock -listen=%s" % (self.base_url),)
time.sleep(1)
if os.path.exists(os.path.join(os.environ["HOME"], ".aptly", "upload")):
shutil.rmtree(os.path.join(os.environ["HOME"], ".aptly", "upload"))
def run(self):
pass
def get(self, uri, *args, **kwargs):
return requests.get("http://%s%s" % (self.base_url, uri), *args, **kwargs)
def post(self, uri, *args, **kwargs):
if "json" in kwargs:
kwargs["data"] = json.dumps(kwargs.pop("json"))
if not "headers" in kwargs:
kwargs["headers"] = {}
kwargs["headers"]["Content-Type"] = "application/json"
return requests.post("http://%s%s" % (self.base_url, uri), *args, **kwargs)
def put(self, uri, *args, **kwargs):
if "json" in kwargs:
kwargs["data"] = json.dumps(kwargs.pop("json"))
if not "headers" in kwargs:
kwargs["headers"] = {}
kwargs["headers"]["Content-Type"] = "application/json"
return requests.put("http://%s%s" % (self.base_url, uri), *args, **kwargs)
def delete(self, uri, *args, **kwargs):
if "json" in kwargs:
kwargs["data"] = json.dumps(kwargs.pop("json"))
if not "headers" in kwargs:
kwargs["headers"] = {}
kwargs["headers"]["Content-Type"] = "application/json"
return requests.delete("http://%s%s" % (self.base_url, uri), *args, **kwargs)
def upload(self, uri, *filenames, **kwargs):
upload_name = kwargs.pop("upload_name", None)
directory = kwargs.pop("directory", "files")
assert kwargs == {}
files = {}
for filename in filenames:
fp = open(os.path.join(os.path.dirname(inspect.getsourcefile(BaseTest)), directory, filename), "rb")
if upload_name is not None:
upload_filename = upload_name
else:
upload_filename = filename
files[upload_filename] = (upload_filename, fp)
return self.post(uri, files=files)
@classmethod
def shutdown_class(cls):
if cls.aptly_server is not None:
cls.aptly_server.terminate()
cls.aptly_server.wait()
cls.aptly_server = None
def random_name(self):
return ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(15))
+30
View File
@@ -0,0 +1,30 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Format: 1.0
Source: hardlink
Binary: hardlink
Architecture: any
Version: 0.2.1
Maintainer: Julian Andres Klode <jak@debian.org>
Homepage: http://jak-linux.org/projects/hardlink/
Standards-Version: 3.9.3
Vcs-Browser: http://git.debian.org/?p=users/jak/hardlink.git;a=summary
Vcs-Git: git://git.debian.org/git/users/jak/hardlink.git
Build-Depends: debhelper (>= 9), pkg-config, libpcre3-dev
Package-List:
hardlink deb utils optional
Checksums-Sha1:
6e95b8cba450343ab4dc01902e521f29fbd87ac2 12516 hardlink_0.2.1.tar.gz
Checksums-Sha256:
4df0adce005526a1f0e1b38171ddb1f017faae9205f5b1c6dfb0fb4207767271 12516 hardlink_0.2.1.tar.gz
Files:
8e2caa4d82f228bac08dc9a38bc6edb3 12516 hardlink_0.2.1.tar.gz
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
iEYEARECAAYFAlUFwywACgkQIdu4nBbbPm2M5wCg0pHD8adE1rY1/DpZ4efRuMXY
MPMAni4xUtyAnwIvkk3MCE2rFrGP3L78
=5CU1
-----END PGP SIGNATURE-----
Binary file not shown.
@@ -0,0 +1,39 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Format: 1.8
Date: Sat, 12 May 2014 12:57:02 +0200
Source: hardlink
Binary: hardlink
Architecture: source amd64
Version: 0.2.1
Distribution: unstable
Urgency: low
Maintainer: Julian Andres Klode <jak@debian.org>
Changed-By: Aptly Tester (don't use it) <test@aptly.info>
Description:
hardlink - Hardlinks multiple copies of the same file
Changes:
hardlink (0.2.1) unstable; urgency=low
.
* Update just to try it out :)
Checksums-Sha1:
ff306b8f923653b78e00c45ebbc6c1c734859cdf 949 hardlink_0.2.1.dsc
6e95b8cba450343ab4dc01902e521f29fbd87ac2 12516 hardlink_0.2.1.tar.gz
1ac0e962854dff46f14fa7943746660d3cad1679 12468 hardlink_0.2.1_amd64.deb
Checksums-Sha256:
c0d7458aa2ca3886cd6885f395a289efbc9a396e6765cbbca45f51fde859ea70 949 hardlink_0.2.1.dsc
4df0adce005526a1f0e1b38171ddb1f017faae9205f5b1c6dfb0fb4207767271 12516 hardlink_0.2.1.tar.gz
668399580590bf1ffcd9eb161b6e574751e15f71820c6e08245dac7c5111a0ee 12468 hardlink_0.2.1_amd64.deb
Files:
4efce26825af5842f43961096dd890b3 949 utils optional hardlink_0.2.1.dsc
8e2caa4d82f228bac08dc9a38bc6edb3 12516 utils optional hardlink_0.2.1.tar.gz
2081e20b36c47f82811c25841cc0e41b 12468 utils optional hardlink_0.2.1_amd64.deb
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
iEYEARECAAYFAlUFwywACgkQIdu4nBbbPm1DLACgwW4V8qLQC/QHC/7+t3Iq47Ez
eesAn3ZYLQvLYRw3wPTKVAPI+AW6Fjxi
=hRBo
-----END PGP SIGNATURE-----
Binary file not shown.
+7
View File
@@ -0,0 +1,7 @@
// no groups, no rules => deny all
{
"groups": {
},
"rules": [
]
}
+14
View File
@@ -0,0 +1,14 @@
{
"groups": {
"developers": ["21DBB89C16DB3E6D", "37E1C17570096AD1"],
},
"rules": [
{ "condition": "Source (dangerous) | Source (kernel)",
"deny": ["*"],
},
{ "condition": "Source (hardlink)",
"allow": ["developers", "admins"],
}
]
}
+1
View File
@@ -0,0 +1 @@
{
+14
View File
@@ -0,0 +1,14 @@
{
"groups": {
"developers": ["21DBB89C16DB3E6D", "37E1C17570096AD1"],
},
"rules": [
{ "condition": "Source (dangerous) | Source (kernel)",
"deny": ["*"],
},
{ "condition": "Source (hardlink",
"allow": ["developers", "admins"],
}
]
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+19
View File
@@ -0,0 +1,19 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.5 (GNU/Linux)
mQGiBEeWWZoRBADvY6hFi/SwuwZRLbT2yrW/l+/0zsNXusK/s2K6jjA3i5oDWwG+
wky3ef+9au2qaxd2spt8iq0x5ph8aI/1YEkdFbHe/dfItcc7NAWl2RTworogkz+R
4leJNU3tQJNJQYml33LQyNhgQsmMvmZ6xP4NxJZIrWT9nZxiGexb24uTGwCgkOWV
CpqucQTHnow1ok75gVMRHdkD/3EOtaBAkj5gECBc2WnXk+UzCYBjV1QXmBaLy4sq
vIq0b3ja+zBJzc2mAviWgNuo2h56dYEsBLaQjkEdJKUEGdfiRkDZQjZEPMrT1HZD
L2oYzR4xlwSTqR3dtBzXbLhIvfRUNw1CuNVQG8I+r7aBEje7JAVH8X4poGV3oCBh
faXDA/0a/01gn1d58uSLwDKmBQpUngX/K1U2PchUnJd88DSRqIpzX1Cwk2iu9lJS
ukE9FV2FNb4heKS2HRXyEz/kEONbSC4G1jSzl0keKrc8RwaX2uTolDGqpyOkXSd+
WHUcnbzQ5MLahLB3QOocrLc0w6wwPKk2fA5F51mckMUgDtdQ2rQ8aG9tZTptb25r
ZXlpcSBPQlMgUHJvamVjdCA8aG9tZTptb25rZXlpcUBidWlsZC5vcGVuc3VzZS5v
cmc+iGYEExECACYFAk/y8O8CGwMFCQx7R1UGCwkIBwMCBBUCCAMEFgIDAQIeAQIX
gAAKCRCooNd/3/r8Q3MZAJ45GODOQT+bFI8Zjq0C93L7oMxptQCgh/lNR+pYmUcT
hb1PQ20qsfV5gJuIRgQTEQIABgUCR5ZZmgAKCRA7MBG3a51lI0jzAJsHZxWi1Db3
J76+37rmZ/2riTo93QCfS5pFjOdqaRPjbfb6bCHLedhhHlM=
=p7/n
-----END PGP PUBLIC KEY BLOCK-----
+112
View File
@@ -0,0 +1,112 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.9 (GNU/Linux)
mQGiBEmFQG0RBACXScOxb6BTV6rQE/tcJopAEWsdvmE0jNIRWjDDzB7HovX6Anrq
n7+Vq4spAReSFbBVaYiiOx2cGDymj2dyx2i9NAI/9/cQXJOU+RPdDzHVlO1Edksp
5rKn0cGPWY5sLxRf8s/tO5oyKgwCVgTaB5a8gBHaoGms3nNC4YYf+lqlpwCgjbti
3u1iMIx6Rs+dG0+xw1oi5FUD/2tLJMx7vCUQHhPRupeYFPoD8vWpcbGb5nHfHi4U
8/x4qZspAIwvXtGw0UBHildGpqe9onp22Syadn/7JgMWhHoFw5Ke/rTMlxREL7pa
TiXuagD2G84tjJ66oJP1FigslJzrnG61y85V7THL61OFqDg6IOP4onbsdqHby4VD
zZj9A/9uQxIn5250AGLNpARStAcNPJNJbHOQuv0iF3vnG8uO7/oscB0TYb8/juxr
hs9GdSN0U0BxENR+8KWy5lttpqLMKlKRknQYy34UstQiyFgAQ9Epncu9uIbVDgWt
y7utnqXN033EyYkcWx5EhLAgHkC7wSzeSWABV3JSXN7CeeOif7QiS29oc3VrZSBL
YXdhZ3VjaGkgPGtrQGtvaHN1a2Uub3JnPohjBBMRAgAjAhsDBgsJCAcDAgQVAggD
BBYCAwECHgECF4AFAko/7vYCGQEACgkQm30y8tUFguabhgCgi54IQR4rpJZ/uUHe
ZB879zUWTQwAniQDBO+Zly7Fsvm0Mcvqvl02UzxCtC1Lb2hzdWtlIEthd2FndWNo
aSA8a29oc3VrZS5rYXdhZ3VjaGlAc3VuLmNvbT6IYAQTEQIAIAUCSj/qbQIbAwYL
CQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEJt9MvLVBYLm38gAoIGR2+TQeJaCeEa8
CQhZYzDoiJkQAJ0cpmD+0VA+leOAr5LEccNVd70Z/dHNy83JARAAAQEAAAAAAAAA
AAAAAAD/2P/gABBKRklGAAEBAQBgAGAAAP/hAGBFeGlmAABJSSoACAAAAAQAMQEC
ABkAAAA+AAAAEFEBAAEAAAABQ5AAEVEEAAEAAAASCwAAElEEAAEAAAASCwAAAAAA
AE1hY3JvbWVkaWEgRmlyZXdvcmtzIDQuMAAA/9sAQwAIBgYHBgUIBwcHCQkICgwU
DQwLCwwZEhMPFB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy
/9sAQwEJCQkMCwwYDQ0YMiEcITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy
MjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgArgCWAwEiAAIRAQMRAf/EAB8AAAEF
AQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQEC
AwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkq
NDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqS
k5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk
5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkK
C//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGx
wQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFla
Y2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2
t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQAC
EQMRAD8A9wEj/wB9vzpfMf8Avt+dRinCpGSeY398/nS72/vH86YKBQBJvb+8fzpd
7f3j+dMFLQA/e394/nS7j6n86ZSimA7cfU07cfU1HnFOFADtx9aXJ9TTKUUxD8n1
pc+9Mp1AC5ozSUtAC0maKKADNFJ2ooAoCnCmilzWZQ6lFJSimAopaQUtAC54rOvN
dsLCTZPPGrdwXAry/wCKHxXfRppND0Mq16Bie5PIi9lHdv5V8/X+rXt/O8tzcyyy
MclnYkk0avYdl1PqPxT8VtH8NwqwzdXEuSkaHoB61wjftCXhlzHosBjHZpSCa8PW
O7uhuAkcDueaaYbhOqMMe1L5lcvWx9U+FPjJ4f8AEU0dpdhtLvXOFWdgY3PoH6fg
cV6MrZGa+EklIOJOPqK9i+G3xem0TytI8QSSXGnHCQXJO57f2Pqn6indrclq+x9G
5pwNVoLiO4hSaGRZIpFDKynIYHuKmBqyB+aWmg0uaAFopKKAFoozRQBQFLSUorMo
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
=cjdq
-----END PGP PUBLIC KEY BLOCK-----
+13
View File
@@ -0,0 +1,13 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1
mI0ES+RoaQEEAOQ6QF8zfqHbXJ+ekkXRm3uP5TvVwp0loa7S2u3xYjSDKzRz4nSS
aD6coQ8wVPw4ROZLNnDtkbv9dDK9Mm7Uke5A8QkUXQU4v3/qFgjFT+au64iBYDRO
FqAFFmZZdI0WCRxKJLiLal5H4cWnAoFBe5JdhAR8ZON2lm7vuKndVeg7ABEBAAG0
DUxhdW5jaHBhZCBzaW2ItgQTAQIAIAUCS+RoaQIbAwYLCQgHAwIEFQIIAwQWAgMB
Ah4BAheAAAoJEKUnmpc7H1bAJAED/0hbSk3nV9D5VdeLrkuyrAINTO801I1AZBdC
lmqtFiFFsYE5jMeAFYk75BLS2aa9c1cbNh5Pwg7Ujg8+4/NOmPjFjvqONn0sRebJ
FVwsedeQx+YTjCvy4vnviZmY+6ieixrgvrqG2+xPncuZmjppeKgMzPenPC178crJ
hXttP13F
=fI+d
-----END PGP PUBLIC KEY BLOCK-----
+19
View File
@@ -0,0 +1,19 @@
Format: 1.0
Source: pyspi
Binary: python-at-spi
Architecture: any
Version: 0.6.1-1.4
Maintainer: Jose Carlos Garcia Sogo <jsogo@debian.org>
Homepage: http://people.redhat.com/zcerza/dogtail
Standards-Version: 3.7.3
Vcs-Svn: svn://svn.tribulaciones.org/srv/svn/pyspi/trunk
Build-Depends: debhelper (>= 5), cdbs, libatspi-dev, python-pyrex, python-support (>= 0.4), python-all-dev, libx11-dev
Checksums-Sha1:
9694b80acc171c0a5bc99f707933864edfce555e 29063 pyspi_0.6.1.orig.tar.gz
95a2468e4bbce730ba286f2211fa41861b9f1d90 3456 pyspi_0.6.1-1.3.diff.gz
Checksums-Sha256:
64069ee828c50b1c597d10a3fefbba279f093a4723965388cdd0ac02f029bfb9 29063 pyspi_0.6.1.orig.tar.gz
2e770b28df948f3197ed0b679bdea99f3f2bf745e9ddb440c677df9c3aeaee3c 3456 pyspi_0.6.1-1.3.diff.gz
Files:
def336bd566ea688a06ec03db7ccf1f4 29063 pyspi_0.6.1.orig.tar.gz
22ff26db69b73d3438fdde21ab5ba2f1 3456 pyspi_0.6.1-1.3.diff.gz
Binary file not shown.
+40
View File
@@ -0,0 +1,40 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Format: 1.0
Source: pyspi
Binary: python-at-spi
Architecture: any
Version: 0.6.1-1.3
Maintainer: Jose Carlos Garcia Sogo <jsogo@debian.org>
Homepage: http://people.redhat.com/zcerza/dogtail
Standards-Version: 3.7.3
Vcs-Svn: svn://svn.tribulaciones.org/srv/svn/pyspi/trunk
Build-Depends: debhelper (>= 5), cdbs, libatspi-dev, python-pyrex, python-support (>= 0.4), python-all-dev, libx11-dev
Checksums-Sha1:
9694b80acc171c0a5bc99f707933864edfce555e 29063 pyspi_0.6.1.orig.tar.gz
95a2468e4bbce730ba286f2211fa41861b9f1d90 3456 pyspi_0.6.1-1.3.diff.gz
Checksums-Sha256:
64069ee828c50b1c597d10a3fefbba279f093a4723965388cdd0ac02f029bfb9 29063 pyspi_0.6.1.orig.tar.gz
2e770b28df948f3197ed0b679bdea99f3f2bf745e9ddb440c677df9c3aeaee3c 3456 pyspi_0.6.1-1.3.diff.gz
Files:
def336bd566ea688a06ec03db7ccf1f4 29063 pyspi_0.6.1.orig.tar.gz
22ff26db69b73d3438fdde21ab5ba2f1 3456 pyspi_0.6.1-1.3.diff.gz
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
iQIcBAEBCAAGBQJLLl7qAAoJELs6aAGGSaoGMc4P/27jxlQ0J35Bg4yLmYhI4PQD
xPWJvOd8MyrKyDjiw7xlP76tzpyNuysPoCNPKAdQHX4GQoZUPpXVEIE8VaQK9tDL
HmSKT+bMkMairKZUc3c+kKTu+Oc+XMTARu1DwG4kFurnrgujriT62U3GspnT4Xyf
7F9TmDMKOPGYGlLfeEUxfKhFAG4X82/d1b9z43ClhPGCJFDM908tdEyg7b/4uClx
HwdiPsRe1UXa9xITWnFtEiJ7575ZAq4GnAKWmjROQH3esxxxDygiuq8LzRjNGCXH
oG949ekl7DlsKbLn2TbJntk69WT0mbZTgCSpl/maeJVp1jXnhpHW/ZTOvR8WlX/T
H10ICHhoJWXltDOOZuJGzkWheSwkAS2rPrW8xDn8B9zDUkyEEajxqIASUNTGWShD
miq3IHFfkZiVgnrIDFd9BXe2gTmgyJfg61QTjOJ1DWTo8D+U2MqrgsOqAQ27/avK
tl5ZuMRY8rB1hOARx5E6PKzVvdWnw1IptWIwGmUhF5qpme8vFVrST93NbZ7UcT8g
chj3TCz0JdRmFSLeS7WJv06Mb7awFVQf32BhWMdSW7eTPj1cPm4ewnfj1iR5n1ke
I6+/Yr/r2yVh0nMkezUEPkCbXkb175mT5egNpDnyYf5C7+ZF0IZORJDud1B7fFwJ
fHrvmF3nQIUsVsFTCfV9
=8mVA
-----END PGP SIGNATURE-----
Binary file not shown.
+32
View File
@@ -0,0 +1,32 @@
aptly -architectures=i386,amd64 mirror create wheezy-main http://mirror.yandex.ru/debian/ wheezy main
aptly -architectures=i386,amd64 mirror create wheezy-contrib http://mirror.yandex.ru/debian/ wheezy contrib
aptly -architectures=i386,amd64 mirror create wheezy-non-free http://mirror.yandex.ru/debian/ wheezy non-free
aptly -architectures=i386,amd64 mirror create wheezy-updates http://mirror.yandex.ru/debian/ wheezy-updates
aptly -architectures=i386,amd64 mirror create wheezy-backports http://mirror.yandex.ru/debian/ wheezy-backports
aptly mirror update wheezy-main
aptly mirror update wheezy-contrib
aptly mirror update wheezy-non-free
aptly mirror update wheezy-updates
aptly mirror update wheezy-backports
aptly -architectures=i386,amd64 mirror create -with-sources wheezy-main-src http://mirror.yandex.ru/debian/ wheezy main
aptly -architectures=i386,amd64 mirror create -with-sources wheezy-contrib-src http://mirror.yandex.ru/debian/ wheezy contrib
aptly -architectures=i386,amd64 mirror create -with-sources wheezy-non-free-src http://mirror.yandex.ru/debian/ wheezy non-free
aptly -architectures=i386,amd64 mirror create -with-sources wheezy-updates-src http://mirror.yandex.ru/debian/ wheezy-updates
aptly -architectures=i386,amd64 mirror create -with-sources wheezy-backports-src http://mirror.yandex.ru/debian/ wheezy-backports
aptly mirror update wheezy-main-src
aptly mirror update wheezy-contrib-src
aptly mirror update wheezy-non-free-src
aptly mirror update wheezy-updates-src
aptly mirror update wheezy-backports-src
aptly mirror create gnuplot-maverick http://ppa.launchpad.net/gladky-anton/gnuplot/ubuntu/ maverick
aptly mirror update gnuplot-maverick
aptly mirror create -with-sources gnuplot-maverick-src http://ppa.launchpad.net/gladky-anton/gnuplot/ubuntu/ maverick
aptly mirror update gnuplot-maverick-src
aptly mirror create sensu http://repos.sensuapp.org/apt sensu
aptly mirror update sensu
+13
View File
@@ -0,0 +1,13 @@
Key-Type: DSA
Key-Length: 1024
Subkey-Type: ELG-E
Subkey-Length: 1024
Name-Real: Aptly Tester
Name-Comment: don't use it
Name-Email: test@aptly.info
Expire-Date: 0
%pubring aptly.pub
%secring aptly.sec
# Do a commit here, so that we can later print "done" :-)
%commit
%echo done
+331
View File
@@ -0,0 +1,331 @@
"""
Test library.
"""
import difflib
import inspect
import json
import subprocess
import os
import posixpath
import shlex
import shutil
import string
import threading
import urllib
#import time
import pprint
import SocketServer
import SimpleHTTPServer
class ThreadedTCPServer(SocketServer.ThreadingMixIn, SocketServer.TCPServer):
pass
class FileHTTPServerRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
def translate_path(self, path):
"""Translate a /-separated PATH to the local filename syntax.
Components that mean special things to the local file system
(e.g. drive or directory names) are ignored. (XXX They should
probably be diagnosed.)
"""
# abandon query parameters
path = path.split('?', 1)[0]
path = path.split('#', 1)[0]
path = posixpath.normpath(urllib.unquote(path))
words = path.split('/')
words = filter(None, words)
path = self.rootPath
for word in words:
drive, word = os.path.splitdrive(word)
head, word = os.path.split(word)
if word in (os.curdir, os.pardir):
continue
path = os.path.join(path, word)
return path
def log_message(self, format, *args):
pass
class BaseTest(object):
"""
Base class for all tests.
"""
longTest = False
fixturePool = False
fixturePoolCopy = False
fixtureDB = False
fixtureGpg = False
fixtureWebServer = False
expectedCode = 0
configFile = {
"rootDir": "%s/.aptly" % os.environ["HOME"],
"downloadConcurrency": 4,
"downloadSpeedLimit": 0,
"architectures": [],
"dependencyFollowSuggests": False,
"dependencyFollowRecommends": False,
"dependencyFollowAllVariants": False,
"dependencyFollowSource": False,
"gpgDisableVerify": False,
"gpgDisableSign": False,
"ppaDistributorID": "ubuntu",
"ppaCodename": "",
}
configOverride = {}
environmentOverride = {}
fixtureDBDir = os.path.join(os.environ["HOME"], "aptly-fixture-db")
fixturePoolDir = os.path.join(os.environ["HOME"], "aptly-fixture-pool")
outputMatchPrepare = None
captureResults = False
def test(self):
self.prepare()
self.run()
self.check()
def prepare_remove_all(self):
if os.path.exists(os.path.join(os.environ["HOME"], ".aptly")):
shutil.rmtree(os.path.join(os.environ["HOME"], ".aptly"))
if os.path.exists(os.path.join(os.environ["HOME"], ".aptly.conf")):
os.remove(os.path.join(os.environ["HOME"], ".aptly.conf"))
if os.path.exists(os.path.join(os.environ["HOME"], ".gnupg", "aptlytest.gpg")):
os.remove(os.path.join(os.environ["HOME"], ".gnupg", "aptlytest.gpg"))
def prepare_default_config(self):
cfg = self.configFile.copy()
cfg.update(**self.configOverride)
f = open(os.path.join(os.environ["HOME"], ".aptly.conf"), "w")
f.write(json.dumps(cfg))
f.close()
def fixture_available(self):
if self.fixturePool and not os.path.exists(self.fixturePoolDir):
return False
if self.fixtureDB and not os.path.exists(self.fixtureDBDir):
return False
return True
def prepare_fixture(self):
if self.fixturePool:
#start = time.time()
os.makedirs(os.path.join(os.environ["HOME"], ".aptly"), 0755)
os.symlink(self.fixturePoolDir, os.path.join(os.environ["HOME"], ".aptly", "pool"))
#print "FIXTURE POOL: %.2f" % (time.time()-start)
if self.fixturePoolCopy:
os.makedirs(os.path.join(os.environ["HOME"], ".aptly"), 0755)
shutil.copytree(self.fixturePoolDir, os.path.join(os.environ["HOME"], ".aptly", "pool"), ignore=shutil.ignore_patterns(".git"))
if self.fixtureDB:
#start = time.time()
shutil.copytree(self.fixtureDBDir, os.path.join(os.environ["HOME"], ".aptly", "db"))
#print "FIXTURE DB: %.2f" % (time.time()-start)
if self.fixtureWebServer:
self.webServerUrl = self.start_webserver(os.path.join(os.path.dirname(inspect.getsourcefile(self.__class__)),
self.fixtureWebServer))
if self.fixtureGpg:
self.run_cmd(["gpg", "--no-default-keyring", "--trust-model", "always", "--batch", "--keyring", "aptlytest.gpg", "--import",
os.path.join(os.path.dirname(inspect.getsourcefile(BaseTest)), "files", "debian-archive-keyring.gpg"),
os.path.join(os.path.dirname(inspect.getsourcefile(BaseTest)), "files", "launchpad.key"),
os.path.join(os.path.dirname(inspect.getsourcefile(BaseTest)), "files", "flat.key"),
os.path.join(os.path.dirname(inspect.getsourcefile(BaseTest)), "files", "jenkins.key")])
if hasattr(self, "fixtureCmds"):
for cmd in self.fixtureCmds:
self.run_cmd(cmd)
def run(self):
self.output = self.output_processor(self.run_cmd(self.runCmd, self.expectedCode))
def _start_process(self, command, stderr=subprocess.STDOUT, stdout=None):
if not hasattr(command, "__iter__"):
params = {
'files': os.path.join(os.path.dirname(inspect.getsourcefile(BaseTest)), "files"),
'changes': os.path.join(os.path.dirname(inspect.getsourcefile(BaseTest)), "changes"),
'udebs': os.path.join(os.path.dirname(inspect.getsourcefile(BaseTest)), "udebs"),
'testfiles': os.path.join(os.path.dirname(inspect.getsourcefile(self.__class__)), self.__class__.__name__),
'aptlyroot': os.path.join(os.environ["HOME"], ".aptly"),
}
if self.fixtureWebServer:
params['url'] = self.webServerUrl
command = string.Template(command).substitute(params)
command = shlex.split(command)
environ = os.environ.copy()
environ["LC_ALL"] = "C"
environ.update(self.environmentOverride)
return subprocess.Popen(command, stderr=stderr, stdout=stdout, env=environ)
def run_cmd(self, command, expected_code=0):
try:
#start = time.time()
proc = self._start_process(command, stdout=subprocess.PIPE)
output, _ = proc.communicate()
#print "CMD %s: %.2f" % (" ".join(command), time.time()-start)
if proc.returncode != expected_code:
raise Exception("exit code %d != %d (output: %s)" % (proc.returncode, expected_code, output))
return output
except Exception, e:
raise Exception("Running command %s failed: %s" % (command, str(e)))
def gold_processor(self, gold):
return gold
def output_processor(self, output):
return output
def expand_environ(self, gold):
return string.Template(gold).substitute(os.environ)
def get_gold_filename(self, gold_name="gold"):
return os.path.join(os.path.dirname(inspect.getsourcefile(self.__class__)), self.__class__.__name__ + "_" + gold_name)
def get_gold(self, gold_name="gold"):
return self.gold_processor(open(self.get_gold_filename(gold_name), "r").read())
def check_output(self):
try:
self.verify_match(self.get_gold(), self.output, match_prepare=self.outputMatchPrepare)
except:
if self.captureResults:
if self.outputMatchPrepare is not None:
self.output = self.outputMatchPrepare(self.output)
with open(self.get_gold_filename(), "w") as f:
f.write(self.output)
else:
raise
def check_cmd_output(self, command, gold_name, match_prepare=None, expected_code=0):
output = self.run_cmd(command, expected_code=expected_code)
try:
self.verify_match(self.get_gold(gold_name), output, match_prepare)
except:
if self.captureResults:
if match_prepare is not None:
output = match_prepare(output)
with open(self.get_gold_filename(gold_name), "w") as f:
f.write(output)
else:
raise
def read_file(self, path):
with open(os.path.join(os.environ["HOME"], ".aptly", path), "r") as f:
return f.read()
def delete_file(self, path):
os.unlink(os.path.join(os.environ["HOME"], ".aptly", path))
def check_file_contents(self, path, gold_name, match_prepare=None):
contents = self.read_file(path)
try:
self.verify_match(self.get_gold(gold_name), contents, match_prepare=match_prepare)
except:
if self.captureResults:
if match_prepare is not None:
contents = match_prepare(contents)
with open(self.get_gold_filename(gold_name), "w") as f:
f.write(contents)
else:
raise
def check_file(self):
contents = open(self.checkedFile, "r").read()
try:
self.verify_match(self.get_gold(), contents)
except:
if self.captureResults:
with open(self.get_gold_filename(), "w") as f:
f.write(contents)
else:
raise
def check_exists(self, path):
if not os.path.exists(os.path.join(os.environ["HOME"], ".aptly", path)):
raise Exception("path %s doesn't exist" % (path, ))
def check_not_exists(self, path):
if os.path.exists(os.path.join(os.environ["HOME"], ".aptly", path)):
raise Exception("path %s exists" % (path, ))
def check_file_not_empty(self, path):
if os.stat(os.path.join(os.environ["HOME"], ".aptly", path))[6] == 0:
raise Exception("file %s is empty" % (path, ))
def check_equal(self, a, b):
if a != b:
self.verify_match(a, b, match_prepare=pprint.pformat)
def check_ge(self, a, b):
if not a >= b:
raise Exception("%s is not greater or equal to %s" % (a, b))
def check_gt(self, a, b):
if not a > b:
raise Exception("%s is not greater to %s" % (a, b))
def check_in(self, item, l):
if not item in l:
raise Exception("item %r not in %r", item, l)
def check_subset(self, a, b):
diff = ''
for k, v in a.items():
if k not in b:
diff += "unexpected key '%s'\n" % (k,)
elif b[k] != v:
diff += "wrong value '%s' for key '%s', expected '%s'\n" % (v, k, b[k])
if diff:
raise Exception("content doesn't match:\n" + diff)
def verify_match(self, a, b, match_prepare=None):
if match_prepare is not None:
a = match_prepare(a)
b = match_prepare(b)
if a != b:
diff = "".join(difflib.unified_diff([l + "\n" for l in a.split("\n")], [l + "\n" for l in b.split("\n")]))
raise Exception("content doesn't match:\n" + diff + "\n")
check = check_output
def prepare(self):
self.prepare_remove_all()
self.prepare_default_config()
self.prepare_fixture()
def start_webserver(self, directory):
FileHTTPServerRequestHandler.rootPath = directory
self.webserver = ThreadedTCPServer(("localhost", 0), FileHTTPServerRequestHandler)
server_thread = threading.Thread(target=self.webserver.serve_forever)
server_thread.daemon = True
server_thread.start()
return "http://%s:%d/" % self.webserver.server_address
def shutdown(self):
if hasattr(self, 'webserver'):
self.shutdown_webserver()
def shutdown_webserver(self):
self.webserver.shutdown()
@classmethod
def shutdown_class(cls):
pass
Executable
+131
View File
@@ -0,0 +1,131 @@
#!/usr/local/bin/python
import glob
import importlib
import os
import inspect
import fnmatch
import sys
import traceback
import random
from lib import BaseTest
from s3_lib import S3Test
from swift_lib import SwiftTest
from api_lib import APITest
try:
from termcolor import colored
except ImportError:
def colored(s, **kwargs):
return s
def run(include_long_tests=False, capture_results=False, tests=None, filters=None):
"""
Run system test.
"""
if not tests:
tests = glob.glob("t*_*")
fails = []
numTests = numFailed = numSkipped = 0
lastBase = None
for test in tests:
testModule = importlib.import_module(test)
for name in dir(testModule):
o = getattr(testModule, name)
if not (inspect.isclass(o) and issubclass(o, BaseTest) and o is not BaseTest and
o is not SwiftTest and o is not S3Test and o is not APITest):
continue
newBase = o.__bases__[0]
if lastBase is not None and lastBase is not newBase:
lastBase.shutdown_class()
lastBase = newBase
if filters:
matches = False
for filt in filters:
if fnmatch.fnmatch(o.__name__, filt):
matches = True
break
if not matches:
continue
t = o()
if t.longTest and not include_long_tests or not t.fixture_available():
numSkipped += 1
continue
numTests += 1
sys.stdout.write("%s:%s... " % (test, o.__name__))
try:
t.captureResults = capture_results
t.test()
except BaseException:
numFailed += 1
typ, val, tb = sys.exc_info()
fails.append((test, t, typ, val, tb, testModule))
sys.stdout.write(colored("FAIL\n", color="red"))
else:
sys.stdout.write(colored("OK\n", color="green"))
t.shutdown()
if lastBase is not None:
lastBase.shutdown_class()
print "TESTS: %d SUCCESS: %d FAIL: %d SKIP: %d" % (numTests, numTests - numFailed, numFailed, numSkipped)
if len(fails) > 0:
print "\nFAILURES (%d):" % (len(fails), )
for (test, t, typ, val, tb, testModule) in fails:
print "%s:%s %s" % (test, t.__class__.__name__, testModule.__doc__.strip() + ": " + t.__doc__.strip())
#print "ERROR: %s" % (val, )
traceback.print_exception(typ, val, tb)
print "=" * 60
sys.exit(1)
if __name__ == "__main__":
if 'APTLY_VERSION' not in os.environ:
try:
os.environ['APTLY_VERSION'] = os.popen("make version").read().strip()
except BaseException, e:
print "Failed to capture current version: ", e
os.chdir(os.path.realpath(os.path.dirname(sys.argv[0])))
random.seed()
include_long_tests = False
capture_results = False
tests = None
args = sys.argv[1:]
while len(args) > 0 and args[0].startswith("--"):
if args[0] == "--long":
include_long_tests = True
elif args[0] == "--capture":
capture_results = True
args = args[1:]
tests = []
filters = []
for arg in args:
if arg.startswith('t'):
tests.append(arg)
else:
filters.append(arg)
run(include_long_tests, capture_results, tests, filters)
+78
View File
@@ -0,0 +1,78 @@
from lib import BaseTest
import uuid
import os
try:
import boto
if 'AWS_SECRET_ACCESS_KEY' in os.environ and 'AWS_ACCESS_KEY_ID' in os.environ:
s3_conn = boto.connect_s3()
else:
s3_conn = None
except ImportError:
s3_conn = None
class S3Test(BaseTest):
"""
BaseTest + support for S3
"""
def fixture_available(self):
return super(S3Test, self).fixture_available() and s3_conn is not None
def prepare(self):
self.bucket_name = "aptly-sys-test-" + str(uuid.uuid1())
self.bucket = s3_conn.create_bucket(self.bucket_name)
self.configOverride = {"S3PublishEndpoints": {
"test1": {
"region": "us-east-1",
"bucket": self.bucket_name,
}
}}
super(S3Test, self).prepare()
def shutdown(self):
if hasattr(self, "bucket_name"):
if hasattr(self, "bucket"):
keys = self.bucket.list()
if keys:
self.bucket.delete_keys(keys)
s3_conn.delete_bucket(self.bucket_name)
super(S3Test, self).shutdown()
def check_path(self, path):
if not hasattr(self, "bucket_contents"):
self.bucket_contents = [key.name for key in self.bucket.list()]
if path.startswith("public/"):
path = path[7:]
if path in self.bucket_contents:
return True
if not path.endswith("/"):
path = path + "/"
for item in self.bucket_contents:
if item.startswith(path):
return True
return False
def check_exists(self, path):
if not self.check_path(path):
raise Exception("path %s doesn't exist" % (path, ))
def check_not_exists(self, path):
if self.check_path(path):
raise Exception("path %s exists" % (path, ))
def read_file(self, path):
if path.startswith("public/"):
path = path[7:]
key = self.bucket.get_key(path)
return key.get_contents_as_string()
+87
View File
@@ -0,0 +1,87 @@
from lib import BaseTest
import uuid
import os
try:
import swiftclient
if 'OS_USERNAME' in os.environ and 'OS_PASSWORD' in os.environ:
auth_username = os.environ.get('OS_USERNAME')
auth_password = os.environ.get('OS_PASSWORD')
# Using auth version 2 /v2.0/
auth_url = os.environ.get('OS_AUTH_URL')
auth_tenant = os.environ.get('OS_TENANT_NAME')
account_username = "%s:%s" % (auth_tenant, auth_username)
swift_conn = swiftclient.Connection(auth_url, account_username,
auth_password, auth_version=2)
elif 'ST_USER' in os.environ and 'ST_KEY' in os.environ:
auth_username = os.environ.get('ST_USER')
auth_password = os.environ.get('ST_KEY')
auth_url = os.environ.get('ST_AUTH')
# Using auth version 1 (/auth/v1.0)
swift_conn = swiftclient.Connection(auth_url, auth_username,
auth_password, auth_version=1)
else:
swift_conn = None
except ImportError:
swift_conn = None
class SwiftTest(BaseTest):
"""
BaseTest + support for Swift
"""
def fixture_available(self):
return super(SwiftTest, self).fixture_available() and swift_conn is not None
def prepare(self):
self.container_name = "aptly-sys-test-" + str(uuid.uuid1())
swift_conn.put_container(self.container_name)
self.configOverride = {"SwiftPublishEndpoints": {
"test1": {
"container": self.container_name,
}
}}
super(SwiftTest, self).prepare()
def shutdown(self):
if hasattr(self, "container_name"):
for obj in swift_conn.get_container(self.container_name,
full_listing=True)[1]:
swift_conn.delete_object(self.container_name, obj.get("name"))
swift_conn.delete_container(self.container_name)
super(SwiftTest, self).shutdown()
def check_path(self, path):
if not hasattr(self, "container_contents"):
self.container_contents = [obj.get('name') for obj in
swift_conn.get_container(self.container_name)[1]]
if path in self.container_contents:
return True
if not path.endswith("/"):
path = path + "/"
for item in self.container_contents:
if item.startswith(path):
return True
return False
def check_exists(self, path):
if not self.check_path(path):
raise Exception("path %s doesn't exist" % (path, ))
def check_not_exists(self, path):
if self.check_path(path):
raise Exception("path %s exists" % (path, ))
def read_file(self, path):
hdrs, body = swift_conn.get_object(self.container_name, path)
return body
+1
View File
@@ -0,0 +1 @@
aptly version: ${APTLY_VERSION}
+14
View File
@@ -0,0 +1,14 @@
"""
Test aptly version
"""
from lib import BaseTest
class VersionTest(BaseTest):
"""
version should match
"""
gold_processor = BaseTest.expand_environ
runCmd = "aptly version"
+1
View File
@@ -0,0 +1 @@
ERROR: error loading config file ${HOME}/.aptly.conf: invalid character 's' looking for beginning of object key string
+1
View File
@@ -0,0 +1 @@
No mirrors found, create one with `aptly mirror create ...`.
@@ -0,0 +1 @@
ERROR: open nosuchfile.conf: no such file or directory
+18
View File
@@ -0,0 +1,18 @@
{
"rootDir": "${HOME}/.aptly",
"downloadConcurrency": 4,
"downloadSpeedLimit": 0,
"architectures": [],
"dependencyFollowSuggests": false,
"dependencyFollowRecommends": false,
"dependencyFollowAllVariants": false,
"dependencyFollowSource": false,
"gpgDisableSign": false,
"gpgDisableVerify": false,
"downloadSourcePackages": false,
"ppaDistributorID": "ubuntu",
"ppaCodename": "",
"skipContentsPublishing": false,
"S3PublishEndpoints": {},
"SwiftPublishEndpoints": {}
}
+18
View File
@@ -0,0 +1,18 @@
{
"rootDir": "${HOME}/.aptly",
"downloadConcurrency": 4,
"downloadSpeedLimit": 0,
"architectures": [],
"dependencyFollowSuggests": false,
"dependencyFollowRecommends": false,
"dependencyFollowAllVariants": false,
"dependencyFollowSource": false,
"gpgDisableSign": false,
"gpgDisableVerify": false,
"downloadSourcePackages": false,
"ppaDistributorID": "ubuntu",
"ppaCodename": "",
"skipContentsPublishing": false,
"S3PublishEndpoints": {},
"SwiftPublishEndpoints": {}
}
+65
View File
@@ -0,0 +1,65 @@
"""
Test config file
"""
import os
import re
import inspect
from lib import BaseTest
class CreateConfigTest(BaseTest):
"""
new file is generated if missing
"""
runCmd = "aptly mirror list"
checkedFile = os.path.join(os.environ["HOME"], ".aptly.conf")
check = BaseTest.check_file
gold_processor = BaseTest.expand_environ
prepare = BaseTest.prepare_remove_all
class BadConfigTest(BaseTest):
"""
broken config file
"""
runCmd = "aptly mirror list"
expectedCode = 1
gold_processor = BaseTest.expand_environ
def prepare(self):
self.prepare_remove_all()
f = open(os.path.join(os.environ["HOME"], ".aptly.conf"), "w")
f.write("{some crap")
f.close()
class ConfigInFileTest(BaseTest):
"""
config in other file test
"""
runCmd = ["aptly", "mirror", "list",
"-config=%s" % (os.path.join(os.path.dirname(inspect.getsourcefile(BadConfigTest)), "aptly.conf"), )]
prepare = BaseTest.prepare_remove_all
outputMatchPrepare = lambda _, s: re.sub(r' -(cpuprofile|memprofile|memstats|meminterval)=.*\n', '', s, flags=re.MULTILINE)
class ConfigInMissingFileTest(BaseTest):
"""
config in other file test
"""
runCmd = ["aptly", "mirror", "list", "-config=nosuchfile.conf"]
expectedCode = 1
prepare = BaseTest.prepare_remove_all
class ConfigShowTest(BaseTest):
"""
config showing
"""
runCmd = ["aptly", "config", "show"]
gold_processor = BaseTest.expand_environ
+10
View File
@@ -0,0 +1,10 @@
{
"rootDir": "/tmp/aptly",
"downloadConcurrency": 4,
"architectures": [],
"dependencyFollowSuggests": false,
"dependencyFollowRecommends": false,
"dependencyFollowAllVariants": false,
"gpgDisableSign": false,
"gpgDisableVerify": false
}
+20
View File
@@ -0,0 +1,20 @@
aptly is a tool to create partial and full mirrors of remote
repositories, manage local repositories, filter them, merge,
upgrade individual packages, take snapshots and publish them
back as Debian repositories.
aptly's goal is to establish repeatability and controlled changes
in a package-centric environment. aptly allows one to fix a set of packages
in a repository, so that package installation and upgrade becomes
deterministic. At the same time aptly allows one to perform controlled,
fine-grained changes in repository contents to transition your
package environment to new version.
Options:
-architectures="": list of architectures to consider during (comma-separated), default to all available
-config="": location of configuration file (default locations are /etc/aptly.conf, ~/.aptly.conf)
-dep-follow-all-variants=false: when processing dependencies, follow a & b if dependency is 'a|b'
-dep-follow-recommends=false: when processing dependencies, follow Recommends
-dep-follow-source=false: when processing dependencies, follow from binary to Source packages
-dep-follow-suggests=false: when processing dependencies, follow Suggests
+28
View File
@@ -0,0 +1,28 @@
aptly - Debian repository management tool
Commands:
api start API server/issue requests
config manage aptly configuration
db manage aptly's internal database and package pool
graph render graph of relationships
mirror manage mirrors of remote repositories
package operations on packages
publish manage published repositories
repo manage local package repositories
serve HTTP serve published repositories
snapshot manage snapshots of repositories
task manage aptly tasks
version display version
Use "aptly help <command>" for more information about a command.
Options:
-architectures="": list of architectures to consider during (comma-separated), default to all available
-config="": location of configuration file (default locations are /etc/aptly.conf, ~/.aptly.conf)
-dep-follow-all-variants=false: when processing dependencies, follow a & b if dependency is 'a|b'
-dep-follow-recommends=false: when processing dependencies, follow Recommends
-dep-follow-source=false: when processing dependencies, follow from binary to Source packages
-dep-follow-suggests=false: when processing dependencies, follow Suggests
ERROR: unable to parse command
+30
View File
@@ -0,0 +1,30 @@
Usage: aptly mirror create <name> <archive url> <distribution> [<component1> ...]
Creates mirror <name> of remote repository, aptly supports both regular and flat Debian repositories exported
via HTTP and FTP. aptly would try download Release file from remote repository and verify its' signature. Command
line format resembles apt utlitily sources.list(5).
PPA urls could specified in short format:
$ aptly mirror create <name> ppa:<user>/<project>
Example:
$ aptly mirror create wheezy-main http://mirror.yandex.ru/debian/ wheezy main
Options:
-architectures="": list of architectures to consider during (comma-separated), default to all available
-config="": location of configuration file (default locations are /etc/aptly.conf, ~/.aptly.conf)
-dep-follow-all-variants=false: when processing dependencies, follow a & b if dependency is 'a|b'
-dep-follow-recommends=false: when processing dependencies, follow Recommends
-dep-follow-source=false: when processing dependencies, follow from binary to Source packages
-dep-follow-suggests=false: when processing dependencies, follow Suggests
-filter="": filter packages in mirror
-filter-with-deps=false: when filtering, include dependencies of matching packages as well
-force-architectures=false: (only with architecture list) skip check that requested architectures are listed in Release file
-force-components=false: (only with component list) skip check that requested components are listed in Release file
-ignore-signatures=false: disable verification of Release file signatures
-keyring=: gpg keyring to use when verifying Release file (could be specified multiple times)
-with-sources=false: download source packages in addition to binary packages
-with-udebs=false: download .udeb packages (Debian installer support)
+21
View File
@@ -0,0 +1,21 @@
Usage: aptly mirror create <name> <archive url> <distribution> [<component1> ...]
aptly mirror create - create new mirror
Options:
-architectures="": list of architectures to consider during (comma-separated), default to all available
-config="": location of configuration file (default locations are /etc/aptly.conf, ~/.aptly.conf)
-dep-follow-all-variants=false: when processing dependencies, follow a & b if dependency is 'a|b'
-dep-follow-recommends=false: when processing dependencies, follow Recommends
-dep-follow-source=false: when processing dependencies, follow from binary to Source packages
-dep-follow-suggests=false: when processing dependencies, follow Suggests
-filter="": filter packages in mirror
-filter-with-deps=false: when filtering, include dependencies of matching packages as well
-force-architectures=false: (only with architecture list) skip check that requested architectures are listed in Release file
-force-components=false: (only with component list) skip check that requested components are listed in Release file
-ignore-signatures=false: disable verification of Release file signatures
-keyring=: gpg keyring to use when verifying Release file (could be specified multiple times)
-with-sources=false: download source packages in addition to binary packages
-with-udebs=false: download .udeb packages (Debian installer support)
ERROR: unable to parse command
+23
View File
@@ -0,0 +1,23 @@
aptly mirror - manage mirrors of remote repositories
Commands:
create create new mirror
drop delete mirror
edit edit mirror settings
list list mirrors
rename renames mirror
search search mirror for packages matching query
show show details about mirror
update update mirror
Use "mirror help <command>" for more information about a command.
Options:
-architectures="": list of architectures to consider during (comma-separated), default to all available
-config="": location of configuration file (default locations are /etc/aptly.conf, ~/.aptly.conf)
-dep-follow-all-variants=false: when processing dependencies, follow a & b if dependency is 'a|b'
-dep-follow-recommends=false: when processing dependencies, follow Recommends
-dep-follow-source=false: when processing dependencies, follow from binary to Source packages
-dep-follow-suggests=false: when processing dependencies, follow Suggests
+24
View File
@@ -0,0 +1,24 @@
aptly mirror - manage mirrors of remote repositories
Commands:
create create new mirror
drop delete mirror
edit edit mirror settings
list list mirrors
rename renames mirror
search search mirror for packages matching query
show show details about mirror
update update mirror
Use "mirror help <command>" for more information about a command.
Options:
-architectures="": list of architectures to consider during (comma-separated), default to all available
-config="": location of configuration file (default locations are /etc/aptly.conf, ~/.aptly.conf)
-dep-follow-all-variants=false: when processing dependencies, follow a & b if dependency is 'a|b'
-dep-follow-recommends=false: when processing dependencies, follow Recommends
-dep-follow-source=false: when processing dependencies, follow from binary to Source packages
-dep-follow-suggests=false: when processing dependencies, follow Suggests
ERROR: unable to parse command
+22
View File
@@ -0,0 +1,22 @@
flag provided but not defined: -fxz
Usage: aptly mirror create <name> <archive url> <distribution> [<component1> ...]
aptly mirror create - create new mirror
Options:
-architectures="": list of architectures to consider during (comma-separated), default to all available
-config="": location of configuration file (default locations are /etc/aptly.conf, ~/.aptly.conf)
-dep-follow-all-variants=false: when processing dependencies, follow a & b if dependency is 'a|b'
-dep-follow-recommends=false: when processing dependencies, follow Recommends
-dep-follow-source=false: when processing dependencies, follow from binary to Source packages
-dep-follow-suggests=false: when processing dependencies, follow Suggests
-filter="": filter packages in mirror
-filter-with-deps=false: when filtering, include dependencies of matching packages as well
-force-architectures=false: (only with architecture list) skip check that requested architectures are listed in Release file
-force-components=false: (only with component list) skip check that requested components are listed in Release file
-ignore-signatures=false: disable verification of Release file signatures
-keyring=: gpg keyring to use when verifying Release file (could be specified multiple times)
-with-sources=false: download source packages in addition to binary packages
-with-udebs=false: download .udeb packages (Debian installer support)
ERROR: unable to parse flags
+63
View File
@@ -0,0 +1,63 @@
"""
Test help screens
"""
import re
from lib import BaseTest
class MainTest(BaseTest):
"""
main
"""
expectedCode = 2
runCmd = "aptly"
outputMatchPrepare = lambda _, s: re.sub(r' -(cpuprofile|memprofile|memstats|meminterval)=.*\n', '', s, flags=re.MULTILINE)
class MirrorTest(BaseTest):
"""
main
"""
expectedCode = 2
runCmd = "aptly mirror"
class MirrorCreateTest(BaseTest):
"""
main
"""
expectedCode = 2
runCmd = "aptly mirror create"
class MainHelpTest(BaseTest):
"""
main
"""
runCmd = "aptly help"
outputMatchPrepare = lambda _, s: re.sub(r' -(cpuprofile|memprofile|memstats|meminterval)=.*\n', '', s, flags=re.MULTILINE)
class MirrorHelpTest(BaseTest):
"""
main
"""
runCmd = "aptly help mirror"
class MirrorCreateHelpTest(BaseTest):
"""
main
"""
runCmd = "aptly help mirror create"
class WrongFlagTest(BaseTest):
"""
main
"""
expectedCode = 2
runCmd = "aptly mirror create -fxz=sss"
+10
View File
@@ -0,0 +1,10 @@
Downloading http://mirror.yandex.ru/debian-backports/dists/squeeze-backports/InRelease...
gpgv: keyblock resource `${HOME}/.gnupg/aptlytest.gpg': file open error
gpgv: RSA key ID 46925553
gpgv: Can't check signature: public key not found
Downloading http://mirror.yandex.ru/debian-backports/dists/squeeze-backports/Release...
Downloading http://mirror.yandex.ru/debian-backports/dists/squeeze-backports/Release.gpg...
gpgv: keyblock resource `${HOME}/.gnupg/aptlytest.gpg': file open error
gpgv: RSA key ID 46925553
gpgv: Can't check signature: public key not found
ERROR: unable to fetch mirror: verification of detached signature failed: exit status 2
+12
View File
@@ -0,0 +1,12 @@
Downloading http://mirror.yandex.ru/debian/dists/wheezy/InRelease...
Downloading http://mirror.yandex.ru/debian/dists/wheezy/Release...
Downloading http://mirror.yandex.ru/debian/dists/wheezy/Release.gpg...
gpgv: RSA key ID 46925553
gpgv: Good signature from "Debian Archive Automatic Signing Key (7.0/wheezy) <ftpmaster@debian.org>"
gpgv: RSA key ID 2B90D010
gpgv: Good signature from "Debian Archive Automatic Signing Key (8/jessie) <ftpmaster@debian.org>"
gpgv: RSA key ID 65FFB764
gpgv: Good signature from "Wheezy Stable Release Key <debian-release@lists.debian.org>"
Mirror [mirror11]: http://mirror.yandex.ru/debian/ wheezy successfully added.
You can run 'aptly mirror update mirror11' to download repository contents.
@@ -0,0 +1,20 @@
Name: mirror11
Archive Root URL: http://mirror.yandex.ru/debian/
Distribution: wheezy
Components: main, contrib, non-free
Architectures: amd64, armel, armhf, i386, ia64, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390, s390x, sparc
Download Sources: no
Download .udebs: no
Last update: never
Information from release file:
Architectures: amd64 armel armhf i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390 s390x sparc
Codename: wheezy
Components: main contrib non-free
Date: Sat, 04 Jun 2016 11:47:54 UTC
Description: Debian 7.11 Released 04 June 2016
Label: Debian
Origin: Debian
Suite: oldstable
Version: 7.11
+11
View File
@@ -0,0 +1,11 @@
Downloading http://mirror.yandex.ru/debian/dists/wheezy/InRelease...
Downloading http://mirror.yandex.ru/debian/dists/wheezy/Release...
Downloading http://mirror.yandex.ru/debian/dists/wheezy/Release.gpg...
gpgv: RSA key ID 46925553
gpgv: RSA key ID 2B90D010
gpgv: RSA key ID 65FFB764
ERROR: unable to fetch mirror: verification of detached signature failed: exit status 2
@@ -0,0 +1,4 @@
Downloading http://mirror.yandex.ru/debian/dists/wheezy/Release...
Mirror [mirror13]: http://mirror.yandex.ru/debian/ wheezy successfully added.
You can run 'aptly mirror update mirror13' to download repository contents.
@@ -0,0 +1,20 @@
Name: mirror13
Archive Root URL: http://mirror.yandex.ru/debian/
Distribution: wheezy
Components: main, contrib, non-free
Architectures: amd64, armel, armhf, i386, ia64, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390, s390x, sparc
Download Sources: no
Download .udebs: no
Last update: never
Information from release file:
Architectures: amd64 armel armhf i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390 s390x sparc
Codename: wheezy
Components: main contrib non-free
Date: Sat, 04 Jun 2016 11:47:54 UTC
Description: Debian 7.11 Released 04 June 2016
Label: Debian
Origin: Debian
Suite: oldstable
Version: 7.11
@@ -0,0 +1,8 @@
Downloading http://download.opensuse.org/repositories/home:/monkeyiq/Debian_7.0/InRelease...
Downloading http://download.opensuse.org/repositories/home:/monkeyiq/Debian_7.0/Release...
Downloading http://download.opensuse.org/repositories/home:/monkeyiq/Debian_7.0/Release.gpg...
gpgv: DSA key ID DFFAFC43
gpgv: Good signature from "home:monkeyiq OBS Project <home:monkeyiq@build.opensuse.org>"
Mirror [mirror14]: http://download.opensuse.org/repositories/home:/monkeyiq/Debian_7.0/ ./ successfully added.
You can run 'aptly mirror update mirror14' to download repository contents.
@@ -0,0 +1,18 @@
Name: mirror14
Archive Root URL: http://download.opensuse.org/repositories/home:/monkeyiq/Debian_7.0/
Distribution: ./
Components:
Architectures:
Download Sources: no
Download .udebs: no
Last update: never
Information from release file:
Architectures: i386 amd64
Archive: Debian_7.0
Codename: Debian_7.0
Date: Fri Apr 25 04:32:23 2014
Description: monkeyiq's Home Project (Debian_7.0)
Label: home:monkeyiq
Origin: obs://build.opensuse.org/home:monkeyiq/Debian_7.0
@@ -0,0 +1 @@
ERROR: unable to create mirror: components aren't supported for flat repos
@@ -0,0 +1,2 @@
Downloading http://mirror.yandex.ru/debian/dists/wheezy/Release...
ERROR: unable to fetch mirror: architecture source not available in repo [mirror16]: http://mirror.yandex.ru/debian/ wheezy, use -force-architectures to override
@@ -0,0 +1,4 @@
Downloading http://mirror.yandex.ru/debian/dists/wheezy/Release...
Mirror [mirror17]: http://mirror.yandex.ru/debian/ wheezy [src] successfully added.
You can run 'aptly mirror update mirror17' to download repository contents.
@@ -0,0 +1,20 @@
Name: mirror17
Archive Root URL: http://mirror.yandex.ru/debian/
Distribution: wheezy
Components: main, contrib, non-free
Architectures: i386
Download Sources: yes
Download .udebs: no
Last update: never
Information from release file:
Architectures: amd64 armel armhf i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390 s390x sparc
Codename: wheezy
Components: main contrib non-free
Date: Sat, 04 Jun 2016 11:47:54 UTC
Description: Debian 7.11 Released 04 June 2016
Label: Debian
Origin: Debian
Suite: oldstable
Version: 7.11
@@ -0,0 +1,8 @@
Downloading http://ppa.launchpad.net/gladky-anton/gnuplot/ubuntu/dists/maverick/InRelease...
Downloading http://ppa.launchpad.net/gladky-anton/gnuplot/ubuntu/dists/maverick/Release...
Downloading http://ppa.launchpad.net/gladky-anton/gnuplot/ubuntu/dists/maverick/Release.gpg...
gpgv: RSA key ID 3B1F56C0
gpgv: Good signature from "Launchpad sim"
Mirror [mirror18]: http://ppa.launchpad.net/gladky-anton/gnuplot/ubuntu/ maverick successfully added.
You can run 'aptly mirror update mirror18' to download repository contents.
@@ -0,0 +1,20 @@
Name: mirror18
Archive Root URL: http://ppa.launchpad.net/gladky-anton/gnuplot/ubuntu/
Distribution: maverick
Components: main
Architectures: amd64, armel, i386, powerpc
Download Sources: no
Download .udebs: no
Last update: never
Information from release file:
Architectures: amd64 armel i386 powerpc
Codename: maverick
Components: main
Date: Mon, 22 Oct 2012 13:19:50 UTC
Description: Ubuntu Maverick 10.10
Label: gnuplot
Origin: LP-PPA-gladky-anton-gnuplot
Suite: maverick
Version: 10.10
@@ -0,0 +1,8 @@
Downloading http://security.debian.org/dists/wheezy/updates/InRelease...
gpgv: RSA key ID C857C906
gpgv: Good signature from "Debian Security Archive Automatic Signing Key (8/jessie) <ftpmaster@debian.org>"
gpgv: RSA key ID 46925553
gpgv: Good signature from "Debian Archive Automatic Signing Key (7.0/wheezy) <ftpmaster@debian.org>"
Mirror [mirror19]: http://security.debian.org/ wheezy/updates [src] successfully added.
You can run 'aptly mirror update mirror19' to download repository contents.
@@ -0,0 +1,19 @@
Name: mirror19
Archive Root URL: http://security.debian.org/
Distribution: wheezy/updates
Components: main
Architectures: i386
Download Sources: yes
Download .udebs: no
Last update: never
Information from release file:
Architectures: amd64 armel armhf i386
Codename: wheezy
Components: updates/main updates/contrib updates/non-free
Description: Long Term Support for Debian 7
Label: Debian-Security
Origin: Debian
Suite: oldstable
Version: 7.0
+4
View File
@@ -0,0 +1,4 @@
Downloading http://mirror.yandex.ru/debian/dists/wheezy/Release...
Mirror [mirror1]: http://mirror.yandex.ru/debian/ wheezy successfully added.
You can run 'aptly mirror update mirror1' to download repository contents.
@@ -0,0 +1,20 @@
Name: mirror1
Archive Root URL: http://mirror.yandex.ru/debian/
Distribution: wheezy
Components: main, contrib, non-free
Architectures: amd64, armel, armhf, i386, ia64, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390, s390x, sparc
Download Sources: no
Download .udebs: no
Last update: never
Information from release file:
Architectures: amd64 armel armhf i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390 s390x sparc
Codename: wheezy
Components: main contrib non-free
Date: Sat, 04 Jun 2016 11:47:54 UTC
Description: Debian 7.11 Released 04 June 2016
Label: Debian
Origin: Debian
Suite: oldstable
Version: 7.11
@@ -0,0 +1,3 @@
Downloading http://security.debian.org/dists/wheezy/updates/InRelease...
Downloading http://security.debian.org/dists/wheezy/updates/Release...
ERROR: unable to fetch mirror: http://security.debian.org/dists/wheezy/updates/Release: Get http://security.debian.org/dists/wheezy/updates/Release: http: error connecting to proxy http://127.0.0.1:3137: dial tcp 127.0.0.1:3137: connection refused
+10
View File
@@ -0,0 +1,10 @@
Downloading http://pkg.jenkins-ci.org/debian-stable/binary/InRelease...
Downloading http://pkg.jenkins-ci.org/debian-stable/binary/Release...
Downloading http://pkg.jenkins-ci.org/debian-stable/binary/Release.gpg...
gpgv: DSA key ID D50582E6
gpgv: Good signature from "Kohsuke Kawaguchi <kk@kohsuke.org>"
gpgv: aka "Kohsuke Kawaguchi <kohsuke.kawaguchi@sun.com>"
gpgv: aka "[invalid image]"
Mirror [mirror21]: http://pkg.jenkins-ci.org/debian-stable/ ./binary/ successfully added.
You can run 'aptly mirror update mirror21' to download repository contents.
@@ -0,0 +1,14 @@
Name: mirror21
Archive Root URL: http://pkg.jenkins-ci.org/debian-stable/
Distribution: ./binary/
Components:
Architectures:
Download Sources: no
Download .udebs: no
Last update: never
Information from release file:
Architectures: all
Date: Wed, 28 Jan 2015 02:32:16 UTC
Origin: jenkins.io
Suite: binary
@@ -0,0 +1,4 @@
Downloading http://security.debian.org/dists/wheezy/updates/Release...
Mirror [mirror22]: http://security.debian.org/ wheezy/updates successfully added.
You can run 'aptly mirror update mirror22' to download repository contents.
@@ -0,0 +1,21 @@
Name: mirror22
Archive Root URL: http://security.debian.org/
Distribution: wheezy/updates
Components: main
Architectures: amd64, armel, armhf, i386
Download Sources: no
Download .udebs: no
Filter: nginx | Priority (required)
Filter With Deps: no
Last update: never
Information from release file:
Architectures: amd64 armel armhf i386
Codename: wheezy
Components: updates/main updates/contrib updates/non-free
Description: Long Term Support for Debian 7
Label: Debian-Security
Origin: Debian
Suite: oldstable
Version: 7.0
@@ -0,0 +1 @@
ERROR: unable to create mirror: parsing failed: unexpected token <EOL>: expecting field or package name
@@ -0,0 +1,8 @@
Downloading http://security.debian.org/dists/wheezy/updates/InRelease...
gpgv: RSA key ID C857C906
gpgv: Good signature from "Debian Security Archive Automatic Signing Key (8/jessie) <ftpmaster@debian.org>"
gpgv: RSA key ID 46925553
gpgv: Good signature from "Debian Archive Automatic Signing Key (7.0/wheezy) <ftpmaster@debian.org>"
Mirror [mirror24]: http://security.debian.org/ wheezy/updates successfully added.
You can run 'aptly mirror update mirror24' to download repository contents.
@@ -0,0 +1,4 @@
Downloading http://mirror.yandex.ru/debian/dists/wheezy/Release...
Mirror [mirror25]: http://mirror.yandex.ru/debian/ wheezy [udeb] successfully added.
You can run 'aptly mirror update mirror25' to download repository contents.
@@ -0,0 +1,20 @@
Name: mirror25
Archive Root URL: http://mirror.yandex.ru/debian/
Distribution: wheezy
Components: main, contrib, non-free
Architectures: i386
Download Sources: no
Download .udebs: yes
Last update: never
Information from release file:
Architectures: amd64 armel armhf i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390 s390x sparc
Codename: wheezy
Components: main contrib non-free
Date: Sat, 04 Jun 2016 11:47:54 UTC
Description: Debian 7.11 Released 04 June 2016
Label: Debian
Origin: Debian
Suite: oldstable
Version: 7.11
@@ -0,0 +1 @@
ERROR: unable to create mirror: debian-installer udebs aren't supported for flat repos
@@ -0,0 +1,4 @@
Downloading http://linux.dell.com/repo/community/ubuntu/dists/wheezy/Release...
Mirror [mirror27]: http://linux.dell.com/repo/community/ubuntu/ wheezy successfully added.
You can run 'aptly mirror update mirror27' to download repository contents.
@@ -0,0 +1,19 @@
Name: mirror27
Archive Root URL: http://linux.dell.com/repo/community/ubuntu/
Distribution: wheezy
Components: openmanage/740
Architectures: amd64, i386
Download Sources: no
Download .udebs: no
Last update: never
Information from release file:
Architectures: amd64 i386 source
Codename: wheezy
Components: openmanage openmanage/820 openmanage/810 openmanage/801 openmanage/740 openmanage/730
Date: Mon, 14 Sep 2015 21:24:43 UTC
Description: Unofficial Dell OMSA build for Ubuntu
Label: Dell OMSA Archive
Origin: Dell Inc
Suite: wheezy
@@ -0,0 +1,4 @@
Downloading http://downloads-distro.mongodb.org/repo/ubuntu-upstart/dists/dist/Release...
Mirror [mirror28]: http://downloads-distro.mongodb.org/repo/ubuntu-upstart/ dist successfully added.
You can run 'aptly mirror update mirror28' to download repository contents.
@@ -0,0 +1,19 @@
Name: mirror28
Archive Root URL: http://downloads-distro.mongodb.org/repo/ubuntu-upstart/
Distribution: dist
Components: 10gen
Architectures: amd64, i386
Download Sources: no
Download .udebs: no
Last update: never
Information from release file:
Architectures: i386 amd64
Codename: dist
Components: 10gen
Description: mongodb packages
Label: mongodb
Origin: mongodb
Suite: mongodb
Version: dist
+4
View File
@@ -0,0 +1,4 @@
Downloading http://mirror.yandex.ru/debian/dists/wheezy/Release...
Mirror [mirror2]: http://mirror.yandex.ru/debian/ wheezy successfully added.
You can run 'aptly mirror update mirror2' to download repository contents.
@@ -0,0 +1,20 @@
Name: mirror2
Archive Root URL: http://mirror.yandex.ru/debian/
Distribution: wheezy
Components: main
Architectures: amd64, armel, armhf, i386, ia64, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390, s390x, sparc
Download Sources: no
Download .udebs: no
Last update: never
Information from release file:
Architectures: amd64 armel armhf i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390 s390x sparc
Codename: wheezy
Components: main contrib non-free
Date: Sat, 04 Jun 2016 11:47:54 UTC
Description: Debian 7.11 Released 04 June 2016
Label: Debian
Origin: Debian
Suite: oldstable
Version: 7.11
+4
View File
@@ -0,0 +1,4 @@
Downloading http://mirror.yandex.ru/debian/dists/wheezy/Release...
Mirror [mirror3]: http://mirror.yandex.ru/debian/ wheezy successfully added.
You can run 'aptly mirror update mirror3' to download repository contents.
@@ -0,0 +1,20 @@
Name: mirror3
Archive Root URL: http://mirror.yandex.ru/debian/
Distribution: wheezy
Components: main, contrib
Architectures: i386, amd64
Download Sources: no
Download .udebs: no
Last update: never
Information from release file:
Architectures: amd64 armel armhf i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390 s390x sparc
Codename: wheezy
Components: main contrib non-free
Date: Sat, 04 Jun 2016 11:47:54 UTC
Description: Debian 7.11 Released 04 June 2016
Label: Debian
Origin: Debian
Suite: oldstable
Version: 7.11
+2
View File
@@ -0,0 +1,2 @@
Downloading http://mirror.yandex.ru/debian/dists/wheezy/Release...
ERROR: unable to fetch mirror: component life not available in repo [mirror4]: http://mirror.yandex.ru/debian/ wheezy, use -force-components to override
+2
View File
@@ -0,0 +1,2 @@
Downloading http://mirror.yandex.ru/debian/dists/wheezy/Release...
ERROR: unable to fetch mirror: architecture nano68 not available in repo [mirror5]: http://mirror.yandex.ru/debian/ wheezy, use -force-architectures to override
+3
View File
@@ -0,0 +1,3 @@
Downloading http://mirror.yandex.ru/debian/dists/suslik/InRelease...
Downloading http://mirror.yandex.ru/debian/dists/suslik/Release...
ERROR: unable to fetch mirror: HTTP code 404 while fetching http://mirror.yandex.ru/debian/dists/suslik/Release
+4
View File
@@ -0,0 +1,4 @@
Downloading http://mirror.yandex.ru/debian/dists/wheezy/Release...
Mirror [mirror7]: http://mirror.yandex.ru/debian/ wheezy successfully added.
You can run 'aptly mirror update mirror7' to download repository contents.
@@ -0,0 +1,20 @@
Name: mirror7
Archive Root URL: http://mirror.yandex.ru/debian/
Distribution: wheezy
Components: main, contrib
Architectures: i386, amd64
Download Sources: no
Download .udebs: no
Last update: never
Information from release file:
Architectures: amd64 armel armhf i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390 s390x sparc
Codename: wheezy
Components: main contrib non-free
Date: Sat, 04 Jun 2016 11:47:54 UTC
Description: Debian 7.11 Released 04 June 2016
Label: Debian
Origin: Debian
Suite: oldstable
Version: 7.11
+2
View File
@@ -0,0 +1,2 @@
Downloading http://mirror.yandex.ru/debian/dists/wheezy/Release...
ERROR: unable to add mirror: mirror with name mirror8 already exists
+8
View File
@@ -0,0 +1,8 @@
Downloading http://mirror.yandex.ru/debian/dists/wheezy-backports/InRelease...
gpgv: RSA key ID 46925553
gpgv: Good signature from "Debian Archive Automatic Signing Key (7.0/wheezy) <ftpmaster@debian.org>"
gpgv: RSA key ID 2B90D010
gpgv: Good signature from "Debian Archive Automatic Signing Key (8/jessie) <ftpmaster@debian.org>"
Mirror [mirror9]: http://mirror.yandex.ru/debian/ wheezy-backports successfully added.
You can run 'aptly mirror update mirror9' to download repository contents.
@@ -0,0 +1,21 @@
Name: mirror9
Archive Root URL: http://mirror.yandex.ru/debian/
Distribution: wheezy-backports
Components: main, contrib, non-free
Architectures: amd64, armel, armhf, i386, ia64, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390, s390x, sparc
Download Sources: no
Download .udebs: no
Last update: never
Information from release file:
Architectures: amd64 armel armhf i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390 s390x sparc
ButAutomaticUpgrades: yes
Codename: wheezy-backports
Components: main contrib non-free
Description: Backports for the Wheezy Distribution
Label: Debian Backports
NotAutomatic: yes
Origin: Debian Backports
Suite: wheezy-backports
Version:
+1
View File
@@ -0,0 +1 @@
Mirror `mirror1` has been removed.
@@ -0,0 +1 @@
ERROR: unable to show: mirror with name mirror1 not found
+3
View File
@@ -0,0 +1,3 @@
Mirror `wheezy-main` was used to create following snapshots:
* [wheez]: Snapshot from mirror [wheezy-main]: http://mirror.yandex.ru/debian/ wheezy
ERROR: won't delete mirror with snapshots, use -force to override
+1
View File
@@ -0,0 +1 @@
Mirror `wheezy-main` has been removed.
+1
View File
@@ -0,0 +1 @@
ERROR: unable to drop: mirror with name mirror1 not found
+1
View File
@@ -0,0 +1 @@
Mirror [wheezy-main]: http://mirror.yandex.ru/debian/ wheezy [src] successfully updated.
@@ -0,0 +1,22 @@
Name: wheezy-main
Archive Root URL: http://mirror.yandex.ru/debian/
Distribution: wheezy
Components: main
Architectures: i386, amd64
Download Sources: yes
Download .udebs: no
Filter: nginx
Filter With Deps: yes
Number of packages: 56121
Information from release file:
Architectures: amd64 armel armhf i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390 s390x sparc
Codename: wheezy
Components: main contrib non-free
Date: Sat, 26 Apr 2014 09:27:11 UTC
Description: Debian 7.5 Released 26 April 2014
Label: Debian
Origin: Debian
Suite: stable
Version: 7.5
+1
View File
@@ -0,0 +1 @@
ERROR: unable to edit: mirror with name wheezy-main not found
+1
View File
@@ -0,0 +1 @@
Mirror [wheezy-main]: http://mirror.yandex.ru/debian/ wheezy successfully updated.
@@ -0,0 +1,20 @@
Name: wheezy-main
Archive Root URL: http://mirror.yandex.ru/debian/
Distribution: wheezy
Components: main
Architectures: i386, amd64
Download Sources: no
Download .udebs: no
Number of packages: 56121
Information from release file:
Architectures: amd64 armel armhf i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390 s390x sparc
Codename: wheezy
Components: main contrib non-free
Date: Sat, 26 Apr 2014 09:27:11 UTC
Description: Debian 7.5 Released 26 April 2014
Label: Debian
Origin: Debian
Suite: stable
Version: 7.5

Some files were not shown because too many files have changed in this diff Show More