RPMForge Build System """"""""""""""""""""" Submitting packages + People can submit package-requests, SPEC files or SRPMs using a web-interface. An existing (trusted) SPEC owner can pick up the submission and take responsibility over the package. Package ownership + SPEC owners have authority over a set of packages, maintain the SPEC-file and packages in subversion and manage the bug-tracking system for their packages. The SPEC owner decides ultimately what goes inside a SPEC file and what doesn't. Building packages (Farm) + Builders are people that 'donate' hardware with the sole purpose of building packages from subversion for a specific platform (dist/arch). They take responsibility for the specifics to build all packages for their platform. + Builders have installed a build environment for each platform that they maintain and run decentralized build scripts (farm) to automatically update their subversion tree, check for newly committed changes (by SPEC owners) and build new packages for their platform(s). + The buildtool should allow easy setup of the whole build environment and consist of tools to easy maintaining build environments. The buildtool should be simple so other people can mass build in parallel. Quality assurance + 'unstable' access is public, people interested to join are expected to help out in QA. Reporting bugs via a bug tracking system or, if they have subversion access, via subversion. + Communication is very important, SPEC owners are expected to have a clear view of what changes have been made by others (builders, cosmetic QA) and verify every contribution before committing anything. (Anything committed by a SPEC owner appears in 'unstable' if successfully build) + The centralized website should make it easy for people to find open bugs for a package and have a single entry-point for each package that has all the information about a single package. (bugs, votes, build reports, package content, diffs, other reports) http://package.rpmforge.net/package/ + Each package has it's own distribution-list so people interested in package development can subscribe to a particular package. Bugreports, package-promotion and build anomalies are also forwarded to this list for people to discuss. package@package.rpmforge.net Repository management (Hub) + When packages are built successfully, they are directly submitted to the 'unstable' repository and are managed by the centralized tool. (Hub) + It must be possible for a SPEC owner to promote packages faster from 'unstable' to 'testing' to 'stable' in urgent cases or when the impact is known in advance. Package promotion + Based on different conditions, packages can be promoted from 'unstable' to 'testing'. This may be after 2 to 4 days, when no blocking bugs have been registered, votes, ... The aim is to be able to move them automatically. + Based on different conditions, but triggered by the SPEC owner, packages can be promoted from 'testing' to 'stable'. Certain conditions will make sure no mistakes are made. + The central website will report anomalies, package-diffs, build status, critical bugreports and user/QA votes to the packager so that he can make a funded decision before promoting a package. Security and signing + Packages are always signed by builders and verified upon submission. When verified, packages can be resigned by the centralized buildsystem. + To increase security, we may add multiple decentralized farms for the same platform and centrally verify the resulting binaries. This would ensure that even when a farm is compromised, no compromised packages are distributed. Platform list disttag i386 x86_64 ppc sparc alpha s/390 compatible """"""" """" """""" """ """"" """"" """"" """""""""" FC 3 1.fc3 matt dag/matt FC 2 1.fc2 matt dag/matt FC 1 1.fc1 matt RHEL 3 1.el3 dag dag bert? upi Tao/CentOS/WhiteBox RHEL 2.1 0.el2 dag CentOS RH9 0.rh9 dag RH 7.3 0.rh7 dag YDL 3 0.yd3 matt Aurora 0.au2 dries cAos ? russ SPEC owner list + See mega-merge list for participating packagers. + Additional interested packagers/builders: Frederico (PlanetCCRMA) Kevin (RPMPAN) Russ (cAos/i386) Upi (RHEL3/s390, RHEL3/alpha) Ben (BioRPMS)