| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Using the '-n' option (--no-dereference) is a better way to solve the
do-not-link-into-directory issue. Using only 'ln -sf' can cause problems
on SELinux enabled hosts when target is inaccessible; e.g. when preparing
an offline rootsystem:
| $ cd <offline root>
| $ ln -sf /lib/systemd/systemd sbin/init # alternative #1
| $ ln -sf /bin/busybox sbin/init # alternative #2
| ln: accessing `sbin/init': Permission denied
|
| --> strace:
| brk(0) = 0x102b000
| stat("sbin/init", 0x7fffaa91c900) = -1 EACCES (Permission denied)
| ...
| exit_group(1) = ?
Now with '-n':
| $ ln -snf /bin/busybox sbin/init
| lstat("sbin/init", {st_mode=S_IFLNK|0777, st_size=20, ...}) = 0
| lstat("sbin/init", {st_mode=S_IFLNK|0777, st_size=20, ...}) = 0
| stat("/bin/busybox", 0x7fff8c1a3bd0) = -1 ENOENT (No such file or directory)
| symlink("/bin/busybox", "sbin/init") = -1 EEXIST (File exists)
| unlink("sbin/init") = 0
| symlink("/bin/busybox", "sbin/init") = 0
The '-n' flag is well supported (coreutils have it at least since
1999, busybox at least since 0.60.3 (2002)) and it obsoletes the
explicit check whether target is a directory.
Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
git-svn-id: http://opkg.googlecode.com/svn/trunk@649 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
|
|
|
|
|
| |
When installing into an offline root, calling sync() is pointless and just
hurts performance. Don't let's do that.
Signed-off-by: Phil Blundell <philb@gnu.org>
git-svn-id: http://opkg.googlecode.com/svn/trunk@648 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
While removing a package with opkg, the process shouldn't be blocked if
another package RECOMMENDS the package wanted to be removed. This is
because, while generating the dependencies, opkg adds dependencies to
depended_upon_by even if dependency's type is RECOMMEND. The fix is to
skip dependencies of type RECOMMEND while constructing depended_upon_by.
Bug info:
https://bugzilla.yoctoproject.org/show_bug.cgi?id=2431
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
git-svn-id: http://opkg.googlecode.com/svn/trunk@646 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* with
Package: a
Version: 1
and
Conflicts: a (<< 1)
we have comparison == 0, but constraint EARLIER is not satisfied!
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
git-svn-id: http://opkg.googlecode.com/svn/trunk@645 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
|
| |
If there were more than one candidate which had the same pkg name in the
candidate list, for example, the same pkg with different versions, then
it would use the last one which was the highest version one in the past,
but it will use the higher arch priority when this option is specified.
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
git-svn-id: http://opkg.googlecode.com/svn/trunk@643 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
If a configuration file is specified on the command line, we should
assume it contains all of the configuration and not try to read the
configuration in /etc/opkg.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
git-svn-id: http://opkg.googlecode.com/svn/trunk@640 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There is a problem with dependency order when installing packages. The key
problem revolves around the satisfy_dependencies_for() function which is
called from opkg_install_pkg just before the installation (and preinst)
happens.
The satisfy_dependencies_for() function calls pkg_hash_fetch_unsatisfied_dependencies()
which will only return packages which were previously not marked as
*going* to be installed at some point. For the purposes of
opkg_install_pkg() we really need to know which dependencies haven't been
installed yet.
This patch adds pkg_hash_fetch_satisfied_dependencies() which returns a
list of package dependencies. We can then directly check the status of
these and ensure any hard dependencies (not suggestions or recommendations)
are installed before returning.
Consider the situation (where -> means 'depends on'):
X -> A,E
A -> B,E
E -> B
B -> C
Currently X would install A and E. When installing A the packages B, E
and C would be marked as "to install". When the package B is considered
the second time (as a dependency of E rather than A), it would install
straight away even though C was not currently installed, just marked
as needing to be installed.
The patch changes the behaviour so B can't install until C really is installed.
This change is required to run the postinst scripts in the correct order.
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
git-svn-id: http://opkg.googlecode.com/svn/trunk@638 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
|
|
|
|
|
|
|
|
| |
When updating packages on the target device we ideally want to match
user and group numbers from the existing file system. This patch encourages
opkg to lookup the uname/gname fields first and only use the hardcoded
numerical values if that fails.
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@637 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
|
|
|
|
|
| |
* not used in opkg but can be usefull, e.g. instead of
opkg-utils/opkg-compare-versions.c
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
git-svn-id: http://opkg.googlecode.com/svn/trunk@636 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
|
|
| |
Thanks-to: Christian Hitz <christian.hitz@aizo.com>
git-svn-id: http://opkg.googlecode.com/svn/trunk@635 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
| |
git-svn-id: http://opkg.googlecode.com/svn/trunk@634 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
| |
git-svn-id: http://opkg.googlecode.com/svn/trunk@633 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
| |
git-svn-id: http://opkg.googlecode.com/svn/trunk@632 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
| |
git-svn-id: http://opkg.googlecode.com/svn/trunk@631 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
|
|
| |
remove the inner free as it another free occurs anyway immediately after leaving the loop
git-svn-id: http://opkg.googlecode.com/svn/trunk@630 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
|
|
| |
Problem pointed out by akostopou@gmail.com. This needs revisiting.
git-svn-id: http://opkg.googlecode.com/svn/trunk@629 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
When installing into an offline root, packages should be marked "unpacked"
not "installed". Resolves Issue #82.
git-svn-id: http://opkg.googlecode.com/svn/trunk@627 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
|
|
|
|
|
|
| |
This patch fixes a problem that arises when conf->offline_root is
null. The resulting string was "(null)//etc/opkg/trusted.gpg" when it
should have been "/etc/opkg/trusted.gpg".
From Kyle Manna <kyle.manna@gmail.com>.
git-svn-id: http://opkg.googlecode.com/svn/trunk@626 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
|
|
|
|
| |
- The problematic case is described by tests/regress/issue79.py
Signed-off-by: Camille Moncelier <moncelier@devlife.org>
git-svn-id: http://opkg.googlecode.com/svn/trunk@625 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
|
|
|
|
|
|
| |
Directories are now owned by a particular package, which ensures their
deletion in the event that a package leaves an empty directory during package
removal.
From Roman Khimov <khimov@altell.ru>.
git-svn-id: http://opkg.googlecode.com/svn/trunk@624 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
|
|
| |
This decreases the likelihood of a corrupted database due to power loss.
git-svn-id: http://opkg.googlecode.com/svn/trunk@623 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
|
|
| |
This breaks compatibility with the previous API, so bump the lib version.
git-svn-id: http://opkg.googlecode.com/svn/trunk@622 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
| |
git-svn-id: http://opkg.googlecode.com/svn/trunk@621 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
| |
git-svn-id: http://opkg.googlecode.com/svn/trunk@620 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
| |
git-svn-id: http://opkg.googlecode.com/svn/trunk@619 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
| |
git-svn-id: http://opkg.googlecode.com/svn/trunk@618 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
|
|
|
|
|
|
| |
This avoids multiple downloads in the case where a repository is simply a
mirror of another. The old, uri mangled, filename is still checked to ensure
backwards compatibility with existing caches.
Patch from robert.melchers@gmail.com.
git-svn-id: http://opkg.googlecode.com/svn/trunk@617 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
| |
git-svn-id: http://opkg.googlecode.com/svn/trunk@616 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
| |
git-svn-id: http://opkg.googlecode.com/svn/trunk@615 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
|
|
| |
of 'dists' entries for apt-alike repositories
git-svn-id: http://opkg.googlecode.com/svn/trunk@614 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
| |
git-svn-id: http://opkg.googlecode.com/svn/trunk@613 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
| |
git-svn-id: http://opkg.googlecode.com/svn/trunk@612 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
| |
git-svn-id: http://opkg.googlecode.com/svn/trunk@611 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
|
|
| |
download' message
git-svn-id: http://opkg.googlecode.com/svn/trunk@610 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
|
|
| |
This fixes segfaults when opkg_update_package_lists() is called multiple times.
git-svn-id: http://opkg.googlecode.com/svn/trunk@609 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
| |
git-svn-id: http://opkg.googlecode.com/svn/trunk@608 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
| |
git-svn-id: http://opkg.googlecode.com/svn/trunk@607 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
| |
git-svn-id: http://opkg.googlecode.com/svn/trunk@606 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
|
|
|
| |
Fixes a problem where the old package maintains that it owns a file even
though the new pkg has been installed with --force-overwrite.
git-svn-id: http://opkg.googlecode.com/svn/trunk@605 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Patch from Mike Westerhof, with minor modifications to allow the use of both
GNU gunzip and busybox gunzip. His original patch header follows.
This patch allows a user to set an environment variable to cause opkg to
select either the built-in gunzip code or an external gunzip utility, in
order to dodge the OOM Killer.
The built-in code is, of course, is the most desirable way to use opkg,
since it is far more efficient. However, the built-in code can trigger
the OOM (out of memory) killer on small-memory machines, like the 32MB
NSLU2. This occurs because a standard fork will duplicate the entire
address space of the parent. Since opkg reads the entire feed database
into memory, this problem is compounded by large feeds.
This patch introduces a means for the user to cause opkg to use vfork()
instead -- vfork() does not behave in the same manner as fork(), and
does not trigger the OOM killer. However, the semantics of vfork() are
such that it cannot run the built-in gunzip code. Instead, it must
exec() an external utility to perform the gunzip operation. It seems
counter-intuitive, but the vfork()/exec() approach is the only good way
to avoid triggering the dreaded OOM killer.
In order to use this, the user must manually set the OPKG_USE_VFORK
environment variable to any value. For example:
$ OPKG_USE_VFORK=1 opkg install samba
The external utility used to do the gunzip operation is "busybox gunzip".
It would have been nice to be able to just invoke "gunzip", but the
full gunzip executable behaves slightly differently than does busybox,
generating annoying warning messages.
This is an update of the original patch by Mike Westerhof, Dec 2008.
Mike Westerhof, Feb 2011
git-svn-id: http://opkg.googlecode.com/svn/trunk@604 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
|
|
| |
From Bernhard Guillon.
git-svn-id: http://opkg.googlecode.com/svn/trunk@603 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
|
|
|
|
|
|
|
| |
The function initializes some sub-systems, and for this reason alone
it must be invoked early in your program, before you make use of the
other functions in GPGME.
see http://pyme.sourceforge.net/doc/gpgme/Library-Version-Check.html
Patch from Bernhard Guillon.
git-svn-id: http://opkg.googlecode.com/svn/trunk@602 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
|
|
|
|
|
| |
This option is useful in the case where root is mounted ro, and another rw
filesystem is overlaid on top with e.g. mini_fo.
From Nicolas Thill via OpenWrt.
git-svn-id: http://opkg.googlecode.com/svn/trunk@601 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|
|
|
|
| |
git-svn-id: http://opkg.googlecode.com/svn/trunk@600 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
|