OPENING THE SOURCE REPOSITORY WITH ANONYMOUS CVS Charles D. Cranor - - PDF document

opening the source repository with anonymous cvs charles
SMART_READER_LITE
LIVE PREVIEW

OPENING THE SOURCE REPOSITORY WITH ANONYMOUS CVS Charles D. Cranor - - PDF document

OPENING THE SOURCE REPOSITORY WITH ANONYMOUS CVS Charles D. Cranor AT&T Labs-Research chuck@research.att.com Theo de Raadt The OpenBSD Project deraadt@openbsd.org 10-Jun-99 Chuck Cranor 1 OUTLINE Introduction and motivation


slide-1
SLIDE 1

deraadt@openbsd.org chuck@research.att.com

Theo de Raadt

The OpenBSD Project

Chuck Cranor 10-Jun-99 1

OPENING THE SOURCE REPOSITORY Charles D. Cranor WITH ANONYMOUS CVS

AT&T Labs-Research

slide-2
SLIDE 2

Introduction and motivation Background Anonymous CVS: design and implementation Other open source repository tools Conclusions

10-Jun-99 2

OUTLINE

Chuck Cranor

slide-3
SLIDE 3

advantages: promote reliability/quality via: projects: Linux, BSD, GNU tools, Apache, Mozilla,...

  • source code freely available
  • open license

key attributes:

  • independent code review
  • rapid evolution

Open source: making inroads

10-Jun-99

INTRODUCTION

3 Chuck Cranor

slide-4
SLIDE 4

pre-compiled distributions quite successful

  • pen source developers do access it

few people download it, fewer read it

Only a relatively few users take advantage of having access to source

Chuck Cranor 10-Jun-99 4

INTRODUCTION

slide-5
SLIDE 5
  • networked: CVS

meets the needs of open source developers

missing features

  • access to old versions of code
  • annotated per-file modification history
  • set files to a distribution or date
  • get current snapshot
  • merge in local changes

features provided by source control system

  • local: SCCS, RCS

Standard "Open Source" only partly

Chuck Cranor 10-Jun-99 5

WHAT OPEN SOURCE LACKS

slide-6
SLIDE 6

CVS was not designed to be open (1995)

host with cvs repository client client client

  • account on repository host
  • write access to repository

Usage requirements: Only select group of privileged developers can access CVS repository Counter to open source philosophy

network

Chuck Cranor 10-Jun-99 6

THE PROBLEM WITH CVS

slide-7
SLIDE 7

"Open Source Repository"

Fall 1995: OpenBSD project started

  • attracts users
  • makes it easier to download, debug, and manage

source tree

  • easier to learn about the evolution of code

goal: open access to CVS repository result: Anonymous CVS service

  • Internet users have read-only access to data

in repository...

  • extends "Open Source" concept to

Chuck Cranor 10-Jun-99 7

OPEN SOURCE REPOSITORY

slide-8
SLIDE 8

sup USENET comp.sources.* Anonymous FTP / web

Traditional source distribution

rsync CTM All: Open source, but not open source repository

Chuck Cranor 8

BACKGROUND

10-Jun-99

slide-9
SLIDE 9

security efficiency convenience

Design goals:

10-Jun-99 9

ANONYMOUS CVS

Chuck Cranor

slide-10
SLIDE 10
  • no direct anonymous access to master repository

internet sup sup

anoncvs.openbsd.org

anonymous cvs

cvs.openbsd.org

master mirror anoncvs client

Put AnonCVS on secondary server machine

  • replicate repository on AnonCVS server
  • control anonymous load on main server

Chuck Cranor 10

ANONYMOUS CVS DESIGN

src /cvs /cvs

10-Jun-99

slide-11
SLIDE 11

mirror of repository cvs binaries sandboxed /tmp chroot sandbox anoncvs shell rsh/ssh sup anoncvs.openbsd.org master from anonymous clients

mirror owned by non-priv account cron gets repository (via sup or rsync) "anoncvs" account: no password, captive shell cvs runs in chroot sandbox environment

11

ANONYMOUS CVS DESIGN

Chuck Cranor 10-Jun-99

slide-12
SLIDE 12
  • SUP removes a CVS file (should not happen)
  • 1. create temporary file
  • 2. write complete file data to tmp file
  • 3. rename() tmp file to real file [atomic]

Implementation issues

cvs required writable log file

  • added CVSREADONLYFS environment variable

file locking

  • CVS locking not an issue with read-only repository
  • incomplete CVS file: cannot happen
  • old/new mix: possible (even with standard CVS)

Chuck Cranor 10-Jun-99 12

ANONYMOUS CVS

slide-13
SLIDE 13

limit buffer size, ignore locking

  • problem:
  • 1. lock CVS files
  • 2. send update to remote system
  • 3. unlock CVS files

what if we block in step 2? (network flow control) n/b update process buffering process net n/b problem: no limit on buffering process’ buffer size solution:

Implementation issues (cont.)

network flow control problem

  • CVS design goal: minimize locking time

Chuck Cranor 10-Jun-99 13

ANONYMOUS CVS

repository

slide-14
SLIDE 14

Anonymous CVS deployment

Fall 1995: first anonymous CVS server (wustl.edu) Currently OpenBSD has 20 AnonCVS servers Usage: 2000 transactions/week (main server) Attracted contributors

10-Jun-99 14

ANONYMOUS CVS

Chuck Cranor

slide-15
SLIDE 15
  • graphic user interface to CVS

New Open Source Repository Tools created CVS’ pserver (cvs developers)

  • adds anonymous support to CVS
  • uses special CVS server ports
  • user interface requires login/password
  • often does not run in chroot() environment
  • now included with CVS

CVSWeb (Bill Fenner, FreeBSD)

  • browse CVS repository via web client
  • no local CVS tools required

After Anonymous CVS

Chuck Cranor 10-Jun-99 15

OPEN SOURCE REPOSITORY

slide-16
SLIDE 16
  • requires Modula3 to compile

tools

  • can distribute repository or source tree
  • uses highly efficient streaming protocol
  • knows file formats:
  • 1. CVS/RCS files
  • 2. log files
  • 3. unknown (uses rsync algorithm)
  • can merge into local repository
  • has graphic user interface

After Anonymous CVS (cont.)

CVSSup (John Polstra)

  • current state of the art in Open Source Repository

Chuck Cranor 10-Jun-99 16

OPEN SOURCE REPOSITORY

slide-17
SLIDE 17

Anonymous CVS helped lead to the introduction Open Source => Open Source Repository positive effect of Anonymous CVS (e.g. OpenBSD) we have extended "Open Source" to the next level

  • f new Open Source Repository tools

Many large projects have embraced Anonymous CVS

  • Ecgs, FreeBSD, Mozilla, Apache, etc.

Chuck Cranor 17

CONTRIBUTIONS

10-Jun-99