Commit graph

84 commits

Author SHA1 Message Date
Matthias Schiffer
06d51dbb9e
scripts/feeds: fix install of packages with different source/binary names
The logic for choice between source and binary packages was reversed.

Fixes: 52719c2b67 "metadata: scripts/feeds: distinguish between source
and binary packages, resolve virtual dependencies"
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2018-01-14 17:07:58 +01:00
Matthias Schiffer
52719c2b67
metadata: scripts/feeds: distinguish between source and binary packages, resolve virtual dependencies
Properly resolve build depends to source packages and runtime depends to
binary packages. Dependencies on virtual packages are resolved to the first
provider now.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2018-01-13 19:54:45 +01:00
Matthias Schiffer
47d6b05ad3
metadata: always resolve dependencies through provides list
Instead of adding virtual packages to the normal package list, keep a
separate list for provides, make each package provide itself, and resolve
all dependencies through this list. This allows to use PROVIDES to replace
existing packages.

Fixes FS#837.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2018-01-13 19:54:44 +01:00
Matthias Schiffer
423ec18116
metadata: remove redundant fields from package hash
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2018-01-13 19:54:44 +01:00
Matthias Schiffer
504cb913eb
metadata: change pkg->{src} field to hold a reference
We often want to access fields of a source packages through pkg->{src}.
Allow accessing them directly instead of resolving the source hash through
srcpackages.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2018-01-13 19:54:44 +01:00
Matthias Schiffer
b2ab9c9d33
metadata: move 'builddepends' from binary to source packages
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2018-01-13 19:54:43 +01:00
Matthias Schiffer
19577582e4
metadata: make srcpackage extensible
Turn the srcpackage values into hashes to allow storing more information
than just binary package names.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2018-01-13 19:54:43 +01:00
Michal Sojka
b1f102b03e scripts/feeds: Reuse TOPDIR if defined in environment
The feeds script sets value of TOPDIR in a way that is inconsistent
with how toplevel Makefile sets it. The inconsistency manifests when I
use a "build directory" with symlinks to LEDE source (see below).

When make is invoked in such a directory, make's TOPDIR variable is
set to that directory, whereas scripts/feeds sets TOPDIR to the top of
LEDE source, which results in creating feeds directory inside the LEDE
source instead of in the build directory.

This patch changes the script so that it reuses the TOPDIR value form
the environment if it exists. The result is that 'make
package/symlinks' correctly fetches feeds to the build directory
instead in the source.

I use the following commands to create the build directory:

    ln -s $SRC/config config
    ln -s $SRC/Config.in Config.in
    ln -s $SRC/feeds.conf.default feeds.conf.default
    ln -s $SRC/include include
    ln -s $SRC/Makefile Makefile
    mkdir package
    ln -s $SRC/package/base-files package/base-files
    ln -s $SRC/package/boot package/boot
    ln -s $SRC/package/devel package/devel
    ln -s $SRC/package/firmware package/firmware
    ln -s $SRC/package/kernel package/kernel
    ln -s $SRC/package/libs package/libs
    ln -s $SRC/package/Makefile package/Makefile
    ln -s $SRC/package/network package/network
    ln -s $SRC/package/system package/system
    ln -s $SRC/package/utils package/utils
    ln -s $SRC/rules.mk rules.mk
    ln -s $SRC/scripts scripts
    ln -s $SRC/target target
    ln -s $SRC/toolchain toolchain
    ln -s $SRC/tools tools

This allows me to easily test changes in LEDE on multiple targets.

Signed-off-by: Michal Sojka <sojkam1@fel.cvut.cz>
2017-02-21 13:03:20 +01:00
Jo-Philipp Wich
3bfcd21e4b feeds: add option to force feed update despite modified files
Implement a new flag "-f" for the feeds update command which causes the
script to fall back to a more agressive git update strategy in case there
are locally modified files in the feeds directory.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2017-02-15 10:07:00 +01:00
Rafał Miłecki
0a6439154a scripts/feeds: use git rev-parse for getting revision
It provides simpler output so we don't need extra head and cut commands.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2016-11-08 11:17:11 +01:00
Rafał Miłecki
4f7947dab8 scripts/feeds: display "X" as revision of uninitialized feeds
So far we were displaying "local" which could be misinterpreted. It
wasn't possible e.g. to say if src-link feed was initialized or not.
Hopefully "X" makes (a bit) more sense.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2016-11-08 11:17:11 +01:00
Rafał Miłecki
a2944a0c09 scripts/feeds: use 10 chars for feed name column width
It's always hard to find a reasonable width that will make everyone
happy. This one at least makes "telephony" (one of default feeds) name
fit the column and hopefully isn't too big.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2016-11-03 08:34:38 +01:00
Daniel Dickinson
34527688fc scripts/feeds: Prevent .config autocreation
When using scripts/feeds upgrade the .config needs to be
updated but the code to do so was also autocreating a
.config if one didn't exist.  This is counter-productive
when you have not yet used menuconfig (or other config targets)
because things like selecting or deselecting CONFIG_ALL
(to build all package by default) only works if the
package selection has not already been done via an
existing .config selection.

