Fix pkg_depend_str() to not use pkg->depends_str.
[oweals/opkg-lede.git] / libopkg / pkg.c
index 75e95720b3282a9fffb75154531cface61b01dd5..e37806b711753e98563f50d5b848cf549498f2ed 100644 (file)
@@ -301,7 +301,7 @@ void pkg_deinit(pkg_t *pkg)
 }
 
 int
-pkg_init_from_file(pkg_t *pkg, const char *filename)
+pkg_init_from_file(opkg_conf_t *conf, pkg_t *pkg, const char *filename)
 {
        int fd, err = 0;
        FILE *control_file;
@@ -311,7 +311,9 @@ pkg_init_from_file(pkg_t *pkg, const char *filename)
 
        pkg->local_filename = xstrdup(filename);
 
-       sprintf_alloc(&control_path, "%s.control.XXXXXX", filename);
+       sprintf_alloc(&control_path, "%s/%s.control.XXXXXX", 
+                        conf->tmp_dir,
+                        basename(filename));
        fd = mkstemp(control_path);
        if (fd == -1) {
                perror_msg("%s: mkstemp(%s)", __FUNCTION__, control_path);
@@ -528,27 +530,6 @@ void set_flags_from_control(opkg_conf_t *conf, pkg_t *pkg){
      return;
 }
 
-const char*
-constraint_to_str(enum version_constraint c)
-{
-       switch (c) {
-       case NONE:
-               return "";
-       case EARLIER:
-               return "< ";
-       case EARLIER_EQUAL:
-              return "<= ";
-       case EQUAL:
-              return "= ";
-       case LATER_EQUAL:
-             return ">= ";
-       case LATER:
-            return "> ";
-       }
-
-       return "";
-}
-
 void pkg_formatted_field(FILE *fp, pkg_t *pkg, const char *field)
 {
      int i;
@@ -614,7 +595,9 @@ void pkg_formatted_field(FILE *fp, pkg_t *pkg, const char *field)
               if (pkg->depends_count) {
                     fprintf(fp, "Depends:");
                    for(i = 0; i < pkg->depends_count; i++) {
-                        fprintf(fp, "%s %s", i == 0 ? "" : ",", pkg->depends_str[i]);
+                       char *str = pkg_depend_str(pkg, i);
+                       fprintf(fp, "%s %s", i == 0 ? "" : ",", str);
+                       free(str);
                     }
                    fprintf(fp, "\n");
               }