Commit Graph

1102 Commits

Author SHA1 Message Date
Tianling Shen
7b9bb83525
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-07-05 17:49:45 +08:00
Sander Vanheule
ebfe66e494 scripts: fix CAMEO tag generator
What should have been only cosmetic changes, ended up in breaking the
script. Rename UIMAGE_CRC_SLICE back to (the original) UIMAGE_CRC_OFF.

Fixes issue #10204 "cameo-tag.py broken"

Reported-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Fixes: f9e840b657 ("scripts: add CAMEO tag generator")
Signed-off-by: Sander Vanheule <sander@svanheule.net>
2022-07-05 10:18:06 +02:00
Markus Stockhausen
f9e840b657 scripts: add CAMEO tag generator
This script inserts CAMEO tags into an uImage to make U-Boot
of DGS-1210 switches happy.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Suggested-by: Sander Vanheule <sander@svanheule.net> # Mutual checksum algorithm
[commit title prefix, trailing whitespace, OpenWrt capitalisation, move
CRC calculation comment, use UIMAGE_NAME_*, remove parentheses for
return, use f-string instead of str()]
Signed-off-by: Sander Vanheule <sander@svanheule.net>
2022-07-05 09:55:36 +02:00
Tianling Shen
f58bf546eb
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-07-04 16:43:32 +08:00
Mikhail Zhilkin
0cb1dc0277 scripts: add support for Sercomm PID
This scripts creates Sercomm PID file. PID is necessary for the factory
images creation of variuos Sercomm-based devices (Beeline, Netgear,
Etisalat).

Size: 0x70
+-------+------+---------------+------------------+
| Start | Size | Value* (ASCII)| Description      |
+=======+======+===============+==================+
| 0x0   | 0x8  | 10100         | Hardware version |
+-------+------+---------------+------------------+
| 0x8   | 0x8  | 444245 (DBE)  | Hardware ID      |
+-------+------+---------------+------------------+
| 0x64  | 0x4  | 1002          | Software version |
+-------+------+---------------+------------------+
*for Beeline Smartbox GIGA

Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
2022-07-03 20:25:38 +02:00
Mikhail Zhilkin
87092b3c06 scripts: add support for Sercomm kernel header
This scripts creates custom kernel header that necessary for Sercomm
mt7621 devices:
- Sercomm S3
- Beeline SmartBox Giga
- Beeline SmartBox Pro
- Beeline Smartbox Turbo
- Beeline Smartbox Turbo+
- WiFire S1500.NBN

