pkg_create,
    pkg_create_i,
    pkg_create_new,
    pkg_create_free,
    pkg_create_set_format,
    pkg_create_set_overwrite,
    pkg_create_set_compression_level,
    pkg_create_set_rootdir,
    pkg_create_set_output_dir,
    pkg_create_set_timestamp,
    pkg_create_set_compression_threads —
    create packages
#include
  <pkg.h>
struct pkg_create *
  
  pkg_create_new();
void
  
  pkg_create_free(struct
    pkg_create *);
bool
  
  pkg_create_set_format(struct
    pkg_create *, const char
    *);
void
  
  pkg_create_set_compression_level(struct
    pkg_create *,
  int);
void
  
  pkg_create_set_compression_threads(struct
    pkg_create *,
  int);
void
  
  pkg_create_set_overwrite(struct
    pkg_create *,
    bool);
void
  
  pkg_create_set_rootdir(struct
    pkg_create *, const char
    *);
void
  
  pkg_create_set_output_dir(struct
    pkg_create *, const char
    *);
void
  
  pkg_create_set_timestamp(struct
    pkg_create *,
    time_t);
int
  
  pkg_create(struct
    pkg_create *, const char
    *, const char *,
    bool);
int
  
  pkg_create_i(struct
    pkg_create *, struct pkg
    *, bool);
pkg_create_new()
    Allocates a new struct pkg_create * which should be
    freed by the caller using
    pkg_create_free().
pkg_create_set_format()
    will define the compression format to use. By default "txz" except
    if specified otherwise in
    pkg.conf(5).
    It returns false if the compression format is unknown
    and fallback the the default format.
pkg_create_set_compression_level()
    take a int arguments which represents the expect
    compression level. 3 special values are accepted:
  - INT_MIN
 
  - Set the fastest compression format value
 
  - 0
 
  - Set the default (as specified in libarchive)
 
  - INT_MAX
 
  - Set the best compression ratio
 
pkg_create_set_compression_threads()
    take a int arguments which represents the expected
    numbers of threads used during compression.
    pkg_create_set_overwrite()
    Accept a boolean to define the default behaviour when creating a package and
    a local file already exists. The default behaviour is to overwrite.
pkg_create_set_rootdir()
    Tells the program where to find the root directory used for packaging (it is
    also known as staging area). If none is provided pkg will consider
    ‘/’.
pkg_create_set_output_dir()
    Tells the program where to create the new packages. By default it will
    consider the current directory of the running program.
pkg_create_set_timestamp()
    Define the timestamp to use ad creation and modification time for the files
    to be packaged. By default it will use the timestamp of the files on the
    filesystem.
pkg_create()
    create a package from scratch using the metadata and
    plist as input. The metadata can
    be either directly a UCL manifest, or a directory containing multiple
  files:
  - +MANIFEST
 
  - The UCL manifest
 
  - +DESC
 
  - A textual description (optional)
 
  - shell scripts (optional):
 
  - 
    
      - +INSTALL
 
      - Shell script that will be run during both in post and pre install
          (DEPRECATED)
 
      - +PRE_INSTALL
 
      - Shell script that will be run during pre install phase
 
      - +POST_INSTALL
 
      - Shell script that will be run during post install phase
 
      - +DEINSTALL
 
      - Shell script that will be run during both in post and pre deinstall
          (DEPRECATED)
 
      - +PRE_DEINSTALL
 
      - Shell script that will be run during pre deinstall phase
 
      - +POST_DEINSTALL
 
      - Shell script that will be run during post deinstall phase
 
      - pkg-install
 
      - Shell script that will be run during both in post and pre install
          (DEPRECATED)
 
      - pkg-pre-install
 
      - Shell script that will be run during pre install phase
 
      - pkg-post-install
 
      - Shell script that will be run during post install phase
 
      - pkg-deinstall
 
      - Shell script that will be run during both in post and pre deinstall
          (DEPRECATED)
 
      - pkg-pre-deinstall
 
      - Shell script that will be run during pre deinstall phase
 
      - pkg-post-deinstall
 
      - Shell script that will be run during post deinstall phase
 
    
   
  - lua scripts (optional):
 
  - 
    
      - pkg-pre-install.lua
 
      - Lua script that will be run during pre install phase
 
      - pkg-post-install.lua
 
      - Lua script that will be run during post install phase
 
      - pkg-pre-deinstall.lua
 
      - Lua script that will be run during pre deinstall phase
 
      - pkg-post-deinstall.lua
 
      - Lua script that will be run during post deinstall phase
 
    
   
pkg_create_i()
    create a package for the provided installed pkg. If
    hash is set to true then the
    file name will in the form:
    <pkgname>-<pkgversion>-<shorthash>.<extention>
    instead of <pkgname>-<pkgversion>.<extension>.