123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812 |
- --- a/libopkg/Makefile.am
- +++ b/libopkg/Makefile.am
- @@ -15,7 +15,6 @@
- opkg_upgrade.c opkg_upgrade.h \
- opkg_remove.c opkg_remove.h
- opkg_db_sources = opkg_conf.c opkg_conf.h \
- - release.c release.h release_parse.c release_parse.h \
- opkg_utils.c opkg_utils.h pkg.c pkg.h hash_table.h \
- pkg_depends.c pkg_depends.h pkg_extract.c pkg_extract.h \
- hash_table.c pkg_hash.c pkg_hash.h pkg_parse.c pkg_parse.h \
- @@ -28,7 +27,6 @@
- active_list.c active_list.h list.h
- opkg_util_sources = file_util.c file_util.h opkg_message.h opkg_message.c md5.c md5.h \
- parse_util.c parse_util.h \
- - cksum_list.c cksum_list.h \
- sprintf_alloc.c sprintf_alloc.h \
- xregex.c xregex.h xsystem.c xsystem.h
- if HAVE_PATHFINDER
- --- a/libopkg/cksum_list.c
- +++ /dev/null
- @@ -1,87 +0,0 @@
- -/* cksum_lis.c - the opkg package management system
- -
- - Copyright (C) 2010,2011 Javier Palacios
- -
- - This program is free software; you can redistribute it and/or
- - modify it under the terms of the GNU General Public License as
- - published by the Free Software Foundation; either version 2, or (at
- - your option) any later version.
- -
- - This program is distributed in the hope that it will be useful, but
- - WITHOUT ANY WARRANTY; without even the implied warranty of
- - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- - General Public License for more details.
- -*/
- -
- -#include "config.h"
- -
- -#include <stdio.h>
- -
- -#include "cksum_list.h"
- -#include "libbb/libbb.h"
- -
- -
- -int cksum_init(cksum_t *cksum, char **itemlist)
- -{
- - cksum->value = xstrdup(*itemlist++);
- - cksum->size = atoi(*itemlist++);
- - cksum->name = xstrdup(*itemlist++);
- -
- - return 0;
- -}
- -
- -void cksum_deinit(cksum_t *cksum)
- -{
- - free (cksum->name);
- - cksum->name = NULL;
- -
- - free (cksum->value);
- - cksum->value = NULL;
- -}
- -
- -void cksum_list_init(cksum_list_t *list)
- -{
- - void_list_init((void_list_t *) list);
- -}
- -
- -void cksum_list_deinit(cksum_list_t *list)
- -{
- - cksum_list_elt_t *iter, *n;
- - cksum_t *cksum;
- -
- - list_for_each_entry_safe(iter, n, &list->head, node) {
- - cksum = (cksum_t *)iter->data;
- - cksum_deinit(cksum);
- -
- - /* malloced in cksum_list_append */
- - free(cksum);
- - iter->data = NULL;
- - }
- - void_list_deinit((void_list_t *) list);
- -}
- -
- -cksum_t *cksum_list_append(cksum_list_t *list, char **itemlist)
- -{
- - /* freed in cksum_list_deinit */
- - cksum_t *cksum = xcalloc(1, sizeof(cksum_t));
- - cksum_init(cksum, itemlist);
- -
- - void_list_append((void_list_t *) list, cksum);
- -
- - return cksum;
- -}
- -
- -const cksum_t *cksum_list_find(cksum_list_t *list, const char *name)
- -{
- - cksum_list_elt_t *iter;
- - cksum_t *cksum;
- -
- - list_for_each_entry(iter, &list->head, node) {
- - cksum = (cksum_t *)iter->data;
- - if (strcmp(cksum->name, name) == 0) {
- - return cksum;
- - }
- - }
- - return NULL;
- -}
- -
- --- a/libopkg/cksum_list.h
- +++ /dev/null
- @@ -1,46 +0,0 @@
- -/* cksum_list.h - the opkg package management system
- -
- - Copyright (C) 2010,2011 Javier Palacios
- -
- - This program is free software; you can redistribute it and/or
- - modify it under the terms of the GNU General Public License as
- - published by the Free Software Foundation; either version 2, or (at
- - your option) any later version.
- -
- - This program is distributed in the hope that it will be useful, but
- - WITHOUT ANY WARRANTY; without even the implied warranty of
- - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- - General Public License for more details.
- -*/
- -
- -#ifndef CKSUM_LIST_H
- -#define CKSUM_LIST_H
- -
- -typedef struct
- -{
- - char *name;
- - char *value;
- - int size;
- -} cksum_t;
- -
- -int cksum_init(cksum_t *cksum, char **itemlist);
- -void cksum_deinit(cksum_t *cksum);
- -
- -#include "void_list.h"
- -
- -typedef struct void_list_elt cksum_list_elt_t;
- -
- -typedef struct void_list cksum_list_t;
- -
- -static inline int cksum_list_empty(cksum_list_t *list)
- -{
- - return void_list_empty ((void_list_t *)list);
- -}
- -
- -void cksum_list_init(cksum_list_t *list);
- -void cksum_list_deinit(cksum_list_t *list);
- -
- -cksum_t *cksum_list_append(cksum_list_t *list, char **itemlist);
- -const cksum_t *cksum_list_find(cksum_list_t *list, const char *name);
- -
- -#endif
- --- a/libopkg/release.c
- +++ /dev/null
- @@ -1,342 +0,0 @@
- -/* release.c - the opkg package management system
- -
- - Copyright (C) 2010,2011 Javier Palacios
- -
- - This program is free software; you can redistribute it and/or
- - modify it under the terms of the GNU General Public License as
- - published by the Free Software Foundation; either version 2, or (at
- - your option) any later version.
- -
- - This program is distributed in the hope that it will be useful, but
- - WITHOUT ANY WARRANTY; without even the implied warranty of
- - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- - General Public License for more details.
- -*/
- -
- -#include <unistd.h>
- -#include <ctype.h>
- -
- -#include "release.h"
- -#include "opkg_utils.h"
- -#include "libbb/libbb.h"
- -
- -#include "opkg_download.h"
- -#include "sprintf_alloc.h"
- -
- -#include "release_parse.h"
- -
- -#include "parse_util.h"
- -#include "file_util.h"
- -
- -static void
- -release_init(release_t *release)
- -{
- - release->name = NULL;
- - release->datestring = NULL;
- - release->architectures = NULL;
- - release->architectures_count = 0;
- - release->components = NULL;
- - release->components_count = 0;
- - release->complist = NULL;
- - release->complist_count = 0;
- -}
- -
- -release_t *
- -release_new(void)
- -{
- - release_t *release;
- -
- - release = xcalloc(1, sizeof(release_t));
- - release_init(release);
- -
- - return release;
- -}
- -
- -void
- -release_deinit(release_t *release)
- -{
- - int i;
- -
- - free(release->name);
- - free(release->datestring);
- -
- - for(i = 0; i < release->architectures_count; i++){
- - free(release->architectures[i]);
- - }
- - free(release->architectures);
- -
- - for(i = 0; i < release->components_count; i++){
- - free(release->components[i]);
- - }
- - free(release->components);
- -
- - for(i = 0; i < release->complist_count; i++){
- - free(release->complist[i]);
- - }
- - free(release->complist);
- -
- -}
- -
- -int
- -release_init_from_file(release_t *release, const char *filename)
- -{
- - int err = 0;
- - FILE *release_file;
- -
- - release_file = fopen(filename, "r");
- - if (release_file == NULL) {
- - opkg_perror(ERROR, "Failed to open %s", filename);
- - return -1;
- - }
- -
- - err=release_parse_from_stream(release, release_file);
- - if (!err) {
- - if (!release_arch_supported(release)) {
- - opkg_msg(ERROR, "No valid architecture found on Release file.\n");
- - err = -1;
- - }
- - }
- -
- - return err;
- -}
- -
- -const char *
- -item_in_list(const char *comp, char **complist, const unsigned int count)
- -{
- - int i;
- -
- - if (!complist)
- - return comp;
- -
- - for(i = 0; i < count; i++){
- - if (strcmp(comp, complist[i]) == 0)
- - return complist[i];
- - }
- -
- - return NULL;
- -}
- -
- -int
- -release_arch_supported(release_t *release)
- -{
- - nv_pair_list_elt_t *l;
- -
- - list_for_each_entry(l , &conf->arch_list.head, node) {
- - nv_pair_t *nv = (nv_pair_t *)l->data;
- - if (item_in_list(nv->name, release->architectures, release->architectures_count)) {
- - opkg_msg(DEBUG, "Arch %s (priority %s) supported for dist %s.\n",
- - nv->name, nv->value, release->name);
- - return 1;
- - }
- - }
- -
- - return 0;
- -}
- -
- -int
- -release_comps_supported(release_t *release, const char *complist)
- -{
- - int ret = 1;
- - int i;
- -
- - if (complist) {
- - release->complist = parse_list(complist, &release->complist_count, ' ', 1);
- - for(i = 0; i < release->complist_count; i++){
- - if (!item_in_list(release->complist[i], release->components, release->components_count)) {
- - opkg_msg(ERROR, "Component %s not supported for dist %s.\n",
- - release->complist[i], release->name);
- - ret = 0;
- - }
- - }
- - }
- -
- - return ret;
- -}
- -
- -const char **
- -release_comps(release_t *release, unsigned int *count)
- -{
- - char **comps = release->complist;
- -
- - if (!comps) {
- - comps = release->components;
- - *count = release->components_count;
- - } else {
- - *count = release->complist_count;
- - }
- -
- - return (const char **)comps;
- -}
- -
- -int
- -release_download(release_t *release, pkg_src_t *dist, char *lists_dir, char *tmpdir)
- -{
- - int ret = 0;
- - unsigned int ncomp;
- - const char **comps = release_comps(release, &ncomp);
- - nv_pair_list_elt_t *l;
- - int i;
- -
- - for(i = 0; i < ncomp; i++){
- - int err = 0;
- - char *prefix;
- -
- - sprintf_alloc(&prefix, "%s/dists/%s/%s/binary", dist->value, dist->name,
- - comps[i]);
- -
- - list_for_each_entry(l , &conf->arch_list.head, node) {
- - char *url;
- - char *tmp_file_name, *list_file_name;
- - char *subpath = NULL;
- -
- - nv_pair_t *nv = (nv_pair_t *)l->data;
- -
- - sprintf_alloc(&list_file_name, "%s/%s-%s-%s", lists_dir, dist->name, comps[i], nv->name);
- -
- - sprintf_alloc(&tmp_file_name, "%s/%s-%s-%s%s", tmpdir, dist->name, comps[i], nv->name, ".gz");
- -
- - sprintf_alloc(&subpath, "%s/binary-%s/%s", comps[i], nv->name, dist->gzip ? "Packages.gz" : "Packages");
- -
- - if (dist->gzip) {
- - sprintf_alloc(&url, "%s-%s/Packages.gz", prefix, nv->name);
- - err = opkg_download(url, tmp_file_name, NULL, NULL, 1);
- - if (!err) {
- - err = release_verify_file(release, tmp_file_name, subpath);
- - if (err) {
- - unlink (tmp_file_name);
- - unlink (list_file_name);
- - }
- - }
- - if (!err) {
- - FILE *in, *out;
- - opkg_msg(NOTICE, "Inflating %s.\n", url);
- - in = fopen (tmp_file_name, "r");
- - out = fopen (list_file_name, "w");
- - if (in && out) {
- - err = unzip (in, out);
- - if (err)
- - opkg_msg(INFO, "Corrumpt file at %s.\n", url);
- - } else
- - err = 1;
- - if (in)
- - fclose (in);
- - if (out)
- - fclose (out);
- - unlink (tmp_file_name);
- - }
- - free(url);
- - }
- -
- - if (err) {
- - sprintf_alloc(&url, "%s-%s/Packages", prefix, nv->name);
- - err = opkg_download(url, list_file_name, NULL, NULL, 1);
- - if (!err) {
- - err = release_verify_file(release, tmp_file_name, subpath);
- - if (err)
- - unlink (list_file_name);
- - }
- - free(url);
- - }
- -
- - free(tmp_file_name);
- - free(list_file_name);
- - }
- -
- - if(err)
- - ret = 1;
- -
- - free(prefix);
- - }
- -
- - return ret;
- -}
- -
- -int
- -release_get_size(release_t *release, const char *pathname)
- -{
- - const cksum_t *cksum;
- -
- - if (release->md5sums) {
- - cksum = cksum_list_find(release->md5sums, pathname);
- - return cksum->size;
- - }
- -
- -#ifdef HAVE_SHA256
- - if (release->sha256sums) {
- - cksum = cksum_list_find(release->sha256sums, pathname);
- - return cksum->size;
- - }
- -#endif
- -
- - return -1;
- -}
- -
- -const char *
- -release_get_md5(release_t *release, const char *pathname)
- -{
- - const cksum_t *cksum;
- -
- - if (release->md5sums) {
- - cksum = cksum_list_find(release->md5sums, pathname);
- - return cksum->value;
- - }
- -
- - return '\0';
- -}
- -
- -#ifdef HAVE_SHA256
- -const char *
- -release_get_sha256(release_t *release, const char *pathname)
- -{
- - const cksum_t *cksum;
- -
- - if (release->sha256sums) {
- - cksum = cksum_list_find(release->sha256sums, pathname);
- - return cksum->value;
- - }
- -
- - return '\0';
- -}
- -#endif
- -
- -int
- -release_verify_file(release_t *release, const char* file_name, const char *pathname)
- -{
- - struct stat f_info;
- - char *f_md5 = NULL;
- - const char *md5 = release_get_md5(release, pathname);
- -#ifdef HAVE_SHA256
- - char *f_sha256 = NULL;
- - const char *sha256 = release_get_sha256(release, pathname);
- -#endif
- - int ret = 0;
- -
- - if (stat(file_name, &f_info) || (f_info.st_size!=release_get_size(release, pathname))) {
- - opkg_msg(ERROR, "Size verification failed for %s - %s.\n", release->name, pathname);
- - ret = 1;
- - } else {
- -
- - f_md5 = file_md5sum_alloc(file_name);
- -#ifdef HAVE_SHA256
- - f_sha256 = file_sha256sum_alloc(file_name);
- -#endif
- -
- - if (md5 && strcmp(md5, f_md5)) {
- - opkg_msg(ERROR, "MD5 verification failed for %s - %s.\n", release->name, pathname);
- - ret = 1;
- -#ifdef HAVE_SHA256
- - } else if (sha256 && strcmp(sha256, f_sha256)) {
- - opkg_msg(ERROR, "SHA256 verification failed for %s - %s.\n", release->name, pathname);
- - ret = 1;
- -#endif
- - }
- -
- - }
- -
- - free(f_md5);
- -#ifdef HAVE_SHA256
- - free(f_sha256);
- -#endif
- -
- - return ret;
- -}
- --- a/libopkg/release.h
- +++ /dev/null
- @@ -1,53 +0,0 @@
- -/* release.h - the opkg package management system
- -
- - Copyright (C) 2010,2011 Javier Palacios
- -
- - This program is free software; you can redistribute it and/or
- - modify it under the terms of the GNU General Public License as
- - published by the Free Software Foundation; either version 2, or (at
- - your option) any later version.
- -
- - This program is distributed in the hope that it will be useful, but
- - WITHOUT ANY WARRANTY; without even the implied warranty of
- - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- - General Public License for more details.
- -*/
- -
- -#ifndef RELEASE_H
- -#define RELEASE_H
- -
- -#include <stdio.h>
- -#include "pkg.h"
- -#include "cksum_list.h"
- -
- -struct release
- -{
- - char *name;
- - char *datestring;
- - char **architectures;
- - unsigned int architectures_count;
- - char **components;
- - unsigned int components_count;
- - cksum_list_t *md5sums;
- -#ifdef HAVE_SHA256
- - cksum_list_t *sha256sums;
- -#endif
- - char **complist;
- - unsigned int complist_count;
- -};
- -
- -typedef struct release release_t;
- -
- -release_t *release_new(void);
- -void release_deinit(release_t *release);
- -int release_init_from_file(release_t *release, const char *filename);
- -
- -int release_arch_supported(release_t *release);
- -int release_comps_supported(release_t *release, const char *complist);
- -int release_download(release_t *release, pkg_src_t *dist, char *lists_dir, char *tmpdir);
- -
- -const char **release_comps(release_t *release, unsigned int *count);
- -
- -int release_verify_file(release_t *release, const char *filename, const char *pathname);
- -
- -#endif
- --- a/libopkg/release_parse.c
- +++ /dev/null
- @@ -1,126 +0,0 @@
- -/* release_parse.c - the opkg package management system
- -
- - Copyright (C) 2010,2011 Javier Palacios
- -
- - This program is free software; you can redistribute it and/or
- - modify it under the terms of the GNU General Public License as
- - published by the Free Software Foundation; either version 2, or (at
- - your option) any later version.
- -
- - This program is distributed in the hope that it will be useful, but
- - WITHOUT ANY WARRANTY; without even the implied warranty of
- - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- - General Public License for more details.
- -*/
- -
- -#include "config.h"
- -
- -#include <stdio.h>
- -
- -#include "release.h"
- -#include "release_parse.h"
- -#include "libbb/libbb.h"
- -#include "parse_util.h"
- -
- -static int
- -release_parse_line(void *ptr, const char *line, uint mask)
- -{
- - release_t *release = (release_t *) ptr;
- -
- - int ret = 0;
- - unsigned int count = 0;
- - char **list = 0;
- - static int reading_md5sums = 0;
- -#ifdef HAVE_SHA256
- - static int reading_sha256sums = 0;
- -#endif
- -
- - switch (*line) {
- - case 'A':
- - if (is_field("Architectures", line)) {
- - release->architectures = parse_list(line, &release->architectures_count, ' ', 0);
- - }
- - break;
- -
- - case 'C':
- - if (is_field("Codename", line)) {
- - release->name = parse_simple("Codename", line);
- - }
- - else if (is_field("Components", line)) {
- - release->components = parse_list(line, &release->components_count, ' ', 0);
- - }
- - break;
- -
- - case 'D':
- - if (is_field("Date", line)) {
- - release->datestring = parse_simple("Date", line);
- - }
- - break;
- -
- - case 'M':
- - if (is_field("MD5sum", line)) {
- - reading_md5sums = 1;
- - if (release->md5sums == NULL) {
- - release->md5sums = xcalloc(1, sizeof(cksum_list_t));
- - cksum_list_init(release->md5sums);
- - }
- - goto dont_reset_flags;
- - }
- - break;
- -
- -#ifdef HAVE_SHA256
- - case 'S':
- - if (is_field("SHA256", line)) {
- - reading_sha256sums = 1;
- - if (release->sha256sums == NULL) {
- - release->sha256sums = xcalloc(1, sizeof(cksum_list_t));
- - cksum_list_init(release->sha256sums);
- - }
- - goto dont_reset_flags;
- - }
- - break;
- -#endif
- -
- - case ' ':
- - if (reading_md5sums) {
- - list = parse_list(line, &count, ' ', 1);
- - cksum_list_append(release->md5sums, list);
- - goto dont_reset_flags;
- - }
- -#ifdef HAVE_SHA256
- - else if (reading_sha256sums) {
- - list = parse_list(line, &count, ' ', 1);
- - cksum_list_append(release->sha256sums, list);
- - goto dont_reset_flags;
- - }
- -#endif
- - break;
- -
- - default:
- - ret = 1;
- - }
- -
- - reading_md5sums = 0;
- -#ifdef HAVE_SHA256
- - reading_sha256sums = 0;
- -#endif
- -
- -dont_reset_flags:
- -
- - return ret;
- -}
- -
- -int
- -release_parse_from_stream(release_t *release, FILE *fp)
- -{
- - int ret;
- - char *buf;
- - const size_t len = 4096;
- -
- - buf = xmalloc(len);
- - ret = parse_from_stream_nomalloc(release_parse_line, release, fp, 0, &buf, len);
- - free(buf);
- -
- - return ret;
- -}
- -
- --- a/libopkg/release_parse.h
- +++ /dev/null
- @@ -1,21 +0,0 @@
- -/* release_parse.h - the opkg package management system
- -
- - Copyright (C) 2010,2011 Javier Palacios
- -
- - This program is free software; you can redistribute it and/or
- - modify it under the terms of the GNU General Public License as
- - published by the Free Software Foundation; either version 2, or (at
- - your option) any later version.
- -
- - This program is distributed in the hope that it will be useful, but
- - WITHOUT ANY WARRANTY; without even the implied warranty of
- - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- - General Public License for more details.
- -*/
- -
- -#ifndef RELEASE_PARSE_H
- -#define RELEASE_PARSE_H
- -
- -int release_parse_from_stream(release_t *release, FILE *fp);
- -
- -#endif
- --- a/libopkg/opkg_cmd.c
- +++ b/libopkg/opkg_cmd.c
- @@ -27,7 +27,6 @@
- #include "opkg_conf.h"
- #include "opkg_cmd.h"
- #include "opkg_message.h"
- -#include "release.h"
- #include "pkg.h"
- #include "pkg_dest.h"
- #include "pkg_parse.h"
- @@ -114,39 +113,6 @@
- }
-
-
- - for (iter = void_list_first(&conf->dist_src_list); iter; iter = void_list_next(&conf->dist_src_list, iter)) {
- - char *url, *list_file_name;
- -
- - src = (pkg_src_t *)iter->data;
- -
- - sprintf_alloc(&url, "%s/dists/%s/Release", src->value, src->name);
- -
- - sprintf_alloc(&list_file_name, "%s/%s", lists_dir, src->name);
- - err = opkg_download(url, list_file_name, NULL, NULL, 0);
- - if (!err) {
- - opkg_msg(NOTICE, "Downloaded release files for dist %s.\n",
- - src->name);
- - release_t *release = release_new();
- - err = release_init_from_file(release, list_file_name);
- - if (!err) {
- - if (!release_comps_supported(release, src->extra_data))
- - err = -1;
- - }
- - if (!err) {
- - err = release_download(release, src, lists_dir, tmp);
- - }
- - release_deinit(release);
- - if (err)
- - unlink(list_file_name);
- - }
- -
- - if (err)
- - failures++;
- -
- - free(list_file_name);
- - free(url);
- - }
- -
- for (iter = void_list_first(&conf->pkg_src_list); iter; iter = void_list_next(&conf->pkg_src_list, iter)) {
- char *url, *list_file_name;
-
- --- a/libopkg/pkg_hash.c
- +++ b/libopkg/pkg_hash.c
- @@ -18,7 +18,6 @@
- #include <stdio.h>
-
- #include "hash_table.h"
- -#include "release.h"
- #include "pkg.h"
- #include "opkg_message.h"
- #include "pkg_vec.h"
- @@ -183,40 +182,6 @@
- lists_dir = conf->restrict_to_default_dest ?
- conf->default_dest->lists_dir : conf->lists_dir;
-
- - for (iter = void_list_first(&conf->dist_src_list); iter;
- - iter = void_list_next(&conf->dist_src_list, iter)) {
- -
- - src = (pkg_src_t *)iter->data;
- -
- - sprintf_alloc(&list_file, "%s/%s", lists_dir, src->name);
- -
- - if (file_exists(list_file)) {
- - int i;
- - release_t *release = release_new();
- - if(release_init_from_file(release, list_file)) {
- - free(list_file);
- - return -1;
- - }
- -
- - unsigned int ncomp;
- - const char **comps = release_comps(release, &ncomp);
- - subdist = (pkg_src_t *) xmalloc(sizeof(pkg_src_t));
- - memcpy(subdist, src, sizeof(pkg_src_t));
- -
- - for(i = 0; i < ncomp; i++){
- - subdist->name = NULL;
- - sprintf_alloc(&subdist->name, "%s-%s", src->name, comps[i]);
- - if (dist_hash_add_from_file(lists_dir, subdist)) {
- - free(subdist->name); free(subdist);
- - free(list_file);
- - return -1;
- - }
- - }
- - free(subdist->name); free(subdist);
- - }
- - free(list_file);
- - }
- -
- for (iter = void_list_first(&conf->pkg_src_list); iter;
- iter = void_list_next(&conf->pkg_src_list, iter)) {
-
|