* [meta-mingw][PATCH V2] meta-mingw: support generating Windows SDK with no symlink
@ 2025-11-03 2:18 Qi.Chen
2025-11-10 3:32 ` ChenQi
2025-11-11 15:25 ` Joshua Watt
0 siblings, 2 replies; 7+ messages in thread
From: Qi.Chen @ 2025-11-03 2:18 UTC (permalink / raw)
To: yocto-patches; +Cc: jpewhacker, qi.chen, paul
From: Chen Qi <Qi.Chen@windriver.com>
On some Windows systems, symlinks are not allowed due to IT policy.
We need to be able to generate Windows SDK without symlinks.
To do this, a new variable, WINSDK_NO_SYMLINK, and a new bbclass,
mingw_sdk_handle_symlink.bbclass, are introduced to achieve this.
By default, things work as before; when setting WINSDK_NO_SYMLINK
to "1", SDK will replace all symlinks with the actual contents.
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
classes/mingw_sdk_handle_symlink.bbclass | 25 +++++++++++++++++++++
conf/machine-sdk/include/mingw32-common.inc | 3 +++
2 files changed, 28 insertions(+)
create mode 100644 classes/mingw_sdk_handle_symlink.bbclass
diff --git a/classes/mingw_sdk_handle_symlink.bbclass b/classes/mingw_sdk_handle_symlink.bbclass
new file mode 100644
index 0000000..2f6dbe6
--- /dev/null
+++ b/classes/mingw_sdk_handle_symlink.bbclass
@@ -0,0 +1,25 @@
+WINSDK_NO_SYMLINK ?= "0"
+
+archive_sdk:prepend:sdkmingw32 () {
+ if [ "${WINSDK_NO_SYMLINK}" = "1" ]; then
+ for parse_type in "file" "directory"; do
+ find "${SDK_OUTPUT}/${SDKPATH}" -type l -print0 | while IFS= read -r -d '' symlink; do
+ target=$(readlink -f "$symlink" || echo "NOTVALID")
+ if [ "$target" = "NOTVALID" ]; then
+ continue
+ fi
+ if [ ! -e "$target" ]; then
+ continue
+ elif [ -d "$target" ]; then
+ if [ "$parse_type" = "directory" ]; then
+ rm "$symlink" && cp -r "$target" "$symlink"
+ fi
+ else
+ if [ "$parse_type" = "file" ]; then
+ rm "$symlink" && cp "$target" "$symlink"
+ fi
+ fi
+ done
+ done
+ fi
+}
diff --git a/conf/machine-sdk/include/mingw32-common.inc b/conf/machine-sdk/include/mingw32-common.inc
index 56b8052..bf3f14e 100644
--- a/conf/machine-sdk/include/mingw32-common.inc
+++ b/conf/machine-sdk/include/mingw32-common.inc
@@ -59,3 +59,6 @@ GCCPIE:mingw32 = ""
# wine and wineserver are required to test MinGW SDKs
HOSTTOOLS_NONFATAL += "wine wineserver"
+
+# handle symlinks
+INHERIT += "mingw_sdk_handle_symlink"
--
2.34.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [meta-mingw][PATCH V2] meta-mingw: support generating Windows SDK with no symlink
2025-11-03 2:18 [meta-mingw][PATCH V2] meta-mingw: support generating Windows SDK with no symlink Qi.Chen
@ 2025-11-10 3:32 ` ChenQi
2025-11-11 15:25 ` Joshua Watt
1 sibling, 0 replies; 7+ messages in thread
From: ChenQi @ 2025-11-10 3:32 UTC (permalink / raw)
To: yocto-patches; +Cc: jpewhacker, paul
ping
On 11/3/25 10:18, Qi.Chen@windriver.com wrote:
> From: Chen Qi <Qi.Chen@windriver.com>
>
> On some Windows systems, symlinks are not allowed due to IT policy.
> We need to be able to generate Windows SDK without symlinks.
>
> To do this, a new variable, WINSDK_NO_SYMLINK, and a new bbclass,
> mingw_sdk_handle_symlink.bbclass, are introduced to achieve this.
>
> By default, things work as before; when setting WINSDK_NO_SYMLINK
> to "1", SDK will replace all symlinks with the actual contents.
>
> Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
> ---
> classes/mingw_sdk_handle_symlink.bbclass | 25 +++++++++++++++++++++
> conf/machine-sdk/include/mingw32-common.inc | 3 +++
> 2 files changed, 28 insertions(+)
> create mode 100644 classes/mingw_sdk_handle_symlink.bbclass
>
> diff --git a/classes/mingw_sdk_handle_symlink.bbclass b/classes/mingw_sdk_handle_symlink.bbclass
> new file mode 100644
> index 0000000..2f6dbe6
> --- /dev/null
> +++ b/classes/mingw_sdk_handle_symlink.bbclass
> @@ -0,0 +1,25 @@
> +WINSDK_NO_SYMLINK ?= "0"
> +
> +archive_sdk:prepend:sdkmingw32 () {
> + if [ "${WINSDK_NO_SYMLINK}" = "1" ]; then
> + for parse_type in "file" "directory"; do
> + find "${SDK_OUTPUT}/${SDKPATH}" -type l -print0 | while IFS= read -r -d '' symlink; do
> + target=$(readlink -f "$symlink" || echo "NOTVALID")
> + if [ "$target" = "NOTVALID" ]; then
> + continue
> + fi
> + if [ ! -e "$target" ]; then
> + continue
> + elif [ -d "$target" ]; then
> + if [ "$parse_type" = "directory" ]; then
> + rm "$symlink" && cp -r "$target" "$symlink"
> + fi
> + else
> + if [ "$parse_type" = "file" ]; then
> + rm "$symlink" && cp "$target" "$symlink"
> + fi
> + fi
> + done
> + done
> + fi
> +}
> diff --git a/conf/machine-sdk/include/mingw32-common.inc b/conf/machine-sdk/include/mingw32-common.inc
> index 56b8052..bf3f14e 100644
> --- a/conf/machine-sdk/include/mingw32-common.inc
> +++ b/conf/machine-sdk/include/mingw32-common.inc
> @@ -59,3 +59,6 @@ GCCPIE:mingw32 = ""
>
> # wine and wineserver are required to test MinGW SDKs
> HOSTTOOLS_NONFATAL += "wine wineserver"
> +
> +# handle symlinks
> +INHERIT += "mingw_sdk_handle_symlink"
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [meta-mingw][PATCH V2] meta-mingw: support generating Windows SDK with no symlink
2025-11-03 2:18 [meta-mingw][PATCH V2] meta-mingw: support generating Windows SDK with no symlink Qi.Chen
2025-11-10 3:32 ` ChenQi
@ 2025-11-11 15:25 ` Joshua Watt
2025-11-12 5:35 ` ChenQi
1 sibling, 1 reply; 7+ messages in thread
From: Joshua Watt @ 2025-11-11 15:25 UTC (permalink / raw)
To: Qi.Chen; +Cc: yocto-patches, paul
On Sun, Nov 2, 2025 at 7:19 PM <Qi.Chen@windriver.com> wrote:
>
> From: Chen Qi <Qi.Chen@windriver.com>
>
> On some Windows systems, symlinks are not allowed due to IT policy.
> We need to be able to generate Windows SDK without symlinks.
>
> To do this, a new variable, WINSDK_NO_SYMLINK, and a new bbclass,
> mingw_sdk_handle_symlink.bbclass, are introduced to achieve this.
>
> By default, things work as before; when setting WINSDK_NO_SYMLINK
> to "1", SDK will replace all symlinks with the actual contents.
>
> Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
> ---
> classes/mingw_sdk_handle_symlink.bbclass | 25 +++++++++++++++++++++
> conf/machine-sdk/include/mingw32-common.inc | 3 +++
> 2 files changed, 28 insertions(+)
> create mode 100644 classes/mingw_sdk_handle_symlink.bbclass
>
> diff --git a/classes/mingw_sdk_handle_symlink.bbclass b/classes/mingw_sdk_handle_symlink.bbclass
> new file mode 100644
> index 0000000..2f6dbe6
> --- /dev/null
> +++ b/classes/mingw_sdk_handle_symlink.bbclass
> @@ -0,0 +1,25 @@
> +WINSDK_NO_SYMLINK ?= "0"
> +
> +archive_sdk:prepend:sdkmingw32 () {
> + if [ "${WINSDK_NO_SYMLINK}" = "1" ]; then
> + for parse_type in "file" "directory"; do
> + find "${SDK_OUTPUT}/${SDKPATH}" -type l -print0 | while IFS= read -r -d '' symlink; do
> + target=$(readlink -f "$symlink" || echo "NOTVALID")
> + if [ "$target" = "NOTVALID" ]; then
> + continue
> + fi
> + if [ ! -e "$target" ]; then
> + continue
> + elif [ -d "$target" ]; then
> + if [ "$parse_type" = "directory" ]; then
> + rm "$symlink" && cp -r "$target" "$symlink"
> + fi
> + else
> + if [ "$parse_type" = "file" ]; then
> + rm "$symlink" && cp "$target" "$symlink"
> + fi
> + fi
> + done
> + done
> + fi
> +}
> diff --git a/conf/machine-sdk/include/mingw32-common.inc b/conf/machine-sdk/include/mingw32-common.inc
> index 56b8052..bf3f14e 100644
> --- a/conf/machine-sdk/include/mingw32-common.inc
> +++ b/conf/machine-sdk/include/mingw32-common.inc
> @@ -59,3 +59,6 @@ GCCPIE:mingw32 = ""
>
> # wine and wineserver are required to test MinGW SDKs
> HOSTTOOLS_NONFATAL += "wine wineserver"
> +
> +# handle symlinks
> +INHERIT += "mingw_sdk_handle_symlink"
Does this need to be unconditional? I'd prefer something like
INHERIT:mingw32 instead if that works
> --
> 2.34.1
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [meta-mingw][PATCH V2] meta-mingw: support generating Windows SDK with no symlink
2025-11-11 15:25 ` Joshua Watt
@ 2025-11-12 5:35 ` ChenQi
2025-11-12 7:39 ` [yocto-patches] " Samuli Piippo
0 siblings, 1 reply; 7+ messages in thread
From: ChenQi @ 2025-11-12 5:35 UTC (permalink / raw)
To: Joshua Watt; +Cc: yocto-patches, paul
On 11/11/25 23:25, Joshua Watt wrote:
> On Sun, Nov 2, 2025 at 7:19 PM <Qi.Chen@windriver.com> wrote:
>> From: Chen Qi <Qi.Chen@windriver.com>
>>
>> On some Windows systems, symlinks are not allowed due to IT policy.
>> We need to be able to generate Windows SDK without symlinks.
>>
>> To do this, a new variable, WINSDK_NO_SYMLINK, and a new bbclass,
>> mingw_sdk_handle_symlink.bbclass, are introduced to achieve this.
>>
>> By default, things work as before; when setting WINSDK_NO_SYMLINK
>> to "1", SDK will replace all symlinks with the actual contents.
>>
>> Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
>> ---
>> classes/mingw_sdk_handle_symlink.bbclass | 25 +++++++++++++++++++++
>> conf/machine-sdk/include/mingw32-common.inc | 3 +++
>> 2 files changed, 28 insertions(+)
>> create mode 100644 classes/mingw_sdk_handle_symlink.bbclass
>>
>> diff --git a/classes/mingw_sdk_handle_symlink.bbclass b/classes/mingw_sdk_handle_symlink.bbclass
>> new file mode 100644
>> index 0000000..2f6dbe6
>> --- /dev/null
>> +++ b/classes/mingw_sdk_handle_symlink.bbclass
>> @@ -0,0 +1,25 @@
>> +WINSDK_NO_SYMLINK ?= "0"
>> +
>> +archive_sdk:prepend:sdkmingw32 () {
>> + if [ "${WINSDK_NO_SYMLINK}" = "1" ]; then
>> + for parse_type in "file" "directory"; do
>> + find "${SDK_OUTPUT}/${SDKPATH}" -type l -print0 | while IFS= read -r -d '' symlink; do
>> + target=$(readlink -f "$symlink" || echo "NOTVALID")
>> + if [ "$target" = "NOTVALID" ]; then
>> + continue
>> + fi
>> + if [ ! -e "$target" ]; then
>> + continue
>> + elif [ -d "$target" ]; then
>> + if [ "$parse_type" = "directory" ]; then
>> + rm "$symlink" && cp -r "$target" "$symlink"
>> + fi
>> + else
>> + if [ "$parse_type" = "file" ]; then
>> + rm "$symlink" && cp "$target" "$symlink"
>> + fi
>> + fi
>> + done
>> + done
>> + fi
>> +}
>> diff --git a/conf/machine-sdk/include/mingw32-common.inc b/conf/machine-sdk/include/mingw32-common.inc
>> index 56b8052..bf3f14e 100644
>> --- a/conf/machine-sdk/include/mingw32-common.inc
>> +++ b/conf/machine-sdk/include/mingw32-common.inc
>> @@ -59,3 +59,6 @@ GCCPIE:mingw32 = ""
>>
>> # wine and wineserver are required to test MinGW SDKs
>> HOSTTOOLS_NONFATAL += "wine wineserver"
>> +
>> +# handle symlinks
>> +INHERIT += "mingw_sdk_handle_symlink"
> Does this need to be unconditional? I'd prefer something like
> INHERIT:mingw32 instead if that works
Hi Joshua,
I just tried it out. Using INHERIT:append:sdkmingw32 works.
We have to use :append instead of "+=" to avoid overriding settings.
I'll send out V3.
Regards,
Qi
>
>> --
>> 2.34.1
>>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [yocto-patches] [meta-mingw][PATCH V2] meta-mingw: support generating Windows SDK with no symlink
2025-11-12 5:35 ` ChenQi
@ 2025-11-12 7:39 ` Samuli Piippo
2025-11-12 7:58 ` ChenQi
2025-11-12 7:59 ` ChenQi
0 siblings, 2 replies; 7+ messages in thread
From: Samuli Piippo @ 2025-11-12 7:39 UTC (permalink / raw)
To: yocto-patches; +Cc: Joshua Watt, paul
[-- Attachment #1: Type: text/plain, Size: 4222 bytes --]
Would it make more sense to leave out the INHERIT and WINSDK_NO_SYMLINK.
Instead, if you need this, you can inherit the class in your recipe or
local.conf
-samuli
On Wed, 12 Nov 2025 at 07:35, Chen Qi via lists.yoctoproject.org <Qi.Chen=
windriver.com@lists.yoctoproject.org> wrote:
> On 11/11/25 23:25, Joshua Watt wrote:
> > On Sun, Nov 2, 2025 at 7:19 PM <Qi.Chen@windriver.com> wrote:
> >> From: Chen Qi <Qi.Chen@windriver.com>
> >>
> >> On some Windows systems, symlinks are not allowed due to IT policy.
> >> We need to be able to generate Windows SDK without symlinks.
> >>
> >> To do this, a new variable, WINSDK_NO_SYMLINK, and a new bbclass,
> >> mingw_sdk_handle_symlink.bbclass, are introduced to achieve this.
> >>
> >> By default, things work as before; when setting WINSDK_NO_SYMLINK
> >> to "1", SDK will replace all symlinks with the actual contents.
> >>
> >> Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
> >> ---
> >> classes/mingw_sdk_handle_symlink.bbclass | 25 +++++++++++++++++++++
> >> conf/machine-sdk/include/mingw32-common.inc | 3 +++
> >> 2 files changed, 28 insertions(+)
> >> create mode 100644 classes/mingw_sdk_handle_symlink.bbclass
> >>
> >> diff --git a/classes/mingw_sdk_handle_symlink.bbclass
> b/classes/mingw_sdk_handle_symlink.bbclass
> >> new file mode 100644
> >> index 0000000..2f6dbe6
> >> --- /dev/null
> >> +++ b/classes/mingw_sdk_handle_symlink.bbclass
> >> @@ -0,0 +1,25 @@
> >> +WINSDK_NO_SYMLINK ?= "0"
> >> +
> >> +archive_sdk:prepend:sdkmingw32 () {
> >> + if [ "${WINSDK_NO_SYMLINK}" = "1" ]; then
> >> + for parse_type in "file" "directory"; do
> >> + find "${SDK_OUTPUT}/${SDKPATH}" -type l -print0
> | while IFS= read -r -d '' symlink; do
> >> + target=$(readlink -f "$symlink" || echo
> "NOTVALID")
> >> + if [ "$target" = "NOTVALID" ]; then
> >> + continue
> >> + fi
> >> + if [ ! -e "$target" ]; then
> >> + continue
> >> + elif [ -d "$target" ]; then
> >> + if [ "$parse_type" =
> "directory" ]; then
> >> + rm "$symlink" && cp -r
> "$target" "$symlink"
> >> + fi
> >> + else
> >> + if [ "$parse_type" = "file" ];
> then
> >> + rm "$symlink" && cp
> "$target" "$symlink"
> >> + fi
> >> + fi
> >> + done
> >> + done
> >> + fi
> >> +}
> >> diff --git a/conf/machine-sdk/include/mingw32-common.inc
> b/conf/machine-sdk/include/mingw32-common.inc
> >> index 56b8052..bf3f14e 100644
> >> --- a/conf/machine-sdk/include/mingw32-common.inc
> >> +++ b/conf/machine-sdk/include/mingw32-common.inc
> >> @@ -59,3 +59,6 @@ GCCPIE:mingw32 = ""
> >>
> >> # wine and wineserver are required to test MinGW SDKs
> >> HOSTTOOLS_NONFATAL += "wine wineserver"
> >> +
> >> +# handle symlinks
> >> +INHERIT += "mingw_sdk_handle_symlink"
> > Does this need to be unconditional? I'd prefer something like
> > INHERIT:mingw32 instead if that works
>
> Hi Joshua,
>
> I just tried it out. Using INHERIT:append:sdkmingw32 works.
> We have to use :append instead of "+=" to avoid overriding settings.
>
> I'll send out V3.
>
> Regards,
> Qi
>
> >
> >> --
> >> 2.34.1
> >>
>
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#2488):
> https://lists.yoctoproject.org/g/yocto-patches/message/2488
> Mute This Topic: https://lists.yoctoproject.org/mt/116091557/3617605
> Group Owner: yocto-patches+owner@lists.yoctoproject.org
> Unsubscribe:
> https://lists.yoctoproject.org/g/yocto-patches/leave/14256716/3617605/551361261/xyzzy
> [samuli.piippo@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
>
[-- Attachment #2: Type: text/html, Size: 6488 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [yocto-patches] [meta-mingw][PATCH V2] meta-mingw: support generating Windows SDK with no symlink
2025-11-12 7:39 ` [yocto-patches] " Samuli Piippo
@ 2025-11-12 7:58 ` ChenQi
2025-11-12 7:59 ` ChenQi
1 sibling, 0 replies; 7+ messages in thread
From: ChenQi @ 2025-11-12 7:58 UTC (permalink / raw)
To: yocto-patches; +Cc: Joshua Watt, paul
[-- Attachment #1: Type: text/plain, Size: 6034 bytes --]
On 11/12/25 15:39, Samuli Piippo via lists.yoctoproject.org wrote:
> Would it make more sense to leave out the INHERIT and WINSDK_NO_SYMLINK.
> Instead, if you need this, you can inherit the class in your recipe or
> local.conf
>
> -samuli
From my experience, users will usually prefer a variable setting when
it's possible.
Take this case as an example, they could put this setting in their
<distro>.conf, site.conf or local.conf, then no matter meta-mingw is
included or not, 'bitbake <something>' still works.
Regards,
Qi
>
> On Wed, 12 Nov 2025 at 07:35, Chen Qi via lists.yoctoproject.org
> <http://lists.yoctoproject.org>
> <Qi.Chen=windriver.com@lists.yoctoproject.org> wrote:
>
> On 11/11/25 23:25, Joshua Watt wrote:
> > On Sun, Nov 2, 2025 at 7:19 PM <Qi.Chen@windriver.com> wrote:
> >> From: Chen Qi <Qi.Chen@windriver.com>
> >>
> >> On some Windows systems, symlinks are not allowed due to IT policy.
> >> We need to be able to generate Windows SDK without symlinks.
> >>
> >> To do this, a new variable, WINSDK_NO_SYMLINK, and a new bbclass,
> >> mingw_sdk_handle_symlink.bbclass, are introduced to achieve this.
> >>
> >> By default, things work as before; when setting WINSDK_NO_SYMLINK
> >> to "1", SDK will replace all symlinks with the actual contents.
> >>
> >> Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
> >> ---
> >> classes/mingw_sdk_handle_symlink.bbclass | 25
> +++++++++++++++++++++
> >> conf/machine-sdk/include/mingw32-common.inc | 3 +++
> >> 2 files changed, 28 insertions(+)
> >> create mode 100644 classes/mingw_sdk_handle_symlink.bbclass
> >>
> >> diff --git a/classes/mingw_sdk_handle_symlink.bbclass
> b/classes/mingw_sdk_handle_symlink.bbclass
> >> new file mode 100644
> >> index 0000000..2f6dbe6
> >> --- /dev/null
> >> +++ b/classes/mingw_sdk_handle_symlink.bbclass
> >> @@ -0,0 +1,25 @@
> >> +WINSDK_NO_SYMLINK ?= "0"
> >> +
> >> +archive_sdk:prepend:sdkmingw32 () {
> >> + if [ "${WINSDK_NO_SYMLINK}" = "1" ]; then
> >> + for parse_type in "file" "directory"; do
> >> + find "${SDK_OUTPUT}/${SDKPATH}" -type l
> -print0 | while IFS= read -r -d '' symlink; do
> >> + target=$(readlink -f "$symlink"
> || echo "NOTVALID")
> >> + if [ "$target" = "NOTVALID" ]; then
> >> + continue
> >> + fi
> >> + if [ ! -e "$target" ]; then
> >> + continue
> >> + elif [ -d "$target" ]; then
> >> + if [ "$parse_type" =
> "directory" ]; then
> >> + rm "$symlink"
> && cp -r "$target" "$symlink"
> >> + fi
> >> + else
> >> + if [ "$parse_type" =
> "file" ]; then
> >> + rm "$symlink"
> && cp "$target" "$symlink"
> >> + fi
> >> + fi
> >> + done
> >> + done
> >> + fi
> >> +}
> >> diff --git a/conf/machine-sdk/include/mingw32-common.inc
> b/conf/machine-sdk/include/mingw32-common.inc
> >> index 56b8052..bf3f14e 100644
> >> --- a/conf/machine-sdk/include/mingw32-common.inc
> >> +++ b/conf/machine-sdk/include/mingw32-common.inc
> >> @@ -59,3 +59,6 @@ GCCPIE:mingw32 = ""
> >>
> >> # wine and wineserver are required to test MinGW SDKs
> >> HOSTTOOLS_NONFATAL += "wine wineserver"
> >> +
> >> +# handle symlinks
> >> +INHERIT += "mingw_sdk_handle_symlink"
> > Does this need to be unconditional? I'd prefer something like
> > INHERIT:mingw32 instead if that works
>
> Hi Joshua,
>
> I just tried it out. Using INHERIT:append:sdkmingw32 works.
> We have to use :append instead of "+=" to avoid overriding settings.
>
> I'll send out V3.
>
> Regards,
> Qi
>
> >
> >> --
> >> 2.34.1
> >>
>
>
>
>
>
>
> _._,_._,_
> ------------------------------------------------------------------------
> Links:
>
> You receive all messages sent to this group.
>
> View/Reply Online (#2490)
> <https://lists.yoctoproject.org/g/yocto-patches/message/2490> | Reply
> to Group
> <mailto:yocto-patches@lists.yoctoproject.org?subject=Re:%20Re%3A%20%5Byocto-patches%5D%20%5Bmeta-mingw%5D%5BPATCH%20V2%5D%20meta-mingw%3A%20support%20generating%20Windows%20SDK%20with%20no%20symlink>
> | Reply to Sender
> <mailto:samuli.piippo@gmail.com?subject=Private:%20Re:%20Re%3A%20%5Byocto-patches%5D%20%5Bmeta-mingw%5D%5BPATCH%20V2%5D%20meta-mingw%3A%20support%20generating%20Windows%20SDK%20with%20no%20symlink>
> | Mute This Topic
> <https://lists.yoctoproject.org/mt/116091557/7304865> | New Topic
> <https://lists.yoctoproject.org/g/yocto-patches/post>
> Your Subscription
> <https://lists.yoctoproject.org/g/yocto-patches/editsub/7304865> |
> Contact Group Owner
> <mailto:yocto-patches+owner@lists.yoctoproject.org> | Unsubscribe
> <https://lists.yoctoproject.org/g/yocto-patches/leave/13175947/7304865/1848005690/xyzzy>
> [Qi.Chen@eng.windriver.com]
>
> _._,_._,_
[-- Attachment #2: Type: text/html, Size: 11097 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [yocto-patches] [meta-mingw][PATCH V2] meta-mingw: support generating Windows SDK with no symlink
2025-11-12 7:39 ` [yocto-patches] " Samuli Piippo
2025-11-12 7:58 ` ChenQi
@ 2025-11-12 7:59 ` ChenQi
1 sibling, 0 replies; 7+ messages in thread
From: ChenQi @ 2025-11-12 7:59 UTC (permalink / raw)
To: yocto-patches; +Cc: Joshua Watt, paul
[-- Attachment #1: Type: text/plain, Size: 6046 bytes --]
On 11/12/25 15:39, Samuli Piippo via lists.yoctoproject.org wrote:
> Would it make more sense to leave out the INHERIT and WINSDK_NO_SYMLINK.
> Instead, if you need this, you can inherit the class in your recipe or
> local.conf
>
> -samuli
Hi Samuli,
From my experience, users will usually prefer a variable setting when
it's possible.
Take this case as an example, they could put this setting in their
<distro>.conf, site.conf or local.conf, then no matter meta-mingw is
included or not, 'bitbake <something>' still works.
Regards,
Qi
>
> On Wed, 12 Nov 2025 at 07:35, Chen Qi via lists.yoctoproject.org
> <http://lists.yoctoproject.org>
> <Qi.Chen=windriver.com@lists.yoctoproject.org> wrote:
>
> On 11/11/25 23:25, Joshua Watt wrote:
> > On Sun, Nov 2, 2025 at 7:19 PM <Qi.Chen@windriver.com> wrote:
> >> From: Chen Qi <Qi.Chen@windriver.com>
> >>
> >> On some Windows systems, symlinks are not allowed due to IT policy.
> >> We need to be able to generate Windows SDK without symlinks.
> >>
> >> To do this, a new variable, WINSDK_NO_SYMLINK, and a new bbclass,
> >> mingw_sdk_handle_symlink.bbclass, are introduced to achieve this.
> >>
> >> By default, things work as before; when setting WINSDK_NO_SYMLINK
> >> to "1", SDK will replace all symlinks with the actual contents.
> >>
> >> Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
> >> ---
> >> classes/mingw_sdk_handle_symlink.bbclass | 25
> +++++++++++++++++++++
> >> conf/machine-sdk/include/mingw32-common.inc | 3 +++
> >> 2 files changed, 28 insertions(+)
> >> create mode 100644 classes/mingw_sdk_handle_symlink.bbclass
> >>
> >> diff --git a/classes/mingw_sdk_handle_symlink.bbclass
> b/classes/mingw_sdk_handle_symlink.bbclass
> >> new file mode 100644
> >> index 0000000..2f6dbe6
> >> --- /dev/null
> >> +++ b/classes/mingw_sdk_handle_symlink.bbclass
> >> @@ -0,0 +1,25 @@
> >> +WINSDK_NO_SYMLINK ?= "0"
> >> +
> >> +archive_sdk:prepend:sdkmingw32 () {
> >> + if [ "${WINSDK_NO_SYMLINK}" = "1" ]; then
> >> + for parse_type in "file" "directory"; do
> >> + find "${SDK_OUTPUT}/${SDKPATH}" -type l
> -print0 | while IFS= read -r -d '' symlink; do
> >> + target=$(readlink -f "$symlink"
> || echo "NOTVALID")
> >> + if [ "$target" = "NOTVALID" ]; then
> >> + continue
> >> + fi
> >> + if [ ! -e "$target" ]; then
> >> + continue
> >> + elif [ -d "$target" ]; then
> >> + if [ "$parse_type" =
> "directory" ]; then
> >> + rm "$symlink"
> && cp -r "$target" "$symlink"
> >> + fi
> >> + else
> >> + if [ "$parse_type" =
> "file" ]; then
> >> + rm "$symlink"
> && cp "$target" "$symlink"
> >> + fi
> >> + fi
> >> + done
> >> + done
> >> + fi
> >> +}
> >> diff --git a/conf/machine-sdk/include/mingw32-common.inc
> b/conf/machine-sdk/include/mingw32-common.inc
> >> index 56b8052..bf3f14e 100644
> >> --- a/conf/machine-sdk/include/mingw32-common.inc
> >> +++ b/conf/machine-sdk/include/mingw32-common.inc
> >> @@ -59,3 +59,6 @@ GCCPIE:mingw32 = ""
> >>
> >> # wine and wineserver are required to test MinGW SDKs
> >> HOSTTOOLS_NONFATAL += "wine wineserver"
> >> +
> >> +# handle symlinks
> >> +INHERIT += "mingw_sdk_handle_symlink"
> > Does this need to be unconditional? I'd prefer something like
> > INHERIT:mingw32 instead if that works
>
> Hi Joshua,
>
> I just tried it out. Using INHERIT:append:sdkmingw32 works.
> We have to use :append instead of "+=" to avoid overriding settings.
>
> I'll send out V3.
>
> Regards,
> Qi
>
> >
> >> --
> >> 2.34.1
> >>
>
>
>
>
>
>
> _._,_._,_
> ------------------------------------------------------------------------
> Links:
>
> You receive all messages sent to this group.
>
> View/Reply Online (#2490)
> <https://lists.yoctoproject.org/g/yocto-patches/message/2490> | Reply
> to Group
> <mailto:yocto-patches@lists.yoctoproject.org?subject=Re:%20Re%3A%20%5Byocto-patches%5D%20%5Bmeta-mingw%5D%5BPATCH%20V2%5D%20meta-mingw%3A%20support%20generating%20Windows%20SDK%20with%20no%20symlink>
> | Reply to Sender
> <mailto:samuli.piippo@gmail.com?subject=Private:%20Re:%20Re%3A%20%5Byocto-patches%5D%20%5Bmeta-mingw%5D%5BPATCH%20V2%5D%20meta-mingw%3A%20support%20generating%20Windows%20SDK%20with%20no%20symlink>
> | Mute This Topic
> <https://lists.yoctoproject.org/mt/116091557/7304865> | New Topic
> <https://lists.yoctoproject.org/g/yocto-patches/post>
> Your Subscription
> <https://lists.yoctoproject.org/g/yocto-patches/editsub/7304865> |
> Contact Group Owner
> <mailto:yocto-patches+owner@lists.yoctoproject.org> | Unsubscribe
> <https://lists.yoctoproject.org/g/yocto-patches/leave/13175947/7304865/1848005690/xyzzy>
> [Qi.Chen@eng.windriver.com]
>
> _._,_._,_
[-- Attachment #2: Type: text/html, Size: 11107 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2025-11-12 7:59 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-03 2:18 [meta-mingw][PATCH V2] meta-mingw: support generating Windows SDK with no symlink Qi.Chen
2025-11-10 3:32 ` ChenQi
2025-11-11 15:25 ` Joshua Watt
2025-11-12 5:35 ` ChenQi
2025-11-12 7:39 ` [yocto-patches] " Samuli Piippo
2025-11-12 7:58 ` ChenQi
2025-11-12 7:59 ` ChenQi
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.