<feed xmlns='http://www.w3.org/2005/Atom'>
<title>staging/pepe2k/include/depends.mk, branch v23.05.2</title>
<subtitle>Staging tree of Piotr Dymacz</subtitle>
<id>https://git.openwrt.org/openwrt/staging/pepe2k/atom?h=v23.05.2</id>
<link rel='self' href='https://git.openwrt.org/openwrt/staging/pepe2k/atom?h=v23.05.2'/>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/pepe2k/'/>
<updated>2022-09-30T20:26:51Z</updated>
<entry>
<title>build: make find_md5 reproducible with AUTOREMOVE</title>
<updated>2022-09-30T20:26:51Z</updated>
<author>
<name>Christian Marangi</name>
</author>
<published>2022-09-06T14:48:37Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/pepe2k/commit/?id=53a08e37437972ba0a8fbf953a93a70a6b784ef4'/>
<id>urn:sha1:53a08e37437972ba0a8fbf953a93a70a6b784ef4</id>
<content type='text'>
While experimenting with the AUTOREMOVE option in search of a way to use
prebuilt host tools in different buildroot, it was discovered that the
md5 generated by find_md5 in depends.mk is not reproducible.

Currently the hash is generated by the path of the file in addition to
the file mod time. Out of confusion, probably, there was an idea that
such command was used on the package build_dir. Reality is that this
command is run on the package files. (Makefile, patches, src)

This is problematic because the package Makefile (for example) change at
each git clone and base the hash on the Makefile mtime doesn't really
reflect if the Makefile actually changes across a buildroot or not.

A better approach is to generate an hash of each file and then generate
an hash on the sort hash list. This way we remove the problem of git
clone setting a wrong mtime while keeping the integrity of checking if a
file changed for the package as any change will result in a different
hash.

Introduce a new kind of find_md5 function, find_md5_reproducible that
apply this new logic and limit it only with AUTOREMOVE option set to
prevent any kind of slowdown due to additional hash generation.

Signed-off-by: Christian Marangi &lt;ansuelsmth@gmail.com&gt;
</content>
</entry>
<entry>
<title>depends.mk: fix typo in rdep function</title>
<updated>2022-09-11T09:07:53Z</updated>
<author>
<name>Michael Pratt</name>
</author>
<published>2022-09-09T20:01:21Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/pepe2k/commit/?id=f34690e487e13ee772b2dca3e7fab2a2bd1e77a1'/>
<id>urn:sha1:f34690e487e13ee772b2dca3e7fab2a2bd1e77a1</id>
<content type='text'>
Just like later in the file,
the precursor to &lt;stampfile&gt;_check
&lt;stampfile&gt;_check.1 is supposed to be moved to
&lt;stampfile&gt;_check before it is touched.

This line would error if it was ever run.

Signed-off-by: Michael Pratt &lt;mcpratt@pm.me&gt;
</content>
</entry>
<entry>
<title>build: introduce $(MKHASH)</title>
<updated>2021-05-13T13:13:15Z</updated>
<author>
<name>Leonardo Mörlein</name>
</author>
<published>2021-05-09T20:28:15Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/pepe2k/commit/?id=b993b68b6ca8444b5227a0c18df4600b37ac565c'/>
<id>urn:sha1:b993b68b6ca8444b5227a0c18df4600b37ac565c</id>
<content type='text'>
Before this commit, it was assumed that mkhash is in the PATH. While
this was fine for the normal build workflow, this led to some issues if

    make TOPDIR="$(pwd)" -C "$pkgdir" compile

was called manually. In most of the cases, I just saw warnings like this:

    make: Entering directory '/home/.../package/gluon-status-page'
    bash: line 1: mkhash: command not found
    bash: line 1: mkhash: command not found
    bash: line 1: mkhash: command not found
    bash: line 1: mkhash: command not found
    bash: line 1: mkhash: command not found
    bash: line 1: mkhash: command not found
    bash: line 1: mkhash: command not found
    bash: line 1: mkhash: command not found
    [...]

While these were only warnings and the package still compiled sucessfully,
I also observed that some package even fail to build because of this.

After applying this commit, the variable $(MKHASH) is introduced. This
variable points to $(STAGING_DIR_HOST)/bin/mkhash, which is always the
correct path.

Signed-off-by: Leonardo Mörlein &lt;me@irrelefant.net&gt;
</content>
</entry>
<entry>
<title>build: use SPDX license tags</title>
<updated>2021-02-05T13:54:47Z</updated>
<author>
<name>Paul Spooren</name>
</author>
<published>2020-09-22T02:48:37Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/pepe2k/commit/?id=a17b8eaa2e4b319b7069170398fe965786a813e9'/>
<id>urn:sha1:a17b8eaa2e4b319b7069170398fe965786a813e9</id>
<content type='text'>
The license folder is a core part of OpenWrt and all GPL-2.0 licensed.
Use SPDX license tags to allow machines to check licenses.

