mirror of
https://git.launchpad.net/ubuntu-dev-tools
synced 2025-08-16 00:14:02 +00:00
Compare commits
2561 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
7dd913fe16 | ||
|
bcf3e153f7 | ||
|
466e2784de | ||
|
ba3f0511f9 | ||
|
2e550ceff2 | ||
|
6c8a5d74bd | ||
|
3d11516599 | ||
|
5a20308ab1 | ||
|
b551877651 | ||
|
4a4c4e0a27 | ||
|
865c1c97bc | ||
|
d09718e976 | ||
|
bff7baecc9 | ||
|
45fbbb5bd1 | ||
|
ca217c035e | ||
|
b5e117788b | ||
|
ddba2d1e98 | ||
|
02d65a5804 | ||
|
bda85fa6a8 | ||
|
86a83bf74d | ||
|
162e758671 | ||
|
049425adb7 | ||
|
f6ca6cad92 | ||
|
3dc17934d6 | ||
|
10a176567a | ||
|
86b366c6c5 | ||
|
50b580b30e | ||
|
6ba0641f63 | ||
|
1e815db9d2 | ||
|
e2f43318bd | ||
|
cdd81232d9 | ||
|
65044d84d9 | ||
|
19e40b49c2 | ||
|
55eb521461 | ||
|
983bb3b70e | ||
|
85f2e46f7d | ||
|
649c3db767 | ||
|
e7ba650414 | ||
|
3bc802a209 | ||
|
92c80d7bb7 | ||
|
d7362d9ed8 | ||
|
c7a855ff20 | ||
|
017941ad70 | ||
|
69914f861e | ||
|
454f1e30c8 | ||
|
55bc403a95 | ||
|
c9339aeae4 | ||
|
c205ee0381 | ||
|
7577e10f13 | ||
|
e328dc05c2 | ||
|
9a94c9dea1 | ||
|
47ab7b608b | ||
|
56044d8eac | ||
|
c523b4cfc4 | ||
|
3df40f6392 | ||
|
6ebffe3f4a | ||
|
f01234e8a5 | ||
|
43891eda88 | ||
|
132866e2ba | ||
|
a0fcac7777 | ||
|
490895075d | ||
|
5186e76d8d | ||
|
bf46f7fbc1 | ||
|
881602c4b9 | ||
|
c869d07f75 | ||
|
59041af613 | ||
|
0ec53180f2 | ||
|
c92fa6502f | ||
|
07d3158ade | ||
|
d5faa9b133 | ||
|
9e710a3d66 | ||
|
010af53d7c | ||
|
0bef4d7352 | ||
|
688202a7cf | ||
|
691c1381db | ||
|
f01502bda2 | ||
|
42f8e5c0d2 | ||
|
bb8a9f7394 | ||
|
a058c716b9 | ||
|
e64fe7e212 | ||
|
f07d3df40c | ||
|
f73f2c1df1 | ||
|
268d082226 | ||
|
6bc59d789e | ||
|
9a4cc312f4 | ||
|
ffc787b454 | ||
|
bce1ef88c5 | ||
|
a9eb902b83 | ||
|
cb7464cf61 | ||
|
19f1df1054 | ||
|
7f64dde12c | ||
|
c2539c6787 | ||
|
fd885ec239 | ||
|
abbc56e185 | ||
|
a2176110f0 | ||
|
a5185e4612 | ||
|
e90ceaf26b | ||
|
47fd5d7cca | ||
|
2f396fe549 | ||
|
5bda35f6b4 | ||
|
db916653cd | ||
|
784e7814e9 | ||
|
bed2dc470d | ||
|
414bc76b50 | ||
|
6f0caf1fc0 | ||
|
4bcc55372a | ||
|
232a73de31 | ||
|
9aab0135a2 | ||
|
23539f28b1 | ||
|
4a09d23db6 | ||
|
534cd254f4 | ||
|
29c3fa98bc | ||
|
7c9c7f2890 | ||
|
739279da3f | ||
|
7c11832ee0 | ||
|
f5512846d6 | ||
|
9e0dff4461 | ||
|
7129e6e27a | ||
|
79d30a9bfc | ||
|
2c6a8b5451 | ||
|
ad014685ea | ||
|
ff1c95e2c0 | ||
|
89e788bf48 | ||
|
a000e9db5e | ||
|
83158d24d9 | ||
|
6e6e1f1e1a | ||
|
c7a7767339 | ||
|
ac2f980e0f | ||
|
ccab82e054 | ||
|
2e4e8b35b2 | ||
|
53fcd577e8 | ||
|
8430d445d8 | ||
|
c8a757eb07 | ||
|
66a2773c1c | ||
|
17d2770451 | ||
|
3136541ca6 | ||
|
f3a0182e1a | ||
|
6498a13f18 | ||
|
d2debf9ed9 | ||
|
a11cb1f630 | ||
|
34578e6a1e | ||
|
21784052ba | ||
|
aa556af89d | ||
|
069a6926c0 | ||
|
444b319c12 | ||
|
4449cf2437 | ||
|
9fa29f6ad5 | ||
|
a160def2ab | ||
|
909d945af4 | ||
|
f6fde2e217 | ||
|
17bed46ffb | ||
|
72add78e9d | ||
|
ab64467f33 | ||
|
b1bc7e1cdc | ||
|
8692bc2b1c | ||
|
a685368ae9 | ||
|
4e27045f49 | ||
|
db0e091e44 | ||
|
3354b526b5 | ||
|
79d24c9df1 | ||
|
932166484b | ||
|
bd770fa6b1 | ||
|
3d54a17403 | ||
|
3bdb827516 | ||
|
0d94b5e747 | ||
|
0f3d2fed2a | ||
|
844d6d942c | ||
|
ae43fd1929 | ||
|
69ac109cdb | ||
|
9f2a53c166 | ||
|
a69c40d403 | ||
|
c1e4b14a98 | ||
|
096d5612e7 | ||
|
b510dbd91e | ||
|
803949ed8b | ||
|
e219eaa5fc | ||
|
60ee986014 | ||
|
dabe475067 | ||
|
0a9e18ed91 | ||
|
7859889438 | ||
|
a3c87e78aa | ||
|
05af489f64 | ||
|
d5fdc00396 | ||
|
7d278cde21 | ||
|
ad402231db | ||
|
562e6b13cd | ||
|
9c1561ff26 | ||
|
06a04f642f | ||
|
8f0005ce1d | ||
|
51ebfb21d3 | ||
|
f83161dcc2 | ||
|
bf5796c69e | ||
|
214da052b2 | ||
|
b9c9a21696 | ||
|
1f3e4a5ad7 | ||
|
835fe258ab | ||
|
5618358870 | ||
|
d1de55b320 | ||
|
87858a4387 | ||
|
cb48d71056 | ||
|
b2d259b415 | ||
|
533b9535aa | ||
|
7d3ea739a2 | ||
|
c53750694f | ||
|
0dde3262d1 | ||
|
3a903ca628 | ||
|
c7058559c5 | ||
|
13123c51c6 | ||
|
009b79224f | ||
|
7fc6788b35 | ||
|
3ef7c4a569 | ||
|
cd4d717551 | ||
|
d903160215 | ||
|
8fe22fbbb6 | ||
|
06038060b0 | ||
|
4d72d184db | ||
|
20261960f6 | ||
|
d05e023dfe | ||
|
de295fe524 | ||
|
1e2036399e | ||
|
85125e3c90 | ||
|
cfa45994d0 | ||
|
a74a49fb81 | ||
|
74867c90f4 | ||
|
b904993e05 | ||
|
000d3c1c2d | ||
|
9a44175a17 | ||
|
a9e2a2689d | ||
|
fec7a72ef7 | ||
|
9360b17bcb | ||
|
5eeb707142 | ||
|
c1b1c106dc | ||
|
266085d587 | ||
|
6ca12331d6 | ||
|
5fcc4b5b46 | ||
|
a3ff68be5a | ||
|
a1b56ac31f | ||
|
ceb020d0fa | ||
|
fbbcee9cc1 | ||
|
511aa3d80c | ||
|
6c8109b6ae | ||
|
296e498fe9 | ||
|
3f0d63d5b6 | ||
|
49527c36e1 | ||
|
14a8005d45 | ||
|
52032eb081 | ||
|
4fc36efcf2 | ||
|
7f227f6264 | ||
|
d598900df7 | ||
|
b4ca04efaa | ||
|
0eaf71737d | ||
|
1b12d8b4e3 | ||
|
be6e09a02b | ||
|
86276665cd | ||
|
3f2983c157 | ||
|
4f6d6bf2d8 | ||
|
df93a225a8 | ||
|
d8df8cc869 | ||
|
243a728d6c | ||
|
6e18d60de4 | ||
|
dbd453876e | ||
|
732ff00cac | ||
|
2ac69a89e3 | ||
|
4e5e6efdb1 | ||
|
e193c30695 | ||
|
6bf3640e8f | ||
|
5dcde81c58 | ||
|
30abe6eacd | ||
|
c0546396bf | ||
|
ef100f6166 | ||
|
3428a65b1c | ||
|
91e0babd93 | ||
|
952b331c22 | ||
|
e44bc63209 | ||
|
c2ea95c067 | ||
|
f25f815bef | ||
|
a0315dac8c | ||
|
ec36c7c792 | ||
|
9be49e7b93 | ||
|
90824e056c | ||
|
1093c372eb | ||
|
ff66707a4c | ||
|
128eca1a5b | ||
|
4f10be3f13 | ||
|
b687e11813 | ||
|
eca442bf35 | ||
|
ede8a77718 | ||
|
85ed9ad1ce | ||
|
f97b19554f | ||
|
a5ee35c812 | ||
|
d784fea1cd | ||
|
728849964e | ||
|
09537bd44d | ||
|
484a668c0a | ||
|
bc24ef23de | ||
|
ea549d6c19 | ||
|
7118411b89 | ||
|
2c6f87acd3 | ||
|
211416d2fd | ||
|
0eeb93ee0c | ||
|
b35712fa40 | ||
|
ee9b8756d9 | ||
|
9792f5b95c | ||
|
d8d4fd9285 | ||
|
9a38ad1b7b | ||
|
db181f4aa6 | ||
|
04ae04e17b | ||
|
ae3837be1d | ||
|
20036e6c36 | ||
|
e13a4eb45e | ||
|
cb865e3b86 | ||
|
61f0023c37 | ||
|
e5a42b1ba1 | ||
|
359cb18d8d | ||
|
b89ad962f4 | ||
|
58ca95e719 | ||
|
a26a154bc9 | ||
|
fed562405d | ||
|
248cf38d79 | ||
|
3d0921ee54 | ||
|
c29b660dbf | ||
|
b2f4ceee8e | ||
|
b6e0b5b388 | ||
|
494e0d6ddd | ||
|
2cfcbdb300 | ||
|
07d7381b4d | ||
|
d19ac157b0 | ||
|
6698b70f98 | ||
|
d464c1ffe8 | ||
|
42c659555c | ||
|
120f15ca50 | ||
|
4e63b2cbb5 | ||
|
f2118d6e7f | ||
|
52739e44ad | ||
|
12c2e6bf42 | ||
|
ae74f71a1e | ||
|
930c05621e | ||
|
48c7130008 | ||
|
3eefdec9b6 | ||
|
e7f0447342 | ||
|
90cb51becb | ||
|
e54a13743c | ||
|
07b81efd24 | ||
|
390be3f0b3 | ||
|
9d7ce2745f | ||
|
f8c0d87b6f | ||
|
02c531dfb5 | ||
|
5a428b462d | ||
|
6cc8040510 | ||
|
5856b6a41f | ||
|
d3a7eac62f | ||
|
a75fb35fc8 | ||
|
c5b5d554bc | ||
|
2720ffa12a | ||
|
bafe94c5c7 | ||
|
6a9bcc6e14 | ||
|
b00aea7aa5 | ||
|
322df409c2 | ||
|
b30df2b227 | ||
|
6c097233a9 | ||
|
4b3e9b8479 | ||
|
097eea7d5f | ||
|
622f550cc9 | ||
|
8d77c72c33 | ||
|
928da0ec02 | ||
|
f5aa75a3a5 | ||
|
529c2870fc | ||
|
ce4d8fb85f | ||
|
0aa7280f94 | ||
|
5a895e9685 | ||
|
8aa2d602c5 | ||
|
8f42fb976f | ||
|
ea30b9f5bc | ||
|
c622c30297 | ||
|
fe4d2f08a5 | ||
|
11429b213c | ||
|
eaa07014e0 | ||
|
8682c44957 | ||
|
20dd65b281 | ||
|
45253b398c | ||
|
e1f2cbf831 | ||
|
8ebd086aac | ||
|
9f428e471b | ||
|
907061c15e | ||
|
ee98423715 | ||
|
d98e16226b | ||
|
53fa2336b8 | ||
|
f5694d7cf6 | ||
|
7900a09763 | ||
|
f2b758f503 | ||
|
2decc105a2 | ||
|
41df9a33a4 | ||
|
36ffc92e00 | ||
|
3d7f542e49 | ||
|
ebe460aad1 | ||
|
5553d98e47 | ||
|
5838fa39ff | ||
|
63f614ebe3 | ||
|
f026b5d597 | ||
|
fe30873247 | ||
|
1e1702e676 | ||
|
f8fa865ab2 | ||
|
6e3d26185c | ||
|
c13988fbeb | ||
|
7b95e4c457 | ||
|
6e4ab93ff9 | ||
|
41345dd546 | ||
|
87f226258a | ||
|
82c8c438f7 | ||
|
1a30454d1e | ||
|
e37e9db7eb | ||
|
87a09640ba | ||
|
90e8fe81e1 | ||
|
c9c7fed1f6 | ||
|
7c097b19ba | ||
|
0f61836b10 | ||
|
b11b83f0e2 | ||
|
7084bfc8bc | ||
|
3491b0cff9 | ||
|
fb750e38bb | ||
|
3a413760f3 | ||
|
41a6c47ac2 | ||
|
e3268a62f4 | ||
|
cdaf5d0761 | ||
|
79b705d235 | ||
|
d7bcb012f6 | ||
|
ec72cf1538 | ||
|
3dabf05370 | ||
|
f4f16f95f7 | ||
|
b96885f05e | ||
|
f944d3146a | ||
|
9f58f5cb80 | ||
|
b0c22e1d57 | ||
|
506e3db601 | ||
|
d3b8d7a1b7 | ||
|
51231f116c | ||
|
d0aa64a51b | ||
|
b5ae0bdca3 | ||
|
463d1f63a8 | ||
|
c7b2149e1a | ||
|
8220accbe8 | ||
|
d3d63d6a59 | ||
|
17cce2602c | ||
|
0931098a2c | ||
|
982ebe6a46 | ||
|
ba2afc6429 | ||
|
21adb8f61f | ||
|
e083529784 | ||
|
9cd3479218 | ||
|
b76201967a | ||
|
dc6e03d38c | ||
|
c8602ba8a2 | ||
|
ec14165262 | ||
|
2c998a6fd2 | ||
|
0d9d78a721 | ||
|
e5c90b986c | ||
|
317b68bc08 | ||
|
7a6b779e77 | ||
|
454737b5bf | ||
|
4438c23a72 | ||
|
228c5710e7 | ||
|
2c4fcfc0b9 | ||
|
68b41fc82f | ||
|
434ca8952e | ||
|
19ba351f57 | ||
|
72a3420944 | ||
|
a7d166b52f | ||
|
06642ef9f7 | ||
|
38632a190e | ||
|
7b2f1a713b | ||
|
8bdf4f839a | ||
|
301569e809 | ||
|
bb765237db | ||
|
3d345113cc | ||
|
66afe7c6fc | ||
|
d681c7dc89 | ||
|
5f3247cfc0 | ||
|
96896fd2c8 | ||
|
16b9311995 | ||
|
6c375255c4 | ||
|
2c8c4d7268 | ||
|
3f5e56c75e | ||
|
76609fde49 | ||
|
673234e449 | ||
|
31d1ae269a | ||
|
b311cebaed | ||
|
81b17cd323 | ||
|
7c0efe2914 | ||
|
0de4509da6 | ||
|
4239d49582 | ||
|
6a60ee963d | ||
|
d1949a72aa | ||
|
118f95b62e | ||
|
3052bfcc16 | ||
|
05ce00a49a | ||
|
071ff40f20 | ||
|
2a0bffc2a0 | ||
|
a41af75643 | ||
|
7f9949fc4c | ||
|
23c7d67425 | ||
|
2d3765522e | ||
|
43ad610a66 | ||
|
9ef7545150 | ||
|
7c5f2431db | ||
|
2138919700 | ||
|
366ff25690 | ||
|
5769a70d02 | ||
|
03d2e89f31 | ||
|
7fd1a6a766 | ||
|
caaea17eec | ||
|
8ab21ea485 | ||
|
e163ee0158 | ||
|
b0421706d5 | ||
|
af622cb71e | ||
|
ae04bcfc43 | ||
|
dc3d2c0c2d | ||
|
6c47c075aa | ||
|
e0f6b6f97b | ||
|
ad6d560a15 | ||
|
c744f7441f | ||
|
3fb7516d72 | ||
|
257b0a8d67 | ||
|
1007bc87e8 | ||
|
cf91180e9a | ||
|
3f87486de3 | ||
|
07f2c179c2 | ||
|
6c404a3557 | ||
|
db13c754a5 | ||
|
9858a03a12 | ||
|
4a4ed663e0 | ||
|
dbbd7fcca0 | ||
|
5cf0f000db | ||
|
ae9c80de37 | ||
|
f9c4aeaae1 | ||
|
7143367610 | ||
|
eb84867721 | ||
|
fec29f22bc | ||
|
3bef7f999b | ||
|
fb22ba116f | ||
|
6b8a75bc99 | ||
|
dc5e586b99 | ||
|
c41f57686b | ||
|
c12595fa61 | ||
|
7d0205011a | ||
|
14a3dd5634 | ||
|
5b6445c1d0 | ||
|
2a620e9aa2 | ||
|
bc0c276364 | ||
|
1481ed8438 | ||
|
ff184c6780 | ||
|
0886e02435 | ||
|
190ad30a7b | ||
|
74df5b3869 | ||
|
468dbc7746 | ||
|
5ebd1eaa8d | ||
|
c5bc971f17 | ||
|
e763606da0 | ||
|
a2aacb28ff | ||
|
0ebcc329a3 | ||
|
105db5752b | ||
|
bdc647404f | ||
|
87e2e1b7aa | ||
|
607f5a712f | ||
|
10299855a5 | ||
|
06fc171980 | ||
|
92822060b2 | ||
|
1f7b7ea4ff | ||
|
eb844a2193 | ||
|
c40050f496 | ||
|
ddbd7f73c3 | ||
|
fc0919ed25 | ||
|
1ea9bce9b1 | ||
|
01906f8371 | ||
|
e88b4905bf | ||
|
afd95915e4 | ||
|
96d698e429 | ||
|
edb49c652c | ||
|
157411a199 | ||
|
224b059e30 | ||
|
0291ad07b0 | ||
|
a761ccfc72 | ||
|
4c66fba4d9 | ||
|
15841a3df6 | ||
|
798a36c2d8 | ||
|
59582ca06e | ||
|
0a3738cfbc | ||
|
d41602ba83 | ||
|
44dc0a9d88 | ||
|
179f45ca9c | ||
|
4471193d9c | ||
|
001d108b96 | ||
|
18ae4d8a39 | ||
|
cc7170eccb | ||
|
3a6cd3ac66 | ||
|
67c353d91b | ||
|
ba16daf56f | ||
|
6ee0915d3f | ||
|
bf52bd6fa3 | ||
|
6fea8fb542 | ||
|
f67601cb0c | ||
|
a6043a6ba8 | ||
|
88fbffaf49 | ||
|
3c138f6fe3 | ||
|
1c6b989590 | ||
|
e55c306a90 | ||
|
572f0f0156 | ||
|
e0c6689cb8 | ||
|
ab1e334e3e | ||
|
15a9f0e328 | ||
|
03fda64eae | ||
|
86b2c25c16 | ||
|
d67090f752 | ||
|
e56c0fce43 | ||
|
f232d121d2 | ||
|
4d07f85874 | ||
|
0575dd0112 | ||
|
53dc45e6e3 | ||
|
a595624527 | ||
|
139346addf | ||
|
bae9b3817d | ||
|
e903bf03d1 | ||
|
3a425de23e | ||
|
6fa16dd85e | ||
|
d140d6423b | ||
|
311f3d9a23 | ||
|
a753fedf7b | ||
|
de109e65c4 | ||
|
f7c0e64843 | ||
|
cb0e15a1e6 | ||
|
0ef87a90fe | ||
|
12c86a8fda | ||
|
a860b7cbaf | ||
|
8ac2c33059 | ||
|
91c5ff3bbf | ||
|
f0d22226a9 | ||
|
c4e998e165 | ||
|
30a6d4e304 | ||
|
ba4e195cde | ||
|
99eb51b4e1 | ||
|
9d09768bd1 | ||
|
dbeddb5559 | ||
|
221867ca37 | ||
|
24d9ce3e7c | ||
|
427ac0d620 | ||
|
149182a3cd | ||
|
124e421b61 | ||
|
646093d74a | ||
|
e162e7d580 | ||
|
8ae64c16e2 | ||
|
866adfd768 | ||
|
5da114b070 | ||
|
ed0cd2c1b5 | ||
|
412afabc1c | ||
|
1bab644191 | ||
|
ddabeed530 | ||
|
d86cacddf9 | ||
|
b8cf7b113e | ||
|
dae4c18c9e | ||
|
a7f4fc202b | ||
|
8b5db046be | ||
|
509b612b0f | ||
|
e959384f02 | ||
|
8c6371a416 | ||
|
c8ec463f7a | ||
|
57ea2cc410 | ||
|
194d23e878 | ||
|
e20d125709 | ||
|
3f512ee337 | ||
|
1d2f7f6d0d | ||
|
ea74634e93 | ||
|
1558b91dde | ||
|
1bbedd4ddd | ||
|
0c211c1bc7 | ||
|
65ab539516 | ||
|
a7dedd9296 | ||
|
d4f6ef320e | ||
|
88e3d1d6ba | ||
|
522030be12 | ||
|
72487d0477 | ||
|
7d70b6b3a3 | ||
|
a46a78b97f | ||
|
cbc2e76c74 | ||
|
7f13148ef4 | ||
|
bd226fc4e6 | ||
|
383cb8afef | ||
|
1c9762c3eb | ||
|
fbf0dcb259 | ||
|
d850fc8cab | ||
|
12ee7e71e3 | ||
|
b0209ce796 | ||
|
50e589a239 | ||
|
ad94031d84 | ||
|
02d3f8f3a0 | ||
|
c1e3ca14dc | ||
|
349ba9ef90 | ||
|
e21f15865c | ||
|
48d0285c93 | ||
|
75fd3b13bf | ||
|
1ecf020703 | ||
|
1ea8a4ef18 | ||
|
b07271fdf8 | ||
|
585902ad87 | ||
|
6f692c08a1 | ||
|
f07c0f8ccb | ||
|
0b6ba08175 | ||
|
5a8b4f9682 | ||
|
06874a8bad | ||
|
cc0e65e51c | ||
|
0ee01ef534 | ||
|
769ccd0f62 | ||
|
79abf8a50f | ||
|
22a7f51a9a | ||
|
2b5e91e32e | ||
|
6b84afdeeb | ||
|
a26129d283 | ||
|
ef37995a71 | ||
|
658946c214 | ||
|
a41422a7f4 | ||
|
0aaa0f1f4a | ||
|
bcdc6abbf8 | ||
|
b809e2deb0 | ||
|
9c28d4db7a | ||
|
19628caf13 | ||
|
eebe632337 | ||
|
7206593bc9 | ||
|
c2aa97dba2 | ||
|
70e79d313c | ||
|
9715d1de0a | ||
|
8440cef85b | ||
|
374d33464c | ||
|
59a79376cb | ||
|
c6c7699c86 | ||
|
77bde6c1c0 | ||
|
8bcad215ef | ||
|
5d02fe7a3e | ||
|
957a73772d | ||
|
a3bd35bd0c | ||
|
d6d933e8d5 | ||
|
8faeb46334 | ||
|
5f3e359ab6 | ||
|
d9763747d3 | ||
|
a23998a8f3 | ||
|
fabb0119ef | ||
|
487bc3a3c9 | ||
|
b84b312f44 | ||
|
71f84d4499 | ||
|
d04722f799 | ||
|
c3baa6ecbb | ||
|
5575d70531 | ||
|
34ca8072ff | ||
|
60e063e484 | ||
|
a9c0df9627 | ||
|
925e1c787e | ||
|
07c09fee81 | ||
|
143027d9fc | ||
|
18c8eaddb4 | ||
|
a87e0b6b80 | ||
|
fd4dde338a | ||
|
266e9a2df1 | ||
|
a8c89ab3fc | ||
|
9ec2dda809 | ||
|
e15667aa2f | ||
|
87d76c813a | ||
|
d826cd20e0 | ||
|
4dc40f4f4a | ||
|
0d32f2f838 | ||
|
6844b5aa48 | ||
|
c6c7cc7c1f | ||
|
cc55071afd | ||
|
1c698ff626 | ||
|
24e1161d3c | ||
|
0adca3f7a1 | ||
|
586197d591 | ||
|
73461fca08 | ||
|
e30a6e51a7 | ||
|
f29e729852 | ||
|
9baf39a262 | ||
|
b3f16cbee2 | ||
|
d3971342d8 | ||
|
73acf77646 | ||
|
c946f9457f | ||
|
4d28dfb9e6 | ||
|
0a5812f168 | ||
|
a8a1eef67a | ||
|
9b5cfb114d | ||
|
fd07e8e831 | ||
|
605b27a550 | ||
|
4056e98a43 | ||
|
fa83ac6b0b | ||
|
139e5dfda7 | ||
|
9f33928d38 | ||
|
4f308cdf62 | ||
|
1804158370 | ||
|
28b475ce7b | ||
|
b51dddcdc4 | ||
|
c0708dd41b | ||
|
3eff164421 | ||
|
d45bb86bcd | ||
|
024e48dcba | ||
|
2861c54ad7 | ||
|
e43486d4a1 | ||
|
885c0f90ec | ||
|
aa2730f07f | ||
|
f521caa013 | ||
|
026272428d | ||
|
337917c4d9 | ||
|
93fbe4c71c | ||
|
c759e49570 | ||
|
cdde59f436 | ||
|
4ef5a12e60 | ||
|
3136efc10d | ||
|
4f66ed834b | ||
|
0f5ab96310 | ||
|
fdbf495f15 | ||
|
055dce8f40 | ||
|
d692d7b79b | ||
|
ebe44bf04e | ||
|
b84c4d8530 | ||
|
314ed77d77 | ||
|
343ac49b39 | ||
|
4dbde5f886 | ||
|
165bb84bf5 | ||
|
e47a99c42a | ||
|
2a2e420353 | ||
|
ed96c35dc1 | ||
|
927947841c | ||
|
d69622fa9c | ||
|
b26dbaee68 | ||
|
083d44f676 | ||
|
b8a2ca9e5a | ||
|
71aab84949 | ||
|
4019f98594 | ||
|
42d9c851f1 | ||
|
b05cbfd8f9 | ||
|
36088bad6c | ||
|
42a76abaa7 | ||
|
d9bf247dee | ||
|
18f3109cee | ||
|
3c81209b34 | ||
|
ecc9501387 | ||
|
6e7a7bac35 | ||
|
c58f620d09 | ||
|
52fc42ca8f | ||
|
872957da4e | ||
|
790fb3a31a | ||
|
63aedf6912 | ||
|
ee569590a6 | ||
|
dead85ee75 | ||
|
2e9d81bdda | ||
|
346aae9d42 | ||
|
0eb6010448 | ||
|
40380a96c4 | ||
|
b5bec951c0 | ||
|
f17b90d30c | ||
|
b1eda34239 | ||
|
767951addb | ||
|
fdbb9b345c | ||
|
2afe15c4a3 | ||
|
f363b745ff | ||
|
30da459114 | ||
|
948032d8a3 | ||
|
aafcbd082e | ||
|
03e13834b9 | ||
|
cb225bd8f2 | ||
|
08754a3c71 | ||
|
d373b65c3e | ||
|
0713ff4f94 | ||
|
4e8e44a788 | ||
|
f245b24f30 | ||
|
a9386ef070 | ||
|
682f5859ae | ||
|
a0a25fc6ea | ||
|
e44205bb33 | ||
|
f124357734 | ||
|
69d226d489 | ||
|
12329170f1 | ||
|
9e1a6f6ff9 | ||
|
bbfbfd8956 | ||
|
e1e13bbfdc | ||
|
705335a220 | ||
|
3f6eb545e2 | ||
|
fb44f55379 | ||
|
edea7a2b9c | ||
|
d3144ea253 | ||
|
3f1644fad6 | ||
|
58e6dfbbdb | ||
|
9482e7b9f9 | ||
|
919f091820 | ||
|
34efc162a2 | ||
|
c4a2361451 | ||
|
3f08738b67 | ||
|
671fcab5c8 | ||
|
067fd52b5c | ||
|
a3f9eeed9f | ||
|
8e341da95c | ||
|
df04e14503 | ||
|
784efd7053 | ||
|
75c139ace8 | ||
|
a55229619e | ||
|
e4fcb01b6a | ||
|
8178324266 | ||
|
73f2273d71 | ||
|
198d5a8720 | ||
|
6ad66e3d42 | ||
|
90628d7ee7 | ||
|
bba53d9f7a | ||
|
c289c20b88 | ||
|
8ca2144a74 | ||
|
b771bf89b0 | ||
|
79e525d260 | ||
|
dc9d6b5bf3 | ||
|
1f2d2e8d62 | ||
|
857778b922 | ||
|
86ba4c99ca | ||
|
b4e0849690 | ||
|
f4793f0df0 | ||
|
7d5efa8a76 | ||
|
89e15a2f5d | ||
|
2da0560c68 | ||
|
973e1b51c1 | ||
|
4988d36ba2 | ||
|
a22f4eebab | ||
|
405a3c3327 | ||
|
ff644a2ca1 | ||
|
25694bdfdd | ||
|
dcef46eeea | ||
|
3a403daf6b | ||
|
09a870fa43 | ||
|
d420a25b94 | ||
|
58ee0de242 | ||
|
0d2d356ddb | ||
|
6ef82feac4 | ||
|
710aa8aa5a | ||
|
3ea5038905 | ||
|
89192f4e69 | ||
|
121af2e631 | ||
|
e68d3a699d | ||
|
9442e2ea30 | ||
|
899d1b5361 | ||
|
8a6502aaa4 | ||
|
32a85dc172 | ||
|
30cb57b32c | ||
|
d18a35c449 | ||
|
12030d99e9 | ||
|
fce947e0f4 | ||
|
2e8f16c972 | ||
|
bb1dcea894 | ||
|
5b8ac8354e | ||
|
ff9305976b | ||
|
9199747fc3 | ||
|
6c36b6dd6c | ||
|
e556fdae00 | ||
|
9c20cc13a3 | ||
|
75067b3cf3 | ||
|
88fe0e1bb8 | ||
|
3fca602809 | ||
|
9d227eb205 | ||
|
0e3a831df9 | ||
|
fc9ddd974e | ||
|
10e9b18ca7 | ||
|
d9c00752c0 | ||
|
1034cd0cb4 | ||
|
677e1b8e4e | ||
|
ea962ee2ac | ||
|
73843307f0 | ||
|
053b4dcc30 | ||
|
5f27c4c1e7 | ||
|
20e757b2a5 | ||
|
42e8c8b643 | ||
|
d0f707f33d | ||
|
83f9fba796 | ||
|
8d551acfb5 | ||
|
7ed4347de5 | ||
|
d30ffe59bc | ||
|
e56edac012 | ||
|
8d83b9b1de | ||
|
430fc81aab | ||
|
9ba1790863 | ||
|
7dfb6c3ed7 | ||
|
70a035f13d | ||
|
b70681960f | ||
|
5920bb9b35 | ||
|
af440c1703 | ||
|
41917433bd | ||
|
8c63520bac | ||
|
31e6991f24 | ||
|
26ff36479a | ||
|
fc669d8645 | ||
|
c85373f911 | ||
|
08afc2a0a9 | ||
|
35b742c1e8 | ||
|
3560b7a7f8 | ||
|
b03fb1f73f | ||
|
697b8d6bd3 | ||
|
82951a2716 | ||
|
2e217ac51e | ||
|
dd7c37e130 | ||
|
6a6f0ca9cb | ||
|
6f9551f1cb | ||
|
1a507e34b0 | ||
|
09e468211a | ||
|
cefbe3ccc2 | ||
|
0838fc6390 | ||
|
3d6d497df3 | ||
|
f0a0d62a5b | ||
|
1f91b015ab | ||
|
629fbd14ad | ||
|
054423d016 | ||
|
d4fbed617f | ||
|
f06bc5b375 | ||
|
cdec3f5868 | ||
|
ad463fb831 | ||
|
ce61a43a13 | ||
|
c4c758cc17 | ||
|
9d493af4b0 | ||
|
391e9c7f07 | ||
|
390d6f5a8d | ||
|
12b5dfd4da | ||
|
45db7b738e | ||
|
8aefff3758 | ||
|
3910b88ee9 | ||
|
6e4c276d1f | ||
|
9bcda8d239 | ||
|
8aa54e7cff | ||
|
885b241709 | ||
|
f6344a01c5 | ||
|
20cb64e557 | ||
|
84e7c2ccab | ||
|
840421c7c6 | ||
|
222ab46cff | ||
|
d125c47081 | ||
|
6155633e85 | ||
|
6ac3640c95 | ||
|
fae3d8db54 | ||
|
7466d8438b | ||
|
bb4f0d4295 | ||
|
c5201e1847 | ||
|
3d2127478d | ||
|
d0149b00d7 | ||
|
8f914adf7a | ||
|
1948b455be | ||
|
ab02df8cd1 | ||
|
c44f53e185 | ||
|
fed4e17188 | ||
|
f712a32238 | ||
|
6be22ce24b | ||
|
532e055b7c | ||
|
da18852892 | ||
|
5b12d0746c | ||
|
a944e7ea7f | ||
|
a9677cbe33 | ||
|
e899e83543 | ||
|
5bf59a2cd7 | ||
|
08513b1897 | ||
|
2ad6ec42dd | ||
|
41319d5069 | ||
|
56220bdd23 | ||
|
09b49cda66 | ||
|
c921d40a9f | ||
|
4f871e64b1 | ||
|
be30dcfdbb | ||
|
2b51da9af7 | ||
|
4750a90f80 | ||
|
fdd01746fe | ||
|
578273e517 | ||
|
b020d4a0fb | ||
|
aab58522ad | ||
|
e7c0233ca6 | ||
|
9b93191e17 | ||
|
fc3d02f28f | ||
|
7abc5b2184 | ||
|
c401cbb150 | ||
|
bf5de3c686 | ||
|
05b3f16f58 | ||
|
7099f9d98d | ||
|
ba472b71d9 | ||
|
663cb5214f | ||
|
5942694e6f | ||
|
268fea2a1c | ||
|
6fdef19b2c | ||
|
1e126f74d1 | ||
|
d52393da1b | ||
|
98617b342b | ||
|
7a08470ca1 | ||
|
05ec1d133d | ||
|
01bc2ab948 | ||
|
46f3f929bc | ||
|
1c814c8ec6 | ||
|
1aabfec757 | ||
|
754b3128a3 | ||
|
2f17d27ca7 | ||
|
cd236932de | ||
|
97634a34d1 | ||
|
ee62d21ba1 | ||
|
98f0ba6bb1 | ||
|
bf0709edf6 | ||
|
8bb4628586 | ||
|
dc962d7a3f | ||
|
f82cd1f2cc | ||
|
a29c6076f7 | ||
|
db2c5f4fbe | ||
|
1fc55fe66d | ||
|
a04a6a9602 | ||
|
ca2abaa613 | ||
|
29f1538d90 | ||
|
de25fb4a6c | ||
|
178456394e | ||
|
6ee66a6efc | ||
|
8543e3c5f9 | ||
|
3a07cf4a74 | ||
|
1dda02513c | ||
|
2663e8c1b2 | ||
|
e591ab20cf | ||
|
ba6bd9186b | ||
|
e9efe8d0f0 | ||
|
dc37cf94b3 | ||
|
5e59f725c0 | ||
|
700d2473a0 | ||
|
ec13baee65 | ||
|
e47bff4bed | ||
|
4f043a34e0 | ||
|
37917959fc | ||
|
b5ca7c1971 | ||
|
0ed7d2466d | ||
|
b35a2611af | ||
|
b314aa599c | ||
|
7c40574cf4 | ||
|
36bc8ee0f7 | ||
|
328e7bb241 | ||
|
cfa2134468 | ||
|
796ad86236 | ||
|
b68895d129 | ||
|
6e719c751d | ||
|
17b287e7bf | ||
|
0d4c692262 | ||
|
54cb83cd4d | ||
|
c9a2b9ac2b | ||
|
7196ad55f1 | ||
|
7c994cefee | ||
|
6f5982b9a7 | ||
|
a3378ee9fc | ||
|
8b273361cb | ||
|
c994254e4b | ||
|
d889f5af5a | ||
|
2b074fb581 | ||
|
5ac091b867 | ||
|
144f957675 | ||
|
8d35759719 | ||
|
01f8a0bd87 | ||
|
32db0692a3 | ||
|
b696cade13 | ||
|
fe102eaa5b | ||
|
59b69d3767 | ||
|
dbda709ce3 | ||
|
497177760b | ||
|
91c70189fd | ||
|
95e5437f44 | ||
|
165279fae9 | ||
|
76fabbe0ba | ||
|
1277344ec8 | ||
|
ed6962c413 | ||
|
26d68da791 | ||
|
1d1f86cb9c | ||
|
e04d4df889 | ||
|
13c0d09c25 | ||
|
13a6851a10 | ||
|
1cb0bfd1e7 | ||
|
ce2f96bc0d | ||
|
3e3b9bcff5 | ||
|
a6b95b7d53 | ||
|
a4000c606c | ||
|
44df5e3081 | ||
|
2aaa7de246 | ||
|
d624e9d18f | ||
|
9bc479dbcb | ||
|
f40db6836e | ||
|
38ade0ea7d | ||
|
189bfa238a | ||
|
1d68d8064c | ||
|
e3693820e5 | ||
|
c55c731237 | ||
|
fc3a05db7a | ||
|
0a2d4b11a8 | ||
|
f91f61f8d4 | ||
|
ff41896cc8 | ||
|
5eb960dd3f | ||
|
d26a7521b0 | ||
|
a3e252dece | ||
|
da15a35063 | ||
|
0ef30ff665 | ||
|
87e1cadcb0 | ||
|
0735ad8de3 | ||
|
f8d4866cbc | ||
|
ecaaa33fdc | ||
|
7386ca4d0c | ||
|
b9353d781a | ||
|
e8b02a39b2 | ||
|
e6bde18b04 | ||
|
2b03e3ca99 | ||
|
91bad45ec1 | ||
|
fdfef34b37 | ||
|
122e711d28 | ||
|
abfdd76f01 | ||
|
0744d360cc | ||
|
3eb727f3ca | ||
|
aa99618dd6 | ||
|
7acdaaf977 | ||
|
e124934502 | ||
|
405141964e | ||
|
04d4e0f3d9 | ||
|
8e8a5d7e52 | ||
|
a8965d486d | ||
|
5f374b192b | ||
|
d0afcbd295 | ||
|
3449fc6a64 | ||
|
5762512710 | ||
|
5f88f85278 | ||
|
5c960d720b | ||
|
ae55aac31b | ||
|
6e05bb7e74 | ||
|
b4a6cf5310 | ||
|
9357415020 | ||
|
40624a2443 | ||
|
798ed69085 | ||
|
a03fa654f3 | ||
|
0737f186fe | ||
|
ebbaada218 | ||
|
61cc8e57ba | ||
|
dfdbce7108 | ||
|
19c33e5e32 | ||
|
be202b94d5 | ||
|
544c21ba3a | ||
|
ba5566c4a1 | ||
|
c1eac4b0a9 | ||
|
dd46215fbe | ||
|
814fba1ade | ||
|
e6e0b97226 | ||
|
24452f43df | ||
|
78a427ad2c | ||
|
ffa4991cb4 | ||
|
71b8bf786f | ||
|
984ebf5e9b | ||
|
5c96b78d72 | ||
|
146b1619f1 | ||
|
de32133e75 | ||
|
0d3b618c0b | ||
|
16300e471f | ||
|
1a6fb270b4 | ||
|
2560aa210b | ||
|
2398d09ba4 | ||
|
d69e21a0af | ||
|
dcad51ec87 | ||
|
4349bcad39 | ||
|
6aee8410eb | ||
|
1c248875b4 | ||
|
c13550bcb6 | ||
|
1cd7d50b85 | ||
|
dfc4566257 | ||
|
7fd1e122d7 | ||
|
d82e65e0e2 | ||
|
6e70eb821e | ||
|
0cb8bf54d8 | ||
|
aa96842c84 | ||
|
3a91cf964d | ||
|
e8b3a18c45 | ||
|
e9b5d0aa20 | ||
|
a3e16b12b6 | ||
|
e6ccf7c66c | ||
|
29307e4566 | ||
|
4e8a631483 | ||
|
f8abc5b881 | ||
|
2d4683260b | ||
|
5287637ffd | ||
|
b6631943f3 | ||
|
7a104714c4 | ||
|
58334ba46d | ||
|
289d9244b0 | ||
|
a5691d4cd1 | ||
|
cf40e7bccf | ||
|
aecd1169fd | ||
|
7a45eede4a | ||
|
d94994b1f4 | ||
|
b4b217ade5 | ||
|
eee6501a18 | ||
|
328def15a2 | ||
|
ccbb9300f4 | ||
|
05f5ce10c8 | ||
|
6f26c6b58e | ||
|
7212902eb8 | ||
|
dceda81ff2 | ||
|
427aad7b15 | ||
|
cd533a92cb | ||
|
72b504ca2e | ||
|
3f06a00904 | ||
|
7218468e18 | ||
|
ebe04d88b0 | ||
|
dfc7a2ce26 | ||
|
11d380cfd8 | ||
|
640663269f | ||
|
f646002543 | ||
|
344cf5b718 | ||
|
7f7289bed9 | ||
|
96381b0ff3 | ||
|
1d36de0fbb | ||
|
c38452bb43 | ||
|
c5f75d2af3 | ||
|
e9cea63f52 | ||
|
4bd2570416 | ||
|
66a1d33481 | ||
|
d0aa685788 | ||
|
4dc91f0366 | ||
|
bfd984568f | ||
|
5ec650697c | ||
|
1ad1e42fb9 | ||
|
097fc7f7b6 | ||
|
a2eece166e | ||
|
87e4d3557a | ||
|
a72810805f | ||
|
2d74893dd2 | ||
|
457a6c6bee | ||
|
3386a80945 | ||
|
f5ce76d52e | ||
|
e3ea0c9b97 | ||
|
5bb84b1548 | ||
|
d9ec09c396 | ||
|
a3381c3724 | ||
|
4465bcd28c | ||
|
11fc1380f7 | ||
|
fd235db083 | ||
|
7f471eb318 | ||
|
69ec667c35 | ||
|
bc54558c3c | ||
|
fdb7a3d716 | ||
|
354b34ea1a | ||
|
d91afb44bb | ||
|
1329a9338d | ||
|
de373f2ddc | ||
|
343d5e97b4 | ||
|
63a99bb3bc | ||
|
1787c499ff | ||
|
24a1820266 | ||
|
010639eba5 | ||
|
280d8c1172 | ||
|
fd49a767bb | ||
|
56b5ee1703 | ||
|
877592d0a4 | ||
|
82187df277 | ||
|
b67cf6e986 | ||
|
e38f84cb64 | ||
|
1fe068de96 | ||
|
914af6bdfe | ||
|
1ce4774db7 | ||
|
6e485c2a7b | ||
|
9736ae4655 | ||
|
989aecd253 | ||
|
aae8cce991 | ||
|
faf30c45ec | ||
|
b354beb244 | ||
|
70d5255a48 | ||
|
abe0b35261 | ||
|
e0bc0afc78 | ||
|
36b422605b | ||
|
c8a854cc4a | ||
|
a93078cb32 | ||
|
7c723753e6 | ||
|
73518f83b5 | ||
|
e85a6f604f | ||
|
bebc67ec72 | ||
|
b4267dc5a7 | ||
|
c409ef2e4d | ||
|
a623269d2f | ||
|
5d7289caad | ||
|
35d3c4aee4 | ||
|
3d7657e466 | ||
|
997fb23b2d | ||
|
fe63eaec05 | ||
|
77c95c7f24 | ||
|
ebe9bfe05b | ||
|
dd7fd86c3d | ||
|
755166deec | ||
|
6bbdecfd7e | ||
|
95e7b5cd44 | ||
|
f797b18618 | ||
|
3887bc06b1 | ||
|
f53448ab4b | ||
|
d054dcf796 | ||
|
ddf4bac12e | ||
|
3ab7f120da | ||
|
834a2947dd | ||
|
5e28efeca2 | ||
|
7f311a2852 | ||
|
bae108a7ae | ||
|
8c0e535b29 | ||
|
5480d7bcef | ||
|
02c7c47ece | ||
|
13fbbcb4f3 | ||
|
c175f31ea7 | ||
|
cfa69ccf43 | ||
|
fef245e07c | ||
|
5ef61615ce | ||
|
186e6f13da | ||
|
b2b37159d5 | ||
|
6265047606 | ||
|
9ebaa17ad8 | ||
|
df38124295 | ||
|
fd6b8cdab0 | ||
|
99e6e3cc27 | ||
|
c896352a20 | ||
|
e1fe418927 | ||
|
2faba4eb3e | ||
|
b5fe00acc2 | ||
|
c4ffe8ad0b | ||
|
5fd32ddc17 | ||
|
dccc33c454 | ||
|
773c5c33e0 | ||
|
f8f79ecf99 | ||
|
8657394219 | ||
|
d80f8248b8 | ||
|
55d8398445 | ||
|
06132eec9b | ||
|
5b7535a628 | ||
|
ad837ae9cf | ||
|
142fcc94a3 | ||
|
526b7e63c6 | ||
|
bc3e647fc3 | ||
|
ce34dff75f | ||
|
19f4f57c8c | ||
|
eff2b11d81 | ||
|
df28e21b54 | ||
|
4faba7c569 | ||
|
b5ede6ab85 | ||
|
0dbaa60945 | ||
|
e84d3ed9db | ||
|
4ac501214d | ||
|
b248387f32 | ||
|
eeb8efc0b1 | ||
|
2c84b5db5b | ||
|
a1cafe8843 | ||
|
574f6a239d | ||
|
9bb93b6fc0 | ||
|
eb22cc206b | ||
|
b64ce68971 | ||
|
3bfd76f9d4 | ||
|
88c4a0fc7f | ||
|
3db76b355a | ||
|
876d8fdd8e | ||
|
013af48c51 | ||
|
6e38700f26 | ||
|
7d6f5ecb56 | ||
|
fd5da7c92b | ||
|
e6f97df7a7 | ||
|
f31ed78711 | ||
|
aa181c12ff | ||
|
1a8951e82d | ||
|
3b97f4f3e5 | ||
|
90b34b936f | ||
|
76876a11f0 | ||
|
4a97dee930 | ||
|
a5c5215959 | ||
|
d68b83af1d | ||
|
19221fd2bc | ||
|
c1a3f11583 | ||
|
038cd428d3 | ||
|
b1b1c9a91a | ||
|
1bc68bd2cf | ||
|
bb718951ed | ||
|
b11d08f6b0 | ||
|
495d14b69d | ||
|
baf7a803ae | ||
|
f4bbff9e9c | ||
|
e48a2c92d4 | ||
|
394d956a37 | ||
|
b62377b374 | ||
|
d7c0cad962 | ||
|
ed91b960e2 | ||
|
a99497b5ce | ||
|
4c299794a9 | ||
|
45317aa8e0 | ||
|
15beff979f | ||
|
8cb609f2b2 | ||
|
8460bb2bdf | ||
|
8871609660 | ||
|
1961071ff3 | ||
|
8d12afe1e9 | ||
|
cdd93a4cd8 | ||
|
b37b898653 | ||
|
1e5b8d0e5b | ||
|
5d642ab042 | ||
|
ec5abfe6f2 | ||
|
9c916053b1 | ||
|
3ef8324ff7 | ||
|
d9a9b4cab4 | ||
|
5ad9ee9f5b | ||
|
c52f0965e7 | ||
|
182cab66c4 | ||
|
6b1ad27167 | ||
|
531aaba3a0 | ||
|
b78922b14a | ||
|
26c2198838 | ||
|
a3b82ff2e9 | ||
|
36f7f7729f | ||
|
620f3fb25a | ||
|
eed9304664 | ||
|
a2da2da87b | ||
|
3013ee034a | ||
|
1fb2545712 | ||
|
6c118ef1fe | ||
|
51fe0a4db8 | ||
|
5553c11ddd | ||
|
adc2b7869d | ||
|
99f78224ac | ||
|
c279a9ba14 | ||
|
9e95b512f5 | ||
|
62073c1085 | ||
|
1b93ed57ed | ||
|
be79f00dff | ||
|
2c27cf68a6 | ||
|
fd667bdd5f | ||
|
cfbc5c16cd | ||
|
2ba510bb89 | ||
|
b09ddfee2f | ||
|
b05b4aa5ce | ||
|
f6cb127479 | ||
|
7b7c84a9fe | ||
|
4215c94b92 | ||
|
f7525d6dd5 | ||
|
086ca39f10 | ||
|
08042bf61f | ||
|
53c5d801f8 | ||
|
c46bb9ed88 | ||
|
c19ff094b1 | ||
|
39e6306364 | ||
|
0c8520ee8c | ||
|
f8d3f9f2f5 | ||
|
a3b5e71547 | ||
|
f2d17d73a5 | ||
|
45a341dfd1 | ||
|
04f52e9de6 | ||
|
76ba39d60b | ||
|
ce3c2f6bee | ||
|
8b659d8fc3 | ||
|
2fa20670c3 | ||
|
d199de5185 | ||
|
0fa022c367 | ||
|
58559d9db8 | ||
|
e47794030f | ||
|
657a57d266 | ||
|
6348bc3df1 | ||
|
1ef75a1a23 | ||
|
d7ee0af9f7 | ||
|
2e9a5c3db6 | ||
|
425b9da534 | ||
|
c8e71cacee | ||
|
3f3018aef2 | ||
|
00faea17e2 | ||
|
b5274624ac | ||
|
18d02c4c39 | ||
|
e39a3565e5 | ||
|
8ebee7e0f2 | ||
|
9f340a7562 | ||
|
df1ae06d30 | ||
|
53faae58dc | ||
|
85f8548d5f | ||
|
1054307414 | ||
|
5182d62de1 | ||
|
0a64cae0da | ||
|
86e940a9ae | ||
|
9033bf7ee7 | ||
|
0d51908f40 | ||
|
088341fa7c | ||
|
3354374972 | ||
|
40aa623ac3 | ||
|
8e27317b65 | ||
|
cf68c75fa8 | ||
|
30b6628910 | ||
|
e9b90a8650 | ||
|
d5c7de285e | ||
|
c28ddf5698 | ||
|
fec33a6a41 | ||
|
401dd27276 | ||
|
f822b7c1d9 | ||
|
0fe7076e88 | ||
|
e0457ff333 | ||
|
2279efb2cf | ||
|
121bc50341 | ||
|
86b7ff977c | ||
|
2de4aecc4f | ||
|
b18aa6209a | ||
|
2a2cd83b74 | ||
|
8351e6876d | ||
|
9fa9f3eb96 | ||
|
3f694feb94 | ||
|
d0ed0d83cc | ||
|
f01beda01c | ||
|
63f418c534 | ||
|
cce5ceb0ec | ||
|
e5ac5620d7 | ||
|
f6335cf993 | ||
|
30df1c0ec8 | ||
|
fe2aa64ea9 | ||
|
dc6b404bc9 | ||
|
8cee545568 | ||
|
b94d134650 | ||
|
bcf9772206 | ||
|
43ec3ff136 | ||
|
b2b0375646 | ||
|
517bc10e3b | ||
|
c6a82f8bc1 | ||
|
f74f07507b | ||
|
48c30e91a6 | ||
|
54c0a88464 | ||
|
34b1991bdd | ||
|
df6b32086b | ||
|
4c0a650052 | ||
|
f55ab3d465 | ||
|
96d72d83e2 | ||
|
9ba4809eed | ||
|
c4de897e2a | ||
|
af2497291f | ||
|
8756577518 | ||
|
8e30fddfae | ||
|
71a1bffba5 | ||
|
715c554e88 | ||
|
b4a245b281 | ||
|
3ac706401f | ||
|
9077c0babd | ||
|
51966025d6 | ||
|
493597a500 | ||
|
2c2aaf90b3 | ||
|
0a35d3d13d | ||
|
d264ee7e97 | ||
|
0184a10c21 | ||
|
b46114c20f | ||
|
c43e9775e0 | ||
|
9ee1a8faa0 | ||
|
bd08a0c423 | ||
|
ff84b6da91 | ||
|
67ad32a06d | ||
|
1e179b1bd6 | ||
|
41cc2fa194 | ||
|
86facf23c2 | ||
|
eedb60b296 | ||
|
3f776be478 | ||
|
692627c771 | ||
|
a435c3234b | ||
|
13cbe49a19 | ||
|
9bf33b330b | ||
|
2e2376d854 | ||
|
82eab1c349 | ||
|
660209473b | ||
|
7977a367fd | ||
|
8dd88f18f8 | ||
|
b1b1e5e332 | ||
|
9dd04a43ba | ||
|
07cb3f5777 | ||
|
f00a490006 | ||
|
d607847d49 | ||
|
47b1393664 | ||
|
8588c064b7 | ||
|
e3654e914c | ||
|
c6578d1ec0 | ||
|
98061bc423 | ||
|
2c1e1c8727 | ||
|
0ad5bd5174 | ||
|
eeb8fd38bf | ||
|
820b8dc0c5 | ||
|
1ef4d149a7 | ||
|
59464226c0 | ||
|
64e51e0617 | ||
|
4f7a5232a2 | ||
|
4336f7442a | ||
|
7229c63dc2 | ||
|
0a272cab3f | ||
|
2a1a48ae56 | ||
|
b038e247d5 | ||
|
5716fa6d50 | ||
|
3d03dcdb3f | ||
|
432ddc28ff | ||
|
4adf0f3eeb | ||
|
9bc2bbf64f | ||
|
887aa1a9ab | ||
|
680a4698d7 | ||
|
254be7bb5d | ||
|
9c62fb8723 | ||
|
453112f342 | ||
|
324c2957fd | ||
|
303e7ae18f | ||
|
af53674200 | ||
|
552892f264 | ||
|
32ed378668 | ||
|
54f082b6e8 | ||
|
686b6a8649 | ||
|
d67edd7c3c | ||
|
d80f54dfa5 | ||
|
3764bd12af | ||
|
4e827697e8 | ||
|
1bb418e02f | ||
|
8b5cd3d045 | ||
|
baae70c001 | ||
|
ae8648282c | ||
|
3a9ffe412c | ||
|
a335ef7949 | ||
|
9ea8f738fc | ||
|
162af93f88 | ||
|
abef3ae37d | ||
|
6558579e7b | ||
|
fab2200666 | ||
|
b76649ea94 | ||
|
45c5d5206b | ||
|
4afe3c8478 | ||
|
a0ef5a7e20 | ||
|
7d47a7679e | ||
|
2057d62aac | ||
|
9f0722dfb3 | ||
|
70a1dbecc7 | ||
|
21355cbf52 | ||
|
cbe6726eb3 | ||
|
735ac962c3 | ||
|
fca3e45826 | ||
|
4479344db0 | ||
|
06446bbd4d | ||
|
a10ca5753f | ||
|
8afda6d3f1 | ||
|
d7ee62e951 | ||
|
5371195caa | ||
|
d635434a5e | ||
|
e69d243a59 | ||
|
32ad889061 | ||
|
5fc7c352cd | ||
|
4c6ee076c2 | ||
|
5144644ba0 | ||
|
0852ffbda9 | ||
|
4178bf7476 | ||
|
9e6a13f5a9 | ||
|
fbe27a7ce4 | ||
|
cec070446f | ||
|
4be074c8fa | ||
|
7e038457bc | ||
|
3ead141240 | ||
|
6aafc793dd | ||
|
9bbcd92ce4 | ||
|
ec60ffc00e | ||
|
1747986a88 | ||
|
409762e55c | ||
|
552b0a1f91 | ||
|
ab0dc4244b | ||
|
5e181b6b8e | ||
|
8627e0a626 | ||
|
8eda0c4326 | ||
|
b50fbb7750 | ||
|
2585452cbb | ||
|
44f2b31a98 | ||
|
82373b169d | ||
|
533b2bf7bd | ||
|
fb0712859c | ||
|
2b37f9bc62 | ||
|
d116ced2ca | ||
|
c0209c5494 | ||
|
a3c7379a9d | ||
|
a8cea3d339 | ||
|
899139ba99 | ||
|
61495065ec | ||
|
4e7c58085e | ||
|
6961cbfb3c | ||
|
ac1260b163 | ||
|
9f6067b68f | ||
|
b01194ef8d | ||
|
ee157d1cd9 | ||
|
3ae9fea935 | ||
|
ccb14b6831 | ||
|
b56b02683b | ||
|
fc7faa9780 | ||
|
aff1d83e02 | ||
|
7dd3ae05d7 | ||
|
71102a4589 | ||
|
7450a5e8bb | ||
|
3ab323805e | ||
|
1a2677b8ef | ||
|
462cd8f4ca | ||
|
dc76d195bf | ||
|
8ec0773201 | ||
|
6e214de3b3 | ||
|
4669ee62af | ||
|
fccec5fab9 | ||
|
0f01b0752c | ||
|
158c4f3693 | ||
|
2befb9ec5a | ||
|
006e8482fc | ||
|
07029e3dfb | ||
|
cb41838b48 | ||
|
53652d8cee | ||
|
133f91bbf9 | ||
|
91239a55f7 | ||
|
100ba7d1b5 | ||
|
1943df29eb | ||
|
daf1535d05 | ||
|
84e2835686 | ||
|
cbbd22fa5b | ||
|
67734216ab | ||
|
f347770b46 | ||
|
516b264a8f | ||
|
27365f9dd4 | ||
|
b2a400fe50 | ||
|
684e340b54 | ||
|
a7677ff836 | ||
|
0dd7a86948 | ||
|
cb64c34c22 | ||
|
282aa33614 | ||
|
15e5ef9a82 | ||
|
76f7079cb1 | ||
|
2fc7208333 | ||
|
a27c19cb5c | ||
|
7e8423a470 | ||
|
17ea793a94 | ||
|
da237f41a9 | ||
|
9d312fbeec | ||
|
fe2867ba1c | ||
|
ba64f36109 | ||
|
b6582c2c6e | ||
|
937e6c3aee | ||
|
ddf5199752 | ||
|
df87493df5 | ||
|
d28b99753e | ||
|
6ce93a9a09 | ||
|
6b187026f5 | ||
|
d814f79fa1 | ||
|
66ad1f5854 | ||
|
952311f101 | ||
|
11d5296e86 | ||
|
b04aa7844f | ||
|
22bae2ac33 | ||
|
76cc07a219 | ||
|
b8f3016eb3 | ||
|
43781fb79a | ||
|
afb27f1e1b | ||
|
b78b21f43e | ||
|
04eb3ada8b | ||
|
7126a9e894 | ||
|
2f4abf3d71 | ||
|
781d077af8 | ||
|
851e96ea23 | ||
|
bd8d28701f | ||
|
623ecc432c | ||
|
5904bbefd3 | ||
|
13b6b4b9a8 | ||
|
d55ea2647f | ||
|
bf8f15471f | ||
|
ab43ddd875 | ||
|
e38e8a0c45 | ||
|
5f78423d35 | ||
|
ffc3968c57 | ||
|
45c8f13d65 | ||
|
7241b30c16 | ||
|
b403dedbfb | ||
|
fffcab6392 | ||
|
3bccd17b81 | ||
|
61303da466 | ||
|
b5b099424f | ||
|
b32dd85a63 | ||
|
e931dada62 | ||
|
230cc212ce | ||
|
87e4054245 | ||
|
e79ddd9c3a | ||
|
cf6c2356b1 | ||
|
47bc5bf351 | ||
|
19399b71c9 | ||
|
356ea9e7db | ||
|
4ab5841b20 | ||
|
2772869fa8 | ||
|
992f710440 | ||
|
ed8529df0a | ||
|
11801d9553 | ||
|
97a70a97cc | ||
|
37e6c07dd8 | ||
|
1e12c1fb7a | ||
|
57dccd844d | ||
|
ba54fe6688 | ||
|
b23792c20f | ||
|
af95fac84c | ||
|
3515d7ac78 | ||
|
a07da2e246 | ||
|
0189b27604 | ||
|
2c2ba94a96 | ||
|
4678bbd765 | ||
|
5bb05bc287 | ||
|
b6648db1ea | ||
|
65efe55972 | ||
|
bf9b7ae3b8 | ||
|
533fac4911 | ||
|
a2a4fc785d | ||
|
e55766b0d9 | ||
|
42e9c465f9 | ||
|
c959bfa577 | ||
|
5fd07993fe | ||
|
7921cac14a | ||
|
3622e2f028 | ||
|
263d6600fb | ||
|
264e526c3d | ||
|
17be6dbcd8 | ||
|
fafd303131 | ||
|
39e44c3167 | ||
|
ebff8fe69f | ||
|
f0db65419b | ||
|
8fda1ebdc1 | ||
|
4ca97770da | ||
|
4b13534eea | ||
|
49986f0b78 | ||
|
ea5ca126c7 | ||
|
05cbdd858f | ||
|
a381fb3cb0 | ||
|
a7a7dec87d | ||
|
df660e9667 | ||
|
1048901abb | ||
|
015d317cdf | ||
|
01265da7eb | ||
|
7e26340170 | ||
|
5e0d815405 | ||
|
0de4797ce0 | ||
|
bee6f01c4a | ||
|
18abd68ec4 | ||
|
456b792297 | ||
|
0327c3816d | ||
|
403a1a9412 | ||
|
0021522956 | ||
|
7746e67d74 | ||
|
4140992fab | ||
|
9064f9eac8 | ||
|
401a907e6e | ||
|
72e0377045 | ||
|
50ff107d7f | ||
|
1c84ef2f93 | ||
|
073e8b1d64 | ||
|
7601649315 | ||
|
5d04f355a1 | ||
|
b0b4faca50 | ||
|
4bd431e1bc | ||
|
44fe4e6205 | ||
|
f2efc000b6 | ||
|
b80904677c | ||
|
fc20065e25 | ||
|
70369b4fa0 | ||
|
8902b0571a | ||
|
794bd9bd13 | ||
|
6828ae2e8c | ||
|
fa0942f136 | ||
|
0b5901506b | ||
|
1c90e2a4f6 | ||
|
1aab6931a6 | ||
|
17af86e051 | ||
|
5579a50ef5 | ||
|
99ddf5fd61 | ||
|
590901e51c | ||
|
4be325d306 | ||
|
fe062e698a | ||
|
05f268065b | ||
|
6f4c4b031f | ||
|
55cd28cb31 | ||
|
6f78086089 | ||
|
4ac351c1f6 | ||
|
9fb63c6224 | ||
|
2c01f17904 | ||
|
9de91675bc | ||
|
c1bdfe3f6d | ||
|
633d60d71d | ||
|
6619e1c0f8 | ||
|
04a2a88c09 | ||
|
5c14871416 | ||
|
660e6256c7 | ||
|
ace0508430 | ||
|
896b1780b4 | ||
|
79fdd2dccb | ||
|
cf1939605e | ||
|
dcaab5fc47 | ||
|
7d53fbf9df | ||
|
c3bd2726c7 | ||
|
3b4c72019a | ||
|
71c25ec898 | ||
|
309bf6d2a3 | ||
|
a3a1a1bc6f | ||
|
19f2e81a3b | ||
|
ed98811342 | ||
|
5d25f96d46 | ||
|
477e6a9430 | ||
|
a5c97797d3 | ||
|
1e7993df3e | ||
|
0cca58d2bb | ||
|
505af8e20c | ||
|
7ad49b91be | ||
|
5c5240519b | ||
|
b9b643afd8 | ||
|
aecf197601 | ||
|
becabaff92 | ||
|
924f910335 | ||
|
2d26fc13a0 | ||
|
a5787e48a1 | ||
|
3b54c5b956 | ||
|
44afef5cd2 | ||
|
8ba73a850e | ||
|
49b1f200a5 | ||
|
54f47409c0 | ||
|
ccc59ee0d7 | ||
|
cbeeb920b2 | ||
|
c696deeff1 | ||
|
ec24eb2c70 | ||
|
85623d625a | ||
|
6acfe02e37 | ||
|
3f944f59b7 | ||
|
f7cf471e93 | ||
|
6f1313e1a4 | ||
|
b813c3ea45 | ||
|
62761f2afd | ||
|
97ed98b22e | ||
|
c88924cfc6 | ||
|
f396485ac4 | ||
|
f3739a77a9 | ||
|
5bbdbed962 | ||
|
31c8c6dfcf | ||
|
de892d4b87 | ||
|
43b5feb087 | ||
|
e7633f6879 | ||
|
bbe51620d4 | ||
|
3ed4038008 | ||
|
f3c6d92b03 | ||
|
499d602ff9 | ||
|
29869d25c6 | ||
|
f74f18f9a3 | ||
|
53cd9f8641 | ||
|
34c6d5a238 | ||
|
ea28be8a95 | ||
|
a706ce2f7e | ||
|
b93d8aa625 | ||
|
5f01f369a9 | ||
|
f35f81dc56 | ||
|
19e2e52d26 | ||
|
518a6006d6 | ||
|
9e74af84e0 | ||
|
6907a384fe | ||
|
3e72a73484 | ||
|
90110bfeac | ||
|
673d3658d7 | ||
|
62a94f1970 | ||
|
1d5ba328d0 | ||
|
de89ada951 | ||
|
cb393d3255 | ||
|
42406c4be8 | ||
|
d54b89e4c1 | ||
|
b86063c27f | ||
|
5964d3d6cb | ||
|
51dc6ffb7e | ||
|
22274ef8aa | ||
|
9e23dfa60c | ||
|
80ea6a5664 | ||
|
db35a2a668 | ||
|
1b907f791c | ||
|
50f05272e5 | ||
|
8e44248758 | ||
|
9594fedc48 | ||
|
683988f987 | ||
|
ed5253a36d | ||
|
9e89a22c58 | ||
|
2b34773630 | ||
|
7292782ef8 | ||
|
082d3aa4a9 | ||
|
8a67e7b8e4 | ||
|
7d465094a0 | ||
|
abd7660c33 | ||
|
5565c16af1 | ||
|
06f8f62948 | ||
|
89766c353b | ||
|
9c5632cb62 | ||
|
a2a92f02d3 | ||
|
299c397d63 | ||
|
7515ca30e3 | ||
|
d3a972de33 | ||
|
c598d35031 | ||
|
2920e58d75 | ||
|
2a08a1f02b | ||
|
4ab0673c80 | ||
|
764290cb9a | ||
|
440ead9328 | ||
|
3f771e4ce8 | ||
|
80f53f4ddc | ||
|
36fd550ab4 | ||
|
4ff65ad731 | ||
|
853f0275a6 | ||
|
0ee66adc16 | ||
|
6c3ae1e29b | ||
|
40ce764ea4 | ||
|
98688b4d88 | ||
|
eafd4a4bff | ||
|
1e27007d44 | ||
|
b875c4e884 | ||
|
e8722696bf | ||
|
a13d42f824 | ||
|
28f7abc2d4 | ||
|
3edf300dd6 | ||
|
24a8eae5c7 | ||
|
f463f63c67 | ||
|
315b12484c | ||
|
1372671779 | ||
|
dfc59c0558 | ||
|
cc8ec956b0 | ||
|
5babcfe869 | ||
|
8f7d07e6bc | ||
|
e4e8f156bd | ||
|
8c5be3eb66 | ||
|
c921eaf947 | ||
|
dcb7ccbaec | ||
|
f84f961805 | ||
|
f9570af63f | ||
|
f77f947359 | ||
|
c5cef06bff | ||
|
5d0197e239 | ||
|
afdf9bfd63 | ||
|
1c04fd9ec0 | ||
|
4430dc01c0 | ||
|
e5862f49c9 | ||
|
510cdbd726 | ||
|
af1d20f51e | ||
|
99414b6d44 | ||
|
72076da069 | ||
|
f76e52e730 | ||
|
95a8fdecb2 | ||
|
1005f7d174 | ||
|
16addfa5ff | ||
|
a2a67eab75 | ||
|
3df7282fc5 | ||
|
e3eaaab755 | ||
|
1cfe684420 | ||
|
8377c6bfa3 | ||
|
f5c6695e13 | ||
|
8c114519e8 | ||
|
0dfe4b4731 | ||
|
caafd18fb9 | ||
|
9420833871 | ||
|
4e104ffcef | ||
|
4da9387f3d | ||
|
cfe30e88e5 | ||
|
e6a7d63ae0 | ||
|
0e10dd4ed4 | ||
|
28891f7d7a | ||
|
ce5dec0c12 | ||
|
47030d4fd7 | ||
|
4a143146c3 | ||
|
3a922e8752 | ||
|
b101712009 | ||
|
4f21ae1cd0 | ||
|
d526cd933f | ||
|
d4667d668e | ||
|
51160d6eb1 | ||
|
16051d01ae | ||
|
79d78376b5 | ||
|
47be819276 | ||
|
4c598a9247 | ||
|
b5d36d7794 | ||
|
acf2ebb924 | ||
|
0dc688ee7e | ||
|
99afb52d19 | ||
|
7a5de7c877 | ||
|
c2fa613721 | ||
|
32d0e916d3 | ||
|
3997415b8f | ||
|
07451d8631 | ||
|
233ceb06b9 | ||
|
ecdba06065 | ||
|
a33a5c106b | ||
|
621b743cab | ||
|
8a0396377b | ||
|
4180affdf1 | ||
|
803ee6582b | ||
|
95487419e7 | ||
|
6661936718 | ||
|
384cba2e19 | ||
|
54b102a92d | ||
|
5a62f49527 | ||
|
bffe719703 | ||
|
5120e41e6a | ||
|
dbfbeea256 | ||
|
c8f27f6cfe | ||
|
dc678ec284 | ||
|
264ba59ffd | ||
|
e7e3d269c1 | ||
|
9e228e499b | ||
|
a8b6ad1d4f | ||
|
1f2127b0cc | ||
|
9e551578fa | ||
|
80ff3827c3 | ||
|
8b1896be9e | ||
|
e98a55a21a | ||
|
d6a8669f61 | ||
|
ddd6372281 | ||
|
df9a4986c5 | ||
|
dc291e72df | ||
|
ee9561ae59 | ||
|
fe9b731b30 | ||
|
aa73abaee5 | ||
|
5bd544b63c | ||
|
c0c9b6d518 | ||
|
977ac4e608 | ||
|
42b618d346 | ||
|
65762755c0 | ||
|
fe3937b755 | ||
|
ae7449ce54 | ||
|
405535d3e8 | ||
|
0d0b21b353 | ||
|
acd67abdb5 | ||
|
0a3d905cf4 | ||
|
a6002f06e0 | ||
|
47abdefae9 | ||
|
3dc0985b0f | ||
|
2ca97407cf | ||
|
2b49d2f131 | ||
|
2fed60d3c4 | ||
|
5343d2348f | ||
|
ae5190c76f | ||
|
eae06eb608 | ||
|
cfa705a863 | ||
|
2cf281ff85 | ||
|
b06cc759d3 | ||
|
dc5c649441 | ||
|
7082fa14ff | ||
|
0f734c5ef8 | ||
|
b059048bd9 | ||
|
4b556e6d3b | ||
|
3eb8f13f35 | ||
|
b7ccb322a3 | ||
|
982cd8bbfd | ||
|
471fb39dbe | ||
|
d97b54fc0a | ||
|
a32b4c0e43 | ||
|
1973bde3e0 | ||
|
6db05720f3 | ||
|
e596fad456 | ||
|
2c4db266b4 | ||
|
25ec8a9092 | ||
|
fdb2e2d4d6 | ||
|
87660fb375 | ||
|
09cd08b58f | ||
|
574d21c916 | ||
|
ea9ee6d0a7 | ||
|
ab78b51a9f | ||
|
c293aa80cf | ||
|
5bdec5b5b2 | ||
|
7e41f58ea6 | ||
|
5f1855196c | ||
|
1275d07e71 | ||
|
cc3c11315d | ||
|
c0ecedb2fe | ||
|
c8d75b6f98 | ||
|
d093c7b35c | ||
|
cc7ad33a4d | ||
|
f83148b000 | ||
|
2c8a198018 | ||
|
4550abc30e | ||
|
d281ff0428 | ||
|
6bc7b8e017 | ||
|
dac4145893 | ||
|
e9bb3f8d1d | ||
|
73cd5897c0 | ||
|
97faca5bbb | ||
|
f536680dd3 | ||
|
05efc70443 | ||
|
2bd5fba0e8 | ||
|
66e5f15f40 | ||
|
3b3d174e23 | ||
|
1580e901de | ||
|
ccc6d698a5 | ||
|
72d3f50be2 | ||
|
eb94bb8f7e | ||
|
e81c4a1ae7 | ||
|
48f591a4bb | ||
|
7fba4ddbd1 | ||
|
0510f340ca | ||
|
1efd85bb5f | ||
|
82899a0f45 | ||
|
30bb23a2b7 | ||
|
f284ee7cd6 | ||
|
966ab3727a | ||
|
d5a19ca5a7 | ||
|
5448add754 | ||
|
e628bfbe34 | ||
|
ec92bb5d75 | ||
|
ea3c45cb16 | ||
|
a1457492b4 | ||
|
0353f952d8 | ||
|
ee3ad27b78 | ||
|
d9dd366665 | ||
|
9842049f21 | ||
|
1028885576 | ||
|
5069952a4a | ||
|
d96e4af643 | ||
|
7ff9aa777a | ||
|
e54ee2d25a | ||
|
aab36b1d41 | ||
|
087fac7ede | ||
|
17c36f9107 | ||
|
c060c48ec8 | ||
|
39594f64e0 | ||
|
6d924143c0 | ||
|
5748f9d64f | ||
|
3e71ff7ab7 | ||
|
ba14d22954 | ||
|
ce4e0932a5 | ||
|
0e4604eeb7 | ||
|
8a29c11904 | ||
|
0db2c71998 | ||
|
5e3e368bb8 | ||
|
c30c4865a4 | ||
|
a0f10bb410 | ||
|
54e9563e92 | ||
|
a49e4f6d43 | ||
|
74e55c2166 | ||
|
b3b816515e | ||
|
fa0b10c274 | ||
|
df881ec2da | ||
|
4779d7b1a7 | ||
|
97bed31aa1 | ||
|
52f9b37eaa | ||
|
f46bca3f23 | ||
|
c1a9323035 | ||
|
a30e797e8c | ||
|
20157940ae | ||
|
6c5a9971fe | ||
|
4f97f5ba15 | ||
|
cdb1292963 | ||
|
b96c73ba64 | ||
|
f3e8c0ee84 | ||
|
ce84101f73 | ||
|
3fb1ca0b7c | ||
|
2c8ac5fb5b | ||
|
76455d8933 | ||
|
558b589715 | ||
|
27cccf9a70 | ||
|
3bcda69839 | ||
|
d062a2f8a6 | ||
|
ddab40c44f | ||
|
ffd08de377 | ||
|
a178201eea | ||
|
fcf86d2ad2 | ||
|
30915541e4 | ||
|
046798d12b | ||
|
d63b782aec | ||
|
adf3557967 | ||
|
f0ca5053fe | ||
|
480bbc9278 | ||
|
884024ddd8 | ||
|
974deb0a9a | ||
|
682d7be285 | ||
|
c397ad9f7b | ||
|
509360d40d | ||
|
685b1ead09 | ||
|
1820a2ccfa | ||
|
6799633ca3 | ||
|
f2c6091a2e | ||
|
89e8d69cbe | ||
|
9c4a6b0988 | ||
|
7d29f31847 | ||
|
e6c5a0fe26 | ||
|
638950f184 | ||
|
a0ae5a2e23 | ||
|
e139944b3a | ||
|
47a2274264 | ||
|
0684698c98 | ||
|
ba0d0664a8 | ||
|
5d0eb21a8f | ||
|
4ba398de53 | ||
|
c6a040f85f | ||
|
f60a86b68d | ||
|
d4f6f9079e | ||
|
5d9ef43b25 | ||
|
d35077e14e | ||
|
81c1cf50df | ||
|
f03f0ec72a | ||
|
edce828ee0 | ||
|
40f749c91b | ||
|
39211b67e0 | ||
|
2ff5ec5ec0 | ||
|
eb189ace78 | ||
|
be68e7465a | ||
|
ac53f8f767 | ||
|
6730937ea3 | ||
|
f01cebdaea | ||
|
7eb81c1185 | ||
|
a58f36a5db | ||
|
fbc1f1f6d8 | ||
|
f760b4e845 | ||
|
fa2a6f3dce | ||
|
85a8659398 | ||
|
6a17e7c6c7 | ||
|
78b7833ea9 | ||
|
ed15916481 | ||
|
5ad8a6ed00 | ||
|
d10afc2732 | ||
|
b85dc1a793 | ||
|
27f83c2602 | ||
|
332b507bc2 | ||
|
5ba877aefd | ||
|
6c2e20d030 | ||
|
a876414c25 | ||
|
c9e4293dea | ||
|
a256eca0b7 | ||
|
fbc5418533 | ||
|
8dd4bf61c2 | ||
|
2cd60187c0 | ||
|
2e747436a7 | ||
|
d131a9d995 | ||
|
2dbdc62166 | ||
|
67fec3a81a | ||
|
3aeb7c88b5 | ||
|
d134469ed3 | ||
|
95708ccc3b | ||
|
1dbc9df337 | ||
|
0a28dbb15d | ||
|
f762242ebb | ||
|
f25358a175 | ||
|
4b8839ef15 | ||
|
b4cd975dc8 | ||
|
dc4750eb91 | ||
|
25488361a5 | ||
|
852700f3d5 | ||
|
865c68bb64 | ||
|
e4da9b9daf | ||
|
23b776e222 | ||
|
57ba754a12 | ||
|
4cc9db7a36 | ||
|
0e83a9c00a | ||
|
f27b248164 | ||
|
0f4f16d6be | ||
|
948eb42287 | ||
|
46c72133dc | ||
|
723abf6259 | ||
|
aa8da91082 | ||
|
719d62ff14 | ||
|
6ed32f4dde | ||
|
ad0ee7b350 | ||
|
4d314779fd | ||
|
f14f840e4a | ||
|
c86b608ab1 | ||
|
58cc975f12 | ||
|
cadae8c549 | ||
|
a0f1b047a7 | ||
|
7105552708 | ||
|
2b7daa462c | ||
|
1a217816e4 | ||
|
a35d5ec515 | ||
|
c64d7e4150 | ||
|
d940bef5dc | ||
|
0bb9ebc0d8 | ||
|
ca10641308 | ||
|
97c43e379f | ||
|
86f51ec2fd | ||
|
1c2dc32484 | ||
|
ba4d1f17e7 | ||
|
53031201e2 | ||
|
863a19276e | ||
|
7d68a1342a | ||
|
5113a9c9e8 | ||
|
f2d32379e5 | ||
|
e2993f68c7 | ||
|
5cf5a784ec | ||
|
0eb1bb372d | ||
|
4a83caf926 | ||
|
c378180b73 | ||
|
c359d6ea5a | ||
|
7530dfe684 | ||
|
7a09536724 | ||
|
6dbb193752 | ||
|
ccd955398f | ||
|
6de5aee07b | ||
|
e97aef9426 | ||
|
2cfb651336 | ||
|
2815680714 | ||
|
fc27dc5caa | ||
|
3d3ad4f42d | ||
|
99f873032b | ||
|
ef2b238290 | ||
|
2ddc572d79 | ||
|
1af28e0d64 | ||
|
81f3805efa | ||
|
540d9e79a4 | ||
|
a070ac34ba | ||
|
0fecbc40ba | ||
|
68e7eafe79 | ||
|
7a5865fd07 | ||
|
2083b8c197 | ||
|
a32574aba0 | ||
|
bc1e0be5d7 | ||
|
dea3df2e40 | ||
|
c8933eb174 | ||
|
d830c5a4c1 | ||
|
b04a9071c0 | ||
|
972aa89548 | ||
|
4283b1534b | ||
|
bc3d9db61e | ||
|
c05f149d67 | ||
|
4276d59cbc | ||
|
f401128b98 | ||
|
957f392e22 | ||
|
18f87873a4 | ||
|
aed22db4c0 | ||
|
f6ea8a9286 | ||
|
f3a07f76d5 | ||
|
4bec0ef246 | ||
|
68458f1cb1 | ||
|
e0036d7e0e | ||
|
0d83a33944 | ||
|
53174fa9aa | ||
|
14ebb357cc | ||
|
ab7001a5a6 | ||
|
95df8ec695 | ||
|
c0e1489fd1 | ||
|
18a289f7ec | ||
|
fdffec3237 | ||
|
a53cac66cd | ||
|
21de3bb377 | ||
|
a6c88f7e6a | ||
|
64a93270d2 | ||
|
afd4082d6f | ||
|
354a42b669 | ||
|
304cd20e8e | ||
|
44d1d459da | ||
|
fc706eafe0 | ||
|
88abaa56cf | ||
|
0bbef6d974 | ||
|
32f8e2b2bc | ||
|
6f0f40360f | ||
|
66e11f7e49 | ||
|
f1901454b5 | ||
|
a38e7b695c | ||
|
d6b98eae6e | ||
|
578cb7b265 | ||
|
38280c9e65 | ||
|
a776751e83 | ||
|
6bd4bd8d8d | ||
|
7a70b6df4d | ||
|
0f0cb53926 | ||
|
8bb5104938 | ||
|
dabbf89580 | ||
|
0eea97796d | ||
|
1e57b40392 | ||
|
3574ad4de5 | ||
|
0e291144a4 | ||
|
4dda4c5075 | ||
|
0871abd6a7 | ||
|
d1ec836e76 | ||
|
e61194f9a0 | ||
|
33e0071d66 | ||
|
59aac908c1 | ||
|
152220567d | ||
|
dce63c4fb7 | ||
|
743154a9c8 | ||
|
2446993726 | ||
|
5ee60209fe | ||
|
ecacc76da1 | ||
|
da7a71e54f | ||
|
2c0d695127 | ||
|
1827d2abde | ||
|
48833c0c8e | ||
|
23ea5aeb42 | ||
|
07ceae19b3 | ||
|
1fa547d059 |
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
__pycache__
|
||||
*.egg-info
|
65
.pylintrc
Normal file
65
.pylintrc
Normal file
@ -0,0 +1,65 @@
|
||||
[MASTER]
|
||||
|
||||
# A comma-separated list of package or module names from where C extensions may
|
||||
# be loaded. Extensions are loading into the active Python interpreter and may
|
||||
# run arbitrary code.
|
||||
extension-pkg-allow-list=apt_pkg
|
||||
|
||||
# Pickle collected data for later comparisons.
|
||||
persistent=no
|
||||
|
||||
# Use all cpus, to speed up testing
|
||||
jobs=0
|
||||
|
||||
|
||||
[MESSAGES CONTROL]
|
||||
|
||||
# Disable the message, report, category or checker with the given id(s). You
|
||||
# can either give multiple identifiers separated by comma (,) or put this
|
||||
# option multiple times (only on the command line, not in the configuration
|
||||
# file where it should appear only once).You can also use "--disable=all" to
|
||||
# disable everything first and then reenable specific checks. For example, if
|
||||
# you want to run only the similarities checker, you can use "--disable=all
|
||||
# --enable=similarities". If you want to run only the classes checker, but have
|
||||
# no Warning level messages displayed, use"--disable=all --enable=classes
|
||||
# --disable=W"
|
||||
disable=fixme,locally-disabled,missing-docstring,useless-option-value,
|
||||
# TODO: Fix all following disabled checks!
|
||||
invalid-name,
|
||||
consider-using-with,
|
||||
too-many-arguments,
|
||||
too-many-branches,
|
||||
too-many-statements,
|
||||
too-many-locals,
|
||||
duplicate-code,
|
||||
too-many-instance-attributes,
|
||||
too-many-nested-blocks,
|
||||
too-many-lines,
|
||||
|
||||
|
||||
[REPORTS]
|
||||
|
||||
# Tells whether to display a full report or only the messages
|
||||
reports=no
|
||||
|
||||
|
||||
[FORMAT]
|
||||
|
||||
# Maximum number of characters on a single line.
|
||||
max-line-length=99
|
||||
|
||||
# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1
|
||||
# tab).
|
||||
indent-string=' '
|
||||
|
||||
|
||||
[BASIC]
|
||||
|
||||
# Allow variables called e, f, lp
|
||||
good-names=i,j,k,ex,Run,_,e,f,lp,me,to
|
||||
|
||||
|
||||
[IMPORTS]
|
||||
|
||||
# Force import order to recognize a module as part of a third party library.
|
||||
known-third-party=debian
|
125
404main
125
404main
@ -1,125 +0,0 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright 2006-2007 (C) Pete Savage <petesavage@ubuntu.com>
|
||||
# Copyright 2007 (C) Siegfried-A. Gevatter <rainct@ubuntu.com>
|
||||
#
|
||||
# ##################################################################
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 2
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# See file /usr/share/common-licenses/GPL for more details.
|
||||
#
|
||||
# ##################################################################
|
||||
#
|
||||
# This script is used to check if a package and all its build
|
||||
# dependencies are in main or not.
|
||||
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
def process_deps(deps):
|
||||
"""Takes a list of (build) dependencies and processes it."""
|
||||
|
||||
for package in [ package.split('|')[0] for package in deps ]:
|
||||
|
||||
# Cut package name (from something like "name ( >= version)")
|
||||
name = package.split(' ')[0]
|
||||
|
||||
if not packages.has_key(name) and name != '':
|
||||
# Check the (build) dependencies recursively
|
||||
find_main(name)
|
||||
|
||||
|
||||
def find_main(pack):
|
||||
"""Searches the dependencies and build dependencies of a package recursively
|
||||
to determine if they are all in the 'main' component or not."""
|
||||
|
||||
global packages
|
||||
|
||||
# Retrieve information about the package
|
||||
out = subprocess.Popen('apt-cache madison ' + pack + ' | grep ' + distro + ' | grep -m 1 Packages', shell=True, stdout=subprocess.PIPE).stdout.read()
|
||||
|
||||
if out.find("/main") != -1:
|
||||
packages[pack] = True
|
||||
return 1
|
||||
else:
|
||||
if not packages.has_key(pack):
|
||||
packages[pack] = False
|
||||
|
||||
# Retrive package dependencies
|
||||
deps = subprocess.Popen('apt-cache show ' + pack + ' | grep -m 1 ^Depends', shell=True, stdout=subprocess.PIPE).stdout.read().split('\n')[0].replace('Depends: ', '').split(', ')
|
||||
|
||||
process_deps(deps)
|
||||
|
||||
# Retrieve package build dependencies
|
||||
deps1 = subprocess.Popen('apt-cache showsrc ' + pack + ' | grep -m 1 ^Build-Depends', shell=True, stdout=subprocess.PIPE).stdout.readlines()
|
||||
deps = []
|
||||
|
||||
for builddep in deps1:
|
||||
if builddep.startswith('Build-Depends'):
|
||||
deps += builddep.strip('\n').replace('Build-Depends: ', '').replace('Build-Depends-Indep: ', '').split(', ')
|
||||
|
||||
process_deps(deps)
|
||||
|
||||
|
||||
def main():
|
||||
|
||||
global packages, distro
|
||||
|
||||
# Check if the amount of arguments is correct
|
||||
if len(sys.argv) < 2 or len(sys.argv) > 3 or sys.argv[1] in ('help', '-h', '--help'):
|
||||
print 'Usage: %s <package name> [<distribution>]' % sys.argv[0]
|
||||
sys.exit(1)
|
||||
|
||||
if len(sys.argv) == 3 and sys.argv[2]:
|
||||
distro = sys.argv[2]
|
||||
if not subprocess.Popen('apt-cache madison bash | grep ' + distro, shell=True, stdout=subprocess.PIPE).stdout.read():
|
||||
print '«%s» is not a valid distribution.' % distro
|
||||
print 'Remember that for 404main to work with a certain distribution it must be in your /etc/apt/sources.list file.'
|
||||
sys.exit(1)
|
||||
else:
|
||||
distro = subprocess.Popen('lsb_release -cs', shell=True, stdout=subprocess.PIPE).stdout.read().strip('\n')
|
||||
|
||||
if not subprocess.Popen('apt-cache madison ' + sys.argv[1] + ' | grep ' + distro, shell=True, stdout=subprocess.PIPE).stdout.read():
|
||||
print 'Can\'t find package «%s» in distribution «%s».' % (sys.argv[1], distro)
|
||||
sys.exit(1)
|
||||
|
||||
print 'Checking package «%s» in distribution «%s»...' % (sys.argv[1], distro)
|
||||
|
||||
find_main(sys.argv[1])
|
||||
|
||||
# True if everything checked until the point is in main
|
||||
all_in_main = True
|
||||
|
||||
for package in packages:
|
||||
if not packages[package]:
|
||||
if all_in_main:
|
||||
print 'The following packages aren\'t in main:'
|
||||
all_in_main = False
|
||||
print ' ', package
|
||||
|
||||
if all_in_main:
|
||||
print 'Package «%s» and all its dependencies and build dependencies are in main.' % sys.argv[1]
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
# Global variable to hold the status of all packages
|
||||
packages = {}
|
||||
|
||||
# Global variable to hold the target distribution
|
||||
distro = ''
|
||||
|
||||
try:
|
||||
main()
|
||||
except KeyboardInterrupt:
|
||||
print 'Aborted.'
|
||||
sys.exit(1)
|
4
GPL-3
4
GPL-3
@ -77,7 +77,7 @@ modification follow.
|
||||
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
|
||||
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.
|
||||
@ -510,7 +510,7 @@ actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.
|
||||
|
||||
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
|
54
README.updates
Normal file
54
README.updates
Normal file
@ -0,0 +1,54 @@
|
||||
Updating the ubuntu-dev-tools package
|
||||
-------------------------------------
|
||||
|
||||
Here are the 10 steps that are recommended to take when updating the
|
||||
ubuntu-dev-tools package in Ubuntu.
|
||||
|
||||
1) Make sure there are no new commits to the package's master branch in git:
|
||||
|
||||
git pull
|
||||
|
||||
2) Check to make sure that all approved merges have been merged:
|
||||
|
||||
https://code.launchpad.net/ubuntu-dev-tools/+activereviews
|
||||
|
||||
3) Make sure that there is no low lying fruit that can be fixed at:
|
||||
|
||||
https://bugs.launchpad.net/ubuntu/+source/ubuntu-dev-tools
|
||||
https://bugs.debian.org/src:ubuntu-dev-tools
|
||||
|
||||
4) Check that the test suite passes
|
||||
|
||||
setup.py test
|
||||
|
||||
5) Before uploading the package change the UNRELEASED field in the
|
||||
debian/changelog file to unstable. (ubuntu-dev-tools is maintained in Debian
|
||||
and synced to Ubuntu)
|
||||
|
||||
If there is no UNRELEASED entry, make sure that the version for the current
|
||||
one has not been uploaded by someone else already:
|
||||
|
||||
https://tracker.debian.org/pkg/ubuntu-dev-tools
|
||||
https://launchpad.net/ubuntu/+source/ubuntu-dev-tools/+publishinghistory
|
||||
|
||||
6) Once the target release has been changed, commit it to git (where X.YY is
|
||||
the new package version):
|
||||
|
||||
git commit -a -m "Uploaded X.YY to RELEASE."
|
||||
|
||||
7) Create the new source package and tag the new release in git:
|
||||
|
||||
gbp buildpackage -S --git-tag
|
||||
|
||||
For a full list of tags, please see: 'git tag -l'. This is so we can track
|
||||
which git commit is in which release and makes bug triaging easier.
|
||||
|
||||
8) Upload the package to Debian with dput as normal:
|
||||
|
||||
dput ftp-master ubuntu-dev-tools_X.YY_$arch.changes
|
||||
|
||||
9) Create a new blank entry with dch -i and mark it as UNRELEASED.
|
||||
|
||||
10) After it's been dinstalled in Debian, sync to Ubuntu:
|
||||
|
||||
syncpackage ubuntu-dev-tools
|
9
TODO
9
TODO
@ -1,7 +1,10 @@
|
||||
TODO for the ubuntu-dev-tools package
|
||||
-------------------------------------
|
||||
|
||||
- Fix all bugs at Launchpad:
|
||||
https://bugs.launchpad.net/ubuntu/+source/ubuntu-dev-tools
|
||||
- Create missing manpages (for all commands).
|
||||
- Modify 404main to use the more robust python-apt module.
|
||||
|
||||
- Create missing and improve existing manpages (for all commands).
|
||||
|
||||
- Ask all authors who have used GPL if they are happy with using "or any later"
|
||||
versions of the license.
|
||||
- pull-lp-source: determine the current development distro programatically.
|
||||
|
495
backportpackage
Executable file
495
backportpackage
Executable file
@ -0,0 +1,495 @@
|
||||
#!/usr/bin/python3
|
||||
# -*- coding: utf-8 -*-
|
||||
# ##################################################################
|
||||
#
|
||||
# Copyright (C) 2010-2011, Evan Broder <evan@ebroder.net>
|
||||
# Copyright (C) 2010, Benjamin Drung <bdrung@ubuntu.com>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; version 2.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# See file /usr/share/common-licenses/GPL-2 for more details.
|
||||
#
|
||||
# ##################################################################
|
||||
|
||||
import argparse
|
||||
import glob
|
||||
import os
|
||||
import shutil
|
||||
import subprocess
|
||||
import sys
|
||||
import tempfile
|
||||
from urllib.parse import quote
|
||||
|
||||
try:
|
||||
import lsb_release
|
||||
except ImportError:
|
||||
lsb_release = None
|
||||
from distro_info import DebianDistroInfo, UbuntuDistroInfo
|
||||
from httplib2 import Http, HttpLib2Error
|
||||
|
||||
from ubuntutools import getLogger
|
||||
from ubuntutools.archive import DebianSourcePackage, DownloadError, UbuntuSourcePackage
|
||||
from ubuntutools.builder import get_builder
|
||||
from ubuntutools.config import UDTConfig, ubu_email
|
||||
from ubuntutools.lp.lpapicache import (
|
||||
Distribution,
|
||||
Launchpad,
|
||||
PackageNotFoundException,
|
||||
SeriesNotFoundException,
|
||||
)
|
||||
from ubuntutools.misc import codename_to_distribution, system_distribution, vendor_to_distroinfo
|
||||
from ubuntutools.question import YesNoQuestion
|
||||
|
||||
Logger = getLogger()
|
||||
|
||||
|
||||
def error(msg, *args):
|
||||
Logger.error(msg, *args)
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
def check_call(cmd, *args, **kwargs):
|
||||
Logger.debug(" ".join(cmd))
|
||||
ret = subprocess.call(cmd, *args, **kwargs)
|
||||
if ret != 0:
|
||||
error("%s returned %d.", cmd[0], ret)
|
||||
|
||||
|
||||
def parse(argv):
|
||||
usage = "%(prog)s [options] <source package name or .dsc URL/file>"
|
||||
parser = argparse.ArgumentParser(usage=usage)
|
||||
parser.add_argument(
|
||||
"-d",
|
||||
"--destination",
|
||||
metavar="DEST",
|
||||
dest="dest_releases",
|
||||
default=[],
|
||||
action="append",
|
||||
help="Backport to DEST release (default: current release)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"-s",
|
||||
"--source",
|
||||
metavar="SOURCE",
|
||||
dest="source_release",
|
||||
help="Backport from SOURCE release (default: devel release)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"-S",
|
||||
"--suffix",
|
||||
metavar="SUFFIX",
|
||||
help="Suffix to append to version number (default: ~ppa1 when uploading to a PPA)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"-e",
|
||||
"--message",
|
||||
metavar="MESSAGE",
|
||||
default="No-change",
|
||||
help='Changelog message to use instead of "No-change" '
|
||||
"(default: No-change backport to DEST.)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"-b",
|
||||
"--build",
|
||||
default=False,
|
||||
action="store_true",
|
||||
help="Build the package before uploading (default: %(default)s)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"-B",
|
||||
"--builder",
|
||||
metavar="BUILDER",
|
||||
help="Specify the package builder (default: pbuilder)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"-U",
|
||||
"--update",
|
||||
default=False,
|
||||
action="store_true",
|
||||
help="Update the build environment before attempting to build",
|
||||
)
|
||||
parser.add_argument("-u", "--upload", metavar="UPLOAD", help="Specify an upload destination")
|
||||
parser.add_argument(
|
||||
"-k", "--key", dest="keyid", help="Specify the key ID to be used for signing."
|
||||
)
|
||||
parser.add_argument(
|
||||
"--dont-sign", dest="keyid", action="store_false", help="Do not sign the upload."
|
||||
)
|
||||
parser.add_argument(
|
||||
"-y",
|
||||
"--yes",
|
||||
dest="prompt",
|
||||
default=True,
|
||||
action="store_false",
|
||||
help="Do not prompt before uploading to a PPA",
|
||||
)
|
||||
parser.add_argument(
|
||||
"-v", "--version", metavar="VERSION", help="Package version to backport (or verify)"
|
||||
)
|
||||
parser.add_argument(
|
||||
"-w",
|
||||
"--workdir",
|
||||
metavar="WORKDIR",
|
||||
help="Specify a working directory (default: temporary dir)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"-r",
|
||||
"--release-pocket",
|
||||
default=False,
|
||||
action="store_true",
|
||||
help="Target the release pocket in the .changes file. "
|
||||
"Necessary (and default) for uploads to PPAs",
|
||||
)
|
||||
parser.add_argument(
|
||||
"-c", "--close", metavar="BUG", help="Bug to close in the changelog entry."
|
||||
)
|
||||
parser.add_argument(
|
||||
"-m", "--mirror", metavar="URL", help="Preferred mirror (default: Launchpad)"
|
||||
)
|
||||
parser.add_argument(
|
||||
"-l",
|
||||
"--lpinstance",
|
||||
metavar="INSTANCE",
|
||||
help="Launchpad instance to connect to (default: production)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--no-conf",
|
||||
default=False,
|
||||
action="store_true",
|
||||
help="Don't read config files or environment variables",
|
||||
)
|
||||
parser.add_argument("package_or_dsc", help=argparse.SUPPRESS)
|
||||
|
||||
args = parser.parse_args(argv)
|
||||
config = UDTConfig(args.no_conf)
|
||||
if args.builder is None:
|
||||
args.builder = config.get_value("BUILDER")
|
||||
if not args.update:
|
||||
args.update = config.get_value("UPDATE_BUILDER", boolean=True)
|
||||
if args.workdir is None:
|
||||
args.workdir = config.get_value("WORKDIR")
|
||||
if args.lpinstance is None:
|
||||
args.lpinstance = config.get_value("LPINSTANCE")
|
||||
if args.upload is None:
|
||||
args.upload = config.get_value("UPLOAD")
|
||||
if args.keyid is None:
|
||||
args.keyid = config.get_value("KEYID")
|
||||
if not args.upload and not args.workdir:
|
||||
parser.error("Please specify either a working dir or an upload target!")
|
||||
if args.upload and args.upload.startswith("ppa:"):
|
||||
args.release_pocket = True
|
||||
|
||||
return args, config
|
||||
|
||||
|
||||
def find_release_package(mirror, workdir, package, version, source_release, config):
|
||||
srcpkg = None
|
||||
|
||||
if source_release:
|
||||
distribution = codename_to_distribution(source_release)
|
||||
if not distribution:
|
||||
error("Unknown release codename %s", source_release)
|
||||
info = vendor_to_distroinfo(distribution)()
|
||||
source_release = info.codename(source_release, default=source_release)
|
||||
else:
|
||||
distribution = system_distribution()
|
||||
mirrors = [mirror] if mirror else []
|
||||
|
||||
mirrors.append(config.get_value(f"{distribution.upper()}_MIRROR"))
|
||||
|
||||
if not version:
|
||||
archive = Distribution(distribution.lower()).getArchive()
|
||||
try:
|
||||
spph = archive.getSourcePackage(package, source_release)
|
||||
except (SeriesNotFoundException, PackageNotFoundException) as e:
|
||||
error("%s", str(e))
|
||||
version = spph.getVersion()
|
||||
|
||||
if distribution == "Debian":
|
||||
srcpkg = DebianSourcePackage(package, version, workdir=workdir, mirrors=mirrors)
|
||||
elif distribution == "Ubuntu":
|
||||
srcpkg = UbuntuSourcePackage(package, version, workdir=workdir, mirrors=mirrors)
|
||||
|
||||
return srcpkg
|
||||
|
||||
|
||||
def find_package(mirror, workdir, package, version, source_release, config):
|
||||
"Returns the SourcePackage"
|
||||
if package.endswith(".dsc"):
|
||||
# Here we are using UbuntuSourcePackage just because we don't have any
|
||||
# "general" class that is safely instantiable (as SourcePackage is an
|
||||
# abstract class). None of the distribution-specific details within
|
||||
# UbuntuSourcePackage is relevant for this use case.
|
||||
return UbuntuSourcePackage(
|
||||
version=version, dscfile=package, workdir=workdir, mirrors=(mirror,)
|
||||
)
|
||||
|
||||
if not source_release and not version:
|
||||
info = vendor_to_distroinfo(system_distribution())
|
||||
source_release = info().devel()
|
||||
|
||||
srcpkg = find_release_package(mirror, workdir, package, version, source_release, config)
|
||||
if version and srcpkg.version != version:
|
||||
error(
|
||||
"Requested backport of version %s but version of %s in %s is %s",
|
||||
version,
|
||||
package,
|
||||
source_release,
|
||||
srcpkg.version,
|
||||
)
|
||||
|
||||
return srcpkg
|
||||
|
||||
|
||||
def get_backport_version(version, suffix, upload, release):
|
||||
distribution = codename_to_distribution(release)
|
||||
if not distribution:
|
||||
error("Unknown release codename %s", release)
|
||||
if distribution == "Debian":
|
||||
debian_distro_info = DebianDistroInfo()
|
||||
debian_codenames = debian_distro_info.supported()
|
||||
if release in debian_codenames:
|
||||
release_version = debian_distro_info.version(release)
|
||||
if not release_version:
|
||||
error("Can't find the release version for %s", release)
|
||||
backport_version = f"{version}~bpo{release_version}+1"
|
||||
else:
|
||||
error("%s is not a supported release (%s)", release, debian_codenames)
|
||||
elif distribution == "Ubuntu":
|
||||
series = Distribution(distribution.lower()).getSeries(name_or_version=release)
|
||||
|
||||
backport_version = f"{version}~bpo{series.version}.1"
|
||||
else:
|
||||
error("Unknown distribution «%s» for release «%s»", distribution, release)
|
||||
if suffix is not None:
|
||||
backport_version += suffix
|
||||
elif upload and upload.startswith("ppa:"):
|
||||
backport_version += "~ppa1"
|
||||
return backport_version
|
||||
|
||||
|
||||
def get_old_version(source, release):
|
||||
try:
|
||||
distribution = codename_to_distribution(release)
|
||||
archive = Distribution(distribution.lower()).getArchive()
|
||||
pkg = archive.getSourcePackage(
|
||||
source, release, ("Release", "Security", "Updates", "Proposed", "Backports")
|
||||
)
|
||||
return pkg.getVersion()
|
||||
except (SeriesNotFoundException, PackageNotFoundException):
|
||||
pass
|
||||
return None
|
||||
|
||||
|
||||
def get_backport_dist(release, release_pocket):
|
||||
if release_pocket:
|
||||
return release
|
||||
return f"{release}-backports"
|
||||
|
||||
|
||||
def do_build(workdir, dsc, release, builder, update):
|
||||
builder = get_builder(builder)
|
||||
if not builder:
|
||||
return None
|
||||
|
||||
if update:
|
||||
if 0 != builder.update(release):
|
||||
sys.exit(1)
|
||||
|
||||
# builder.build is going to chdir to buildresult:
|
||||
workdir = os.path.realpath(workdir)
|
||||
return builder.build(os.path.join(workdir, dsc), release, os.path.join(workdir, "buildresult"))
|
||||
|
||||
|
||||
def do_upload(workdir, package, bp_version, changes, upload, prompt):
|
||||
print(f"Please check {package} {bp_version} in file://{workdir} carefully!")
|
||||
if prompt or upload == "ubuntu":
|
||||
question = f"Do you want to upload the package to {upload}"
|
||||
answer = YesNoQuestion().ask(question, "yes")
|
||||
if answer == "no":
|
||||
return
|
||||
|
||||
check_call(["dput", upload, changes], cwd=workdir)
|
||||
|
||||
|
||||
def orig_needed(upload, workdir, pkg):
|
||||
"""Avoid a -sa if possible"""
|
||||
if not upload or not upload.startswith("ppa:"):
|
||||
return True
|
||||
ppa = upload.split(":", 1)[1]
|
||||
user, ppa = ppa.split("/", 1)
|
||||
|
||||
version = pkg.version.upstream_version
|
||||
|
||||
http = Http()
|
||||
for filename in glob.glob(os.path.join(workdir, f"{pkg.source}_{version}.orig*")):
|
||||
url = (
|
||||
f"https://launchpad.net/~{quote(user)}/+archive/{quote(ppa)}/+sourcefiles"
|
||||
f"/{quote(pkg.source)}/{quote(pkg.version.full_version)}"
|
||||
f"/{quote(os.path.basename(filename))}"
|
||||
)
|
||||
try:
|
||||
headers = http.request(url, "HEAD")[0]
|
||||
if headers.status != 200 or not headers["content-location"].startswith(
|
||||
"https://launchpadlibrarian.net"
|
||||
):
|
||||
return True
|
||||
except HttpLib2Error as e:
|
||||
Logger.debug(e)
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def do_backport(
|
||||
workdir,
|
||||
pkg,
|
||||
suffix,
|
||||
message,
|
||||
close,
|
||||
release,
|
||||
release_pocket,
|
||||
build,
|
||||
builder,
|
||||
update,
|
||||
upload,
|
||||
keyid,
|
||||
prompt,
|
||||
):
|
||||
dirname = f"{pkg.source}-{release}"
|
||||
srcdir = os.path.join(workdir, dirname)
|
||||
|
||||
if os.path.exists(srcdir):
|
||||
question = f"Working directory {srcdir} already exists. Delete it?"
|
||||
if YesNoQuestion().ask(question, "no") == "no":
|
||||
sys.exit(1)
|
||||
shutil.rmtree(srcdir)
|
||||
|
||||
pkg.unpack(dirname)
|
||||
|
||||
bp_version = get_backport_version(pkg.version.full_version, suffix, upload, release)
|
||||
old_version = get_old_version(pkg.source, release)
|
||||
bp_dist = get_backport_dist(release, release_pocket)
|
||||
|
||||
changelog = f"{message} backport to {release}."
|
||||
if close:
|
||||
changelog += f" (LP: #{close})"
|
||||
check_call(
|
||||
[
|
||||
"dch",
|
||||
"--force-bad-version",
|
||||
"--force-distribution",
|
||||
"--preserve",
|
||||
"--newversion",
|
||||
bp_version,
|
||||
"--distribution",
|
||||
bp_dist,
|
||||
changelog,
|
||||
],
|
||||
cwd=srcdir,
|
||||
)
|
||||
|
||||
cmd = ["debuild", "--no-lintian", "-S", "-nc", "-uc", "-us"]
|
||||
if orig_needed(upload, workdir, pkg):
|
||||
cmd.append("-sa")
|
||||
else:
|
||||
cmd.append("-sd")
|
||||
if old_version:
|
||||
cmd.append(f"-v{old_version}")
|
||||
env = os.environ.copy()
|
||||
# An ubuntu.com e-mail address would make dpkg-buildpackage fail if there
|
||||
# wasn't an Ubuntu maintainer for an ubuntu-versioned package. LP: #1007042
|
||||
env.pop("DEBEMAIL", None)
|
||||
check_call(cmd, cwd=srcdir, env=env)
|
||||
|
||||
fn_base = pkg.source + "_" + bp_version.split(":", 1)[-1]
|
||||
changes = fn_base + "_source.changes"
|
||||
|
||||
if build:
|
||||
if 0 != do_build(workdir, fn_base + ".dsc", release, builder, update):
|
||||
sys.exit(1)
|
||||
|
||||
# None: sign with the default signature. False: don't sign
|
||||
if keyid is not False:
|
||||
cmd = ["debsign"]
|
||||
if keyid:
|
||||
cmd.append("-k" + keyid)
|
||||
cmd.append(changes)
|
||||
check_call(cmd, cwd=workdir)
|
||||
if upload:
|
||||
do_upload(workdir, pkg.source, bp_version, changes, upload, prompt)
|
||||
|
||||
shutil.rmtree(srcdir)
|
||||
|
||||
|
||||
def main(argv):
|
||||
ubu_email()
|
||||
|
||||
args, config = parse(argv[1:])
|
||||
|
||||
Launchpad.login_anonymously(service=args.lpinstance)
|
||||
|
||||
if not args.dest_releases:
|
||||
if lsb_release:
|
||||
distinfo = lsb_release.get_distro_information()
|
||||
try:
|
||||
current_distro = distinfo["ID"]
|
||||
except KeyError:
|
||||
error("No destination release specified and unable to guess yours.")
|
||||
else:
|
||||
err, current_distro = subprocess.getstatusoutput("lsb_release --id --short")
|
||||
if err:
|
||||
error("Could not run lsb_release to retrieve distribution")
|
||||
|
||||
if current_distro == "Ubuntu":
|
||||
args.dest_releases = [UbuntuDistroInfo().lts()]
|
||||
elif current_distro == "Debian":
|
||||
args.dest_releases = [DebianDistroInfo().stable()]
|
||||
else:
|
||||
error("Unknown distribution %s, can't guess target release", current_distro)
|
||||
|
||||
if args.workdir:
|
||||
workdir = os.path.expanduser(args.workdir)
|
||||
else:
|
||||
workdir = tempfile.mkdtemp(prefix="backportpackage-")
|
||||
|
||||
if not os.path.exists(workdir):
|
||||
os.makedirs(workdir)
|
||||
|
||||
try:
|
||||
pkg = find_package(
|
||||
args.mirror, workdir, args.package_or_dsc, args.version, args.source_release, config
|
||||
)
|
||||
pkg.pull()
|
||||
|
||||
for release in args.dest_releases:
|
||||
do_backport(
|
||||
workdir,
|
||||
pkg,
|
||||
args.suffix,
|
||||
args.message,
|
||||
args.close,
|
||||
release,
|
||||
args.release_pocket,
|
||||
args.build,
|
||||
args.builder,
|
||||
args.update,
|
||||
args.upload,
|
||||
args.keyid,
|
||||
args.prompt,
|
||||
)
|
||||
except DownloadError as e:
|
||||
error("%s", str(e))
|
||||
finally:
|
||||
if not args.workdir:
|
||||
shutil.rmtree(workdir)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main(sys.argv))
|
@ -21,7 +21,7 @@ _pbuilder-dist()
|
||||
|
||||
case $prev in
|
||||
build)
|
||||
COMPREPLY=( $( compgen -o filenames -G "$cur*.dsc" ) )
|
||||
_filedir "dsc"
|
||||
;;
|
||||
*)
|
||||
COMPREPLY=( $( compgen -W "$options" | grep "^$cur" ) )
|
||||
@ -30,6 +30,17 @@ _pbuilder-dist()
|
||||
|
||||
return 0
|
||||
}
|
||||
[ "$have" ] && complete -F _pbuilder-dist -o filenames \
|
||||
pbuilder-{dist,dapper,edgy,feisty,gutsy,hardy,intrepid,sarge,etch,lenny,sid}
|
||||
# Make it pbuilder-* if you know how to do it
|
||||
[ "$have" ] && _pbuilder-aliases()
|
||||
{
|
||||
local distro builder arch
|
||||
for distro in $(ubuntu-distro-info --all; debian-distro-info --all) stable testing unstable; do
|
||||
for builder in pbuilder cowbuilder; do
|
||||
echo "$builder-$distro"
|
||||
for arch in i386 amd64 armhf; do
|
||||
echo "$builder-$distro-$arch"
|
||||
done
|
||||
done
|
||||
done
|
||||
return 0
|
||||
}
|
||||
[ "$have" ] && complete -F _pbuilder-dist -o filenames pbuilder-dist cowbuilder-dist $(_pbuilder-aliases)
|
||||
|
191
buildd
191
buildd
@ -1,191 +0,0 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# buildd - command line interface for Launchpad buildd operations.
|
||||
#
|
||||
# Copyright (C) 2007 Canonical Ltd.
|
||||
# Authors:
|
||||
# - Martin Pitt <martin.pitt@canonical.com>
|
||||
# - Jonathan Davies <jpds@ubuntu.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
# Our modules to import.
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
import urllib2
|
||||
from optparse import OptionGroup
|
||||
from optparse import OptionParser
|
||||
from urllib import urlencode
|
||||
|
||||
# ubuntu-dev-tools modules.
|
||||
sys.path.append("/usr/share/ubuntu-dev-tools/")
|
||||
import common
|
||||
|
||||
# Usage.
|
||||
usage = "%prog <srcpackage> <release> <operation>\n\n"
|
||||
usage += "Where operation may be one of: rescore, retry, or status.\n"
|
||||
usage += "Only Launchpad Buildd Admins may rescore package builds."
|
||||
|
||||
# Valid architectures.
|
||||
validArchs = ["armel", "amd64", "hppa", "i386",
|
||||
"ia64", "lpia", "powerpc", "sparc"]
|
||||
|
||||
# Prepare our option parser.
|
||||
optParser = OptionParser(usage)
|
||||
|
||||
# Retry options
|
||||
retryRescoreOptions = OptionGroup(optParser, "Retry and rescore options",
|
||||
"These options may only be used with the 'retry' and 'rescore' operations.")
|
||||
retryRescoreOptions.add_option("-a", "--arch", type = "string",
|
||||
action = "store", dest = "architecture",
|
||||
help = "Rebuild or rescore a specific architecture. " \
|
||||
"Valid architectures include: " \
|
||||
"%s." % ", ".join(validArchs))
|
||||
|
||||
# Add the retry options to the main group.
|
||||
optParser.add_option_group(retryRescoreOptions)
|
||||
|
||||
# Parse our options.
|
||||
(options, args) = optParser.parse_args()
|
||||
|
||||
# 'help' called by itself - show our help.
|
||||
if args[0].lower() in ("help") and len(args) == 1:
|
||||
optParser.print_help()
|
||||
sys.exit(0)
|
||||
|
||||
# Check we have the correct number of arguments.
|
||||
if len(args) < 3:
|
||||
optParser.error("Incorrect number of arguments.")
|
||||
|
||||
package = str(args[0]).lower()
|
||||
release = str(args[1]).lower()
|
||||
op = str(args[2]).lower()
|
||||
|
||||
# Check our operation.
|
||||
if op not in ("rescore", "retry", "status"):
|
||||
print >> sys.stderr, "Invalid operation: %s." % op
|
||||
sys.exit(1)
|
||||
|
||||
# If the user has specified an architecture to build, we only wish to rebuild it
|
||||
# and nothing else.
|
||||
if op not in ("retry", 'rescore') and options.architecture:
|
||||
print >> sys.stderr, "Operation %s does not use the --arch option." % op
|
||||
sys.exit(1)
|
||||
elif op in ("retry", "rescore") and options.architecture:
|
||||
if options.architecture not in validArchs:
|
||||
print >> sys.stderr, "Invalid architecture specified: %s." % options.architecture
|
||||
sys.exit(1)
|
||||
else:
|
||||
oneArch = True
|
||||
else:
|
||||
oneArch = False
|
||||
|
||||
# Prepare Launchpad cookie.
|
||||
launchpadCookie = common.prepareLaunchpadCookie()
|
||||
urlopener = common.setupLaunchpadUrlOpener(launchpadCookie)
|
||||
|
||||
# Check the release exists.
|
||||
common.checkReleaseExists(release)
|
||||
|
||||
# Find out the version in given release.
|
||||
(page, version) = common.checkSourceExists(package, release)
|
||||
|
||||
# Get the component the package is in.
|
||||
component = common.packageComponent(package, release)
|
||||
|
||||
# Output details.
|
||||
print "The source version for '%s' in %s (%s) is at %s." % (package,
|
||||
release.capitalize(), component, version)
|
||||
|
||||
# Parse out build URLs, states, and arches.
|
||||
buildstats = {}
|
||||
page = urlopener.open('https://launchpad.net/ubuntu/+source/%s/%s' % (package, version))
|
||||
url = page.geturl()
|
||||
page = page.read()
|
||||
release = release.split('-')[0] # strip off pocket
|
||||
|
||||
print "Current build status for this package:"
|
||||
|
||||
for m in re.finditer('"/ubuntu/\+source/%s/%s(/\+build/\d+)"[^\n]+\n\s*(\w+).*?<span>(\w+)</span>.*?</a>\s*([^\n]+)\n' %
|
||||
(package.replace('+', '\+'), version.replace('+', '\+')), page, re.S):
|
||||
if m.group(2) == release:
|
||||
print '%s: %s.' % (m.group(3), m.group(4))
|
||||
buildstats[url + m.group(1)] = [m.group(3).strip(), m.group(4).strip()]
|
||||
|
||||
# Check that there actually are builds for that release.
|
||||
if len(buildstats) == 0:
|
||||
print "No builds for '%s' found in the %s release - it may have been " \
|
||||
"built in a former release." % (package, release.capitalize())
|
||||
sys.exit(0)
|
||||
|
||||
# Operations.
|
||||
if op == 'status':
|
||||
sys.exit(0)
|
||||
|
||||
# Check if the package in question is architecture independent, and if so; that
|
||||
# i386 has been set as the architecture.
|
||||
if len(buildstats) == 1 and options.architecture != "i386":
|
||||
print "Overriding architecture setting to i386 for architecture " \
|
||||
"independent package..."
|
||||
options.architecture = "i386"
|
||||
|
||||
# Operations that are remaining may only be done by Ubuntu developers (retry)
|
||||
# or buildd admins (rescore). Check if the proper permissions are in place.
|
||||
if op == "rescore": teamNeeded = "launchpad-buildd-admins"
|
||||
if op == "retry":
|
||||
if component in ("main", "restricted"):
|
||||
teamNeeded = "ubuntu-core-dev"
|
||||
else:
|
||||
teamNeeded = "ubuntu-dev"
|
||||
|
||||
necessaryPrivs = common.isLPTeamMember(teamNeeded)
|
||||
|
||||
if not necessaryPrivs:
|
||||
print >> sys.stderr, "You cannot perform the %s operation on a %s package " \
|
||||
"as you are not member of the '%s' team on Launchpad." % (op, component,
|
||||
teamNeeded)
|
||||
print "Should this be incorrect, please log in to Launchpad using Firefox, " \
|
||||
"delete the ~/.lpcookie.txt file and rerun this script."
|
||||
sys.exit(1)
|
||||
|
||||
for build, (arch, status) in buildstats.iteritems():
|
||||
if oneArch and not options.architecture == arch:
|
||||
# Skip this architecture.
|
||||
continue
|
||||
|
||||
if op in ('rescore'):
|
||||
if status in ('Needs building'):
|
||||
print 'Rescoring', build, '(%s).' % arch
|
||||
|
||||
try:
|
||||
urlopener.open(build + '/+rescore', urlencode(
|
||||
{'field.priority': '5000', 'field.actions.rescore': '1'}))
|
||||
except:
|
||||
print >> sys.stderr, "Unable to request rescore on %s." % arch
|
||||
else:
|
||||
print "Not rescoring on %s; status is: %s." % (arch, status.lower())
|
||||
|
||||
if op in ('retry'): # Retry requested.
|
||||
if status in ('Failed to build', 'Chroot problem', 'Failed to upload'):
|
||||
print 'Retrying:', build, '(%s).' % arch
|
||||
|
||||
try:
|
||||
urlopener.open(build + '/+retry', urlencode(
|
||||
{'RETRY': '1'}))
|
||||
except: # Error encountered while submitting request.
|
||||
print >> sys.stderr, "Unable to request retry on %s." % arch
|
||||
else: # The package does not require rebuilding.
|
||||
print "Not retrying on %s; status is %s." % (arch, status.lower())
|
203
check-mir
Executable file
203
check-mir
Executable file
@ -0,0 +1,203 @@
|
||||
#!/usr/bin/python3
|
||||
#
|
||||
# Check components of build dependencies and warn about universe/multiverse
|
||||
# ones, for a package destined for main/restricted
|
||||
#
|
||||
# Copyright (C) 2011 Canonical
|
||||
#
|
||||
# Authors:
|
||||
# Martin Pitt
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation; version 3.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program; if not, write to the Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
# pylint: disable=invalid-name
|
||||
# pylint: enable=invalid-name
|
||||
|
||||
"""Check if any of a package's build or binary dependencies are in universe or multiverse.
|
||||
|
||||
Run this inside an unpacked source package
|
||||
"""
|
||||
|
||||
import argparse
|
||||
import os.path
|
||||
import sys
|
||||
|
||||
import apt
|
||||
|
||||
|
||||
def check_support(apt_cache, pkgname, alt=False):
|
||||
"""Check if pkgname is in main or restricted.
|
||||
|
||||
This prints messages if a package is not in main/restricted, or only
|
||||
partially (i. e. source in main, but binary in universe).
|
||||
"""
|
||||
if alt:
|
||||
prefix = " ... alternative " + pkgname
|
||||
else:
|
||||
prefix = " * " + pkgname
|
||||
|
||||
prov_packages = apt_cache.get_providing_packages(pkgname)
|
||||
if pkgname in apt_cache:
|
||||
pkg = apt_cache[pkgname]
|
||||
|
||||
# If this is a virtual package, iterate through the binary packages that
|
||||
# provide this, and ensure they are all in Main. Source packages in and of
|
||||
# themselves cannot provide virtual packages, only binary packages can.
|
||||
elif len(prov_packages) > 0:
|
||||
supported, unsupported = [], []
|
||||
for pkg in prov_packages:
|
||||
candidate = pkg.candidate
|
||||
if candidate:
|
||||
section = candidate.section
|
||||
if section.startswith("universe") or section.startswith("multiverse"):
|
||||
unsupported.append(pkg.name)
|
||||
else:
|
||||
supported.append(pkg.name)
|
||||
|
||||
if len(supported) > 0:
|
||||
msg = "is a virtual package, which is provided by the following "
|
||||
msg += "candidates in Main: " + " ".join(supported)
|
||||
print(prefix, msg)
|
||||
elif len(unsupported) > 0:
|
||||
msg = "is a virtual package, but is only provided by the "
|
||||
msg += "following non-Main candidates: " + " ".join(unsupported)
|
||||
print(prefix, msg, file=sys.stderr)
|
||||
return False
|
||||
else:
|
||||
msg = "is a virtual package that exists but is not provided by "
|
||||
msg += "package currently in the archive. Proceed with caution."
|
||||
print(prefix, msg, file=sys.stderr)
|
||||
return False
|
||||
|
||||
else:
|
||||
print(prefix, "does not exist", file=sys.stderr)
|
||||
return False
|
||||
|
||||
section = pkg.candidate.section
|
||||
if section.startswith("universe") or section.startswith("multiverse"):
|
||||
# check if the source package is in main and thus will only need binary
|
||||
# promotion
|
||||
source_records = apt.apt_pkg.SourceRecords()
|
||||
if not source_records.lookup(pkg.candidate.source_name):
|
||||
print("ERROR: Cannot lookup source package for", pkg.name, file=sys.stderr)
|
||||
print(prefix, "package is in", section.split("/")[0])
|
||||
return False
|
||||
src = apt.apt_pkg.TagSection(source_records.record)
|
||||
if src["Section"].startswith("universe") or src["Section"].startswith("multiverse"):
|
||||
print(prefix, "binary and source package is in", section.split("/")[0])
|
||||
return False
|
||||
|
||||
print(
|
||||
prefix,
|
||||
"is in",
|
||||
section.split("/")[0] + ", but its source",
|
||||
pkg.candidate.source_name,
|
||||
"is already in main; file an ubuntu-archive bug for "
|
||||
"promoting the current preferred alternative",
|
||||
)
|
||||
return True
|
||||
|
||||
if alt:
|
||||
print(prefix, "is already in main; consider preferring it")
|
||||
|
||||
return True
|
||||
|
||||
|
||||
def check_build_dependencies(apt_cache, control):
|
||||
print("Checking support status of build dependencies...")
|
||||
|
||||
any_unsupported = False
|
||||
|
||||
for field in ("Build-Depends", "Build-Depends-Indep"):
|
||||
if field not in control.section:
|
||||
continue
|
||||
for or_group in apt.apt_pkg.parse_src_depends(control.section[field]):
|
||||
pkgname = or_group[0][0]
|
||||
|
||||
# debhelper-compat is expected to be a build dependency of every
|
||||
# package, so it is a red herring to display it in this report.
|
||||
# (src:debhelper is in Ubuntu Main anyway)
|
||||
if pkgname == "debhelper-compat":
|
||||
continue
|
||||
|
||||
if not check_support(apt_cache, pkgname):
|
||||
# check non-preferred alternatives
|
||||
for altpkg in or_group[1:]:
|
||||
if check_support(apt_cache, altpkg[0], alt=True):
|
||||
break
|
||||
else:
|
||||
any_unsupported = True
|
||||
|
||||
return any_unsupported
|
||||
|
||||
|
||||
def check_binary_dependencies(apt_cache, control):
|
||||
any_unsupported = False
|
||||
|
||||
print("\nChecking support status of binary dependencies...")
|
||||
while True:
|
||||
try:
|
||||
next(control)
|
||||
except StopIteration:
|
||||
break
|
||||
|
||||
for field in ("Depends", "Pre-Depends", "Recommends"):
|
||||
if field not in control.section:
|
||||
continue
|
||||
for or_group in apt.apt_pkg.parse_src_depends(control.section[field]):
|
||||
pkgname = or_group[0][0]
|
||||
if pkgname.startswith("$"):
|
||||
continue
|
||||
if not check_support(apt_cache, pkgname):
|
||||
# check non-preferred alternatives
|
||||
for altpkg in or_group[1:]:
|
||||
if check_support(apt_cache, altpkg[0], alt=True):
|
||||
break
|
||||
else:
|
||||
any_unsupported = True
|
||||
|
||||
return any_unsupported
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description=__doc__)
|
||||
parser.parse_args()
|
||||
apt_cache = apt.Cache()
|
||||
|
||||
if not os.path.exists("debian/control"):
|
||||
print(
|
||||
"debian/control not found. You need to run this tool in a source package directory",
|
||||
file=sys.stderr,
|
||||
)
|
||||
sys.exit(1)
|
||||
|
||||
# get build dependencies from debian/control
|
||||
control = apt.apt_pkg.TagFile(open("debian/control", encoding="utf-8"))
|
||||
next(control)
|
||||
|
||||
unsupported_build_deps = check_build_dependencies(apt_cache, control)
|
||||
unsupported_binary_deps = check_binary_dependencies(apt_cache, control)
|
||||
|
||||
if unsupported_build_deps or unsupported_binary_deps:
|
||||
print(
|
||||
"\nPlease check https://wiki.ubuntu.com/MainInclusionProcess if "
|
||||
"this source package needs to get into in main/restricted, or "
|
||||
"reconsider if the package really needs above dependencies."
|
||||
)
|
||||
else:
|
||||
print("All dependencies are supported in main or restricted.")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
@ -8,7 +8,7 @@
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; version 2.
|
||||
#
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
@ -21,22 +21,63 @@
|
||||
# This script is used to get a diff of the exported symbols of all .so files in
|
||||
# every binary package of package $1.
|
||||
|
||||
# Required tools (besides awk, coreutils, grep and sed):
|
||||
# * apt-cache and apt-get (from apt)
|
||||
# * diff (from diffutils)
|
||||
# * dpkg
|
||||
# * lsb_release (from lsb-release)
|
||||
# * nm (from binutils)
|
||||
|
||||
DISTRO=$(lsb_release -c -s)
|
||||
VERSION=$(apt-cache madison "$1" | grep -- "$DISTRO"'/.*Sources$' | awk '{print $3}')
|
||||
PACKAGES=$(apt-cache showsrc "$1" | grep-dctrl -s Binary -F Version "$VERSION" | sed 's/Binary\:\ //g;s/\,//g' | sort -u)
|
||||
DEBLINE=""
|
||||
DEBUG=False
|
||||
|
||||
if [[ -z $1 ]]; then
|
||||
echo "Missing argument: source package name."
|
||||
exit 1
|
||||
usage() {
|
||||
prog=$(basename $0)
|
||||
cat <<EOF
|
||||
Usage: $prog [options] source-package [DEBDIR]
|
||||
|
||||
Get a diff of the exported symbols of all .so files in every binary package of
|
||||
package the source package. The source package will be found in DEBDIR, defaulting to /var/cache/pbuilder/result.
|
||||
|
||||
Options:
|
||||
-h, --help show this help message and exit
|
||||
EOF
|
||||
exit $1
|
||||
}
|
||||
|
||||
PACKAGE=""
|
||||
DEBDIR="/var/cache/pbuilder/result"
|
||||
POSITION=0
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
-h|--help)
|
||||
usage 0
|
||||
;;
|
||||
-*)
|
||||
usage 1
|
||||
;;
|
||||
*)
|
||||
if [ $POSITION -eq 0 ]; then
|
||||
PACKAGE="$1"
|
||||
elif [ $POSITION -eq 1 ]; then
|
||||
DEBDIR="$1"
|
||||
else
|
||||
echo "Too many arguments." >&2
|
||||
usage 1
|
||||
fi
|
||||
POSITION=$(($POSITION+1))
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
if [ $POSITION -eq 0 ]; then
|
||||
echo "Missing argument: source package name." >&2
|
||||
usage 1
|
||||
fi
|
||||
|
||||
if [[ -z $2 ]]; then
|
||||
DEBDIR="/var/cache/pbuilder/result"
|
||||
else
|
||||
DEBDIR="$2"
|
||||
fi
|
||||
VERSION=$(apt-cache madison "$PACKAGE" | grep -- "$DISTRO"'/.*Sources$' | awk '{print $3}')
|
||||
PACKAGES=$(apt-cache showsrc "$PACKAGE" | grep-dctrl -s Binary -F Version "$VERSION" | sed 's/Binary\:\ //g;s/\,//g' | sort -u)
|
||||
|
||||
if [ `id -u` != "0" ]
|
||||
then
|
||||
@ -60,7 +101,7 @@ do
|
||||
done
|
||||
|
||||
if [[ -z $DEBLINE ]]; then
|
||||
echo "Package doesn't exist: $1."
|
||||
echo "Package doesn't exist: $PACKAGE."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@ -90,4 +131,4 @@ do
|
||||
diff -u /tmp/$LIBNAME.{old,new}
|
||||
rm /tmp/$LIBNAME.{old,new}
|
||||
done;
|
||||
done
|
||||
done
|
||||
|
385
common.py
385
common.py
@ -1,385 +0,0 @@
|
||||
#
|
||||
# common.py - provides functions which are commonly used by the
|
||||
# ubuntu-dev-tools package.
|
||||
#
|
||||
# Copyright (C) 2008 Jonathan Davies <jpds@ubuntu.com>
|
||||
# Copyright (C) 2008 Siegfried-Angel Gevatter Pujals <rainct@ubuntu.com>
|
||||
#
|
||||
# Some of the functions are based upon code written by Martin Pitt
|
||||
# <martin.pitt@ubuntu.com> and Kees Cook <kees@ubuntu.com>.
|
||||
#
|
||||
# ##################################################################
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 3
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# See file /usr/share/common-licenses/GPL for more details.
|
||||
#
|
||||
# ##################################################################
|
||||
|
||||
import cookielib
|
||||
import glob
|
||||
import os.path
|
||||
import re
|
||||
import subprocess
|
||||
import sys
|
||||
import urllib2
|
||||
import urlparse
|
||||
import urllib
|
||||
try:
|
||||
import httplib2
|
||||
from launchpadlib.credentials import Credentials
|
||||
from launchpadlib.launchpad import Launchpad, STAGING_SERVICE_ROOT, EDGE_SERVICE_ROOT
|
||||
from launchpadlib.errors import HTTPError
|
||||
except ImportError:
|
||||
Credentials = None
|
||||
Launchpad = None
|
||||
|
||||
# Clear https_proxy env var as it's not supported in urllib/urllib2; see
|
||||
# LP #122551
|
||||
if os.environ.has_key('https_proxy'):
|
||||
print >> sys.stderr, "Ignoring https_proxy (no support in urllib/urllib2; see LP #122551)"
|
||||
del os.environ['https_proxy']
|
||||
|
||||
def mkdir(directory):
|
||||
""" Create the given directory and all its parents recursively, but don't
|
||||
raise an exception if it already exists. """
|
||||
|
||||
path = [x for x in directory.split('/') if x]
|
||||
|
||||
for i in xrange(len(path)):
|
||||
current_path = '/' + '/'.join(path[:i+1])
|
||||
if not os.path.isdir(current_path):
|
||||
os.mkdir(current_path)
|
||||
|
||||
def readlist(filename, uniq=True):
|
||||
""" Read a list of words from the indicated file. """
|
||||
|
||||
if not os.path.isfile(filename):
|
||||
print 'File "%s" does not exist.' % filename
|
||||
return False
|
||||
|
||||
content = open(filename).read().replace('\n', ' ').replace(',', ' ')
|
||||
|
||||
if not content.strip():
|
||||
print 'File "%s" is empty.' % filename
|
||||
return False
|
||||
|
||||
items = [item for item in content.split() if item]
|
||||
|
||||
if uniq:
|
||||
items = list(set(items))
|
||||
|
||||
return items
|
||||
|
||||
def checkReleaseExists(release):
|
||||
""" Check that an Ubuntu release exists by opening
|
||||
https://launchpad.net/ubuntu/releaseName page on Launchpad.
|
||||
|
||||
If an error is returned; the release does not exist. """
|
||||
release = release.split('-')[0] # Remove pocket
|
||||
try:
|
||||
urllib2.urlopen("https://launchpad.net/ubuntu/%s" % release)
|
||||
except urllib2.HTTPError:
|
||||
print >> sys.stderr, "The Ubuntu '%s' release does not appear to " \
|
||||
"exist on Launchpad." % release
|
||||
sys.exit(1)
|
||||
except urllib2.URLError, error: # Other error (NXDOMAIN, ...)
|
||||
(_, reason) = error.reason
|
||||
print >> sys.stderr, "Error while checking for Ubuntu '%s' " \
|
||||
"release on Launchpad: %s." % (release, reason)
|
||||
sys.exit(1)
|
||||
|
||||
def checkSourceExists(package, release):
|
||||
""" Check that a package exists by opening its
|
||||
https://launchpad.net/ubuntu/+source/package page.
|
||||
|
||||
Return the page and version in release. """
|
||||
if '-' in release:
|
||||
(release, pocket) = release.split('-', 1)
|
||||
else:
|
||||
pocket = 'release'
|
||||
|
||||
try:
|
||||
page = urllib2.urlopen('https://launchpad.net/ubuntu/+source/' + package).read()
|
||||
|
||||
m = re.search('<td>%s</td>\s*\n.*"/ubuntu/%s/\+source/%s/(\d[^"]+)"' % (
|
||||
pocket, release, package.replace('+', '\+')), page)
|
||||
if not m:
|
||||
print >> sys.stderr, "Unable to find source package '%s' in " \
|
||||
"the %s-%s pocket." % (package, release.capitalize(), pocket)
|
||||
sys.exit(1)
|
||||
except urllib2.HTTPError, error: # Raised on 404.
|
||||
if error.code == 404:
|
||||
print >> sys.stderr, "The source package '%s' does not appear to " \
|
||||
"exist in Ubuntu." % package
|
||||
else: # Other error code, probably Launchpad malfunction.
|
||||
print >> sys.stderr, "Error while checking Launchpad for Ubuntu " \
|
||||
"package: %s." % error.code
|
||||
sys.exit(1) # Exit. Error encountered.
|
||||
except urllib2.URLError, error: # Other error (NXDOMAIN, ...)
|
||||
(_, reason) = error.reason
|
||||
print >> sys.stderr, "Error while checking Launchpad for Ubuntu " \
|
||||
"package: %s." % reason
|
||||
sys.exit(1)
|
||||
|
||||
# Get package version.
|
||||
version = m.group(1)
|
||||
|
||||
return page, version
|
||||
|
||||
def prepareLaunchpadCookie():
|
||||
""" Search for a cookie file in the places as defined by try_globs.
|
||||
We shall use this cookie for authentication with Launchpad. """
|
||||
|
||||
# We do not have our cookie.
|
||||
launchpad_cookiefile = None
|
||||
# Look in common locations.
|
||||
try_globs = ('~/.lpcookie.txt', '~/.mozilla/*/*/cookies.sqlite',
|
||||
'~/.mozilla/*/*/cookies.txt')
|
||||
|
||||
cookie_file_list = []
|
||||
if launchpad_cookiefile == None:
|
||||
for try_glob in try_globs:
|
||||
try:
|
||||
cookie_file_list += glob.glob(os.path.expanduser(try_glob))
|
||||
except:
|
||||
pass
|
||||
|
||||
for cookie_file in cookie_file_list:
|
||||
launchpad_cookiefile = _check_for_launchpad_cookie(cookie_file)
|
||||
if launchpad_cookiefile != None:
|
||||
break
|
||||
|
||||
# Unable to find a correct file.
|
||||
if launchpad_cookiefile == None:
|
||||
print >> sys.stderr, "Could not find cookie file for Launchpad. "
|
||||
print >> sys.stderr, "Looked in: %s" % ", ".join(try_globs)
|
||||
print >> sys.stderr, "You should be able to create a valid file by " \
|
||||
"logging into Launchpad with Firefox."
|
||||
sys.exit(1)
|
||||
|
||||
return launchpad_cookiefile
|
||||
|
||||
def _check_for_launchpad_cookie(cookie_file):
|
||||
# Found SQLite file? Parse information from it.
|
||||
if 'cookies.sqlite' in cookie_file:
|
||||
import sqlite3 as sqlite
|
||||
|
||||
con = sqlite.connect(cookie_file)
|
||||
cur = con.cursor()
|
||||
try:
|
||||
cur.execute("select host, path, isSecure, expiry, name, value from moz_cookies where host like ?", ['%%launchpad%%'])
|
||||
except sqlite.OperationalError:
|
||||
print 'Warning: Database "%s" is locked; ignoring it.' % cookie_file
|
||||
return None
|
||||
|
||||
# No matching cookies? Abort.
|
||||
items = cur.fetchall()
|
||||
if len(items) == 0:
|
||||
return None
|
||||
|
||||
ftstr = ["FALSE", "TRUE"]
|
||||
|
||||
# This shall be where our new cookie file lives - at ~/.lpcookie.txt
|
||||
newLPCookieLocation = os.path.expanduser("~/.lpcookie.txt")
|
||||
|
||||
# Open file for writing.
|
||||
try:
|
||||
newLPCookie = open(newLPCookieLocation, 'w')
|
||||
# For security reasons, change file mode to write and read
|
||||
# only by owner.
|
||||
os.chmod(newLPCookieLocation, 0600)
|
||||
newLPCookie.write("# HTTP Cookie File for Launchpad.\n") # Header.
|
||||
|
||||
for item in items:
|
||||
# Write entries.
|
||||
newLPCookie.write("%s\t%s\t%s\t%s\t%s\t%s\t%s\n" % (
|
||||
item[0], ftstr[item[0].startswith('.')], item[1],
|
||||
ftstr[item[2]], item[3], item[4], item[5]))
|
||||
finally:
|
||||
newLPCookie.close() # And close file.
|
||||
|
||||
return newLPCookieLocation
|
||||
else:
|
||||
if open(cookie_file).read().find('launchpad.net') != -1:
|
||||
return cookie_file
|
||||
|
||||
return None
|
||||
|
||||
def setupLaunchpadUrlOpener(cookie):
|
||||
""" Build HTML opener with cookie file. """
|
||||
|
||||
# Attempt to load our cookie file.
|
||||
try:
|
||||
cj = cookielib.MozillaCookieJar()
|
||||
cj.load(cookie)
|
||||
except cookielib.LoadError, error:
|
||||
print "Unable to load cookie file: %s (%s)" % (cookie, error)
|
||||
sys.exit(1)
|
||||
|
||||
# Add cookie to our URL opener.
|
||||
urlopener = urllib2.build_opener()
|
||||
urlopener.add_handler(urllib2.HTTPCookieProcessor(cj))
|
||||
|
||||
return urlopener
|
||||
|
||||
def isLPTeamMember(team):
|
||||
""" Checks if the user is a member of a certain team on Launchpad.
|
||||
|
||||
We do this by opening the team page on Launchpad and checking if the
|
||||
text "You are not a member of this team" is present using the
|
||||
user's cookie file for authentication.
|
||||
|
||||
If the user is a member of the team: return True.
|
||||
If the user is not a member of the team: return False.
|
||||
"""
|
||||
|
||||
# TODO: Check if launchpadlib may be a better way of doing this.
|
||||
|
||||
# Prepare cookie.
|
||||
cookieFile = prepareLaunchpadCookie()
|
||||
# Prepare URL opener.
|
||||
urlopener = setupLaunchpadUrlOpener(cookieFile)
|
||||
|
||||
# Try to open the Launchpad team page:
|
||||
try:
|
||||
lpTeamPage = urlopener.open("https://launchpad.net/~%s" % team).read()
|
||||
except urllib2.HTTPError, error:
|
||||
print >> sys.stderr, "Unable to connect to Launchpad. Received a %s." % error.code
|
||||
sys.exit(1)
|
||||
|
||||
# Check if text is present in page.
|
||||
if ("You are not a member of this team") in lpTeamPage:
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
def packageComponent(package, release):
|
||||
madison = subprocess.Popen(['rmadison', '-u', 'ubuntu', '-a', 'source', \
|
||||
'-s', release, package], stdout = subprocess.PIPE)
|
||||
out = madison.communicate()[0]
|
||||
assert (madison.returncode == 0)
|
||||
|
||||
for l in out.splitlines():
|
||||
(pkg, version, rel, builds) = l.split('|')
|
||||
component = 'main'
|
||||
if rel.find('/') != -1:
|
||||
component = rel.split('/')[1]
|
||||
|
||||
return component.strip()
|
||||
|
||||
|
||||
def find_credentials(consumer, files, level=None):
|
||||
""" search for credentials matching 'consumer' in path for given access level. """
|
||||
if Credentials is None:
|
||||
raise ImportError
|
||||
|
||||
for f in files:
|
||||
cred = Credentials()
|
||||
try:
|
||||
cred.load(open(f))
|
||||
except:
|
||||
continue
|
||||
if cred.consumer.key == consumer:
|
||||
return cred
|
||||
raise IOError("No credentials found")
|
||||
|
||||
def get_credentials(consumer, cred_file=None, level=None):
|
||||
files = list()
|
||||
if cred_file:
|
||||
files.append(cred_file)
|
||||
if "LPCREDENTIALS" in os.environ:
|
||||
files.append(os.environ["LPCREDENTIALS"])
|
||||
files.extend([
|
||||
os.path.join(os.getcwd(), ".lp_credentials.txt"),
|
||||
os.path.expanduser("~/.lp_credentials.txt"),
|
||||
])
|
||||
return find_credentials(consumer, files, level)
|
||||
|
||||
def get_launchpad(consumer, server=EDGE_SERVICE_ROOT, cache=None,
|
||||
cred_file=None, level=None):
|
||||
credentials = get_credentials(consumer, cred_file, level)
|
||||
cache = cache or os.environ.get("LPCACHE", None)
|
||||
return Launchpad(credentials, server, cache)
|
||||
|
||||
def query_to_dict(query_string):
|
||||
result = dict()
|
||||
options = filter(None, query_string.split("&"))
|
||||
for opt in options:
|
||||
key, value = opt.split("=")
|
||||
result.setdefault(key, set()).add(value)
|
||||
return result
|
||||
|
||||
def translate_web_api(url, launchpad):
|
||||
scheme, netloc, path, query, fragment = urlparse.urlsplit(url)
|
||||
query = query_to_dict(query)
|
||||
if not (("edge" in netloc and "edge" in str(launchpad._root_uri))
|
||||
or ("staging" in netloc and "staging" in str(launchpad._root_uri))):
|
||||
raise ValueError("url conflict (url: %s, root: %s" %(url, launchpad._root_uri))
|
||||
if path.endswith("/+bugs"):
|
||||
path = path[:-6]
|
||||
if "ws.op" in query:
|
||||
raise ValueError("Invalid web url, url: %s" %url)
|
||||
query["ws.op"] = "searchTasks"
|
||||
scheme, netloc, api_path, _, _ = urlparse.urlsplit(str(launchpad._root_uri))
|
||||
query = urllib.urlencode(query)
|
||||
url = urlparse.urlunsplit((scheme, netloc, api_path + path.lstrip("/"), query, fragment))
|
||||
return url
|
||||
|
||||
def translate_api_web(self_url):
|
||||
return self_url.replace("api.", "").replace("beta/", "")
|
||||
|
||||
LEVEL = {
|
||||
0: "UNAUTHORIZED",
|
||||
1: "READ_PUBLIC",
|
||||
2: "WRITE_PUBLIC",
|
||||
3: "READ_PRIVATE",
|
||||
4: "WRITE_PRIVATE"
|
||||
}
|
||||
|
||||
def approve_application(credentials, email, password, level, web_root,
|
||||
context):
|
||||
authorization_url = credentials.get_request_token(context, web_root)
|
||||
if level in LEVEL:
|
||||
level = 'field.actions.%s' %LEVEL[level]
|
||||
elif level in LEVEL.values():
|
||||
level = 'field.actions.%s' %level
|
||||
elif str(level).startswith("field.actions") and str(level).split(".")[-1] in LEVEL:
|
||||
pass
|
||||
else:
|
||||
raise ValueError("Unknown access level '%s'" %level)
|
||||
|
||||
params = {level: 1,
|
||||
"oauth_token": credentials._request_token.key,
|
||||
"lp.context": context or ""}
|
||||
|
||||
lp_creds = ":".join((email, password))
|
||||
basic_auth = "Basic %s" %(lp_creds.encode('base64'))
|
||||
headers = {'Authorization': basic_auth}
|
||||
response, content = httplib2.Http().request(authorization_url,
|
||||
method="POST", body=urllib.urlencode(params), headers=headers)
|
||||
if int(response["status"]) != 200:
|
||||
if not 300 <= int(response["status"]) <= 400: # this means redirection
|
||||
raise HTTPError(response, content)
|
||||
credentials.exchange_request_token_for_access_token(web_root)
|
||||
return credentials
|
||||
|
||||
def translate_service(service):
|
||||
_service = service.lower()
|
||||
if _service in (STAGING_SERVICE_ROOT, EDGE_SERVICE_ROOT):
|
||||
return _service
|
||||
elif _service == "staging":
|
||||
return STAGING_SERVICE_ROOT
|
||||
elif _service == "edge":
|
||||
return EDGE_SERVICE_ROOT
|
||||
else:
|
||||
raise ValueError("unknown service '%s'" %service)
|
||||
|
23
dch-repeat
23
dch-repeat
@ -1,6 +1,7 @@
|
||||
#!/usr/bin/perl
|
||||
#
|
||||
# Copyright (C) 2007-2008 Canonical, Ltd.
|
||||
# Copyright (C) 2007-2008 Canonical, Ltd.,
|
||||
# 2011, Stefano Rivera <stefanor@ubuntu.com>
|
||||
# Author: Kees Cook <kees@ubuntu.com>
|
||||
#
|
||||
# ##################################################################
|
||||
@ -9,7 +10,7 @@
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 3
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
@ -47,11 +48,11 @@ EOM
|
||||
exit(0);
|
||||
}
|
||||
|
||||
my @releases = ('dapper', 'gutsy', 'hardy', 'intrepid', 'jaunty');
|
||||
my @releases = undef;
|
||||
our $devel_release = undef;
|
||||
|
||||
#Getopt::Long::Configure("bundling", "no_ignore_case");
|
||||
our $opt_build_tree = "/scratch/ubuntu/build";
|
||||
our $opt_devel_release = $releases[$#releases];
|
||||
our $opt_pocket = undef;
|
||||
our $opt_package = undef;
|
||||
our $opt_source_release = undef;
|
||||
@ -70,6 +71,10 @@ Usage() unless (GetOptions(
|
||||
));
|
||||
Usage() if ($opt_help);
|
||||
|
||||
@releases = split(/\s+/, `ubuntu-distro-info --supported`);
|
||||
$devel_release = `ubuntu-distro-info --devel`;
|
||||
chomp($devel_release);
|
||||
|
||||
sub get_changelog($)
|
||||
{
|
||||
my ($path) = @_;
|
||||
@ -135,9 +140,9 @@ warn "package: '$opt_package\n" if ($opt_verbose);
|
||||
|
||||
# By default, take changelog from newer release
|
||||
if (!defined($opt_source_release)) {
|
||||
if ($opt_target_release eq $opt_devel_release) {
|
||||
die "No more recent release than '$opt_devel_release' to take changelog from\n";
|
||||
}
|
||||
if ($opt_target_release eq $devel_release) {
|
||||
die "No more recent release than '$devel_release' to take changelog from\n";
|
||||
}
|
||||
foreach my $i (0 .. $#releases) {
|
||||
if ($releases[$i] eq $opt_target_release) {
|
||||
$opt_source_release = $releases[$i+1];
|
||||
@ -148,11 +153,11 @@ if (!defined($opt_source_release)) {
|
||||
}
|
||||
}
|
||||
warn "source-release: '$opt_source_release\n" if ($opt_verbose);
|
||||
warn "devel-release: '$opt_devel_release\n" if ($opt_verbose);
|
||||
warn "devel-release: '$devel_release\n" if ($opt_verbose);
|
||||
|
||||
# By default, use "security" pocket for non-devel releases
|
||||
if (!defined($opt_pocket)) {
|
||||
if ($opt_target_release eq $opt_devel_release) {
|
||||
if ($opt_target_release eq $devel_release) {
|
||||
$opt_pocket = "";
|
||||
}
|
||||
else {
|
||||
|
1
debian/.gitignore
vendored
Normal file
1
debian/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
files
|
49
debian/NEWS
vendored
Normal file
49
debian/NEWS
vendored
Normal file
@ -0,0 +1,49 @@
|
||||
ubuntu-dev-tools (0.135) unstable; urgency=low
|
||||
|
||||
reverse-build-depends was removed from ubuntu-dev-tools. reverse-depends -b
|
||||
is equivalent.
|
||||
|
||||
-- Stefano Rivera <stefanor@debian.org> Sat, 12 Nov 2011 13:11:21 +0200
|
||||
|
||||
ubuntu-dev-tools (0.131) unstable; urgency=low
|
||||
|
||||
get-build-deps was removed from ubuntu-dev-tools. The newer mk-build-deps in
|
||||
devscripts is equivalent (with the -ir options).
|
||||
|
||||
-- Stefano Rivera <stefanor@debian.org> Sat, 10 Sep 2011 00:13:18 +0200
|
||||
|
||||
ubuntu-dev-tools (0.129) unstable; urgency=low
|
||||
|
||||
Several tools that worked against Launchpad but were not specific to Ubuntu
|
||||
have been migrated to the "lptools" project.
|
||||
|
||||
The following tools have moved:
|
||||
- get-branches (renamed to lp-get-branches)
|
||||
- grab-attachments (renamed to lp-grab-attachments)
|
||||
- lp-project-upload
|
||||
- lp-list-bugs
|
||||
- lp-set-dup
|
||||
- lp-shell
|
||||
|
||||
They can now be found in the lptools package (version 0.0.1~bzr28-1 or
|
||||
later).
|
||||
|
||||
-- Jelmer Vernooij <jelmer@debian.org> Fri, 02 Sep 2011 13:43:34 +0200
|
||||
|
||||
ubuntu-dev-tools (0.119) unstable; urgency=low
|
||||
|
||||
launchpadlib 1.9 will cause some issues, as it uses the GNOME Keyring / KDE
|
||||
wallet to store credentials.
|
||||
https://help.launchpad.net/API/ThirdPartyIntegration
|
||||
|
||||
Known issues and workarounds:
|
||||
|
||||
Seeing keyring.backend.PasswordSetError or gnomekeyring.IOError when
|
||||
using ubuntu-dev-tools on a remote machine?
|
||||
Try ssh -X and run export `dbus-launch` in the ssh session.
|
||||
|
||||
Otherwise, uninstalling python-gnomekeyring will force the credentials to be
|
||||
stored in ~/keyring_pass.cfg instead of a keyring, and bypass all these
|
||||
issues.
|
||||
|
||||
-- Stefano Rivera <stefanor@debian.org> Tue, 01 Mar 2011 15:01:01 +0200
|
26
debian/README.source
vendored
Normal file
26
debian/README.source
vendored
Normal file
@ -0,0 +1,26 @@
|
||||
Changelog generation and releasing
|
||||
----------------------------------
|
||||
|
||||
The changelog is generated by the uploader using `gbp dch' from
|
||||
`git-buildpackage'. To invoke, just run
|
||||
|
||||
$ gbp dch
|
||||
|
||||
and then edit the changelog as appropriate - wrap lines, remove Signed-Off-By,
|
||||
and so on. Then finalise the changelog, e.g.
|
||||
|
||||
$ dch -D unstable --release ""
|
||||
|
||||
commit it
|
||||
|
||||
$ git commit debian/changelog -m "Releasing 0.foo"
|
||||
|
||||
and tag/sign this commit
|
||||
|
||||
$ gbp buildpackage --git-tag-only
|
||||
|
||||
then build using (for example)
|
||||
|
||||
$ gbp buildpackage -S
|
||||
|
||||
and test/upload as normal.
|
3142
debian/changelog
vendored
3142
debian/changelog
vendored
File diff suppressed because it is too large
Load Diff
1
debian/clean
vendored
Normal file
1
debian/clean
vendored
Normal file
@ -0,0 +1 @@
|
||||
*.egg-info/
|
1
debian/compat
vendored
1
debian/compat
vendored
@ -1 +0,0 @@
|
||||
6
|
164
debian/control
vendored
164
debian/control
vendored
@ -1,29 +1,155 @@
|
||||
Source: ubuntu-dev-tools
|
||||
Section: devel
|
||||
Priority: optional
|
||||
Maintainer: Ubuntu MOTU Developers <ubuntu-motu@lists.ubuntu.com>
|
||||
Vcs-Bzr: http://bazaar.launchpad.net/~ubuntu-dev/ubuntu-dev-tools/trunk
|
||||
Vcs-Browser: http://codebrowse.launchpad.net/~ubuntu-dev/ubuntu-dev-tools/trunk/changes
|
||||
Build-Depends: cdbs (>= 0.4.49), debhelper (>= 6), python-all-dev (>= 2.4)
|
||||
Build-Depends-Indep: python-central (>= 0.5)
|
||||
XS-Python-Version: >= 2.5
|
||||
Homepage: https://launchpad.net/ubuntu-dev-tools/
|
||||
Standards-Version: 3.8.0
|
||||
Maintainer: Ubuntu Developers <ubuntu-dev-tools@packages.debian.org>
|
||||
Uploaders:
|
||||
Benjamin Drung <bdrung@debian.org>,
|
||||
Stefano Rivera <stefanor@debian.org>,
|
||||
Mattia Rizzolo <mattia@debian.org>,
|
||||
Simon Quigley <tsimonq2@debian.org>,
|
||||
Build-Depends:
|
||||
black <!nocheck>,
|
||||
dctrl-tools,
|
||||
debhelper-compat (= 13),
|
||||
devscripts (>= 2.11.0~),
|
||||
dh-make,
|
||||
dh-python,
|
||||
distro-info (>= 0.2~),
|
||||
flake8,
|
||||
isort <!nocheck>,
|
||||
lsb-release,
|
||||
pylint <!nocheck>,
|
||||
python3-all,
|
||||
python3-apt,
|
||||
python3-dateutil,
|
||||
python3-debian,
|
||||
python3-debianbts,
|
||||
python3-distro-info,
|
||||
python3-httplib2,
|
||||
python3-launchpadlib-desktop,
|
||||
python3-pytest,
|
||||
python3-requests <!nocheck>,
|
||||
python3-setuptools,
|
||||
python3-yaml <!nocheck>,
|
||||
Standards-Version: 4.7.2
|
||||
Rules-Requires-Root: no
|
||||
Vcs-Git: https://git.launchpad.net/ubuntu-dev-tools
|
||||
Vcs-Browser: https://git.launchpad.net/ubuntu-dev-tools
|
||||
Homepage: https://launchpad.net/ubuntu-dev-tools
|
||||
|
||||
Package: ubuntu-dev-tools
|
||||
Architecture: all
|
||||
Section: devel
|
||||
Depends: ${python:Depends}, binutils, devscripts, sudo, python-debian,
|
||||
python-launchpad-bugs (>= 0.2.25), python-launchpadlib, dctrl-tools,
|
||||
sb-release, diffstat, dpkg-dev, ${misc:Depends}
|
||||
Recommends: bzr, pbuilder | cowdancer | sbuild, reportbug (>= 3.39ubuntu1),
|
||||
ca-certificates, genisoimage, perl-modules, libwww-perl
|
||||
Conflicts: devscripts (<< 2.10.7ubuntu5)
|
||||
Replaces: devscripts (<< 2.10.7ubuntu5)
|
||||
XB-Python-Version: ${python:Versions}
|
||||
Depends:
|
||||
binutils,
|
||||
dctrl-tools,
|
||||
devscripts (>= 2.11.0~),
|
||||
diffstat,
|
||||
distro-info (>= 0.2~),
|
||||
dpkg-dev,
|
||||
dput,
|
||||
lsb-release,
|
||||
python3,
|
||||
python3-apt,
|
||||
python3-debian,
|
||||
python3-debianbts,
|
||||
python3-distro-info,
|
||||
python3-httplib2,
|
||||
python3-launchpadlib-desktop,
|
||||
python3-lazr.restfulclient,
|
||||
python3-ubuntutools (= ${binary:Version}),
|
||||
python3-yaml,
|
||||
sensible-utils,
|
||||
sudo,
|
||||
tzdata,
|
||||
${misc:Depends},
|
||||
${perl:Depends},
|
||||
Recommends:
|
||||
arch-test,
|
||||
ca-certificates,
|
||||
debian-archive-keyring,
|
||||
debian-keyring,
|
||||
debootstrap,
|
||||
genisoimage,
|
||||
lintian,
|
||||
patch,
|
||||
sbuild | pbuilder | cowbuilder,
|
||||
python3-dns,
|
||||
quilt,
|
||||
reportbug (>= 3.39ubuntu1),
|
||||
ubuntu-keyring | ubuntu-archive-keyring,
|
||||
Suggests:
|
||||
bzr | brz,
|
||||
bzr-builddeb | brz-debian,
|
||||
qemu-user-static,
|
||||
Description: useful tools for Ubuntu developers
|
||||
This is a collection of useful tools that Ubuntu developers use to make their
|
||||
packaging work a lot easier.
|
||||
.
|
||||
Such tools can include bug filing, build rebuilding, packaging preparation
|
||||
and package analysis, among other things.
|
||||
Such tools include:
|
||||
.
|
||||
- backportpackage - helper to test package backports
|
||||
- bitesize - add the 'bitesize' tag to a bug and comment that you are
|
||||
willing to help fix it.
|
||||
- check-mir - check support status of build/binary dependencies
|
||||
- check-symbols - will compare and give you a diff of the exported symbols of
|
||||
all .so files in a binary package.
|
||||
- dch-repeat - used to repeat a change log into an older release.
|
||||
- grab-merge - grabs a merge from merges.ubuntu.com easily.
|
||||
- grep-merges - search for pending merges from Debian.
|
||||
- import-bug-from-debian - copy a bug from the Debian BTS to Launchpad
|
||||
- merge-changelog - manually merges two Debian changelogs with the same base
|
||||
version.
|
||||
- mk-sbuild - script to create LVM snapshot chroots via schroot and
|
||||
sbuild.
|
||||
- pbuilder-dist, cowbuilder-dist - wrapper script for managing several build
|
||||
chroots (for different Ubuntu and Debian releases) on the same system.
|
||||
- pull-debian-debdiff - attempts to find and download a specific version of
|
||||
a Debian package and its immediate parent to generate a debdiff.
|
||||
- pull-debian-source - downloads the latest source package available in
|
||||
Debian of a package.
|
||||
- pull-lp-source - downloads source package from Launchpad.
|
||||
- pull-lp-debs - downloads debs package(s) from Launchpad.
|
||||
- pull-lp-ddebs - downloads dbgsym/ddebs package(s) from Launchpad.
|
||||
- pull-lp-udebs - downloads udebs package(s) from Launchpad.
|
||||
- pull-debian-* - same as pull-lp-* but for Debian packages.
|
||||
- pull-uca-* - same as pull-lp-* but for Ubuntu Cloud Archive packages.
|
||||
- pull-pkg - common script that provides above pull-* functionality.
|
||||
- requestbackport - file a backporting request.
|
||||
- requestsync - files a sync request with Debian changelog and rationale.
|
||||
- reverse-depends - find the reverse dependencies (or build dependencies) of
|
||||
a package.
|
||||
- running-autopkgtests - lists the currently running and/or queued
|
||||
autopkgtests on the Ubuntu autopkgtest infrastructure
|
||||
- seeded-in-ubuntu - query if a package is safe to upload during a freeze.
|
||||
- setup-packaging-environment - assistant to get an Ubuntu installation
|
||||
ready for packaging work.
|
||||
- sponsor-patch - Downloads a patch from a Launchpad bug, patches the source
|
||||
package, and uploads it (to Ubuntu or a PPA)
|
||||
- submittodebian - automatically send your changes to Debian as a bug report.
|
||||
- syncpackage - helper to prepare .changes file to upload synced packages
|
||||
- ubuntu-build - give commands to the Launchpad build daemons from the
|
||||
command line.
|
||||
- ubuntu-iso - output information of an Ubuntu ISO image.
|
||||
- ubuntu-upload-permission - query / list the upload permissions for a
|
||||
package.
|
||||
- update-maintainer - script to update maintainer field in ubuntu packages.
|
||||
|
||||
Package: python3-ubuntutools
|
||||
Architecture: all
|
||||
Section: python
|
||||
Depends:
|
||||
python3-dateutil,
|
||||
python3-debian,
|
||||
python3-distro-info,
|
||||
python3-httplib2,
|
||||
python3-launchpadlib-desktop,
|
||||
python3-lazr.restfulclient,
|
||||
python3-requests,
|
||||
sensible-utils,
|
||||
${misc:Depends},
|
||||
${python3:Depends},
|
||||
Description: useful APIs for Ubuntu developer tools — Python 3 library
|
||||
This package ships a collection of APIs, helpers and wrappers used to
|
||||
develop useful utilities for Ubuntu developers.
|
||||
.
|
||||
This package installs the library for Python 3.
|
||||
|
274
debian/copyright
vendored
274
debian/copyright
vendored
@ -1,80 +1,204 @@
|
||||
This package was re-debianized by Daniel Holbach <daniel.holbach@ubuntu.com> on
|
||||
Fri, 01 Jun 2007 11:30:08 +0200.
|
||||
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||
Upstream-Name: Ubuntu Developer Tools
|
||||
Upstream-Contact: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
|
||||
Source: https://launchpad.net/ubuntu-dev-tools
|
||||
|
||||
Upstream Authors:
|
||||
Files: backportpackage
|
||||
bash_completion/pbuilder-dist
|
||||
check-symbols
|
||||
debian/*
|
||||
doc/backportpackage.1
|
||||
doc/check-symbols.1
|
||||
doc/requestsync.1
|
||||
doc/ubuntu-iso.1
|
||||
doc/running-autopkgtests.1
|
||||
GPL-2
|
||||
README.updates
|
||||
requestsync
|
||||
setup.py
|
||||
TODO
|
||||
ubuntu-iso
|
||||
ubuntutools/requestsync/*.py
|
||||
Copyright: 2007, Albert Damen <albrt@gmx.net>
|
||||
2010-2024, Benjamin Drung <bdrung@ubuntu.com>
|
||||
2007-2023, Canonical Ltd.
|
||||
2006-2007, Daniel Holbach <daniel.holbach@ubuntu.com>
|
||||
2010, Evan Broder <evan@ebroder.net>
|
||||
2006-2007, Luke Yelavich <themuso@ubuntu.com>
|
||||
2009-2010, Michael Bienia <geser@ubuntu.com>
|
||||
2024-2025, Simon Quigley <tsimonq2@debian.org>
|
||||
2010-2011, Stefano Rivera <stefanor@ubuntu.com>
|
||||
2008, Stephan Hermann <sh@sourcecode.de>
|
||||
2007, Steve Kowalik <stevenk@ubuntu.com>
|
||||
License: GPL-2
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, version 2 of the License.
|
||||
.
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
.
|
||||
On Debian systems, the complete text of the GNU General Public License
|
||||
version 2 can be found in the /usr/share/common-licenses/GPL-2 file.
|
||||
|
||||
Albert Damen <albrt@gmx.net>
|
||||
Albin Tonnerre <lut1n.tne@gmail.com>
|
||||
Daniel Hahler <ubuntu@thequod.de>
|
||||
Daniel Holbach <daniel.holbach@ubuntu.com>
|
||||
Iain Lane <iain@orangesquash.org.uk>
|
||||
Jamin W. Collins <jcollins@asgardsrealm.net>
|
||||
Jonathan Davies <jpds@ubuntu.com>
|
||||
Jordan Mantha <mantha@ubuntu.com>
|
||||
Kees Cook <kees@ubuntu.com>
|
||||
Luke Yelavich <themuso@ubuntu.com>
|
||||
Martin Pitt <martin.pitt@ubuntu.com>
|
||||
Matt Zimmerman <mdz@ubuntu.com>
|
||||
Michael Bienia <geser@ubuntu.com>
|
||||
Pete Savage <petesavage@ubuntu.com>
|
||||
Siegfried-A. Gevatter <rainct@ubuntu.com>
|
||||
Soren Hansen <soren@ubuntu.com>
|
||||
Steve Kowalik <stevenk@ubuntu.com>
|
||||
Terence Simpson <stdin@stdin.me.uk>
|
||||
Nathan Handler <nhandler@ubuntu.com>
|
||||
Files: doc/import-bug-from-debian.1
|
||||
doc/pbuilder-dist-simple.1
|
||||
doc/pbuilder-dist.1
|
||||
doc/submittodebian.1
|
||||
import-bug-from-debian
|
||||
pbuilder-dist
|
||||
pbuilder-dist-simple
|
||||
submittodebian
|
||||
Copyright: 2007-2010, Canonical Ltd.
|
||||
2009, James Westby <james.westby@ubuntu.com>
|
||||
2008, Jamin W. Collins <jcollins@asgardsrealm.net>
|
||||
2008, Jordan Mantha <mantha@ubuntu.com>
|
||||
2006-2007, Pete Savage <petesavage@ubuntu.com>
|
||||
2009, Ryan Kavanagh <ryanakca@kubuntu.org>
|
||||
2007, Siegfried-Angel Gevatter Pujals <rainct@ubuntu.com>
|
||||
2010-2011, Stefano Rivera <stefanor@ubuntu.com>
|
||||
2008, Terence Simpson <tsimpson@ubuntu.com>
|
||||
License: GPL-2+
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
.
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
.
|
||||
On Debian systems, the complete text of the GNU General Public License
|
||||
version 2 can be found in the /usr/share/common-licenses/GPL-2 file.
|
||||
|
||||
Copyright:
|
||||
Files: doc/lp-bitesize.1
|
||||
doc/check-mir.1
|
||||
doc/grab-merge.1
|
||||
doc/merge-changelog.1
|
||||
doc/pm-helper.1
|
||||
doc/setup-packaging-environment.1
|
||||
doc/syncpackage.1
|
||||
lp-bitesize
|
||||
check-mir
|
||||
GPL-3
|
||||
grab-merge
|
||||
merge-changelog
|
||||
pm-helper
|
||||
pyproject.toml
|
||||
run-linters
|
||||
running-autopkgtests
|
||||
setup-packaging-environment
|
||||
syncpackage
|
||||
ubuntutools/running_autopkgtests.py
|
||||
ubuntutools/utils.py
|
||||
Copyright: 2010-2024, Benjamin Drung <bdrung@ubuntu.com>
|
||||
2007-2024, Canonical Ltd.
|
||||
2008, Jonathan Patrick Davies <jpds@ubuntu.com>
|
||||
2008-2010, Martin Pitt <martin.pitt@canonical.com>
|
||||
2009, Siegfried-Angel Gevatter Pujals <rainct@ubuntu.com>
|
||||
2010-2011, Stefano Rivera <stefanor@ubuntu.com>
|
||||
License: GPL-3
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, version 3 of the License.
|
||||
.
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
.
|
||||
On Debian systems, the complete text of the GNU General Public License
|
||||
version 3 can be found in the /usr/share/common-licenses/GPL-3 file.
|
||||
|
||||
(C) 2006-2008, Canonical Ltd.
|
||||
(C) 2007, Albert Damen <albrt@gmx.net>
|
||||
(C) 2006-2007, Albin Tonnerre <lut1n.tne@gmail.com>
|
||||
(C) 2006-2007, Daniel Holbach <daniel.holbach@ubuntu.com>
|
||||
(C) 2006-2007, Luke Yelavich <themuso@ubuntu.com>
|
||||
(C) 2007, Martin Pitt <martin.pitt@ubuntu.com>
|
||||
(C) 2006-2007, Michael Bienia <geser@ubuntu.com>
|
||||
(C) 2006-2008, Kees Cook <kees@ubuntu.com>
|
||||
(C) 2006-2007, Pete Savage <petesavage@ubuntu.com>
|
||||
(C) 2007-2008, Siegfried-A. Gevatter <rainct@ubuntu.com>
|
||||
(C) 2007, Terence Simpson <stdin@stdin.me.uk>
|
||||
(C) 2008, Iain Lane <iain@orangesquash.org.uk>
|
||||
(C) 2008, Jonathan Davies <jpds@ubuntu.com>
|
||||
(C) 2008, Nathan handler <nhandler@ubuntu.com>
|
||||
Files: dch-repeat
|
||||
doc/dch-repeat.1
|
||||
doc/grep-merges.1
|
||||
doc/mk-sbuild.1
|
||||
doc/pull-pkg.1
|
||||
doc/ubuntu-build.1
|
||||
grep-merges
|
||||
mk-sbuild
|
||||
pull-pkg
|
||||
pull-*debs
|
||||
pull-*-source
|
||||
requirements.txt
|
||||
test-requirements.txt
|
||||
tox.ini
|
||||
ubuntu-build
|
||||
ubuntutools/__init__.py
|
||||
ubuntutools/lp/__init__.py
|
||||
ubuntutools/lp/lpapicache.py
|
||||
ubuntutools/lp/udtexceptions.py
|
||||
ubuntutools/misc.py
|
||||
ubuntutools/pullpkg.py
|
||||
Copyright: 2007-2010, Canonical Ltd.
|
||||
2008-2009, Iain Lane <iain@orangesquash.org.uk>
|
||||
2006, John Dong <jdong@ubuntu.com>
|
||||
2009, Jonathan Davies <jpds@ubuntu.com>
|
||||
2009, Markus Korn <thekorn@gmx.de>
|
||||
2009-2010, Michael Bienia <geser@ubuntu.com>
|
||||
2009, Nathan Handler <nhandler@ubuntu.com>
|
||||
2007-2008, Siegfried-Angel Gevatter Pujals <rainct@ubuntu.com>
|
||||
2010-2012, Stefano Rivera <stefanor@ubuntu.com>
|
||||
2012, Steve Langasek <steve.langasek@ubuntu.com>
|
||||
License: GPL-3+
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
.
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
.
|
||||
On Debian systems, the complete text of the GNU General Public License
|
||||
version 3 can be found in the /usr/share/common-licenses/GPL-3 file.
|
||||
|
||||
Licenses:
|
||||
|
||||
404main, check-symbols, dgetlp, pbuilder-dist, requestsync,
|
||||
reverse-build-depends, submittodebian, ubuntuiso and update-maintainer are
|
||||
licensed under the GNU General Public License, version 2:
|
||||
|
||||
This package is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, at version 2.
|
||||
|
||||
This package is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
On Debian and Ubuntu systems, the complete text of the GNU General Public
|
||||
License v2 can be found in `/usr/share/common-licenses/GPL-2'.
|
||||
|
||||
dch-repeat, get-branches, get-build-deps, massfile, mk-sbuild-lv, ppaput,
|
||||
pull-debian-debdiff, pull-debian-source, pull-lp-source, suspicious-source and what-patch are
|
||||
licensed under the GNU General Public License, version 3:
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, at version 3.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
On Debian and Ubuntu systems, the complete text of the GNU General Public
|
||||
License v3 can be found in `/usr/share/common-licenses/GPL-3'.
|
||||
|
||||
The following of the scripts can be used, at your option, regarding any
|
||||
later version of the previously specified license: 404main, dch-repeat, dgetlp,
|
||||
get-build-deps, mk-sbuild-lv, pull-debian-debdiff, pull-debian-source, pull-lp-source,
|
||||
reverse-build-depends, suspicious-source, what-patch.
|
||||
Files: doc/pull-debian-debdiff.1
|
||||
doc/requestbackport.1
|
||||
doc/reverse-depends.1
|
||||
doc/seeded-in-ubuntu.1
|
||||
doc/sponsor-patch.1
|
||||
doc/ubuntu-dev-tools.5
|
||||
doc/ubuntu-upload-permission.1
|
||||
doc/update-maintainer.1
|
||||
enforced-editing-wrapper
|
||||
pull-debian-debdiff
|
||||
requestbackport
|
||||
reverse-depends
|
||||
seeded-in-ubuntu
|
||||
sponsor-patch
|
||||
ubuntu-upload-permission
|
||||
ubuntutools/archive.py
|
||||
ubuntutools/builder.py
|
||||
ubuntutools/config.py
|
||||
ubuntutools/question.py
|
||||
ubuntutools/rdepends.py
|
||||
ubuntutools/sponsor_patch/*
|
||||
ubuntutools/test/*
|
||||
ubuntutools/update_maintainer.py
|
||||
ubuntutools/version.py
|
||||
update-maintainer
|
||||
.pylintrc
|
||||
Copyright: 2009-2024, Benjamin Drung <bdrung@ubuntu.com>
|
||||
2010, Evan Broder <evan@ebroder.net>
|
||||
2008, Siegfried-Angel Gevatter Pujals <rainct@ubuntu.com>
|
||||
2010-2011, Stefano Rivera <stefanor@ubuntu.com>
|
||||
2017-2021, Dan Streetman <ddstreet@canonical.com>
|
||||
2024, Canonical Ltd.
|
||||
License: ISC
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
.
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
PERFORMANCE OF THIS SOFTWARE.
|
||||
|
9
debian/gbp.conf
vendored
Normal file
9
debian/gbp.conf
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
[DEFAULT]
|
||||
debian-tag = %(version)s
|
||||
debian-branch = master
|
||||
sign-tags = True
|
||||
|
||||
[dch]
|
||||
meta = True
|
||||
auto = True
|
||||
full = True
|
2
debian/links
vendored
Normal file
2
debian/links
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
/usr/bin/pbuilder-dist /usr/bin/cowbuilder-dist
|
||||
/usr/share/man/man1/pbuilder-dist.1.gz /usr/share/man/man1/cowbuilder-dist.1.gz
|
1
debian/python3-ubuntutools.install
vendored
Normal file
1
debian/python3-ubuntutools.install
vendored
Normal file
@ -0,0 +1 @@
|
||||
/usr/lib/python3.*
|
14
debian/rules
vendored
14
debian/rules
vendored
@ -1,8 +1,14 @@
|
||||
#!/usr/bin/make -f
|
||||
|
||||
DEB_PYTHON_SYSTEM := pycentral
|
||||
override_dh_auto_clean:
|
||||
dh_auto_clean
|
||||
rm -f .coverage
|
||||
rm -rf .tox
|
||||
|
||||
include /usr/share/cdbs/1/rules/debhelper.mk
|
||||
include /usr/share/cdbs/1/class/python-distutils.mk
|
||||
override_dh_auto_test:
|
||||
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
|
||||
python3 -m pytest -v ubuntutools
|
||||
endif
|
||||
|
||||
DEB_INSTALL_MANPAGES_ubuntu-dev-tools = doc/*.1
|
||||
%:
|
||||
dh $@ --with python3 --buildsystem=pybuild
|
||||
|
1
debian/source/format
vendored
Normal file
1
debian/source/format
vendored
Normal file
@ -0,0 +1 @@
|
||||
3.0 (native)
|
3
debian/source/lintian-overrides
vendored
Normal file
3
debian/source/lintian-overrides
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
# pyc files are machine-generated; they're expected to have long lines and have unstated copyright
|
||||
source: file-without-copyright-information *.pyc [debian/copyright]
|
||||
source: very-long-line-length-in-source-file * > 512 [*.pyc:*]
|
7
debian/tests/control
vendored
Normal file
7
debian/tests/control
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
Test-Command: python3 -m pytest -v ubuntutools
|
||||
Depends:
|
||||
dh-make,
|
||||
python3-pytest,
|
||||
python3-setuptools,
|
||||
@,
|
||||
Restrictions: allow-stderr
|
1
debian/ubuntu-dev-tools.examples
vendored
1
debian/ubuntu-dev-tools.examples
vendored
@ -1 +0,0 @@
|
||||
examples/*
|
4
debian/ubuntu-dev-tools.install
vendored
4
debian/ubuntu-dev-tools.install
vendored
@ -1,2 +1,2 @@
|
||||
bash_completion/* etc/bash_completion.d/
|
||||
common.py usr/share/ubuntu-dev-tools/
|
||||
/usr/bin
|
||||
/usr/share
|
||||
|
171
dgetlp
171
dgetlp
@ -1,171 +0,0 @@
|
||||
#!/bin/bash
|
||||
# Copyright (C) 2008 Terence Simpson <tsimpson@ubuntu.com>
|
||||
# Modified by Siegfried-A. Gevatter <rainct@ubuntu.com>
|
||||
#
|
||||
# ##################################################################
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 2
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# See file /usr/share/common-licenses/GPL for more details.
|
||||
#
|
||||
# ##################################################################
|
||||
#
|
||||
# This script simulates «dget»'s behaviour for files hosted at
|
||||
# launchpadlibrarian.net.
|
||||
#
|
||||
# Detailed description:
|
||||
# This script attempts to download the source package in the same
|
||||
# way as dget does, but from launchpadlibrarian.net, which doesn't
|
||||
# store all the files in the same directory. It (the script) assumes
|
||||
# that the files are stored in sequential directories on Launchpad
|
||||
# Librarian and attemps to download and then unpack them.
|
||||
|
||||
GET="wget"
|
||||
UNPACK="dpkg-source -x {dsc-file}"
|
||||
DIRECT_TO_NULL="/dev/null"
|
||||
|
||||
usage()
|
||||
{
|
||||
cat << EOF
|
||||
Usage: $0 [-d] <Launchpad URL>
|
||||
|
||||
This scripts simulates «dget»'s behaviour for files hosted at
|
||||
launchpadlibrarian.net.
|
||||
|
||||
If you specify the -d option then it won't do anything, except download the
|
||||
.dsc file, but just print the commands it would run otherwise.
|
||||
|
||||
Example:
|
||||
$(basename $0) http://launchpadlibrarian.net/10348157/coreutils_5.97-5.4ubuntu1.dsc
|
||||
EOF
|
||||
}
|
||||
|
||||
while [ $# -ne 1 ]; do
|
||||
case "$1" in
|
||||
-d|--debug)
|
||||
# Debug Mode
|
||||
OUTPUT="/tmp/"
|
||||
GET="echo ${GET}"
|
||||
UNPACK="echo ${UNPACK}"
|
||||
shift
|
||||
;;
|
||||
-v|--verbose)
|
||||
DIRECT_TO_NULL="$(tty)"
|
||||
shift
|
||||
;;
|
||||
-h|--help)
|
||||
usage
|
||||
exit 0
|
||||
;;
|
||||
-*)
|
||||
echo "Unknown option: \`$1'"
|
||||
usage >&2
|
||||
exit 1
|
||||
;;
|
||||
*)
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ $# -ne 1 ]
|
||||
then
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
## internal functions
|
||||
getBase() {
|
||||
echo "Getting ${BASE}/${NUMBER}/${FILE}"
|
||||
if [ -f "$FILE" ]; then rm -f $FILE; fi # Remove .dsc incase the last run was with debug
|
||||
if ! wget ${BASE}/${NUMBER}/${FILE} -O ${OUTPUT}${FILE} 2>${DIRECT_TO_NULL}
|
||||
then
|
||||
echo "Failed to fetch «.dsc» file, aborting."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
getUrl() {
|
||||
if [ -f "$2" ]
|
||||
then
|
||||
##Todo: Check the md5sum in the .dsc to see if we should redownload or not
|
||||
echo "Skipping already downloaded ${2}"
|
||||
return 0
|
||||
fi
|
||||
|
||||
echo "Getting ${1}${2}"
|
||||
if ! $GET ${1}${2} 2>$DIRECT_TO_NULL
|
||||
then
|
||||
echo "Failed to fetch «${3}»"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
unpack() {
|
||||
if ! $UNPACK
|
||||
then
|
||||
echo "Failed to unpack source, aborting."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
## begin #!/bin/bash
|
||||
|
||||
# Store download URL into a local variable to be able to modify it
|
||||
URL=$1
|
||||
|
||||
if [ ${URL:0:4} == 'www.' ]
|
||||
then
|
||||
URL="http://"${URL:4}
|
||||
fi
|
||||
|
||||
if [ ${URL:0:7} != 'http://' ]
|
||||
then
|
||||
URL="http://"$URL
|
||||
fi
|
||||
|
||||
if [ ${URL:0:30} != 'http://launchpadlibrarian.net/' ]
|
||||
then
|
||||
echo "Error: This utility only works for files on launchpadlibrarian.net."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ${URL##*.} != 'dsc' ]
|
||||
then
|
||||
echo "You have to provide the URL for the .dsc file."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
#BASE="http://$(echo $URL|cut -d '/' -f 3)" #Not needed as we know the base URL
|
||||
BASE="http://launchpadlibrarian.net"
|
||||
NUMBER="$(echo $URL|cut -d '/' -f 4)"
|
||||
FILE="$(echo $URL|cut -d '/' -f 5)"
|
||||
|
||||
UNPACK=$(echo $UNPACK | sed s/{dsc-file}/${FILE}/g)
|
||||
|
||||
if [ -f "$FILE" ]; then rm -f $FILE; fi
|
||||
getBase;
|
||||
PkgVersion="$(grep -B100 "^Files:" ${OUTPUT}${FILE}|grep "^Version:"|cut -d' ' -f2)"
|
||||
PkgName="$(grep -B100 "^Files:" ${OUTPUT}${FILE}|grep "^Source:"|cut -d' ' -f2)"
|
||||
|
||||
if $(echo ${PkgVersion} | grep '-' >/dev/null)
|
||||
then
|
||||
getUrl ${BASE}/$((${NUMBER}-1))/ "$(echo $FILE|sed 's,\.dsc,.diff.gz,')" "diff.gz"
|
||||
getUrl ${BASE}/$((${NUMBER}-2))/ "${PkgName}_$(echo ${PkgVersion}|sed 's,-[0-9]*[a-z]*[0-9]*,.orig.tar.gz,')" "orig.tar.gz"
|
||||
else
|
||||
getUrl ${BASE}/$((${NUMBER}-1))/ "${PkgName}_${PkgVersion}.tar.gz" "tar.gz"
|
||||
fi
|
||||
|
||||
if [ "x${OUTPUT}" != "x" ]
|
||||
then rm -f ${OUTPUT}${FILE}
|
||||
fi
|
||||
|
||||
unpack;
|
@ -1,29 +0,0 @@
|
||||
.TH 404main 1 "February 17, 2008" "ubuntu-dev-tools"
|
||||
|
||||
.SH NAME
|
||||
404main \- check if all build dependencies of a package are in main
|
||||
|
||||
.SH SYNOPSIS
|
||||
\fB404main\fP <\fIpackage name\fP> [<\fIdistribution\fP>]
|
||||
|
||||
.SH DESCRIPTION
|
||||
\fB404main\fP is a script that can be used to check if a package and
|
||||
all its build dependencies are in Ubuntu's main component or not.
|
||||
|
||||
.SH CAVEATS
|
||||
\fB404main\fP will take the dependencies and build dependencies of the
|
||||
packages from the distribution you have first in your
|
||||
/etc/apt/sources.list file.
|
||||
.PP
|
||||
Also, because of this the <\fIdistribution\fP> option is NOT trustful, if
|
||||
the dependencies changed YOU WILL GET INCORRECT RESULTS.
|
||||
|
||||
.SH SEE ALSO
|
||||
.BR apt-cache (8)
|
||||
|
||||
.SH AUTHORS
|
||||
\fB404main\fP was written by Pete Savage <petesavage@ubuntu.com> and
|
||||
this manpage by Siegfried-Angel Gevatter Pujals <rainct@ubuntu.com>.
|
||||
.PP
|
||||
Both are released under the GNU General Public License, version 2 or
|
||||
later.
|
190
doc/backportpackage.1
Normal file
190
doc/backportpackage.1
Normal file
@ -0,0 +1,190 @@
|
||||
.TH BACKPORTPACKAGE "1" "December 2010" "ubuntu-dev-tools"
|
||||
.SH NAME
|
||||
backportpackage \- helper to test package backports
|
||||
.SH SYNOPSIS
|
||||
.TP
|
||||
.B backportpackage \fR[\fIadditional options\fR]
|
||||
\-\-upload <\fIupload target\fR>
|
||||
.br
|
||||
<\fIsource package name or .dsc URL/file\fR>
|
||||
.PP
|
||||
.B backportpackage \-h
|
||||
.SH DESCRIPTION
|
||||
\fBbackportpackage\fR fetches a package from one distribution release
|
||||
or from a specified .dsc path or URL and creates a no-change backport
|
||||
of that package to one or more Ubuntu releases release, optionally
|
||||
doing a test build of the package and/or uploading the resulting
|
||||
backport for testing.
|
||||
.PP
|
||||
Unless a working directory is specified, the backported package is
|
||||
fetched and built in a temporary directory in \fB/tmp\fR, which is
|
||||
removed once the script finishes running.
|
||||
.PP
|
||||
\fBbackportpackage\fR is only recommended for testing backports in a
|
||||
PPA, not uploading backports to the Ubuntu archive.
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.B \-d \fIDEST\fR, \fB\-\-destination\fR=\fIDEST\fR
|
||||
Backport the package to the specified Ubuntu release. If this option
|
||||
is unspecified, then \fBbackportpackage\fR defaults to the release on
|
||||
which it is currently running.
|
||||
.TP
|
||||
.B \-s \fISOURCE\fR, \fB\-\-source\fR=\fISOURCE\fR
|
||||
Backport the package from the specified release, which can be any
|
||||
release of your distribution or any of your distribution's parent
|
||||
distributions. If neither this option nor \fB\-\-version\fR are
|
||||
specified, then \fBbackportpackage\fR defaults to the current
|
||||
development release for your distribution.
|
||||
.TP
|
||||
.B \-S \fISUFFIX\fR, \fB\-\-suffix\fR=\fISUFFIX\fR
|
||||
Add the specified suffix to the version number when
|
||||
backporting. \fBbackportpackage\fR will always append
|
||||
~ubuntu\fIDESTINATION\fR.1 to the original version number, and if
|
||||
\fISUFFIX\fR is specified, it is appended to that, to get version
|
||||
numbers of the form
|
||||
\fIORIGINAL_VERSION\fR~ubuntu\fIDESTINATION\fR.1\fISUFFIX\fR. If the
|
||||
backported package is being uploaded to a PPA, then \fISUFFIX\fR
|
||||
defaults to \fB~ppa1\fR, otherwise the default is blank.
|
||||
.TP
|
||||
.B \-b\fR, \fB\-\-build
|
||||
Build the package with the specified builder before uploading. Note
|
||||
for \fBcowbuilder\fR(8) and \fBpbuilder\fR(8) users:
|
||||
This assumes the common configuration,
|
||||
where the \fBARCH\fR and \fBDIST\fR environment is read by \fBpbuilderrc\fR(5)
|
||||
to select the correct base image.
|
||||
.TP
|
||||
.B \-B \fIBUILDER\fR, \fB\-\-builder\fR=\fIBUILDER
|
||||
Use the specified builder to build the package. Supported are
|
||||
\fBcowbuilder\fR(8), \fBcowbuilder-dist\fR(1), \fBpbuilder\fR(8),
|
||||
\fBpbuilder-dist\fR(1), and \fBsbuild\fR(1).
|
||||
The default is \fBpbuilder\fR(8).
|
||||
.TP
|
||||
.B \-U\fR, \fB\-\-update
|
||||
Update the build environment before attempting to build.
|
||||
.TP
|
||||
.B \-u \fIUPLOAD\fR, \fB\-\-upload\fR=\fIUPLOAD\fR
|
||||
Upload to \fIUPLOAD\fR with \fBdput\fR(1) (after confirmation).
|
||||
.TP
|
||||
.B \-k \fIKEYID\fR, \fB\-\-key\fR=\fIKEYID\fR
|
||||
Specify the key ID to be used for signing.
|
||||
.TP
|
||||
.B \-\-dont\-sign
|
||||
Do not sign the upload.
|
||||
.TP
|
||||
.B \-y\fR, \fB\-\-yes
|
||||
Do not prompt before uploading to a PPA. For everyone's safety, this
|
||||
option is ignored if \fIUPLOAD\fR is \fBubuntu\fR.
|
||||
.TP
|
||||
.B \-v \fIVERSION\fR, \fB\-\-version\fR=\fIVERSION\fR
|
||||
If the \fB\-\-source\fR option is specified, then
|
||||
\fBbackportpackage\fR verifies that the current version of \fIsource
|
||||
package\fR in \fISOURCE\fR is the same as \fIVERSION\fR. Otherwise,
|
||||
\fBbackportpackage\fR finds version \fIVERSION\fR of \fIsource
|
||||
package\fR in your distribution's publishing history, regardless of
|
||||
the release in which it was published (or if that version is still
|
||||
current). This option is ignored if a .dsc URL or path is passed in
|
||||
instead of a source package name.
|
||||
.TP
|
||||
.B \-w \fIWORKDIR\fR, \fB\-\-workdir\fR=\fIWORKDIR\fR
|
||||
If \fIWORKDIR\fR is specified, then all files are downloaded,
|
||||
unpacked, built into, and otherwise manipulated in
|
||||
\fIWORKDIR\fR. Otherwise, a temporary directory is created, which is
|
||||
deleted before \fIbackportpackage\fR exits.
|
||||
.TP
|
||||
.B \-r\fR, \fB\-\-release\-pocket
|
||||
Target the upload at the release pocket, rather than the
|
||||
\fB\-backports\fR pocket.
|
||||
This is required for Launchpad PPAs, which are pocket-less (and the
|
||||
default, when the upload target is a PPA).
|
||||
.TP
|
||||
.B \-m \fIMIRROR\fR, \fB\-\-mirror\fR=\fIMIRROR\fR
|
||||
Use the specified mirror.
|
||||
Should be in the form \fBhttp://archive.ubuntu.com/ubuntu\fR.
|
||||
If the package isn't found on this mirror, \fBbackportpackage\fR
|
||||
will use Launchpad.
|
||||
.TP
|
||||
.B \-c \fIBUG\fR, \fB\-\-close\fR=\fIBUG\fR
|
||||
Include a Launchpad closer for the specified bug in the auto-generated
|
||||
changelog. In the future, this may actually close the bug, but
|
||||
currently does not.
|
||||
.TP
|
||||
.B \-l \fIINSTANCE\fR, \fB\-\-lpinstance\fR=\fIINSTANCE\fR
|
||||
Use the specified instance of Launchpad (e.g. "staging"), instead of
|
||||
the default of "production".
|
||||
.TP
|
||||
.B \-\-no\-conf
|
||||
Do not read any configuration files, or configuration from environment
|
||||
variables.
|
||||
.SH ENVIRONMENT
|
||||
.TP
|
||||
.BR DEBFULLNAME ", " DEBEMAIL ", " UBUMAIL
|
||||
Used to determine the uploader (if not supplied as options).
|
||||
See
|
||||
.BR ubuntu\-dev\-tools (5)
|
||||
for details.
|
||||
.P
|
||||
All of the \fBCONFIGURATION VARIABLES\fR below are also supported as
|
||||
environment variables.
|
||||
Variables in the environment take precedence to those in configuration
|
||||
files.
|
||||
.SH CONFIGURATION VARIABLES
|
||||
The following variables can be set in the environment or in
|
||||
.BR ubuntu\-dev\-tools (5)
|
||||
configuration files.
|
||||
In each case, the script\-specific variable takes precedence over the
|
||||
package\-wide variable.
|
||||
.TP
|
||||
.BR BACKPORTPACKAGE_BUILDER ", " UBUNTUTOOLS_BUILDER
|
||||
The default value for \fB\-\-builder\fR.
|
||||
.TP
|
||||
.BR BACKPORTPACKAGE_UPDATE_BUILDER ", " UBUNTUTOOLS_UPDATE_BUILDER
|
||||
The default value for \fB--update\fR.
|
||||
.TP
|
||||
.B BACKPORTPACKAGE_UPLOAD
|
||||
The default value for \fB--upload\fR.
|
||||
.TP
|
||||
.BR BACKPORTPACKAGE_WORKDIR ", " UBUNTUTOOLS_WORKDIR
|
||||
The default value for \fB--workdir\fR.
|
||||
.TP
|
||||
.BR BACKPORTPACKAGE_UBUNTU_MIRROR ", " UBUNTUTOOLS_UBUNTU_MIRROR
|
||||
The default value for \fB\-\-mirror\fR if the specified \fISOURCE\fR
|
||||
release is an Ubuntu release.
|
||||
.TP
|
||||
.BR BACKPORTPACKAGE_DEBIAN_MIRROR ", " UBUNTUTOOLS_DEBIAN_MIRROR
|
||||
The default value for \fB\-\-mirror\fR if the specified \fISOURCE\fR
|
||||
release is a Debian release.
|
||||
.TP
|
||||
.BR BACKPORTPACKAGE_LPINSTANCE ", " UBUNTUTOOLS_LPINSTANCE
|
||||
The default value for \fB--lpinstance\fR.
|
||||
.SH EXAMPLES
|
||||
Test-build in your PPA a backport of znc from the current development
|
||||
release to your workstation's release, deleting the build products
|
||||
afterwards:
|
||||
.IP
|
||||
.nf
|
||||
.B backportpackage -u ppa:\fIuser\fR/\fIppa\fB znc
|
||||
.fi
|
||||
.PP
|
||||
Backport squashfs-tools from Maverick to both Karmic and Lucid and
|
||||
test-build both locally, leaving all build products in the current
|
||||
working directory:
|
||||
.IP
|
||||
.nf
|
||||
.B backportpackage -b -s maverick -d karmic -d lucid -w . \\\\
|
||||
.B " "squashfs-tools
|
||||
.fi
|
||||
.PP
|
||||
Fetch a package from a PPA, backport it to Hardy, then upload it back
|
||||
to the same PPA:
|
||||
.IP
|
||||
.nf
|
||||
.B backportpackage -d hardy -u ppa:\fIuser\fR/\fIppa\fR \\\\
|
||||
.B " "https://launchpad.net/\fIsome/file.dsc\fR
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR ubuntu\-dev\-tools (5)
|
||||
.SH AUTHOR
|
||||
\fBbackportpackage\fR and this manpage were written by Evan Broder
|
||||
<evan@ebroder.net>
|
||||
.PP
|
||||
Both are released under GNU General Public License, version 2.
|
51
doc/buildd.1
51
doc/buildd.1
@ -1,51 +0,0 @@
|
||||
.TH BUILDD "1" "14 August 2008" "ubuntu-dev-tools"
|
||||
.SH NAME
|
||||
buildd \- command-line interface to Launchpad build operations
|
||||
|
||||
.SH SYNOPSIS
|
||||
.B buildd <srcpackage> <release> <operation>
|
||||
.br
|
||||
.B buildd \-\-help
|
||||
|
||||
.SH DESCRIPTION
|
||||
\fBbuildd\fR provides a command line interface to the Launchpad build
|
||||
operations.
|
||||
|
||||
.PP
|
||||
\fBbuildd\fR uses a cookie file stored at \fI~/.lpcookie.txt\fR to authenticate
|
||||
to Launchpad.
|
||||
This cookie is created on run from the Mozilla Firefox cookie
|
||||
file at \fI~/.mozilla/*/*/cookies.sqlite\fR.
|
||||
|
||||
.SH OPERATIONS
|
||||
Listed below are the available operations for \fBbuildd\fR:
|
||||
.TP
|
||||
.B status
|
||||
Outputs the build status of the package on Launchpad on all architectures.
|
||||
.TP
|
||||
.B retry
|
||||
Requests that the package has another attempt at rebuilding from source.
|
||||
This will only work if the package has \fIFailed to build\fR on Launchpad.
|
||||
.TP
|
||||
.B rescore
|
||||
Requests that the package's build priority be raised in the build queue.
|
||||
Only members of the Launchpad build administrators may issue this operation,
|
||||
and it may only be performed on packages which \fINeed building\fR.
|
||||
|
||||
.SH OPTIONS
|
||||
Listed below are the command line options for \fBbuildd\fR:
|
||||
.TP
|
||||
.B \-h or \-\-help
|
||||
Display a help message and exit.
|
||||
.TP
|
||||
.B \-a or \-\-architecture
|
||||
Only available for \fIrescore\fR and \fIretry\fR operations only.
|
||||
This will only request the rebuilding/rescoring on the specified
|
||||
architecture.
|
||||
|
||||
.SH AUTHORS
|
||||
\fBbuildd\fR was written by Martin Pitt <martin.pitt@canonical.com>, and
|
||||
this manual page was written by Jonathan Patrick Davies <jpds@ubuntu.com>.
|
||||
.PP
|
||||
Both are released under the terms of the GNU General Public License, version 3
|
||||
or (at your option) any later version.
|
18
doc/check-mir.1
Normal file
18
doc/check-mir.1
Normal file
@ -0,0 +1,18 @@
|
||||
.TH check\-mir "1" "13 January 2011" "ubuntu-dev-tools"
|
||||
.SH NAME
|
||||
check\-mir \- check support status of dependencies
|
||||
|
||||
.SH SYNOPSIS
|
||||
.B check\-mir
|
||||
|
||||
.SH DESCRIPTION
|
||||
This script checks if any of a package's build or binary dependencies is
|
||||
in universe/multiverse. If the source package is destined for Ubuntu main or
|
||||
restricted, these either need to be eliminated or need to be promoted to main,
|
||||
following \fBhttps://wiki.ubuntu.com/MainInclusionProcess\fR.
|
||||
|
||||
There are no options, just run it in a source package directory.
|
||||
|
||||
.SH AUTHOR
|
||||
.B check\-mir
|
||||
was written by Martin Pitt <martin.pitt@ubuntu.com>.
|
@ -34,7 +34,7 @@ This will:
|
||||
\(bu Use \fBnm\fP \-D to determine the exported symbols of the old,
|
||||
installed versions of the libraries provided by telepathy\-glib.
|
||||
.TP 2
|
||||
\(bu Install the binary libaries provided by the new version of
|
||||
\(bu Install the binary libraries provided by the new version of
|
||||
telepathy\-glib.
|
||||
.TP 2
|
||||
\(bu Compare the output of \fBnm\fP \-D of the new libraries with the
|
||||
|
@ -52,5 +52,5 @@ This manual page was written by Jonathan Patrick Davies <jpds@ubuntu.com>.
|
||||
.PP
|
||||
Both are released under the GNU General Public License, version 2.
|
||||
|
||||
.SH SEE ALSO
|
||||
.SH SEE ALSO
|
||||
.BR dch(1).
|
||||
|
33
doc/dgetlp.1
33
doc/dgetlp.1
@ -1,33 +0,0 @@
|
||||
.TH DGETLP "1" "27 August 2008" "ubuntu-dev-tools"
|
||||
|
||||
.SH NAME
|
||||
dgetlp \- simulate ``dget'' behaviour for files hosted at librarian.launchpad.net
|
||||
|
||||
.SH SYNOPSIS
|
||||
.B dgetlp \fR[\fB\-d\fR] <\fBLaunchpad DSC URL\fR>
|
||||
|
||||
.SH DESCRIPTION
|
||||
\fBdgetlp\fR downloads and optionally extracts the <\fBLaunchpad DSC URL\fR> from Launchpad.
|
||||
|
||||
.SH OPTIONS
|
||||
Listed below are the command line options for dgetlp:
|
||||
.TP
|
||||
.B \-d
|
||||
Download the .dsc file and display the commands that would be run otherwise.
|
||||
.TP
|
||||
.B <Launchpad DSC URL>
|
||||
This is the source package that you would like to be downloaded from Launchpad.
|
||||
|
||||
.SH ENVIRONMENT VARIABLES
|
||||
.TP
|
||||
DIST
|
||||
Specifies the default target.
|
||||
|
||||
.SH EXAMPLE
|
||||
.B dgetlp http://launchpadlibrarian.net/10348157/coreutils_5.97-5.4ubuntu1.dsc
|
||||
|
||||
.SH AUTHOR
|
||||
\fBdgetlp\fR was written by Terence Simpson <tsimpson@ubuntu.com> and
|
||||
modified by Siegfried-A. Gevatter <rainct@ubuntu.com>.
|
||||
This man page was written by Ryan Kavanagh <ryanakca@kubuntu.org>.
|
||||
Both are released under the GNU General Public License, version 2 or later.
|
@ -1,40 +0,0 @@
|
||||
.TH GET\-BRANCHES "1" "11 August 2008" "ubuntu-dev-tools"
|
||||
.SH NAME
|
||||
get\-branches \- downloads all branches related to a Launchpad team or person
|
||||
|
||||
.SH SYNOPSIS
|
||||
.B get\-branches [\-d directory] [\-o branch|checkout] \-t <team>
|
||||
.br
|
||||
.B get\-branches <team>
|
||||
.br
|
||||
.B get\-branches \-\-help
|
||||
|
||||
.SH DESCRIPTION
|
||||
\fBget\-branches\fR examines the code page of a Launchpad team/person,
|
||||
parses it, and calls Bazaar to download all branches on that page.
|
||||
|
||||
.SH OPTIONS
|
||||
Listed below are the command line options for \fBget\-branches\fR:
|
||||
.TP
|
||||
.B \-h or \-\-help
|
||||
Display a help message and exit.
|
||||
.TP
|
||||
.B \-d or \-\-directory
|
||||
Download branches to a directory other than the current directory.
|
||||
.TP
|
||||
.B \-o or \-\-operation
|
||||
Specifies which Bazaar operation to use when downloading the branches; may be
|
||||
either \fIbranch\fR or \fIcheckout\fR.
|
||||
.TP
|
||||
.B \-t or \-\-team
|
||||
Specifies which Launchpad team/person to download branches from.
|
||||
This option is required.
|
||||
|
||||
.SH AUTHORS
|
||||
\fBget\-branches\fR was written by Daniel Holbach <daniel.holbach@ubuntu.com>,
|
||||
and this manual page was written by Jonathan Patrick Davies <jpds@ubuntu.com>.
|
||||
.PP
|
||||
Both are released under the terms of the GNU General Public License, version 3.
|
||||
|
||||
.SH SEE ALSO
|
||||
.B bzr(1)
|
@ -1,60 +0,0 @@
|
||||
.TH GET\-BUILD\-DEPS 1 "October 27, 2007" "ubuntu-dev-tools"
|
||||
|
||||
.SH NAME
|
||||
get\-build\-deps \- install build dependencies for one or more packages
|
||||
|
||||
.SH SYNOPSIS
|
||||
\fBget\-build\-deps\fP [\fIpackage name\fR]
|
||||
|
||||
.SH DESCRIPTION
|
||||
\fBget\-build\-deps\fP is a script to install the build dependencies for
|
||||
either a local source package or one or more packages from the repositories.
|
||||
.PP
|
||||
In order to obtain all missing build dependencies for a package on
|
||||
which source you are currently working, just run this script without
|
||||
any argument, and it'll read its debian/control file to determine the
|
||||
missing build dependencies.
|
||||
.PP
|
||||
Alternatively, you can call it with a list of space-separated package
|
||||
names, or the name of a single file which contains the package names
|
||||
each on a line.
|
||||
Then it will install the missing dependencies for those packages using
|
||||
"apt\-get build\-dep".
|
||||
|
||||
.SH EXAMPLES
|
||||
.TP
|
||||
get\-build\-deps
|
||||
Looks for a debian/control file in the current working directory and
|
||||
installs the dependencies listed there.
|
||||
.TP
|
||||
get\-build\-deps geany
|
||||
Installs the build dependencies for the version of \fBgeany\fP that's
|
||||
in the repositories.
|
||||
.TP
|
||||
get\-build\-deps geany epiphany\-browser rhythmbox
|
||||
Same as the previous example but also with the dependencies for
|
||||
.B epiphany\-browser
|
||||
and
|
||||
.BR rhythmbox .
|
||||
.TP
|
||||
get\-build\-deps ./package_list.txt
|
||||
Reads the file
|
||||
.B package_list.txt
|
||||
(relative to the current working directory),
|
||||
where each line contains the name of a package, and installs the
|
||||
dependencies for the versions of all those that are in the repositories.
|
||||
|
||||
.SH KNOWN BUGS AND LIMITATIONS
|
||||
When it's being used to install the missing dependencies for a local
|
||||
source package (i.e., no arguments are passed to it) it doesn't check
|
||||
for the dependencies to match the indicated versions, but just installs
|
||||
the newest one available in the repositories.
|
||||
|
||||
.SH SEE ALSO
|
||||
.BR dpkg\-checkbuilddeps (1),
|
||||
.BR apt\-get (8)
|
||||
|
||||
.SH AUTHORS
|
||||
\fBget\-build\-deps\fP and this manual page have been written by Siegfried-Angel
|
||||
Gevatter Pujals <rainct@ubuntu.com>.
|
||||
They are released under the GNU General Public License, version 3 or later.
|
@ -1,26 +0,0 @@
|
||||
.TH GRAB\-ATTACHMENTS "1" "10 August 2008" "ubuntu-dev-tools"
|
||||
.SH NAME
|
||||
grab\-attachments \- downloads attachments from a Launchpad bug
|
||||
.SH SYNOPSIS
|
||||
.B grab\-attachments\fR <\fIbug-number\fR>
|
||||
.br
|
||||
.B grab\-attachments \-h
|
||||
.SH DESCRIPTION
|
||||
\fBgrab\-attachments\fR is a script to download all attachments from a
|
||||
Launchpad bug report into the current directory.
|
||||
|
||||
.SH OPTIONS
|
||||
Listed below are the command line options for grab\-attachments:
|
||||
.TP
|
||||
.B \-h
|
||||
Display a help message and exit.
|
||||
.TP
|
||||
.B <bug-number>
|
||||
Specifies the Launchpad bug number that the script should download
|
||||
attachments from.
|
||||
|
||||
.SH AUTHOR
|
||||
\fBgrab\-attachments\fR was written by Daniel Holbach and this manual page
|
||||
was written by Jonathan Patrick Davies.
|
||||
.PP
|
||||
Both are released under the GNU General Public License, version 2.
|
18
doc/grab-merge.1
Normal file
18
doc/grab-merge.1
Normal file
@ -0,0 +1,18 @@
|
||||
.TH grab\-merge 1 "March 26, 2009" "ubuntu-dev-tools"
|
||||
|
||||
.SH NAME
|
||||
grab\-merge \- grabs a merge's files from merges.ubuntu.com.
|
||||
|
||||
.SH SYNOPSIS
|
||||
\fBgrab\-merge\fP <\fIpackage name\fP>
|
||||
|
||||
.SH DESCRIPTION
|
||||
\fBgrab\-merge\fP is a script that downloads a merge's packaging files and report
|
||||
from merges.ubuntu.com. Placing them in a new directory for working from.
|
||||
|
||||
.SH AUTHORS
|
||||
\fBgrab\-merge\fP was written by Scott James Remnant <scott@ubuntu.com> and
|
||||
this manpage by Jonathan Davies <jpds@ubuntu.com>.
|
||||
.PP
|
||||
Both are released under the GNU General Public License, version 2 or
|
||||
later.
|
26
doc/grep-merges.1
Normal file
26
doc/grep-merges.1
Normal file
@ -0,0 +1,26 @@
|
||||
.TH grep\-merges 1 "December 15, 2010" "ubuntu-dev-tools"
|
||||
.SH NAME
|
||||
grep\-merges \- search for outstanding merges from Debian
|
||||
.SH SYNOPSIS
|
||||
.B grep\-merges
|
||||
.RI [ string ]
|
||||
.SH DESCRIPTION
|
||||
.B grep\-merges
|
||||
searches merges.ubuntu.com for pending merges from Debian.
|
||||
If a
|
||||
.I string
|
||||
is given, it will list all merges whose source package name, last changelog
|
||||
author, or last uploader contain that string.
|
||||
Otherwise, it will list all merges.
|
||||
.SH EXAMPLES
|
||||
.nf
|
||||
$ grep\-merges cjwatson
|
||||
tzsetup Colin Watson <cjwatson@ubuntu.com>
|
||||
console-setup Colin Watson <cjwatson@ubuntu.com>
|
||||
.fi
|
||||
.SH AUTHOR
|
||||
.B grep\-merges
|
||||
and this manual page were written by Colin Watson <cjwatson@ubuntu.com>.
|
||||
.PP
|
||||
Both are released under the terms of the GNU General Public License, version
|
||||
3 or (at your option) any later version.
|
@ -1,26 +0,0 @@
|
||||
.TH HUGDAYLIST "1" "August 27, 2008" "ubuntu-dev-tools"
|
||||
|
||||
.SH NAME
|
||||
hugdaylist \- produce MoinMoin wiki formatted tables based on a Launchpad bug list
|
||||
|
||||
.SH SYNOPSIS
|
||||
.B hugdaylist [\fB\-n\fP|\fB\-\-number <NUMBER>\fP] \fBlaunchpad-buglist-url\fP
|
||||
|
||||
.SH DESCRIPTION
|
||||
\fBhugdaylist\fP produces MoinMoin wiki formatted tables based on a
|
||||
Launchpad bug list
|
||||
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
\fB\-\-number=<NUMBER>\fP
|
||||
This option allows you to specify the number of entries to output.
|
||||
.TP
|
||||
\fBlaunchpad-buglist-url\fP
|
||||
Required, this option is a URL pointing to a launchpad bug list.
|
||||
|
||||
.SH AUTHOR
|
||||
\fBhugdaylist\fP has been written by Canonical Ltd., Daniel Holbach
|
||||
<daniel.holbach@canonical.com> and Jonathan Patrick Davies <jpds@ubuntu.com>.
|
||||
This manual page was written by Ryan Kavanagh <ryanakca@kubuntu.org>.
|
||||
.PP
|
||||
Both are released under the GNU General Public License, version 3.
|
60
doc/import-bug-from-debian.1
Normal file
60
doc/import-bug-from-debian.1
Normal file
@ -0,0 +1,60 @@
|
||||
.TH import\-bug\-from\-debian "1" "September 21 2010" "ubuntu-dev-tools"
|
||||
.SH NAME
|
||||
import\-bug\-from\-debian \- Import bugs from Debian's BTS, and file
|
||||
them against Ubuntu in LP.
|
||||
|
||||
.SH SYNOPSIS
|
||||
.B import\-bug\-from\-debian \fR[\fIoptions\fR] \fIbug\fR...
|
||||
.br
|
||||
.B import\-bug\-from\-debian \-h
|
||||
|
||||
.SH DESCRIPTION
|
||||
\fBimport\-bug\-from\-debian\fR clones bugs from Debian's BTS into
|
||||
Launchpad. Each \fIbug\fR listed on the command line has its initial
|
||||
report re-filed against the same source package in Ubuntu.
|
||||
The Ubuntu bug is linked back to its Debian counterpart.
|
||||
|
||||
Each \fIbug\fR may be provided either as a bug number or URL.
|
||||
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.BR \-b ", " \-\-browserless
|
||||
Don't open the bug in a browser at the end.
|
||||
.TP
|
||||
.BR \-h ", " \-\-help
|
||||
Display a help message and exit.
|
||||
.TP
|
||||
.B \-l \fIINSTANCE\fR, \fB\-\-lpinstance\fR=\fIINSTANCE\fR
|
||||
Use the specified instance of Launchpad (e.g. "staging"), instead of
|
||||
the default of "production".
|
||||
.TP
|
||||
.B \-p \fIPACKAGE\fR, \fB\-\-package\fR=\fIPACKAGE\fR
|
||||
Launchpad package to file bug against, if not the same source package
|
||||
name as Debian.
|
||||
Useful for importing removal bugs filed against \fBftp.debian.org\fR.
|
||||
.TP
|
||||
.B \-\-no\-conf
|
||||
Do not read any configuration files, or configuration from environment
|
||||
variables.
|
||||
.SH ENVIRONMENT
|
||||
All of the \fBCONFIGURATION VARIABLES\fR below are also supported as
|
||||
environment variables.
|
||||
Variables in the environment take precedence to those in configuration
|
||||
files.
|
||||
.SH CONFIGURATION VARIABLES
|
||||
The following variables can be set in the environment or in
|
||||
.BR ubuntu\-dev\-tools (5)
|
||||
configuration files.
|
||||
In each case, the script\-specific variable takes precedence over the
|
||||
package\-wide variable.
|
||||
.TP
|
||||
.BR IMPORT_BUG_FROM_DEBIAN_LPINSTANCE ", " UBUNTUTOOLS_LPINSTANCE
|
||||
The default value for \fB--lpinstance\fR.
|
||||
.SH SEE ALSO
|
||||
.BR ubuntu\-dev\-tools (5)
|
||||
.SH AUTHORS
|
||||
\fBimport\-bug\-from\-debian\fR was written by James Westby
|
||||
<james.westby@ubuntu.com>,
|
||||
and this manual page was written by Stefano Rivera <stefanor@ubuntu.com>.
|
||||
.PP
|
||||
Both are released under the terms of the GNU General Public License, version 2.
|
54
doc/lp-bitesize.1
Normal file
54
doc/lp-bitesize.1
Normal file
@ -0,0 +1,54 @@
|
||||
.TH lp-bitesize "1" "May 9 2010" "ubuntu-dev-tools"
|
||||
.SH NAME
|
||||
lp-bitesize \- Add \fBbitesize\fR tag to bugs and add a comment.
|
||||
|
||||
.SH SYNOPSIS
|
||||
.B lp-bitesize \fR<\fIbug number\fR>
|
||||
.br
|
||||
.B lp-bitesize \-\-help
|
||||
|
||||
.SH DESCRIPTION
|
||||
\fBlp-bitesize\fR adds a bitesize tag to the bug, if it's not there yet. It
|
||||
also adds a comment to the bug indicating that you are willing to help with
|
||||
fixing it.
|
||||
It checks for permission to operate on a given bug first,
|
||||
then perform required tasks on Launchpad.
|
||||
|
||||
.SH OPTIONS
|
||||
Listed below are the command line options for \fBlp-bitesize\fR:
|
||||
.TP
|
||||
.BR \-h ", " \-\-help
|
||||
Display a help message and exit.
|
||||
.TP
|
||||
.B \-l \fIINSTANCE\fR, \fB\-\-lpinstance\fR=\fIINSTANCE\fR
|
||||
Use the specified instance of Launchpad (e.g. "staging"), instead of
|
||||
the default of "production".
|
||||
.TP
|
||||
.B \-\-no\-conf
|
||||
Do not read any configuration files, or configuration from environment
|
||||
variables.
|
||||
|
||||
.SH ENVIRONMENT
|
||||
All of the \fBCONFIGURATION VARIABLES\fR below are also supported as
|
||||
environment variables.
|
||||
Variables in the environment take precedence to those in configuration
|
||||
files.
|
||||
|
||||
.SH CONFIGURATION VARIABLES
|
||||
The following variables can be set in the environment or in
|
||||
.BR ubuntu\-dev\-tools (5)
|
||||
configuration files.
|
||||
In each case, the script\-specific variable takes precedence over the
|
||||
package\-wide variable.
|
||||
.TP
|
||||
.BR BITESIZE_LPINSTANCE ", " UBUNTUTOOLS_LPINSTANCE
|
||||
The default value for \fB--lpinstance\fR.
|
||||
|
||||
.SH SEE ALSO
|
||||
.BR ubuntu\-dev\-tools (5)
|
||||
|
||||
.SH AUTHORS
|
||||
\fBlp-bitesize\fR and this manual page were written by Daniel Holbach
|
||||
<daniel.holbach@canonical.com>.
|
||||
.PP
|
||||
Both are released under the terms of the GNU General Public License, version 3.
|
@ -1,74 +0,0 @@
|
||||
.TH MANAGE-CREDENTIALS "1" "13 January 2009" "ubuntu-dev-tools"
|
||||
.SH NAME
|
||||
manage-credentials \- a tool to create (and manage) credentials which
|
||||
are used to access launchpad via the API.
|
||||
.SH SYNOPSIS
|
||||
.B manage-credentials create -c <consumer> [--email <email> --password <password>] [--service <staging|edge>]
|
||||
.br
|
||||
.B manage-credentials \-h
|
||||
.SH DESCRIPTION
|
||||
\fBmanage-credentials\fR is a tool to create (and manage) credentials which
|
||||
are used to access Launchpad via the API.
|
||||
|
||||
.PP
|
||||
Currently this tool can be used
|
||||
to create a token with or without using the web UI. In the future, once
|
||||
related methods are available through the API, this tool can also be used
|
||||
to manage tokens in launchpad and on the users local machine.
|
||||
|
||||
.SH OPTIONS
|
||||
Listed below are the command line options for requestsync:
|
||||
.TP
|
||||
.B \-h
|
||||
Display a help message and exit.
|
||||
.TP
|
||||
.B \-c \-\-consumer
|
||||
.TP
|
||||
.B \-e \-\-email <email>
|
||||
Your email address as registered on Launchpad.
|
||||
.TP
|
||||
.B \-p \-\-password <password>
|
||||
Your Launchpad password.
|
||||
.TP
|
||||
.B \-s \-\-service <edge|staging>
|
||||
If we should use the edge or staging root of the Launchpad API.
|
||||
.TP
|
||||
.B \-\-cache
|
||||
Where to store the cache.
|
||||
.TP
|
||||
.B \-o
|
||||
Which file we should save the credentials to.
|
||||
.TP
|
||||
.B \-l \-\-level <number>
|
||||
A number representing the access-level you wish to give to the new
|
||||
Launchpad token. 0 is unauthorized, 1 is read public data, 2; write public data,
|
||||
3; read private data and 4; write private data.
|
||||
|
||||
.SH EXAMPLE USAGE
|
||||
There are currently two ways of using \fBmanage-credentials\fR to get
|
||||
Launchpad tokens.
|
||||
.TP
|
||||
1) manage-credentials create -c CONSUMER --level 2
|
||||
|
||||
.TP
|
||||
This way shall open your webbrowser with a Launchpad login page.
|
||||
|
||||
.TP
|
||||
2) manage-credentials create -c CONSUMER --level 2 --password BOO --email me@example.com
|
||||
|
||||
.TP
|
||||
This is a hack, but it works and does not require a webbrowser .
|
||||
|
||||
.TP
|
||||
If you intend to use manage-credentials for Ubuntu development (such as
|
||||
the ubuntu-dev-tools package). Please by sure to run the following:
|
||||
|
||||
.TP
|
||||
manage-credentials create -c ubuntu-dev-tools -o ~/.lp_credentials.txt
|
||||
|
||||
.SH AUTHOR
|
||||
.B manage-credentials
|
||||
was written by Markus Korn <thekorn@gmx.de> and this manual page was written by
|
||||
Jonathan Davies <jpds@ubuntu.com>.
|
||||
.PP
|
||||
Both are released under the GNU General Public License, version 3.
|
20
doc/merge-changelog.1
Normal file
20
doc/merge-changelog.1
Normal file
@ -0,0 +1,20 @@
|
||||
.TH merge-changelog 1 "February 15, 2010" "ubuntu-dev-tools"
|
||||
|
||||
.SH NAME
|
||||
merge\-changelog \- merges two changelogs with a common base
|
||||
|
||||
.SH SYNOPSIS
|
||||
\fBmerge\-changelog\fP <\fIleft changelog\fP> <\fIright changelog\fP>
|
||||
|
||||
.SH DESCRIPTION
|
||||
\fBmerge\-changelog\fP takes two changelogs that once shared a common source,
|
||||
merges them back together, and prints the merged result to stdout. This
|
||||
is useful if you need to manually merge a ubuntu package with a new
|
||||
Debian release of the package.
|
||||
|
||||
.SH AUTHORS
|
||||
\fBmerge\-changelog\fP was written by Scott James Remnant <scott@ubuntu.com>
|
||||
and Bryce Harrington <bryce@ubuntu.com>. This manpage was written by Ryan
|
||||
Kavanagh <ryanakca@kubuntu.org>.
|
||||
.PP
|
||||
Both are released under the GNU General Public License, version 3.
|
@ -1,82 +0,0 @@
|
||||
.TH MK\-SBUILD\-LV "1" "27 August 2008" "ubuntu-dev-tools"
|
||||
|
||||
.SH NAME
|
||||
mk\-sbuild\-lv \- creates LVM snapshot chroots via schroot and sbuild
|
||||
|
||||
.SH SYNOPSIS
|
||||
\fBmk\-sbuild\-lv\fR [\fB\-\-arch=ARCH\fR] [\fB\-\-name=NAME\fR]
|
||||
[\fB\-\-personality=PERSONALITY\fR] [\fB\-\-debug\fR] [\fB\-\-source\-template=FILE\fR]
|
||||
[\fB\-\-debootstrap\-mirror=URL\fR] <\fBVG\fR> <\fBRelease\fR>
|
||||
|
||||
.SH DESCRIPTION
|
||||
\fBmk\-sbuild\-lv\fR creates LVM snapshot chroots via schroot and sbuild.
|
||||
|
||||
.SH OPTIONS
|
||||
Listed below are the command line options for mk\-sbuild\-lv:
|
||||
.TP
|
||||
.B \-\-arch=ARCH
|
||||
What architecture to select (defaults to the native architecture).
|
||||
.TP
|
||||
.B \-\-name=NAME
|
||||
Base name for the schroot (arch is appended).
|
||||
.TP
|
||||
.B \-\-personality=PERSONALITY
|
||||
What personality to use (defaults to match \-\-arch).
|
||||
.TP
|
||||
.B \-\-debug
|
||||
Turn on script debugging.
|
||||
.TP
|
||||
.B \-\-skip\-updates
|
||||
Do not include the -updates pocket in the installed sources.list.
|
||||
.TP
|
||||
.B \-\-source\-template=FILE
|
||||
Use FILE as the sources.list template (defaults to $HOME/.mk\-sbuild\-lv.sources).
|
||||
.TP
|
||||
.B \-\-debootstrap\-mirror=URL
|
||||
Use URL as the debootstrap source (defaults to http://ports.ubuntu.com for lpia,
|
||||
official Ubuntu repositories for the supported architectures).
|
||||
|
||||
.SH ENVIRONMENT VARIABLES
|
||||
.TP
|
||||
.B LV_SIZE
|
||||
Size of source LVs (defaults to 5G).
|
||||
.TP
|
||||
.B SNAPSHOT_SIZE
|
||||
Size of snapshot LVs (defaults to 4G).
|
||||
.TP
|
||||
.B SCHROOT_CONF_SUFFIX
|
||||
Lines to append to schroot entries.
|
||||
.TP
|
||||
.B SKIP_UPDATES
|
||||
Do not include the -updates pocket in the installed sources.list.
|
||||
|
||||
.SH FILES
|
||||
.TP
|
||||
.B $HOME/.mk\-sbuild\-lv.rc
|
||||
Sourced for environment variables (defined above).
|
||||
.TP
|
||||
.B $HOME/.mk\-sbuild\-lv.sources
|
||||
Can contain a customized sources.list.
|
||||
It will be read when creating the schroot.
|
||||
See sources.list(5) for more details on the format.
|
||||
.TP
|
||||
.B $HOME/.mk\-sbuild\-lv.schroot.conf
|
||||
Can contain a customized configuration section to be inserted into
|
||||
/etc/schroot/schroot.conf.
|
||||
See schroot.conf(5) for more details on the format.
|
||||
.SH USING THE CHROOTS
|
||||
.TP
|
||||
To UPDATE the golden image: \fBschroot \-c ${CHROOT_NAME}\-source -u root \-\- sh \-c apt\-get update && apt\-get \-y upgrade\fR
|
||||
.TP
|
||||
To ENTER an image snapshot: \fBschroot \-c ${CHROOT_NAME}\fR
|
||||
.TP
|
||||
To BUILD within a snapshot: \fBsbuild \-d ${SCHROOT_NAME} PACKAGE*.dsc\fR
|
||||
|
||||
.SH SEE ALSO
|
||||
sbuild\-setup (7), sources.list (5), schroot.conf (5),
|
||||
https://help.ubuntu.com/community/SbuildLVMHowto
|
||||
|
||||
.SH AUTHOR
|
||||
\fBmk\-sbuild\-lv\fR was written by Kees Cook <kees@ubuntu.com>.
|
||||
This man page was written by Ryan Kavanagh <ryanakca@kubuntu.org>.
|
||||
Both are released under the GNU General Public License, version 3 or later.
|
224
doc/mk-sbuild.1
Normal file
224
doc/mk-sbuild.1
Normal file
@ -0,0 +1,224 @@
|
||||
.TH MK\-SBUILD "1" "09 February 2010" "ubuntu-dev-tools"
|
||||
|
||||
.SH NAME
|
||||
mk\-sbuild \- creates chroots via schroot and sbuild
|
||||
|
||||
.SH SYNOPSIS
|
||||
\fBmk\-sbuild\fR [\fIoptions\fR...] <\fIrelease\fR>
|
||||
|
||||
.SH DESCRIPTION
|
||||
\fBmk\-sbuild\fR creates chroots via schroot and sbuild.
|
||||
|
||||
.SH OPTIONS
|
||||
Listed below are the command line options for mk\-sbuild:
|
||||
.TP
|
||||
.B \-\-arch\fR=\fIARCH
|
||||
What architecture to select (defaults to the native architecture).
|
||||
.TP
|
||||
.B \-\-target\fR=\fRARCH
|
||||
Set up the chroot as a cross-building environment targeting the specified
|
||||
architecture.
|
||||
.TP
|
||||
.B \-\-name\fR=\fINAME
|
||||
Base name for the schroot (arch is appended).
|
||||
.TP
|
||||
.B \-\-personality\fR=\fIPERSONALITY
|
||||
What personality to use (defaults to match \fB\-\-arch\fR).
|
||||
.TP
|
||||
.B \-\-debug
|
||||
Turn on script debugging.
|
||||
.TP
|
||||
.B \-\-skip\-updates
|
||||
Do not include the \fB\-updates\fR pocket in the installed
|
||||
\fBsources.list\fR.
|
||||
.TP
|
||||
.B \-\-skip\-proposed
|
||||
Do not include the \fB\-proposed\fR pocket in the installed
|
||||
\fBsources.list\fR.
|
||||
.TP
|
||||
.B \-\-source\-template\fR=\fIFILE
|
||||
Use \fIFILE\fR as the \fBsources.list\fR template (defaults to
|
||||
\fI$HOME\fB/.mk\-sbuild.sources\fR).
|
||||
.TP
|
||||
.B \-\-debootstrap\-mirror\fR=\fIURL
|
||||
Use \fIURL\fR as the debootstrap source (defaults to
|
||||
\fBhttp://ports.ubuntu.com\fR where appropriate, official Ubuntu
|
||||
repositories for the supported architectures).
|
||||
.TP
|
||||
.B \-\-debootstrap\-include\fR=\fIalpha,beta
|
||||
Pass along a comma separated list of packages to debootstrap's
|
||||
\fB\-\-include\fR argument. See \fBdebootstrap\fR (8) for more details.
|
||||
.TP
|
||||
.B \-\-debootstrap\-exclude\fR=\fIalpha,beta
|
||||
Pass along a comma separated list of packages to debootstrap's
|
||||
\fB\-\-exclude\fR argument.
|
||||
\fBWARNING:\fR be careful using this option as you can end up
|
||||
excluding essential package. See \fBdebootstrap \fR(8) for more details.
|
||||
.TP
|
||||
.B \-\-debootstrap\-keyring\fR=\fIkeyring
|
||||
Pass along the path to a gpg keyring file to debootsrap's
|
||||
\fB\-\-keyring\fR argument. See \fBdebootstrap\fR (8) for more details.
|
||||
.TP
|
||||
.B \-\-debootstrap\-no\-check\-gpg
|
||||
Disable checking gpg signatures of downloaded Release files by using
|
||||
debootstrap's \fB\-\-no\-check\-gpg\fR option. See \fBdebootstrap\fR (8)
|
||||
for more details.
|
||||
.TP
|
||||
.B \-\-debootstrap\-proxy\fR=\fIPROXY
|
||||
Use \fIPROXY\fR as apt proxy.
|
||||
.TP
|
||||
.B \-\-eatmydata
|
||||
Install and use eatmydata (default)
|
||||
.TP
|
||||
.B \-\-skip\-eatmydata
|
||||
Don't install and use eatmydata
|
||||
.TP
|
||||
.B \-\-distro\fR=\fIDISTRO
|
||||
Enable distro-specific logic.
|
||||
When not provided, the distribution is determined from \fIrelease\fR.
|
||||
Currently known distros: "\fBdebian\fR" and "\fBubuntu\fR".
|
||||
.TP
|
||||
.B \-\-vg\fR=\fIVOLUME_GROUP
|
||||
Specify a volume group, and subsequently use a default \fBSCHROOT_TYPE\fR of
|
||||
"\fBlvm-snapshot\fR" rather than "\fBdirectory\fR" (via overlayfs or
|
||||
aufs) mounts.
|
||||
.TP
|
||||
.B \-\-zfs-dataset=\fIDATASET
|
||||
Specify a zfs dataset, and subsequently use a default \fBSCHROOT_TYPE\fR of
|
||||
"\fBzfs-snapshot\fR" rather than "\fBdirectory\fR" (via overlayfs or
|
||||
aufs) mounts.
|
||||
.TP
|
||||
.B \-\-type\fR=\fISHROOT_TYPE
|
||||
Specify a \fBSCHROOT_TYPE\fR. Supported values are "\fBdirectory\fR"
|
||||
(default if \fB\-\-vg\fR not specified), "\fBlvm-snapshot\fR" (default
|
||||
if \fB\-\-vg\fR specified), "\fBbtrfs-snapshot\fR", "\fBzfs-snapshot\fR"
|
||||
and "\fBfile\fR".
|
||||
.TP
|
||||
.B \-\-ccache
|
||||
Enable usage of \fBccache\fR by default. See \fBccache\fR (1) for
|
||||
more details.
|
||||
.TP
|
||||
.B \-\-ccache-dir=\fIPATH
|
||||
Use \fBPATH\fR as schroot ccache directory. This directory can be
|
||||
safely shared by multiple schroots, but they will all use the same
|
||||
\fBCCACHE_MAXSIZE\fR.
|
||||
Defaults to /var/cache/ccache-sbuild.
|
||||
See \fBccache\fR (1) for more details.
|
||||
.TP
|
||||
.B \-\-ccache-size=\fISIZE
|
||||
Sets \fBSIZE\fR as the schroot \fBCCACHE_DIR\fR max-size used by ccache.
|
||||
See \fBccache\fR (1) for more details.
|
||||
|
||||
.SH ENVIRONMENT VARIABLES
|
||||
.TP
|
||||
.B LV_SIZE
|
||||
Size of source LVs (defaults to 5G).
|
||||
.TP
|
||||
.B SNAPSHOT_SIZE
|
||||
Size of snapshot LVs (defaults to 4G).
|
||||
.TP
|
||||
.B SCHROOT_CONF_SUFFIX
|
||||
Lines to append to schroot entries.
|
||||
.TP
|
||||
.B SCHROOT_PROFILE
|
||||
Profile to use with schroot. (defaults to sbuild)
|
||||
.TP
|
||||
.B SKIP_UPDATES
|
||||
Do not include the \fB\-updates\fR pocket (same as
|
||||
\fB\-\-skip\-updates\fR)
|
||||
.TP
|
||||
.B SKIP_PROPOSED
|
||||
Do not include the \fB\-proposed\fR pocket (same as
|
||||
\fB\-\-skip\-proposed\fR)
|
||||
.TP
|
||||
.B DEBOOTSTRAP_MIRROR
|
||||
Mirror location (same as \fB\-\-debootstrap-mirror\fR)
|
||||
.TP
|
||||
.B DEBOOTSTRAP_INCLUDE
|
||||
Comma separated list of packages to include when bootstrapping (same as
|
||||
\fB\-\-debootstrap-include\fR)
|
||||
.TP
|
||||
.B DEBOOTSTRAP_EXCLUDE
|
||||
Comma separated list of packages to exclude when bootstrapping (same as
|
||||
\fB\-\-debootstrap-exclude\fR; see warning above)
|
||||
.TP
|
||||
.B DEBOOTSTRAP_KEYRING
|
||||
Keyring file to use for checking gpg signatures of retrieved release files
|
||||
(same as \fB\-\-debootstrap\-keyring\fR)
|
||||
.TP
|
||||
.B DEBOOTSTRAP_NO_CHECK_GPG
|
||||
Disable gpg verification of retrieved release files (same as
|
||||
\fB\-\-debootstrap\-no\-check\-gpg\fR)
|
||||
.TP
|
||||
.B DEBOOTSTRAP_PROXY
|
||||
Proxy to use for apt. (same as
|
||||
\fB\-\-debootstrap\-proxy\fR)
|
||||
.TP
|
||||
.B EATMYDATA
|
||||
Enable or disable eatmydata usage, see \fB\-\-eatmydata\fR
|
||||
and \fB\-\-skip\-eatmydata\fR
|
||||
.TP
|
||||
.B SOURCE_CHROOTS_DIR
|
||||
Use \fBSOURCE_CHROOTS_DIR\fR as home of schroot source directories.
|
||||
(default \fB/var/lib/schroot/chroots\fR)
|
||||
.TP
|
||||
.B SOURCE_CHROOTS_TGZ
|
||||
Use \fBSOURCE_CHROOTS_TGZ\fR as home of schroot source tarballs.
|
||||
(default \fB/var/lib/schroot/tarballs\fR)
|
||||
.TP
|
||||
.B CHROOT_SNAPSHOT_DIR
|
||||
Use \fBCHROOT_SNAPSHOT_DIR\fR as home of mounted btrfs snapshots.
|
||||
(default \fB/var/lib/schroot/snapshots\fR)
|
||||
.TP
|
||||
.B CCACHE
|
||||
Enable \fBccache\fR (1) by default.
|
||||
(defaults to \fB0\fR)
|
||||
.TP
|
||||
.B CCACHE_DIR
|
||||
Use \fBCCACHE_DIR\fR as the \fBccache\fR (1) directory.
|
||||
(default \fB/var/cache/ccache-sbuild\fR)
|
||||
.TP
|
||||
.B CCACHE_SIZE
|
||||
Use \fBCCACHE_SIZE\fR as the \fBccache\fR (1) max-size.
|
||||
(defaults to \fB4G\fR)
|
||||
|
||||
|
||||
.SH FILES
|
||||
.TP
|
||||
.IB $HOME /.mk\-sbuild.rc
|
||||
Sourced for environment variables (defined above).
|
||||
.TP
|
||||
.IB $HOME /.mk\-sbuild.sources\fR[\fB. $DISTRO\fR]
|
||||
Can contain a customized \fBsources.list\fR.
|
||||
It will be read when creating the schroot.
|
||||
If a file with "\fB.ubuntu\fR" or "\fB.debian\fR" is found (as
|
||||
appropriate) it will use used instead.
|
||||
See \fBsources.list\fR (5) for more details on the format.
|
||||
.TP
|
||||
.IB $HOME /.mk\-sbuild.schroot.conf\fR[\fB. $SCHROOT_TYPE\fR]
|
||||
Can contain a customized configuration section to be inserted into
|
||||
\fB/etc/schroot/schroot.conf\fR.
|
||||
If a file with "\fB.lvm-snapshot\fR", "\fB.directory\fR", "\fB.file\fR",
|
||||
or "\fBbtrfs-snapshot\fR" is found (as appropriate) that file will use used instead.
|
||||
See \fBschroot.conf\fR (5) for more details on the format.
|
||||
.SH USING THE CHROOTS
|
||||
.TP
|
||||
To CHANGE the golden image: \fBsudo schroot \-c \fI${SCHROOT_NAME}\fB\-source \-u root\fR
|
||||
.TP
|
||||
To ENTER an image snapshot: \fBschroot \-c \fI$SCHROOT_NAME\fR
|
||||
.TP
|
||||
To BUILD within a snapshot: \fBsbuild \-A \-d \fI$SCHROOT_NAME $PACKAGE\fB*.dsc\fR
|
||||
.TP
|
||||
for example, to update the packages in a \fBsid\-amd64\fR golden image:
|
||||
\fBschroot \-c sid\-amd64\-source \-u root -- sh \-c "apt-get \-qq update && apt-get \-qy upgrade && apt-get clean" </dev/null\fR
|
||||
|
||||
.SH SEE ALSO
|
||||
.BR sbuild\-setup (7),
|
||||
.BR sources.list (5),
|
||||
.BR schroot.conf (5),
|
||||
.B https://help.ubuntu.com/community/SbuildLVMHowto
|
||||
|
||||
.SH AUTHOR
|
||||
\fBmk\-sbuild\fR was written by Kees Cook <kees@ubuntu.com>.
|
||||
This man page was written by Ryan Kavanagh <ryanakca@kubuntu.org>.
|
||||
Both are released under the GNU General Public License, version 3 or later.
|
@ -1,35 +1,36 @@
|
||||
.TH PBUILDER\-DIST 1 "February 25, 2008" "ubuntu-dev-tools"
|
||||
.TH PBUILDER\-DIST\-SIMPLE 1 "February 25, 2008" "ubuntu\-dev\-tools"
|
||||
|
||||
.SH NAME
|
||||
pbuilder\-dist\-simple \- simple multi-distribution pbuilder wrapper
|
||||
pbuilder\-dist\-simple \- simple multi\-release pbuilder wrapper
|
||||
|
||||
.SH SYNOPSIS
|
||||
\fBpbuilder\-\fI<dist>\fR\fP \fIoperation\fR [\fI...\fR]
|
||||
|
||||
.SH DESCRIPTION
|
||||
\fBpbuilder\-dist\fP is a wrapper that makes it easy to use pbuilder with
|
||||
chroots for many different Ubuntu/Debian distributions.
|
||||
\fBpbuilder\-dist\-simple\fP is a wrapper that makes it easy to use
|
||||
pbuilder with chroots for many different Ubuntu distributions.
|
||||
If you need more features than \fBpbuilder\-dist\-simple\fP provides, have a
|
||||
look at \fBpbuilder\-dist\fP.
|
||||
look at
|
||||
.BR pbuilder\-dist (1).
|
||||
|
||||
.SH USAGE
|
||||
Create one symlink to \fBpbuilder\-dist\-simple\fP for each distribution
|
||||
for which you want a build environment, naming them like "pbuilder\-hardy",
|
||||
"pbuilder\-gutsy", etc.
|
||||
for which you want a build environment, naming them like "pbuilder\-lucid",
|
||||
"pbuilder\-natty", etc.
|
||||
.PP
|
||||
Replace \fIoperation\fP with the action you want \fBpbuilder\-dist\-simple\fP
|
||||
to do (create, update, build, clean, login or execute).
|
||||
|
||||
.SH EXAMPLES
|
||||
.TP
|
||||
pbuilder\-gutsy create
|
||||
Creates a \fBpbuilder\fP environment for Ubuntu Gutsy.
|
||||
pbuilder\-natty create
|
||||
Creates a \fBpbuilder\fP environment for Ubuntu Natty.
|
||||
.TP
|
||||
pbuilder\-sid update
|
||||
Updates an existing Debian Sid environment.
|
||||
pbuilder\-lucid update
|
||||
Updates an existing Ubuntu Lucid environment.
|
||||
.TP
|
||||
pbuilder\-hardy build ./sample_1.0\-0ubuntu1.dsc
|
||||
Builds the specified package on an already existing Ubuntu Hardy environment.
|
||||
pbuilder\-lucid build ./sample_1.0\-0ubuntu1.dsc
|
||||
Builds the specified package on an already existing Ubuntu Lucid environment.
|
||||
|
||||
.SH FILES
|
||||
By default, \fBpbuilder\-dist\-simple\fP will store all the files it
|
||||
@ -39,12 +40,14 @@ to any other directory you want.
|
||||
If the directory doesn't exit, it will be created at runtime.
|
||||
|
||||
.SH SEE ALSO
|
||||
\fBpbuilder\fR, \fBpbuilderrc\fR
|
||||
.BR pbuilder (1),
|
||||
.BR pbuilderrc (5),
|
||||
.BR pbuilder\-dist (1)
|
||||
|
||||
.SH AUTHORS
|
||||
\fBpbuilder\-dist\fP was originally written by Jamin W. Collins
|
||||
<jcollins@asgardsrealm.net> and Jordan Mantha <mantha@ubuntu.com>, and
|
||||
this manpage by Siegfried-A. Gevatter <rainct@ubuntu.com>.
|
||||
this manpage by Siegfried\-A. Gevatter <rainct@ubuntu.com>.
|
||||
.PP
|
||||
Both are released under the GNU General Public License, version 2 or
|
||||
later.
|
||||
|
@ -4,23 +4,23 @@
|
||||
pbuilder\-dist, cowbuilder\-dist \- multi-distribution pbuilder/cowbuilder wrapper
|
||||
|
||||
.SH SYNOPSIS
|
||||
\fBpbuilder\-dist\fP \fIdistribution\fR [\fBi386\fP|\fBamd64\fP] [\fBmainonly\fP]
|
||||
\fIoperation\fR [\fI...\fR]
|
||||
\fBpbuilder\-dist\fP \fIdistribution\fR [\fIarchitecture\fR] \fIoperation\fR
|
||||
[\fBoptions\fP] [\fI...\fR]
|
||||
|
||||
\fBcowbuilder\-dist\fP \fIdistribution\fR [\fBi386\fP|\fBamd64\fP] [\fBmainonly\fP]
|
||||
\fIoperation\fR [\fI...\fR]
|
||||
\fBcowbuilder\-dist\fP \fIdistribution\fR [\fIarchitecture\fR] \fIoperation\fR
|
||||
[\fBoptions\fP] [\fI...\fR]
|
||||
|
||||
.SH DESCRIPTION
|
||||
\fBpbuilder\-dist\fP is a wrapper that makes it easy to use pbuilder with many different
|
||||
versions of Ubuntu and/or Debian.
|
||||
\fBpbuilder\-dist\fP is a wrapper that makes it easy to use pbuilder with many different
|
||||
versions of Ubuntu and/or Debian.
|
||||
.PP
|
||||
It is common to symlink this script in order to give it many names in the form of
|
||||
\fBpbuilder\-\fIdistribution\fP\fR (\fBpbuilder\-\fIdistribution\fR\-\fIarchitecture\fP\fR on amd64
|
||||
systems), like for example \fBpbuilder\-feisty\fP, \fBpbuilder\-sid\fP, \fBpbuilder\-gutsy\-i386\fP, etc.
|
||||
\fBpbuilder\-\fIdistribution\fP\fR or \fBpbuilder\-\fIdistribution\fR\-\fIarchitecture\fP\fR,
|
||||
like for example \fBpbuilder\-feisty\fP, \fBpbuilder\-sid\fP, \fBpbuilder\-gutsy\-i386\fP, etc.
|
||||
.PP
|
||||
The same applies to \fBcowbuilder\-dist\fP, which uses cowbuilder. The main
|
||||
difference between both is that pbuilder compresses the created chroot as a
|
||||
a tarball, thus using less disc space but needing to uncompress (and possibly
|
||||
tarball, thus using less disc space but needing to uncompress (and possibly
|
||||
compress) its contents again on each run, and cowbuilder doesn't do this.
|
||||
|
||||
.SH USAGE
|
||||
@ -33,16 +33,15 @@ the name also contains \-\fIarchitecture\fR.
|
||||
\fBdistribution\fP
|
||||
Replace this with the codename of the version of Ubuntu or Debian you want to use.
|
||||
.TP
|
||||
\fBi386\fP / \fBamd64\fP
|
||||
Only available on amd64 systems.
|
||||
This is optional; default is \fBamd64\fP.
|
||||
If \fBi386\fP is specified, an i386 environment will be used.
|
||||
.TP
|
||||
\fBmainonly\fP
|
||||
If you specify \fBmainonly\fP, only packages from the main (in Debian) or
|
||||
main and restricted (in Ubuntu) components will be used. By default, all
|
||||
official components are enabled. This only has effect when creating a new
|
||||
environment.
|
||||
\fBarchitecture\fP
|
||||
This optional parameter will attempt to construct a chroot in a foreign
|
||||
architecture.
|
||||
For some architecture pairs (e.g. i386 on an amd64 install), the chroot
|
||||
will be created natively.
|
||||
For others (e.g. arm64 on an amd64 install), qemu\-user\-static will be
|
||||
used.
|
||||
Note that some combinations (e.g. amd64 on an i386 install) require
|
||||
special separate kernel handling, and may break in unexpected ways.
|
||||
.TP
|
||||
\fBoperation\fP
|
||||
Replace this with the action you want \fBpbuilder\fP to do (create, update,
|
||||
@ -59,12 +58,43 @@ a .dsc file. As a special feature, if you specify a .dsc file you can
|
||||
skip the \fBbuild\fP option and this script will automatically assume that
|
||||
building is the action you want to do.
|
||||
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
\fB\-\-main\-only\fP (deprecated: \fBmainonly\fP)
|
||||
If you specify this option, only packages from the \fImain\fP (in Debian) or
|
||||
\fImain\fP and \fIrestricted\fP (in Ubuntu) components will be used. By
|
||||
default, all official components are enabled. This only has effect when
|
||||
creating a new environment.
|
||||
.TP
|
||||
\fB\-\-debug\-echo\fP
|
||||
The generated \fBpbuilder\fP/\fBcowbuilder\fP command will be printed to the
|
||||
standard output instead of being executed. This is useful for debugging.
|
||||
.TP
|
||||
\fB\-\-buildresult\fP \fBDIRECTORY\fP (pbuilder\-dist only)
|
||||
If this option is specified, the resultant files of the \fBpbuilder\fP build
|
||||
are placed in \fBDIRECTORY\fP.
|
||||
.TP
|
||||
\fB\-\-release\-only\fP
|
||||
Only use the release pocket.
|
||||
Default for development releases.
|
||||
.TP
|
||||
\fB\-\-security\-only\fP
|
||||
Only use the release and security pockets.
|
||||
Suitable environment for preparing security updates.
|
||||
.TP
|
||||
\fB\-\-updates\-only\fP
|
||||
Only use the release, security, and updates pocket.
|
||||
Not the proposed\-updates pocket.
|
||||
.TP
|
||||
\fB\-\-backports\fP
|
||||
Also use the backports archive..
|
||||
|
||||
.SH EXAMPLES
|
||||
.TP
|
||||
pbuilder\-dist gutsy create
|
||||
Creates a \fBpbuilder\fP environment for Ubuntu Gutsy, with all components enabled.
|
||||
.TP
|
||||
pbuilder\-sid mainonly create
|
||||
pbuilder\-sid \-\-main\-only create
|
||||
Creates a \fBpbuilder\fP environment for Debian Sid, with only the main component.
|
||||
.TP
|
||||
pbuilder\-feisty build ./sample_1.0\-0ubuntu1.dsc
|
||||
@ -81,29 +111,48 @@ Creates a \fBcowbuilder\fP environment for Debian Experimental.
|
||||
|
||||
.SH FILES AND ENVIRONMENT VARIABLES
|
||||
By default, \fBpbuilder\-dist\fP will store all the files it generates in
|
||||
\fB~/pbuilder/\fP. This can be changed by setting the $PBUILDFOLDER global
|
||||
variable. If the directory doesn't exist, it will be created on the run.
|
||||
\fB~/pbuilder/\fP. This can be changed by setting the \fBPBUILDFOLDER\fP
|
||||
environment variable. If the directory doesn't exist, it will be created on
|
||||
the run.
|
||||
.PP
|
||||
A file with the log of the last operation, called last_operation.log, will be
|
||||
saved in the results subdirectory of each build environment.
|
||||
.PP
|
||||
The default authentication method is \fBsudo\fP. You can change this by
|
||||
setting the $PBUILDAUTH variable.
|
||||
setting the \fBPBUILDAUTH\fP variable.
|
||||
.PP
|
||||
By default, \fBpbuilder\-dist\fP use the master Debian and Ubuntu mirrors.
|
||||
The pbuilder \fBMIRRORSITE\fP and \fBOTHERMIRROR\fP variables are
|
||||
supported, as are the standard ubuntu\-dev\-tools variables:
|
||||
\fBUBUNTUTOOLS_DEBIAN_MIRROR\fP, \fBPBUILDER_DIST_DEBIAN_MIRROR\fP,
|
||||
\fBUBUNTUTOOLS_DEBSEC_MIRROR\fP, \fBPBUILDER_DIST_DEBSEC_MIRROR\fP,
|
||||
\fBUBUNTUTOOLS_UBUNTU_MIRROR\fP, \fBPBUILDER_DIST_UBUNTU\fP,
|
||||
\fBUBUNTUTOOLS_UBUNTU_PORTS_MIRROR\fP, and
|
||||
\fBPBUILDER_DIST_UBUNTU_PORTS_MIRROR\fP.
|
||||
See \fBubuntu\-dev\-tools\fP (5) for details.
|
||||
.PP
|
||||
You may also want to know that \fBpbuilder\-dist\fP exports \fBDIST\fP and
|
||||
\fBARCH\fP environment variables to the invoked process, containing the name
|
||||
of the distribution and the architecture targeted by the current build. You
|
||||
can make use of them, for example, in \fBpbuilderrc\fP.
|
||||
|
||||
.SH BUGS
|
||||
If you experience any problem with this script contact me on rainct@ubuntu.com
|
||||
or file a bug at https://bugs.launchpad.net/ubuntu/+source/ubuntu-dev-tools.
|
||||
or file a bug at https://bugs.launchpad.net/ubuntu/+source/ubuntu\-dev\-tools.
|
||||
.PP
|
||||
Please ensure first that the problem is really this script and not an issue
|
||||
with \fBpbuilder\fP or \fBcowbuilder\fP themselves.
|
||||
|
||||
.SH SEE ALSO
|
||||
\fBpbuilder\fR, \fBpbuilderrc\fR, \fBcowbuilder\fR
|
||||
.BR pbuilder (1),
|
||||
.BR pbuilderrc (5),
|
||||
.BR cowbuilder (1),
|
||||
.BR ubuntu\-dev\-tools (5).
|
||||
|
||||
.SH AUTHORS
|
||||
\fBpbuilder\-dist\fP was written by Siegfried-A. Gevatter <rainct@ubuntu.com>
|
||||
and includes patches by Iain Lane <iain@orangesquash.org.uk>. This manual page
|
||||
has been written by Siegfried-A. Gevatter <rainct@ubuntu.com>.
|
||||
\fBpbuilder\-dist\fP and this manual page were written by Siegfried-A. Gevatter
|
||||
<rainct@ubuntu.com>, with contributions from Iain Lane
|
||||
<iain@orangesquash.org.uk>, Emmet Hikory <persia@ubuntu.com> and others.
|
||||
|
||||
\fBpbuilder\-dist\fP is released under the GNU General Public License, version
|
||||
2 or later.
|
||||
|
44
doc/pm-helper.1
Normal file
44
doc/pm-helper.1
Normal file
@ -0,0 +1,44 @@
|
||||
.\" Copyright (C) 2023, Canonical Ltd.
|
||||
.\"
|
||||
.\" This program is free software; you can redistribute it and/or
|
||||
.\" modify it under the terms of the GNU General Public License, version 3.
|
||||
.\"
|
||||
.\" This program is distributed in the hope that it will be useful,
|
||||
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
.\" General Public License for more details.
|
||||
.\"
|
||||
.\" You should have received a copy of the GNU General Public License
|
||||
.\" along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
.TH pm\-helper 1 "June 2023" ubuntu\-dev\-tools
|
||||
|
||||
.SH NAME
|
||||
pm\-helper \- helper to guide a developer through proposed\-migration work
|
||||
|
||||
.SH SYNOPSIS
|
||||
.B pm\-helper \fR[\fIoptions\fR] [\fIpackage\fR]
|
||||
|
||||
.SH DESCRIPTION
|
||||
Claim a package from proposed\-migration to work on and get additional
|
||||
information (such as the state of the package in Debian) that may be helpful
|
||||
in unblocking it.
|
||||
.PP
|
||||
This tool is incomplete and under development.
|
||||
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.B \-l \fIINSTANCE\fR, \fB\-\-launchpad\fR=\fIINSTANCE\fR
|
||||
Use the specified instance of Launchpad (e.g. "staging"), instead of
|
||||
the default of "production".
|
||||
.TP
|
||||
.B \-v\fR, \fB--verbose\fR
|
||||
be more verbose
|
||||
.TP
|
||||
\fB\-h\fR, \fB\-\-help\fR
|
||||
Display a help message and exit
|
||||
|
||||
.SH AUTHORS
|
||||
\fBpm\-helper\fR and this manpage were written by Steve Langasek
|
||||
<steve.langasek@ubuntu.com>.
|
||||
.PP
|
||||
Both are released under the GPLv3 license.
|
1
doc/pull-debian-ddebs.1
Symbolic link
1
doc/pull-debian-ddebs.1
Symbolic link
@ -0,0 +1 @@
|
||||
pull-pkg.1
|
91
doc/pull-debian-debdiff.1
Normal file
91
doc/pull-debian-debdiff.1
Normal file
@ -0,0 +1,91 @@
|
||||
.\" Copyright (C) 2010, Stefano Rivera <stefanor@ubuntu.com>
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and/or distribute this software for any
|
||||
.\" purpose with or without fee is hereby granted, provided that the above
|
||||
.\" copyright notice and this permission notice appear in all copies.
|
||||
.\"
|
||||
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||
.\" REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
.\" AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
.\" INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
.\" LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||
.\" OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.TH PULL-DEBIAN-DEBDIFF "1" "December 2010" "ubuntu-dev-tools"
|
||||
.SH NAME
|
||||
\fBpull-debian-debdiff\fR \- find, download, and generate a debdiff
|
||||
|
||||
.SH SYNOPSIS
|
||||
\fBpull-debian-debdiff\fR [\fIoptions\fR] <\fIpackage\fR>
|
||||
<\fIversion\fR> [\fIdistance\fR]
|
||||
|
||||
.SH DESCRIPTION
|
||||
\fBpull-debian-debdiff\fR attempts to find and download a specific
|
||||
version of a Debian package and its immediate parent to generate a
|
||||
debdiff.
|
||||
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.I package
|
||||
The source package to download and diff.
|
||||
.TP
|
||||
.I version
|
||||
The most recent of the two versions you want to diff.
|
||||
.TP
|
||||
.I distance
|
||||
If specified (default \fB1\fR), the debdiff is against that many
|
||||
versions previous.
|
||||
.TP
|
||||
.BR \-h ", " \-\-help
|
||||
Display the usage instructions and exit.
|
||||
.TP
|
||||
.BR \-f ", " \-\-fetch
|
||||
Simply download the specified version and exit.
|
||||
.TP
|
||||
.B \-d \fIDEBIAN_MIRROR\fR, \fB\-\-debian\-mirror\fR=\fIDEBIAN_MIRROR\fR
|
||||
Use the specified mirror.
|
||||
Should be in the form \fBhttp://ftp.debian.org/debian\fR.
|
||||
If the package isn't found on this mirror, \fBpull\-debian\-source\fR
|
||||
will fall back to the default mirror.
|
||||
.TP
|
||||
.B \-s \fIDEBSEC_MIRROR\fR, \fB\-\-debsec\-mirror\fR=\fIDEBSEC_MIRROR\fR
|
||||
Use the specified Debian security mirror.
|
||||
Should be in the form \fBhttp://security.debian.org\fR.
|
||||
If the package isn't found on this mirror, \fBpull\-debian\-source\fR
|
||||
will fall back to the default mirror.
|
||||
.TP
|
||||
.B \-\-no\-conf
|
||||
Do not read any configuration files, or configuration from environment
|
||||
variables.
|
||||
|
||||
.SH ENVIRONMENT
|
||||
All of the \fBCONFIGURATION VARIABLES\fR below are also supported as
|
||||
environment variables.
|
||||
Variables in the environment take precedence to those in configuration
|
||||
files.
|
||||
|
||||
.SH CONFIGURATION VARIABLES
|
||||
The following variables can be set in the environment or in
|
||||
.BR ubuntu\-dev\-tools (5)
|
||||
configuration files.
|
||||
In each case, the script\-specific variable takes precedence over the
|
||||
package\-wide variable.
|
||||
.TP
|
||||
.BR PULL_DEBIAN_DEBDIFF_DEBIAN_MIRROR ", " UBUNTUTOOLS_DEBIAN_MIRROR
|
||||
The default value for \fB\-\-debian\-mirror\fR.
|
||||
.TP
|
||||
.BR PULL_DEBIAN_DEBDIFF_DEBSEC_MIRROR ", " UBUNTUTOOLS_DEBSEC_MIRROR
|
||||
The default value for \fB\-\-debsec\-mirror\fR.
|
||||
|
||||
.SH SEE ALSO
|
||||
.BR debdiff (1),
|
||||
.BR dget (1),
|
||||
.BR pull\-debian\-source (1),
|
||||
.BR ubuntu\-dev\-tools (5)
|
||||
|
||||
.SH AUTHORS
|
||||
\fBpull-debian-debdiff\fR was written by Stefano Rivera
|
||||
<stefanor@ubuntu.com>, a clone of a tool by Kees Cook <kees@ubuntu.com>.
|
||||
|
||||
This manual page was written by Stefano Rivera, based on the original by
|
||||
Andrew Starr\-Bochicchio <a.starr.b@gmail.com>.
|
1
doc/pull-debian-debs.1
Symbolic link
1
doc/pull-debian-debs.1
Symbolic link
@ -0,0 +1 @@
|
||||
pull-pkg.1
|
@ -1,33 +0,0 @@
|
||||
.TH PULL\-DEBIAN\-SOURCE "1" "20 December 2008" "ubuntu-dev-tools"
|
||||
|
||||
.SH NAME
|
||||
pull\-debian\-source \- download a source package from Debian
|
||||
|
||||
.SH SYNOPSIS
|
||||
.B pull\-debian\-source \fR[\fB\-h\fR]\fB <\fBsource package\fR> [\fItarget release\fR]
|
||||
|
||||
.SH DESCRIPTION
|
||||
\fBpull\-debian\-source\fR downloads and extracts the latest version of
|
||||
<\fBsource package\fR> from Debian.
|
||||
If the optional parameter [\fItarget release\fR] is specified, the latest
|
||||
version in that release will be downloaded instead.
|
||||
|
||||
.SH OPTIONS
|
||||
Listed below are the command line options for pull\-debian\-source:
|
||||
.TP
|
||||
.B \-h, \-\-help
|
||||
Display the usage instructions and exit.
|
||||
.TP
|
||||
.B <source package>
|
||||
This is the source package that you would like to be downloaded from Debian.
|
||||
.TP
|
||||
.B [target release]
|
||||
This is the release that you would like the source package to be downloaded from.
|
||||
This value defaults to 'unstable'.
|
||||
|
||||
.SH AUTHOR
|
||||
.PP
|
||||
\fBpull\-debian\-source\fR and this manual page were written by Nathan Handler
|
||||
<nhandler@ubuntu.com>. The manual page was based on Iain Lane's manual page for
|
||||
pull-lp-source.
|
||||
Both are released under the GNU General Public License, version 3 or later.
|
1
doc/pull-debian-source.1
Symbolic link
1
doc/pull-debian-source.1
Symbolic link
@ -0,0 +1 @@
|
||||
pull-pkg.1
|
1
doc/pull-debian-udebs.1
Symbolic link
1
doc/pull-debian-udebs.1
Symbolic link
@ -0,0 +1 @@
|
||||
pull-pkg.1
|
1
doc/pull-lp-ddebs.1
Symbolic link
1
doc/pull-lp-ddebs.1
Symbolic link
@ -0,0 +1 @@
|
||||
pull-pkg.1
|
1
doc/pull-lp-debs.1
Symbolic link
1
doc/pull-lp-debs.1
Symbolic link
@ -0,0 +1 @@
|
||||
pull-pkg.1
|
@ -1,37 +0,0 @@
|
||||
.TH PULL\-LP\-SOURCE "1" "4 August 2008" "ubuntu-dev-tools"
|
||||
|
||||
.SH NAME
|
||||
pull\-lp\-source \- download a source package from Launchpad
|
||||
|
||||
.SH SYNOPSIS
|
||||
.B pull\-lp\-source \fR[\fB\-h\fR]\fB <\fBsource package\fR> [\fItarget release\fR]
|
||||
|
||||
.SH DESCRIPTION
|
||||
\fBpull\-lp\-source\fR downloads and extracts the latest version of
|
||||
<\fBsource package\fR> from Launchpad.
|
||||
If the optional parameter [\fItarget release\fR] is specified, the latest
|
||||
version in that release will be downloaded instead.
|
||||
|
||||
.SH OPTIONS
|
||||
Listed below are the command line options for pull\-lp\-source:
|
||||
.TP
|
||||
.B \-h, \-\-help
|
||||
Display a help message and exit.
|
||||
.TP
|
||||
.B <source package>
|
||||
This is the source package that you would like to be downloaded from Launchpad.
|
||||
.TP
|
||||
.B [target release]
|
||||
This is the release that you would like the source package to be downloaded from.
|
||||
This value defaults to the current development release.
|
||||
|
||||
.SH ENVIRONMENT VARIABLES
|
||||
.TP
|
||||
DIST
|
||||
Specifies the default target.
|
||||
|
||||
.SH AUTHOR
|
||||
.PP
|
||||
\fBpull\-lp\-source\fR and this manual page were written by Iain Lane
|
||||
<iain@orangesquash.org.uk>.
|
||||
Both are released under the GNU General Public License, version 3 or later.
|
1
doc/pull-lp-source.1
Symbolic link
1
doc/pull-lp-source.1
Symbolic link
@ -0,0 +1 @@
|
||||
pull-pkg.1
|
1
doc/pull-lp-udebs.1
Symbolic link
1
doc/pull-lp-udebs.1
Symbolic link
@ -0,0 +1 @@
|
||||
pull-pkg.1
|
147
doc/pull-pkg.1
Normal file
147
doc/pull-pkg.1
Normal file
@ -0,0 +1,147 @@
|
||||
.TH PULL\-PKG "1" "28 August 2017" "ubuntu-dev-tools"
|
||||
|
||||
.SH NAME
|
||||
pull\-pkg \- download a package for Debian, Ubuntu, UCA, or a PPA
|
||||
|
||||
.SH SYNOPSIS
|
||||
.B pull\-pkg \fR[\fIoptions\fR]\fR <\fIpackage name\fR>
|
||||
[\fIrelease\fR|\fIversion\fR]
|
||||
|
||||
.SH DESCRIPTION
|
||||
\fBpull\-pkg\fR downloads the specified \fIversion\fR of
|
||||
<\fIpackage name\fR>, or the latest version from the
|
||||
specified \fIrelease\fR. To request a version from
|
||||
a particular pocket say \fIrelease\fB\-\fIpocket\fR (with a magic
|
||||
\fB\-release\fR for only the release pocket). If no \fIpocket\fR is
|
||||
specified, all pockets will be searched except -backports.
|
||||
If no \fIversion\fR or \fIrelease\fR is specified, the latest version in
|
||||
the development release will be downloaded.
|
||||
|
||||
There are convenience scripts that set pull type and distribution
|
||||
appropriately: these are
|
||||
\fBpull\-lp\-source\fR, \fBpull\-lp\-debs\fR, \fBpull\-lp\-ddebs\fR,
|
||||
and \fBpull\-lp\-udebs\fR, which all pull Ubuntu packages;
|
||||
\fBpull\-debian\-source\fR, \fBpull\-debian\-debs\fR, \fBpull\-debian\-ddebs\fR,
|
||||
and \fBpull\-debian\-udebs\fR, which all pull Debian packages;
|
||||
\fBpull\-uca\-source\fR, \fBpull\-uca\-debs\fR, \fBpull\-uca\-ddebs\fR,
|
||||
and \fBpull\-uca\-udebs\fR, which all pull Ubuntu Cloud Archive packages;
|
||||
and \fBpull\-ppa\-source\fR, \fBpull\-ppa\-debs\fR, \fBpull\-ppa\-ddebs\fR,
|
||||
and \fBpull\-ppa\-udebs\fR, which all pull from a specified Personal Package
|
||||
Archive on Launchpad. Each script pulls the file type in its name, i.e.
|
||||
\fIsource\fR, \fIdebs\fR, \fIddebs\fR, or \fIudebs\fR.
|
||||
|
||||
.SH OPTIONS
|
||||
Listed below are the command line options for pull\-pkg:
|
||||
.TP
|
||||
.I package name
|
||||
This is name of the package to downloaded.
|
||||
You can use either the source package name, or binary package name.
|
||||
.TP
|
||||
.I version
|
||||
This is the version of the package to downloaded.
|
||||
.TP
|
||||
.I release
|
||||
This is the release to downloaded from.
|
||||
For debian, you can use either the release name like \fBjessie\fR
|
||||
or \fBsid\fR, or you can use the special release names \fBunstable\fR,
|
||||
\fBstable\fR, or \fBtesting\fR.
|
||||
For ubuntu, you can use either the release name like \fBxenial\fR
|
||||
or the release-pocket like \fBxenial-proposed\fR.
|
||||
For ubuntu cloud archive (uca) you can use either the uca release
|
||||
name like \fBmitaka\fR or the ubuntu and uca release names like
|
||||
\fBtrusty-mitaka\fR. Defaults to the current development release.
|
||||
.TP
|
||||
.BR \-h ", " \-\-help
|
||||
Display a help message and exit.
|
||||
.TP
|
||||
.BR \-v ", " \-\-verbose
|
||||
Be verbose about what is being done.
|
||||
.TP
|
||||
.BR \-d ", " \-\-download\-only
|
||||
Do not extract the source package (applies only to source packages).
|
||||
.TP
|
||||
.B \-m \fIMIRROR\fR, \fB\-\-mirror\fR=\fIMIRROR\fR
|
||||
Use the specified mirror server.
|
||||
Should be in the form \fBhttp://archive.ubuntu.com/ubuntu\fR or
|
||||
\fBhttp://deb.debian.org/debian\fR. If not specified or if the
|
||||
package is not found on the specified mirror, this will fall
|
||||
back to the default mirror(s) and/or mirror(s) from environment
|
||||
variables, and then will fall back to Launchpad or Debian Snapshot.
|
||||
This can be specified multiple times to try multiple mirrors.
|
||||
.TP
|
||||
.B \-\-no\-conf
|
||||
Do not use mirrors from the default configuration, or from
|
||||
any environment variables.
|
||||
.TP
|
||||
.B \-a \fIARCH\fR, \fB\-\-arch\fR=\fIARCH\fR
|
||||
Get binary packages from the \fIARCH\fR architecture.
|
||||
Defaults to the local architecture, if it can be deteected.
|
||||
.TP
|
||||
.B \-p \fIPULL\fR, \fB\-\-pull\fR=\fIPULL\fR
|
||||
What to pull: \fBsource\fR, \fBdebs\fR, \fBddebs\fR, \fBudebs\fR,
|
||||
or \fBlist\fR. The \fBlist\fR action only lists all a package's
|
||||
source and binary files, but does not actually download any.
|
||||
Defaults to \fBsource\fR.
|
||||
.TP
|
||||
.B \-D \fIDISTRO\fR, \fB\-\-distro\fR=\fIDISTRO\fR
|
||||
Pull from: \fBdebian\fR, \fBuca\fR, \fBubuntu\fR, or a \fBppa\fR.
|
||||
\fBlp\fR can be used instead of \fBubuntu\fR.
|
||||
Any string containing \fBcloud\fR can be used instead of \fBuca\fR.
|
||||
If pulling from a ppa, you must specify the PPA. Defaults to \fBubuntu\fR.
|
||||
.TP
|
||||
.B \-\-ppa\fR=ppa:\fIUSER/NAME\fR
|
||||
Applies only when \fBdistro\fR is \fIppa\fR. Can be provided either as
|
||||
a value to the \fB\-\-ppa\fR option parameter, or as a plain option
|
||||
(like \fIrelease\fR or \fIversion\fR). When specified as a plain option,
|
||||
the form must be \fBppa:USER/NAME\fR; when specified as a value to the
|
||||
\fB\-\-ppa\fR option parameter, the leading \fBppa:\fR is optional.
|
||||
|
||||
.SH ENVIRONMENT
|
||||
All of the \fBCONFIGURATION VARIABLES\fR below are also supported as
|
||||
environment variables.
|
||||
Variables in the environment take precedence to those in configuration
|
||||
files.
|
||||
|
||||
.SH CONFIGURATION VARIABLES
|
||||
The following variables can be set in the environment or in
|
||||
.BR ubuntu\-dev\-tools (5)
|
||||
configuration files.
|
||||
In each case, the script\-specific variable takes precedence over the
|
||||
package\-wide variable.
|
||||
.TP
|
||||
.BR UBUNTUTOOLS_UBUNTU_MIRROR
|
||||
The default mirror.
|
||||
.TP
|
||||
.BR PULL_PKG_UBUNTU_MIRROR
|
||||
The default mirror when using the \fBpull\-pkg\fR script.
|
||||
.TP
|
||||
.BR PULL_[LP|DEBIAN|PPA|UCA]_[SOURCE|DEBS|DDEBS|UDEBS]_MIRROR
|
||||
The default mirror when using the associated script.
|
||||
|
||||
.SH SEE ALSO
|
||||
.BR dget (1),
|
||||
.BR pull\-lp\-source (1),
|
||||
.BR pull\-lp\-debs (1),
|
||||
.BR pull\-lp\-ddebs (1),
|
||||
.BR pull\-lp\-udebs (1),
|
||||
.BR pull\-debian\-source (1),
|
||||
.BR pull\-debian\-debs (1),
|
||||
.BR pull\-debian\-ddebs (1),
|
||||
.BR pull\-debian\-udebs (1),
|
||||
.BR pull\-ppa\-source (1),
|
||||
.BR pull\-ppa\-debs (1),
|
||||
.BR pull\-ppa\-ddebs (1),
|
||||
.BR pull\-ppa\-udebs (1),
|
||||
.BR pull\-uca\-source (1),
|
||||
.BR pull\-uca\-debs (1),
|
||||
.BR pull\-uca\-ddebs (1),
|
||||
.BR pull\-uca\-udebs (1),
|
||||
.BR pull\-debian\-debdiff (1),
|
||||
.BR ubuntu\-dev\-tools (5)
|
||||
|
||||
.SH AUTHOR
|
||||
.PP
|
||||
\fBpull\-pkg\fR was written by Dan Streetman <ddstreet@canonical.com>,
|
||||
based on the original \fBpull\-lp\-source\fR; it and this manual page
|
||||
were written by Iain Lane <iain@orangesquash.org.uk>.
|
||||
All are released under the GNU General Public License, version 3 or later.
|
1
doc/pull-ppa-ddebs.1
Symbolic link
1
doc/pull-ppa-ddebs.1
Symbolic link
@ -0,0 +1 @@
|
||||
pull-pkg.1
|
1
doc/pull-ppa-debs.1
Symbolic link
1
doc/pull-ppa-debs.1
Symbolic link
@ -0,0 +1 @@
|
||||
pull-pkg.1
|
1
doc/pull-ppa-source.1
Symbolic link
1
doc/pull-ppa-source.1
Symbolic link
@ -0,0 +1 @@
|
||||
pull-pkg.1
|
1
doc/pull-ppa-udebs.1
Symbolic link
1
doc/pull-ppa-udebs.1
Symbolic link
@ -0,0 +1 @@
|
||||
pull-pkg.1
|
1
doc/pull-uca-ddebs.1
Symbolic link
1
doc/pull-uca-ddebs.1
Symbolic link
@ -0,0 +1 @@
|
||||
pull-pkg.1
|
1
doc/pull-uca-debs.1
Symbolic link
1
doc/pull-uca-debs.1
Symbolic link
@ -0,0 +1 @@
|
||||
pull-pkg.1
|
1
doc/pull-uca-source.1
Symbolic link
1
doc/pull-uca-source.1
Symbolic link
@ -0,0 +1 @@
|
||||
pull-pkg.1
|
1
doc/pull-uca-udebs.1
Symbolic link
1
doc/pull-uca-udebs.1
Symbolic link
@ -0,0 +1 @@
|
||||
pull-pkg.1
|
57
doc/requestbackport.1
Normal file
57
doc/requestbackport.1
Normal file
@ -0,0 +1,57 @@
|
||||
.\" Copyright (C) 2011, Stefano Rivera <stefanor@ubuntu.com>
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and/or distribute this software for any
|
||||
.\" purpose with or without fee is hereby granted, provided that the above
|
||||
.\" copyright notice and this permission notice appear in all copies.
|
||||
.\"
|
||||
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||
.\" REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
.\" AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
.\" INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
.\" LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||
.\" OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.TH requestbackport 1 "November 2011" ubuntu\-dev\-tools
|
||||
|
||||
.SH NAME
|
||||
requestbackport \- File a backport request bug
|
||||
|
||||
.SH SYNOPSIS
|
||||
.B requestbackport \fR[\fIoptions\fR] \fIpackage\fR
|
||||
|
||||
.SH DESCRIPTION
|
||||
Determine the intermediate releases that \fIpackage\fR needs to be
|
||||
backported to, list all reverse\-dependencies, and file the backporting
|
||||
request.
|
||||
\fBrequestbackport\fR will include a testing checklist in the bug.
|
||||
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
\fB\-d\fR \fIDEST\fR, \fB\-\-destination\fR=\fIDEST\fR
|
||||
Backport to \fIDEST\fR release and necessary intermediate
|
||||
releases. Default: current stable release.
|
||||
.TP
|
||||
\fB\-s\fR \fISOURCE\fR, \fB\-\-source\fR=\fISOURCE\fR
|
||||
Backport from \fISOURCE\fR release.
|
||||
Default: current development release.
|
||||
.TP
|
||||
\fB\-l\fR \fIINSTANCE\fR, \fB\-\-lpinstance\fR=\fIINSTANCE\fR
|
||||
Launchpad instance to connect to.
|
||||
Default: \fBproduction\fR.
|
||||
.TP
|
||||
\fB\-\-no\-conf\fR
|
||||
Don't read config files or environment variables
|
||||
.TP
|
||||
\fB\-h\fR, \fB\-\-help\fR
|
||||
Display a help message and exit.
|
||||
|
||||
.SH SEE ALSO
|
||||
.BR backportpackage (1),
|
||||
.BR reverse\-depends (1),
|
||||
.BR https://wiki.ubuntu.com/UbuntuBackports .
|
||||
|
||||
.SH AUTHORS
|
||||
\fBrequestbackport\fR and this manpage were written by Stefano Rivera
|
||||
<stefanor@ubuntu.com>.
|
||||
.PP
|
||||
Both are released under the terms of the ISC License.
|
@ -2,35 +2,39 @@
|
||||
.SH NAME
|
||||
requestsync \- helper to file sync requests for Ubuntu
|
||||
.SH SYNOPSIS
|
||||
.B requestsync\fR [\fB\-d distro\fR] [\fB\-ns\fR] [\fB\-k \fIkeyid\fR] <\fBsource package\fR> <\fBtarget release\fR> [\fIbase version\fR]
|
||||
.B requestsync\fR [\fB\-d \fIdistro\fR] [\fB\-nse\fR] [\fB\-k \fIkeyid\fR] <\fBsource package\fR> [\fBtarget release\fR] [\fIbase version\fR]
|
||||
.br
|
||||
.B requestsync \-\-lp\fR [\fB\-ns\fR] <\fBsource package\fR> <\fBtarget release\fR> [\fIbase version\fR]
|
||||
.B requestsync \-\-lp\fR [\fB\-nse\fR] <\fBsource package\fR> <\fBtarget release\fR> [\fIbase version\fR]
|
||||
.br
|
||||
.B requestsync \-h
|
||||
.SH DESCRIPTION
|
||||
\fBrequestsync\fR looks at the versions of <source package> in Debian and
|
||||
Ubuntu and prompts for an explanation of why the Ubuntu changes (if there
|
||||
are any) should be dropped.
|
||||
The changelog entry is then downloaded from packages.debian.org.
|
||||
If the sync request is being filed per email (default), a prompt for your
|
||||
GPG passphrase follows so that it can sign the mail and send it off to
|
||||
Launchpad.
|
||||
Alternatively a sync request can be filed directly using the launchpadlib
|
||||
Python module (option \fB\-\-lp\fR).
|
||||
\fBrequestsync\fR falls back to mail the sync request if submitting using
|
||||
the launchpadlib module fails.
|
||||
The changelog entry is then downloaded from packages.debian.org, and the
|
||||
sync request bug is filed in launchpad.
|
||||
Alternatively, the sync request can be filed by GPG\-signed email (option
|
||||
\fB\-\-email\fR).
|
||||
|
||||
.PP
|
||||
\fBrequestsync\fR checks if you have the permissions to request the sync from
|
||||
the archive administrators directly by checking if you are a member of the
|
||||
\fI~ubuntu\-dev\fR team (for universe/multiverse syncs) or a member of the
|
||||
\fI~ubuntu\-core\-dev\fR team (for main/restricted syncs) on Launchpad.
|
||||
If you are not a member of the appropriate team, the script will subscribe
|
||||
the necessary team with approval rights to the bug report for you.
|
||||
the archive administrators directly by checking if you have upload permissions
|
||||
for that package through package set permissions or component permissions. If
|
||||
you don't have upload permissions, the script will subscribe the necessary
|
||||
team with approval rights to the bug report for you.
|
||||
|
||||
This check is only performed if \fBrequestsync\fR is allowed to use the LP API
|
||||
(not email submission). In the other case \fBrequestsync\fR relies on that you
|
||||
answer the question about upload permissions honestly to determine if a team
|
||||
with approval rights is to be subscribed to the bug.
|
||||
|
||||
If you have permission to upload the package directly, then you may prefer
|
||||
to use \fBsyncpackage\fR instead to copy the package using the Launchpad
|
||||
API. At some future point, \fBrequestsync\fR will be changed to do this
|
||||
automatically.
|
||||
|
||||
.PP
|
||||
\fBrequestsync\fR uses launchpadlib authentication to file its requests. Please
|
||||
see manage-credentials(1) for more information.
|
||||
\fBrequestsync\fR uses launchpadlib authentication to file its requests.
|
||||
|
||||
.SH OPTIONS
|
||||
Listed below are the command line options for requestsync:
|
||||
@ -48,19 +52,34 @@ attempt to look it up in Ubuntu since it will not exist.
|
||||
.TP
|
||||
.B \-k \fI<keyid>\fR
|
||||
Specifies your GPG key.
|
||||
Can also be set with the line `\fIexport GPGKEY=<keyid>\fR' in your shell's
|
||||
configuration (for example: \fI$HOME/.bashrc\fR).
|
||||
This is only used if the sync request is mailed to Launchpad.
|
||||
.TP
|
||||
.B \-\-lp
|
||||
Use the launchpadlib Python module (packaged as python\-launchpadlib) to
|
||||
file the sync request in Launchpad.
|
||||
.B \-\-email
|
||||
Use GPG\-signed email to file the bug, rather than launchpadlib.
|
||||
.TP
|
||||
.B \-s
|
||||
Specifies that you require sponsorship.
|
||||
You need this option if you are not a member of ubuntu-dev for universe or
|
||||
multiverse, or ubuntu-core-dev for main or restricted. This shall disable the
|
||||
Launchpad team membership checking described above.
|
||||
You need this option if you don't have upload permissions for that package.
|
||||
This disables the upload permissions check described above.
|
||||
.TP
|
||||
.B \-C
|
||||
Allow changelog to be manually filled in when missing.
|
||||
\fBrequestsync\fR gets Debian changelogs from packages.debian.org, which
|
||||
isn't in sync with the Debian archive.
|
||||
To request a sync before the changelog is available, pass this option,
|
||||
and provide the changelog entries yourself.
|
||||
.TP
|
||||
.B \-e
|
||||
Use this flag after FeatureFreeze for non-bug fix syncs. \fBrequestsync\fR will
|
||||
subscribe ubuntu-release team instead of sponsorship team.
|
||||
.TP
|
||||
.B \-l \fIINSTANCE\fR, \fB\-\-lpinstance\fR=\fIINSTANCE\fR
|
||||
Use the specified instance of Launchpad (e.g. "staging"), instead of
|
||||
the default of "production".
|
||||
.TP
|
||||
.B \-\-no\-conf
|
||||
Do not read any configuration files, or configuration from environment
|
||||
variables.
|
||||
.TP
|
||||
.B <source package>
|
||||
This is the source package that you would like to be synced from Debian.
|
||||
@ -75,30 +94,45 @@ In some cases, the base version (where the Ubuntu package started differing
|
||||
from the Debian package) cannot be automatically determined.
|
||||
Specify this option in this case.
|
||||
|
||||
.SH ENVIRONMENT VARIABLES
|
||||
.SH ENVIRONMENT
|
||||
\fBrequestsync\fR uses the following variables which should be set in your
|
||||
shell's configuration by adding \fIexport VARIABLE=\fR lines, where VARIABLE is
|
||||
one of the following:
|
||||
|
||||
.TP
|
||||
.B GPGKEY
|
||||
Specifies your GnuPG key ID.
|
||||
.TP
|
||||
.B DEBEMAIL
|
||||
.BR UBUMAIL ", " DEBEMAIL
|
||||
Specifies which email should be used when sending to Launchpad.
|
||||
.P
|
||||
All of the \fBCONFIGURATION VARIABLES\fR below are also supported as
|
||||
environment variables.
|
||||
Variables in the environment take precedence to those in configuration
|
||||
files.
|
||||
|
||||
.SH CONFIGURATION VARIABLES
|
||||
.TP
|
||||
.B DEBSMTP
|
||||
.B REQUESTSYNC_SMTP_SERVER
|
||||
Set which SMTP server to use when sending mail.
|
||||
If unspecified this defaults to fiordland.ubuntu.com.
|
||||
If unspecified this defaults to launchpad's SMTP servers (the
|
||||
eventual destination).
|
||||
.TP
|
||||
.B DEBSMTP_PORT
|
||||
.B REQUESTSYNC_SMTP_PORT
|
||||
Sets which port of the SMTP server to use. Default is 25.
|
||||
.TP
|
||||
.B DEBSMTP_USER and DEBSMTP_PASS
|
||||
.BR REQUESTSYNC_SMTP_USER " and " REQUESTSYNC_SMTP_PASS
|
||||
Sets the username and password to use when authenticating to the SMTP server.
|
||||
.TP
|
||||
.BR REQUESTSYNC_USE_LPAPI
|
||||
Setting this to \fIno\fR is equivalent to running with \fB--email\fR.
|
||||
.TP
|
||||
.BR REQUESTSYNC_LPINSTANCE ", " UBUNTUTOOLS_LPINSTANCE
|
||||
The default value for \fB--lpinstance\fR.
|
||||
.TP
|
||||
.BR REQUESTSYNC_KEYID ", " UBUNTUTOOLS_KEYID
|
||||
The default value for \fB-k\fR.
|
||||
|
||||
.SH SEE ALSO
|
||||
.BR rmadison (1)
|
||||
.SH SEE ALSO
|
||||
.BR rmadison (1),
|
||||
.BR syncpackage (1),
|
||||
.BR ubuntu\-dev\-tools (5)
|
||||
|
||||
.SH AUTHOR
|
||||
.B requestsync
|
||||
|
@ -1,36 +0,0 @@
|
||||
.TH REVERSE\-BUILD\-DEPENDS 1 "January 17, 2008" "ubuntu-dev-tools"
|
||||
|
||||
.SH NAME
|
||||
reverse\-build\-depends \- find a package's reverse build dependencies
|
||||
|
||||
.SH SYNOPSIS
|
||||
\fBreverse\-build\-depends\fP [\fB\-c\fP|\fB\-s\fP] <\fIpackage name\fR>
|
||||
|
||||
.SH DESCRIPTION
|
||||
\fBreverse\-build\-depends\fP is a little script that prints a list of
|
||||
all those Debian package that have a build dependency upon the package
|
||||
you indicate, that is, they search for its reverse build dependencies.
|
||||
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
\fB\-c\fP
|
||||
This option will disable normal output and print only the number of
|
||||
reverse dependencies instead.
|
||||
.TP
|
||||
\fB\-s\fP
|
||||
If you prefer to see all build dependencies in a single line, use this
|
||||
option.
|
||||
Otherwise, each one will be printed on its own line.
|
||||
|
||||
.SH KNOWN BUGS AND LIMITATIONS
|
||||
Note that to use \fBreverse\-build\-depends\fP it is required for the source
|
||||
repositories (deb\-src lines) to be enabled in your sources.list.
|
||||
|
||||
.SH SEE ALSO
|
||||
\fBgrep\-dctrl\fR, \fBapt\-cache\fR
|
||||
|
||||
.SH AUTHORS
|
||||
\fBreverse\-build\-depends\fP and this manual page were written by
|
||||
Siegfried-Angel Gevatter Pujals <rainct@ubuntu.com> for YOU.
|
||||
Both are released under the terms of the GNU General Public License (version
|
||||
2 or later).
|
81
doc/reverse-depends.1
Normal file
81
doc/reverse-depends.1
Normal file
@ -0,0 +1,81 @@
|
||||
.\" Copyright (C) 2011, Stefano Rivera <stefanor@ubuntu.com>
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and/or distribute this software for any
|
||||
.\" purpose with or without fee is hereby granted, provided that the above
|
||||
.\" copyright notice and this permission notice appear in all copies.
|
||||
.\"
|
||||
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||
.\" REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
.\" AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
.\" INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
.\" LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||
.\" OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.TH reverse\-depends 1 "November 2011" ubuntu\-dev\-tools
|
||||
|
||||
.SH NAME
|
||||
reverse\-depends \- List the reverse\-dependencies (or
|
||||
build\-dependencies) of a package
|
||||
|
||||
.SH SYNOPSIS
|
||||
.B reverse\-depends \fR[\fIoptions\fR] \fIpackage
|
||||
|
||||
.SH DESCRIPTION
|
||||
List reverse\-dependencies (or build\-dependencies) of \fIpackage\fR.
|
||||
If the package name is prefixed with \fBsrc:\fR then the
|
||||
reverse\-dependencies of all the binary packages that the specified
|
||||
source package builds will be listed.
|
||||
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
\fB\-r\fR \fIRELEASE\fR, \fB\-\-release\fR=\fIRELEASE\fR
|
||||
Query dependencies in \fIRELEASE\fR.
|
||||
Default: current development release.
|
||||
.TP
|
||||
\fB\-R\fR, \fB\-\-without\-recommends\fR
|
||||
Only consider Depends relationships, not Recommends.
|
||||
.TP
|
||||
\fB\-s\fR, \fB\-\-with\-suggests\fR
|
||||
Also consider Suggests relationships.
|
||||
.TP
|
||||
\fB\-b\fR, \fB\-\-build\-depends\fR
|
||||
Query build dependencies.
|
||||
Synonym for \fB\-\-arch\fR=\fIsource\fR.
|
||||
.TP
|
||||
\fB\-a\fR \fIARCH\fR, \fB\-\-arch\fR=\fIARCH\fR
|
||||
Query dependencies in \fIARCH\fR.
|
||||
Besides valid architecture names, the special values \fBany\fR and
|
||||
\fBsource\fR may be used.
|
||||
\fBany\fR displays all reverse dependencies, the union across all
|
||||
architecture.
|
||||
\fBsource\fR displays build dependencies.
|
||||
Default: \fBany\fR.
|
||||
.TP
|
||||
\fB\-c\fR \fICOMPONENT\fR, \fB\-\-component\fR=\fICOMPONENT\fR
|
||||
Only consider reverse\-dependencies in \fICOMPONENT\fR. Can
|
||||
be specified multiple times.
|
||||
Default: all components.
|
||||
.TP
|
||||
\fB\-l\fR, \fB\-\-list\fR
|
||||
Display a simple, machine\-readable list.
|
||||
.TP
|
||||
\fB\-u\fR \fIURL\fR, \fB\-\-service\-url\fR=\fIURL\fR
|
||||
Reverse Dependencies web\-service \fIURL\fR.
|
||||
Default: UbuntuWire's service at
|
||||
\fBhttp://qa.ubuntuwire.org/rdepends/\fR.
|
||||
.TP
|
||||
\fB\-h\fR, \fB\-\-help\fR
|
||||
Display a help message and exit
|
||||
|
||||
.SH EXAMPLES
|
||||
All reverse dependencies of source package bash:
|
||||
.IP
|
||||
.nf
|
||||
.B reverse\-depends src:bash
|
||||
.fi
|
||||
|
||||
.SH AUTHORS
|
||||
\fBreverse\-depends\fR and this manpage were written by Stefano Rivera
|
||||
<stefanor@ubuntu.com>.
|
||||
.PP
|
||||
Both are released under the terms of the ISC License.
|
15
doc/running-autopkgtests.1
Normal file
15
doc/running-autopkgtests.1
Normal file
@ -0,0 +1,15 @@
|
||||
.TH running\-autopkgtests "1" "18 January 2024" "ubuntu-dev-tools"
|
||||
.SH NAME
|
||||
running\-autopkgtests \- dumps a list of currently running autopkgtests
|
||||
|
||||
.SH SYNOPSIS
|
||||
.B running\-autopkgtests
|
||||
|
||||
.SH DESCRIPTION
|
||||
Dumps a list of currently running and queued tests in Autopkgtest.
|
||||
Pass --running to only see running tests, or --queued to only see
|
||||
queued tests. Passing both will print both, which is the default behavior.
|
||||
|
||||
.SH AUTHOR
|
||||
.B running\-autopkgtests
|
||||
was written by Chris Peterson <chris.peterson@canonical.com>.
|
60
doc/seeded-in-ubuntu.1
Normal file
60
doc/seeded-in-ubuntu.1
Normal file
@ -0,0 +1,60 @@
|
||||
.\" Copyright (C) 2011, Stefano Rivera <stefanor@ubuntu.com>
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and/or distribute this software for any
|
||||
.\" purpose with or without fee is hereby granted, provided that the above
|
||||
.\" copyright notice and this permission notice appear in all copies.
|
||||
.\"
|
||||
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||
.\" REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
.\" AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
.\" INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
.\" LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||
.\" OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.TH seeded\-in\-ubuntu 1 "December 2011" ubuntu\-dev\-tools
|
||||
|
||||
.SH NAME
|
||||
seeded\-in\-ubuntu \- Determine whether a package is safe to upload
|
||||
during a freeze
|
||||
|
||||
.SH SYNOPSIS
|
||||
.B seeded\-in\-ubuntu \fR[\fIoptions\fR] \fIpackage\fR...
|
||||
|
||||
.SH DESCRIPTION
|
||||
Lists all the current daily images containing the specified packages.
|
||||
Or whether the package is part of the supported seed.
|
||||
.PP
|
||||
If it isn't on an image, it should be safe to upload.
|
||||
During the final freeze, one should avoid packages in the supported seed
|
||||
too.
|
||||
.PP
|
||||
An index of the current manifests is downloaded from UbuntuWire.
|
||||
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
\fB\-b\fR, \fB\-\-binary\fR
|
||||
The packages specified are binary packages.
|
||||
This is faster than source packages, as otherwise we must query LP to
|
||||
determine the binary packages that every specified source package
|
||||
builds.
|
||||
.TP
|
||||
\fB\-u\fR \fIURL\fR, \fB\-\-data\-url\fR=\fIURL\fR
|
||||
URL for index of seeded packages.
|
||||
Default: UbuntuWire's service at
|
||||
\fBhttp://qa.ubuntuwire.org/ubuntu-seeded-packages/seeded.json.gz\fR.
|
||||
.TP
|
||||
\fB\-h\fR, \fB\-\-help\fR
|
||||
Display a help message and exit
|
||||
|
||||
.SH EXAMPLES
|
||||
All the images that contain unity:
|
||||
.IP
|
||||
.nf
|
||||
.B seeded\-in\-ubuntu -b unity
|
||||
.fi
|
||||
|
||||
.SH AUTHORS
|
||||
\fBseeded\-in\-ubuntu\fR and this manpage were written by Stefano Rivera
|
||||
<stefanor@ubuntu.com>.
|
||||
.PP
|
||||
Both are released under the terms of the ISC License.
|
22
doc/setup-packaging-environment.1
Normal file
22
doc/setup-packaging-environment.1
Normal file
@ -0,0 +1,22 @@
|
||||
.TH PULL-DEBIAN-DEBDIFF "1" "June 2010" "ubuntu-dev-tools"
|
||||
.SH NAME
|
||||
\fBsetup-packaging-environment\fR \- helps one to get started with Ubuntu development
|
||||
|
||||
.SH SYNOPSIS
|
||||
\fBsetup-packaging-environment\fR
|
||||
|
||||
.SH DESCRIPTION
|
||||
\fBsetup-packaging-environment\fR aims to make it more straightforward for new
|
||||
contributors to get their Ubuntu installation ready for packaging work. It
|
||||
ensures that all four components from Ubuntu's official repositories are enabled
|
||||
along with their corresponding source repositories. It also installs a minimal
|
||||
set of packages needed for Ubuntu packaging work (ubuntu-dev-tools, devscripts,
|
||||
debhelper, patchutils, pbuilder, and build-essential). Finally, it assists
|
||||
in defining the DEBEMAIL and DEBFULLNAME environment variables.
|
||||
|
||||
.SH AUTHORS
|
||||
\fBsetup-packaging-environment\fR was written by Siegfried-A. Gevatter <rainct@ubuntu.com>.
|
||||
|
||||
This manual page was written by Andrew Starr-Bochicchio <a.starr.b@gmail.com>.
|
||||
.PP
|
||||
Both are released under the terms of the GNU General Public License, version 3 or later.
|
166
doc/sponsor-patch.1
Normal file
166
doc/sponsor-patch.1
Normal file
@ -0,0 +1,166 @@
|
||||
.TH sponsor\-patch "1" "September 21 2010" "ubuntu-dev-tools"
|
||||
.SH NAME
|
||||
sponsor\-patch \- Prepare, test\-build, and sponsor an upload.
|
||||
|
||||
.SH SYNOPSIS
|
||||
.B sponsor\-patch \fR[\fIoptions\fR] \fIbug
|
||||
.br
|
||||
.B sponsor\-patch \-h
|
||||
|
||||
.SH DESCRIPTION
|
||||
\fBsponsor\-patch\fR downloads the patch or Bazaar branch linked to an
|
||||
Ubuntu bug, applies it, generates a review diff, (optionally) test
|
||||
builds it, runs
|
||||
.BR lintian (1)
|
||||
and, after review and confirmation, can upload it.
|
||||
|
||||
\fBsponsor\-patch\fR can be used for sponsoring patches, syncs and
|
||||
merges from Debian, SRUs, and creating debdiffs from patches.
|
||||
If \fIbug\fR has multiple patches or branches linked, it will prompt the
|
||||
user to select one.
|
||||
The same applies to bug tasks.
|
||||
If the attached patch is not a debdiff,
|
||||
.BR edit-patch (1)
|
||||
is used to apply it.
|
||||
|
||||
.nr step 1 1
|
||||
Some obvious checks are performed, in particular:
|
||||
.IP \n[step]. 4
|
||||
.BR update\-maintainer (1)
|
||||
is run on the source package to ensure that the \fBMaintainer\fR field
|
||||
meets the Ubuntu policy.
|
||||
.IP \n+[step].
|
||||
The version number must be greater than the current version in the
|
||||
archive.
|
||||
The \fBchanges\fR file is also correctly generated to list all changes
|
||||
since the current version in the archive.
|
||||
.IP \n+[step].
|
||||
The changelog must automatically close the sponsorship bug.
|
||||
.IP \n+[step].
|
||||
The changelog target must be valid.
|
||||
.IP \n+[step].
|
||||
The changelog timestamp is touched.
|
||||
|
||||
.PP
|
||||
Should any checks (or the build) fail, the user has an option to edit
|
||||
the patched source and try building it again.
|
||||
.PP
|
||||
Unless a working directory is specified, the sources and patches will be
|
||||
downloaded into a temporary directory in \fB/tmp\fR, which is removed once the
|
||||
script finishes running.
|
||||
The output of the build tool will be placed in \fIworkdir\fR/\fBbuildresult/\fR.
|
||||
|
||||
.PP
|
||||
One of \fB\-\-upload\fR, \fB\-\-workdir\fR, or \fB--sponsor\fR must be
|
||||
specified.
|
||||
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.BR \-b ", " \-\-build
|
||||
Build the package with the specified builder. Note for \fBpbuilder\fR(8) and
|
||||
\fBcowbuilder\fR(8) users:
|
||||
This assumes the common configuration, where the \fBARCH\fR and \fBDIST\fR
|
||||
environment is read by \fBpbuilderrc\fR(5) to select the correct base image.
|
||||
.TP
|
||||
.B \-B \fIBUILDER\fR, \fB\-\-builder\fR=\fIBUILDER
|
||||
Use the specify builder to build the package.
|
||||
Supported are \fBcowbuilder\fR(8), \fBcowbuilder-dist\fR(1), \fBpbuilder\fR(8),
|
||||
\fBpbuilder-dist\fR(1), and \fBsbuild\fR(1).
|
||||
The default is \fBpbuilder\fR(8).
|
||||
.TP
|
||||
.BR \-e ", " \-\-edit
|
||||
Launch a sub-shell to allow editing of the patched source before
|
||||
building.
|
||||
.TP
|
||||
.BR \-h ", " \-\-help
|
||||
Display a help message and exit.
|
||||
.TP
|
||||
.B \-k \fIKEY\fR, \fB\-\-key\fR=\fIKEY
|
||||
Specify a key ID for signing the upload.
|
||||
.TP
|
||||
.B \-l \fIINSTANCE\fR, \fB\-\-lpinstance\fR=\fIINSTANCE\fR
|
||||
Use the specified instance of Launchpad (e.g. "staging"), instead of
|
||||
the default of "production".
|
||||
.TP
|
||||
.B \-\-no\-conf
|
||||
Do not read any configuration files, or configuration from environment
|
||||
variables.
|
||||
.TP
|
||||
.BR \-s ", " \-\-sponsor
|
||||
Shortcut for sponsored uploads. Equivalent to \fB\-b \-u ubuntu\fR.
|
||||
.TP
|
||||
.B \-u \fIDEST\fR, \fB\-\-upload\fR=\fIDEST
|
||||
Upload to \fIDEST\fR with \fBdput\fR(1) (after confirmation).
|
||||
.TP
|
||||
.BR \-U ", " \-\-update
|
||||
Update the build environment before attempting to build.
|
||||
.TP
|
||||
.BR \-v ", " \-\-verbose
|
||||
Print more information.
|
||||
.TP
|
||||
.B \-w \fIDIR\fR, \fB\-\-workdir\fR=\fIDIR
|
||||
Use the specified working directory, creating it if necessary.
|
||||
If \fIWORKDIR\fR is not specified, a temporary directory is created, which is
|
||||
deleted before \fIsponsor-patch\fR exits.
|
||||
|
||||
.SH ENVIRONMENT
|
||||
All of the \fBCONFIGURATION VARIABLES\fR below are also supported as environment
|
||||
variables.
|
||||
Variables in the environment take precedence to those in configuration files.
|
||||
|
||||
.SH CONFIGURATION VARIABLES
|
||||
The following variables can be set in the environment or in
|
||||
.BR ubuntu\-dev\-tools (5)
|
||||
configuration files.
|
||||
In each case, the script\-specific variable takes precedence over the
|
||||
package\-wide variable.
|
||||
.TP
|
||||
.BR SPONSOR_PATCH_BUILDER ", " UBUNTUTOOLS_BUILDER
|
||||
The default value for \fB\-\-builder\fR.
|
||||
.TP
|
||||
.BR SPONSOR_PATCH_LPINSTANCE ", " UBUNTUTOOLS_LPINSTANCE
|
||||
The default value for \fB--lpinstance\fR.
|
||||
.TP
|
||||
.BR SPONSOR_PATCH_UPDATE_BUILDER ", " UBUNTUTOOLS_UPDATE_BUILDER
|
||||
The default value for \fB--update\fR.
|
||||
.TP
|
||||
.BR SPONSOR_PATCH_WORKDIR ", " UBUNTUTOOLS_WORKDIR
|
||||
The default value for \fB--workdir\fR.
|
||||
.TP
|
||||
.BR SPONSOR_PATCH_KEYID ", " UBUNTUTOOLS_KEYID
|
||||
The default value for \fB--key\fR.
|
||||
|
||||
.SH EXAMPLES
|
||||
Test-building and sponsoring an upload of bug \fB1234\fR:
|
||||
.IP
|
||||
.nf
|
||||
.B sponsor\-patch -s 1234
|
||||
.fi
|
||||
|
||||
.PP
|
||||
Performing a test build of bug \fB1234\fR in your PPA:
|
||||
.IP
|
||||
.nf
|
||||
.B sponsor\-patch -u ppa:\fIuser\fR/\fIppa\fB 1234
|
||||
.fi
|
||||
|
||||
.SH SEE ALSO
|
||||
.BR bzr (1),
|
||||
.BR debchange (1),
|
||||
.BR debdiff (1),
|
||||
.BR dput (1),
|
||||
.BR edit-patch (1),
|
||||
.BR lintian (1),
|
||||
.BR cowbuilder (8),
|
||||
.BR cowbuilder-dist (1),
|
||||
.BR pbuilder (8),
|
||||
.BR pbuilder-dist (1),
|
||||
.BR sbuild (1),
|
||||
.BR ubuntu\-dev\-tools (5),
|
||||
.BR update\-maintainer (1)
|
||||
|
||||
.SH AUTHORS
|
||||
\fBsponsor\-patch\fR was written by Benjamin Drung <bdrung@ubuntu.com>,
|
||||
and this manual page was written by Stefano Rivera <stefanor@ubuntu.com>.
|
||||
.PP
|
||||
Both are released under the terms of the ISC License.
|
@ -1,28 +0,0 @@
|
||||
.TH SUSPICIOUS\-SOURCE 1 "September 14, 2007" "ubuntu-dev-tools"
|
||||
|
||||
.SH NAME
|
||||
suspicious\-source \- search for files that are not the GPL's
|
||||
"preferred form of modification"
|
||||
|
||||
.SH SYNOPSIS
|
||||
\fBsuspicious\-source\fP
|
||||
|
||||
.SH DESCRIPTION
|
||||
\fBsuspicious\-source\fP is a script that outputs a list of files which
|
||||
are not common source files.
|
||||
This should be run in the root of a source tree to find files which might
|
||||
not be the "preferred form of modification" that the GPL and other licenses
|
||||
require.
|
||||
.PP
|
||||
Neither the files inside version control system directories (like
|
||||
".bzr/" or "CVS/"), nor those inside "debian/" are considered.
|
||||
|
||||
.SH SEE ALSO
|
||||
.BR find (1)
|
||||
|
||||
.SH AUTHORS
|
||||
\fBsuspicious\-source\fP and this manpage have been written by
|
||||
Siegfried-Angel Gevatter Pujals <rainct@ubuntu.com>, based upon a
|
||||
script with the same name from Martin Pitt <martin.pitt@ubuntu.com>.
|
||||
.PP
|
||||
Both are released under the GNU General Public License, version 3 or later.
|
154
doc/syncpackage.1
Normal file
154
doc/syncpackage.1
Normal file
@ -0,0 +1,154 @@
|
||||
.TH SYNCPACKAGE "1" "June 2010" "ubuntu-dev-tools"
|
||||
.SH NAME
|
||||
syncpackage \- copy source packages from Debian to Ubuntu
|
||||
.\"
|
||||
.SH SYNOPSIS
|
||||
.B syncpackage
|
||||
[\fIoptions\fR] \fI<.dsc URL/path or package name(s)>\fR
|
||||
.\"
|
||||
.SH DESCRIPTION
|
||||
\fBsyncpackage\fR causes one or more source package(s) to be copied from Debian
|
||||
to Ubuntu.
|
||||
.PP
|
||||
\fBsyncpackage\fR allows you to upload files with the same checksums of the
|
||||
Debian ones, as the common script used by Ubuntu archive administrators does,
|
||||
this way you can preserve source files integrity between the two distributions.
|
||||
.PP
|
||||
\fBsyncpackage\fR will detect source tarballs with mismatching
|
||||
checksums, and can perform fake syncs.
|
||||
.\"
|
||||
.SH WARNING
|
||||
The use of \fBsyncpackage \-\-no\-lp\fR, which generates a changes file to
|
||||
be directly uploaded to the Ubuntu primary archive or a PPA, is discouraged
|
||||
by the Ubuntu Archive Administrators, as it introduces an unnecessary window
|
||||
for error.
|
||||
This only exists for backward compatibility, for unusual corner cases
|
||||
(such as fakesyncs), and for uploads to archives other than the Ubuntu
|
||||
primary archive.
|
||||
Omitting this option will cause Launchpad to perform the sync request
|
||||
directly, which is the preferred method for uploads to the Ubuntu primary
|
||||
archive.
|
||||
.\"
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
\fB\-h\fR, \fB\-\-help\fR
|
||||
Show help message and exit
|
||||
.TP
|
||||
\fB\-d\fI DIST\fR, \fB\-\-distribution\fR=\fIDIST\fR
|
||||
Debian distribution to sync from. Default is \fIunstable\fR.
|
||||
.TP
|
||||
\fB\-r\fI RELEASE\fR, \fB\-\-release\fR=\fIRELEASE\fR
|
||||
Specify target Ubuntu release. Default: current development release.
|
||||
.TP
|
||||
\fB\-V\fI DEBVERSION\fR, \fB\-\-debian\-version\fR=\fIDEBVERSION\fR
|
||||
Specify the version to sync from.
|
||||
.TP
|
||||
\fB\-c\fI COMPONENT\fR, \fB\-\-component\fR=\fICOMPONENT\fR
|
||||
Specify the component to sync from.
|
||||
.TP
|
||||
\fB\-b\fI BUG\fR, \fB\-\-bug\fR=\fIBUG\fR
|
||||
Mark a Launchpad bug as being fixed by this upload.
|
||||
.TP
|
||||
\fB\-s\fI USERNAME\fR, \fB\-\-sponsor\fR=\fIUSERNAME\fR
|
||||
Sponsor the sync for \fIUSERNAME\fR (a Launchpad username).
|
||||
.TP
|
||||
\fB\-v\fR, \fB\-\-verbose\fR
|
||||
Display more progress information.
|
||||
.TP
|
||||
\fB\-F\fR, \fB\-\-fakesync\fR
|
||||
Perform a fakesync, to work around a tarball mismatch between Debian and
|
||||
Ubuntu.
|
||||
This option ignores blocklisting, and performs a local sync.
|
||||
It implies \fB\-\-no\-lp\fR, and will leave a signed \fB.changes\fR file
|
||||
for you to upload.
|
||||
.TP
|
||||
\fB\-f\fR, \fB\-\-force\fR
|
||||
Force sync over the top of Ubuntu changes.
|
||||
.TP
|
||||
.B \-\-no\-conf
|
||||
Do not read any configuration files, or configuration from environment
|
||||
variables.
|
||||
.TP
|
||||
\fB\-l\fI INSTANCE\fR, \fB\-\-lpinstance\fR=\fIINSTANCE\fR
|
||||
Launchpad instance to connect to (default: production).
|
||||
.TP
|
||||
.B \-\-simulate
|
||||
Show what would be done, but don't actually do it.
|
||||
.\"
|
||||
.SH LOCAL SYNC PREPARATION OPTIONS
|
||||
.TP
|
||||
Options that only apply when using \fB\-\-no\-lp\fR:
|
||||
.TP
|
||||
.B \-\-no\-lp
|
||||
Construct sync locally, rather than letting Launchpad copy the package
|
||||
directly.
|
||||
It will leave a signed \fB.changes\fR file for you to upload.
|
||||
See the \fBWARNING\fR above.
|
||||
.TP
|
||||
\fB\-n\fI UPLOADER_NAME\fR, \fB\-\-uploader\-name\fR=\fIUPLOADER_NAME\fR
|
||||
Use UPLOADER_NAME as the name of the maintainer for this upload instead
|
||||
of evaluating DEBFULLNAME and UBUMAIL.
|
||||
This option may only be used in \fB\-\-no\-lp\fR mode.
|
||||
.TP
|
||||
\fB\-e\fI UPLOADER_EMAIL\fR, \fB\-\-uploader\-email\fR=\fIUPLOADER_EMAIL\fR
|
||||
Use UPLOADER_EMAIL as the email address of the maintainer for this
|
||||
upload instead of evaluating DEBEMAIL and UBUMAIL.
|
||||
This option may only be used in \fB\-\-no\-lp\fR mode.
|
||||
.TP
|
||||
\fB\-k\fI KEYID\fR, \fB\-\-key\fR=\fIKEYID\fR
|
||||
Specify the key ID to be used for signing.
|
||||
.TP
|
||||
\fB\-\-dont-sign\fR
|
||||
Do not sign the upload.
|
||||
.TP
|
||||
.B \-d \fIDEBIAN_MIRROR\fR, \fB\-\-debian\-mirror\fR=\fIDEBIAN_MIRROR\fR
|
||||
Use the specified mirror.
|
||||
Should be in the form \fBhttp://ftp.debian.org/debian\fR.
|
||||
If the package isn't found on this mirror, \fBsyncpackage\fR will fall
|
||||
back to the default mirror.
|
||||
.TP
|
||||
.B \-s \fIUBUNTU_MIRROR\fR, \fB\-\-debsec\-mirror\fR=\fIUBUNTU_MIRROR\fR
|
||||
Use the specified Debian security mirror.
|
||||
Should be in the form \fBhttp://archive.ubuntu.com/ubuntu\fR.
|
||||
If the package isn't found on this mirror, \fBsyncpackage\fR will fall
|
||||
back to the default mirror.
|
||||
.\"
|
||||
.SH ENVIRONMENT
|
||||
.TP
|
||||
.BR DEBFULLNAME ", " DEBEMAIL ", " UBUMAIL
|
||||
Used to determine the uploader (if not supplied as options).
|
||||
See
|
||||
.BR ubuntu\-dev\-tools (5)
|
||||
for details.
|
||||
.P
|
||||
All of the \fBCONFIGURATION VARIABLES\fR below are also supported as
|
||||
environment variables.
|
||||
Variables in the environment take precedence to those in configuration
|
||||
files.
|
||||
.\"
|
||||
.SH CONFIGURATION VARIABLES
|
||||
The following variables can be set in the environment or in
|
||||
.BR ubuntu\-dev\-tools (5)
|
||||
configuration files.
|
||||
In each case, the script\-specific variable takes precedence over the
|
||||
package\-wide variable.
|
||||
.TP
|
||||
.BR SYNCPACKAGE_DEBIAN_MIRROR ", " UBUNTUTOOLS_DEBIAN_MIRROR
|
||||
The default value for \fB\-\-debian\-mirror\fR.
|
||||
.TP
|
||||
.BR SYNCPACKAGE_UBUNTU_MIRROR ", " UBUNTUTOOLS_DEBSEC_MIRROR
|
||||
The default value for \fB\-\-ubuntu\-mirror\fR.
|
||||
.TP
|
||||
.BR SYNCPACKAGE_KEYID ", " UBUNTUTOOLS_KEYID
|
||||
The default value for \fB\-\-key\fR.
|
||||
.\"
|
||||
.SH SEE ALSO
|
||||
.BR requestsync (1),
|
||||
.BR ubuntu\-dev\-tools (5)
|
||||
.\"
|
||||
.SH AUTHOR
|
||||
\fBsyncpackage\fR was written by Martin Pitt <martin.pitt@canonical.com> and Benjamin Drung <bdrung@ubuntu.com>.
|
||||
.PP
|
||||
This manual page was written by Luca Falavigna <dktrkranz@ubuntu.com>
|
||||
.PP
|
||||
Both are released under GNU General Public License, version 3.
|
78
doc/ubuntu-build.1
Normal file
78
doc/ubuntu-build.1
Normal file
@ -0,0 +1,78 @@
|
||||
.TH UBUNTU-BUILD "1" "Mar 2024" "ubuntu-dev-tools"
|
||||
.SH NAME
|
||||
ubuntu-build \- command-line interface to Launchpad build operations
|
||||
|
||||
.SH SYNOPSIS
|
||||
.nf
|
||||
\fBubuntu-build\fR <srcpackage> <release> <operation>
|
||||
\fBubuntu-build\fR --batch [--retry] [--rescore \fIPRIORITY\fR] [--arch \fIARCH\fR [...]]
|
||||
[--series \fISERIES\fR] [--state \fIBUILD-STATE\fR]
|
||||
[-A \fIARCHIVE\fR] [pkg]...
|
||||
.fi
|
||||
|
||||
.SH DESCRIPTION
|
||||
\fBubuntu-build\fR provides a command line interface to the Launchpad build
|
||||
operations.
|
||||
|
||||
.SH OPERATIONS
|
||||
Listed below are the available operations for \fBubuntu-build\fR:
|
||||
.TP
|
||||
.B status
|
||||
Outputs the build status of the package on Launchpad on all architectures.
|
||||
.TP
|
||||
.B retry
|
||||
Requests that the package has another attempt at rebuilding from source.
|
||||
This will only work if the package has \fIFailed to build\fR on Launchpad.
|
||||
.TP
|
||||
.B rescore
|
||||
Requests that the package's build priority be raised in the build queue.
|
||||
Only members of the Launchpad build administrators may issue this operation,
|
||||
and it may only be performed on packages which \fINeed building\fR.
|
||||
|
||||
.SH OPTIONS
|
||||
Listed below are the command line options for \fBubuntu-build\fR:
|
||||
.TP
|
||||
.B \-h or \-\-help
|
||||
Display a help message and exit.
|
||||
.TP
|
||||
Retry and rescore options:
|
||||
.IP
|
||||
These options may only be used with the 'retry' and 'rescore'
|
||||
operations.
|
||||
.IP
|
||||
\fB\-a\fR ARCHITECTURE, \fB\-\-arch\fR=\fIARCHITECTURE\fR
|
||||
Rebuild or rescore a specific architecture. Valid
|
||||
architectures are:
|
||||
armhf, arm64, amd64, i386, powerpc, ppc64el, riscv64, s390x.
|
||||
.TP
|
||||
Batch processing:
|
||||
.IP
|
||||
These options and parameter ordering is only available in \fB\-\-batch\fR
|
||||
mode. Usage: ubuntu\-build \fB\-\-batch\fR [options] <package>...
|
||||
.IP
|
||||
\fB\-\-batch\fR
|
||||
Enable batch mode
|
||||
.IP
|
||||
\fB\-\-series\fR=\fISERIES\fR
|
||||
Selects the Ubuntu series to operate on (default:
|
||||
current development series)
|
||||
.IP
|
||||
\fB\-\-retry\fR
|
||||
Retry builds (give\-back).
|
||||
.IP
|
||||
\fB\-\-rescore\fR=\fIPRIORITY\fR
|
||||
Rescore builds to <priority>.
|
||||
.IP
|
||||
\fB\-\-arch\fR=\fIARCHITECTURE\fR
|
||||
Affect only 'architecture' (can be used several
|
||||
times). Valid architectures are:
|
||||
arm64, amd64, i386, powerpc, ppc64el, riscv64, s390x.
|
||||
.IP
|
||||
\fB\-A=\fIARCHIVE\fR
|
||||
Act on the named archive (ppa) instead of on the main Ubuntu archive.
|
||||
|
||||
.SH AUTHORS
|
||||
\fBubuntu-build\fR was written by Martin Pitt <martin.pitt@canonical.com>, and
|
||||
this manual page was written by Jonathan Patrick Davies <jpds@ubuntu.com>.
|
||||
.PP
|
||||
Both are released under the terms of the GNU General Public License, version 3.
|
110
doc/ubuntu-dev-tools.5
Normal file
110
doc/ubuntu-dev-tools.5
Normal file
@ -0,0 +1,110 @@
|
||||
.\" Copyright (C) 2010, Stefano Rivera <stefanor@ubuntu.com>
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and/or distribute this software for any
|
||||
.\" purpose with or without fee is hereby granted, provided that the above
|
||||
.\" copyright notice and this permission notice appear in all copies.
|
||||
.\"
|
||||
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||
.\" REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
.\" AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
.\" INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
.\" LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||
.\" OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.TH ubuntu\-dev\-tools "5" "December 19 2010" "ubuntu\-dev\-tools"
|
||||
.SH NAME
|
||||
ubuntu\-dev\-tools \- Configuration for the ubuntu\-dev\-tools package.
|
||||
|
||||
.SH DESCRIPTION
|
||||
The \fBubuntu\-dev\-tools\fR package is similar in scope to the
|
||||
.BR devscripts (1)
|
||||
package, providing a collection of scripts which may be of use
|
||||
to Ubuntu and Debian developers or others wishing to build Debian packages.
|
||||
|
||||
Some of these scripts have options which may be configured on a
|
||||
system\-wide and per\-user basis.
|
||||
These options are configured in
|
||||
.BR devscripts.conf (5).
|
||||
|
||||
All variables are described in the script's manpages. Package\-wide
|
||||
variables begin with "\fIUBUNTUTOOLS\fR" and are listed below.
|
||||
|
||||
Every script which reads the configuration files can be forced to ignore
|
||||
them by using the \fB\-\-no\-conf\fR command\-line option.
|
||||
|
||||
.SH ENVIRONMENT
|
||||
All \fBubuntu\-dev\-tools\fR configuration variables can be set (and
|
||||
overridden) by setting them in the environment (unlike
|
||||
\fBdevscripts\fR).
|
||||
|
||||
In addition, several scripts use the following environment variables:
|
||||
|
||||
.TP
|
||||
.B UBUMAIL
|
||||
Overrides \fBDEBEMAIL\fR and \fBDEBFULLNAME\fR when the target is
|
||||
clearly Ubuntu.
|
||||
Can either contain an e-mail address or \fBFull Name
|
||||
<email@example.org>\fR.
|
||||
|
||||
.TP
|
||||
.BR DEBEMAIL ", " DEBFULLNAME
|
||||
As in
|
||||
.BR devscripts (1).
|
||||
|
||||
.SH PACKAGE\-WIDE VARIABLES
|
||||
The currently recognised package\-wide variables are:
|
||||
.TP
|
||||
.B UBUNTUTOOLS_BUILDER
|
||||
This specifies the preferred test\-builder, one of
|
||||
.BR pbuilder " (default), " sbuild ", " pbuilder\-dist .
|
||||
.TP
|
||||
.B UBUNTUTOOLS_DEBIAN_MIRROR
|
||||
The preferred Debian archive mirror.
|
||||
Should be of the form \fBhttp://ftp.debian.org/debian\fR (no trailing
|
||||
slash).
|
||||
If not specified, the master will be used.
|
||||
.TP
|
||||
.B UBUNTUTOOLS_DEBSEC_MIRROR
|
||||
The preferred Debian security archive mirror.
|
||||
Should be of the form \fBhttp://security.debian.org\fR (no trailing
|
||||
slash).
|
||||
If not specified, the master will be used.
|
||||
.TP
|
||||
.B UBUNTUTOOLS_UBUNTU_MIRROR
|
||||
The preferred Ubuntu archive mirror.
|
||||
Should be of the form \fBhttp://archive.ubuntu.com/ubuntu\fR (no
|
||||
trailing slash).
|
||||
If not specified, the master will be used.
|
||||
.TP
|
||||
.B UBUNTUTOOLS_UBUNTU_PORTS_MIRROR
|
||||
The preferred Ubuntu archive mirror.
|
||||
Should be of the form \fBhttp://ports.ubuntu.com\fR (no
|
||||
trailing slash).
|
||||
If not specified, the master will be used.
|
||||
.TP
|
||||
.B UBUNTUTOOLS_LPINSTANCE
|
||||
The launchpad instance to communicate with. e.g. \fBproduction\fR
|
||||
(default) or \fBstaging\fR.
|
||||
.TP
|
||||
.B UBUNTUTOOLS_MIRROR_FALLBACK
|
||||
Whether or not to fall\-back to the master archive mirror.
|
||||
This is usually the desired behaviour, as mirrors can lag the masters.
|
||||
If on a private network with only a local mirror, you may want to set
|
||||
this to \fBno\fR.
|
||||
.RB "One of " yes " (default) or " no .
|
||||
.TP
|
||||
.B UBUNTUTOOLS_UPDATE_BUILDER
|
||||
Whether or not to update the test\-builder before each test build.
|
||||
.RB "One of " yes " or " no " (default).
|
||||
.TP
|
||||
.B UBUNTUTOOLS_WORKDIR
|
||||
The directory to use for preparing source packages etc.
|
||||
When unset, defaults to a directory in \fI/tmp/\fR named after the
|
||||
script.
|
||||
|
||||
.SH SEE ALSO
|
||||
.BR devscripts (1),
|
||||
.BR devscripts.conf (5)
|
||||
|
||||
.SH AUTHORS
|
||||
This manpage was written by Stefano Rivera <stefanor@ubuntu.com>.
|
16
doc/ubuntu-iso.1
Normal file
16
doc/ubuntu-iso.1
Normal file
@ -0,0 +1,16 @@
|
||||
.TH UBUNTU_ISO "1" "June 2010" "ubuntu-dev-tools"
|
||||
.SH NAME
|
||||
\fBubuntu-iso\fR \- tool to examine Ubuntu CD (ISO) installation media
|
||||
|
||||
.SH SYNOPSIS
|
||||
\fBubuntu-iso\fR <path to ISO>
|
||||
|
||||
.SH DESCRIPTION
|
||||
When given a path to an ISO, \fBubuntu-iso\fR will determine whether it is an Ubuntu ISO or not. If it is, it will extract and display the version information.
|
||||
|
||||
.SH AUTHORS
|
||||
\fBubuntu-iso\fR was written by Matt Zimmerman <mdz@ubuntu.com>.
|
||||
|
||||
This manual page was written by Andrew Starr-Bochicchio <a.starr.b@gmail.com>.
|
||||
.PP
|
||||
Both are released under the terms of the GNU General Public License, version 2.
|
60
doc/ubuntu-upload-permission.1
Normal file
60
doc/ubuntu-upload-permission.1
Normal file
@ -0,0 +1,60 @@
|
||||
.\" Copyright (C) 2011, Stefano Rivera <stefanor@ubuntu.com>
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and/or distribute this software for any
|
||||
.\" purpose with or without fee is hereby granted, provided that the above
|
||||
.\" copyright notice and this permission notice appear in all copies.
|
||||
.\"
|
||||
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||
.\" REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
.\" AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
.\" INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
.\" LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||
.\" OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.TH ubuntu\-upload\-permission 1 "November 2011" ubuntu\-dev\-tools
|
||||
|
||||
.SH NAME
|
||||
ubuntu\-upload\-permission \- Query upload rights and (optionally) list
|
||||
the people and teams with upload rights for a package
|
||||
|
||||
.SH SYNOPSIS
|
||||
.B ubuntu\-upload\-permission \fR[\fIoptions\fR] \fIpackage
|
||||
|
||||
.SH DESCRIPTION
|
||||
\fBubuntu\-upload\-permission\fR checks if the user has upload
|
||||
permissions for \fIpackage\fR.
|
||||
If the \fB\-\-list\-uploaders\fR option is provided, all the people and
|
||||
teams that do have upload rights for \fIpackage\fR will be listed.
|
||||
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
\fB\-r\fR \fIRELEASE\fR, \fB\-\-release\fR=\fIRELEASE\fR
|
||||
Query permissions in \fIRELEASE\fR.
|
||||
Default: current development release.
|
||||
.TP
|
||||
\fB\-a\fR, \fB\-\-list\-uploaders\fR
|
||||
List all the people and teams who have upload rights for \fIpackage\fR.
|
||||
.TP
|
||||
\fB\-t\fR, \fB\-\-list\-team\-members\fR
|
||||
List all the members of every team with rights. (Implies
|
||||
\fB\-\-list\-uploaders\fR)
|
||||
.TP
|
||||
\fB\-h\fR, \fB\-\-help\fR
|
||||
Display a help message and exit
|
||||
|
||||
.SH EXIT STATUS
|
||||
.TP
|
||||
.B 0
|
||||
You have the necessary upload rights.
|
||||
.TP
|
||||
.B 1
|
||||
You don't have the necessary upload rights.
|
||||
.TP
|
||||
.B 2
|
||||
There was an error.
|
||||
|
||||
.SH AUTHORS
|
||||
\fBubuntu\-upload\-permission\fR and this manpage were written by
|
||||
Stefano Rivera <stefanor@ubuntu.com>.
|
||||
.PP
|
||||
Both are released under the terms of the ISC License.
|
@ -1,10 +1,26 @@
|
||||
.TH UPDATE\-MAINTAINER "1" "August 04, 2008" "ubuntu-dev-tools"
|
||||
.\" Copyright (c) 2008, Siegfried-Angel Gevatter Pujals <rainct@ubuntu.com>
|
||||
.\" 2010, Benjamin Drung <bdrung@ubuntu.com>
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and/or distribute this software for any
|
||||
.\" purpose with or without fee is hereby granted, provided that the above
|
||||
.\" copyright notice and this permission notice appear in all copies.
|
||||
.\"
|
||||
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.TH UPDATE\-MAINTAINER "1" "December 2010" "ubuntu-dev-tools"
|
||||
|
||||
.SH NAME
|
||||
update\-maintainer \- change the Maintainer field in a Debian source package
|
||||
|
||||
.SH SYNOPSIS
|
||||
.B update\-maintainer [\fB\-\-path=<PATH>\fP] [\fB\-\-section=<SECTION>\fP]
|
||||
.B update\-maintainer
|
||||
[\fIoptions\fR]
|
||||
|
||||
.SH DESCRIPTION
|
||||
\fBupdate\-maintainer\fP updates the Maintainer field in the source of
|
||||
@ -12,19 +28,20 @@ an Ubuntu package to match the DebianMaintainerField specification.
|
||||
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
\fB\-\-path=<PATH>\fP
|
||||
This option allows you to specify the path to the source directory.
|
||||
\fB\-d \fIPATH\fR, \fB\-\-debian\-directory\fR=\fIPATH\fR
|
||||
location of the \fIdebian\fR directory (default: \fB./debian\fR)
|
||||
.TP
|
||||
\fB\-\-section=<SECTION>\fP
|
||||
Manually specify the section of the package. This is necessary if the
|
||||
package is not yet in the archive or if you don't have an Internet
|
||||
connection available when you run \fBupdate\-maintainer\fP.
|
||||
\fB\-h\fR, \fB\-\-help\fR
|
||||
show a help message and exit
|
||||
.TP
|
||||
\fB\-q\fR, \fB\-\-quiet\fR
|
||||
print no informational messages
|
||||
|
||||
.SH SEE ALSO
|
||||
See https://wiki.ubuntu.com/DebianMaintainerField for more information.
|
||||
|
||||
.SH AUTHOR
|
||||
\fBupdate-maintainer\fP has been written by Albin Tonnerre <lut1n.tne@gmail.com>
|
||||
\fBupdate-maintainer\fP has been written by Benjamin Drung <bdrung@ubuntu.com>
|
||||
and this manual page by Siegfried-Angel Gevatter Pujals <rainct@ubuntu.com>.
|
||||
.PP
|
||||
Both are released under the GNU General Public License, version 2.
|
||||
Both are released under the ISC license.
|
||||
|
@ -1,40 +0,0 @@
|
||||
.TH WHAT\-PATCH "1" "10 August 2008" "ubuntu-dev-tools"
|
||||
.SH NAME
|
||||
what\-patch \- detects which patch system a Debian package uses
|
||||
|
||||
.SH SYNOPSIS
|
||||
.B what\-patch [options]
|
||||
|
||||
.SH DESCRIPTION
|
||||
\fBwhat\-patch\fR examines the debian/rules file to determine which patch
|
||||
system the Debian package is using.
|
||||
.PP
|
||||
\fBwhat\-patch\fR should be run from the root directory of the Debian source
|
||||
package.
|
||||
|
||||
.SH OPTIONS
|
||||
Listed below are the command line options for what\-patch:
|
||||
.TP
|
||||
.B \-h or \-\-help
|
||||
Display a help message and exit.
|
||||
.TP
|
||||
.B \-v
|
||||
Enable verbose mode.
|
||||
This will include the listing of any files modified outside or the debian/
|
||||
directory and report any additional details about the patch system if
|
||||
available.
|
||||
|
||||
.SH AUTHORS
|
||||
\fBwhat\-patch\fR was written by Kees Cook <kees@ubuntu.com>,
|
||||
Siegfried-A. Gevatter <rainct@ubuntu.com>, and Daniel Hahler
|
||||
<ubuntu@thequod.de>, among others.
|
||||
This manual page was written by Jonathan Patrick Davies <jpds@ubuntu.com>.
|
||||
.PP
|
||||
Both are released under the GNU General Public License, version 2.
|
||||
|
||||
.SH SEE ALSO
|
||||
The Ubuntu MOTU team has some documentation about patch systems at the Ubuntu
|
||||
wiki: \fBhttps://wiki.ubuntu.com/PackagingGuide/PatchSystems\fR
|
||||
|
||||
.PP
|
||||
.B cdbs\-edit\-patch(1), dbs\-edit\-patch(1), dpatch\-edit\-patch(1)
|
62
enforced-editing-wrapper
Executable file
62
enforced-editing-wrapper
Executable file
@ -0,0 +1,62 @@
|
||||
#!/usr/bin/python3
|
||||
#
|
||||
# Copyright (C) 2011, Stefano Rivera <stefanor@ubuntu.com>
|
||||
#
|
||||
# Permission to use, copy, modify, and/or distribute this software for any
|
||||
# purpose with or without fee is hereby granted, provided that the above
|
||||
# copyright notice and this permission notice appear in all copies.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
#
|
||||
#
|
||||
# Wraps sensisible-editor in checks for remaining boilerplate.
|
||||
# Configured through environment variables:
|
||||
# UDT_EDIT_WRAPPER_EDITOR: The user's usual $EDITOR
|
||||
# UDT_EDIT_WRAPPER_VISUAL: The user's usual $VISUAL
|
||||
# UDT_EDIT_WRAPPER_TEMPLATE_RE: An extra boilerplate-detecting regex.
|
||||
# UDT_EDIT_WRAPPER_FILE_DESCRIPTION: The type of file being edited.
|
||||
|
||||
# pylint: disable=invalid-name
|
||||
# pylint: enable=invalid-name
|
||||
|
||||
import argparse
|
||||
import os
|
||||
import re
|
||||
|
||||
from ubuntutools.question import EditFile
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(usage="%(prog)s [options] filename")
|
||||
parser.add_argument("filename", help=argparse.SUPPRESS)
|
||||
args = parser.parse_args()
|
||||
if not os.path.isfile(args.filename):
|
||||
parser.error(f"File {args.filename} does not exist")
|
||||
|
||||
if "UDT_EDIT_WRAPPER_EDITOR" in os.environ:
|
||||
os.environ["EDITOR"] = os.environ["UDT_EDIT_WRAPPER_EDITOR"]
|
||||
else:
|
||||
del os.environ["EDITOR"]
|
||||
|
||||
if "UDT_EDIT_WRAPPER_VISUAL" in os.environ:
|
||||
os.environ["VISUAL"] = os.environ["UDT_EDIT_WRAPPER_VISUAL"]
|
||||
else:
|
||||
del os.environ["VISUAL"]
|
||||
|
||||
placeholders = []
|
||||
if "UDT_EDIT_WRAPPER_TEMPLATE_RE" in os.environ:
|
||||
placeholders.append(re.compile(os.environ["UDT_EDIT_WRAPPER_TEMPLATE_RE"]))
|
||||
|
||||
description = os.environ.get("UDT_EDIT_WRAPPER_FILE_DESCRIPTION", "file")
|
||||
|
||||
EditFile(args.filename, description, placeholders).edit()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
@ -1,16 +0,0 @@
|
||||
subject: [UNMETDEPS] $pack has unmet dependencies
|
||||
assignee:
|
||||
status: confirmed
|
||||
subscribers: motu
|
||||
tags: unmetdeps
|
||||
buglist-url: http://bugs.launchpad.net/ubuntu/+bugs?field.tag=unmetdeps
|
||||
text:
|
||||
A run of
|
||||
.
|
||||
LC_ALL=C apt-cache -i unmet | grep ^Package | cut -d' ' -f2 | grep
|
||||
-v dbgsym | sort -u | xargs apt-cache showsrc | grep ^Directory |
|
||||
sed 's/Package\:\ //g' | grep verse | cut -d'/' -f4
|
||||
indicates that the source package $pack has binary packages that are not
|
||||
installable (on AMD64) at the moment.
|
||||
.
|
||||
Please have a look and make sure it's installable again.
|
@ -1,2 +0,0 @@
|
||||
z88dk
|
||||
zope-quotafolder
|
144
get-branches
144
get-branches
@ -1,144 +0,0 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (C) 2007 Canonical Ltd.
|
||||
# Created by Daniel Holbach <daniel.holbach@ubuntu.com>
|
||||
# Modified by Jonathan Patrick Davies <jpds@ubuntu.com>
|
||||
#
|
||||
# ##################################################################
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; version 3.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# See file /usr/share/common-licenses/GPL-3 for more details.
|
||||
#
|
||||
# ##################################################################
|
||||
#
|
||||
# This script is used to checkout or branch all the Bazaar branches
|
||||
# of a Launchpad team.
|
||||
#
|
||||
|
||||
import os
|
||||
import re
|
||||
import subprocess
|
||||
import sys
|
||||
import urllib2
|
||||
from optparse import OptionParser
|
||||
|
||||
def main():
|
||||
usage = "Usage: %prog [-d <directory>] -t <team> [-o <operation>]"
|
||||
usage += "\nUsage: %prog <team>"
|
||||
optParser = OptionParser(usage)
|
||||
|
||||
# Our options.
|
||||
optParser.add_option("-d", "--directory", action = "store", type = "string",
|
||||
dest = "directory", default = ".",
|
||||
help = "Directory to download branches to.")
|
||||
optParser.add_option("-t", "--team", action = "store", type = "string",
|
||||
dest = "lpteam", help = "Launchpad team to download branches from.")
|
||||
optParser.add_option("-o", "--operation", action = "store", type = "string",
|
||||
dest = "operation", default = "branch",
|
||||
help = "Whether to branch or checkout the Bazaar branches. May be " \
|
||||
"either 'branch' or 'checkout'.")
|
||||
|
||||
(options, args) = optParser.parse_args()
|
||||
|
||||
# Parse our options.
|
||||
if len(args) != 1 and options.lpteam == None:
|
||||
optParser.error("No team has been specified.")
|
||||
|
||||
# Launchpad team setting.
|
||||
if options.lpteam:
|
||||
team = str(options.lpteam).lower()
|
||||
if args:
|
||||
team = str(args[0]).lower()
|
||||
|
||||
directory = options.directory
|
||||
|
||||
# Dictionary settings.
|
||||
if not os.path.isdir(directory): # Check that it is a directory.
|
||||
optParser.error("%s is not a valid directory." % directory)
|
||||
|
||||
# Type of Bazaar operation to perform.
|
||||
operation_type = str(options.operation).lower()
|
||||
|
||||
# Got an argument, check if it is valid.
|
||||
if operation_type not in ("branch", "checkout"):
|
||||
optParser.error("Invalid operation '%s' for '-o' flag." % \
|
||||
operation_type)
|
||||
|
||||
|
||||
# Fetch our current directory to return to later.
|
||||
pwd = os.getcwd()
|
||||
|
||||
# Change to the specified directory.
|
||||
os.chdir(directory)
|
||||
|
||||
# Try to open the teams code page.
|
||||
try:
|
||||
sock = urllib2.urlopen("https://code.launchpad.net/~%s" % team)
|
||||
except urllib2.HTTPError:
|
||||
print >> sys.stderr, "The page https://code.launchpad.net/~%s does " \
|
||||
"not exist." % team
|
||||
print >> sys.stderr, "Perhaps invalid team name?"
|
||||
sys.exit(1)
|
||||
|
||||
branch_list_page = sock.read()
|
||||
sock.close()
|
||||
|
||||
branch_page_urls_regex = r'.*<a href="/(~%s/.*)".*' % team
|
||||
branch_page_urls = re.findall(branch_page_urls_regex, branch_list_page)
|
||||
|
||||
# Check the team actually has branches.
|
||||
if len(branch_page_urls) == 0:
|
||||
print "The team '%s' does not have any branches on Launchpad." % team
|
||||
sys.exit(0)
|
||||
|
||||
print "Downloading all branches for the team '%s'. This may take some " \
|
||||
"time." % team
|
||||
|
||||
try:
|
||||
os.makedirs(team)
|
||||
except:
|
||||
pass
|
||||
|
||||
os.chdir(team)
|
||||
|
||||
for url in branch_page_urls:
|
||||
sock = urllib2.urlopen("https://code.launchpad.net/%s" % url)
|
||||
branch_page = sock.read()
|
||||
sock.close()
|
||||
|
||||
branch_url_regex = r'<tt>bzr branch lp:~(.*)</tt>'
|
||||
branch_url = re.findall(branch_url_regex, branch_page)
|
||||
print "Downloading branch: lp:~%s." % branch_url[0]
|
||||
|
||||
if branch_url[0]:
|
||||
product = branch_url[0].split("/")[-2]
|
||||
branch_nick = branch_url[0].split("/")[-1]
|
||||
|
||||
if not os.path.exists(product):
|
||||
os.makedirs(product)
|
||||
os.chdir(product)
|
||||
|
||||
if not os.path.exists(branch_nick):
|
||||
subprocess.call(["bzr", operation_type, "lp:~%s" % branch_url[0]])
|
||||
else:
|
||||
os.chdir(branch_nick)
|
||||
subprocess.call(["bzr", "merge", "--pull", "--remember"])
|
||||
os.chdir(os.path.join(directory, team))
|
||||
|
||||
os.chdir(pwd)
|
||||
sys.exit(0)
|
||||
|
||||
if __name__ == "__main__":
|
||||
try:
|
||||
main()
|
||||
except KeyboardInterrupt:
|
||||
print "Operation was interrupted by user."
|
@ -1,95 +0,0 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright 2007 (C) Siegfried-A. Gevatter <rainct@ubuntu.com>
|
||||
#
|
||||
# ##################################################################
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 3
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# See file /usr/share/common-licenses/GPL for more details.
|
||||
#
|
||||
# ##################################################################
|
||||
#
|
||||
# If you don't pass it any argument, this script will check if
|
||||
# there's a control (debian/control) file somewhere in the current
|
||||
# directory, and if it's so, it'll install the build dependencies
|
||||
# listed there.
|
||||
#
|
||||
# If it gets a single argument, and it's the name of a file, it will
|
||||
# read it, supposing that each line contains the name of a package,
|
||||
# and install the build dependencies for all those.
|
||||
#
|
||||
# Otherwise, if there is more than one argument, or the given argument
|
||||
# isn't the name of an existing file, it will suppose that the each
|
||||
# argument is the name of a package, and install the dependencies for
|
||||
# all of them.
|
||||
|
||||
if [ $# -eq 0 ]
|
||||
then
|
||||
#########################################################
|
||||
# Install the dependencies for the source package the
|
||||
# user is working on.
|
||||
|
||||
if [ -f ../debian/control ]; then
|
||||
cd ..
|
||||
elif [ ! -f ./debian/control ]; then
|
||||
echo "\
|
||||
Couldn't find file debian/control. You have to be inside the \
|
||||
source directory of a Debian package or pass the name of the \
|
||||
package(s) whose build dependencies you want to install in order \
|
||||
to use this script."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
filepath="`pwd`/debian/control"
|
||||
missing_dependencies=$(dpkg-checkbuilddeps 2>&1)
|
||||
|
||||
if [ -z "$missing_dependencies" ]; then
|
||||
echo "The build dependencies described in «$filepath» are already satisfied."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "Installing the build dependencies described in «$filepath»..."
|
||||
|
||||
if [ -x /usr/lib/pbuilder/pbuilder-satisfydepends ]
|
||||
then
|
||||
sudo /usr/lib/pbuilder/pbuilder-satisfydepends
|
||||
else
|
||||
echo "Warning: «pbuilder» isn\'t installed, falling back to «dpkg-checkbuilddeps»."
|
||||
sudo aptitude install $(echo $missing_dependencies | awk -F: '{ print $3 }' | sed 's/([^)]*)//g' | sed 's/|\s[^\s]*//g')
|
||||
#' <--- Fix to avoid Geanys markup breaking
|
||||
fi
|
||||
exit 0
|
||||
elif [ $# -eq 1 ]
|
||||
then
|
||||
#########################################################
|
||||
# Check if the given argument is a file name, else
|
||||
# continue after the if.
|
||||
if [ -f $1 ]
|
||||
then
|
||||
packages=''
|
||||
echo "Installing the build dependencies for the following packages:"
|
||||
while read line
|
||||
do
|
||||
echo $line
|
||||
packages="$packages $line"
|
||||
done < $1
|
||||
echo
|
||||
sudo apt-get build-dep $packages
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
#########################################################
|
||||
# All arguments should be package names, install
|
||||
# their build dependencies.
|
||||
|
||||
sudo apt-get build-dep $*
|
@ -1,53 +0,0 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# Copyright (C) 2007, Canonical Ltd.
|
||||
# Written by Daniel Holbach
|
||||
#
|
||||
# ##################################################################
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; version 3.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# See file /usr/share/common-licenses/GPL-3 for more details.
|
||||
#
|
||||
# ##################################################################
|
||||
|
||||
import os
|
||||
import sys
|
||||
from common import get_launchpad
|
||||
|
||||
USAGE = "grab-attachments <bug numbers>"
|
||||
|
||||
def main():
|
||||
if len(sys.argv) == 1:
|
||||
print >> sys.stderr, USAGE
|
||||
sys.exit(1)
|
||||
|
||||
if sys.argv[1] in ["--help", "-h"]:
|
||||
print USAGE
|
||||
sys.exit(0)
|
||||
launchpad = get_launchpad("ubuntu-dev-tools")
|
||||
for arg in sys.argv[1:]:
|
||||
try:
|
||||
number = int(arg)
|
||||
except:
|
||||
print >> sys.stderr, "'%s' is not a valid bug number." % arg
|
||||
sys.exit(1)
|
||||
b = launchpad.bugs[number]
|
||||
for a in b.attachments:
|
||||
f = a.data.open()
|
||||
filename = os.path.join(os.getcwd(), f.filename)
|
||||
local_file = open(filename, "w")
|
||||
local_file.write(f.read())
|
||||
f.close()
|
||||
local_file.close()
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
124
grab-merge
Executable file
124
grab-merge
Executable file
@ -0,0 +1,124 @@
|
||||
#!/bin/sh
|
||||
# grab-merge - grab a merge
|
||||
#
|
||||
# Copyright © 2008 Canonical Ltd.
|
||||
# Author: Scott James Remnant <scott@ubuntu.com>.
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of version 3 of the GNU General Public License as
|
||||
# published by the Free Software Foundation.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# Uncomment if you have an account on casey
|
||||
#RSYNC=y
|
||||
|
||||
# Uncomment if you know that this deletes all the files in the CWD
|
||||
#EXPERT=y
|
||||
|
||||
# Or uncomment if you want to use named subdirectories
|
||||
SUBDIR=y
|
||||
|
||||
set -e
|
||||
|
||||
MERGE=$1
|
||||
|
||||
if [ -z "$1" -o "$1" = "-h" -o "$1" = "--help" ]; then
|
||||
echo "Usage: $0 <package name>"
|
||||
echo ""
|
||||
echo "grab-merge downloads a merge's packaging files and report from"
|
||||
echo "merges.ubuntu.com, placing them into a new subdirectory for working"
|
||||
echo "from."
|
||||
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ "$SUBDIR" = "y" ]; then
|
||||
[ -d "$MERGE" ] || { mkdir $MERGE; CREATED_DIR=1; }
|
||||
cd $MERGE
|
||||
fi
|
||||
|
||||
if [ "$EXPERT" != "y" ] && [ -n "$(ls)" ]; then
|
||||
echo -n "Are you sure you want to delete all the files in $(pwd) [yN]? "
|
||||
read ANSWER
|
||||
[ "$ANSWER" = "y" ] || exit 1
|
||||
fi
|
||||
|
||||
if [ "${MERGE#lib}" != "${MERGE}" ]; then
|
||||
HASH=${MERGE%${MERGE#????}}
|
||||
else
|
||||
HASH=${MERGE%${MERGE#?}}
|
||||
fi
|
||||
|
||||
if [ "$RSYNC" = "y" ]; then
|
||||
URL="merges.ubuntu.com:/srv/patches.ubuntu.com/merges/$HASH/$MERGE/"
|
||||
rsync --verbose --archive --progress --compress --delete \
|
||||
"$URL" . || { echo "Error while rsyncing $URL"; exit 1; }
|
||||
else
|
||||
rm -rf --one-file-system *
|
||||
wget -nv https://merges.ubuntu.com/$HASH/$MERGE/REPORT || {
|
||||
echo "Package not found on merges.ubuntu.com."
|
||||
[ "$CREATED_DIR" != "1" ] || { cd ..; rmdir $MERGE; }
|
||||
exit 1
|
||||
}
|
||||
|
||||
for NAME in $(sed -n -e "/^ /p" REPORT); do
|
||||
if [ ! -f "$NAME" ]; then
|
||||
echo "Getting $NAME..."
|
||||
URL="https://merges.ubuntu.com/$HASH/$MERGE/$NAME"
|
||||
wget -q "$URL" || { echo "Error downloading $URL"; exit 1; }
|
||||
fi
|
||||
done
|
||||
fi
|
||||
echo
|
||||
|
||||
if grep "^generated: " REPORT >/dev/null; then
|
||||
VERSION=$(sed -n -e "/^generated:/s/^generated: *//p" REPORT)
|
||||
DEB_VENDOR=Ubuntu dpkg-source -x ${MERGE}_${VERSION#*:}.dsc
|
||||
echo
|
||||
else
|
||||
TARBALL=$(sed -n -e "/\.src\.tar\.gz$/p" REPORT)
|
||||
|
||||
echo unpacking $TARBALL
|
||||
tar xf $TARBALL
|
||||
echo
|
||||
fi
|
||||
|
||||
if grep "^ C" REPORT; then
|
||||
echo
|
||||
fi
|
||||
|
||||
echo "#!/bin/sh" > merge-genchanges
|
||||
echo "exec $(sed -n -e '/^ $ /s/^ $ //p' REPORT) \"\$@\"" \
|
||||
>> merge-genchanges
|
||||
chmod +x merge-genchanges
|
||||
|
||||
echo "#!/bin/sh" > merge-buildpackage
|
||||
echo "exec $(sed -n -e '/^ $ /s/^ $ dpkg-genchanges/dpkg-buildpackage/p' REPORT) \"\$@\"" \
|
||||
>> merge-buildpackage
|
||||
chmod +x merge-buildpackage
|
||||
|
||||
echo "#!/bin/sh" > merge-debuild
|
||||
echo "exec $(sed -n -e '/^ $ /s/^ $ dpkg-genchanges/debuild/p' REPORT) \"\$@\"" \
|
||||
>> merge-debuild
|
||||
chmod +x merge-debuild
|
||||
|
||||
echo "Run ../merge-genchanges , ../merge-buildpackage or ../merge-debuild when done"
|
||||
|
||||
if grep "^Vcs-" *.dsc >/dev/null; then
|
||||
echo
|
||||
echo "*** WARNING ***"
|
||||
echo
|
||||
echo "It looks like this package is maintained in revision control:"
|
||||
echo
|
||||
grep "^Vcs-" *.dsc
|
||||
echo
|
||||
echo "You almost certainly don't want to continue without investigating."
|
||||
exit 1
|
||||
fi
|
88
grep-merges
Executable file
88
grep-merges
Executable file
@ -0,0 +1,88 @@
|
||||
#! /usr/bin/python3
|
||||
#
|
||||
# grep-merges - search for pending merges from Debian
|
||||
#
|
||||
# Copyright (C) 2010 Canonical Ltd.
|
||||
# Authors:
|
||||
# - Colin Watson <cjwatson@ubuntu.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# pylint: disable=invalid-name
|
||||
# pylint: enable=invalid-name
|
||||
|
||||
import argparse
|
||||
import json
|
||||
import sys
|
||||
|
||||
from httplib2 import Http, HttpLib2Error
|
||||
|
||||
import ubuntutools.misc
|
||||
from ubuntutools import getLogger
|
||||
|
||||
Logger = getLogger()
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(
|
||||
usage="%(prog)s [options] [string]",
|
||||
description="List pending merges from Debian matching string",
|
||||
)
|
||||
parser.add_argument("string", nargs="?", help=argparse.SUPPRESS)
|
||||
args = parser.parse_args()
|
||||
|
||||
ubuntutools.misc.require_utf8()
|
||||
|
||||
for component in (
|
||||
"main",
|
||||
"main-manual",
|
||||
"restricted",
|
||||
"restricted-manual",
|
||||
"universe",
|
||||
"universe-manual",
|
||||
"multiverse",
|
||||
"multiverse-manual",
|
||||
):
|
||||
url = f"https://merges.ubuntu.com/{component}.json"
|
||||
try:
|
||||
headers, page = Http().request(url)
|
||||
except HttpLib2Error as e:
|
||||
Logger.exception(e)
|
||||
sys.exit(1)
|
||||
if headers.status != 200:
|
||||
Logger.error("%s: %s %s", url, headers.status, headers.reason)
|
||||
sys.exit(1)
|
||||
|
||||
for merge in json.loads(page):
|
||||
package = merge["source_package"]
|
||||
author, uploader = "", ""
|
||||
if merge.get("user"):
|
||||
author = merge["user"]
|
||||
if merge.get("uploader"):
|
||||
uploader = f"({merge['uploader']})"
|
||||
teams = merge.get("teams", [])
|
||||
|
||||
pretty_uploader = f"{author} {uploader}"
|
||||
if (
|
||||
args.string is None
|
||||
or args.string in package
|
||||
or args.string in author
|
||||
or args.string in uploader
|
||||
or args.string in teams
|
||||
):
|
||||
Logger.info("%s\t%s", package, pretty_uploader)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
132
hugdaylist
132
hugdaylist
@ -1,132 +0,0 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (C) 2007 Canonical Ltd., Daniel Holbach
|
||||
# Copyright (C) 2008 Jonathan Patrick Davies <jpds@ubuntu.com>
|
||||
#
|
||||
# ##################################################################
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; version 3.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# See file /usr/share/common-licenses/GPL-3 for more details.
|
||||
#
|
||||
# ##################################################################
|
||||
#
|
||||
#
|
||||
# hugdaylist - produces MoinMoin wiki formatted tables based on a Launchpad bug
|
||||
# list.
|
||||
#
|
||||
# hugdaylist <url>
|
||||
# - produces lists like https://wiki.ubuntu.com/UbuntuBugDay/20070912?action=raw
|
||||
#
|
||||
# hugdaylist -n <howmany> <url>
|
||||
# - will only list <howmany> URLs.
|
||||
|
||||
import os
|
||||
import re
|
||||
import string
|
||||
import sys
|
||||
from optparse import OptionParser
|
||||
|
||||
from common import get_launchpad, translate_web_api, translate_api_web
|
||||
|
||||
def check_args():
|
||||
howmany = -1
|
||||
url = ""
|
||||
|
||||
# Our usage options.
|
||||
usage = "usage: %prog [-n <number>] launchpad-buglist-url"
|
||||
optParser = OptionParser(usage)
|
||||
argsParsed = 0
|
||||
|
||||
# Options - namely just the number of bugs to output.
|
||||
optParser.add_option("-n", "--number", type = "int",
|
||||
dest = "number", help = "Number of entries to output.")
|
||||
|
||||
# Parse arguments.
|
||||
(options, args) = optParser.parse_args()
|
||||
|
||||
# Check if we want a number other than the default.
|
||||
howmany = options.number
|
||||
|
||||
# Check that we have an URL.
|
||||
if not args:
|
||||
print >> sys.stderr, "An URL pointing to a Launchpad bug list is " \
|
||||
"required."
|
||||
optParser.print_help()
|
||||
sys.exit(1)
|
||||
else:
|
||||
url = args[argsParsed]
|
||||
|
||||
return (howmany, url)
|
||||
|
||||
def filter_unsolved(task):
|
||||
# TODO: don't use this filter here, only check status and assignee of
|
||||
# the given task
|
||||
# Filter out special types of bugs:
|
||||
# - https://wiki.ubuntu.com/Bugs/HowToTriage#Special%20types%20of%20bugs
|
||||
subscriptions = set(s.person.name for s in task.bug.subscriptions) #this is expensive, parse name out of self_link instead?
|
||||
if (task.status != "Fix Committed" and
|
||||
(not task.assignee or task.assignee.name in ['motu','desktop-bugs']) and
|
||||
'ubuntu-main-sponsors' not in subscriptions and
|
||||
'ubuntu-universe-sponsors' not in subscriptions and
|
||||
'ubuntu-archive' not in subscriptions):
|
||||
return True
|
||||
return False
|
||||
|
||||
def main():
|
||||
(howmany, url) = check_args()
|
||||
if len(url.split("?", 1)) == 2:
|
||||
# search options not supported, because there is no mapping web ui options <-> API options
|
||||
print >> sys.stderr, "Options in url are not supported, url: %s" %url
|
||||
sys.exit(1)
|
||||
|
||||
launchpad = get_launchpad("ubuntu-dev-tools")
|
||||
api_url = translate_web_api(url, launchpad)
|
||||
try:
|
||||
product = launchpad.load(api_url)
|
||||
except Exception, e:
|
||||
x = getattr(e, "response", {})
|
||||
if response.get("status", None) == "404":
|
||||
print >> sys.stderr, "The URL at '%s' does not appear to be a valid url to a product" %url
|
||||
sys.exit(1)
|
||||
else:
|
||||
raise
|
||||
|
||||
bl = product.searchTasks()
|
||||
|
||||
l = filter(filter_unsolved, bl)
|
||||
|
||||
if not l:
|
||||
print "Bug list of %s is empty." % url
|
||||
sys.exit(0)
|
||||
if howmany == -1:
|
||||
howmany = len(l)
|
||||
|
||||
print """
|
||||
## ||<rowbgcolor="#CCFFCC"> This task is done || somebody || ||
|
||||
## ||<rowbgcolor="#FFFFCC"> This task is assigned || somebody || <status> ||
|
||||
## ||<rowbgcolor="#FFEBBB"> This task isn't || ... || ||
|
||||
## ||<rowbgcolor="#FFCCCC"> This task is blocked on something || somebody || <explanation> ||
|
||||
|
||||
|| Bug || Subject || Triager ||"""
|
||||
|
||||
for i in list(l)[:howmany]:
|
||||
bug = i.bug
|
||||
print '||<rowbgcolor="#FFEBBB"> [%s %s] || %s || ||' % \
|
||||
(translate_api_web(bug.self_link), bug.id, bug.title)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
try:
|
||||
main()
|
||||
except KeyboardInterrupt:
|
||||
print >> sys.stderr, "Aborted."
|
||||
sys.exit(1)
|
256
import-bug-from-debian
Executable file
256
import-bug-from-debian
Executable file
@ -0,0 +1,256 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
# Copyright © 2009 James Westby <james.westby@ubuntu.com>,
|
||||
# 2010, 2011 Stefano Rivera <stefanor@ubuntu.com>
|
||||
#
|
||||
# ##################################################################
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 2
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along
|
||||
# with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# ##################################################################
|
||||
|
||||
# pylint: disable=invalid-name
|
||||
# pylint: enable=invalid-name
|
||||
|
||||
import argparse
|
||||
import logging
|
||||
import re
|
||||
import sys
|
||||
import webbrowser
|
||||
from collections.abc import Iterable
|
||||
from email.message import EmailMessage
|
||||
|
||||
import debianbts
|
||||
from launchpadlib.launchpad import Launchpad
|
||||
|
||||
from ubuntutools import getLogger
|
||||
from ubuntutools.config import UDTConfig
|
||||
|
||||
Logger = getLogger()
|
||||
ATTACHMENT_MAX_SIZE = 2000
|
||||
|
||||
|
||||
def parse_args() -> argparse.Namespace:
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument(
|
||||
"-b",
|
||||
"--browserless",
|
||||
action="store_true",
|
||||
help="Don't open the bug in the browser at the end",
|
||||
)
|
||||
parser.add_argument(
|
||||
"-l",
|
||||
"--lpinstance",
|
||||
metavar="INSTANCE",
|
||||
help="LP instance to connect to (default: production)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"-v", "--verbose", action="store_true", help="Print info about the bug being imported"
|
||||
)
|
||||
parser.add_argument(
|
||||
"-n",
|
||||
"--dry-run",
|
||||
action="store_true",
|
||||
help="Don't actually open a bug (also sets verbose)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"-p", "--package", help="Launchpad package to file bug against (default: Same as Debian)"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--no-conf", action="store_true", help="Don't read config files or environment variables."
|
||||
)
|
||||
parser.add_argument("bugs", nargs="+", help="Bug number(s) or URL(s)")
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def get_bug_numbers(bug_list: Iterable[str]) -> list[int]:
|
||||
bug_re = re.compile(r"bug=(\d+)")
|
||||
|
||||
bug_nums = []
|
||||
|
||||
for bug_num in bug_list:
|
||||
if bug_num.startswith("http"):
|
||||
# bug URL
|
||||
match = bug_re.search(bug_num)
|
||||
if match is None:
|
||||
Logger.error("Can't determine bug number from %s", bug_num)
|
||||
sys.exit(1)
|
||||
bug_num = match.groups()[0]
|
||||
bug_num = bug_num.lstrip("#")
|
||||
bug_nums.append(int(bug_num))
|
||||
|
||||
return bug_nums
|
||||
|
||||
|
||||
def walk_multipart_message(message: EmailMessage) -> tuple[str, list[tuple[int, EmailMessage]]]:
|
||||
summary = ""
|
||||
attachments = []
|
||||
i = 1
|
||||
for part in message.walk():
|
||||
content_type = part.get_content_type()
|
||||
|
||||
if content_type.startswith("multipart/"):
|
||||
# we're already iterating on multipart items
|
||||
# let's just skip the multipart extra metadata
|
||||
continue
|
||||
if content_type == "application/pgp-signature":
|
||||
# we're not interested in importing pgp signatures
|
||||
continue
|
||||
|
||||
if part.is_attachment():
|
||||
attachments.append((i, part))
|
||||
elif content_type.startswith("image/"):
|
||||
# images here are not attachment, they are inline, but Launchpad can't handle that,
|
||||
# so let's add them as attachments
|
||||
summary += f"Message part #{i}\n"
|
||||
summary += f"[inline image '{part.get_filename()}']\n\n"
|
||||
attachments.append((i, part))
|
||||
elif content_type.startswith("text/html"):
|
||||
summary += f"Message part #{i}\n"
|
||||
summary += "[inline html]\n\n"
|
||||
attachments.append((i, part))
|
||||
elif content_type == "text/plain":
|
||||
summary += f"Message part #{i}\n"
|
||||
summary += part.get_content() + "\n"
|
||||
else:
|
||||
raise RuntimeError(
|
||||
f"""Unknown message part
|
||||
Your Debian bug is too weird to be imported in Launchpad, sorry.
|
||||
You can fix that by patching this script in ubuntu-dev-tools.
|
||||
Faulty message part:
|
||||
{part}"""
|
||||
)
|
||||
i += 1
|
||||
|
||||
return summary, attachments
|
||||
|
||||
|
||||
def process_bugs(
|
||||
bugs: Iterable[debianbts.Bugreport],
|
||||
launchpad: Launchpad,
|
||||
package: str,
|
||||
dry_run: bool = True,
|
||||
browserless: bool = False,
|
||||
) -> bool:
|
||||
debian = launchpad.distributions["debian"]
|
||||
ubuntu = launchpad.distributions["ubuntu"]
|
||||
lp_debbugs = launchpad.bug_trackers.getByName(name="debbugs")
|
||||
|
||||
err = False
|
||||
for bug in bugs:
|
||||
ubupackage = bug.source
|
||||
if package:
|
||||
ubupackage = package
|
||||
bug_num = bug.bug_num
|
||||
subject = bug.subject
|
||||
log = debianbts.get_bug_log(bug_num)
|
||||
message = log[0]["message"]
|
||||
assert isinstance(message, EmailMessage)
|
||||
attachments: list[tuple[int, EmailMessage]] = []
|
||||
if message.is_multipart():
|
||||
summary, attachments = walk_multipart_message(message)
|
||||
else:
|
||||
summary = str(message.get_payload())
|
||||
|
||||
target = ubuntu.getSourcePackage(name=ubupackage)
|
||||
if target is None:
|
||||
Logger.error(
|
||||
"Source package '%s' is not in Ubuntu. Please specify "
|
||||
"the destination source package with --package",
|
||||
ubupackage,
|
||||
)
|
||||
err = True
|
||||
continue
|
||||
|
||||
description = f"Imported from Debian bug http://bugs.debian.org/{bug_num}:\n\n{summary}"
|
||||
# LP limits descriptions to 50K chars
|
||||
description = (description[:49994] + " [...]") if len(description) > 50000 else description
|
||||
|
||||
Logger.debug("Target: %s", target)
|
||||
Logger.debug("Subject: %s", subject)
|
||||
Logger.debug("Description: ")
|
||||
Logger.debug(description)
|
||||
for i, attachment in attachments:
|
||||
Logger.debug("Attachment #%s (%s)", i, attachment.get_filename() or "inline")
|
||||
Logger.debug("Content:")
|
||||
if attachment.get_content_type() == "text/plain":
|
||||
content = attachment.get_content()
|
||||
if len(content) > ATTACHMENT_MAX_SIZE:
|
||||
content = (
|
||||
content[:ATTACHMENT_MAX_SIZE]
|
||||
+ f" [attachment cropped after {ATTACHMENT_MAX_SIZE} characters...]"
|
||||
)
|
||||
Logger.debug(content)
|
||||
else:
|
||||
Logger.debug("[data]")
|
||||
|
||||
if dry_run:
|
||||
Logger.info("Dry-Run: not creating Ubuntu bug.")
|
||||
continue
|
||||
|
||||
u_bug = launchpad.bugs.createBug(target=target, title=subject, description=description)
|
||||
for i, attachment in attachments:
|
||||
name = f"#{i}-{attachment.get_filename() or "inline"}"
|
||||
content = attachment.get_content()
|
||||
if isinstance(content, str):
|
||||
# Launchpad only wants bytes
|
||||
content = content.encode()
|
||||
u_bug.addAttachment(
|
||||
filename=name,
|
||||
data=content,
|
||||
comment=f"Imported from Debian bug http://bugs.debian.org/{bug_num}",
|
||||
)
|
||||
d_sp = debian.getSourcePackage(name=package)
|
||||
if d_sp is None and package:
|
||||
d_sp = debian.getSourcePackage(name=package)
|
||||
d_task = u_bug.addTask(target=d_sp)
|
||||
d_watch = u_bug.addWatch(remote_bug=bug_num, bug_tracker=lp_debbugs)
|
||||
d_task.bug_watch = d_watch
|
||||
d_task.lp_save()
|
||||
Logger.info("Opened %s", u_bug.web_link)
|
||||
if not browserless:
|
||||
webbrowser.open(u_bug.web_link)
|
||||
|
||||
return err
|
||||
|
||||
|
||||
def main() -> None:
|
||||
options = parse_args()
|
||||
|
||||
config = UDTConfig(options.no_conf)
|
||||
if options.lpinstance is None:
|
||||
options.lpinstance = config.get_value("LPINSTANCE")
|
||||
|
||||
if options.dry_run:
|
||||
launchpad = Launchpad.login_anonymously("ubuntu-dev-tools")
|
||||
options.verbose = True
|
||||
else:
|
||||
launchpad = Launchpad.login_with("ubuntu-dev-tools", options.lpinstance)
|
||||
|
||||
if options.verbose:
|
||||
Logger.setLevel(logging.DEBUG)
|
||||
|
||||
bugs = debianbts.get_status(get_bug_numbers(options.bugs))
|
||||
|
||||
if not bugs:
|
||||
Logger.error("Cannot find any of the listed bugs")
|
||||
sys.exit(1)
|
||||
|
||||
if process_bugs(bugs, launchpad, options.package, options.dry_run, options.browserless):
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
105
lp-bitesize
Executable file
105
lp-bitesize
Executable file
@ -0,0 +1,105 @@
|
||||
#!/usr/bin/python3
|
||||
"""Add 'bitesize' tag to bugs and add a comment."""
|
||||
|
||||
# Copyright (c) 2011 Canonical Ltd.
|
||||
#
|
||||
# bitesize is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the
|
||||
# Free Software Foundation; either version 3, or (at your option) any
|
||||
# later version.
|
||||
#
|
||||
# bitesize is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with bitesize; see the file COPYING. If not, write to the Free
|
||||
# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
|
||||
# 02110-1301, USA.
|
||||
#
|
||||
# Authors:
|
||||
# Daniel Holbach <daniel.holbach@canonical.com>
|
||||
|
||||
import argparse
|
||||
import sys
|
||||
|
||||
from launchpadlib.errors import HTTPError
|
||||
from launchpadlib.launchpad import Launchpad
|
||||
|
||||
from ubuntutools import getLogger
|
||||
from ubuntutools.config import UDTConfig
|
||||
|
||||
Logger = getLogger()
|
||||
|
||||
|
||||
def error_out(msg, *args):
|
||||
Logger.error(msg, *args)
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
def save_entry(entry):
|
||||
try:
|
||||
entry.lp_save()
|
||||
except HTTPError as error:
|
||||
error_out("%s", error.content)
|
||||
|
||||
|
||||
def tag_bug(bug):
|
||||
bug.tags = bug.tags + ["bitesize"] # LP: #254901 workaround
|
||||
save_entry(bug)
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(usage="%(prog)s [options] <bug number>")
|
||||
parser.add_argument(
|
||||
"-l",
|
||||
"--lpinstance",
|
||||
metavar="INSTANCE",
|
||||
help="Launchpad instance to connect to (default: production)",
|
||||
dest="lpinstance",
|
||||
default=None,
|
||||
)
|
||||
parser.add_argument(
|
||||
"--no-conf",
|
||||
help="Don't read config files or environment variables.",
|
||||
dest="no_conf",
|
||||
default=False,
|
||||
action="store_true",
|
||||
)
|
||||
parser.add_argument("bug_number", help=argparse.SUPPRESS)
|
||||
args = parser.parse_args()
|
||||
config = UDTConfig(args.no_conf)
|
||||
if args.lpinstance is None:
|
||||
args.lpinstance = config.get_value("LPINSTANCE")
|
||||
|
||||
launchpad = Launchpad.login_with("ubuntu-dev-tools", args.lpinstance)
|
||||
if launchpad is None:
|
||||
error_out("Couldn't authenticate to Launchpad.")
|
||||
|
||||
# check that the new main bug isn't a duplicate
|
||||
try:
|
||||
bug = launchpad.bugs[args.bug_number]
|
||||
except HTTPError as error:
|
||||
if error.response.status == 401:
|
||||
error_out(
|
||||
"Don't have enough permissions to access bug %s. %s",
|
||||
args.bug_number,
|
||||
error.content,
|
||||
)
|
||||
else:
|
||||
raise
|
||||
if "bitesize" in bug.tags:
|
||||
error_out("Bug is already marked as 'bitesize'.")
|
||||
bug.newMessage(
|
||||
content="I'm marking this bug as 'bitesize' as it looks "
|
||||
"like an issue that is easy to fix and suitable "
|
||||
"for newcomers in Ubuntu development. If you need "
|
||||
"any help with fixing it, talk to me about it."
|
||||
)
|
||||
bug.subscribe(person=launchpad.me)
|
||||
tag_bug(launchpad.bugs[bug.id]) # fresh bug object, LP: #336866 workaround
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user