- add namespace:filesystem support to fix_legacy
authorMichael Schroeder <mls@suse.de>
Tue, 4 Mar 2008 18:18:34 +0000 (18:18 +0000)
committerMichael Schroeder <mls@suse.de>
Tue, 4 Mar 2008 18:18:34 +0000 (18:18 +0000)
src/pool.c
src/pool.h
src/repo.c

index 9bebf4a..4852054 100644 (file)
@@ -57,6 +57,7 @@ static const char *initpool_data[] = {
   "namespace:modalias",
   "namespace:splitprovides",
   "namespace:language",
+  "namespace:filesystem",
   "system:system",
   "src",
   "nosrc",
index 48e2ed2..fa4077d 100644 (file)
@@ -51,13 +51,14 @@ extern "C" {
 #define NAMESPACE_MODALIAS     19
 #define NAMESPACE_SPLITPROVIDES 20
 #define NAMESPACE_LANGUAGE     21
-#define SYSTEM_SYSTEM          22
-#define ARCH_SRC               23
-#define ARCH_NOSRC             24
-#define ARCH_NOARCH            25
-#define REPODATA_EXTERNAL      26
-#define REPODATA_KEYS          27
-#define REPODATA_LOCATION      28
+#define NAMESPACE_FILESYSTEM   22
+#define SYSTEM_SYSTEM          23
+#define ARCH_SRC               24
+#define ARCH_NOSRC             25
+#define ARCH_NOARCH            26
+#define REPODATA_EXTERNAL      27
+#define REPODATA_KEYS          28
+#define REPODATA_LOCATION      29
 
 /* The void type is usable to encode one-valued attributes, they have
    no associated data.  This is useful to encode values which many solvables
@@ -65,45 +66,45 @@ extern "C" {
    example would be the media number.  The actual value is encoded in the
    SIZE member of the key structure.  Be warned: careless use of this
    leads to combinatoric explosion of number of schemas.  */
-#define REPOKEY_TYPE_VOID      29
-#define REPOKEY_TYPE_CONSTANT  30
-#define REPOKEY_TYPE_CONSTANTID        31
-#define REPOKEY_TYPE_ID                32
-#define REPOKEY_TYPE_NUM       33
-#define REPOKEY_TYPE_U32       34
-#define REPOKEY_TYPE_DIR       35
-#define REPOKEY_TYPE_STR       36
-#define REPOKEY_TYPE_IDARRAY   37
-#define REPOKEY_TYPE_REL_IDARRAY       38
-#define REPOKEY_TYPE_DIRSTRARRAY       39
-#define REPOKEY_TYPE_DIRNUMNUMARRAY    40
-
-#define SOLVABLE_SUMMARY       41
-#define SOLVABLE_DESCRIPTION   42
-#define SOLVABLE_AUTHORS       43
-#define SOLVABLE_GROUP         44
-#define SOLVABLE_KEYWORDS      45
-#define SOLVABLE_LICENSE       46
-#define SOLVABLE_BUILDTIME     47
-#define SOLVABLE_EULA          48
-#define SOLVABLE_MESSAGEINS    49
-#define SOLVABLE_MESSAGEDEL    50
-#define SOLVABLE_INSTALLSIZE   51
-#define SOLVABLE_DISKUSAGE     52
-#define SOLVABLE_FILELIST      53
-#define SOLVABLE_INSTALLTIME   54
-#define SOLVABLE_MEDIADIR      55
-#define SOLVABLE_MEDIAFILE     56
-#define SOLVABLE_MEDIANR       57
-#define SOLVABLE_DOWNLOADSIZE  58
-#define SOLVABLE_SOURCEARCH    59
-#define SOLVABLE_SOURCENAME    60
-#define SOLVABLE_SOURCEEVR     61
-#define SOLVABLE_ISVISIBLE     62
-
-#define SOLVABLE_PATCHCATEGORY 63
-
-#define ID_NUM_INTERNAL                64
+#define REPOKEY_TYPE_VOID      30
+#define REPOKEY_TYPE_CONSTANT  31
+#define REPOKEY_TYPE_CONSTANTID        32
+#define REPOKEY_TYPE_ID                33
+#define REPOKEY_TYPE_NUM       34
+#define REPOKEY_TYPE_U32       35
+#define REPOKEY_TYPE_DIR       36
+#define REPOKEY_TYPE_STR       37
+#define REPOKEY_TYPE_IDARRAY   38
+#define REPOKEY_TYPE_REL_IDARRAY       39
+#define REPOKEY_TYPE_DIRSTRARRAY       40
+#define REPOKEY_TYPE_DIRNUMNUMARRAY    41
+
+#define SOLVABLE_SUMMARY       42
+#define SOLVABLE_DESCRIPTION   43
+#define SOLVABLE_AUTHORS       44
+#define SOLVABLE_GROUP         45
+#define SOLVABLE_KEYWORDS      46
+#define SOLVABLE_LICENSE       47
+#define SOLVABLE_BUILDTIME     48
+#define SOLVABLE_EULA          49
+#define SOLVABLE_MESSAGEINS    50
+#define SOLVABLE_MESSAGEDEL    51
+#define SOLVABLE_INSTALLSIZE   52
+#define SOLVABLE_DISKUSAGE     53
+#define SOLVABLE_FILELIST      54
+#define SOLVABLE_INSTALLTIME   55
+#define SOLVABLE_MEDIADIR      56
+#define SOLVABLE_MEDIAFILE     57
+#define SOLVABLE_MEDIANR       58
+#define SOLVABLE_DOWNLOADSIZE  59
+#define SOLVABLE_SOURCEARCH    60
+#define SOLVABLE_SOURCENAME    61
+#define SOLVABLE_SOURCEEVR     62
+#define SOLVABLE_ISVISIBLE     63
+
+#define SOLVABLE_PATCHCATEGORY 64
+
+#define ID_NUM_INTERNAL                65
 
 
 /* well known solvable */
index ed1b962..45fb428 100644 (file)
@@ -468,6 +468,15 @@ repo_fix_legacy(Repo *repo, Offset provides, Offset supplements)
          if (id)
            repo->idarraydata[i] = id;
        }
+      else if (!strncmp(dep, "filesystem(", 11) && strlen(dep) < sizeof(buf))
+       {
+         strcpy(buf, dep + 11);
+         if ((p = strrchr(buf, ')')) != 0)
+           *p = 0;
+         id = str2id(pool, buf, 1);
+         id = rel2id(pool, NAMESPACE_FILESYSTEM, id, REL_NAMESPACE, 1);
+         repo->idarraydata[i] = id;
+       }
     }
   return supplements;
 }