pk4(1)

NAME
pk4 - make available the Debian source package producing the specified package

SYNOPSIS
pk4 [options] package...

DESCRIPTION
pk4 resolves the specified argument(s) as either:

1. the name of a Debian binary package, and selects its Debian source package.

2. the name of a Debian source package, and selects it.

3. or a file path, and selects the Debian source package of the owning package.

The source package version is either the installed version (if any) or the installation candidate, as per apt-cache policy.

Then, pk4 downloads the entire selected source package (every file referenced by — and including — its .dsc file) and prints the output directory path.

OPTIONS

-allow_unauthenticated
    Whether to allow unauthenticated source packages, i.e. disable signature checking.

-bin
    Restrict search to binary packages only.

-complete
    Whether to return shell completions. Should usually be set by shell completion functions only.

-dest string
    Directory in which to store source packages (default ~/.cache/pk4).

-file
    Interpret the argument as a file name and operate on the package providing the file.

-resolve_only
    Resolve the provided arguments to source package and source package version, then print them to stdout in %s\t%s\n format and exit.

-shell string
    Which shell to start in the output directory after downloading the source (default $SHELL)

-src
    Restrict search to source packages only.

-verbose
    Whether to print messages to stderr.

-version string
    Use the specified source package version (default: installed package version, or latest known if not installed).

EXAMPLES

    # Avail the current Linux kernel sources:
        pk4 -src linux

    # Avail the sources which produced Debian binary package libbz2-1.0
    pk4 libbz2-1.0

    # Avail the sources of whichever package currently provides vi:
    pk4 -file $(which vi)

    # Fetch the i3 source, apply a bugfix, rebuild and replace installed packages:
    pk4 i3
    patch -p1 < /tmp/myfix.patch
    pk4-replace

    # Avail all debhelper build system implementations:
    pk4 -allow_unauthenticated $(grep '^dh-*' /var/cache/pk4/completion.both.txt)
    # Grep through their sources:
    grep -r option ~/.cache/pk4/dh-*

CONFIGURATION FILE
The following attributes can be configured in ~/.config/pk4/pk4.deb822:

Disk-Usage-Limit bytes
    Example:

    Disk-Usage-Limit: 2GiB

HOOKS
The following hooks can be configured:

after-download
    after-download hooks are run after the package was successfully downloaded. Examples:

    # Automatically create a git repository for each package:
    mkdir -p ~/.config/pk4/hooks-enabled/after-download/
    ln -s /usr/share/pk4/hooks-available/after-download/git-init \
    ~/.config/pk4/hooks-enabled/after-download/

unpack
    unpack hooks replace the unpack phase: as soon as one or more unpack hooks are found, pk4 will run them instead of running dpkg-source -x. Examples:

    # Unpack source into a new git-buildpackage repository:
    apt install git-buildpackage
    mkdir -p ~/.config/pk4/hooks-enabled/unpack/
    ln -s /usr/share/pk4/hooks-available/unpack/gbp \
    ~/.config/pk4/hooks-enabled/unpack/

SEE ALSO

pk4-generate-index(1)
    (Re-)generate index files for pk4

pk4-replace(1)
    build sources and replace currently installed packages

AUTHOR
Michael Stapelberg <stapelberg at debian.org>