[Midnightbsd-cvs] src [6995] trunk/lib/libmport: add preliminary support for sample files aka @sample in the plist.

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Sat Apr 18 14:10:03 EDT 2015


Revision: 6995
          http://svnweb.midnightbsd.org/src/?rev=6995
Author:   laffer1
Date:     2015-04-18 14:10:02 -0400 (Sat, 18 Apr 2015)
Log Message:
-----------
add preliminary support for sample files aka @sample in the plist. This currently only installs the sample file, but eventually will do some additional steps.

Modified Paths:
--------------
    trunk/lib/libmport/bundle_read_install_pkg.c
    trunk/lib/libmport/create_primative.c
    trunk/lib/libmport/delete_primative.c
    trunk/lib/libmport/merge_primative.c
    trunk/lib/libmport/mport.h
    trunk/lib/libmport/plist.c
    trunk/lib/libmport/verify.c

Modified: trunk/lib/libmport/bundle_read_install_pkg.c
===================================================================
--- trunk/lib/libmport/bundle_read_install_pkg.c	2015-04-08 01:35:45 UTC (rev 6994)
+++ trunk/lib/libmport/bundle_read_install_pkg.c	2015-04-18 18:10:02 UTC (rev 6995)
@@ -105,7 +105,7 @@
   orig_cwd = getcwd(NULL, 0);
 
   /* get the file count for the progress meter */
-  if (mport_db_prepare(db, &count, "SELECT COUNT(*) FROM stub.assets WHERE type=%i AND pkg=%Q", ASSET_FILE, pkg->name) != MPORT_OK)
+  if (mport_db_prepare(db, &count, "SELECT COUNT(*) FROM stub.assets WHERE (type=%i or type=%i) AND pkg=%Q", ASSET_FILE, ASSET_SAMPLE, pkg->name) != MPORT_OK)
     RETURN_CURRENT_ERROR;
 
   switch (sqlite3_step(count)) {
@@ -196,6 +196,8 @@
           goto ERROR;
         break;
       case ASSET_FILE:
+        /* FALLS THROUGH */
+      case ASSET_SAMPLE:
         if (mport_bundle_read_next_entry(bundle, &entry) != MPORT_OK)
           goto ERROR;
         
@@ -241,7 +243,7 @@
       SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(db));    
       goto ERROR;
     }
-    if (type == ASSET_FILE) {
+    if (type == ASSET_FILE || type == ASSET_SAMPLE) {
       /* don't put the root in the database! */
       if (sqlite3_bind_text(insert, 2, file + strlen(mport->root), -1, SQLITE_STATIC) != SQLITE_OK) {
         SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(db));

Modified: trunk/lib/libmport/create_primative.c
===================================================================
--- trunk/lib/libmport/create_primative.c	2015-04-08 01:35:45 UTC (rev 6994)
+++ trunk/lib/libmport/create_primative.c	2015-04-18 18:10:02 UTC (rev 6995)
@@ -145,7 +145,7 @@
       RETURN_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(db));
     }
     
