Lintian tag description:The Filesystem Hierarchy Standard forbids the installation of new directories in /usr/bin other than /usr/bin/mh.However, all I can find the linked document is This is the primary directory of executable commands on the system.This allows executable commands to go there, but it does not forbid anything. What paragraph doees Lintian refer to?The reason I like to put a subdirectory there is that I have a wrapper script, that the user uses instead of the binary, and I want the wrapper script to work without changes when installing the program. In short, the script looks likeoptions=()debug=0mode=relfor option in $@; do    if [ $option == --debug ]; then        debug=1        mode=dbg    else        options+=($option)    fidonecurrent_dir=$(dirname `readlink -f ${BASH_SOURCE[0]}`)binary=$current_dir/__anja_$mode_$arch/anjaif [ $debug -eq 1 ]; then    gdb --args $binary ${options[@]}else    exec $binary ${options[@]}fiwhere arch is deduced from /proc/cpuinfo. The build system emits the binary in the directory __anja_$mode_$arch, in the project root directory.Yes, the correct place for the real binaries is /usr/libexec, but then the script must be changed during the installation procedure.
Is subdirectory in /usr/bin really forbidden by FHS
fhs;lintian
Section 4.4.2 of the FHS, version 3.0, specifically statesThere must be no subdirectories in /usr/bin.Since youre using Lintian, I suppose youre targeting Debian or a derivative; in such an environment, the appropriate location for your binaries is a package-specific subdirectory of /usr/lib. Debian and its derivatives dont use /usr/libexec.