{"eid":"launchpad","name":"Launchpad PPA","domain":"launchpad.net","resolved_by":"domain","topics":["storage"],"n_records":2,"best_vorder":1,"review":null,"aliases":["Launchpad PPA","Launchpad PPA (Ubuntu Personal Package Archive)","Launchpad project file releases (+download area)","launchpad.net"],"records":[{"rid":"storage/launchpad-ppa","card":{"rid":"storage/launchpad-ppa","eid":"launchpad","topic":"storage","slug":"launchpad-ppa","provider":"Launchpad PPA (Ubuntu Personal Package Archive)","url":"https://launchpad.net/ubuntu/+ppas","domain":"launchpad.net","category":"paas","tier":null,"verdict":"qualifies-with-caveat","vorder":1,"grp":"usable","confidence":"reported","binding":"per-ip-shaping","identity_kind":"email","identity_basis":"defaulted","needs_card":null,"needs_phone":null,"needs_id":null,"needs_institution":null,"country":null,"crypto":null,"interfaces":"rest,ftp,rsync,rclone","egress_metered":0,"per_object_bytes":null,"retention_days":null,"verified_at":"2026-10-21T00:00:00.000Z","verified_basis":"inherited","checked_on":"2026-10-21","stale_on":"2026-11-04","n_evidence":5,"usd_month":null,"usd_per_tb_month":null,"summary":"8 GiB of disk per PPA - current official reference: 'Disk space | 8 GiB; larger quotas considered on request at https://answers.launchpad.net/launchpad'. (Hi...","duplicate_of":null,"n_unknown":8},"record":{"topic":"storage","slug":"launchpad-ppa","provider":"Launchpad PPA (Ubuntu Personal Package Archive)","url":"https://launchpad.net/ubuntu/+ppas","category":"paas","free_tier":{"stated":"8 GiB of disk per PPA - current official reference: 'Disk space | 8 GiB; larger quotas considered on request at https://answers.launchpad.net/launchpad'. (Historical: PPAs were raised to a 2 GiB minimum in 2010 per the Launchpad blog; the 8 GiB figure is the current documented one.) 'PPAs per owner: One or more per user or team; each has its own URL.'","unit":"GiB","metered_on":"stored-bytes","source_url":"https://launchpad-help.readthedocs.io/en/latest/how-to/distribute-ubuntu-software.html","read_on":"2026-10-21","notes":null},"per_object_cap":{"stated":"not stated","source_url":"https://launchpad-help.readthedocs.io/en/latest/how-to/distribute-ubuntu-software.html","notes":"not stated"},"retention":{"stated":"This is the binding constraint - you cannot push an arbitrary tarball; everything must be a signed source package (.dsc + orig.tar.gz + debian.tar.gz), so a 4 GB blob becomes one 4 GB .orig.tar.gz (allowed, but must be a valid Debian source package). retention: indefinite - 'A published package remains available until ..","source_url":"https://launchpad-help.readthedocs.io/en/latest/how-to/distribute-ubuntu-software.html","notes":"not stated"},"egress":{"terms":"Free: 'Data transfer | No fixed cap; unusual volumes may trigger contact from Launchpad.' Served from ppa.launchpadcontent.net with no billing.","metered":false},"interface":["rest","ftp","rsync","rclone"],"interface_detail":"rest","tooling":"`dput`/`dput-ng` (rsync+ftp upload to ppa.launchpad.net), `apt`/`deb-src` for consumption, Launchpad REST API + `launchpadlib`. No rclone backend.","chaining":"N PPAs per owner ('one or more per user or team') x 8 GiB each x unlimited free Launchpad accounts and teams. A team can own multiple PPAs, so 8 GiB x N. For 20 TiB archive that is ~2,560 PPAs - achievable across accounts/teams but operationally heavy, and each is a separate signing key/deb repository.","limits":[{"kind":"per-ip-shaping","value":"70 KB/s","source":"https://launchpad-help.readthedocs.io/en/latest/how-to/distribute-ubuntu-software.html"}],"limits_note":"per-object-cap: 'Uploadable artefacts | Source packages only; pre-built binary uploads are rejected' and 'Package formats | .deb only'. This is the binding constraint - you cannot push an arbitrary tarball; everything must be a signed source package (.dsc + orig.tar.gz + debian.tar.gz), so a 4 GB blob becomes one 4 GB .orig.tar.gz (allowed, but must be a valid Debian source package). retention: indefinite - 'A published package remains available until ... the owner removes it, or a later upload supersedes it.' request-rate: not documented; download is plain HTTP. Measured single-stream throughput on a real PPA .deb was only ~70 KB/s.","identity_cost":{"kind":"email","detail":null,"country":null},"reliability_note":"The read path works and supports ranges (verified 206 on a 1 MB range of a real .deb) but single-connection speed was poor (~70,666 B/s over 15 s). Batch/sharded fetch needed. Upload requires GPG-signed source packages - no arbitrary blob PUT. help.launchpad.net and blog.launchpad.net returned 503 to the reader all session (used archive captures instead), so the live help site is unreliable to fetch programmatically.","confidence":"reported","confidence_note":"One page read moves it to documented.","evidence":[{"url":"https://launchpad-help.readthedocs.io/en/latest/how-to/distribute-ubuntu-software.html","date":"2026-10-21","proved":"quotas table: 'Disk space | 8 GiB; larger quotas considered on request'; 'Data transfer | No fixed cap'; 'PPAs per owner | One or more per user or team'"},{"url":null,"date":"2026-10-21","proved":"(captured 2024-12-11) - 'we've gone ahead and upgraded every PPA to a minimum of 2 GiB'"},{"url":"http://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu/pool/main/p/python3.12/","date":"2026-10-21","proved":"probe: GET -> 200, directory listing of real .deb files"},{"url":null,"date":"2026-10-21","proved":"probe: ranged GET bytes 0-1048575 on libpython3.12-dbg_3.12.15-1+jammy1_amd64.deb -> 206, 1,048,576 bytes, 70,666 B/s"},{"url":"http://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu/dists/noble/Release","date":"2026-10-21","proved":"probe: GET -> 200, 16,928 bytes (real Release file)"}],"verdict":"qualifies-with-caveat","verified_at":"2026-10-21T00:00:00.000Z","notes":"8 GiB of disk per PPA - current official reference: 'Disk space | 8 GiB; larger quotas considered on request at https://answers.launchpad.net/launchpad'. (Historical: PPAs were raised to a 2 GiB minimum in 2010 per the Launchpad blog; the 8 GiB figure is the current documented one.) 'PPAs per owner: One or more per user or team; each has its own URL.'","extras":{},"binding":"per-ip-shaping","binding_note":"one stream is shaped, and a user's throughput is the shaped rate times the number of streams"},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":8.0,"unit":"GiB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.limits[0].value","kind":"limit:per-ip-shaping","num":70.0,"unit":"KB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"}],"unknown":[["$.evidence[1].url","private-url"],["$.evidence[3].url","private-url"],["$.free_tier.notes","process"],["$.identity_cost.detail","defaulted"],["$.identity_cost.kind","identity-defaulted"],["$.per_object_cap.notes","not-extracted"],["$.per_object_cap.stated","not-extracted"],["$.retention.notes","not-extracted"]],"history":[],"drift":[]},{"rid":"storage/launchpad-project-file-releases","card":{"rid":"storage/launchpad-project-file-releases","eid":"launchpad","topic":"storage","slug":"launchpad-project-file-releases","provider":"Launchpad project file releases (+download area)","url":"https://launchpad.net","domain":"launchpad.net","category":"paas","tier":null,"verdict":"qualifies-with-caveat","vorder":1,"grp":"usable","confidence":"reported","binding":"per-object-cap","identity_kind":"institution","identity_basis":"stated","needs_card":0,"needs_phone":0,"needs_id":0,"needs_institution":1,"country":null,"crypto":null,"interfaces":"rest,sftp,rsync","egress_metered":0,"per_object_bytes":1073741824,"retention_days":null,"verified_at":"2026-10-21T00:00:00.000Z","verified_basis":"inherited","checked_on":"2026-10-21","stale_on":"2026-11-04","n_evidence":4,"usd_month":null,"usd_per_tb_month":null,"summary":"1 GiB PER FILE in the project *file release* area - a separate, much smaller surface than the PPA. The manual says: 'Each individual file must be no more tha...","duplicate_of":null,"n_unknown":5},"record":{"topic":"storage","slug":"launchpad-project-file-releases","provider":"Launchpad project file releases (+download area)","url":"https://launchpad.net","category":"paas","free_tier":{"stated":"1 GiB PER FILE in the project *file release* area - a separate, much smaller surface than the PPA. The manual says: 'Each individual file must be no more than 1 GiB and you must be the: project maintainer / project driver / or the series release manager.' There is no published total-per-project cap; the unit of accounting is the individual release file. (The 8 GiB figure widely quoted for Launchpad is the PPA disk quota, verified in round 2 - it does not govern file releases.)","unit":"GiB","metered_on":"unstated","source_url":"https://documentation.ubuntu.com/launchpad/user/explanation/projects/publishing-files/","read_on":"2026-10-21","notes":null},"per_object_cap":{"stated":"1 GiB PER FILE","bytes":1073741824,"source_url":"https://documentation.ubuntu.com/launchpad/user/explanation/projects/publishing-files/","notes":"not stated"},"retention":{"stated":"not stated","source_url":"https://documentation.ubuntu.com/launchpad/user/explanation/projects/publishing-files/","notes":"not stated"},"egress":{"terms":"Free, no billing. Files are served from launchpadlibrarian.net behind a 303 redirect. No published transfer cap; round 2 measured ~70 KB/s single-stream on a PPA .deb, which is a throughput problem rather than a quota one.","metered":false},"interface":["rest","sftp","rsync"],"interface_detail":"rest","tooling":"Web upload per release ('Add download file') is the documented path - no SFTP/rsync equivalent to Savannah or SourceForge for the release area. Automation goes through the Launchpad web service API: `launchpadlib` (Python), the `+download` URL shape, and hardware-bound API tokens. Consumer side is plain HTTPS GET with an MD5 and optional GPG signature per file.","chaining":"unlimited projects x unlimited series x unlimited releases x 1 GiB per file. At 1 GiB granularity 500 GB is 500 files - feasible but operationally noisy, and every upload is a web action unless scripted via launchpadlib. Distinct from the PPA path (8 GiB/PPA, .deb-only, dput/rsync upload).","limits":[{"kind":"per-object-cap","value":"1 GiB PER FILE","source":"https://documentation.ubuntu.com/launchpad/user/explanation/projects/publishing-files/"}],"limits_note":"per-object-cap: 1 GiB hard per release file. Also content-typed: files must fall into 'code release tarball / installer files / README or other documentation / changelog file / release notes' - arbitrary blobs are off-spec. retention: indefinite per release. request-rate: not documented for the file area; the docs page itself is flagged 'migrated from help.launchpad.net as is, and has not yet been revised'.","identity_cost":{"kind":"institution","detail":"derived from the record's prose, not from an identity field, and no signup was executed: padlibrarian.net -> 200, 419,427 bytes). Write path is web/API only with no bulk transport, so it is a worse fit than a forge with SFTP. The docs being stale-and-unrevised is a real","country":null},"reliability_note":"Read path verified working end-to-end (303 -> launchpadlibrarian.net -> 200, 419,427 bytes). Write path is web/API only with no bulk transport, so it is a worse fit than a forge with SFTP. The docs being stale-and-unrevised is a real risk: the 1 GiB number is from a migrated page, not a maintained limits table.","confidence":"reported","confidence_note":"One page read moves it to documented.","evidence":[{"url":"https://documentation.ubuntu.com/launchpad/user/explanation/projects/publishing-files/","date":"2026-10-21","proved":"'Each individual file must be no more than 1 GiB'; file must be one of code release tarball / installer / README / changelog / release notes"},{"url":null,"date":"2026-10-21","proved":"same page - 'This document has been migrated from help.launchpad.net as is, and has not yet been revised.'"},{"url":"https://launchpad.net/libeatmydata/trunk/release-105/+download/libeatmydata-105.tar.gz","date":"2026-10-21","proved":"probe: GET -> 303 to https://launchpadlibrarian.net/188644793/libeatmydata-105.tar.gz -> 200, Content-Length 419427"},{"url":"https://launchpad-help.readthedocs.io/en/latest/how-to/distribute-ubuntu-software.html","date":"2026-10-21","proved":"round-2 cross-check: PPA quota is 8 GiB/PPA with GPG-signed source packages only ()"}],"verdict":"qualifies-with-caveat","verified_at":"2026-10-21T00:00:00.000Z","notes":"1 GiB PER FILE in the project *file release* area - a separate, much smaller surface than the PPA. The manual says: 'Each individual file must be no more than 1 GiB and you must be the: project maintainer / project driver / or the series release manager.' There is no published total-per-project cap; the unit of accounting is the individual release file. (The 8 GiB figure widely quoted for Launchpad is the PPA disk quota, verified in round 2 - it does not govern file releases.)","extras":{},"binding":"per-object-cap","binding_note":"the per-object cap sets the shard size and therefore the object count; it bounds the total more tightly than any headline quota"},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":1.0,"unit":"GiB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.limits[0].value","kind":"limit:per-object-cap","num":1.0,"unit":"GiB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"}],"unknown":[["$.evidence[1].url","private-url"],["$.free_tier.notes","process"],["$.per_object_cap.notes","not-extracted"],["$.retention.notes","not-extracted"],["$.retention.stated","not-extracted"]],"history":[],"drift":[]}]}