TUX: Penguin Power!
Linux| Perl| PHP| Webserv| Databases| Sysadmin| Programming| Filesystems| Java| Webprog

Make Tux happy: Link to us!


SYNOPSIS
       cowpoke [options] packagename.dsc


DESCRIPTION
       Uploads  a  Debian  source  package to a cowbuilder host and builds it,
       optionally also signing and uploading the result to an incoming queue.



OPTIONS
       The following options are available:


       --arch=arch
              Specify the Debian architecture(s) to build for.  A space  sepa-
              rated list of architectures may be used to build for all of them
              in a single pass.  Valid arch names are those returned by  dpkg-
              architecture(1) for deb_build_arch.


       --dist=dist
              Specify  the Debian distribution(s) to build for.  A space sepa-
              rated list of distributions may be used to build for all of them
              in  a  single pass.  Either codenames (such as sid, or lenny) or
              distribution names (such as unstable, or  experimental)  may  be
              used,  but  you  should  usually stick to using one or the other
              consistently as this name may be  used  in  file  paths  and  to
              locate old packages for comparison reporting.


       --buildd=host
              Specify the remote host to build on.


       --buildd-user=name
              Specify the remote user to build as.


       --create
              Create  the remote cowbuilder root if it does not already exist.
              If this option is not passed it is an error  for  the  specified
              --dist  or --arch to not have an existing cowbuilder root in the
              expected location.


       --dpkg-opts='opt1 opt2 ...'
              specify additional options to be passed to dpkg-buildpackage(1).
              Multiple  options are delimited with spaces.  This will override
              any options  specified  in  DEBBUILDOPTS  in  the  build  host's
              pbuilderrc.


       paths may be absolute or relative, the latter  being  relative  to  the
       BUILDD_USER's  home  directory.   Since  the paths are typically quoted
       when used, tilde expansion will not be performed on them.


   Global defaults
       These apply to every arch and dist in a single cowpoke invocation.


       BUILDD_HOST
              The network address or fqdn of  the  build  machine  where  cow-
              builder  is  configured.  This may be overridden by the --buildd
              command line option.

       BUILDD_USER
              The unprivileged user name for operations on the build  machine.
              This  defaults  to  the local name of the user executing cowpoke
              (or to a username that is  specified  in  your  ssh  config  for
              BUILDD_HOST), and may be overridden by the --buildd-user command
              line option.

       BUILDD_ARCH
              The Debian architecture(s) to build for.  This  must  match  the
              DEB_BUILD_ARCH  of  the build chroot being used.  It defaults to
              the local machine architecture where cowpoke  is  executed,  and
              may be overridden by the --arch command line option.  A (quoted)
              space separated list of architectures may be used here to  build
              for all of them in a single pass.

       BUILDD_DIST
              The Debian distribution(s) to build for.  A (quoted) space sepa-
              rated list of distributions may be used to build for all of them
              in  a single pass.  This may be overridden by the --dist command
              line option.


       INCOMING_DIR
              The directory path on the build machine where the source package
              will  initially  be  placed.   This  must  be  writable  by  the
              BUILDD_USER.

       PBUILDER_BASE
              The filesystem root for all pbuilder COW and result files.  Arch
              and  dist specific subdirectories will normally be created under
              this.  The apt cache and temporary build directory will also  be
              located under this path.


       SIGN_KEYID
              If  this option is set, it is expected to contain the gpg key id
              to pass to debsign(1) if the packages are to be remotely signed.
              You  will  be  prompted  to confirm whether you wish to sign the
              packages after all builds are complete.  If this option is unset
              or an empty string, no attempt to sign packages will be made.
              The  command  to use to gain root privileges on the remote build
              machine.  if  unset  the  default  is  sudo(8).   this  is  only
              required  to invoke cowbuilder and allow it to enter its chroot,
              so you may restrict this user to only being  able  to  run  that
              command with escalated privileges.  Something like this in sudo-
              ers will enable invoking cowbuilder without an additional  pass-
              word entry required:


                      youruser ALL = NOPASSWD: /usr/sbin/cowbuilder

              Alternatively  you  could use ssh with a forwarded key, or what-
              ever other mechanism suits your  local  access  policy.   su  -c
              isn't really suitable here due to its quoting requirements being
              different from all the rest.


       DEBOOTSTRAP
              The utility to use when creating a new build root.  Alternatives
              are debootstrap or cdebootstrap.



   Arch and dist specific options
       These are variables of the form: $arch_$dist_VAR which apply only for a
       particular target arch/dist build.


       arch_dist_RESULT_DIR
              The directory path on the  build  machine  where  the  resulting
              packages (source and binary) will be found, and where older ver-
              sions of the package that were built previously  may  be  found.
              If  any  such older packages exist, debdiff will be used to com-
              pare the new package with the previous version after  the  build
              is  complete,  and the result will be included in the build log.
              Files in it must be  readable  by  the  BUILDD_USER  for  sanity
              checking  with  lintian(1)  and  debdiff(1), and for upload with
              dput(1).  if this option is not specified for some arch and dist
              combination       then       it       will       default      to
              $PBUILDER_BASE/$arch/$dist/result


       arch_dist_BASE_PATH
              The directory where the COW master files are  to  be  found  (or
              created  if  the  --create  command line option was passed).  If
              this option is not specified for some arch or dist then it  will
              default to $PBUILDER_BASE/$arch/$dist/base.cow