Header format
-------------
+--------+---------------+------------------------+
| Offset | Value         | Description            |
+========+===============+========================+
| 0x0    | 53 65 72 00   | Magic "Ser."           |
+--------+---------------+------------------------+
| 0x4    | 04 00 00 01   | End offset of RootFS   |
+--------+---------------+------------------------+
|        |               | This header checksum   |
| 0x8    | d6 14 9a c1   | htonl(~crc)            |
+--------+---------------+------------------------+
| 0xc    | 02 ff ff ff   | Constant               |
+--------+---------------+------------------------+
| 0x10   | 00 01 40 00   | Kernel start offset    |
+--------+---------------+------------------------+
| 0x14   | c6 94 24 00   | Kernel length          |
+--------+---------------+------------------------+
|        |               | Kernel checksum        |
| 0x18   | e7 78 89 f1   | htonl(~crc)            |
+--------+---------------+------------------------+
| 0x1c   | 00 00 00 00   | Constant               |
+--------+---------------+------------------------+
| 0x20   | ff ff ff ff   | Constant               |
+--------+---------------+------------------------+
| 0x24   | ff ff ff ff   | Constant               |
+--------+---------------+------------------------+
| 0x28   | 00 00 00 01   | RootFS offset          |
+--------+---------------+------------------------+
|        |               | RootFS length          |
| 0x2c   | 04 00 00 00   | Always 0x4, we check   |
|        |               | UBI magic only         |
+--------+---------------+------------------------+
|        |               | RootFS checksum        |
| 0x30   | 1c fc 55 2d   | htonl(~crc)            |
|        |               | Const for UBI magic    |
+--------+---------------+------------------------+
| 0x34   | 00 00 00 00   | Constant               |
+--------+---------------+------------------------+
| 0x38   | ff ff ff ff … | Pad to 0x100           |
+--------+---------------+------------------------+

Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
2022-07-03 20:25:38 +02:00
Tianling Shen
35bf918edf
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-06-29 19:27:48 +08:00
Luiz Angelo Daros de Luca
2fd66e058b scripts: add cameo image header generator
The cameo header is a 0x40-byte header used by D-Link DGS 1210 switches
and Apresia ApresiaLightGS series. cameo-imghdr.py is a clean-room
reimplementation of imghdr present in the DGS-1210-28-GPL package.

Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
[fix board_version argument's help text]
Signed-off-by: Sander Vanheule <sander@svanheule.net>
2022-06-28 22:20:09 +02:00
Tianling Shen
02edeb1469
scripts/download.pl: drop broken mirror
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-05-06 22:10:58 +08:00
Tianling Shen
4125e01174
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-04-22 04:24:36 +08:00
Paul Spooren
7a73221332 build: use numeric-owner in ipkg-build
To create packages the `ipkg-build` script is used which double packs
`control.tar.gz` and `data.tar.gz` to a single package. By default it's
using a verbose username instead of a numeric value for files.

Official OpenWrt images (artifacts) are created within docker containers
which do not seem to contain those verbose usernames and instead
defaults to numeric values.

This becomes a problem when rebuilding public artifacts because other
build environments may offer verbose usernames and there the created
packages is different from the official ones.

With this commit `ipkg-build` always uses numeric values for user/group
and thereby making it easier to reproduce official artifacts.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2022-04-19 22:59:50 +02:00
Tianling Shen
197ee85e5f
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-04-17 13:07:08 +08:00
Doug Kerr
6f692c9c49 scripts: format to black
clean up formatting with black using 80 character line limit

Signed-off-by: Doug Kerr <dek3rr@gmail.com>
2022-04-16 14:53:17 +02:00
Doug Kerr
0642a2166b scripts: use std library for jam crc32 calculation
CRC32 is available in a standard library. It seems reasonable
to defer to that rather than run a custom implementation.

Signed-off-by: Doug Kerr <dek3rr@gmail.com>
2022-04-16 14:53:17 +02:00
Tianling Shen
e6cbb6469a
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-04-16 00:49:06 +08:00
Daniel Golle
4d289ae7e6
scripts/gen_image_generic.sh: fix order of files in EFI bootfs
mtools recursive copy (mcopy -s ...) is using READDIR(3) to iterate
over the directory entries, hence they end up in the FAT filesystem in
traversal order which breaks reproducibility (rather than being added
to the FAT filesystem in a reproducible order). Implement recursive
copy in gen_image_generic.sh in Shell code instead, as in that way we
can force files to be copied in reproducible order.

Fixes: aece8f5ae8 ("scripts/gen_image_generic.sh: generate reproducible EFI filesystem")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-04-15 01:17:04 +01:00
Tianling Shen
aa9c3f36d5
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-04-13 05:55:35 +08:00
Tianling Shen
0ea2f57158
scripts/download.pl: add CN mirrors for DEBIAN
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-04-13 03:34:03 +08:00
Daniel Golle
aece8f5ae8
scripts/gen_image_generic.sh: generate reproducible EFI filesystem
Generate FAT filesystem for EFI boot in a reproducible way:
 * use '--invariant' option of mkfs.fat
 * set timestamps of all files to SOURCE_DATE_EPOCH
 * make sure files are ordered locale-independent

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-04-11 15:29:33 +01:00
Tianling Shen
e8c2e5dc7d
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-04-09 00:16:07 +08:00
Daniel Golle
1d77dca3b3
scripts: make sure sort-order is independent from locale
Set LC_ALL=C environment variable when calling 'sort' as the sort
order otherwise depends on the locale set.

Fixes: 56ce110b73 ("scripts: make sure conffiles are sorted")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-04-06 17:33:31 +01:00
Tianling Shen
76550770e9
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-04-02 21:00:59 +08:00
Paul Spooren
56ce110b73 scripts: make sure conffiles are sorted
It may happen that conffiles are in different order on different builds.
Make sure they have the same order by sorting them.

FIX: #9612

Signed-off-by: Paul Spooren <mail@aparcar.org>
2022-04-01 13:08:58 +01:00
Tianling Shen
af0df84f40
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-03-31 01:11:38 +08:00
Paul Spooren
8822a8d850 build: store sha256_unsigned in JSON
Introduce `sha256_unsigned` which is a checksum of the image _before_ a
signature is attached. This is helpful to compare image reproducibility.

Since the `.sha256sum` file is located in the $(KDIR) folder, switch
$(BIN_DIR) with $(KDIR) to simplify the code. The value of $(BIN_DIR)
itself is not stored inside the resulting JSON file, so it can be
replaced.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2022-03-29 21:41:06 +01:00
Daniel Golle
068ea2cde0
scripts/gen_image_generic.sh: make ext4 bootfs reproducible
Set fixed timestamp for kernel other files in /boot filesystem.
This should help making x86 *combined* images reproducible.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-03-28 20:52:37 +01:00
Tianling Shen
1e2bc6f636
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-03-26 22:44:00 +08:00
Daniel Golle
e89c85249e scripts/mkits.sh: replace forgotten '-' with ${REFERENCE_CHAR}
Cosmetical change to improve style in mkits.sh.

Fixes: fd67908647 ("scripts: mkits.sh: Allow legacy @ mode for dts creation")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-03-24 00:46:45 +00:00
Tianling Shen
7807fb0119
scripts/download.pl: drop cqu mirror
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-03-17 19:59:49 +08:00
Tianling Shen
59630e75fd
base-files: update default release repository
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-03-13 17:15:18 +08:00
Tianling Shen
4ca3aeca5b
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-03-13 13:44:48 +08:00
Rui Salvaterra
6b822189b1 toolchain: binutils: add support for version 2.38
While at it, also fix the download.xs4all.nl and add ftp.gnu.org to the GNU
mirrors, as it seems to be updated faster.

Deleted (upstreamed):
600-Close_the_file_descriptor.patch [1]

[1] https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=5a98fb7513b559e20dfebdbaa2a471afda3b4742

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2022-03-09 10:23:25 +00:00
Tianling Shen
379ff4a41a
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-03-08 09:55:56 +08:00
Georgi Valkov
1324403eb6 mkhash: fix build errors on FreeBSD 13.0
be64enc, be16dec, and be32dec are declared on FreeBSD 13.0, in
/usr/include/sys/endian.h so we should not declare them.

Fixes the following error during feeds update:
staging_dir/host/bin/mkhash: No such file or directory

gcc scripts/mkhash.c
scripts/mkhash.c:111:1: error: redefinition of 'be64enc'
  111 | be64enc(void *buf, uint64_t u)

Signed-off-by: Georgi Valkov <gvalkov@abv.bg>
2022-03-05 18:01:04 +01:00
Tianling Shen
338f0f4bd6
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-03-01 21:12:16 +08:00
Petr Štetiar
57f7a86c68 check-toolchain-clean.sh: workaround stray rebuilds
It seems, that there are currently some unhandled corner cases in which
`.toolchain_build_ver` results in empty file and thus forcing rebuilds,
even if the toolchain was build correctly just a few moments ago. Until
proper fix is found, workaround that by checking for this corner case
and simply populate `.toolchain_build_ver` file.

While at it, improve the UX and display version mismatch, so it's more
clear what has forced the rebuild:

 "Toolchain build version changed (11.2.0-1 != ), running make targetclean"

References: https://gitlab.com/ynezz/openwrt/-/jobs/2133332533/raw
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2022-02-28 15:17:11 +01:00
Petr Štetiar
9116096c0f check-toolchain-clean.sh: fix shellcheck warnings
Fixes following complaints and suggestions:

 In scripts/check-toolchain-clean.sh line 2:
 eval `grep CONFIG_GCC_VERSION .config`
      ^-- SC2046 (warning): Quote this to prevent word splitting.
      ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2022-02-28 15:17:11 +01:00
Eneas U de Queiroz
65c28d7a67 scripts/diffconfig.sh: ensure config/conf is built
diffconfig.sh runs ./scripts/config/conf, but it does not get built
with 'make {menu,x,n}config.  Call 'make ./scripts/config/conf' to
ensure it's been built before running it, aborting in case of failure.

Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
Signed-off-by: Petr Štetiar <ynezz@true.cz>[removed Fixes: due revert]
2022-02-26 13:36:30 +01:00
Tianling Shen
c36fb31110
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-02-25 05:09:10 +08:00
Petr Štetiar
d6119e2f38 Revert "scripts/diffconfig.sh: ensure config/conf is built"
This reverts commit c0849c1d9c as it seems
to introduce regression in config.buildinfo files produced at least by
buildbots:

 $ curl -s https://downloads.openwrt.org/snapshots/targets/ath79/generic/config.buildinfo | head -2
 make[3]: Entering directory '/builder/shared-workdir/build'
 make[3]: Leaving directory '/builder/shared-workdir/build'

References: https://github.com/openwrt/openwrt/issues/9297#issuecomment-1049719381
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2022-02-24 11:44:00 +01:00
Eneas U de Queiroz
c0849c1d9c scripts/diffconfig.sh: ensure config/conf is built
diffconfig.sh runs ./scripts/config/conf, but it does not get built
with 'make {menu,x,n}config.  Call 'make ./scripts/config/conf' to
ensure it's been built befpre running it.

Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
2022-02-22 16:37:23 +01:00
Eneas U de Queiroz
009293c52e build: scripts/config - update to kconfig-v5.14
Functional Changes
---------- -------
- make 'imply' not impose any restrictions: allow symbols implied by y
  to become m
- change "modules" from sub-option to first-level attribute

Bugfixes
--------
- nconf: fix core dump when searching in empty menu
- nconf: stop endless search loops
- xconfig: fix content of the main widget
- xconfig: fix support for the split view mode

Other Changes
----- -------
- highlight xconfig 'comment' lines with '***'
- xconfig: navigate menus on hyperlinks
- xconfig: drop support for Qt4
- improve host ncurses detection

Update the 'option modules' usage to just 'modules' in Config.in.

Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
2022-02-19 13:10:01 +01:00
Paul Spooren
7fae1e5677 feeds: use git-src-full to allow Git versioning
Both $(AUTORELEASE) and $(PKG_SRC_VERSION) (from luci.git) use the Git
log to determine releases and package timestamps.

Feeds are shallow cloned by default, resulting in an incomplete Git log
and therefore different local package versions than offered upstream.

This commits sets the default feeds to use `src-git-full` to solve that.

Add fixes from "2b1d92f: scripts/feeds: silence git warning by selecting
pull style" to `src-git-full`

Signed-off-by: Paul Spooren <mail@aparcar.org>
2022-02-15 00:24:24 +01:00
Paul Spooren
2120cad38d build: store source_date_epoch as integer
The value is retreived from a env variable which defaults to be read as
a string. However the SOURCE_DATE_EPOCH is a unix timestamp aka integer.

Fix this to allow downstream tools to parse the value directly.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2022-02-14 14:40:34 +01:00
AmadeusGhost
3a8c6f9067 Merge Official Source 2022-02-09 19:51:52 +08:00
Felix Fietkau
ebc36ebb23 scripts/feeds: install targets to target/linux/feeds and support overriding
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2022-01-24 13:29:05 +01:00
Felix Fietkau
0bdf8d1206 scripts/feeds: fix installing targets without explicitly specifying the feed
Add similar code to what is done on packages

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2022-01-24 13:29:05 +01:00
Tianling Shen
5b8437bf43
Merge Official Source
Keep iptables for now.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-01-24 19:03:56 +08:00
Ansuel Smith
88204bfa82 treewide: drop use of which
Ubuntu started to flag which as deprecated and it
seems which is not really standard and may vary
across Distro.
Drop the use of which and use the standard 'command -v'
for this simple task.
Which is still present in the prereq if some package/script
still use which.
A utility script called command_all.sh is implemented that
will just mimic the output of which -a.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2022-01-17 09:14:26 +01:00
Tianling Shen
1a9640e7d6
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-01-03 14:06:23 +08:00