Merge lp://staging/~jamalta/launchpad/changesfile-253525 into lp://staging/launchpad
- changesfile-253525
- Merge into devel
Status: | Merged | ||||
---|---|---|---|---|---|
Approved by: | Henning Eggers | ||||
Approved revision: | not available | ||||
Merged at revision: | not available | ||||
Proposed branch: | lp://staging/~jamalta/launchpad/changesfile-253525 | ||||
Merge into: | lp://staging/launchpad | ||||
Diff against target: |
229 lines (+27/-46) 7 files modified
lib/lp/soyuz/stories/ppa/xx-copy-packages.txt (+4/-4) lib/lp/soyuz/stories/ppa/xx-delete-packages.txt (+4/-4) lib/lp/soyuz/stories/ppa/xx-ppa-files.txt (+1/-1) lib/lp/soyuz/stories/ppa/xx-ppa-packages.txt (+3/-3) lib/lp/soyuz/stories/soyuz/xx-distroseries-sources.txt (+12/-31) lib/lp/soyuz/templates/distroseriessourcepackagerelease-index.pt (+2/-2) lib/lp/soyuz/templates/sourcepackagepublishinghistory-listing-archive-detailed.pt (+1/-1) |
||||
To merge this branch: | bzr merge lp://staging/~jamalta/launchpad/changesfile-253525 | ||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Jamal Fanaian (community) | Approve | ||
Henning Eggers (community) | code | Approve | |
Review via email:
|
This proposal supersedes a proposal from 2010-01-18.
Commit message
Renamed "changesfile" throughout various pages in soyuz to "sources.changes" since it is not a word. Updated tests that referenced the term "changesfile".
Description of the change
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Jamal Fanaian (jamalta) wrote : Posted in a previous version of this proposal | # |
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Henning Eggers (henninge) wrote : Posted in a previous version of this proposal | # |
As discussed on irc, please apply extract_text to the tests in xx-distroseries
Come back with an incremental diff for approval, please.
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Jamal Fanaian (jamalta) wrote : | # |
Summary
Bug #253525 explains that the word changesfile does not exist and should be changed for something that makes sense. The PPA page was changed to read sources.changes, so the same example was followed in the other templates that still read changesfile.
Proposed fix
Replace changesfile in templates so that it reads sources.changes instead.
Pre-implementation notes
Discussed with Curtis Hovey who agreed that sources.changes was the best term to use. He also pointed out stories for soyuz that will have to be modified to work with this change.
Implementation details
lib/lp/
lib/lp/
* Changes changesfile term in the content to sources.changes
lib/lp/
lib/lp/
lib/lp/
lib/lp/
* Update stories that referenced pages with the above templates to read sources.changes instead of changesfile.
Tests
bin/test -vvct xx-distroseries
bin/test -vvct xx-copy-packages
bin/test -vvct xx-delete-packages
bin/test -vvct xx-ppa-packages
Demo and Q/A
https:/
https:/
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Jamal Fanaian (jamalta) wrote : | # |
=== modified file 'lib/lp/
--- lib/lp/
+++ lib/lp/
@@ -243,11 +243,8 @@
>>> user_browser.open(
... "http://
... "commercialpack
- >>> changelog = find_tag_by_id(
- ... user_browser.
- >>> print extract_
- <email address hidden>
-
+ >>> print user_browser.
+ http://
Let's check how the page behaves if we no files are present:
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Henning Eggers (henninge) wrote : | # |
Thank you very much for the fix and for taking the time to improve the test as well. BIG BONUS POINTS for that! ;-) Good job!
I will land tha branch for you. Thank you for your contribution-
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Jamal Fanaian (jamalta) wrote : | # |
Looks like I missed a test. Fixed errors from the test.
=== modified file 'lib/lp/
--- lib/lp/
+++ lib/lp/
@@ -91,7 +91,7 @@
Links to files accessible via +files/ proxy in the PPA page.
>>> ppa_links = [
- ... ('(changesfile)',
+ ... ('(sources.
... another_
... ]
Preview Diff
1 | === modified file 'lib/lp/soyuz/stories/ppa/xx-copy-packages.txt' | |||
2 | --- lib/lp/soyuz/stories/ppa/xx-copy-packages.txt 2009-12-11 15:57:14 +0000 | |||
3 | +++ lib/lp/soyuz/stories/ppa/xx-copy-packages.txt 2010-01-18 21:44:16 +0000 | |||
4 | @@ -988,7 +988,7 @@ | |||
5 | 988 | >>> print_ppa_packages(jblack_browser.contents) | 988 | >>> print_ppa_packages(jblack_browser.contents) |
6 | 989 | Source Published Status Series Section Build | 989 | Source Published Status Series Section Build |
7 | 990 | Status | 990 | Status |
9 | 991 | foo - 2.0 (changesfile) ... Published Hoary Base | 991 | foo - 2.0 (sources.changes) ... Published Hoary Base |
10 | 992 | 992 | ||
11 | 993 | >>> foo_pub_id = getPPAPubIDsFor('no-priv', 'foo')[0] | 993 | >>> foo_pub_id = getPPAPubIDsFor('no-priv', 'foo')[0] |
12 | 994 | >>> jblack_browser.getControl( | 994 | >>> jblack_browser.getControl( |
13 | @@ -1063,8 +1063,8 @@ | |||
14 | 1063 | >>> print_ppa_packages(jblack_browser.contents) | 1063 | >>> print_ppa_packages(jblack_browser.contents) |
15 | 1064 | Source Published Status Series Section Build | 1064 | Source Published Status Series Section Build |
16 | 1065 | Status | 1065 | Status |
19 | 1066 | foo - 2.0 (changesfile) Pending Hoary Base i386 | 1066 | foo - 2.0 (sources.changes) Pending Hoary Base i386 |
20 | 1067 | foo - 1.1 (changesfile) Pending Warty Base | 1067 | foo - 1.1 (sources.changes) Pending Warty Base |
21 | 1068 | pmount - 0.1-1 (Newer...) Pending Hoary Editors | 1068 | pmount - 0.1-1 (Newer...) Pending Hoary Editors |
22 | 1069 | pmount - 0.1-1 Pending Warty Editors | 1069 | pmount - 0.1-1 Pending Warty Editors |
23 | 1070 | pmount - 0.1-1 Pending Grumpy Editors | 1070 | pmount - 0.1-1 Pending Grumpy Editors |
24 | @@ -1080,7 +1080,7 @@ | |||
25 | 1080 | >>> print_ppa_packages(jblack_browser.contents) | 1080 | >>> print_ppa_packages(jblack_browser.contents) |
26 | 1081 | Source Published Status Series Section Build | 1081 | Source Published Status Series Section Build |
27 | 1082 | Status | 1082 | Status |
29 | 1083 | foo - 1.1 (changesfile) ... Published Hoary Base | 1083 | foo - 1.1 (sources.changes) ... Published Hoary Base |
30 | 1084 | iceweasel...(...) 2007-07-09 Published Breezy-autotest Editors | 1084 | iceweasel...(...) 2007-07-09 Published Breezy-autotest Editors |
31 | 1085 | 1085 | ||
32 | 1086 | >>> foo_pub_id = getPPAPubIDsFor('mark', 'foo')[0] | 1086 | >>> foo_pub_id = getPPAPubIDsFor('mark', 'foo')[0] |
33 | 1087 | 1087 | ||
34 | === modified file 'lib/lp/soyuz/stories/ppa/xx-delete-packages.txt' | |||
35 | --- lib/lp/soyuz/stories/ppa/xx-delete-packages.txt 2009-09-22 16:39:28 +0000 | |||
36 | +++ lib/lp/soyuz/stories/ppa/xx-delete-packages.txt 2010-01-18 21:44:16 +0000 | |||
37 | @@ -371,7 +371,7 @@ | |||
38 | 371 | >>> print_ppa_packages(user_browser.contents) | 371 | >>> print_ppa_packages(user_browser.contents) |
39 | 372 | Source Published Status Series Section Build | 372 | Source Published Status Series Section Build |
40 | 373 | Status | 373 | Status |
42 | 374 | foo - 1.0 (changesfile) Superseded Hoary Base | 374 | foo - 1.0 (sources.changes) Superseded Hoary Base |
43 | 375 | 375 | ||
44 | 376 | We don't show the publishing details for binary packages, but the | 376 | We don't show the publishing details for binary packages, but the |
45 | 377 | presence of 'Built packages' and the binary filename in the 'Files' | 377 | presence of 'Built packages' and the binary filename in the 'Files' |
46 | @@ -401,7 +401,7 @@ | |||
47 | 401 | >>> print_ppa_packages(user_browser.contents) | 401 | >>> print_ppa_packages(user_browser.contents) |
48 | 402 | Source Published Status Series Section Build | 402 | Source Published Status Series Section Build |
49 | 403 | Status | 403 | Status |
51 | 404 | foo - 1.0 (changesfile) Superseded Hoary Base | 404 | foo - 1.0 (sources.changes) Superseded Hoary Base |
52 | 405 | 405 | ||
53 | 406 | >>> expander_url = user_browser.getLink( | 406 | >>> expander_url = user_browser.getLink( |
54 | 407 | ... id='pub%s-expander' % foo_pub_src.id).url | 407 | ... id='pub%s-expander' % foo_pub_src.id).url |
55 | @@ -440,7 +440,7 @@ | |||
56 | 440 | >>> print_ppa_packages(user_browser.contents) | 440 | >>> print_ppa_packages(user_browser.contents) |
57 | 441 | Source Published Status Series Section Build | 441 | Source Published Status Series Section Build |
58 | 442 | Status | 442 | Status |
60 | 443 | foo - 1.0 (changesfile) Superseded Hoary Base | 443 | foo - 1.0 (sources.changes) Superseded Hoary Base |
61 | 444 | 444 | ||
62 | 445 | The deletion works exactly as it does for PUBLISHED sources, both, | 445 | The deletion works exactly as it does for PUBLISHED sources, both, |
63 | 446 | source and binaries are marked as DELETED and the corresponding | 446 | source and binaries are marked as DELETED and the corresponding |
64 | @@ -479,7 +479,7 @@ | |||
65 | 479 | >>> print_ppa_packages(user_browser.contents) | 479 | >>> print_ppa_packages(user_browser.contents) |
66 | 480 | Source Published Status Series Section Build | 480 | Source Published Status Series Section Build |
67 | 481 | Status | 481 | Status |
69 | 482 | foo - 1.0 (changesfile) Deleted Hoary Base | 482 | foo - 1.0 (sources.changes) Deleted Hoary Base |
70 | 483 | 483 | ||
71 | 484 | >>> expander_url = user_browser.getLink( | 484 | >>> expander_url = user_browser.getLink( |
72 | 485 | ... id='pub%s-expander' % foo_pub_src.id).url | 485 | ... id='pub%s-expander' % foo_pub_src.id).url |
73 | 486 | 486 | ||
74 | === modified file 'lib/lp/soyuz/stories/ppa/xx-ppa-files.txt' | |||
75 | --- lib/lp/soyuz/stories/ppa/xx-ppa-files.txt 2009-11-27 13:09:06 +0000 | |||
76 | +++ lib/lp/soyuz/stories/ppa/xx-ppa-files.txt 2010-01-18 21:44:16 +0000 | |||
77 | @@ -91,7 +91,7 @@ | |||
78 | 91 | Links to files accessible via +files/ proxy in the PPA page. | 91 | Links to files accessible via +files/ proxy in the PPA page. |
79 | 92 | 92 | ||
80 | 93 | >>> ppa_links = [ | 93 | >>> ppa_links = [ |
82 | 94 | ... ('(changesfile)', | 94 | ... ('(sources.changes)', |
83 | 95 | ... another_test_source.sourcepackagerelease.upload_changesfile), | 95 | ... another_test_source.sourcepackagerelease.upload_changesfile), |
84 | 96 | ... ] | 96 | ... ] |
85 | 97 | 97 | ||
86 | 98 | 98 | ||
87 | === modified file 'lib/lp/soyuz/stories/ppa/xx-ppa-packages.txt' | |||
88 | --- lib/lp/soyuz/stories/ppa/xx-ppa-packages.txt 2009-12-14 13:49:03 +0000 | |||
89 | +++ lib/lp/soyuz/stories/ppa/xx-ppa-packages.txt 2010-01-18 21:44:16 +0000 | |||
90 | @@ -96,7 +96,7 @@ | |||
91 | 96 | Source Published Status Series Section Build | 96 | Source Published Status Series Section Build |
92 | 97 | Status | 97 | Status |
93 | 98 | cdrkit - 1.0 2007-07-09 Published Breezy-a... Editors i386 | 98 | cdrkit - 1.0 2007-07-09 Published Breezy-a... Editors i386 |
95 | 99 | ice...(changesfile) 2007-07-09 Published Warty Editors i386 | 99 | ice...(sources.changes) 2007-07-09 Published Warty Editors i386 |
96 | 100 | pmount - 0.1-1 2007-07-09 Published Warty Editors | 100 | pmount - 0.1-1 2007-07-09 Published Warty Editors |
97 | 101 | 101 | ||
98 | 102 | Each data row is expandable to contain some sections containing: | 102 | Each data row is expandable to contain some sections containing: |
99 | @@ -289,7 +289,7 @@ | |||
100 | 289 | >>> print_archive_package_rows(anon_browser.contents) | 289 | >>> print_archive_package_rows(anon_browser.contents) |
101 | 290 | Source Published Status Series Section Build | 290 | Source Published Status Series Section Build |
102 | 291 | Status | 291 | Status |
104 | 292 | i...(changesfile) 2007-07-09 Superseded Warty Editors | 292 | i...(sources.changes) 2007-07-09 Superseded Warty Editors |
105 | 293 | pmount - 0.1-1 2007-07-09 Deleted Warty Editors | 293 | pmount - 0.1-1 2007-07-09 Deleted Warty Editors |
106 | 294 | 294 | ||
107 | 295 | The 'Any Status' filter is also available, so the user can search over | 295 | The 'Any Status' filter is also available, so the user can search over |
108 | @@ -301,7 +301,7 @@ | |||
109 | 301 | Source Published Status Series Section Build | 301 | Source Published Status Series Section Build |
110 | 302 | Status | 302 | Status |
111 | 303 | cdrkit - 1.0 2007-07-09 Published Breezy-a... Editors i386 | 303 | cdrkit - 1.0 2007-07-09 Published Breezy-a... Editors i386 |
113 | 304 | ic...(changesfile) 2007-07-09 Superseded Warty Editors | 304 | ic...(sources.changes) 2007-07-09 Superseded Warty Editors |
114 | 305 | pmount - 0.1-1 2007-07-09 Deleted Warty Editors | 305 | pmount - 0.1-1 2007-07-09 Deleted Warty Editors |
115 | 306 | 306 | ||
116 | 307 | 307 | ||
117 | 308 | 308 | ||
118 | === modified file 'lib/lp/soyuz/stories/soyuz/xx-distroseries-sources.txt' | |||
119 | --- lib/lp/soyuz/stories/soyuz/xx-distroseries-sources.txt 2009-11-18 02:58:23 +0000 | |||
120 | +++ lib/lp/soyuz/stories/soyuz/xx-distroseries-sources.txt 2010-01-18 21:44:16 +0000 | |||
121 | @@ -212,14 +212,8 @@ | |||
122 | 212 | 212 | ||
123 | 213 | With the possibility to download the entire changesfile (if available): | 213 | With the possibility to download the entire changesfile (if available): |
124 | 214 | 214 | ||
133 | 215 | >>> print find_tag_by_id(browser.contents, 'changesfile') | 215 | >>> print extract_text(find_tag_by_id(browser.contents, 'changesfile')) |
134 | 216 | <div id="changesfile"> | 216 | View sources.changes |
127 | 217 | <p> | ||
128 | 218 | <a href="http://localhost:58000/52/mozilla-firefox_0.9_i386.changes"> | ||
129 | 219 | View changesfile | ||
130 | 220 | </a> | ||
131 | 221 | </p> | ||
132 | 222 | </div> | ||
135 | 223 | 217 | ||
136 | 224 | And also download the files contained in this source, like '.orig', | 218 | And also download the files contained in this source, like '.orig', |
137 | 225 | '.diff' and the DSC: | 219 | '.diff' and the DSC: |
138 | @@ -249,11 +243,8 @@ | |||
139 | 249 | >>> user_browser.open( | 243 | >>> user_browser.open( |
140 | 250 | ... "http://launchpad.dev/ubuntu/breezy-autotest/+source/" | 244 | ... "http://launchpad.dev/ubuntu/breezy-autotest/+source/" |
141 | 251 | ... "commercialpackage/1.0-1") | 245 | ... "commercialpackage/1.0-1") |
147 | 252 | >>> changelog = find_tag_by_id( | 246 | >>> print user_browser.getLink('foo.bar@canonical.com').url |
148 | 253 | ... user_browser.contents, 'commercialpackage_1.0-1') | 247 | http://launchpad.dev/~name16 |
144 | 254 | >>> changelog.find('a') | ||
145 | 255 | <a href="http://launchpad.dev/~name16" class="sprite person"> foo.bar@canonical.com</a> | ||
146 | 256 | |||
149 | 257 | 248 | ||
150 | 258 | Let's check how the page behaves if we no files are present: | 249 | Let's check how the page behaves if we no files are present: |
151 | 259 | 250 | ||
152 | @@ -264,15 +255,11 @@ | |||
153 | 264 | A string is presented in both 'changesfile' and 'files' sections, | 255 | A string is presented in both 'changesfile' and 'files' sections, |
154 | 265 | warning the user that no file is available: | 256 | warning the user that no file is available: |
155 | 266 | 257 | ||
160 | 267 | >>> print find_tag_by_id(browser.contents, 'changesfile') | 258 | >>> print extract_text(find_tag_by_id(browser.contents, 'changesfile')) |
161 | 268 | <div id="changesfile"> | 259 | No sources.changes available. |
158 | 269 | <p>No changesfile available.</p> | ||
159 | 270 | </div> | ||
162 | 271 | 260 | ||
167 | 272 | >>> print find_tag_by_id(browser.contents, 'files') | 261 | >>> print extract_text(find_tag_by_id(browser.contents, 'files')) |
168 | 273 | <div id="files"> | 262 | No files available for download. |
165 | 274 | <p>No files available for download.</p> | ||
166 | 275 | </div> | ||
169 | 276 | 263 | ||
170 | 277 | 264 | ||
171 | 278 | = DistroSeries Partner Source Package Pages = | 265 | = DistroSeries Partner Source Package Pages = |
172 | @@ -291,11 +278,8 @@ | |||
173 | 291 | This page provides its versions publications organised by pocket. | 278 | This page provides its versions publications organised by pocket. |
174 | 292 | We can see 'commercialpackage' is published once in pocket RELEASE: | 279 | We can see 'commercialpackage' is published once in pocket RELEASE: |
175 | 293 | 280 | ||
181 | 294 | >>> print find_tag_by_id(browser.contents, 'publishing_history') | 281 | >>> print browser.getLink('commercialpackage 1.0-1').url |
182 | 295 | <dl id="publishing_history"> | 282 | http://launchpad.dev/ubuntu/breezy-autotest/+source/commercialpackage/1.0-1 |
178 | 296 | ... | ||
179 | 297 | <a href="/ubuntu/breezy-autotest/+source/commercialpackage/1.0-1">commercialpackage 1.0-1</a> | ||
180 | 298 | ... | ||
183 | 299 | 283 | ||
184 | 300 | The user can also download the files for the "currentrelease" (last | 284 | The user can also download the files for the "currentrelease" (last |
185 | 301 | published version) if they are available: | 285 | published version) if they are available: |
186 | @@ -372,11 +356,8 @@ | |||
187 | 372 | 356 | ||
188 | 373 | With the possibility to download the entire changesfile (if available): | 357 | With the possibility to download the entire changesfile (if available): |
189 | 374 | 358 | ||
195 | 375 | >>> print find_tag_by_id(browser.contents, 'changesfile') | 359 | >>> print browser.getLink('View sources.changes').url |
196 | 376 | <div id="changesfile"> | 360 | http://localhost:58000/65/commercialpackage_1.0-1_source.changes |
192 | 377 | ... | ||
193 | 378 | <a href="http://localhost:58000/65/commercialpackage_1.0-1_source.changes"> | ||
194 | 379 | ... | ||
197 | 380 | 361 | ||
198 | 381 | And also download the files contained in this source, like '.orig', | 362 | And also download the files contained in this source, like '.orig', |
199 | 382 | '.diff' and the DSC: | 363 | '.diff' and the DSC: |
200 | 383 | 364 | ||
201 | === modified file 'lib/lp/soyuz/templates/distroseriessourcepackagerelease-index.pt' | |||
202 | --- lib/lp/soyuz/templates/distroseriessourcepackagerelease-index.pt 2009-10-27 03:23:05 +0000 | |||
203 | +++ lib/lp/soyuz/templates/distroseriessourcepackagerelease-index.pt 2010-01-18 21:44:16 +0000 | |||
204 | @@ -50,10 +50,10 @@ | |||
205 | 50 | <div id="changesfile" tal:define="changesfile context/changesfile"> | 50 | <div id="changesfile" tal:define="changesfile context/changesfile"> |
206 | 51 | <p tal:condition="changesfile"> | 51 | <p tal:condition="changesfile"> |
207 | 52 | <a tal:attributes="href changesfile/http_url"> | 52 | <a tal:attributes="href changesfile/http_url"> |
209 | 53 | View changesfile | 53 | View sources.changes |
210 | 54 | </a> | 54 | </a> |
211 | 55 | </p> | 55 | </p> |
213 | 56 | <p tal:condition="not: changesfile">No changesfile available.</p> | 56 | <p tal:condition="not: changesfile">No sources.changes available.</p> |
214 | 57 | </div> | 57 | </div> |
215 | 58 | 58 | ||
216 | 59 | </div> | 59 | </div> |
217 | 60 | 60 | ||
218 | === modified file 'lib/lp/soyuz/templates/sourcepackagepublishinghistory-listing-archive-detailed.pt' | |||
219 | --- lib/lp/soyuz/templates/sourcepackagepublishinghistory-listing-archive-detailed.pt 2009-12-10 15:19:03 +0000 | |||
220 | +++ lib/lp/soyuz/templates/sourcepackagepublishinghistory-listing-archive-detailed.pt 2010-01-18 21:44:16 +0000 | |||
221 | @@ -35,7 +35,7 @@ | |||
222 | 35 | <a tal:condition="changesfile" | 35 | <a tal:condition="changesfile" |
223 | 36 | tal:attributes="href changesfile/http_url; | 36 | tal:attributes="href changesfile/http_url; |
224 | 37 | title changesfile/filename" | 37 | title changesfile/filename" |
226 | 38 | >(changesfile)</a> | 38 | >(sources.changes)</a> |
227 | 39 | </tal:view_changesfile> | 39 | </tal:view_changesfile> |
228 | 40 | </td> | 40 | </td> |
229 | 41 | <td tal:condition="context/archive/owner/isTeam" | 41 | <td tal:condition="context/archive/owner/isTeam" |
Summary
Bug #253525 explains that the word changesfile does not exist and should be changed for something that makes sense. The PPA page was changed to read sources.changes, so the same example was followed in the other templates that still read changesfile.
Proposed fix
Replace changesfile in templates so that it reads sources.changes instead.
Pre-implementation notes
Discussed with Curtis Hovey who agreed that sources.changes was the best term to use. He also pointed out stories for soyuz that will have to be modified to work with this change.
Implementation details
lib/lp/ soyuz/templates /distroseriesso urcepackagerele ase-index. pt soyuz/templates /sourcepackagep ublishinghistor y-listing- archive- detailed. pt
lib/lp/
* Changes changesfile term in the content to sources.changes
lib/lp/ soyuz/stories/ ppa/xx- copy-packages. txt soyuz/stories/ ppa/xx- delete- packages. txt soyuz/stories/ ppa/xx- ppa-packages. txt soyuz/stories/ soyuz/xx- distroseries- sources. txt
lib/lp/
lib/lp/
lib/lp/
* Update stories that referenced pages with the above templates to read sources.changes instead of changesfile.
Tests
bin/test -vvct xx-distroseries -sources
bin/test -vvct xx-copy-packages
bin/test -vvct xx-delete-packages
bin/test -vvct xx-ppa-packages
Demo and Q/A
https:/ /launchpad. dev/~cprov/ +archive/ ppa/+packages /launchpad. dev/ubuntu/ hoary/+ source/ pmount/ 0.1-1
https:/