Age | Commit message (Collapse) | Author |
|
control.tar.gz is always compressed with gzip.
If data.tar is compressed by a compressor other than gzip, control.tar.gz
may end up compressed with timestamp in the compressed image header.
This would result in packages that are not binary reproducible.
[YOCTO #11242]
Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>
|
|
Implements some of the recommendations by reproducible-build.org [1]
- Set modification time to SOURCE_DATE_EPOCH env variable
- Enable deterministic sorting of directory entries
- Do not save timestamp on gzip compressed archive
bugzilla #11242
[1] https://reproducible-builds.org/docs/archives/
Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>
|
|
During package upgrades, the link location might change. For example:
Package A: 'update-alternatives --install /bin/app app /some/real/path 100'
Package B: 'update-alternatives --install /sbin/app app /some/other/path 100'
Opkg disallows a link change and throws an error. Debian does allow the
operation, changing the link to the new location. Add support to follow
the debian update-alternatives behavior.
bugzilla #8344
Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>
|
|
'\>' is to matches the end of a word, but the executable is
not always a 'word', e.g. /usr/lib64/busybox/usr/bin/[
then such alternatives can not be removed.
So change to use '\s' in the pattern since the following
character of the $path is whitespace.
Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>
|
|
If the -f option is enabled, opkg-make-index will include user-defined
fields in the package index rather than discarding them. This change is
motivated by the fact that opkg now has support for user-defined fields
in the package index.
Signed-off-by: Jeffrey Pautler <jeffrey.pautler@ni.com>
Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>
|
|
The Debian Policy Manual describes the format of the description field.
This includes information about how lines might be wrapped by programs
displaying this information, how to mark lines to not be wrapped, how
to mark a line as blank, and how leading spaces on a multi-line
description might be deleted.
By reformatting the description field in opkg.py, we are breaking many
of these behaviors and taking control of formatting away from the
author of the control file. Instead, we should simply copy the
description field with no reformatting.
Signed-off-by: Jeffrey Pautler <jeffrey.pautler@ni.com>
Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>
|
|
Signed-off-by: Jeffrey Pautler <jeffrey.pautler@ni.com>
Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>
|
|
When opkg-build detects illegal character in package name it prints an error
message with this name. Due to a wrong variable name the package name in the
error message is empty. The same error occurs in opkg-buildpackage as well.
This patch fixes both.
Signed-off-by: Adam Trhon <adam.trhon@tbs-biometrics.com>
Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>
|
|
Signed-off-by: Zhu Mumu <zhumumu@gmail.com>
Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>
|
|
This is consistent with Debian policy.
Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>
|
|
Archive files have an optional '/' terminator in the member file name
field. (See /usr/include/ar.h)
This change makes opkg-make-index more forgiving on packages created
manually with alternative tools like CPack.
Signed-off-by: Rob Woolley <rob.woolley@windriver.com>
Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>
|
|
Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>
|
|
Using the -a option with opkg-make-index, you can now generate an index
file which will list multiple version of the same package. Added since
opkg now supports specifying version of package.
Signed-off-by: desmond <desmond.correia@prolucid.ca>
Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>
|
|
Warn users when multiple providers of a utility have the same priority.
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>
|
|
The Description field on the Packages file doesn't follow the same
format used on the Control file. It is incorrectly processing the
summary line (it treats it as part of the longer description). Add code
to print the summary line on it's own.
Fixes issue 9238
Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>
|
|
Add a manpage for opkg-build and a corresponding Makefile
snippet to build it using pod2man.
Signed-off-by: Andrew Shadura <andrew.shadura@collabora.co.uk>
Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>
|
|
Add -Z with the same semantics as dpkg-deb -Z:
Specify which compression type to use for data.tar member when building
the package. Allowed values are gzip, bzip2 and xz.
The default value is gzip.
Signed-off-by: Andrew Shadura <andrew.shadura@collabora.co.uk>
Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>
|
|
Align case/esac options assuming tabulation size 8.
Signed-off-by: Andrew Shadura <andrew.shadura@collabora.co.uk>
Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>
|
|
Currently, there are three compare-versions implementations:
1) opkg-utils: opkg-compare-versions.c
2) opkg-utils: opkg-compare-versions.sh
3) opkg: internal
To avoid confusion and avoid maintaining three codebases, remove the
compare-versions functionality from opkg-utils and only keep the
implementation on the opkg binary.
Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>
|
|
Python-future provides a python2 compatible object class (provides next
method). Since method is not used, remove dependency.
Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>
|
|
Commit b9eec00a67f13ad9f9526caf591578b40d73a391 correctly renamed
__repr__to __str__. A call site in write_packages_file was missed.
Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>
|
|
General fixes
* Add __future__ imports
* Use print function instead of print statement
* Use new style classes
* Iterate over list, instead of over object.keys()
* Use six.iteritems instead of iteritems()
opkg.py:
* Add conditional to decode string if needed in Package:read_control
arfile.py
* Add seekable method to FileSection class (needed by tarfile)
Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>
|
|
Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>
|
|
If Version is missing in a control file, opkg-build reports an error to
stdout, but returns 0. Fix condition on pkg_appears_sane to properly
return an error if Version is missing.
Suggested-by: Thomas de Schampheleire <patrickdepinguin@gmail.com>
Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>
|
|
Signed-off-by: Denys Dmytriyenko <denys@ti.com>
|
|
We have an issue when ls segfaults in some cases [1] so it's
better to detect the failure at this level instead of continue
the build process.
[YOCTO #8926]
[1] https://bugzilla.yoctoproject.org/show_bug.cgi?id=8926#c0
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
|
|
Usage: opkg-graph-deps [-h] [-d] [-o feed.dot] [-u <Base_feed_URL>]
<Paths_to_Packages_files>
Generates a dot formatted dependency graph of an IPK feed.
The feed is specified by a list of IPK index (Packages) files, which
are sourced in the order specified to build a dependency graph. Last
index to declare a package wins, but also generates a warning to stderr.
Only the flat index format is supported -- I.e. only Packages files,
not Packages.gz files.
Possible warnings:
Duplicate package: package appears in more than one index.
Broken dependency: no package satisfies a declared dependency.
Self alias: package declares an alias on it's own name.
Virtual-real alias: package attempts to provide a real package.
Missing field: package is missing a required field.
If a base feed URL is specified (-u), each node will include an 'href'
to the associated IPK file. This is purely cosmetic. E.g. It can be used
to create clickable links on a rendered graph. Using it has no effect
on the set of packages or dependencies. It's assumed the specified
base feed URL hosts the current working directory, so the resulting
href's are generated by joining the base and a relative IPK path.
The resulting feed graph is written to './feed.dot' or an alternate
path specified by the caller. Nodes represent real packages (not
aliases)
and edges represent dependencies.
Node attributes:
(node name): Package name from feed index (without version or arch)
label: [Package name] [ipkArchitecture] [ipkVersion]
ipkArchitecture: Architecture name from feed index
ipkVersion: The full version number from feed index
ipkMissing: Set to "1" when the ipk is not actually in feed, but has
one or inbound dependencies.
href: URL to the IPK file. Only if optional base URL is specified.
Edge attributes:
(from) The package name declaring a dependency
(to) The (de-aliased) package name (from) depends on
ipkProvides: The alias of (to) which (from) depends on. Only set when
the alias != (to).
ipkBrokenDep: Set to "1" if (to) is missing from the feed.
Signed-off-by: Haris Okanovic <haris.okanovic@ni.com>
Reviewed-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>
|
|
Fix crash on exception in opkg-show-deps when generating an
'unsatisfied dependency' error. process_dep() function was
referencing a missing parameter `pkg`.
Signed-off-by: Haris Okanovic <haris.okanovic@ni.com>
Acked-by: Brad Mouring <brad.mouring@ni.com>
Cc: Alejandro del Castillo <alejandro.delcastillo@ni.com>
Cc: Paul Barker <paul@paulbarker.me.uk>
Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>
|
|
The link path stored by update-alternatives should always be absolute and so we
do not need to add an additional slash when joining to $OPKG_OFFLINE_ROOT.
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Paul Barker <paul@paulbarker.me.uk>
|
|
There was some confusion discussed on the mailing list about what the various
loops in this script were doing. Comments are added to explain the behaviour,
hopefully preventing any confusion in the future. Thanks to Pavel Zubarev for
bringing this up and helping me to clarify what the current code is doing.
Signed-off-by: Paul Barker <paul@paulbarker.me.uk>
|
|
The outer loop is iterating over dependencies and the inner loop is iterating over the providers of those dependencies.
So the 'continue' needs to act on the outer loop not the overall routine.
Signed-off-by: Pavel Zubarev <pavel.zubarev@gmail.com>
Signed-off-by: Paul Barker <paul@paulbarker.me.uk>
|
|
Installing packages using update-alternatives will give the following error lines:
sed: -e expression #1, char 41: unterminated address regex
sed: -e expression #1, char 42: unterminated address regex
This is caused by the script update-alternatives.
"[" can not be used directly in sed expression, which should be escaped
in sed expression.
Signed-off-by: Jian Liu <jian.liu@windriver.com>
Signed-off-by: Paul Barker <paul@paulbarker.me.uk>
|
|
Signed-off-by: Paul Barker <paul@paulbarker.me.uk>
|
|
I knew what I meant, but hit commit too fast!
Signed-off-by: Paul Barker <paul@paulbarker.me.uk>
|
|
* Some options of GNU tar do not exist on other implementations
Signed-off-by: Thomas Ingleby <thomas.c.ingleby@intel.com>
Signed-off-by: Paul Barker <paul@paulbarker.me.uk>
|
|
The new relpath argument of the Package object constructor is used so that the
relative path from pkg_dir to the package file will be placed in the package
index. The allows the package file to be in a subdirectory of pkg_dir.
Signed-off-by: Paul Barker <paul@paulbarker.me.uk>
|
|
The new 'relpath' argument to the initialiser of a Package object is used so
that file paths will be given relative to the base packages directory.
Paths are given relative to pkg_dir as that seems to make the most sense. It
certainly works when the 'Packages' file is written to pkg_dir. If the
'Packages' file is written elsewhere it is assumed that the user will know what
the paths are relative to. This is similar to debian feeds where the paths in a
'Packages' file is not stored in the packages pool but is stored in a separate
directory, yet paths are given relative to the common base of these directories.
Signed-off-by: Paul Barker <paul@paulbarker.me.uk>
|
|
In order to support package files residing in a different directory to the
'Packages' index file, we need to allow filename entries in the index to be
relative paths. In order to not break existing code, filename remains the
basename of fn by default. However, if the new relpath argument is set then
filename is the path of fn relative to relpath.
Signed-off-by: Paul Barker <paul@paulbarker.me.uk>
|
|
Signed-off-by: Paul Barker <paul@paulbarker.me.uk>
|
|
The usage message had the name of the program wrong.
If the number of arguments is not correct then the current code does not show
the usage message as indended. Instead it gives an index out of range error if
too few arguments are provided or silently ignores extra arguments. This code is
fixed so that the length of the arguments list is checked before arguments are
accessed, preventing errors and allowing the usage message to be shown
correctly.
Signed-off-by: Paul Barker <paul@paulbarker.me.uk>
|
|
Signed-off-by: Paul Barker <paul@paulbarker.me.uk>
|
|
With a change from last august in dpkg-deb, the packages generated by opkg-build will not be accepted by dpkg-deb anymore.
The change disallows that the data.tar.gz is packed into the ipk/opk before the control.tar.gz.
For details have a look here:
http://anonscm.debian.org/gitweb/?p=dpkg/dpkg.git;a=commitdiff;h=547dca4c3ff23df5dfa554f1943b371cd7056ee4
For details which order is correct, see "man 5 deb", but in short it is:
debian-binary, control.tar.gz and data.tar.gz
Signed-off-by: Thilo Cestonaro <thilo@cestona.ro>
Signed-off-by: Paul Barker <paul@paulbarker.me.uk>
|
|
The update-alternatives script is being moved from opkg to opkg-utils to break
possible circular dependencies in openembedded. As opkg will depend on
libarchive soon, and may depend on other packages if certain options are
enabled, opkg cannot itself provide update-alternatives if its dependencies
require update-alternatives.
opkg-utils has minimal build-time dependencies and so is a good place to put the
update-alternatives script.
Signed-off-by: Paul Barker <paul@paulbarker.me.uk>
|
|
Added instructions for potential contributors.
Signed-off-by: Paul Barker <paul@paulbarker.me.uk>
|
|
Signed-off-by: Paul Barker <paul@paulbarker.me.uk>
|
|
Otherwise this fills logs with output on systems with dash as /bin/sh,
we might as well execute cleanly.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
Since openSUSE 12.2 the installed tar uses posix instead of gnu encoding
by default. This format is not fully supported by opkg and results in
ipk packages not installable at the target.
Collected errors:
* get_header_tar: Unknown typeflag: 0x78: Success.
* get_header_tar: Unknown typeflag: 0x78: Success.
* get_header_tar: Unknown typeflag: 0x78: Success.
* extract_archive: Don't know how to handle /var/lib/opkg/tmp/opkg-mg997m/chicken-bin-fGRvr4/PaxHeaders.17512/.: No such file or directory.
* get_header_tar: Unknown typeflag: 0x78: No such file or directory.
* get_header_tar: Unknown typeflag: 0x78: No such file or directory.
...
Signed-off-by: Steffen Sledz <sledz@dresearch-fe.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
|
|
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
subprocess.check_output is not present in Python 2.6. Since the return value
is not being used anyway, replace it with subprocess.call(), which is.
Signed-off-by: Chris Diamand <chris@diamand.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|