From owner-p4-projects@FreeBSD.ORG Tue Jul 6 19:06:43 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 410DA106567B; Tue, 6 Jul 2010 19:06:43 +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 E0E46106566C for ; Tue, 6 Jul 2010 19:06:42 +0000 (UTC) (envelope-from ivoras@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 97CAE8FC21 for ; Tue, 6 Jul 2010 19:06:42 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o66J6gUM051870 for ; Tue, 6 Jul 2010 19:06:42 GMT (envelope-from ivoras@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o66J6gDc051868 for perforce@freebsd.org; Tue, 6 Jul 2010 19:06:42 GMT (envelope-from ivoras@FreeBSD.org) Date: Tue, 6 Jul 2010 19:06:42 GMT Message-Id: <201007061906.o66J6gDc051868@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to ivoras@FreeBSD.org using -f From: Ivan Voras To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 180559 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Jul 2010 19:06:43 -0000 http://p4web.freebsd.org/@@180559?ac=10 Change 180559 by ivoras@betelgeuse on 2010/07/06 19:06:35 Write PKGPATCGINDEX, a log of available patches, for the mass package creation feature. It will be used later to determine if there are packages to be patched. Affected files ... .. //depot/projects/soc2010/pkg_patch/src/patch/Makefile#21 edit .. //depot/projects/soc2010/pkg_patch/src/patch/applypatch.c#11 edit .. //depot/projects/soc2010/pkg_patch/src/patch/applypatch.h#11 edit .. //depot/projects/soc2010/pkg_patch/src/patch/hashjob.c#20 edit .. //depot/projects/soc2010/pkg_patch/src/patch/hashjob.h#20 edit .. //depot/projects/soc2010/pkg_patch/src/patch/main.c#21 edit .. //depot/projects/soc2010/pkg_patch/src/patch/mkpatch.c#19 edit .. //depot/projects/soc2010/pkg_patch/src/patch/mkpatch.h#19 edit .. //depot/projects/soc2010/pkg_patch/src/patch/mkpatchdir.c#4 edit .. //depot/projects/soc2010/pkg_patch/src/patch/mkpatchdir.h#3 edit .. //depot/projects/soc2010/pkg_patch/src/patch/pkg_patch.h#19 edit .. //depot/projects/soc2010/pkg_patch/src/patch/support.c#18 edit Differences ... ==== //depot/projects/soc2010/pkg_patch/src/patch/Makefile#21 (text+ko) ==== ==== //depot/projects/soc2010/pkg_patch/src/patch/applypatch.c#11 (text+ko) ==== ==== //depot/projects/soc2010/pkg_patch/src/patch/applypatch.h#11 (text+ko) ==== ==== //depot/projects/soc2010/pkg_patch/src/patch/hashjob.c#20 (text+ko) ==== ==== //depot/projects/soc2010/pkg_patch/src/patch/hashjob.h#20 (text+ko) ==== ==== //depot/projects/soc2010/pkg_patch/src/patch/main.c#21 (text+ko) ==== ==== //depot/projects/soc2010/pkg_patch/src/patch/mkpatch.c#19 (text+ko) ==== ==== //depot/projects/soc2010/pkg_patch/src/patch/mkpatch.h#19 (text+ko) ==== ==== //depot/projects/soc2010/pkg_patch/src/patch/mkpatchdir.c#4 (text+ko) ==== @@ -37,11 +37,12 @@ void perform_mkpatchdir(char *dir_old, char *dir_new, char *dir_patch) { - char dold[PATH_MAX], dnew[PATH_MAX], dpatch[PATH_MAX]; + char dold[PATH_MAX], dnew[PATH_MAX], dpatch[PATH_MAX], flog[PATH_MAX]; char basename[PATH_MAX], version1[20], version2[20], suff[20]; struct filelist_head fl_old, fl_new; struct pkgjoinlist_head pkglist; struct pkgjoinlist *pl; + FILE *fpl; if (realpath(dir_old, dold) == NULL) err(1, "Error resolving path: %s", dir_old); @@ -63,6 +64,11 @@ if (access(dpatch, W_OK) != 0) err(1, "Access error writing directory: %s", dpatch); + snprintf(flog, PATH_MAX, "%s/%s", dpatch, PKGPATCHINDEX_FNAME); + fpl = fopen(flog, "a+"); + if (fpl == NULL) + err(1, "Cannot open patch log file: %s", flog); + SLIST_INIT(&fl_old); SLIST_INIT(&fl_new); SLIST_INIT(&pkglist); @@ -83,7 +89,7 @@ parse_package_name(pl->name2, NULL, version2, suff); snprintf(pname, PATH_MAX, "%s-%s-%s%s", basename, version1, version2, suff); - if (Verbose > 1) + if (Verbose) printf("%s -> %s via %s\n", pl->name1, pl->name2, pname); snprintf(pold, PATH_MAX, "%s/%s", dold, pl->name1); snprintf(pnew, PATH_MAX, "%s/%s", dnew, pl->name2); @@ -91,7 +97,12 @@ if (Verbose > 2) printf("\t(%s -> %s via %s)\n", pold, pnew, ppatch); perform_mkpatch(pold, pnew, ppatch); + fprintf(fpl, "@havepatch %s-%s %s-%s %s\n", basename, version1, + basename, version2, pname); } + fclose(fpl); + filelist_free(&fl_old); + filelist_free(&fl_new); pkgjoinlist_free(&pkglist); } ==== //depot/projects/soc2010/pkg_patch/src/patch/mkpatchdir.h#3 (text+ko) ==== ==== //depot/projects/soc2010/pkg_patch/src/patch/pkg_patch.h#19 (text+ko) ==== @@ -47,6 +47,8 @@ #define PKGPATCH_VERSION_MAJOR 1 #define PKGPATCH_VERSION_MINOR 0 +#define PKGPATCHINDEX_FNAME "PKGPATCHINDEX" + #define PKGPATCH_BACKUP_DIR_ENV "PKG_BACKUPDIR" #define PKGPATCH_BACKUP_DIR_DEFAULT "/var/backups/pkg" #define PKGPATCH_BACKUP_DIR (getenv(PKGPATCH_BACKUP_DIR_ENV) ? \ ==== //depot/projects/soc2010/pkg_patch/src/patch/support.c#18 (text+ko) ====