Annotation of rpm2html/rpmdata.h, revision 1.22

1.1       veillard    1: /*
                      2:  * rpmdata.h : describes the data gathered for each RPM analyzed.
                      3:  *
1.12      veillard    4:  * Copyright (c) 1997 Daniel Veillard <veillard@apocalypse.org>
1.10      veillard    5:  * See COPYING for the status of this software.
1.1       veillard    6:  *
1.22    ! veillard    7:  * $Id: rpmdata.h,v 1.21 1998/03/11 06:22:40 veillard Exp $
1.1       veillard    8:  */
                      9: 
                     10: #ifndef __RPMDATA_H__
                     11: #define __RPMDATA_H__
                     12: 
                     13: #include <rpm/header.h>
                     14: 
                     15: /*
1.6       veillard   16:  * Structure associated to a local directory containing RPM files.
                     17:  */
                     18: 
1.20      veillard   19: #define MAX_URLS       256
1.16      veillard   20: #define MAX_ARCHS      (sizeof(int) * 8)
1.6       veillard   21: 
                     22: typedef struct rpm_dir {
                     23:     struct rpm_dir *next;      /* next in list */
1.14      veillard   24:     char *color;               /* The bgcolor for the pages :-) */
                     25:     char *dir;                 /* where to store the HTML files */
1.21      veillard   26:     char *subdir;              /* subdirectory for multiple archive */
1.8       veillard   27:     char *ftp;                 /* The host URL it's mirrored from */
                     28:     char *ftpsrc;              /* The host URL where src.rpm can be found */
1.14      veillard   29:     char *host;                 /* Hostname for the server */
                     30:     char *mail;                        /* mail contact for this directory */
                     31:     char *maint;               /* Maintainer name for this directory */
                     32:     char *name;                        /* Name for this repository */
                     33:     char *rpmdir;               /* The local repository */
1.6       veillard   34:     char *trust;               /* Confidences in the files */
1.14      veillard   35:     char *url;                 /* The output URL */
                     36:     int   files;               /* number of files */
                     37:     int   installbase;         /* Is this from an installed base */
                     38:     int   size;                        /* aggregated size of files */
                     39:     int   nb_mirrors;          /* numbers of mirrors */
                     40:     char *mirrors[MAX_URLS];    /* Urls for download */
1.6       veillard   41: } rpmDir, *rpmDirPtr;
                     42: 
                     43: /*
1.22    ! veillard   44:  * Structure associated to a local directory containing HTML files.
        !            45:  * We build a tree providing an actual map of the generated site.
        !            46:  */
        !            47: 
        !            48: #define MAX_SUB_DIRECTORIES    50
        !            49: typedef struct rpm_subdir {
        !            50:     struct rpm_subdir *parent; /* Parent directory ususally .. */
        !            51:     char  *name;               /* subdirectory name */
        !            52:     char  *color;              /* Color for the HTML output */
        !            53:     char  *htmlpath;           /* full path w.r.t. rpm2html_url */
        !            54:     char  *rpmpath;            /* full path w.r.t. rpm2html_dir */
        !            55:     int    nb_subdirs;         /* number of subdirectories */
        !            56:                                 /* list of the subdirectories */ 
        !            57:     struct rpm_subdir *subdirs[MAX_SUB_DIRECTORIES];
        !            58: } rpmSubdir, *rpmSubdirPtr;
        !            59: 
        !            60: /*
1.13      veillard   61:  * structure associated with an architecture.
                     62:  */
                     63: 
                     64: typedef struct rpm_arch {
                     65:     struct rpm_arch *next;     /* next in the list */
                     66:     char *os;                  /* the Operating System name */
                     67:     char *arch;                        /* the CPU architecture */
                     68: } rpmArch, *rpmArchPtr;
                     69: 
                     70: /*
1.1       veillard   71:  * structure associated with an rpm
                     72:  */
                     73: 
1.20      veillard   74: #define MAX_RES                64
                     75: #define MAX_REQU       64
