mirror of
				https://git.launchpad.net/~ubuntu-release/britney/+git/britney2-ubuntu
				synced 2025-11-04 10:34:05 +00:00 
			
		
		
		
	Add a quick-start guide incl. a template conf
Signed-off-by: Niels Thykier <niels@thykier.net>
This commit is contained in:
		
							parent
							
								
									c224c55d88
								
							
						
					
					
						commit
						d47ad755d9
					
				
							
								
								
									
										38
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										38
									
								
								README.md
									
									
									
									
									
								
							@ -5,15 +5,35 @@ by feeding it updates from (one or more) source-suite(s).  A few known use
 | 
			
		||||
cases:
 | 
			
		||||
 | 
			
		||||
 * Debian uses it to update testing based on unstable
 | 
			
		||||
 * Ubuntu uses it to update their latest development suite using a "hidden" -proposed suite as source
 | 
			
		||||
 * Ubuntu uses it to update their latest development suite using a "hidden" -proposed-updates suite as source
 | 
			
		||||
 | 
			
		||||
Britney's primary goal is too keep packages in the target suite installable
 | 
			
		||||
(e.g. Debian testing) while keeping it up to daye with its primary source
 | 
			
		||||
(e.g. Debian testing) while keeping it up to date with its primary source
 | 
			
		||||
suite (e.g. Debian unstable).
 | 
			
		||||
 | 
			
		||||
## Quick setup guide
 | 
			
		||||
 | 
			
		||||
TODO: Write a quick setup guide (once mirror layout has been tested)
 | 
			
		||||
This is a very brief intro to the steps required to setup a
 | 
			
		||||
Britney instance.
 | 
			
		||||
 | 
			
		||||
 * Copy "britney.conf.template" and edit it to suit your purpose
 | 
			
		||||
    - If you want Britney to bootstrap your target suite, you
 | 
			
		||||
      probably want to add all architectures to "NEW_ARCHES" and
 | 
			
		||||
      "BREAK_ARCHES" for a few runs
 | 
			
		||||
 * Create the following files (they can be empty):
 | 
			
		||||
    - $STATE_DIR/age-policy-dates
 | 
			
		||||
    - $STATE_DIR/age-policy-urgencies
 | 
			
		||||
    - $STATE_DIR/rc-bugs-unstable
 | 
			
		||||
    - $STATE_DIR/rc-bugs-testing
 | 
			
		||||
 * Run ```./britney.py -c $BRITNEY_CONF -v [--dry-run]``` to test the run
 | 
			
		||||
 * Use the resulting $HEIDI_OUTPUT (or $HEIDI_DELTA_OUTPUT) to update
 | 
			
		||||
   your target suite.
 | 
			
		||||
    - With dak, ```cut -d" " -f1-3 < ${HEIDI_OUTPUT} | dak control-suite --set ${TARGET_SUITE} [--britney]```
 | 
			
		||||
 * Setup a cron-/batch-job that:
 | 
			
		||||
    - (Optionally) Updates the rc-bugs files
 | 
			
		||||
    - (Optionally) Updates the $STATE_DIR/age-policy-urgencies
 | 
			
		||||
    - Runs Britney
 | 
			
		||||
    - Imports the result into your target suite
 | 
			
		||||
 | 
			
		||||
## Migration items
 | 
			
		||||
 | 
			
		||||
@ -22,14 +42,14 @@ packages (and possibly a source package).  Packages are bundled into these
 | 
			
		||||
