SBODL(1)

NAME
sbodl - download and/or check md5sums for SlackBuilds.org source files.

SYNOPSIS
sbopkglint [--help] | [ --version ] | [-a | -f | -af ] [wget-options ...]

DESCRIPTION
sbodl reads the .info file in the current directory and downloads the source files listed there, if they don't already exist. Then it checks the md5sums of the source files (whether they were just downloaded or not).

To avoid extra network overhead, the downloaded files are stored in a cache directory (see ENVIRONMENT), and maintained as symlinks in the current directory. This allows you to remove the symlinks prior to creating a tarball of your SlackBuild directory for upload, without losing the actual files. It also allows builds that use the same source files to share them (no need to re-download).

By default, --content-disposition is used. If you want to disable it, use the --no-content-disposition wget option.

If you need to download files for a different architecture (e.g. 32-bit files when running on a 64-bit OS), you can override ARCH in the environment: "ARCH=i686 sbodl" would download the 32-bit source file(s). This only matters if there's a DOWNLOAD_x86_64 URL in the .info file.

OPTIONS
NOTE: Any arguments other than the options listed below are passed through to wget(1) verbatim. Also, only the first argument may be a sbodl option. This means you can't say -a -f; use -af or -fa instead.

-a  Download from the SBo Source Archive (sbosrcarch) rather than the original URL(s). Use this if the original site is down or the file has gone 404. See ENVIRONMENT, if you need to change the sbosrcarch URL.

-f  Force downloading the file(s), even if they already exist in the current directory or in the cache.

-af, -fa
    Combine the above two options (-a and -f).

--help, --doc
    Show this documentation in your pager.

--version
    Show version number and exit.

--man
    Output this documentation, formatted as a man page, on standard output.

ENVIRONMENT

SBODL_ARCHIVE
    The URL of the sbosrcarch instance. The only known one at the time of this writing is https://slackware.uk/sbosrcarch, but that may change in the future (or you may run your own private instance). This is the URL of the directory containing the by-name and by-md5 dirs, and should not end with a trailing slash.

SBODL_CACHEDIR
    Where to cache downloaded files. By default, this is $HOME/sbodl-cache. This directory will be created if it does not exist.

ARCH
    Used to determine which files to download; default is autodetect. Only matters for builds with a separate 64-bit download URL. Use i586 or i686 for 32-bit x86, x86_64 for 64-bit. Note that there's no point setting this to e.g. aarch64, as the .info file format doesn't have a DOWNLOAD_aarch64 field (yet).

EXIT STATUS
0 (success) if all files were downloaded or found in the cache, and their md5sums all match the .info file.

1 (failure) if any download failed, or if at least one md5sum failed to match.

BUGS
One very rare but nasty one: all the cached files are stored in the same directory. If two SlackBuilds happen to have the same filename for their downloads (but they're actually different files), you'll get md5sum failures. This is most noticeable with haskell/ builds, with filenames like 1.cabal, 2.cabal, etc. At some point this will be fixed. For now, if this happens, use the -f option.

Also, since --content-disposition is used, occasionally the downloaded filename won't match the filename in the URL, and sbodl will warn that it can't find the downloaded file. Again, this will be fixed soonish. I left this enabled specifically to detect URLs that have this problem (mostly, these are github URLs and there's a way to rewrite them to work either way).

AUTHOR
B. Watson <urchlay@slackware.uk>, aka Urchlay on Libera IRC.

SEE ALSO
sbolint(1), sbopkglint(1), sbofixinfo(1), sbopkg(8), sboinstall(1)