1.1       veillard   76: 
                     77: typedef struct rpm_data {
1.16      veillard   78:     struct rpm_data *next;     /* next in the full list of RPMs */
                     79:     struct rpm_data *nextSoft; /* next software */
                     80:     struct rpm_data *nextArch; /* RPM for same software on other archs */
                     81:     struct rpm_data *nextHash; /* next in the hash list */
1.6       veillard   82:     rpmDirPtr dir;             /* directory infos */
1.18      veillard   83:     char *subdir;              /* subdirectory holding the rpm */
1.2       veillard   84:     char *filename;            /* name of the file */
1.1       veillard   85:     char *name;                        /* name of the software */
                     86:     char *version;             /* version of the software */
                     87:     char *release;             /* software release */
1.8       veillard   88:     char *url;                  /* URL for the software */
1.16      veillard   89:     char *arch;                 /* the architecture system */
1.8       veillard   90:     char *os;                   /* the target system */
1.1       veillard   91:     char *distribution;                /* general OS distribution */
                     92:     char *vendor;              /* general OS vendor */
1.8       veillard   93:     char *packager;            /* the packager */
1.1       veillard   94:     char *group;               /* type of software */
1.2       veillard   95:     char *summary;             /* 1 line summary */
                     96:     char *description;          /* short description */
1.8       veillard   97:     char *copyright;            /* software copyright */
1.20      veillard   98:     char *changelog;            /* changelog */
1.2       veillard   99:     char *srcrpm;              /* source RPM */
                    100:     time_t date;               /* date of packaging */
1.17      veillard  101:     time_t stamp;              /* modification file of the archive */
1.1       veillard  102:     int_32 size;               /* size of the software */
                    103:     char *host;                        /* build host */
1.19      veillard  104:     int   nb_resources;        /* #of resources provided */
                    105:     struct rpm_resource *
                    106:        resources[MAX_RES + 1];/* list of them */
                    107:     int   nb_requires;         /* #of resources required */
                    108:     struct rpm_resource *
1.4       veillard  109:           requires[MAX_REQU];  /* list of them */
1.5       veillard  110:     char *filelist;             /* the filelist */
1.1       veillard  111: } rpmData, *rpmDataPtr;
                    112: 
                    113: /*
                    114:  * structure associated with a resource
                    115:  */
                    116: 
1.15      veillard  117: #define MAX_PROVIDE 75
1.1       veillard  118: 
1.19      veillard  119: typedef struct rpm_resource {
                    120:     struct rpm_resource *next; /* next in the list */
                    121:     char *name;                        /* name of the resource */
                    122:     int   nb_provider;         /* #of resources provided */
1.17      veillard  123:     time_t stamp;              /* max stamp of the provider */
1.1       veillard  124:     struct rpm_data *
                    125:           provider[MAX_PROVIDE];/* list of them */
                    126: } rpmRess, *rpmRessPtr;
                    127: 
                    128: 
1.16      veillard  129: extern const char *archNames[MAX_ARCHS];
                    130: extern int nbArchs;
                    131: 
1.1       veillard  132: extern rpmDataPtr rpmList;
1.16      veillard  133: extern rpmDataPtr rpmSoftwareList; /* avoid different archs clash */
1.1       veillard  134: extern rpmRessPtr ressList;
1.13      veillard  135: extern rpmArchPtr archList;
1.12      veillard  136: extern rpmDataPtr rpmInstalledList;
                    137: extern rpmRessPtr ressInstalledList;
1.6       veillard  138: extern rpmDirPtr dirList;
1.22    ! veillard  139: extern rpmSubdirPtr dirTree;
        !           140: 
        !           141: extern rpmSubdirPtr rpmNewSubdir(rpmSubdirPtr dir, const char *name,
        !           142:      const char *htmlpath, const char *rpmpath, const char *color);
        !           143: extern void rpmRemoveSubdir(rpmSubdirPtr tree);
        !           144: extern void rpmFreeSubdir(rpmSubdirPtr tree);
1.1       veillard  145: 
1.16      veillard  146: extern void rpmAddSoftware(rpmDataPtr rpm);
1.1       veillard  147: extern void rpmDataPrint(rpmDataPtr rpm);
1.8       veillard  148: /* extern void rpmDataPrintAll(void); */
1.12      veillard  149: extern rpmRessPtr rpmRessAdd(char *ress, rpmDataPtr rpm, int installed);
                    150: extern rpmRessPtr rpmRequAdd(char *requ, rpmDataPtr rpm, int installed);
1.13      veillard  151: extern rpmArchPtr rpmArchAdd(char *os, char *arch);
1.22    ! veillard  152: extern rpmDataPtr rpmOpen(char *nameRpm, rpmDirPtr dir, rpmSubdirPtr tree);
1.21      veillard  153: extern rpmDataPtr rpmDirScanAll(void);
1.8       veillard  154: extern char *extractEMail(char *string);
1.3       veillard  155: 
1.21      veillard  156: extern rpmDataPtr rpmAddList(rpmDataPtr old, rpmDataPtr newlist);
                    157: 
                    158: extern rpmDataPtr rpmGroupSort(rpmDataPtr list, int installed);
                    159: extern rpmDataPtr rpmDistribSort(rpmDataPtr list, int installed);
                    160: extern rpmDataPtr rpmVendorSort(rpmDataPtr list, int installed);
                    161: extern rpmDataPtr rpmDateSort(rpmDataPtr list, int installed);
                    162: extern rpmDataPtr rpmNameSort(rpmDataPtr list, int installed);
1.1       veillard  163: 
                    164: #endif /* __RPMDATA_H__ */

Webmaster