Fedora Slipstream

From FedoraProject

Jump to: navigation, search

Contents

Prereqs

Where to start


Scripts to start on

  1. I make a srpm of what I want
  2. it goes to koji for whatever build target
    • getting koji to refer to arbitary other locations needs to be thought of here
    • Really build target expansion? F-12 + updates + bob-kopers
  3. those pkgs (if any) come back and I make a repo out of them
    • as part of this, create an rpm for the repo that people can install
  4. the repo shows up on fedorapeople
  5. .... profit?
  6. Add static repo list (cron job - like with public git repos)

Design work

KDE RedHat

kde-redhat is a large external repo, ask rdieter how he manages it so far.

All I'm doing really is building stuff, either in koji or my own mock instance. Grabbing those rpms, signing them, stuffing it into repos. Whatever kopers end up being, can't be much worse than what I'm doing now. honestly.

imo kde redhat is beyond the scope of kopers - it's WAY beyond 1GB per user - skv

Koji Personal Repos

Overview

Koji Personal Repos (KoPeR) is a concept to allow Fedora maintainers to create personal repos of packages to build against and share with others.

Usage Case

Resources

A Fedora maintainer would be alloted up to 1GiB of storage for package repos. Packages can be built for any arch Fedora builds for (but doesn't have to be all of them). koper repos would have repoview content for easy browsing and subscribing to changes.

Work Flow

  1. Bob requests his account becomes koper capable.
    • this seems like a non-issue - but it may mean something for koji
  2. Bob constructs an srpm of gtk2
    • not kopers issue
  3. Bob issues a command (koper build "gtk2newness" gtk2.src.rpm ?) to build the gtk2 package.
    • first this checks the pkg and looks at the License tag to make sure it's not something we cannot trust.
    • this just calls koji, ultimately
    • Notes about building from SCM rather than SRPM; SCM server needs to be accesible from builders (currently, within Fedora's network)
    • Building from SCM is not necessarily as important as being able to share changes via the SCM. if I can clone the SCM repo and you can as well to make changes but we create an SRPM as an intermediate step for build that's not much of a burden.
  4. Koji creates a buildroot based upon the rawhide collection and any packages in Bob's "gtknewness" koper.
    • two issues here: getting koji to use arbitrary repos
    • not having the above beat the crap out of fedorapeople with koji constantly hitting it for pkgs/repodata
  5. Koji builds Bob's gtk2
  6. $TOOL takes the koji built package and adds it to Bob's "gtknewness" koper, recreating yum repodata and repoview content.
    • this means xferring the file back to the system or getting koji to build repodata
    • need something in here for SIGNING those pkgs, too.
      • Probably want a separate key for each kopers repo.
      • why a separate key? if I'm building these for ME and mine there is no reason why I shouldn't use the same key
      • Repos can have multiple people adding to them so there needs to be one key for it.
      • you could use the same key for all repositories that only you contribute to but then we'd need to keep track of two different types of repository
  7. Bob proceeds to create srpms for various other packages and builds them in koji against his "gtknewness" koper.
    • having koji know the repo exists or to have it know when the repo no longer exists.
  8. Bob shares his "gtknewness" koper with the world
    • this is just advertising a url
  9. Bob creates a Desktop Live image based on rawhide and his "gtknewness" koper and shares that with the world too.
  10. Bob fixes bugs with his gtk2 and continues to do builds until everybody is happy
  11. Bob commits his gtk2 changes to package SCM and does a normal koji build.
  12. Bob profits.
    • These last 4 items don't matter at all they are outside of scope, imo.

Content

Content within ones koper(s) must be content acceptable for distribution within Fedora.

Changes Needed

To create a koper system various tools in the Fedora infrastructure would need to have changes made to them.

Koji

In order to build packages against a koper, koji would need to gain the ability to reference external yum repos for (at least) scratch builds.

fedorapeople.org

In order to support kopers, fedorapeople.org would need to be able to:

Trademark Guidelines

We'd like to enable people to make development like spins of Fedora that include content from kopers. Since all content in kopers has to adhere to Fedora's guidelines it should be safe. We just need terms in the trademark that allow for this kind of spin creation and sharing so that these people don't have to spend time re-branding and can focus more on development.

New Tools

A few new tools might be needed for dealing with kopers.

Tool to build

A script or make target would be needed to initiate a koper build. This is necessary to tell koji what koper to build against, as well as to get the results of the built added to said koper.

Tool to add to koper

A tool would be needed to take the koji scratch build output and add it to ones koper, signaling fedorapeople.org to create repodata and repoview content. It should be able to replace older builds of the same package to save quota space. This tool could also be used to add already built packages to an existing koper without having to go through a koji build.

Version 2.0

Here are some thoughts for future enhancements once we prove that we can walk.

Comments

If you wish to leave a comment about this concept, you can do here. I'll try to address them as I can.