migration items under the following rules:
 | 
			
		||||
 | 
			
		||||
 1. "source migration": An update of the source package.  This will include all the binary packages built from that source version (regardless of architecture).
 | 
			
		||||
   * Can contain binaries built from earlier source version depending on the setting of "IGNORE_CRUFT"
 | 
			
		||||
   * Britney refers to these as "${SOURCE_NAME}"
 | 
			
		||||
    * Can contain binaries built from earlier source version depending on the setting of "IGNORE_CRUFT"
 | 
			
		||||
    * Britney refers to these as "${SOURCE_NAME}"
 | 
			
		||||
 1. "binary migration": An update of binary packages on a given architecture to an existing source package in the target suite.
 | 
			
		||||
   * Two common cases: Built for the first time on a new architecture and binNMUs
 | 
			
		||||
   * Britney refers to all cases of these as "${SOURCE_NAME}/${ARCHITECTURE}"
 | 
			
		||||
    * Two common cases: Built for the first time on a new architecture and binNMUs
 | 
			
		||||
    * Britney refers to all cases of these as "${SOURCE_NAME}/${ARCHITECTURE}"
 | 
			
		||||
 1. "removal item": A removal of a source or binary package.
 | 
			
		||||
   * Note that it is only possible to trigger "source" removals via hints.  Binary removals are items generated by Britney to clean up the target suite.
 | 
			
		||||
   * Britney refers to these as "-${SOURCE_NAME}" or "-${BINARY_NAME}/${ARCHITECTURE}" depending on the case.
 | 
			
		||||
    * Note that it is only possible to trigger "source" removals via hints.  Binary removals are items generated by Britney to clean up the target suite.
 | 
			
		||||
    * Britney refers to these as "-${SOURCE_NAME}" or "-${BINARY_NAME}/${ARCHITECTURE}" depending on the case.
 | 
			
		||||
 | 
			
		||||
## Migration rules (excuses/policies)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										98
									
								
								britney.conf.template
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										98
									
								
								britney.conf.template
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,98 @@
 | 
			
		||||
#  Template configuration file for britney
 | 
			
		||||
 | 
			
		||||
# Paths to suites in a local mirror
 | 
			
		||||
# Note: Britney will only need metadata files and not the debs/dscs
 | 
			
		||||
# themselves.
 | 
			
		||||
UNSTABLE          = /path/to/source/suite
 | 
			
		||||
TESTING           = /path/to/target/suite
 | 
			
		||||
# Items in these two suites will require manual approval
 | 
			
		||||
TPU               = /path/to/secondary-source/suite
 | 
			
		||||
# Optional suite
 | 
			
		||||
# PU                = /path/to/another-source/suite
 | 
			
		||||
 | 
			
		||||
# List of components to work with
 | 
			
		||||
COMPONENTS        = main, non-free, contrib
 | 
			
		||||
 | 
			
		||||
# Output
 | 
			
		||||
NONINST_STATUS      = /path/to/britneys-output-dir/non-installable-status
 | 
			
		||||
EXCUSES_OUTPUT      = /path/to/britneys-output-dir/excuses.html
 | 
			
		||||
EXCUSES_YAML_OUTPUT = /path/to/britneys-output-dir/excuses.yaml
 | 
			
		||||
UPGRADE_OUTPUT      = /path/to/britneys-output-dir/output.txt
 | 
			
		||||
HEIDI_OUTPUT        = /path/to/britneys-output-dir/HeidiResult
 | 
			
		||||
HEIDI_DELTA_OUTPUT  = /path/to/britneys-output-dir/HeidiResultDelta
 | 
			
		||||
 | 
			
		||||
# External policy/constraints/faux-packages information that
 | 
			
		||||
# (presumably) rarely changes.  Examples include "constraints".
 | 
			
		||||
# STATIC_INPUT_DIR = /path/to/static/input
 | 
			
		||||
 | 
			
		||||
# Directory for input files that Britney will update herself
 | 
			
		||||
# (e.g. aging information) or will need regular updates
 | 
			
		||||
# (e.g. urgency information).
 | 
			
		||||
STATE_DIR          = /path/to/britey/state-dir
 | 
			
		||||
 | 
			
		||||
# List of architectures Britney should consider
 | 
			
		||||
