Radix cross Linux package tools

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

3 Commits   0 Branches   2 Tags
11c606a6 (kx 2023-04-11 01:18:34 +0300   1) 
11c606a6 (kx 2023-04-11 01:18:34 +0300   2) /**********************************************************************
11c606a6 (kx 2023-04-11 01:18:34 +0300   3) 
11c606a6 (kx 2023-04-11 01:18:34 +0300   4)   Copyright 2019 Andrey V.Kosteltsev
11c606a6 (kx 2023-04-11 01:18:34 +0300   5) 
11c606a6 (kx 2023-04-11 01:18:34 +0300   6)   Licensed under the Radix.pro License, Version 1.0 (the "License");
11c606a6 (kx 2023-04-11 01:18:34 +0300   7)   you may not use this file  except  in compliance with the License.
11c606a6 (kx 2023-04-11 01:18:34 +0300   8)   You may obtain a copy of the License at
11c606a6 (kx 2023-04-11 01:18:34 +0300   9) 
11c606a6 (kx 2023-04-11 01:18:34 +0300  10)      https://radix.pro/licenses/LICENSE-1.0-en_US.txt
11c606a6 (kx 2023-04-11 01:18:34 +0300  11) 
11c606a6 (kx 2023-04-11 01:18:34 +0300  12)   Unless required by applicable law or agreed to in writing, software
11c606a6 (kx 2023-04-11 01:18:34 +0300  13)   distributed under the License is distributed on an "AS IS" BASIS,
11c606a6 (kx 2023-04-11 01:18:34 +0300  14)   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
11c606a6 (kx 2023-04-11 01:18:34 +0300  15)   implied.
11c606a6 (kx 2023-04-11 01:18:34 +0300  16) 
11c606a6 (kx 2023-04-11 01:18:34 +0300  17)  **********************************************************************/
11c606a6 (kx 2023-04-11 01:18:34 +0300  18) 
11c606a6 (kx 2023-04-11 01:18:34 +0300  19) #ifndef _PKG_LIST_H_
11c606a6 (kx 2023-04-11 01:18:34 +0300  20) #define _PKG_LIST_H_
11c606a6 (kx 2023-04-11 01:18:34 +0300  21) 
11c606a6 (kx 2023-04-11 01:18:34 +0300  22) #ifdef __cplusplus
11c606a6 (kx 2023-04-11 01:18:34 +0300  23) extern "C" {
11c606a6 (kx 2023-04-11 01:18:34 +0300  24) #endif
11c606a6 (kx 2023-04-11 01:18:34 +0300  25) 
11c606a6 (kx 2023-04-11 01:18:34 +0300  26) #include <dlist.h>
11c606a6 (kx 2023-04-11 01:18:34 +0300  27) 
11c606a6 (kx 2023-04-11 01:18:34 +0300  28) 
11c606a6 (kx 2023-04-11 01:18:34 +0300  29) enum _tree_format {
11c606a6 (kx 2023-04-11 01:18:34 +0300  30)   TFMT_BIN = 0,
11c606a6 (kx 2023-04-11 01:18:34 +0300  31)   TFMT_DAG,
11c606a6 (kx 2023-04-11 01:18:34 +0300  32) 
11c606a6 (kx 2023-04-11 01:18:34 +0300  33)   TFMT_UNKNOWN
11c606a6 (kx 2023-04-11 01:18:34 +0300  34) };
11c606a6 (kx 2023-04-11 01:18:34 +0300  35) 
11c606a6 (kx 2023-04-11 01:18:34 +0300  36) enum _procedure
11c606a6 (kx 2023-04-11 01:18:34 +0300  37) {
11c606a6 (kx 2023-04-11 01:18:34 +0300  38)   INSTALL = 0, /* 'install' */
11c606a6 (kx 2023-04-11 01:18:34 +0300  39)   UPDATE       /* 'update'  */
11c606a6 (kx 2023-04-11 01:18:34 +0300  40) };
11c606a6 (kx 2023-04-11 01:18:34 +0300  41) 
11c606a6 (kx 2023-04-11 01:18:34 +0300  42) enum _priority
11c606a6 (kx 2023-04-11 01:18:34 +0300  43) {
11c606a6 (kx 2023-04-11 01:18:34 +0300  44)   REQUIRED = 0, /* synonims: REQUIRED    | required    | REQ | req */
11c606a6 (kx 2023-04-11 01:18:34 +0300  45)   RECOMMENDED,  /* synonims: RECOMMENDED | recommended | REC | rec */
11c606a6 (kx 2023-04-11 01:18:34 +0300  46)   OPTIONAL,     /* synonims: OPTIONAL    | optional    | OPT | opt */
11c606a6 (kx 2023-04-11 01:18:34 +0300  47)   SKIP          /* synonims: SKIP        | skip        | SKP | skp */
11c606a6 (kx 2023-04-11 01:18:34 +0300  48) };
11c606a6 (kx 2023-04-11 01:18:34 +0300  49) 
11c606a6 (kx 2023-04-11 01:18:34 +0300  50) 
11c606a6 (kx 2023-04-11 01:18:34 +0300  51) struct pkginfo
11c606a6 (kx 2023-04-11 01:18:34 +0300  52) {
11c606a6 (kx 2023-04-11 01:18:34 +0300  53)   char   *name;
11c606a6 (kx 2023-04-11 01:18:34 +0300  54)   char   *version;
11c606a6 (kx 2023-04-11 01:18:34 +0300  55)   char   *arch;
11c606a6 (kx 2023-04-11 01:18:34 +0300  56)   char   *distro_name;
11c606a6 (kx 2023-04-11 01:18:34 +0300  57)   char   *distro_version;
11c606a6 (kx 2023-04-11 01:18:34 +0300  58)   char   *group;
11c606a6 (kx 2023-04-11 01:18:34 +0300  59)   char   *short_description;
11c606a6 (kx 2023-04-11 01:18:34 +0300  60)   char   *url;
11c606a6 (kx 2023-04-11 01:18:34 +0300  61)   char   *license;
11c606a6 (kx 2023-04-11 01:18:34 +0300  62)   size_t  uncompressed_size; /* size in 1024-byte blocks */
11c606a6 (kx 2023-04-11 01:18:34 +0300  63)   size_t  compressed_size;   /* size in bytes            */
11c606a6 (kx 2023-04-11 01:18:34 +0300  64)   int     total_files;
11c606a6 (kx 2023-04-11 01:18:34 +0300  65) };
11c606a6 (kx 2023-04-11 01:18:34 +0300  66) 
11c606a6 (kx 2023-04-11 01:18:34 +0300  67) struct pkg
11c606a6 (kx 2023-04-11 01:18:34 +0300  68) {
11c606a6 (kx 2023-04-11 01:18:34 +0300  69)   char *group;
11c606a6 (kx 2023-04-11 01:18:34 +0300  70)   char *name;
11c606a6 (kx 2023-04-11 01:18:34 +0300  71)   char *version;
11c606a6 (kx 2023-04-11 01:18:34 +0300  72) 
11c606a6 (kx 2023-04-11 01:18:34 +0300  73)   enum  _procedure procedure; /* install procedure */
11c606a6 (kx 2023-04-11 01:18:34 +0300  74) };
11c606a6 (kx 2023-04-11 01:18:34 +0300  75) 
11c606a6 (kx 2023-04-11 01:18:34 +0300  76) struct references
11c606a6 (kx 2023-04-11 01:18:34 +0300  77) {
11c606a6 (kx 2023-04-11 01:18:34 +0300  78)   int    size;
11c606a6 (kx 2023-04-11 01:18:34 +0300  79)   struct dlist *list; /* list of pkg structs */
11c606a6 (kx 2023-04-11 01:18:34 +0300  80) };
11c606a6 (kx 2023-04-11 01:18:34 +0300  81) 
11c606a6 (kx 2023-04-11 01:18:34 +0300  82) struct requires
11c606a6 (kx 2023-04-11 01:18:34 +0300  83) {
11c606a6 (kx 2023-04-11 01:18:34 +0300  84)   int    size;
11c606a6 (kx 2023-04-11 01:18:34 +0300  85)   struct dlist *list; /* list of pkg structs */
11c606a6 (kx 2023-04-11 01:18:34 +0300  86) };
11c606a6 (kx 2023-04-11 01:18:34 +0300  87) 
11c606a6 (kx 2023-04-11 01:18:34 +0300  88) struct files
11c606a6 (kx 2023-04-11 01:18:34 +0300  89) {
11c606a6 (kx 2023-04-11 01:18:34 +0300  90)   int    size;
11c606a6 (kx 2023-04-11 01:18:34 +0300  91)   struct dlist *list;     /* list of strings */
11c606a6 (kx 2023-04-11 01:18:34 +0300  92) };
11c606a6 (kx 2023-04-11 01:18:34 +0300  93) 
11c606a6 (kx 2023-04-11 01:18:34 +0300  94) 
11c606a6 (kx 2023-04-11 01:18:34 +0300  95) struct package
11c606a6 (kx 2023-04-11 01:18:34 +0300  96) {
11c606a6 (kx 2023-04-11 01:18:34 +0300  97)   struct pkginfo *pkginfo;
11c606a6 (kx 2023-04-11 01:18:34 +0300  98) 
11c606a6 (kx 2023-04-11 01:18:34 +0300  99)   char  *hardware;      /* optional parameter for JSON */
11c606a6 (kx 2023-04-11 01:18:34 +0300 100) 
11c606a6 (kx 2023-04-11 01:18:34 +0300 101)   char  *tarball;
11c606a6 (kx 2023-04-11 01:18:34 +0300 102)   enum  _procedure procedure; /* install procedure     */
11c606a6 (kx 2023-04-11 01:18:34 +0300 103)   enum  _priority  priority;  /* install user priority */
11c606a6 (kx 2023-04-11 01:18:34 +0300 104) 
11c606a6 (kx 2023-04-11 01:18:34 +0300 105)   struct references *references;
11c606a6 (kx 2023-04-11 01:18:34 +0300 106)   struct requires   *requires;
11c606a6 (kx 2023-04-11 01:18:34 +0300 107) 
11c606a6 (kx 2023-04-11 01:18:34 +0300 108)   char  *description;
11c606a6 (kx 2023-04-11 01:18:34 +0300 109) 
11c606a6 (kx 2023-04-11 01:18:34 +0300 110)   char  *restore_links;
11c606a6 (kx 2023-04-11 01:18:34 +0300 111)   char  *install_script;
11c606a6 (kx 2023-04-11 01:18:34 +0300 112) 
11c606a6 (kx 2023-04-11 01:18:34 +0300 113)   struct files *files;
11c606a6 (kx 2023-04-11 01:18:34 +0300 114) };
11c606a6 (kx 2023-04-11 01:18:34 +0300 115) 
11c606a6 (kx 2023-04-11 01:18:34 +0300 116) 
11c606a6 (kx 2023-04-11 01:18:34 +0300 117) extern char *htmlroot;
11c606a6 (kx 2023-04-11 01:18:34 +0300 118) extern char *hardware;
11c606a6 (kx 2023-04-11 01:18:34 +0300 119) extern int   minimize;
11c606a6 (kx 2023-04-11 01:18:34 +0300 120) 
11c606a6 (kx 2023-04-11 01:18:34 +0300 121) extern char *strprio( enum _priority priority, int short_name );
11c606a6 (kx 2023-04-11 01:18:34 +0300 122) extern char *strproc( enum _procedure procedure );
11c606a6 (kx 2023-04-11 01:18:34 +0300 123) 
11c606a6 (kx 2023-04-11 01:18:34 +0300 124) extern struct dlist *tarballs;
11c606a6 (kx 2023-04-11 01:18:34 +0300 125) 
11c606a6 (kx 2023-04-11 01:18:34 +0300 126) extern void add_tarball( char *tarball ); /* append the tarballs list */
11c606a6 (kx 2023-04-11 01:18:34 +0300 127) extern void free_tarballs( void );
11c606a6 (kx 2023-04-11 01:18:34 +0300 128) extern const char *find_tarball( const char *name );
11c606a6 (kx 2023-04-11 01:18:34 +0300 129) extern void print_tarballs( void );
11c606a6 (kx 2023-04-11 01:18:34 +0300 130) 
11c606a6 (kx 2023-04-11 01:18:34 +0300 131) 
11c606a6 (kx 2023-04-11 01:18:34 +0300 132) extern struct dlist *srcpkgs;
11c606a6 (kx 2023-04-11 01:18:34 +0300 133) 
11c606a6 (kx 2023-04-11 01:18:34 +0300 134) extern struct pkg *pkg_alloc( void );
11c606a6 (kx 2023-04-11 01:18:34 +0300 135) extern void pkg_free( struct pkg *pkg );
11c606a6 (kx 2023-04-11 01:18:34 +0300 136) 
11c606a6 (kx 2023-04-11 01:18:34 +0300 137) extern void add_srcpkg( struct pkg *pkg );
11c606a6 (kx 2023-04-11 01:18:34 +0300 138) extern void free_srcpkgs( void );
11c606a6 (kx 2023-04-11 01:18:34 +0300 139) 
11c606a6 (kx 2023-04-11 01:18:34 +0300 140) extern struct dlist *packages;
11c606a6 (kx 2023-04-11 01:18:34 +0300 141) 
11c606a6 (kx 2023-04-11 01:18:34 +0300 142) extern struct package *package_alloc( void );
11c606a6 (kx 2023-04-11 01:18:34 +0300 143) extern void package_free( struct package *package );
11c606a6 (kx 2023-04-11 01:18:34 +0300 144) 
11c606a6 (kx 2023-04-11 01:18:34 +0300 145) extern void add_reference( struct package *package, struct pkg *pkg );
11c606a6 (kx 2023-04-11 01:18:34 +0300 146) extern void add_required( struct package *package, struct pkg *pkg );
11c606a6 (kx 2023-04-11 01:18:34 +0300 147) extern void add_file( struct package *package, const char *fname );
11c606a6 (kx 2023-04-11 01:18:34 +0300 148) extern void package_print_references( struct package *package );
11c606a6 (kx 2023-04-11 01:18:34 +0300 149) extern void package_print_requires( struct package *package );
11c606a6 (kx 2023-04-11 01:18:34 +0300 150) extern void package_print_files( struct package *package );
11c606a6 (kx 2023-04-11 01:18:34 +0300 151) 
11c606a6 (kx 2023-04-11 01:18:34 +0300 152) extern void add_package( struct package *package ); /* append the packages list */
11c606a6 (kx 2023-04-11 01:18:34 +0300 153) extern void free_packages( void );
11c606a6 (kx 2023-04-11 01:18:34 +0300 154) 
11c606a6 (kx 2023-04-11 01:18:34 +0300 155) 
11c606a6 (kx 2023-04-11 01:18:34 +0300 156) extern struct dlist *provides;
11c606a6 (kx 2023-04-11 01:18:34 +0300 157) extern struct dlist *extern_requires;
11c606a6 (kx 2023-04-11 01:18:34 +0300 158) 
11c606a6 (kx 2023-04-11 01:18:34 +0300 159) extern  int create_provides_list( struct dlist *srcpkgs );
11c606a6 (kx 2023-04-11 01:18:34 +0300 160) extern void print_provides_list( const char *plist_fname );
11c606a6 (kx 2023-04-11 01:18:34 +0300 161) extern void print_provides_tree( const char *json_fname, enum _tree_format tree_format );
11c606a6 (kx 2023-04-11 01:18:34 +0300 162) extern void free_provides_list( void );
11c606a6 (kx 2023-04-11 01:18:34 +0300 163) 
11c606a6 (kx 2023-04-11 01:18:34 +0300 164) 
11c606a6 (kx 2023-04-11 01:18:34 +0300 165) #ifdef __cplusplus
11c606a6 (kx 2023-04-11 01:18:34 +0300 166) }  /* ... extern "C" */
11c606a6 (kx 2023-04-11 01:18:34 +0300 167) #endif
11c606a6 (kx 2023-04-11 01:18:34 +0300 168) 
11c606a6 (kx 2023-04-11 01:18:34 +0300 169) #endif /* _PKG_LIST_H_ */