FOSSology  4.6.0-rc1
Open Source License Compliance by Open Source Software
pkgagent.h
Go to the documentation of this file.
1 /*
2  SPDX-FileCopyrightText: © 2010-2011 Hewlett-Packard Development Company, L.P.
3 
4  SPDX-License-Identifier: GPL-2.0-only
5 */
10 #ifndef _PKGAGENT_H
11 #define _PKGAGENT_H 1
12 
13 #include <stdlib.h>
14 #include <stdio.h>
15 #include <string.h>
16 #include <ctype.h>
17 #include <signal.h>
18 #include <libgen.h>
19 #include <time.h>
20 
21 #include <sys/wait.h>
22 
23 #include "rpm/rpmlib.h"
24 #include "rpm/rpmts.h"
25 #include "rpm/rpmlog.h"
26 #include "rpm/rpmmacro.h"
27 #ifdef HAVE_RPM_CRYPTO_H
28 #include "rpm/rpmcrypto.h"
29 #endif
30 
31 #include <libfossology.h>
32 
33 #define MAXCMD 5000
34 #define MAXLENGTH 256
35 
40 struct rpmpkginfo
41 {
42  char pkgName[256];
43  char pkgAlias[256];
44  char pkgArch[64];
45  char version[64];
46  char rpmFilename[256];
47  char license[512];
48  char group[128];
49  char packager[1024];
50  char release[64];
51  char buildDate[128];
52  char vendor[128];
53  char url[256];
54  char sourceRPM[256];
55  char summary[MAXCMD];
56  char description[MAXCMD];
57  long pFileFk;
58  char pFile[MAXCMD];
59  char **requires;
60  int req_size;
61 };
62 
67 struct debpkginfo
68 {
69  char pkgName[MAXCMD];
70  char source[MAXCMD];
71  char version[MAXCMD];
72  char section[MAXCMD];
73  char priority[MAXCMD];
74  char pkgArch[MAXCMD];
76  char maintainer[MAXCMD];
77  char homepage[MAXCMD];
78  char summary[MAXCMD];
79  char description[MAXCMD];
80  long pFileFk;
81  char pFile[MAXCMD];
82  char **depends;
83  int dep_size;
84  char uploaders[MAXCMD];
85  char format[MAXCMD];
86  char standardsVersion[MAXCMD];
87 };
88 
89 extern int Verbose;
90 extern PGconn* db_conn;
91 
92 int ProcessUpload(long upload_pk);
93 
94 int GetMetadata(char *pkg, struct rpmpkginfo *pi);
95 
96 int RecordMetadataRPM(struct rpmpkginfo *pi);
97 
98 int GetMetadataDebBinary(long upload_pk, struct debpkginfo *pi);
99 
100 int RecordMetadataDEB(struct debpkginfo *pi);
101 
102 int GetMetadataDebSource(char *repFile, struct debpkginfo *pi);
103 
104 void Usage(char *Name);
105 
106 char *GetFieldValue(char *Sin, char *Field, int FieldMax,char *Value, int ValueMax, char Separator);
107 #endif /* _PKGAGENT_H */
The main FOSSology C library.
void Usage(char *Name)
Say how to run this program.
Definition: adj2nest.c:561
char * GetFieldValue(char *Sin, char *Field, int FieldMax, char *Value, int ValueMax, char Separator)
Given a string that contains field='value' pairs, save the items.
Definition: pkgagent.c:101
int GetMetadata(char *pkg, struct rpmpkginfo *pi)
Get RPM package info.
Definition: pkgagent.c:505
int GetMetadataDebSource(char *repFile, struct debpkginfo *pi)
Get debian source package info from .dsc file.
Definition: pkgagent.c:892
int ProcessUpload(long upload_pk)
Get all pfile need to processed use upload_pk.
Definition: pkgagent.c:162
PGconn * db_conn
the connection to Database
Definition: pkgagent.c:22
int RecordMetadataDEB(struct debpkginfo *pi)
Store debian package info into database.
Definition: pkgagent.c:818
int Verbose
Verbose level.
Definition: util.c:19
int RecordMetadataRPM(struct rpmpkginfo *pi)
Store rpm package info into database.
Definition: pkgagent.c:563
int GetMetadataDebBinary(long upload_pk, struct debpkginfo *pi)
Get debian binary package info.
Definition: pkgagent.c:670
const char * upload_pk
Definition: sqlstatements.h:82
Holds meta info of Debian packages.
Definition: pkgagent.h:68
char section[MAXCMD]
Package section.
Definition: pkgagent.h:72
char priority[MAXCMD]
Package priority.
Definition: pkgagent.h:73
char standardsVersion[MAXCMD]
Package standards version.
Definition: pkgagent.h:86
long pFileFk
Package pfile in FOSSology.
Definition: pkgagent.h:80
char ** depends
Package dependency list.
Definition: pkgagent.h:82
char summary[MAXCMD]
Package summary.
Definition: pkgagent.h:78
char pFile[MAXCMD]
Package pfile hash.
Definition: pkgagent.h:81
char version[MAXCMD]
Package version.
Definition: pkgagent.h:71
char format[MAXCMD]
Package format.
Definition: pkgagent.h:85
char uploaders[MAXCMD]
Package contributors.
Definition: pkgagent.h:84
char maintainer[MAXCMD]
Package maintainer.
Definition: pkgagent.h:76
int installedSize
Size of package after install.
Definition: pkgagent.h:75
char pkgArch[MAXCMD]
Package architecture.
Definition: pkgagent.h:74
char description[MAXCMD]
Package description.
Definition: pkgagent.h:79
int dep_size
Package dependency list size.
Definition: pkgagent.h:83
char source[MAXCMD]
Package source.
Definition: pkgagent.h:70
char pkgName[MAXCMD]
Package name.
Definition: pkgagent.h:69
char homepage[MAXCMD]
Package link.
Definition: pkgagent.h:77
Definition: nomos.h:426
Holds meta info of rpm packages.
Definition: pkgagent.h:41
char buildDate[128]
Package build date.
Definition: pkgagent.h:51
char pFile[MAXCMD]
Package pfile hash.
Definition: pkgagent.h:58
char group[128]
Package group.
Definition: pkgagent.h:48
char version[64]
Package version.
Definition: pkgagent.h:45
char summary[MAXCMD]
Package summary.
Definition: pkgagent.h:55
char pkgName[256]
RPM package name.
Definition: pkgagent.h:42
char description[MAXCMD]
Package description.
Definition: pkgagent.h:56
char rpmFilename[256]
RPM file name.
Definition: pkgagent.h:46
char pkgArch[64]
Package architecture.
Definition: pkgagent.h:44
char sourceRPM[256]
Package source.
Definition: pkgagent.h:54
int req_size
Package dependency list size.
Definition: pkgagent.h:60
char pkgAlias[256]
Package alias.
Definition: pkgagent.h:43
char url[256]
Package link.
Definition: pkgagent.h:53
long pFileFk
Package pfile in FOSSology.
Definition: pkgagent.h:57
char release[64]
Package release.
Definition: pkgagent.h:50
char packager[1024]
Packager.
Definition: pkgagent.h:49
char ** requires
Package dependency list.
Definition: pkgagent.h:59
char vendor[128]
Package vendor.
Definition: pkgagent.h:52