summaryrefslogtreecommitdiffstats
path: root/libopkg/pkg.c
Commit message (Collapse)AuthorAgeFilesLines
* pkg: Add per-package force_reinstall flagPaul Barker2014-02-231-17/+25
| | | | | | | | | | | This flag allows two package object to share the same version information but be distinguishable from each other. It is never stored on disk or reported to the user but is used when comparing package versions. A new function, pkg_compare_versions_no_reinstall(), is added to compare versions without caring about this force_reinstall flag. Signed-off-by: Paul Barker <paul@paulbarker.me.uk>
* Don't print provides if nothing is providedpixdamix@gmail.com2012-11-221-1/+2
| | | | | | | | | | | | | Every package provides itself. While printing package information all fields are printed only if there is any relevant info for them. For example: a package with no "Replaces" won't get this printed at all. Packages which provide only themselves, were printing this field but with no values. This patch skips this field if the package provides only itself. Signed-off-by: Andrei Gherzan <andrei@gherzan.ro> git-svn-id: http://opkg.googlecode.com/svn/trunk@647 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* pkg_depends: fix version constraintspixdamix@gmail.com2012-11-221-20/+16
| | | | | | | | | | | | * factor parsing version constraint to str_to_constraint and use that from pkg (pkg_version_satisfied) and also pkg_depends (parseDepends) * fix constraint_to_str(), for EARLIER and LATER it was using '<' and '>' which is parsed later as EARLIER_EQUAL and LATER_EQUAL * show notice when deprecated '<' or '>' is used Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> git-svn-id: http://opkg.googlecode.com/svn/trunk@644 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* merge newpkg->provides even when oldpkg->provides existedpixdamix@gmail.com2012-11-221-4/+2
| | | | | | | | | | | | | | | | | | | | | * introduced in http://code.google.com/p/opkg/source/diff?spec=svn277&r=277&format=side&path=/trunk/libopkg/pkg.c * the problem happens when oldpkg provide 1 and newpkg provide 2 provides_count is merged to 2, but oldpkg->provides has only 1 entry causing SIGSEGV: pkg_formatted_field (fp=fp@entry=0x1444ce0, pkg=pkg@entry=0x120c620, field=<optimized out>, field@entry=0x7ffff7bd2abe "Provides") at pkg.c:739 739 fprintf(fp, "%s %s", i == 1 ? "" : ",", (gdb) bt #0 pkg_formatted_field (fp=fp@entry=0x1444ce0, pkg=pkg@entry=0x120c620, field=<optimized out>, field@entry=0x7ffff7bd2abe "Provides") at pkg.c:739 #1 0x00007ffff7bc32fc in pkg_print_status (pkg=0x120c620, file=0x1444ce0) at pkg.c:887 #2 0x00007ffff7bbff59 in opkg_conf_write_status_files () at opkg_conf.c:400 #3 0x00007ffff7bbad8a in write_status_files_if_changed () at opkg_cmd.c:65 #4 0x00007ffff7bbb73e in opkg_upgrade_cmd (argc=<optimized out>, argv=<optimized out>) at opkg_cmd.c:577 #5 0x00007ffff7bbbcc2 in opkg_cmd_exec (cmd=cmd@entry=0x7ffff7dda080, argc=argc@entry=1, argv=argv@entry=0x7fffffffe768) at opkg_cmd.c:1319 #6 0x000000000040165f in main (argc=3, argv=0x7fffffffe758) at opkg-cl.c:377 Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> git-svn-id: http://opkg.googlecode.com/svn/trunk@642 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* detect circular dependenciespixdamix@gmail.com2012-11-221-0/+2
| | | | | | | | | | | Add logic to detect circular dependencies. If we see any dependency from any given parent twice, ignore it the second time and print a notice message that we did so. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> git-svn-id: http://opkg.googlecode.com/svn/trunk@641 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Failed postinst script is not fatal with conf->offline_rootpixdamix@gmail.com2012-11-221-2/+3
| | | | | | | | | | | | When we have an offline root and have specified force-postinstall, attempt to run the postinstall but if it fails, just leave it in the status file as needing to run. We can issue a NOTICE this is happened but supress errors. This means the OE class doesn't have to do any further post processing of the postinstalls itself. Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> git-svn-id: http://opkg.googlecode.com/svn/trunk@639 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Remove comment for a proposed feature that will never be implemented.graham.gower@gmail.com2011-10-121-2/+0
| | | | | | | Maintainer scripts cannot be run in a chroot unless the host system can run target system binaries. Given this, the feature would be of limited use. git-svn-id: http://opkg.googlecode.com/svn/trunk@628 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Print the package name corresponding to a failed script.graham.gower@gmail.com2010-11-221-1/+2
| | | | | | From Sergey 'Jin' Bostandzhyan. git-svn-id: http://opkg.googlecode.com/svn/trunk@586 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Fix formatting issues found with the last commit.graham.gower@gmail.com2010-11-191-1/+1
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@585 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Use uppercase M for printing maintainer field, to be consistent.graham.gower2010-09-141-1/+1
| | | | | | From Sergey 'Jin' Bostandzhyan <jin@mediatomb.cc>. git-svn-id: http://opkg.googlecode.com/svn/trunk@565 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* fix compile issues on OS X and FreeBSDgoogle@wwsnet.net2010-09-121-0/+1
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@560 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* implement --force-postinstall option, this allows forcing the execution of ↵google@wwsnet.net2010-09-121-1/+1
| | | | | | postinstall scripts in offline root mode git-svn-id: http://opkg.googlecode.com/svn/trunk@559 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Remove trailing whitespace. Sorry if this breaks your patches.graham.gower2010-08-171-12/+12
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@552 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Minor cleanup/simplification.graham.gower2010-06-211-7/+14
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@537 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Print an error in the case of a broken control.tar.gz file within the archive.graham.gower2010-01-111-1/+6
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@516 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Set the arch_priority when parsing the Architecture.graham.gower2009-12-201-42/+0
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@507 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Initial stab at untangling the #include maze. Probably needs a second pass.graham.gower2009-12-201-7/+9
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@504 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Don't need \n for perrors.graham.gower2009-12-141-1/+1
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@491 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Merge commit 'grg' into HEADgraham.gower2009-12-081-173/+96
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@471 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Provide error checking for users of pkg_extract_* functions.graham.gower2009-11-261-5/+11
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@391 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Add __FUNCTION__ to the error mesage.graham.gower2009-11-261-2/+2
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@389 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Remove str_util.{c,h}graham.gower2009-11-251-1/+0
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@383 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* file_util.c cleanups. Remove redundant str_chomp from str_util.c.graham.gower2009-11-251-1/+0
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@382 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Propagate errors upwards.graham.gower2009-11-251-1/+3
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@379 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Various cleanups for pkg.{c,h}.graham.gower2009-11-241-246/+257
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@372 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Make a couple of functions static, and return void since they cannot fail.graham.gower2009-11-241-32/+20
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@368 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Remove remaining uses of pkg->*_str arrays and free() them after parsing.graham.gower2009-11-231-36/+27
| | | | | | Saves about 800kb in peak memory usage for my package list (6000 packages). git-svn-id: http://opkg.googlecode.com/svn/trunk@356 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* There should be a space before the bracket.graham.gower2009-11-231-1/+1
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@354 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Fix pkg_depend_str() to not use pkg->depends_str.graham.gower2009-11-231-22/+3
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@353 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Allow to install a package from a read-only dirpixdamix2009-11-231-2/+4
| | | | | | | | This patch allows to install a package which is located on a readonly filesystem or folder by moving the control file into the tmp_dir directory git-svn-id: http://opkg.googlecode.com/svn/trunk@351 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Change fdopen(fd, "rw+") to fdopen(fd, "r+").graham.gower2009-11-221-2/+2
| | | | | | | | It was pointed out by Basinilya in Issue 30 that the manual does not specify "rw+" (and this causes problems on Solaris). Since mkstemp should have already created the file, use "r+" for opening the fd in read/write mode. git-svn-id: http://opkg.googlecode.com/svn/trunk@345 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Make the Auto-Installed field useful.graham.gower2009-11-191-0/+3
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@338 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Free some strings as soon as they are parsed to save memory.graham.gower2009-11-181-28/+38
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@337 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Assume a similar problem exists with this fdopen as fixed with r333.graham.gower2009-11-181-1/+1
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@335 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Fix a bug introduced in r323.pixdamix2009-11-181-1/+1
| | | | | | fdopen(fd, "rw") can cause a bad file descriptor error. git-svn-id: http://opkg.googlecode.com/svn/trunk@333 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Put the tmp file under conf->tmp_dir.graham.gower2009-11-161-12/+35
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@324 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Use the filename arg as a base for the temp file. Clean up function while here.graham.gower2009-11-161-14/+36
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@323 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Use vfork()/execvp() instead of system().graham.gower2009-11-161-2/+4
| | | | | | Parts based on a patch by Mike Westerhof for OpenEmbedded. git-svn-id: http://opkg.googlecode.com/svn/trunk@320 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Fix pkg_get_installed_files() to work with an offline_root + dest.graham.gower2009-11-161-13/+17
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@318 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Fix leak in error path.graham.gower2009-11-151-0/+1
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@302 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Fix parsing of Conffiles lines in status files.graham.gower2009-11-121-1/+1
| | | | | | | Also, add a leading space when writing out the status file such that the parser can recognise these lines as conf file lines. git-svn-id: http://opkg.googlecode.com/svn/trunk@287 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Cleanup version string handling.graham.gower2009-11-121-24/+19
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@286 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Cleanup parsing of packages.graham.gower2009-11-101-38/+16
| | | | | | | | | | This diff is loosely based on a patch by Jo-Philipp Wich <google@wwsnet.net> posted in the bugtracker (Issue #24). Peak memory consumption while parsing package lists is dramatically reduced. Thanks to Camille Moncelier for fixing problems after reallocing for long lines. git-svn-id: http://opkg.googlecode.com/svn/trunk@283 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Remove opkg_internal_use_only and fix associated assumptions RE pkg->provides.graham.gower2009-11-101-19/+8
| | | | | | | | | | | | | | | It appears that the opkg_internal_use_only provides string was introduced to bandaid over problems with assuming that the pkg->provides, pkg->provides_str and pkg->provides_count are all the same length. As each pkg provides itself, the pkg->provides array was one longer than the str and count fields. Most of the uses of pkg->provides did not take this into account. This behaviour has been changed. pkg->provides is now pkg->provides_count long and it is pkg->provides_str which is shorter by one. Associated dead code has also been removed. git-svn-id: http://opkg.googlecode.com/svn/trunk@277 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Remove the assumption that pkg fields have been allocated and need free()ing.graham.gower2009-11-101-101/+139
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@276 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* More dead code removal.graham.gower2009-11-051-5/+0
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@271 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Removed a bunch of if(0) and dead codepixdamix2009-11-051-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | Applied this semantic patch: @@ statement S; @@ - if(0) S @@ @@ - remove_obsolete_maintainer_scripts(...) { - ... -} @@ @@ - remove_obsolete_maintainer_scripts(...); @@ identifier i; @@ -if(i){ -} git-svn-id: http://opkg.googlecode.com/svn/trunk@262 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* s/malloc/xmalloc/ s/calloc/xcalloc/ s/realloc/realloc/graham.gower2009-11-041-11/+3
| | | | | | | And redundant error checking removed from the places where allocation failures were actually checked. git-svn-id: http://opkg.googlecode.com/svn/trunk@259 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* Don't set PATH="/dev/null". Shuffle things around while here.graham.gower2009-11-041-31/+27
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@258 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
* s/strdup/xstrdup/ - check memory allocations for failure.graham.gower2009-11-031-8/+8
| | | | git-svn-id: http://opkg.googlecode.com/svn/trunk@255 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358