* [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.