Signed-off-by: Paul Spooren &lt;mail@aparcar.org&gt;
[rebase, keep some Copyright lines, sharpen commit message]
Signed-off-by: Adrian Schmutzler &lt;freifunk@adrianschmutzler.de&gt;
</content>
</entry>
<entry>
<title>build: find_md5 list with mod time and sorted</title>
<updated>2020-12-07T20:55:59Z</updated>
<author>
<name>John Beckett</name>
</author>
<published>2020-09-21T12:34:17Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/pepe2k/commit/?id=36e0268aa67bb757d7b9b39cbe1e7f89332f6746'/>
<id>urn:sha1:36e0268aa67bb757d7b9b39cbe1e7f89332f6746</id>
<content type='text'>
It was observed that the MD5 would not change after source files had been
modified, looking deeper into the build process it was discovered that
find_md5 build function makes a list of the files being built and then
passes the list to a summing utility on stdin.  The resultant MD5 is of
the file list, not the contents of the files.

The MD5 would change if the ordering of the list changed, or items were
removed or deleted.

The proposed fix is to add the modification time after the filename and
then sort the list to prevent find returning files in a different order
falsely re-triggering a rebuild. The MD5 will now change when a file is
modified or files are added/removed from the list.

Using 'T@' to show time in epoch for timezone independent behaviour.

Signed-off-by: John Beckett &lt;john.beckett@net2edge.com&gt;
</content>
</entry>
<entry>
<title>build: add missing wildcard for ignoring .pkgdir in dependency checks</title>
<updated>2017-02-05T21:17:30Z</updated>
<author>
<name>Felix Fietkau</name>
</author>
<published>2017-02-05T21:17:24Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/pepe2k/commit/?id=40fb293f240f14013a203d553add70891d966e34'/>
<id>urn:sha1:40fb293f240f14013a203d553add70891d966e34</id>
<content type='text'>
Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</content>
</entry>
<entry>
<title>build: stage unstripped packages inside PKG_BUILD_DIR</title>
<updated>2017-01-18T22:57:08Z</updated>
<author>
<name>Felix Fietkau</name>
</author>
<published>2017-01-18T15:19:03Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/pepe2k/commit/?id=87d9e3462d25e16abb6b5c18da56312d7b90d7b6'/>
<id>urn:sha1:87d9e3462d25e16abb6b5c18da56312d7b90d7b6</id>
<content type='text'>
This makes the build slightly more efficient by avoiding the need to
re-stage packages on every full build run.

It is also necessary for the upcoming CONFIG_AUTOREMOVE feature

Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</content>
</entry>
<entry>
<title>build: introduce extra targets that contain only proper dependencies</title>
<updated>2017-01-18T22:57:08Z</updated>
<author>
<name>Felix Fietkau</name>
</author>
<published>2017-01-18T13:27:04Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/pepe2k/commit/?id=9228d1c066cf3a2cd01288bed3646e53638705b6'/>
<id>urn:sha1:9228d1c066cf3a2cd01288bed3646e53638705b6</id>
<content type='text'>
This can be used to check if targets like prepare or compile are up to date

Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</content>
</entry>
<entry>
<title>build: use mkhash to replace various quirky md5sum/openssl calls</title>
<updated>2017-01-05T10:09:12Z</updated>
<author>
<name>Felix Fietkau</name>
</author>
<published>2016-12-25T15:40:05Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/pepe2k/commit/?id=84bd74057f0d2543ddbc7de2351b0a310df329c6'/>
<id>urn:sha1:84bd74057f0d2543ddbc7de2351b0a310df329c6</id>
<content type='text'>
Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</content>
</entry>
<entry>
<title>build: find_md5: ignore non-existent files or directories</title>
<updated>2016-11-24T11:53:19Z</updated>
<author>
<name>Yousong Zhou</name>
</author>
<published>2016-11-24T05:50:02Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/pepe2k/commit/?id=f66cb6f810e55016167086bd96310fc14c1e6362'/>
<id>urn:sha1:f66cb6f810e55016167086bd96310fc14c1e6362</id>
<content type='text'>
Targets like malta can have no patches/ directory available and this
commit tries quash "no such file or directory" messages from `find`

Signed-off-by: Yousong Zhou &lt;yszhou4tech@gmail.com&gt;
</content>
</entry>
</feed>
