summaryrefslogtreecommitdiff
path: root/build/buildio.h
blob: 9c44fdcd9c3da768e3ef0a84e13aa86f77801ad9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#ifndef	_H_BUILDIO_
#define	_H_BUILDIO_

/** \ingroup rpmbuild
 * \file build/buildio.h
 *  XXX this information will move elsewhere eventually
 */

#include "cpio.h"

/**
 */
typedef struct cpioSourceArchive {
    unsigned int cpioArchiveSize;
    FD_t	cpioFdIn;
/*@dependent@*/ TFI_t cpioList;
    struct rpmlead * lead;	/* XXX FIXME: exorcize lead/arch/os */
} CSA_t;

#ifdef __cplusplus
extern "C" {
#endif

/**
 * Read rpm package components from file.
 * @param filename	file name of package (or NULL to use stdin)
 * @retval specp	spec structure to carry package header (or NULL)
 * @retval lead		package lead
 * @retval sigs		package signature
 * @param csa
 * @return		0 on success
 */
int readRPM(const char *fileName, /*@out@*/ Spec *specp, /*@out@*/ struct rpmlead *lead,
		/*@out@*/ Header *sigs, CSA_t *csa);

/**
 * Write rpm package to file.
 *
 * @warning The first header argument is now passed by reference in order to
 * return a reloaded contiguous header to the caller.
 *
 * @retval hdrp		header to write (final header is returned).
 * @param filename	file name of package
 * @param type		RPMLEAD_SOURCE/RPMLEAD_BINARY
 * @param csa
 * @param passPhrase
 * @retval cookie	generated cookie (i.e build host/time)
 * @return		0 on success
 */
int writeRPM(Header *hdrp, const char *fileName, int type,
		CSA_t *csa, char *passPhrase, /*@out@*/ const char **cookie);

#ifdef __cplusplus
}
#endif

#endif	/* _H_BUILDIO_ */