Signed-off-by: Daniel Dickinson <lede@daniel.thecshore.com>
2016-07-05 22:59:13 +02:00
Jo-Philipp Wich
df18b3756f scripts: feeds: fix version detection for Make >= 4.2.1
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2016-06-15 19:10:32 +02:00
Iblis Lin
d9a0a8c78f scripts: avoid hard-coded paths in scripts
Signed-off-by: Iblis Lin <e196819@hotmail.com>
2016-04-28 16:43:28 +02:00
Jonas Gorski
0d54d44349 scripts/feeds: allow export of feeds with static revisions
Add a switch to scripts/feeds that allows listing the feeds with their
currently checked out revisions in feeds.conf compatible format.

This allows providing a feeds.conf for public builds to make replication
of the build easier.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 46706
2015-08-23 09:35:46 +00:00
Jo-Philipp Wich
c5fbcf59e0 scripts/feeds: return error status from feed update
This patch is a modified version of the patch being discussed at here:
https://patchwork.ozlabs.org/patch/471303/
from Martin Strbacka <martin.strbacka@nic.cz>

My version modifies scripts/feeds so that an error with one of the feeds just
raises the error flag, but script continues and tries to update the other
feeds. After all feeds have been updated, the script returns 1 if at least
one feed failed, and 0 on success with all feeds. The user can then utilise
the status in his build script, if he wants.

signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>

SVN-Revision: 46374
2015-07-14 22:27:39 +00:00
Steven Barth
37c015fe25 scripts/feeds: print the source of packages installed
Can be helpful in diagnosing unexpected package overlaps between
feeds/core.

Signed-off-by: Karl Palsson <karlp@remake.is>

SVN-Revision: 46255
2015-07-07 22:32:38 +00:00
Steven Barth
b6d0061fec scripts/feeds: observe -p flag for preferential feeds
lookup_target was trampling the $feed variable, resulting in the -p flag
no longer preferentially installing from the named feed.

Make sure to use a local variable for this instead.

Signed-off-by: Karl Palsson <karlp@remake.is>

SVN-Revision: 46120
2015-06-24 10:57:20 +00:00
Felix Fietkau
7de4c92804 scripts/feeds: fix typo in copied code
do_install_target copied code from do_install_package, but didn't
replace all text.

Signed-off-by: Karl Palsson <karlp@remake.is>

SVN-Revision: 45784
2015-05-27 15:20:22 +00:00
John Crispin
803ebd2725 scripts/feeds: Delete package/feeds folder in the clean procedure to prevent dangling links.
Hello,

if you run:
./scripts/feeds clean
It removes ./feeds folder but not ./package/feeds/ which is full of dangling links then. This patch fixes it.

Best Regards,
Martin Strbačka

Signed-off-by: Martin Strbacka <martin.strbacka@nic.cz>

