<feed xmlns='http://www.w3.org/2005/Atom'>
<title>staging/dangole/package/Makefile, branch main</title>
<subtitle>Staging tree of Daniel Golle</subtitle>
<id>https://git.openwrt.org/openwrt/staging/dangole/atom?h=main</id>
<link rel='self' href='https://git.openwrt.org/openwrt/staging/dangole/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/dangole/'/>
<updated>2024-05-22T17:28:20Z</updated>
<entry>
<title>build: generate private key for APK early</title>
<updated>2024-05-22T17:28:20Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2024-05-22T14:19:45Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/dangole/commit/?id=9a11bc3682dd7e95eb0534da9e2dbe3cdaa1c6de'/>
<id>urn:sha1:9a11bc3682dd7e95eb0534da9e2dbe3cdaa1c6de</id>
<content type='text'>
Other than OPKG which only uses signed package list, APK uses
individually signed packages in addition to signed package lists. Hence,
in order to be able to generate package, the private key needs to be
generated before compiling packages. Express that dependency and
generate the private key before building any packages instead of doing
so as part of the base-files package build.

Fixes: d788ab376f ("build: add APK package build capabilities")
Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
<entry>
<title>build: add APK package build capabilities</title>
<updated>2024-05-17T20:21:26Z</updated>
<author>
<name>Paul Spooren</name>
</author>
<published>2024-05-14T10:36:59Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/dangole/commit/?id=d788ab376f859164df84e2054cbbbb0921943c5b'/>
<id>urn:sha1:d788ab376f859164df84e2054cbbbb0921943c5b</id>
<content type='text'>
A new option called `USE_APK` is added which generated APK packages
(.apk) instead of OPKG packages (.ipk).

Some features like fstools `snapshot` command are not yet ported

Signed-off-by: Paul Spooren &lt;mail@aparcar.org&gt;
</content>
</entry>
<entry>
<title>build: do not depend on $(STAGING_DIR)/.prepared when in SDK</title>
<updated>2024-03-04T22:45:15Z</updated>
<author>
<name>Matthias Schiffer</name>
</author>
<published>2024-03-04T22:45:15Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/dangole/commit/?id=2b46cbef8179b4a131bd008c520339441bc87c97'/>
<id>urn:sha1:2b46cbef8179b4a131bd008c520339441bc87c97</id>
<content type='text'>
The dependency can't be satisfied when building using the SDK, breaking
package builds. As the staging and bin dirs are distributed with the SDK
archive, ignoring the dependency is fine when SDK is set.

