Changeset 4458
- Timestamp:
- 05/29/08 13:42:33 (5 years ago)
- Location:
- trunk/src/target/opkg
- Files:
-
- 5 edited
-
libopkg/opkg.c (modified) (11 diffs)
-
libopkg/opkg.h (modified) (1 diff)
-
libopkg/opkg_install.c (modified) (10 diffs)
-
libopkg/opkg_install.h (modified) (1 diff)
-
tests/libopkg_test.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/target/opkg/libopkg/opkg.c
r4451 r4458 408 408 /* XXX: Error: Could not satisfy dependencies */ 409 409 pkg_vec_free (deps); 410 return OPKG_DEPEND ANCIES_FAILED;410 return OPKG_DEPENDENCIES_FAILED; 411 411 } 412 412 … … 488 488 { 489 489 opkg_package_free (pdata.package); 490 return OPKG_UNKNOWN_ERROR; 490 switch (err) 491 { 492 case PKG_INSTALL_ERR_NOT_TRUSTED: return OPKG_GPG_ERROR; 493 case PKG_INSTALL_ERR_DOWNLOAD: return OPKG_DOWNLOAD_FAILED; 494 case PKG_INSTALL_ERR_DEPENDENCIES: 495 case PKG_INSTALL_ERR_CONFLICTS: return OPKG_DEPENDENCIES_FAILED; 496 case PKG_INSTALL_ERR_ALREADY_INSTALLED: return OPKG_PACKAGE_ALREADY_INSTALLED; 497 case PKG_INSTALL_ERR_SIGNATURE: return OPKG_GPG_ERROR; 498 case PKG_INSTALL_ERR_MD5: return OPKG_MD5_ERROR; 499 default: return OPKG_UNKNOWN_ERROR; 500 } 491 501 } 492 502 … … 676 686 int sources_list_count, sources_done; 677 687 opkg_progress_data_t pdata; 678 char *tmp_file_name = NULL;679 688 680 689 opkg_assert (opkg != NULL); … … 717 726 } 718 727 719 /* cou t the number of sources so we can give some progress updates */728 /* count the number of sources so we can give some progress updates */ 720 729 sources_list_count = 0; 721 730 sources_done = 0; … … 729 738 for (iter = opkg->conf->pkg_src_list.head; iter; iter = iter->next) 730 739 { 731 char *url, *list_file_name ;740 char *url, *list_file_name = NULL, *sig_file_name = NULL; 732 741 733 742 src = iter->data; … … 744 753 FILE *in, *out; 745 754 struct _curl_cb_data cb_data; 755 char *tmp_file_name = NULL; 746 756 747 757 sprintf_alloc (&tmp_file_name, "%s/%s.gz", tmp, src->name); … … 773 783 unlink (tmp_file_name); 774 784 } 785 free (tmp_file_name); 775 786 } 776 787 else 777 788 err = opkg_download (opkg->conf, url, list_file_name, NULL, NULL); 778 free (tmp_file_name);779 789 780 790 if (err) … … 794 804 sprintf_alloc (&url, "%s/%s", src->value, "Packages.sig"); 795 805 796 /* create temporary file for it */ 797 sprintf_alloc (&tmp_file_name, "%s/%s", tmp, "Packages.sig"); 798 799 err = opkg_download (opkg->conf, url, tmp_file_name, NULL, NULL); 806 /* create filename for signature */ 807 sprintf_alloc (&sig_file_name, "%s/%s.sig", lists_dir, src->name); 808 809 /* make sure there is no existing signature file */ 810 unlink (sig_file_name); 811 812 err = opkg_download (opkg->conf, url, sig_file_name, NULL, NULL); 800 813 if (err) 801 814 { … … 805 818 { 806 819 int err; 807 err = opkg_verify_file (opkg->conf, list_file_name, tmp_file_name);820 err = opkg_verify_file (opkg->conf, list_file_name, sig_file_name); 808 821 if (err == 0) 809 822 { … … 815 828 } 816 829 } 817 unlink (tmp_file_name);818 free ( tmp_file_name);830 free (sig_file_name); 831 free (list_file_name); 819 832 free (url); 820 833 #else … … 823 836 */ 824 837 #endif 825 free (list_file_name);826 838 827 839 sources_done++; -
trunk/src/target/opkg/libopkg/opkg.h
r4434 r4458 38 38 OPKG_UNKNOWN_ERROR, 39 39 OPKG_DOWNLOAD_FAILED, 40 OPKG_DEPEND ANCIES_FAILED,40 OPKG_DEPENDENCIES_FAILED, 41 41 OPKG_PACKAGE_ALREADY_INSTALLED, 42 42 OPKG_PACKAGE_NOT_AVAILABLE, 43 43 OPKG_PACKAGE_NOT_FOUND, 44 OPKG_PACKAGE_NOT_INSTALLED 44 OPKG_PACKAGE_NOT_INSTALLED, 45 OPKG_GPG_ERROR, 46 OPKG_MD5_ERROR 45 47 }; 46 48 -
trunk/src/target/opkg/libopkg/opkg_install.c
r4443 r4458 756 756 char* file_md5; 757 757 char *pkgid; 758 759 758 760 759 if ( from_upgrade ) … … 764 763 opkg_message(conf, OPKG_ERROR, 765 764 "INTERNAL ERROR: null pkg passed to opkg_install_pkg\n"); 766 return -EINVAL;765 return PKG_INSTALL_ERR_INTERNAL; 767 766 } 768 767 … … 772 771 opkg_message(conf, OPKG_ERROR, "INTERNAL ERROR: architecture %s for pkg %s is unsupported.\n", 773 772 pkg->architecture, pkg->name); 774 return -EINVAL;773 return PKG_INSTALL_ERR_INTERNAL; 775 774 } 776 775 if (pkg->state_status == SS_INSTALLED && conf->force_reinstall == 0 && conf->nodeps == 0) { 777 776 err = satisfy_dependencies_for(conf, pkg); 778 if (err) { return err; }777 if (err) { return PKG_INSTALL_ERR_DEPENDENCIES; } 779 778 780 779 opkg_message(conf, OPKG_NOTICE, … … 791 790 792 791 err = opkg_install_check_downgrade(conf, pkg, old_pkg, message); 793 if (err) { return err; }792 if (err) { return PKG_INSTALL_ERR_NO_DOWNGRADE; } 794 793 795 794 pkg->state_want = SW_INSTALL; … … 801 800 /* Abhaya: conflicts check */ 802 801 err = check_conflicts_for(conf, pkg); 803 if (err) { return err; }802 if (err) { return PKG_INSTALL_ERR_CONFLICTS; } 804 803 805 804 /* this setup is to remove the upgrade scenario in the end when … … 811 810 812 811 err = verify_pkg_installable(conf, pkg); 813 if (err) { return err; }812 if (err) { return PKG_INSTALL_ERR_NO_SPACE; } 814 813 815 814 if (pkg->local_filename == NULL) { … … 819 818 "Failed to download %s. Perhaps you need to run 'opkg update'?\n", 820 819 pkg->name); 821 return err; 822 } 823 } 824 825 /* Check for md5 values */ 820 return PKG_INSTALL_ERR_DOWNLOAD; 821 } 822 } 823 824 /* check that the repository is valid */ 825 #if HAVE_GPGME 826 char *list_file_name, *sig_file_name, *lists_dir; 827 828 sprintf_alloc (&lists_dir, "%s", 829 (conf->restrict_to_default_dest) 830 ? conf->default_dest->lists_dir 831 : conf->lists_dir); 832 sprintf_alloc (&list_file_name, "%s/%s", lists_dir, pkg->src->name); 833 sprintf_alloc (&sig_file_name, "%s/%s.sig", lists_dir, pkg->src->name); 834 835 if (file_exists (sig_file_name)) 836 { 837 if (opkg_verify_file (conf, list_file_name, sig_file_name)) 838 return PKG_INSTALL_ERR_SIGNATURE; 839 } 840 841 free (lists_dir); 842 free (list_file_name); 843 free (sig_file_name); 844 #endif 845 846 /* Check for md5 values */ 826 847 if (pkg->md5sum) 827 848 { … … 833 854 pkg->name); 834 855 free(file_md5); 835 return err;856 return PKG_INSTALL_ERR_MD5; 836 857 } 837 858 free(file_md5); … … 846 867 /* That's rather strange that files don't change owner. Investigate !!!!!!*/ 847 868 err = update_file_ownership(conf, pkg, old_pkg); 848 if (err) { return err; }869 if (err) { return PKG_INSTALL_ERR_UNKNOWN; } 849 870 850 871 if (conf->nodeps == 0) { 851 872 err = satisfy_dependencies_for(conf, pkg); 852 if (err) { return err; }873 if (err) { return PKG_INSTALL_ERR_DEPENDENCIES; } 853 874 } 854 875 … … 999 1020 1000 1021 pkg_vec_free (replacees); 1001 return err;1022 return PKG_INSTALL_ERR_UNKNOWN; 1002 1023 } 1003 1024 opkg_set_current_state (conf, OPKG_STATE_NONE, NULL); -
trunk/src/target/opkg/libopkg/opkg_install.h
r4357 r4458 23 23 #include "opkg_error.h" 24 24 25 enum { 26 PKG_INSTALL_ERR_NONE, 27 PKG_INSTALL_ERR_NOT_TRUSTED, 28 PKG_INSTALL_ERR_DOWNLOAD, 29 PKG_INSTALL_ERR_CONFLICTS, 30 PKG_INSTALL_ERR_ALREADY_INSTALLED, 31 PKG_INSTALL_ERR_DEPENDENCIES, 32 PKG_INSTALL_ERR_NO_DOWNGRADE, 33 PKG_INSTALL_ERR_NO_SPACE, 34 PKG_INSTALL_ERR_SIGNATURE, 35 PKG_INSTALL_ERR_MD5, 36 PKG_INSTALL_ERR_INTERNAL, 37 PKG_INSTALL_ERR_UNKNOWN 38 }; 39 25 40 opkg_error_t opkg_install_by_name(opkg_conf_t *conf, const char *pkg_name); 26 41 opkg_error_t opkg_install_multi_by_name(opkg_conf_t *conf, const char *pkg_name); -
trunk/src/target/opkg/tests/libopkg_test.c
r4452 r4458 5 5 opkg_package_t *find_pkg = NULL; 6 6 7 char *errors[ 8] = {7 char *errors[10] = { 8 8 "No Error", 9 9 "Unknown Eror", … … 13 13 "Package not available", 14 14 "Package not found", 15 "Package not installed" 15 "Package not installed", 16 "Signature check failed", 17 "MD5 sum failed" 16 18 }; 19 20 21 #define TEST_PACKAGE "aspell" 17 22 18 23 void … … 113 118 printf ("No package available to test find_package.\n"); 114 119 115 err = opkg_install_package (opkg, "aspell", progress_callback, "Installing...");120 err = opkg_install_package (opkg, TEST_PACKAGE, progress_callback, "Installing..."); 116 121 printf ("\nopkg_install_package returned %d (%s)\n", err, errors[err]); 117 122 118 err = opkg_upgrade_package (opkg, "aspell", progress_callback, "Upgrading...");123 err = opkg_upgrade_package (opkg, TEST_PACKAGE, progress_callback, "Upgrading..."); 119 124 printf ("\nopkg_upgrade_package returned %d (%s)\n", err, errors[err]); 120 125 121 err = opkg_remove_package (opkg, "aspell", progress_callback, "Removing...");126 err = opkg_remove_package (opkg, TEST_PACKAGE, progress_callback, "Removing..."); 122 127 printf ("\nopkg_remove_package returned %d (%s)\n", err, errors[err]); 123 128
Note: See TracChangeset
for help on using the changeset viewer.
