From: ChenQi <Qi.Chen@windriver.com>
To: yocto-patches@lists.yoctoproject.org
Cc: Joshua Watt <jpewhacker@gmail.com>, paul@pbarker.dev
Subject: Re: [yocto-patches] [meta-mingw][PATCH V2] meta-mingw: support generating Windows SDK with no symlink
Date: Wed, 12 Nov 2025 15:59:19 +0800 [thread overview]
Message-ID: <30bbd824-e202-45c9-aae5-1194decbcbbc@windriver.com> (raw)
In-Reply-To: <CABXoSoW68LaasoHdKFcRV_XHBbixCakN+qq=O1hx7dFTf-pFdw@mail.gmail.com>
[-- 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 --]
prev parent reply other threads:[~2025-11-12 7:59 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
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 message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=30bbd824-e202-45c9-aae5-1194decbcbbc@windriver.com \
--to=qi.chen@windriver.com \
--cc=jpewhacker@gmail.com \
--cc=paul@pbarker.dev \
--cc=yocto-patches@lists.yoctoproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.