SVN-Revision: 45738
2015-05-23 15:29:06 +00:00
Felix Fietkau
08436887fb scripts/feeds: add support for optionally using a full clone of git repositories
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 45668
2015-05-10 15:51:19 +00:00
Felix Fietkau
4b1165d5c7 scripts/feeds: add support for uninstalling targets
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 44782
2015-03-15 11:08:10 +00:00
Felix Fietkau
2484f3a86a scripts/feeds: add support for installing targets
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 44781
2015-03-15 11:08:05 +00:00
Felix Fietkau
b7ebb19b02 scripts/feeds: get rid of redundant feed cache copy
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 44779
2015-03-15 11:07:57 +00:00
Felix Fietkau
0efcb02c9d scripts/feeds: remove useless install_method abstraction
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 44778
2015-03-15 11:07:52 +00:00
Felix Fietkau
b6ac0d799c scripts/feeds: add support for searching for targets
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 44777
2015-03-15 11:07:44 +00:00
Felix Fietkau
f8b95e05f1 scripts/feeds: scan for target metadata
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 44775
2015-03-15 11:07:34 +00:00
Felix Fietkau
1592f3f607 scripts/feeds: remove a few trailing tabs
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 44773
2015-03-15 11:06:50 +00:00
John Crispin
2e2c04777b build: allow openwrt.git packages to be replaced by feeds
Currently, replacing a package available in openwrt.git requires
modifications in openwrt.git, or requires duplicating the package in a
feed but with a different name, which causes all kind of problems
related to dependencies (all packages selecting it would have to be
modified accordingly to select the new package).

With this change, if a package with the same name is present both in
feeds/ and package/ folders, the one in feeds/ can override the one
in package/, both in the menuconfig and during the build, by passing the
"-f" option to "./scripts/feeds install"

This mechanism is particularly useful for vendor tree, or in general for
application which needs to replace one particular package which exists
within openwrt.git by a custom/newer version.

Signed-off-by: Mathieu Olivari <mathieu@qca.qualcomm.com>

SVN-Revision: 44334
2015-02-09 12:09:23 +00:00
John Crispin
b6f268d775 build: revert r44076
the patch causes issues when installing feeds

Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 44078
2015-01-22 13:13:09 +00:00
John Crispin
de3bf7e4c2 build: allow openwrt.git packages to be replaced by feeds
Currently, replacing a package available in openwrt.git requires
modifications in openwrt.git, or requires duplicating the package in a
feed but with a different name, which causes all kind of problems
related to dependencies (all packages selecting it would have to be
modified accordingly to select the new package).

With this change, if a package with the same name is present both in
feeds/ and package/ folders, the one in feeds/ can override the one
in package/, both in the menuconfig and during the build, by passing the
"-f" option to "./scripts/feeds install"

This mechanism is particularly useful for vendor tree, or in general for
application which needs to replace one particular package which exists
within openwrt.git by a custom/newer version.

Signed-off-by: Mathieu Olivari <mathieu@qca.qualcomm.com>

SVN-Revision: 44076
2015-01-22 09:35:40 +00:00
John Crispin
590b855c26 scripts/feeds: handle missing/broken feeds better
pts/feeds update -a" can fail rather silently for feeds using git, as
the script does not pause when updating a feed fails. Instead it prints the
error message and calmly continues to the next feed. It is very easy to
overlook update errors with the feeds updated first, as their text scrolls
rapidly away from the screen.

This behaviour has not been a big problem with svn feeds, as svn update stops
with a conflict message and interactively forces the user to resolve or
postpone the conflict. In any case the svn error is noticed by the user.

Majority of the feeds use now git, so this silent failure can affect users
doing private builds in an increasing amount.

Below is an example of update failing and script continuing:

perus@v1404:/Openwrt/barrier$ ./scripts/feeds update -a
Updating feed 'packages' from
'https://github.com/openwrt/packages.git;for-14.07' ...
remote: Counting objects: 17, done.
remote: Compressing objects: 100% (15/15), done.
remote: Total 17 (delta 10), reused 8 (delta 1)
Unpacking objects: 100% (17/17), done.
 From https://github.com/openwrt/packages
62031da..dc26009  for-14.07  -> origin/for-14.07
Updating 62031da..dc26009
error: Your local changes to the following files would be overwritten by merge:
utils/collectd/Makefile
Please, commit your changes or stash them before you can merge.
Aborting
failed.
Updating feed 'luci' from 'http://git.openwrt.org/project/luci.git;luci-0.12' ...
Already up-to-date.
Create index file './feeds/luci.index'
Updating feed 'routing' from
'https://github.com/openwrt-routing/packages.git;for-14.07' ...
...

The script prints "failed.", but does not break the updating process. The
"update_feed" function returns an error code 1, but that value is not checked
in the "update" function, which continues to the next feed.
Return 1 as error:
​https://dev.openwrt.org/browser/trunk/scripts/feeds#L547
Call to update_feed without any error monitoring:
​https://dev.openwrt.org/browser/trunk/scripts/feeds#L585

The included patch makes the feeds script to stop updating after failing to
update a feed.

