From owner-p4-projects@FreeBSD.ORG Mon Jul 6 23:20:37 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8612E10656E3; Mon, 6 Jul 2009 23:20:37 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3ACA010656EC for ; Mon, 6 Jul 2009 23:20:37 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 276DC8FC18 for ; Mon, 6 Jul 2009 23:20:37 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n66NKbNk037812 for ; Mon, 6 Jul 2009 23:20:37 GMT (envelope-from dforsyth@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n66NKb0Y037810 for perforce@freebsd.org; Mon, 6 Jul 2009 23:20:37 GMT (envelope-from dforsyth@FreeBSD.org) Date: Mon, 6 Jul 2009 23:20:37 GMT Message-Id: <200907062320.n66NKb0Y037810@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to dforsyth@FreeBSD.org using -f From: David Forsythe To: Perforce Change Reviews Cc: Subject: PERFORCE change 165726 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jul 2009 23:20:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=165726 Change 165726 by dforsyth@squirrel on 2009/07/06 23:20:07 Make changes for new design in pkg.h. Cannot be built. Affected files ... .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.c#30 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.h#28 edit Differences ... ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.c#30 (text+ko) ==== @@ -264,6 +264,45 @@ return (pkg_plist_conflicts(p->plist)); } +int +pkg_add_file(struct pkg *p, const char *path, const char *md5, + const char *owner, const char *group, const char *mode) +{ + int status; + struct pkg_file *pf; + + if (p == NULL) + arg_rage_quit(__func__, "Not a valid package.", RAGE_AT_CLIENT); + + if (path == NULL) + arg_rage_quit(__func__, "Not a valid path.", RAGE_AT_CLIENT); + if (md5 == NULL) + arg_rage_quit(__func__, "Not a valid md5.", RAGE_AT_CLIENT); + if (owner == NULL) + arg_rage_quit(__func__, "Not a valid owner.", RAGE_AT_CLIENT); + if (group == NULL) + arg_rage_quit(__func__, "Not a valid group.", RAGE_AT_CLIENT); + if (mode == NULL) + arg_rage_quit(__func__, "Not a valid mode.", RAGE_AT_CLIENT); + + pf = pkg_file_new(); + if (pf == NULL) { + return (PKG_MEMORY_ERR | PKG_NOT_OK); + + status = PKG_OK; + + status |= pkg_file_set_path(pf, path); + status |= pkg_file_set_md5(pf, md5); + status |= pkg_file_set_owner(pf, owner); + status |= pkg_file_set_group(pf, group); + status |= pkg_file_set_mode(pf, mode); + + if (status != PKG_OK) + pkg_file_delete(pf); + + return (status); +} + /* Set the short comment for this package */ int pkg_set_comment(struct pkg *p, const char *comment) ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.h#28 (text+ko) ==== @@ -58,175 +58,8 @@ #define BAD_OR_UNKNOWN_VALUE "???" -/* TODO: All these explicit functions are great, but the client doesn't - * need to make a "new" pkg_cfl, when all they really have to insert are a - * sting and an integer (they dont even have to set the int). So write - * some functions that give them ways to make these entities with a single - * call. */ - -/* pkg_file */ - -struct pkg_file; - -struct pkg_file *pkg_file_new(void); - -const char *pkg_file_path(struct pkg_file *pf); - -const char *pkg_file_md5(struct pkg_file *pf); - -const char *pkg_file_owner(struct pkg_file *pf); - -const char *pkg_file_group(struct pkg_file *pf); - -const char *pkg_file_mode(struct pkg_file *pf); - -int pkg_file_set_path(struct pkg_file *pf, const char *path); - -int pkg_file_set_md5(struct pkg_file *pf, const char *md5); - -int pkg_file_set_owner(struct pkg_file *pf, const char *owner); - -int pkg_file_set_group(struct pkg_file *pf, const char *group); - -int pkg_file_set_mode(struct pkg_file *pf, const char *mode); - -/* pkg_dep */ - -struct pkg_dep; - -struct pkg_dep *pkg_dep_new(void); - -struct pkg_dep *pkg_dep_set_name(struct pkg_dep *pd, const char *name); - -struct pkg_dep *pkg_dep_set_origin(struct pkg_dep *pd, const char *origin); - -const char *pkg_dep_name(struct pkg_dep *pd); - -const char *pkg_dep_origin(struct pkg_dep *pd); - -/* pkg_cfl */ - -struct pkg_cfl; - -struct pkg_cfl *pkg_cfl_new(void); - -int pkg_cfl_set_name(struct pkg_cfl *pc, const char *name); - -const char *pkg_cfl_name(struct pkg_cfl *pc); - /* pkg */ -/* Add mtree stuff later. */ - -struct pkg; - -struct pkg *pkg_new(void); - -void pkg_reset(struct pkg *p); - -char *pkg_ident(struct pkg *p); - -char *pkg_name(struct pkg *p); - -char *pkg_cwd(struct pkg *p); - -char *pkg_origin(struct pkg *p); - -char *pkg_comment(struct pkg *p); - -char *pkg_description(struct pkg *p); - -char *pkg_display(struct pkg *p); - -char *pkg_mtree_file(struct pkg *p); - -int pkg_extract_in_place(struct pkg *p); - -int pkg_preserve(struct pkg *p); - -int pkg_complete(struct pkg *p); - -int pkg_set_ident(struct pkg *p, const char *ident); - -int pkg_set_name(struct pkg *p, const char *name); - -int pkg_set_cwd(struct pkg *p, const char *cwd); - -int pkg_set_orgin(struct pkg *p, const char *orgin); - -int pkg_set_comment(struct pkg *p, const char *comment); - -int pkg_set_contents(struct pkg *p, const char *contents); - -int pkg_set_description(struct pkg *p, const char *description); - -int pkg_set_mtree_dirs(struct pkg *p, const char *mtree_dirs); - -int pkg_set_required_by(struct pkg *p, const char *required_by); - -int pkg_set_display(struct pkg *p, const char *display); - -#if 0 -int pkg_set_mtree_file(struct pkg *p, const char *mtree_file); -#endif - -int pkg_parse_plist(struct pkg *p); - -void pkg_pkg_file_list_init(struct pkg *p); - -struct pkg_file *pkg_pkg_file_list_next(struct pkg *p); - -int pkg_pkg_file_list_reset(struct pkg *p); - -int pkg_pkg_file_add(struct pkg *p, struct pkg_file *pf); - -int pkg_pkg_file_remove(struct pkg *p, struct pkg_file *pf); - -void pkg_pkg_dep_list_init(struct pkg *p); - -struct pkg_dep *pkg_pkg_dep_list_next(struct pkg *p); - -void pkg_pkg_cfl_list_init(struct pkg *p); - -struct pkg_cfl *pkg_pkg_cfl_list_next(struct pkg *p); - -void pkg_delete(struct pkg *p); - -/* pkgdb */ - -struct pkgdb; - -struct pkgdb *pkgdb_new(int type); - -int pkgdb_db_open(struct pkgdb *db, const char *db_root); - -int pkgdb_db_init(struct pkgdb *db); - -char *pkgdb_db_root(struct pkgdb *db); - -int pkgdb_db_close(struct pkgdb *db); - -int pkgdb_pkg_next(struct pkgdb *db, struct pkg *p); - -int pkgdb_pkg_get(struct pkgdb *db, struct pkg *p, const char *ident); - -#if 0 -int pkgdb_pkg_put(struct pkgdb *db, struct pkg *p); - -int pkgdb_db_sync(struct pkgdb *db); -#endif - -void pkgdb_db_delete(struct pkgdb *db); - -/* Util (will probably dissapear). */ - -void pkg_dump(struct pkg *p, FILE *stream); - - -#if 0 - -/* pkg */ - struct pkg *pkg_new(); void pkg_delete(struct pkg *p); int pkg_reset(struct pkg *p); @@ -275,7 +108,7 @@ int pkgdb_init(struct pkgdb *db); /* Return a list of packages by _ident_. */ -const char *pkgdb_all_pkgs(struct pkgdb *db); +const char *pkgdb_all_pkgs(struct pkgdb *db); /* rename. this is lulz. */ int pkgdb_select_pkg(struct pkgdb *db, struct pkg *p, const char *pkgident); int pkgdb_insert_pkg(struct pkgdb *db, struct pkg *p); @@ -293,5 +126,3 @@ void pkgarcv_delete(struct pkgarcv *pa; #endif - -#endif