summaryrefslogtreecommitdiffstats
path: root/libopkg
Commit message (Collapse)AuthorAgeFilesLines
* Improve install candidate selectionticktock352009-10-051-9/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Florian Boor <florian.boor@kernelconcepts.de> Hello, I have noticed that opkg does not resolve package selection properly if the same package is available in more than one compatible architecture. Failing having installable candidates available is not necessary in this case: Either the packages are from feeds with different priorities - in this case we can select by priority - or the priorities are the same and it does not matter which one gets installed. Another problem is that in some situations the package lists seem to contain duplicates for no obvious reason. (e.g. one package available from two feeds makes four entries in the package lists.) The patch implements a workaround for this by filtering out duplicates when the candidate lists are created and makes opkg select an install candidate per feed priority. I have tested the changes with OpenEmbedded and it does not seem to cause any obvious problems. Could I get some opinions about the solution? :) Greetings Florian ----------- Thanks to Florian git-svn-id: http://opkg.googlecode.com/svn/trunk@219 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Fix Segmentation fault while data in Package.gz is not goodticktock352009-09-221-0/+4
| | | | | | | | | | | | While setting up a personal opkg feed, I encountered a crash in opgk when trying to install the package from the repository. Instead of an error message from opkg, it just gave me "Segmentation fault" and exited. Thanks to EdorFaus <edorfaus@gmail.com> http://groups.google.com/group/opkg-devel/browse_thread/thread/9620711475fa98d2 git-svn-id: http://opkg.googlecode.com/svn/trunk@218 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Adding error message for the lock file.ticktock352009-09-171-1/+10
| | | | | | | | | | | | pkg just says "Could not obtain administrative lock" and provides no further info when it encounters problems with the lock file. The attached patch makes these errors a bit easier to diagnose. Thanks to cconroy http://code.google.com/p/opkg/issues/detail?id=22 git-svn-id: http://opkg.googlecode.com/svn/trunk@216 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Fix issue on "Segmentation fault on package removal"ticktock352009-07-031-2/+3
| | | | | | | | | Thanks to http://code.google.com/u/kosmaty/ Find the issue and fix it. http://code.google.com/p/opkg/issues/detail?id=13 git-svn-id: http://opkg.googlecode.com/svn/trunk@215 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* adds a configure option so "/etc/opkg" can beticktock352009-06-144-8/+11
| | | | | | | | | | changed when opkg is configured and built. fix issue due to an error of opkg_conf.c Thanks to jlc <jlcster@gmail.com> http://groups.google.com/group/opkg-devel/browse_thread/thread/5c6e55832a7168aa git-svn-id: http://opkg.googlecode.com/svn/trunk@213 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* adding new flag flag_maintainerticktock352009-04-176-12/+29
| | | | | | | This flag is used for maintainer can use the latest conffile. this flag need to be set manually. git-svn-id: http://opkg.googlecode.com/svn/trunk@212 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* using pkg->dest->root_dirticktock352009-04-031-2/+4
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@211 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Try to avoid long unsigned int overflow.ticktock352009-04-032-9/+17
| | | | | | When free size is more than 4G, long unsigned int may enounter overflow git-svn-id: http://opkg.googlecode.com/svn/trunk@210 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Thanks to Keon's notify.ticktock352009-03-261-1/+1
| | | | | | converting curl error code to readable message git-svn-id: http://opkg.googlecode.com/svn/trunk@209 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Due to deb_extract's defect that I cannot tell if an extraction isticktock352009-03-261-9/+12
| | | | | | | | successfull or failed via the return value. Therefore I cannot use it as error message. revert some code of R206 git-svn-id: http://opkg.googlecode.com/svn/trunk@208 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* reduce a memory leak of closing dirticktock352009-03-261-0/+1
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@207 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* reduce a big memory leakticktock352009-03-266-31/+48
| | | | | | connecting deb_extract Null pointers git-svn-id: http://opkg.googlecode.com/svn/trunk@206 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* because of the file_hash_set_file_owner may break the file list of pkgsticktock352009-03-092-10/+21
| | | | | | | | | it should be iterated more carefully. Dealing with http://code.google.com/p/opkg/issues/detail?id=9 git-svn-id: http://opkg.googlecode.com/svn/trunk@204 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* thanks to Koen, a memory leak were fond and fixed here.ticktock352009-02-281-2/+10
| | | | | | | When the flag is force-overwrite and replace files. opkg will not free the root_filename well. git-svn-id: http://opkg.googlecode.com/svn/trunk@202 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* reduce a meory leakticktock352009-02-031-2/+5
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@200 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Initial the 'err' valaible in opkg_install_by_name , or it may be used withoutticktock352009-02-011-1/+1
| | | | | | initialize. git-svn-id: http://opkg.googlecode.com/svn/trunk@199 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Thanks to: Per Hansen <spamhans@yahoo.de>ticktock352009-01-241-1/+1
| | | | | | | | | | | | http://groups.google.com/group/opkg-devel/browse_thread/thread/20ca40ec1f6cec02 opkg install *.ipk An error ocurred, return value: -50512. BTW. This error message is not very helpful! git-svn-id: http://opkg.googlecode.com/svn/trunk@198 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* fix a buffer overflow bug that causeticktock352009-01-192-4/+32
| | | | | | http://code.google.com/p/opkg/issues/detail?id=3 git-svn-id: http://opkg.googlecode.com/svn/trunk@197 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Making the status_file singleton, every package is using the same file,ticktock352009-01-091-25/+20
| | | | | | | | and it should be handled only once. Let status_file works (make the dest->status_file obsolete) git-svn-id: http://opkg.googlecode.com/svn/trunk@196 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* opkg the config file dir to that one actually worksticktock352008-12-281-1/+1
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@194 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* adding check_signature configticktock352008-12-286-61/+69
| | | | | | | | | default if off you can turn that on via adding one line in /etc/opkg/opkg.conf file + option check_signature 1 git-svn-id: http://opkg.googlecode.com/svn/trunk@193 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* adding --enable-curl configuation to configure.acticktock352008-12-272-0/+30
| | | | | | | | | | | Basically it apply opkg_wget.patch from OE but I add something to the configure.ac http://cgit.openembedded.net/cgit.cgi?url=openembedded/tree/packages/opkg/files/opkg_wget.patch&id=1bbdc74a5384c81d0bdeb96f6acdfef91430d35d Thanks Mike Westerhof <mwester@dls.net> git-svn-id: http://opkg.googlecode.com/svn/trunk@191 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* when configure with --disable-gpg, no message complain about the signature ↵ticktock352008-12-262-3/+1
| | | | | | stuff. git-svn-id: http://opkg.googlecode.com/svn/trunk@189 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* using hash_table reduce an O(n^2) algorithm to O(n)ticktock352008-12-191-14/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | in strcmp analysis from gcov: Before: 507: 1386: old_files = pkg_get_installed_files(old_pkg); 507: 1387: new_files = pkg_get_installed_files(pkg); -: 1388: 5466: 1389: for (of = str_list_first(old_files); of; of = str_list_next -: 1390: pkg_t *owner; -: 1391: char *old, *new; 4959: 1392: old = (char *)of->data; 2963021: 1393: for (nf = str_list_first(new_files); nf; nf = str_list 2961464: 1394: new = nf->data; 2961464: 1395: if (strcmp(old, new) == 0) { 3402: 1396: niter = &nf; 3402: 1397: nf=str_list_next(new_files, nf); 3402: 1398: str_list_remove(new_files, niter); 3402: 1399: free(new); 3402: 1400: goto NOT_OBSOLETE; -: 1401: } After: 507: 1393: new_files_table.entries = NULL; 507: 1394: hash_table_init("new_files" , &new_files_table, 20); 8897: 1395: for (nf = str_list_first(new_files); nf; nf = str_list_next 8390: 1396: if (nf && nf->data) 8390: 1397: hash_table_insert(&new_files_table, nf->data, nf->da -: 1398: } -: 1399: 5466: 1400: for (of = str_list_first(old_files); of; of = str_list_next -: 1401: pkg_t *owner; -: 1402: char *old, *new; 4959: 1403: old = (char *)of->data; 4959: 1404: new = (char *) hash_table_get (&new_files_table, old); 4959: 1405: if (new) 4894: 1406: continue; git-svn-id: http://opkg.googlecode.com/svn/trunk@186 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* using list_head to handle the listticktock352008-12-1821-322/+296
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@185 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* only add pkg_vec_sort when neededticktock352008-12-162-5/+2
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@184 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* move pkg_compare_name to pkg_vec and remove qsort in hash_getticktock352008-12-166-18/+16
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@183 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* remove some unnecessary code from pkg_vec_insertticktock352008-12-162-8/+6
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@182 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* introduce the active_list for searching.ticktock352008-12-165-3/+39
| | | | | | | introduce the active_list_sort git-svn-id: http://opkg.googlecode.com/svn/trunk@181 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* opkg: rename opkg_clone to pkg_t_to_opkg_package_t.ticktock352008-12-151-10/+10
| | | | | | | | It's more likely the functionality. git-svn-id: http://opkg.googlecode.com/svn/trunk@180 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* opkg: using active_list to list all the installed pkgs.ticktock352008-12-153-9/+36
| | | | | | | | adding function that allows node move from one list to another git-svn-id: http://opkg.googlecode.com/svn/trunk@178 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* opkg: using active list to list upgradeable pkgsticktock352008-12-156-28/+44
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@177 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* opkg: trivial adding some commentsticktock352008-12-152-1/+9
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@176 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* opkg: trivial rename old_pkg_to_new to pkg_clone as a more readable name.ticktock352008-12-151-10/+15
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@174 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* opkg: introduce active list into pkg_tticktock352008-12-153-2/+10
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@173 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* opkg: reinitial node of active_list after clearticktock352008-12-151-2/+1
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@171 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* opkg: implment active_list_clear()ticktock352008-12-151-0/+15
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@170 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* opkg: implement active_list_prev and test cases.ticktock352008-12-152-7/+31
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@169 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* opkg: refactory active_list_next remove unnecessary field.ticktock352008-12-152-28/+12
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@168 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* opkg: active_list teststicktock352008-12-151-1/+1
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@167 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* opkg: introduce the protype of active_listticktock352008-12-154-1/+423
| | | | | | | | This can be used for upgrade path git-svn-id: http://opkg.googlecode.com/svn/trunk@166 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* opkg: fixing some trivial defects while reviewing codeticktock352008-12-152-3/+1
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@165 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* adding list_upgradableticktock352008-12-156-33/+74
| | | | | | | | opkg: refactory the upgradable list git-svn-id: http://opkg.googlecode.com/svn/trunk@164 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* opkg: using calloc to replace the malloc, initialize varaiableticktock352008-12-151-2/+2
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@163 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* opkg: trivial just indentticktock352008-12-151-2/+2
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@162 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* opkg: remove the free_error_list wrong usage bugticktock352008-12-151-1/+1
| | | | | | | | Thanks for manitu git-svn-id: http://opkg.googlecode.com/svn/trunk@161 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* opkg: adding the hash_table_remove API, not using yet.ticktock352008-12-1520-48/+75
| | | | | | | | | | Just complete the API for future usage. Clean all the entry at initial time. This reduces planty of unnecessary check. In order to prevent this kind of bug, using calloc to replace most malloc git-svn-id: http://opkg.googlecode.com/svn/trunk@160 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* opkg: making hash_table_insert works as real hash_table.ticktock352008-12-151-1/+6
| | | | | | | | solving the update_file_ownership misbehaviour issue, and redundent installed files issue. git-svn-id: http://opkg.googlecode.com/svn/trunk@159 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* opkg: mark the pkg SF as !SF_FILELIST_CHANGED after write back.ticktock352008-12-151-0/+2
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@158 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* opkg: trivial, clean up obsolete code, and some typoticktock352008-12-154-100/+1
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@157 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358