<feed xmlns='http://www.w3.org/2005/Atom'>
<title>staging/neocturne/package/Makefile, branch main</title>
<subtitle>Staging tree of Nora Schiffer</subtitle>
<id>https://git.openwrt.org/openwrt/staging/neocturne/atom?h=main</id>
<link rel='self' href='https://git.openwrt.org/openwrt/staging/neocturne/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/neocturne/'/>
<updated>2024-06-11T21:58:14Z</updated>
<entry>
<title>build: package: fix missing host apk dependency</title>
<updated>2024-06-11T21:58:14Z</updated>
<author>
<name>Petr Štetiar</name>
</author>
<published>2024-05-23T10:24:11Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/neocturne/commit/?id=617431685eb080eac469019361bb894989c4f191'/>
<id>urn:sha1:617431685eb080eac469019361bb894989c4f191</id>
<content type='text'>
Currently the build with USE_APK=y fails in package/libs/toolchain:

 staging_dir/host/bin/fakeroot: line 182: staging_dir/host/bin/apk: No such file or directory
 make[2]: *** [Makefile:758: bin/targets/mediatek/filogic/packages/libgcc1-13.2.0-r4.apk] Error 127

as commit d788ab376f ("build: add APK package build capabilities") added
dependency on apk in packaging step, but there is no host build
dependency defined, thus apk binary is missing when libgcc1 apk package is being
created. So lets fix it by adding explicit apk/host dependency to all
targets in the subdirectories.

Fixes: d788ab376f ("build: add APK package build capabilities")
Signed-off-by: Petr Štetiar &lt;ynezz@true.cz&gt;
[ rework logic to be more self contained ]
Link: https://github.com/openwrt/openwrt/pull/15543
Signed-off-by: Christian Marangi &lt;ansuelsmth@gmail.com&gt;
</content>
</entry>
<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/neocturne/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/neocturne/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/neocturne/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/neocturne/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/neocturne/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/neocturne/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/neocturne/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/neocturne/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/neocturne/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>
</feed>
