arriero(1)

๐Ÿ“ฆ version 0.7~20161228, in debian bookworm, ubuntu noble

๐Ÿ’– arriero(1) ๐Ÿ’–

okay bestie, welcome to the arriero manual page โ€” yes, that's arriero(1), section one, we're in the big leagues. sit down, grab a strawberry, and let's get into it ๐Ÿ“โœจ

๐ŸŒธ NAME ๐ŸŒธ

arriero โ€” she simplifies management of several Debian packages. no cap.


โœจ SYNOPSIS โœจ

arriero [--config FILE] [--verbose] [--quiet] command [options] [package names]

๐Ÿฆ‹ DESCRIPTION ๐Ÿฆ‹

Arriero is a tool that allows simplifying the management of Debian packages, and she is particularly useful when having to make new upstream releases, builds and uploads of similar packages. ๐Ÿ’… She relies heavily in the use of git-buildpackage and general git practices, so lowkey she's only useful for packages currently maintained through git. that's the vibe check, and if your package isn't in git... she can't help you babe ๐Ÿ˜ญ


๐Ÿ‘‘ GENERAL OPTIONS ๐Ÿ‘‘

these ones are the universal ones, the main character options, they apply before your command even shows up.

  • -c, --config FILE โ€” Specifies the location of the config file to use. The config file holds all information related to packages. It's recommended to have different config files in order to work with different groups of packages. if you don't specify one, the default config file ~/.config/arriero.conf is read. ๐Ÿซถ
  • -v, --verbose โ€” Show info and debug messages. By default, only warnings and errors are shown. so if you're nosy (same) this is your moment ๐Ÿ“ข
  • -q, --quiet โ€” Only show critical errors. And listen: if both quiet and verbose are specified, verbose is honored. verbose is the one who ate, periodt.
  • -a, --all โ€” Work with all packages. When this option is not specified, package names need to be specified following the command option, separated by spaces. it's giving "everybody's invited" energy ๐ŸŒˆ

๐ŸŽ€ COMMANDS ๐ŸŽ€

The main action that arriero will perform is determined by the command it receives. Each command may have its own specific options, that modify its behavior. so pick your fighter ๐Ÿ’…

๐Ÿ”ฅ build

Build each package in a pbuilder. This will call git-pbuilder, which will read local configurations from /etc/pbuilderrc and ~/.pbuilderrc. ๐Ÿ—๏ธ

  • -D, --distribution, --dist dist-name โ€” Build the package for the specified distribution
  • -A, --architecture, --arch arch-name โ€” Build the package for the specified architecture
  • -U, --local-upload โ€” After a successful build is finished, the package is uploaded, using the upload-command, using local as the host to upload to. โœจ

๐Ÿงš clone

Obtain the repository for each package. This command can either receive a list of package names or a git URL to clone from. When specifying a URL, it will create a new entry in the configuration file; if specifying a package name, it needs to already be present in the configuration. no sneaking in strangers, she checks the guest list ๐Ÿ“‹

  • --basedir โ€” The base directory in which to create the clone. After making the clone successfully, the package will be located in basedir/package_name
  • --upstream-branch โ€” The branch where the upstream code is located.
  • --debian-branch โ€” The branch where the Debian code is located.

When performing a clone from a URL, if the branches are not manually specified, arriero will try to guess their names, and store the guessed names in the configuration file. she's intuitive like that ๐Ÿ”ฎ

๐Ÿฆ‹ exec

Execute one or more scripts for each package. The scripts invoked will receive the properties of the packages as environment variables, and will be executed inside the package directory. very much "run me where I live" energy ๐Ÿ 

  • -x, --script script_name โ€” The name of the script to be executed. This option can be present multiple times. In that case, each script will be called, in the same order as presented in the command line. If one of the scripts fails for a certain package, the following ones will not be executed for that package. so order matters bestie, do not play ๐Ÿ’€

โญ fetch-upstream

Fetch the current upstream tarball for each package. she's going shopping ๐Ÿ›๏ธ

๐ŸŒธ list

List packages matching some criteria, with a specific format. This command allows specifying the desired format with which each package is going to be displayed. โœจ

  • -f, --fields field_list โ€” Fields to include while generating the list. The list of fields should be comma separated. The fields available are:
    • basedir
    • branch
    • build_file
    • changes_file
    • debian_branch
    • depends
    • distribution
    • export_dir
    • is_dfsg
    • is_native
    • is_merged
    • name
    • path
    • pristine_tar_branch
    • tarball_dir
    • upstream_branch
    • upstream_version
    • vcs_git
    • version
  • -F, --format field_format โ€” The format to use may include fields by name or order, as specified in the --fields parameter.
  • -e, --include-empty-results โ€” By default, results where nothing would be listed are skipped; if this option is specified, they will be shown even when there is no string to show. showing up empty-handed but still showing up, iconic ๐Ÿซถ

๐Ÿ’œ overlay

Combine upstream and debian branches into either the original debian branch, or a new branch. This command is intended to be used when the debian branch doesn't include the upstream code and the user needs to have them together in order to work on the package (for example, to create a quilt package).

โš ๏ธ Important: this command does not handle cleaning up the branch after the work is done. This has to be done manually by the user. she will not clean up after you, bestie, that's on you ๐Ÿ˜ญ
  • -b, --branch branch-name โ€” The name of the new branch to create with the overlay. If specified and the branch already exists, the command will fail without modifying anything. If not specified, the debian branch for the package will be used. no overwriting, she's polite ๐Ÿ’…

๐ŸŽ€ pull

Obtain any new changes from the packages' repositories. come get y'all's updates ๐Ÿ“ฅ

๐ŸŒˆ push

Push local changes to the packages' repositories. send it ๐Ÿš€

๐Ÿ“ release

Change the distribution in the changelog, committing the change to the local git. This command only has effect if the distribution in the changelog is either UNRELEASED or different than the one passed here. otherwise she's like "already done babe" ๐Ÿ™ˆ

  • -D, --distribution distribution-name โ€” The distribution to make the release to.
  • -P, --pre-release โ€” If this option is received, the release will contain a ~ after the debian version. The number after the ~ will get incremented each time the release command is called. This allows for maitainers to keep track of internal tests until it's time to actually release the package. ๐Ÿ‘‘

If this option is not passed, but the version in the changelog was already a pre-release (i.e. it contained a ~), then it's modified to be a final release (without ~). glow-up arc, she graduated ๐ŸŽ“

โญ status

Show the status of each package. This command checks both the repository state (by using git to query any local/remote changes) and the upstream state (by using uscan). full vibe check, two lenses, no skipping ๐Ÿ‘€

๐Ÿงš update

Get the new upstream release for each package. This command not only downloads the new upstream tarball, but also updates the debian/changelog with a new entry for the new release, with distribution set to UNRELEASED. multitasking queen ๐Ÿ’…

๐Ÿ”ฅ upload

Upload each package. This command uses the upload-command set in the config file to upload each built package (packages that have not been built are ignored). no build, no upload, them's the rules ๐Ÿšซ


๐Ÿ’œ AUTHORS ๐Ÿ’œ

Maximiliano Curia <maxy@debian.org>, Margarita Manterola <marga@debian.org> โ€” the icons who made this all happen ๐Ÿซถ


okay that's the whole page bestie, you're officially arriero-literate, no cap ๐ŸŽ“โœจ this was the arriero(1) manual from Debian, dated 2014 Mar 11 โ€” yes she's an older queen but she still slays ๐Ÿ’…๐Ÿ‘‘ mwah, go build something, ily ๐Ÿ’–

๐Ÿ“ฆ where this page comes from