From Fedora Project Wiki

Revision as of 16:02, 11 March 2010 by Mikeb (talk | contribs) (Created page with ' == Implementation Ideas == === Koji Work === ==== Defining a KoPeR ==== A user would run <code>koji add-personal-repo [repo-name]</code> to create a new repo. This would cre...')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Implementation Ideas

Koji Work

Defining a KoPeR

A user would run koji add-personal-repo [repo-name] to create a new repo. This would create a new, empty directory under /mnt/koji/personal-repos/[username]/[repo-name]. There would be a configurable maximum number of KoPeRs any single user would be allowed to create at one time, to avoid people abusing resources. This number would be tracked via the contents of the personal-repos/[username]/ directory, and would not require any schema changes.

Building into a KoPeR

All KoPeR builds are by definition scratch builds (otherwise you could just use a regular tag with the appropriate inheritance setup). To initiate a KoPeR build, a user would run koji build --scratch=[repo-name] [build-target] [SCM-URL-or-srpm-path]. This would tell Koji to add the [repo-name] repo to the mock config for the scratch build, so the contents of the KoPeR would be available as build dependencies.

When the build is complete, the rpms would be moved to personal-repos/[username]/[repo-name]/[arch]/ according to their arch. If an rpm with the same name is already there, it will be overwritten. A newRepo task will then be initiated to create/regenerate the repodata all rpms under personal-repos/[username]/[repo-name]. Optionally, repoview data may also be generated.