Radix cross Linux Package Tools

Package Tools – is a set of utilities to create, install, and update RcL packages

8 Commits   0 Branches   2 Tags
     5         kx 
     5         kx /**********************************************************************
     5         kx 
     5         kx   Copyright 2019 Andrey V.Kosteltsev
     5         kx 
     5         kx   Licensed under the Radix.pro License, Version 1.0 (the "License");
     5         kx   you may not use this file  except  in compliance with the License.
     5         kx   You may obtain a copy of the License at
     5         kx 
     5         kx      https://radix.pro/licenses/LICENSE-1.0-en_US.txt
     5         kx 
     5         kx   Unless required by applicable law or agreed to in writing, software
     5         kx   distributed under the License is distributed on an "AS IS" BASIS,
     5         kx   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
     5         kx   implied.
     5         kx 
     5         kx  **********************************************************************/
     5         kx 
     5         kx #ifndef _PKG_LIST_H_
     5         kx #define _PKG_LIST_H_
     5         kx 
     5         kx #ifdef __cplusplus
     5         kx extern "C" {
     5         kx #endif
     5         kx 
     5         kx #include <dlist.h>
     5         kx 
     5         kx 
     5         kx enum _tree_format {
     5         kx   TFMT_BIN = 0,
     5         kx   TFMT_DAG,
     5         kx 
     5         kx   TFMT_UNKNOWN
     5         kx };
     5         kx 
     5         kx enum _procedure
     5         kx {
     5         kx   INSTALL = 0, /* 'install' */
     5         kx   UPDATE       /* 'update'  */
     5         kx };
     5         kx 
     5         kx enum _priority
     5         kx {
     5         kx   REQUIRED = 0, /* synonims: REQUIRED    | required    | REQ | req */
     5         kx   RECOMMENDED,  /* synonims: RECOMMENDED | recommended | REC | rec */
     5         kx   OPTIONAL,     /* synonims: OPTIONAL    | optional    | OPT | opt */
     5         kx   SKIP          /* synonims: SKIP        | skip        | SKP | skp */
     5         kx };
     5         kx 
     5         kx 
     5         kx struct pkginfo
     5         kx {
     5         kx   char   *name;
     5         kx   char   *version;
     5         kx   char   *arch;
     5         kx   char   *distro_name;
     5         kx   char   *distro_version;
     5         kx   char   *group;
     5         kx   char   *short_description;
     5         kx   char   *url;
     5         kx   char   *license;
     5         kx   size_t  uncompressed_size; /* size in 1024-byte blocks */
     5         kx   size_t  compressed_size;   /* size in bytes            */
     5         kx   int     total_files;
     5         kx };
     5         kx 
     5         kx struct pkg
     5         kx {
     5         kx   char *group;
     5         kx   char *name;
     5         kx   char *version;
     5         kx 
     5         kx   enum  _procedure procedure; /* install procedure */
     5         kx };
     5         kx 
     5         kx struct references
     5         kx {
     5         kx   int    size;
     5         kx   struct dlist *list; /* list of pkg structs */
     5         kx };
     5         kx 
     5         kx struct requires
     5         kx {
     5         kx   int    size;
     5         kx   struct dlist *list; /* list of pkg structs */
     5         kx };
     5         kx 
     5         kx struct files
     5         kx {
     5         kx   int    size;
     5         kx   struct dlist *list;     /* list of strings */
     5         kx };
     5         kx 
     5         kx 
     5         kx struct package
     5         kx {
     5         kx   struct pkginfo *pkginfo;
     5         kx 
     5         kx   char  *hardware;      /* optional parameter for JSON */
     5         kx 
     5         kx   char  *tarball;
     5         kx   enum  _procedure procedure; /* install procedure     */
     5         kx   enum  _priority  priority;  /* install user priority */
     5         kx 
     5         kx   struct references *references;
     5         kx   struct requires   *requires;
     5         kx 
     5         kx   char  *description;
     5         kx 
     5         kx   char  *restore_links;
     5         kx   char  *install_script;
     5         kx 
     5         kx   struct files *files;
     5         kx };
     5         kx 
     5         kx 
     5         kx extern char *htmlroot;
     5         kx extern char *hardware;
     5         kx extern int   minimize;
     5         kx 
     5         kx extern char *strprio( enum _priority priority, int short_name );
     5         kx extern char *strproc( enum _procedure procedure );
     5         kx 
     5         kx extern struct dlist *tarballs;
     5         kx 
     5         kx extern void add_tarball( char *tarball ); /* append the tarballs list */
     5         kx extern void free_tarballs( void );
     5         kx extern const char *find_tarball( const char *name );
     5         kx extern void print_tarballs( void );
     5         kx 
     5         kx 
     5         kx extern struct dlist *srcpkgs;
     5         kx 
     5         kx extern struct pkg *pkg_alloc( void );
     5         kx extern void pkg_free( struct pkg *pkg );
     5         kx 
     5         kx extern void add_srcpkg( struct pkg *pkg );
     5         kx extern void free_srcpkgs( void );
     5         kx 
     5         kx extern struct dlist *packages;
     5         kx 
     5         kx extern struct package *package_alloc( void );
     5         kx extern void package_free( struct package *package );
     5         kx 
     5         kx extern void add_reference( struct package *package, struct pkg *pkg );
     5         kx extern void add_required( struct package *package, struct pkg *pkg );
     5         kx extern void add_file( struct package *package, const char *fname );
     5         kx extern void package_print_references( struct package *package );
     5         kx extern void package_print_requires( struct package *package );
     5         kx extern void package_print_files( struct package *package );
     5         kx 
     5         kx extern void add_package( struct package *package ); /* append the packages list */
     5         kx extern void free_packages( void );
     5         kx 
     5         kx 
     5         kx extern struct dlist *provides;
     5         kx extern struct dlist *extern_requires;
     5         kx 
     5         kx extern  int create_provides_list( struct dlist *srcpkgs );
     5         kx extern void print_provides_list( const char *plist_fname );
     5         kx extern void print_provides_tree( const char *json_fname, enum _tree_format tree_format );
     5         kx extern void free_provides_list( void );
     5         kx 
     5         kx 
     5         kx #ifdef __cplusplus
     5         kx }  /* ... extern "C" */
     5         kx #endif
     5         kx 
     5         kx #endif /* _PKG_LIST_H_ */