CONFIGURATION FILES
       /etc/cowpoke.conf
              Global configuration options.  Will override hardcoded defaults.

              ride all configuration files.



COWBUILDER CONFIGURATION
       There  is  nothing  particularly  special  required to configure a cow-
       builder instance for use with  cowpoke.   Simply  create  them  in  the
       flavour  you  require  with `cowbuilder --create` according to the cow-
       builder documentation, then configure cowpoke with the user, arch,  and
       path  information  required  to  access it, on the machines you wish to
       invoke it from (or alternatively configure cowpoke with the path,  arch
       and  distribution information and pass the --create option to it on the
       first invocation).  The build host running cowbuilder does not  require
       cowpoke installed locally.

       The  build  machine  should  have  the  lintian and devscripts packages
       installed for post-build sanity checking.  Upon completion,  the  build
       log  and the results of automated checks will be recorded in the INCOM-
       ING_DIR.  If you wish to upload signed packages the build machine  will
       also  need  dput(1)  installed  and  configured to use the 'host' alias
       specified by UPLOAD_QUEUE.

       The user executing cowpoke must have ssh access to the build machine as
       the  BUILDD_USER.   That user must be able to invoke cowbuilder as root
       by using the BUILDD_ROOTCMD.  Signing  keys  are  not  required  to  be
       installed on the build machine (and will be ignored there if they are).
       If the package is signed, keys will be expected  on  the  machine  that
       executes cowpoke.

       When cowpoke is invoked, it will first attempt to update the cowbuilder
       image if that has not already been done  on  the  same  day.   This  is
       checked  by the presence or absence of a cowbuilder-$arch-$dist-update-
       log-$date file in the INCOMING_DIR.  You may  move,  remove,  or  touch
       this  file  if you wish the image to be updated more or less often than
       that.  Its contents log the output of cowbuilder during the update  (or
       creation) of the build root.



NOTES
       Since  cowbuilder  creates a chroot, and to do that you need root, cow-
       poke also requires some degree of root access.   So  all  the  horrible
       things that can go wrong with that may well one day rain down upon you.
       cowbuilder  has  been  known  to  accidentally  wipe  out  bind-mounted
       filesystems  outside the chroot, and worse than that can easily happen.
       So be careful, keep good backups of things you don't want  to  lose  on
       your  build machine, and use cowpoke to keep all that on a machine that
       isn't your bleeding edge dev box with your last few hours of  uncommit-
       ted work.


SEE ALSO
Find all the song lyrics here: Lyrics Now!