DEBRELEASE(1)

πŸ“¦
version 2.26.11ubuntu1 Β· 2 versions
, in fedora 43, fedora 44, ubuntu resolute, ubuntu stonking

πŸ’– DEBRELEASE(1) πŸ’–

okay bestie, so this is the debrelease manual page from the General Commands Manual section, and it's literally just here to make your life easier. let's get into it ✨


🌸 NAME 🌸

debrelease β€” it's a wrapper around dupload or dput. that's it, that's the whole job. a little middle-man with main character energy 🫢


πŸŽ€ SYNOPSIS πŸŽ€

debrelease [debrelease options] [dupload/dput options]

✨ DESCRIPTION ✨

so debrelease is a simple wrapper around dupload or dput. you call it from inside the source code tree of a package, and it figures out the current version of that package. then it goes looking for the matching .changes file β€” which is the file that lists everything you need to upload in order to release the package β€” in the parent directory of the source code tree. then it calls dupload or dput with that .changes file as a parameter so the actual uploading can happen. iconic behavior fr πŸ’…

you can pass options to debrelease too. except for the ones listed down below, those options get passed on unchanged to dupload or dput. and yes, the devscripts configuration files get read by debrelease as well, as described below. no cap.


πŸ” Directory name checking πŸ”

just like several other scripts in the devscripts package, debrelease will climb up the directory tree until it finds a debian/changelog file. and because stray files can cause potential problems, it acts as a safeguard: once it finds that debian/changelog, it examines the name of the parent directory and checks that the directory name corresponds to the package name. how exactly it does this is controlled by two configuration file variables β€” DEVSCRIPTS_CHECK_DIRNAME_LEVEL and DEVSCRIPTS_CHECK_DIRNAME_REGEX β€” and their corresponding command-line options --check-dirname-level and --check-dirname-regex. πŸ‘‘

DEVSCRIPTS_CHECK_DIRNAME_LEVEL can take these values:

  • 0 β€” never check the directory name. live your truth, no vibe check here.
  • 1 β€” only check the directory name if we had to change directory while searching for debian/changelog. this is the default behaviour. ✨
  • 2 β€” always check the directory name. no exceptions, periodt.

the directory name gets checked by testing whether the current directory name (as determined by pwd(1)) matches the regex given by the configuration file option DEVSCRIPTS_CHECK_DIRNAME_REGEX or by the command line option --check-dirname-regex regex. here, regex is a Perl regex (peep perlre(3perl)), and it will be anchored at the beginning and the end. if regex contains a /, then it has to match the full directory path. if not, then it has to match the full directory name. and if regex contains the string PACKAGE, that gets replaced by the source package name, as determined from the changelog. the default value for the regex is: 'PACKAGE(-.+)?' β€” which means it matches directory names like PACKAGE and PACKAGE-version. slay 🌈


πŸ’… OPTIONS πŸ’…

  • --dupload, --dput β€” says which uploader program to use. the default is dupload. pick your fighter πŸ₯Š
  • -S β€” if you use this option, or if the default .changes file isn't found but a source-only .changes file is present, then that source-only .changes file gets uploaded instead of an arch-specific one.
  • -adebian-architecture, -tGNU-system-type β€” go read dpkg-architecture(1) for the description of these options. they affect the search for the .changes file, and they're provided to mimic how dpkg-buildpackage behaves when determining the name of the .changes file. important though: if a plain -t is given, it gets taken as the dupload host-specifying option, and therefore it signifies the end of the debrelease-specific options. so like, watch out πŸ‘€
  • --multi β€” multiarch .changes mode. this signifies that debrelease should use the most recent file with the name pattern package_version_*+*.changes as the .changes file, which allows for the .changes files produced by dpkg-cross. cute.
  • --debs-dir directory β€” look for the .changes and .deb files in directory instead of the parent of the source directory. this should either be an absolute path or relative to the top of the source directory. πŸ—‚οΈ
  • --check-dirname-level N β€” see the section Directory name checking above for what this one means.
  • --check-dirname-regex regex β€” same deal, see Directory name checking above for the explanation.
  • --no-conf, --noconf β€” do not read any configuration files. ⚠️ this can only be used as the first option given on the command-line. first or it doesn't count, bestie.
  • --help, -h β€” display a help message and exit successfully. 🫢
  • --version β€” display version and copyright information and exit successfully. πŸ’–

πŸ¦‹ CONFIGURATION VARIABLES πŸ¦‹

the two configuration files /etc/devscripts.conf and ~/.devscripts are sourced in that order to set configuration variables. command line options can be used to override configuration file settings. environment variable settings are ignored for this purpose. the variables currently recognised are:

  • DEBRELEASE_UPLOADER β€” the currently recognised values are dupload and dput, and it specifies which uploader program should be used. it corresponds to the --dupload and --dput command line options.
  • DEBRELEASE_DEBS_DIR β€” this specifies the directory in which to look for the .changes and .deb files, and it's either an absolute path or relative to the top of the source tree. it corresponds to the --debs-dir command line option. this directive could be used, for example, if you always use pbuilder or svn-buildpackage to build your packages. note that it also affects debc(1) and debi(1). 🫣
  • DEVSCRIPTS_CHECK_DIRNAME_LEVEL, DEVSCRIPTS_CHECK_DIRNAME_REGEX β€” see the Directory name checking section above for what these do. note that these are package-wide configuration variables, so they'll affect all devscripts scripts which check their value, as described in their respective manpages and in devscripts.conf(5). it's giving very interconnected of them πŸ’€

🌟 SEE ALSO 🌟

dput(1), dupload(1), devscripts.conf(5)


πŸ‘‘ AUTHOR πŸ‘‘

Julian Gilbey <jdg@debian.org>, based on the original release script by Christoph Lameter <clameter@debian.org>.


and that's the whole page, bestie!! this one came out of the Debian camp, from the Debian Utilities collection, and it's dated DEBIAN β€” go off, we love a classic πŸ’œπŸŒΈπŸ¦‹

πŸ“¦ where this page comes from