-    if (e->type == ASSET_FILE) {
+    if (e->type == ASSET_FILE || e->type == ASSET_SAMPLE) {
       /* Don't prepend cwd onto absolute file paths (this is useful for update) */
       if (*(e->data) == '/') {
         (void)strlcpy(file, e->data, FILENAME_MAX);
@@ -479,7 +479,7 @@
     if (e->type == ASSET_CWD) 
       cwd = e->data == NULL ? pack->prefix : e->data;
     
-    if (e->type != ASSET_FILE) {
+    if (e->type != ASSET_FILE && e->type != ASSET_SAMPLE) {
       continue;
     }
 

Modified: trunk/lib/libmport/delete_primative.c
===================================================================
--- trunk/lib/libmport/delete_primative.c	2015-04-08 01:35:45 UTC (rev 6994)
+++ trunk/lib/libmport/delete_primative.c	2015-04-18 18:10:02 UTC (rev 6995)
@@ -59,7 +59,7 @@
   }
 
   /* get the file count for the progress meter */
-  if (mport_db_prepare(mport->db, &stmt, "SELECT COUNT(*) FROM assets WHERE type=%i AND pkg=%Q", ASSET_FILE, pack->name) != MPORT_OK)
+  if (mport_db_prepare(mport->db, &stmt, "SELECT COUNT(*) FROM assets WHERE (type=%i or type=%i) AND pkg=%Q", ASSET_FILE, ASSET_SAMPLE, pack->name) != MPORT_OK)
     RETURN_CURRENT_ERROR;
 
   switch (sqlite3_step(stmt)) {
@@ -117,6 +117,8 @@
 
     switch (type) {
       case ASSET_FILE:
+        /* falls through */
+      case ASSET_SAMPLE:
         (mport->progress_step_cb)(++current, total, file);
         
       

Modified: trunk/lib/libmport/merge_primative.c
===================================================================
--- trunk/lib/libmport/merge_primative.c	2015-04-08 01:35:45 UTC (rev 6994)
+++ trunk/lib/libmport/merge_primative.c	2015-04-18 18:10:02 UTC (rev 6995)
@@ -397,7 +397,7 @@
       RETURN_CURRENT_ERROR;
     }
 
-    if (mport_db_prepare(db, &files, "SELECT data FROM assets WHERE pkg=%Q AND type=%i", pkgname, ASSET_FILE) != MPORT_OK) {
+    if (mport_db_prepare(db, &files, "SELECT data FROM assets WHERE pkg=%Q AND (type=%i or type=%i)", pkgname, ASSET_FILE, ASSET_SAMPLE) != MPORT_OK) {
       mport_bundle_read_finish(NULL, inbundle);
       sqlite3_finalize(stmt);
       RETURN_CURRENT_ERROR;

Modified: trunk/lib/libmport/mport.h
===================================================================
--- trunk/lib/libmport/mport.h	2015-04-08 01:35:45 UTC (rev 6994)
+++ trunk/lib/libmport/mport.h	2015-04-18 18:10:02 UTC (rev 6995)
@@ -79,7 +79,7 @@
   ASSET_COMMENT, ASSET_IGNORE, ASSET_NAME, ASSET_EXEC, ASSET_UNEXEC,
   ASSET_SRC, ASSET_DISPLY, ASSET_PKGDEP, ASSET_CONFLICTS, ASSET_MTREE,
   ASSET_DIRRM, ASSET_DIRRMTRY, ASSET_IGNORE_INST, ASSET_OPTION, ASSET_ORIGIN,
-  ASSET_DEPORIGIN, ASSET_NOINST, ASSET_DISPLAY, ASSET_DIR
+  ASSET_DEPORIGIN, ASSET_NOINST, ASSET_DISPLAY, ASSET_DIR, ASSET_SAMPLE
 };
 
 typedef enum _AssetListEntryType mportAssetListEntryType;

Modified: trunk/lib/libmport/plist.c
===================================================================
--- trunk/lib/libmport/plist.c	2015-04-08 01:35:45 UTC (rev 6994)
+++ trunk/lib/libmport/plist.c	2015-04-18 18:10:02 UTC (rev 6995)
@@ -200,6 +200,8 @@
     return ASSET_MTREE;
   if (STRING_EQ(s, "option"))
     return ASSET_OPTION;
+  if (STRING_EQ(s, "sample"))
+    return ASSET_SAMPLE;
   
   return ASSET_INVALID;
 }

Modified: trunk/lib/libmport/verify.c
===================================================================
--- trunk/lib/libmport/verify.c	2015-04-08 01:35:45 UTC (rev 6994)
+++ trunk/lib/libmport/verify.c	2015-04-18 18:10:02 UTC (rev 6995)
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__MBSDID("$MidnightBSD: src/lib/libmport/verify.c,v 1.8.2.1 2013/07/17 22:54:04 laffer1 Exp $");
+__MBSDID("$MidnightBSD$");
 
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -81,6 +81,7 @@
 
 		switch (type) {
 			case ASSET_FILE:
+			case ASSET_SAMPLE:
 				if (lstat(file, &st) != 0) {
 					mport_call_msg_cb(mport, "Can't stat %s: %s", file, strerror(errno));
 					break; /* next asset */



More information about the Midnightbsd-cvs mailing list