ARCHITECTURES     = i386 amd64 arm64 armel armhf mips mipsel powerpc ppc64el s390x
 | 
			
		||||
 | 
			
		||||
# if you're not in this list, arch: all packages are allowed to break on you
 | 
			
		||||
NOBREAKALL_ARCHES = i386 amd64
 | 
			
		||||
 | 
			
		||||
# if you're in this list, your packages may not stay in sync with the source
 | 
			
		||||
FUCKED_ARCHES     =
 | 
			
		||||
 | 
			
		||||
# if you're in this list, your uninstallability count may increase
 | 
			
		||||
BREAK_ARCHES      =
 | 
			
		||||
 | 
			
		||||
# if you're in this list, you are a new architecture
 | 
			
		||||
NEW_ARCHES        =
 | 
			
		||||
 | 
			
		||||
# For the aging policy - all "MINDAYS_X" are measured in days
 | 
			
		||||
MINDAYS_LOW       = 10
 | 
			
		||||
MINDAYS_MEDIUM    = 5
 | 
			
		||||
MINDAYS_HIGH      = 2
 | 
			
		||||
MINDAYS_CRITICAL  = 0
 | 
			
		||||
MINDAYS_EMERGENCY = 0
 | 
			
		||||
# The urgency to assume if none is provided or it is not defined with
 | 
			
		||||
# a MINDAYS_$NAME config above
 | 
			
		||||
DEFAULT_URGENCY   = medium
 | 
			
		||||
 | 
			
		||||
# Directory where hints files are stored
 | 
			
		||||
HINTSDIR = /path/to/britney/hints-dir
 | 
			
		||||
 | 
			
		||||
# hint permissions
 | 
			
		||||
# Each "HINTS_NAME" defines the list of permissions for a given hints
 | 
			
		||||
# file in HINTSDIR.  The name of the hints file should be in all
 | 
			
		||||
# lowercase (i.e. "HINTS_FOO" applies to the file "foo" in HINTSDIR)
 | 
			
		||||
#
 | 
			
		||||
#
 | 
			
		||||
# HINTS_USER1         = STANDARD
 | 
			
		||||
# HINTS_USER2         = STANDARD force
 | 
			
		||||
# HINTS_USER3         = STANDARD force force-hint
 | 
			
		||||
# HINTS_USER4         = ALL
 | 
			
		||||
#
 | 
			
		||||
# Possible "role" hints
 | 
			
		||||
#
 | 
			
		||||
# HINTS_FREEZE        = block block-all block-udeb
 | 
			
		||||
# HINTS_AUTO-REMOVALS = remove
 | 
			
		||||
 | 
			
		||||
# support for old libraries in testing (smooth update)
 | 
			
		||||
#
 | 
			
		||||
# This option makes it easier for Britney to handle transitions as she
 | 
			
		||||
# will be allowed to keep old binaries around if they have reverse
 | 
			
		||||
# dependencies.
 | 
			
		||||
#
 | 
			
		||||
# This requires that your archive tool is capable of handling binaries
 | 
			
		||||
# without a source (or multiple versions of the source package in a
 | 
			
		||||
# given suite).  The "old" source will *not* be listed in the output
 | 
			
		||||
# for binaries that are retained like this.  DAK is known to handle
 | 
			
		||||
# this and will keep the "old" source in the target distribution as
 | 
			
		||||
# long as it has binaries left.
 | 
			
		||||
#
 | 
			
		||||
# - leave it blank to disable it
 | 
			
		||||
# - use ALL to enable smooth updates for all the sections
 | 
			
		||||
# - naming a non-existent section will effectively disable new
 | 
			
		||||
#   smooth updates but still allow removals to occur
 | 
			
		||||
SMOOTH_UPDATES    = libs oldlibs
 | 
			
		||||
 | 
			
		||||
# Whether old binaries in the source distribution should be
 | 
			
		||||
# considered as a blocker for migration.
 | 
			
		||||
IGNORE_CRUFT      = 1
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user