Fixes: fbb924abff8a ("build: add $(STAGING_DIR) and $(BIN_DIR) ...")
Signed-off-by: Matthias Schiffer &lt;mschiffer@universe-factory.net&gt;
</content>
</entry>
<entry>
<title>build: add $(STAGING_DIR) and $(BIN_DIR) preparation to target and package subdir compile dependencies</title>
<updated>2024-03-03T22:13:59Z</updated>
<author>
<name>Matthias Schiffer</name>
</author>
<published>2024-02-01T23:46:58Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/dangole/commit/?id=fbb924abff8af9e69ec90d7bf099046c24145b74'/>
<id>urn:sha1:fbb924abff8af9e69ec90d7bf099046c24145b74</id>
<content type='text'>
In a pristine build, these directories are created as dependencies of
the tools subdir compile, however this step never runs when the tools
compile stamp already exists. Since commit ed6ba2801c0a ("tools: keep
stamp file in $(STAGING_DIR_HOST)"), this will happen after `make clean`:
$(STAGING_DIR) has been deleted, but the tools stamp still exists, so
the next build will fail because $(STAGING_DIR) has not been set up
correctly.

Fix builds after `make clean` by adding the preparation as dependencies
for the target and package directories as well.

Fixes: ed6ba2801c0a ("tools: keep stamp file in $(STAGING_DIR_HOST)")
Signed-off-by: Matthias Schiffer &lt;mschiffer@universe-factory.net&gt;
</content>
</entry>
<entry>
<title>build: add CycloneDX SBOM JSON support</title>
<updated>2023-11-01T11:14:41Z</updated>
<author>
<name>Petr Štetiar</name>
</author>
<published>2023-10-24T08:27:13Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/dangole/commit/?id=d604a07225c5c82b942cd3374cc113ad676a2519'/>
<id>urn:sha1:d604a07225c5c82b942cd3374cc113ad676a2519</id>
<content type='text'>
CycloneDX is an open source standard developed by the OWASP foundation.
It supports a wide range of development ecosystems, a comprehensive set
of use cases, and focuses on automation, ease of adoption, and
progressive enhancement of SBOMs (Software Bill Of Materials) throughout
build pipelines.

So lets add support for CycloneDX SBOM for packages and images
manifests.

Signed-off-by: Petr Štetiar &lt;ynezz@true.cz&gt;
</content>
</entry>
<entry>
<title>build: generate index.json</title>
<updated>2023-05-09T21:56:49Z</updated>
<author>
<name>Paul Spooren</name>
</author>
<published>2023-05-09T19:39:58Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/dangole/commit/?id=218ce40cd738f3373438aab82467807a8707fb9c'/>
<id>urn:sha1:218ce40cd738f3373438aab82467807a8707fb9c</id>
<content type='text'>
The index.json file lies next to Packages index files and contains a
json dict with the package architecture and a dict of package names and
versions.

This can be used for downstream project to know what packages in which
versions are available.

Signed-off-by: Paul Spooren &lt;mail@aparcar.org&gt;
</content>
</entry>
<entry>
<title>build: fix opkg install step for large package selection</title>
<updated>2021-05-12T09:13:53Z</updated>
<author>
<name>Alexander Egorenkov</name>
</author>
<published>2021-04-09T23:32:44Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/dangole/commit/?id=1854aeec4d37079690309dec3171d0864339f73a'/>
<id>urn:sha1:1854aeec4d37079690309dec3171d0864339f73a</id>
<content type='text'>
When the list of packages to be installed in a built image exceeds a certain
number, then 'opkg install' executed for target '$(curdir)/install' in
package/Makefile fails with: /usr/bin/env: Argument list too long.

On Linux, the length of a command-line parameter is limited by
MAX_ARG_STRLEN to max 128 kB.

* https://elixir.bootlin.com/linux/latest/source/include/uapi/linux/binfmts.h#L15
* https://www.in-ulm.de/~mascheck/various/argmax/

To solve the problem, store the package list being passed to 'opkg install'
in a temporary file and use the shell command substitution to pass the
content of the file to 'opkg install'. This guarantees that the length of
the command-line parameters passed to the bash shell is short.

The following bash script demonstrates the problem:
----------------------------------------------------------------------------
count=${1:-1000}

FILES=""
a_file="/home/egorenar/Repositories/openwrt-rel/bin/targets/alpine/generic/packages/base-files_1414-r16464+19-e887049fbb_arm_cortex-a15_neon-vfpv4.ipk"

for i in $(seq 1 $count); do
	FILES="$FILES $a_file"
done

env bash -c "echo $FILES &gt;/dev/null"
echo "$FILES" | wc -c
----------------------------------------------------------------------------

Test run:
----------------------------------------------------------------------------
$ ./test.sh 916
130989
$ ./test.sh 917
./test.sh: line 14: /bin/env: Argument list too long
131132
----------------------------------------------------------------------------

Signed-off-by: Alexander Egorenkov &lt;egorenar-dev@posteo.net&gt;
[reword commit subject]
Signed-off-by: Paul Spooren &lt;mail@aparcar.org&gt;
</content>
</entry>
<entry>
<title>build: always build package/kernel/linux</title>
<updated>2020-10-15T11:25:58Z</updated>
<author>
<name>Felix Fietkau</name>
</author>
<published>2020-10-15T08:17:45Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/dangole/commit/?id=953435795d176a95b58ca78ee5fb54490c8b40c5'/>
<id>urn:sha1:953435795d176a95b58ca78ee5fb54490c8b40c5</id>
<content type='text'>
build: always build package/kernel/linux

If no in-tree module packages are selected, the build system does not process
package/kernel/linux. This package is required for building the virtual
'kernel' package, which is specified as a dependency for all kernel packages.

Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</content>
</entry>
<entry>
<title>build: store SourceDateEpoch in manifest</title>
<updated>2020-08-31T10:18:06Z</updated>
<author>
<name>Paul Spooren</name>
</author>
<published>2020-08-15T20:57:03Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/dangole/commit/?id=62d5ec7306f9664aeba64bc64c0dee1d93978bb4'/>
<id>urn:sha1:62d5ec7306f9664aeba64bc64c0dee1d93978bb4</id>
<content type='text'>
The usage of granular `SOURCE_DATE_EPOCH` for packages is an
incrementing integer which could be useful for downstream tooling,
therefore add it to the packages manifest.

Signed-off-by: Paul Spooren &lt;mail@aparcar.org&gt;
</content>
</entry>
<entry>
<title>packages: apply usign padding workarounds to package indexes if needed</title>
<updated>2019-08-07T05:15:07Z</updated>
<author>
<name>Jo-Philipp Wich</name>
</author>
<published>2019-08-07T05:15:07Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/dangole/commit/?id=e1f588e446c7ceb696b644b37aeab9b3476e2a57'/>
<id>urn:sha1:e1f588e446c7ceb696b644b37aeab9b3476e2a57</id>
<content type='text'>
Since usign miscalculates SHA-512 digests for input sizes of exactly
64 + N * 128 + 110 or 64 + N * 128 + 111 bytes, we need to apply some
white space padding to avoid triggering the hashing edge case.

While usign itself has been fixed already, there is still many firmwares
in the wild which use broken usign versions to verify current package
indexes so we'll need to carry this workaround in the forseeable future.

Ref: https://forum.openwrt.org/t/signature-check-failed/41945
Ref: https://git.openwrt.org/5a52b379902471cef495687547c7b568142f66d2
Signed-off-by: Jo-Philipp Wich &lt;jo@mein.io&gt;
</content>
</entry>
</feed>