The script continues to the refresh_config step despite a possible failure in
updating, so the stopping action just prevents the other feeds from updating
and makes the error more clearly visible.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>

SVN-Revision: 42891
2014-10-13 19:41:27 +00:00
Jo-Philipp Wich
a720dd209f build: introduce per feed repository support
This changeset implements a new menuconfig option to generate separate
repositories for each enabled package feed instead of one monolithic one.

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>

SVN-Revision: 42002
2014-08-05 11:24:24 +00:00
Felix Fietkau
dcb5d00875 scripts: unset GREP_OPTIONS in env and feeds (fixes #16924)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 41407
2014-06-30 06:50:22 +00:00
Luka Perkov
49722e7dcb feeds: enable cloning of specific git commit
Following syntax should be used to enable this feature:

src-git custom git://openwrt/custom-feed^SHA_COMMIT_ID

Signed-off-by: Luka Perkov <luka@openwrt.org>

SVN-Revision: 38172
2013-09-25 13:02:55 +00:00
Florian Fainelli
a1267290ed scripts/feeds: ensure that --ff is enabled
Users may have merge.ff set to false, which will force merge commits to
be generated.  The intent here is to have a fast-forward merge when
possible, so let's make sure fast-forwards are enabled.

Signed-off-by: John Szakmeister <john@szakmeister.net>
Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 37884
2013-09-02 18:25:10 +00:00
Jo-Philipp Wich
103b69e250 feeds: fix check for core packages that are not in the package/ toplevel directory
SVN-Revision: 36763
2013-05-29 18:17:07 +00:00
Felix Fietkau
3df534502c scripts/feeds: redirect stderr of the which call to /dev/null to avoid potentially confusing error messages on some systems
SVN-Revision: 32499
2012-06-25 00:27:03 +00:00
Felix Fietkau
85f1a2c67a add further countermeasures against the git core.autocrlf option (fixes #9075)
SVN-Revision: 31650
2012-05-08 13:30:54 +00:00
Felix Fietkau
34ffb526a2 build: rework verbosity level selection
V=99 and V=1 are now deprecated in favor of a new verbosity class system,
though the old flags are still supported.
You can set the V variable on the command line (or OPENWRT_VERBOSE in the
environment) to one or more of the following characters:

- s: stdout+stderr (equal to the old V=99)
- c: commands (for build systems that suppress commands by default, e.g. kbuild)
- w: warnings/errors only (equal to the old V=1)

SVN-Revision: 31484
2012-04-26 17:53:56 +00:00
Mirko Vogt
1f489e4084 re-enable shallow git clones ('--depth 1')
SVN-Revision: 31469
2012-04-24 18:19:16 +00:00
Mirko Vogt
2ebcd4707c include revisions of feeds when listing them
SVN-Revision: 31467
2012-04-24 12:56:18 +00:00
Felix Fietkau
e925dbf704 scripts/feeds: override the OPENWRT_BUILD variable when calling internal targets (based on patch from #10212)
SVN-Revision: 28503
2011-10-21 13:03:37 +00:00
Jo-Philipp Wich
a02ba6ccc2 Add support for git-svn package feeds Signed-off-by: Jonathan McCrohan <jmccrohan@gmail.com>
SVN-Revision: 26988
2011-05-24 09:30:24 +00:00
Felix Fietkau
3945267a99 scripts/feeds: support checking out git trees with different branches
SVN-Revision: 24285
2010-12-06 16:57:25 +00:00
Florian Fainelli
0d74b45467 add support for darcs-based feeds
The following patch adds support for darcs-based feeds.
It is tested and works well for my purpose.  I wish it
were committed upstream so that I can share my feed with
other users without converting it to svn/git/whatever.

Best regards,

Signed-off-by: Gabriel Kerneis <kerneis@pps.jussieu.fr>

SVN-Revision: 23616
2010-10-24 12:36:51 +00:00
Michael Büsch
b5cfdcd278 Fix typo
SVN-Revision: 23524
2010-10-18 21:43:50 +00:00
Jo-Philipp Wich
adcfdc46e0 feeds: restore previously active feed after install_package(), fixes install all case for packages with inter-feed dependencies
SVN-Revision: 23171
2010-10-02 02:37:27 +00:00
Felix Fietkau
198f027c4b scripts/feeds: fix a bug in the metadata caching change
SVN-Revision: 22819
2010-08-26 21:40:16 +00:00