<div dir="ltr"><div dir="auto"><div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jul 28, 2022, 4:39 PM Christoph Willing <<a href="mailto:chris.willing@linux.com" target="_blank">chris.willing@linux.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 29/7/22 04:11, Heinz Wiesinger wrote:<br>
> On Thursday, 28 July 2022 20:08:02 CEST Wen-Wei Kao wrote:<br>
>> Hello,<br>
>><br>
>> Recently while writing SlackBuilds, there is a particular package (https://<br>
>> <a href="http://github.com/fcitx/libime" rel="noreferrer noreferrer" target="_blank">github.com/fcitx/libime</a>) that requires a submodule pulled in before<br>
>> compiling, but the Github release tags' sources don't have it included.<br>
>> What are the recommended ways to deal with this? Should I mark both as<br>
>> assets in the .info file, and decompress them in appropriate places? TIA.<br>
> <br>
> There's a second source tarball :)<br>
> <br>
> <a href="https://download.fcitx-im.org/fcitx5/libime/libime-1.0.13_dict.tar.xz" rel="noreferrer noreferrer" target="_blank">https://download.fcitx-im.org/fcitx5/libime/libime-1.0.13_dict.tar.xz</a><br>
> <br>
> Notice the "_dict" at the end. That one shouldn't need any external additions.<br>
> <br>
<br>
Although there's an easy solution in this particular case, I would be<br>
interested in hearing of a more general solution for cases where there<br>
is no such additional tarball available.<br>
<br>
I maintain another SlackBuild which has exactly the same problem. My<br>
solution so far has been to locally checkout the commit which<br>
corresponds to the (incomplete) release tarball. Then I pull in the<br>
required submodules and generate a new (complete) tarball which I host<br>
at slackbuildsdirectlinks, from where can be used as a single download<br>
for the SlackBuild.<br>
<br>
While that's a workable solution, I would definitely be interested in<br>
alternatives.<br>
<br>
chris</blockquote></div></div><div dir="auto"><br></div><div dir="auto">In the few SlackBuilds I've had that used git submodules, I'll just view the .gitmodules file and use some bash to extract the modules' repos and see where the extracted source belongs. That .gitmodules file will let you know if it is based on the master branch or a specific tag/version/commit. If it's the master branch, then I'll go through and find the commit ID I want to download and add it to the PRGNAM.info download section. If it's a specific version, I'll sometimes use bash to generate my download links, other times, I'll just manually do it (it depends on how many downloads there end up being).</div><div dir="auto"><br></div><div dir="auto">Sometimes you'll luck out and all the submodules belong in the same folder as their own subfolder. In that case, you can simply extract all the submodules to the same directory with a wildcard, otherwise you need to manually add specific lines in the SlackBuild for each.</div><div dir="auto"><br></div><div>One of mine, redeclipse, has 38 submodules, so I actually created a separate submodule file that the SlackBuild references to know what tarballs to extract. Since the versions aren't used in the folder name when properly placed, I don't worry about what the files are called and just use a wildcard for the version.</div><div><br></div><div>Unfortunately, it seems I was dumb and just had all the generated information done by a piped together command that I didn't save. Apparently, I'm a glutton for punishment when it needs to be updated.</div><div><br></div><div><a href="https://slackbuilds.org/repository/15.0/games/redeclipse/">https://slackbuilds.org/repository/15.0/games/redeclipse/</a><br></div><div><a href="https://slackbuilds.org/repository/14.2/games/glPortal/">https://slackbuilds.org/repository/14.2/games/glPortal/</a> (haven't had time to get this to work on 15.0 yet)<br></div><div><br></div><div>In the case of the OP's situation, they could just add <a href="https://github.com/kpu/kenlm/archive/bcd4af6/kenlm-bcd4af619a2fa45f5876d8855f7876cc09f663af.tar.gz">https://github.com/kpu/kenlm/archive/bcd4af6/kenlm-bcd4af619a2fa45f5876d8855f7876cc09f663af.tar.gz</a> to the DOWNLOAD in the .info with its corresponding MD5SUM and then add something like the following into the SlackBuild:</div><div><br></div><div><font face="monospace">KENVER=<span style="color:rgb(0,0,0);white-space:pre-wrap">${KENVER:-</span>bcd4af619a2fa45f5876d8855f7876cc09f663af}</font></div><div><font face="monospace"><br></font></div><div><font face="monospace">(extract main source)</font></div><div><font face="monospace"><br></font></div><div><font face="monospace">rm -r src/libime/core/kenlm</font></div><div><font face="monospace">tar xvf $CWD/kenlm-$KENVER.tar.gz</font></div><div><font face="monospace">mv kenlm-$KENVER src/libime/core/kenlm</font></div><div><br></div><div>And then continue the build.</div><div><br></div><div>Jeremy</div></div>
</div>