The --mtime argument to 'tar' sets the modification time for all files within
the archive, which determines the timestamp files will get when they are
extracted. In this case, rootfs and other tarballs will get mtimes which
correspond to the last commit timestamp of the build system, as reported by
git/subversion.
This is a step towards reproducible image builds.
Signed-off-by: bryan newbold <bnewbold@robocracy.org>
Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 48586
SOURCE_DATE_EPOCH is the date of the last modified file using git/svn
as date source.
See https://reproducible-builds.org/specs/source-date-epoch/
Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 48584
date -r $unix_timestamp on bsd is equal to date -d @$unix_timestamp on
linux. To support reproducible builds and not loosing every timestamp
it's required to convert a unix timestamp into human readable timestamp
./scripts/portable_date $unix_timstamp +%T
Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
SVN-Revision: 48583
This is useful to just use the kmods from an official build while supplying
base packages from a custom feed or the other way around; for just overriding
the kmods with a local repo while using official repos for the rest.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
SVN-Revision: 48475
The Apache Software Foundation offers diverse download mirros.
For packaging Apache software a new alias @APACHE is defined.
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
SVN-Revision: 48270
Cleanup the @GNOME source download location definitions:
* remove dead and stale mirrors
* adjust to changes at directory structure
* add one new working mirror
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
SVN-Revision: 47825
Use similar approach as r47461 to reduce output for busybox config.
Since r39435 CONFIG_BUSYBOX_CUSTOM=y has caused the addition of
all ~260 busybox config options to the diffconfig output even if
only one option has been changed.
This patch eliminates the unchanged busybox config options from the output
and leaves only the actually modified options.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
SVN-Revision: 47463
These are from today's master branch of:
http://git.savannah.gnu.org/gitweb/?p=config.git;a=tree
In particular it adds support for ARC architecture plus some more
improvements and fixes.
This patch is built-tested against NetGear WNDR3800.
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Florian Fainelli <florian@openwrt.org>
Cc: Imre Kaloz <kaloz@openwrt.org>
SVN-Revision: 47360
This change adds support for specifying a build ID for kernel modules.
This is done by setting PKG_BUILD_ID to a hexadecimal string, which will
then be passed to the kernel linker. In addition, when this flag is set,
the build ID debug symbol (.note.gnu.build-id) will not be stripped from
the kernel module. This symbol is exported in sysfs by the kernel (if
the kernel is compiled with CONFIG_KALLSYMS) and so can be used to
uniquely identify a version of a kernel module in a running kernel. This
is useful for keeping track of different versions of a module when doing
experiments and development.
Modules that specify the build ID will be ~100 bytes larger (depending
on the length of the build ID specified). There is no size difference
for kernel modules that do not set this variable.
Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
SVN-Revision: 47290
The u-boot on Open Mesh devices checks the whole transfered image against a
md5sum. This is stored inside the option filemd5sum inside the
fwupgrade.cfg. The bootloader will not check it when this setting is
missing and could therefore write invalid images to the flash.
Signed-off-by: Sven Eckelmann <sven@open-mesh.com>
SVN-Revision: 46925
kernel.org now suggests a different mirror address. this one also
support IPv6 connections and was faster for me.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 46875
several packages reported different file order between builds
make binutils, kmod-sched reproducible
Signed-off-by: Dirk Neukirchen <dirkneukirchen@web.de>
SVN-Revision: 46859
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
This tool avoids generating the redboot script directly from Makefile, which
can get really complicated when adapting image/Makefile to the new IB system.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Signed-off-by: Jonas Gorski <jogo@openwrt.org>
SVN-Revision: 46488
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
As a follow-up to r46026, this commit sets the modification
times of files inside the tarballs to deterministic values.
It uses the date of the last git or svn commit and falls
back to the old behavior if those are not available.
Signed-off-by: Reiner Herrmann <reiner@reiner-h.de>
SVN-Revision: 46360
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
When creating control.tar.gz, data.tar.gz and $package.ipk
tar compresses them with default gzip options.
This includes build timestamps in their gzip headers.
By setting the GZIP env variable to -n, gzip no longer embeds
them, which is a step towards reproducibility.
See also [1] for more detailed motivations.
[1]: https://wiki.debian.org/ReproducibleBuilds/About
Signed-off-by: Reiner Herrmann <reiner@reiner-h.de>
SVN-Revision: 46026
In r45785 ixp4xx was changed to use a common image prefix also for
kernels, but the script creating them was not updated to generate the
expected filenames.
Fix this by letting arm-magic.sh respect $IMG_PREFIX for the output
kernel file names as well.
Signed-off-by: Jonas Gorski <jogo@openwrt.org>
SVN-Revision: 45803
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
mkits.sh help currently shows dtb file as optional, but generates an
invalid its file when this option is unspecified.
We're fixing this problem by removing the use of the sed command and
just including variables instead.
Signed-off-by: Mathieu Olivari <mathieu@qca.qualcomm.com>
SVN-Revision: 45659
Split out kmods from ALL to make it easier to create local builds that
are compatible kmod-wise with releases.
Signed-off-by: Jonas Gorski <jogo@openwrt.org>
SVN-Revision: 44830
Git internals are referenced by .git which isn't necessarily a
directory. It may also be a file that references the actual .git
directory using the gitdir directive.
If .git is assumed to be a directory the build will not be able to get
the correct version when openwrt is included as a git submodule because
when used as a submodule .git will actually be a file referencing to a
subdirectory in the parent's git dir.
When the correct version is not detected some image generation tools
will fail because the OpenWrt string will be 'OpenWrtunknown' which is
too long for some header formats.
Signed-off-by: Felix Kaechele <heffer@fedoraproject.org>
SVN-Revision: 44452
Remove all rpath entries which do not point to a location below /lib or
/usr/lib and which do not begin with '$ORIGIN'.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
SVN-Revision: 44377
With this change, override information is now parsed from the metadata
and put in the %packages hash. A new hash - %overrides - is created and
exported, to be used during the .config-package.in generation.
If an override is detected, a new option CONFIG_OVERRIDE_PKGS will be
created in the .config, and will contain a space-separated list of all
the overridden packages.
Signed-off-by: Mathieu Olivari <mathieu@qca.qualcomm.com>
SVN-Revision: 44336
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
Do not output faulty ".ko" dependency if a scanned .ko file has an empty
"depends=" specification, also replace the `grep | sed | awk` chain with a
single sed program.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
SVN-Revision: 44206
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
When the initial glob() attempt on a path specified with "source" statement
yields no result, then retry the globbing on the same path with the directory
part of the currently processed file prepended.
This allows us to reference Config.in files relative to their parent instead
of relative to the top dir.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
SVN-Revision: 43652
Plain "remote" results in failure to connect using the gdb built with
the toolchain. (On atheros target at least) extended-remote also allows
"run" to restart the target process.
Signed-off-by: Karl Palsson <karlp@remake.is>
SVN-Revision: 43596
Many packages define already metadata about their license (PKG_LICENSE),
but this is only included in the ipk files.
This change allows to create the information also on the build-host,
to get an overview on the used licenses.
In the full list, also all packages without this info are shown
Signed-off-by: Thomas Langer <thomas.langer@lantiq.com>
SVN-Revision: 43070
[base-files] shell-scripting: fix wrong usage of '==' operator
normally the '==' is used for invoking a regex parser and is a bashism.
all of the fixes just want to compare a string. the used busybox-ash
will silently "ignore" this mistake, but make it portable/clean at least.
this patch does not change the behavior/logic of the scripts.
Signed-off-by: Bastian Bittorf <bittorf@bluebottle.com>
SVN-Revision: 42911
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
I defined a new download method @SAVANNAH in include/download.mk and scripts/download.pl,
and converted quilt and qemu to use that method.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
SVN-Revision: 42840
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
r41359 broke support for building ubinized images which do
include a kernel volume.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
SVN-Revision: 41368
ubinize-image.sh previously used ${var:offset:length} substitutions
which are not valid in standard shell.
Replace the existing parameter matching by a case ... esac expression.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
SVN-Revision: 41347
This is a wrapper for the ubinize tool which integrates auto-generation
of the ubinize.cfg for common volume layouts with and without a kernel
volume.
It supports auto-detecting the rootfs-type and decides whether or not
to include a rootfs_data volume based on whether the rootfs is ubifs
or not (and thus is read-only and needs rootfs_data ubifs overlay).
The script allows to create layouts as found in all current
ubinize{,-overlay}.cfg files using
ubinize-image.sh --no-kernel root.{ubifs,squashfs} output.ubi $UBI_OPTS
It also includes support for adding ubootenv and ubootenv2 volumes
typically used by U-Boot for storing its environment in UBI using the
"--uboot-env" parameter.
See also
https://gitorious.org/openwrt-oxnas/openwrt-oxnas/source/target/linux/
oxnas/image/Makefile
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
create mode 100755 scripts/ubinize-image.sh
SVN-Revision: 41121