# ----------------------------- Author -------------------------------
#
# By:           Ben Collins <bcollins@debian.org>
# Date:         June/2000
# Source:       none
#
# --------------------------- Copyright ------------------------------
#
# Written by Ben Collins and placed into the public domain.
# This file is not subject to any license and is free to use
# for any purpose.
#
# -------------------------- Requirements ----------------------------
#
# Object Classes for using LDAP as a backend for Debian
# specific package information, including archive state and
# build status.
#
# (no proposed RFC yet)
#
# ----------------------- Formal Description -------------------------
#
# NAME	'debianSource' SUP top STRUCTURAL
# DESC	'A general structural source object'
# MUST	( source )
# MAY	()
#
#
# NAME	'debianSourceVersion' SUP top STRUCTURAL
# DESC	'Abstraction of a versioned Debian source file set. The file
#	can include each file needed for the set in the sourceFile
#	attribute'
# MUST	( source $ version $ maintainer $ sourceFile $ archive )
# MAY	( standardsVersion $ directory $ architecture $ distTag $
#	  archive $ priority )
#
#
# NAME	'debianSourceBuildState' SUP top STRUCTURAL
# DESC	'Abstraction of a build status for a versioned source'
# MUST	( architecture $ status $ previousStatus $ source )
# MAY	( notes )
#
#
# NAME	'debianPackage' SUP top AUXILIARY
# DESC	'Abstraction of a Debian Package. This consists of the non-arch
#	specific attributes'
# MUST	( package $ source )
# MAY	( )
#
#
# NAME	'debianPackageArch' SUP top STRUCTURAL
# DESC	'Abstraction of a Debian Package. This is the arch specific
#	attributes'
# MUST	( package $ architecture $ packageFile $ section $ priority 
#	  shortDesc $ longDesc )
# MAY	( depends $ preDepends $ suggests $ recommends $ conflicts $
#	  replaces $ provides $ essential $ installedSize $ )
#
# --------------------- End Formal Description -----------------------

objectclass	debianSource
	requires
		objectClass,
		source

objectclass	debianSourceVersion
	requires
		objectClass,
		source,
		sourceFile,
		version,
		maintainer,
		archive
	allows
		standardsVersion,
		directory,
		architecture,
		distTag,
		archive

objectClass	debianSourceBuildState
	requires
		objectClass,
		architecture,
		status,
		previousStatus,
		source
	allows
		notes

objectclass	debianPackage
	requires
		objectClass,
		package,
		source

objectclass	debianPackageArch
	requires
		objectClass,
		package,
		architecture,
		packageFile,
		version,
		shortDesc,
		longDesc,
		priority
	allows
		depends,
		preDepends,
		suggests,
		recommends,
		conflicts,
		replaces,
		provides,
		essential,
		installedSize

# -------------------------- Sample LDIF -----------------------------
#
# dn: source=foo, ou=packages
# objectClass: debianSource
# source: foo
#
# dn: version=1.2-1, source=foo, ou=packages
# objectClass: debianSourceVersion
# - Contains info from .dsc
#
# arch=sparc, version=1.2-1, source=foo, ou=packages
# objectClass: debianSourceBuildState
# - Contains wanna-build state information which includes the build state,
# - and possibly some special notes on the status
#
# dn: package=bar, version=1.2-1, source=foo, ou=packages
# objectClass: debianPackage
# package: bar
# source: foo
#
# arch=sparc, package=foo, version=1.2-1, source=foo, ou=packages
# objectClass: debianPackageArch
# - Contains arch specific information for the package
#
# --------------------------------------------------------------------
