!C99Shell v. 1.0 pre-release build #13!

Software: Apache/2.0.54 (Unix) mod_perl/1.99_09 Perl/v5.8.0 mod_ssl/2.0.54 OpenSSL/0.9.7l DAV/2 FrontPage/5.0.2.2635 PHP/4.4.0 mod_gzip/2.0.26.1a 

uname -a: Linux snow.he.net 4.4.276-v2-mono-1 #1 SMP Wed Jul 21 11:21:17 PDT 2021 i686 

uid=99(nobody) gid=98(nobody) groups=98(nobody) 

Safe-mode: OFF (not secure)

/usr/include/rpm/   drwxr-xr-x
Free 318.37 GB of 458.09 GB (69.5%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     rpmbuild.h (11.41 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#ifndef    _H_RPMBUILD_
#define    _H_RPMBUILD_

/** \ingroup rpmbuild
 * \file build/rpmbuild.h
 *  This is the *only* module users of librpmbuild should need to include.
 */

#include "rpmlib.h"

/* and it shouldn't need these :-( */
#include "stringbuf.h"
#include "misc.h"

/* but this will be needed */
#include "rpmspec.h"

/** \ingroup rpmbuild
 * Bit(s) to control buildSpec() operation.
 */
typedef enum rpmBuildFlags_e {
    RPMBUILD_PREP    = (1 << 0),    /*!< Execute %%prep. */
    RPMBUILD_BUILD    = (1 << 1),    /*!< Execute %%build. */
    RPMBUILD_INSTALL    = (1 << 2),    /*!< Execute %%install. */
    RPMBUILD_CLEAN    = (1 << 3),    /*!< Execute %%clean. */
    RPMBUILD_FILECHECK    = (1 << 4),    /*!< Check %%files manifest. */
    RPMBUILD_PACKAGESOURCE = (1 << 5),    /*!< Create source package. */
    RPMBUILD_PACKAGEBINARY = (1 << 6),    /*!< Create binary package(s). */
    RPMBUILD_RMSOURCE    = (1 << 7),    /*!< Remove source(s) and patch(s). */
    RPMBUILD_RMBUILD    = (1 << 8),    /*!< Remove build sub-tree. */
    RPMBUILD_STRINGBUF    = (1 << 9),    /*!< only for doScript() */
    RPMBUILD_RMSPEC    = (1 << 10)    /*!< Remove spec file. */
} rpmBuildFlags;

#include <ctype.h>

#define FREE(x) { if (x) free((void *)x); x = NULL; }
#define SKIPSPACE(s) { while (*(s) && isspace(*(s))) (s)++; }
#define SKIPNONSPACE(s) { while (*(s) && !isspace(*(s))) (s)++; }

#define PART_SUBNAME  0
#define PART_NAME     1

/** \ingroup rpmbuild
 * Spec file parser states.
 */
typedef enum rpmParseState_e {
    PART_NONE        = 0,    /*!< */
    PART_PREAMBLE    = 1,    /*!< */
    PART_PREP        = 2,    /*!< */
    PART_BUILD        = 3,    /*!< */
    PART_INSTALL    = 4,    /*!< */
    PART_CLEAN        = 5,    /*!< */
    PART_FILES        = 6,    /*!< */
    PART_PRE        = 7,    /*!< */
    PART_POST        = 8,    /*!< */
    PART_PREUN        = 9,    /*!< */
    PART_POSTUN        = 10,    /*!< */
    PART_DESCRIPTION    = 11,    /*!< */
    PART_CHANGELOG    = 12,    /*!< */
    PART_TRIGGERIN    = 13,    /*!< */
    PART_TRIGGERUN    = 14,    /*!< */
    PART_VERIFYSCRIPT    = 15,    /*!< */
    PART_BUILDARCHITECTURES= 16,/*!< */
    PART_TRIGGERPOSTUN    = 17,    /*!< */
    PART_LAST        = 18    /*!< */
} rpmParseState;

#define STRIP_NOTHING             0
#define STRIP_TRAILINGSPACE (1 << 0)
#define STRIP_COMMENTS      (1 << 1)

#ifdef __cplusplus
extern "C" {
#endif

/** \ingroup rpmbuild
 * Destroy uid/gid caches.
 */
void freeNames(void);

/** \ingroup rpmbuild
 * Return cached user name from user id.
 * @todo Implement using hash.
 * @param        user id
 * @return        cached user name
 */
/*@observer@*/ const char *getUname(uid_t uid);

/** \ingroup rpmbuild
 * Return cached user name.
 * @todo Implement using hash.
 * @param        user name
 * @return        cached user name
 */
/*@observer@*/ const char *getUnameS(const char *uname);

/** \ingroup rpmbuild
 * Return cached group name from group id.
 * @todo Implement using hash.
 * @param        group id
 * @return        cached group name
 */
/*@observer@*/ const char *getGname(gid_t gid);

/** \ingroup rpmbuild
 * Return cached group name.
 * @todo Implement using hash.
 * @param        group name
 * @return        cached group name
 */
/*@observer@*/ const char *getGnameS(const char *gname);

/** \ingroup rpmbuild
 * Return build hostname.
 * @return        build hostname
 */
/*@observer@*/ const char *const buildHost(void);

/** \ingroup rpmbuild
 * Return build time stamp.
 * @return        build time stamp
 */
/*@observer@*/ time_t *const getBuildTime(void);

/** \ingroup rpmbuild
 * Read next line from spec file.
 * @param spec        spec file control structure
 * @param strip        truncate comments?
 * @return        0 on success, 1 on EOF, <0 on error
 */
int readLine(Spec spec, int strip);

/** \ingroup rpmbuild
 * Stop reading from spec file, freeing resources.
 * @param spec        spec file control structure
 */
void closeSpec(Spec spec);

/** \ingroup rpmbuild
 * Truncate comment lines.
 * @param s        skip white space, truncate line at '#'
 */
void handleComments(char *s);

/** \ingroup rpmbuild
 * Check line for section separator, return next parser state.
 * @param        line from spec file
 * @return        next parser state
 */
rpmParseState isPart(const char *line);

/** \ingroup rpmbuild
 * Parse a number.
 * @param        line from spec file
 * @retval res        pointer to int
 * @return        0 on success, 1 on failure
 */
int parseNum(const char *line, /*@out@*/int *res);

/** \ingroup rpmbuild
 * Add changelog entry to header.
 * @param h        header
 * @param time        time of change
 * @param name        person who made the change
 * @param text        description of change
 */
void addChangelogEntry(Header h, time_t time, const char *name, const char *text);

/** \ingroup rpmbuild
 * Parse %%build/%%install/%%clean section(s) of a spec file.
 * @param spec        spec file control structure
 * @param parsePart    current rpmParseState
 * @return        >= 0 next rpmParseState, < 0 on error
 */
int parseBuildInstallClean(Spec spec, rpmParseState parsePart);

/** \ingroup rpmbuild
 * Parse %%changelog section of a spec file.
 * @param spec        spec file control structure
 * @return        >= 0 next rpmParseState, < 0 on error
 */
int parseChangelog(Spec spec);

/** \ingroup rpmbuild
 * Parse %%description section of a spec file.
 * @param spec        spec file control structure
 * @return        >= 0 next rpmParseState, < 0 on error
 */
int parseDescription(Spec spec);

/** \ingroup rpmbuild
 * Parse %%files section of a spec file.
 * @param spec        spec file control structure
 * @return        >= 0 next rpmParseState, < 0 on error
 */
int parseFiles(Spec spec);

/** \ingroup rpmbuild
 * Parse tags from preamble of a spec file.
 * @param spec        spec file control structure
 * @param initialPackage
 * @return        >= 0 next rpmParseState, < 0 on error
 */
int parsePreamble(Spec spec, int initialPackage);

/** \ingroup rpmbuild
 * Parse %%prep section of a spec file.
 * @param spec        spec file control structure
 * @return        >= 0 next rpmParseState, < 0 on error
 */
int parsePrep(Spec spec);

/** \ingroup rpmbuild
 * Parse dependency relations from spec file and/or autogenerated output buffer.
 * @param spec        spec file control structure
 * @param pkg        package control structure
 * @param field        text to parse (e.g. "foo < 0:1.2-3, bar = 5:6.7")
 * @param tag        tag, identifies type of dependency
 * @param index        (0 always)
 * @param flags        dependency flags already known from context
 * @return        0 on success, RPMERR_BADSPEC on failure
 */
int parseRCPOT(Spec spec, Package pkg, const char *field, int tag, int index,
           int flags);

/** \ingroup rpmbuild
 * Parse %%pre et al scriptlets from a spec file.
 * @param spec        spec file control structure
 * @param parsePart    current rpmParseState
 * @return        >= 0 next rpmParseState, < 0 on error
 */
int parseScript(Spec spec, int parsePart);

/** \ingroup rpmbuild
 * Parse %%trigger et al scriptlets from a spec file.
 * @param spec        spec file control structure
 * @param pkg        package control structure
 * @param field
 * @param tag
 * @return
 */
int parseTrigger(Spec spec, Package pkg, char *field, int tag);

/** \ingroup rpmbuild
 * Evaluate boolean expression.
 * @param spec        spec file control structure
 * @param expr        expression to parse
 * @return
 */
int parseExpressionBoolean(Spec spec, const char * expr);

/** \ingroup rpmbuild
 * Evaluate string expression.
 * @param spec        spec file control structure
 * @param expr        expression to parse
 * @return
 */
char *parseExpressionString(Spec spec, const char * expr);

/** \ingroup rpmbuild
 * Run a build script, assembled from spec file scriptlet section.
 *
 * @param spec        spec file control structure
 * @param what        type of script
 * @param name        name of scriptlet section
 * @param sb        lines that compose script body
 * @param test        don't execute scripts or package if testing
 * @return        0 on success, RPMERR_SCRIPT on failure
 */
int doScript(Spec spec, int what, const char *name, StringBuf sb, int test);

/** \ingroup rpmbuild
 * Find sub-package control structure by name.
 * @param spec        spec file control structure
 * @param name        (sub-)package name
 * @param flag        if PART_SUBNAME, then 1st package name is prepended
 * @retval pkg        package control structure
 * @return        0 on success, 1 on failure
 */
int lookupPackage(Spec spec, const char *name, int flag, /*@out@*/Package *pkg);

/** \ingroup rpmbuild
 * Create and initialize package control structure.
 * @param spec        spec file control structure
 * @return        package control structure
 */
/*@only@*/ Package newPackage(Spec spec);

/** \ingroup rpmbuild
 * Destroy all packages associated with spec file.
 * @param spec        spec file control structure
 */
void freePackages(Spec spec);

/** \ingroup rpmbuild
 * Destroy package control structure.
 * @param pkg        package control structure
 */
void freePackage(/*@only@*/ Package pkg);

/** \ingroup rpmbuild
 * Add dependency to header, filtering duplicates.
 * @param spec        spec file control structure
 * @param h        header
 * @param depFlags    (e.g. Requires: foo < 0:1.2-3, both "Requires:" and "<")
 * @param depName    (e.g. Requires: foo < 0:1.2-3, "foo")
 * @param depEVR    (e.g. Requires: foo < 0:1.2-3, "0:1.2-3")
 * @param index        (0 always)
 * @return        0 always
 */
int addReqProv(/*@unused@*/Spec spec, Header h,
        int flag, const char *depName, const char *depEVR, int index);

/** \ingroup rpmbuild
 * Add rpmlib feature dependency.
 * @param h        header
 * @param feature    rpm feature name (i.e. "rpmlib(Foo)" for feature Foo)
 * @param featureEVR    rpm feature epoch/version/release
 * @return        0 always
 */
int rpmlibNeedsFeature(Header h, const char * feature, const char * featureEVR);

/** \ingroup rpmbuild
 * Post-build processing for binary package(s).
 * @param spec        spec file control structure
 * @param installSpecialDoc
 * @param test        don't execute scripts or package if testing
 * @return        0 on success
 */
int processBinaryFiles(Spec spec, int installSpecialDoc, int test);

/** \ingroup rpmbuild
 * Create and initialize header for source package.
 * @param spec        spec file control structure
 */
void initSourceHeader(Spec spec);

/** \ingroup rpmbuild
 * Post-build processing for source package.
 * @param spec        spec file control structure
 * @return        0 on success
 */
int processSourceFiles(Spec spec);

/* global entry points */

/** \ingroup rpmbuild
 * Parse spec file into spec control structure.
 * @retval specp    spec file control structure
 * @param specFile
 * @param rootdir
 * @param buildRoot
 * @param inBuildArch
 * @param passPhrase
 * @param cookie
 * @param anyarch
 * @param force
 * @return
 */
int parseSpec(Spec *specp, const char *specFile, const char *rootdir,
        const char *buildRoot, int inBuildArch, const char *passPhrase,
        char *cookie, int anyarch, int force);

/** \ingroup rpmbuild
 * @retval specp    spec file control structure
 * @param specFile
 * @param rootdir
 * @param buildRoot
 * @param inBuildArch
 * @param passPhrase
 * @param cookie
 * @param anyarch
 * @param force
 * @return
 */
extern int (*parseSpecVec) (Spec *specp, const char *specFile,
        const char *rootdir, const char *buildRoot,
        int inBuildArch, const char *passPhrase,
        char *cookie, int anyarch, int force);    /* XXX FIXME */

/** \ingroup rpmbuild
 * Build stages state machine driver.
 * @param spec        spec file control structure
 * @param what        bit(s) to enable stages of build
 * @param test        don't execute scripts or package if testing
 * @return        0 on success
 */
int buildSpec(Spec spec, int what, int test);

/** \ingroup rpmbuild
 * Generate binary package(s).
 * @param spec        spec file control structure
 * @return        0 on success
 */
int packageBinaries(Spec spec);

/** \ingroup rpmbuild
 * Generate source package.
 * @param spec        spec file control structure
 * @return        0 on success
 */
int packageSources(Spec spec);

#ifdef __cplusplus
}
#endif

#endif    /* _H_RPMBUILD_ */

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0135 ]--