Re: cygport build/package issues
Thomas Wolff via Cygwin-apps <[email protected]> Wed, 24 Sep 2025 00:08:09 +0200
| Newsgroups | gmane.os.cygwin.applications |
|---|---|
| Message-ID | <[email protected]> |
Am 20.09.2025 um 19:07 schrieb Thomas Wolff via Cygwin-apps:
>
> Am 20.09.2025 um 00:37 schrieb Brian Inglis via Cygwin-apps:
>> On 2025-09-19 10:24, Thomas Wolff via Cygwin-apps wrote:
>>>
>>>
>>> Am 18.09.2025 um 05:32 schrieb Brian Inglis via Cygwin-apps:
>>>> On 2025-09-16 15:42, Thomas Wolff via Cygwin-apps wrote:
>>>>> questions for a new package:
>>>>> * Is there a way to specify a git clone for download rather than
>>>>> a download URI?
>>>>
>>>> See:
>>>>
>>>> https://cygwin.github.io/cygport/git_cygclass.html
>>>>
>>>> for example:
>>>>
>>>> GIT_URI=https://github.com/$NAME/$NAME
>>>> GIT_BRANCH=$NAME
>>>> GIT_TAG=v$VERSION
>>>> GIT_REV=
>>>>
>>>> inherit git
>>>>
>>>>> * I have a build script (which also downloads actual sources).
>>>>> Is there a cygwin function to invoke it or do I have to put it
>>>>> into src_compile and abuse the compile step for it?
>>>> Please avoid that as enough abuse of cygport functions is normally
>>>> required to handle non-standard package processing. ;^>
>>>>
>>>> See:
>>>>
>>>> https://cygwin.github.io/cygport/toc_index.html
>>>>
>>>> Convert the build script to cygport functions; see:
>>>>
>>>> https://cygwin.github.io/cygport/compilers_cygpart.html
>>>>
>>>> https://cygwin.github.io/cygport/src_install_cygpart.html
>>>>
>>>> https://cygwin.github.io/cygport/src_postinst_cygpart.html
>>>>
>>>> https://cygwin.github.io/cygport/pkg_pkg_cygpart.html
>>>>
>>>> https://cygwin.github.io/cygport/cygport_testsuite_functions.html
>>>>
>>>> Standard top level functions:
>>>>
>>>> src_compile() {
>>>> cd ${S}
>>>> cygautoreconf
>>>> cd ${B}
>>>> cygconf
>>>> cygmake
>>>> }
>>>>
>>>> src_install() {
>>>> cd ${B}
>>>> cyginstall
>>>> }
>>>>
>>>> src_test() {
>>>> cd ${B}
>>>> cygtest
>>>> }
>>>>
>>>> Some higher level functions:
>>>>
>>>> cygautoreconf
>>>> cygcmake
>>>> cygconf
>>>> cyginstall
>>>> cygmake
>>>> cygmeson
>>>> cygninja
>>>> cygqmake3
>>>> cygqmake4
>>>> cygqmake5
>>>> cygtest
>>>>
>>>> others:
>>>>
>>>> https://cygwin.github.io/cygport/cygport_general_functions.html
>>>>
>>>> and there are plenty of classes with overloads, if those apply:
>>>>
>>>> https://cygwin.github.io/cygport/cygport_cygclasses.html
>>>>
>>>> https://cygwin.github.io/cygport/cygport_overloads.html
>>>>
>>>> For any commands which do not map to appropriate cygport functions,
>>>> or are not done automatically, you can put those into a Makefile
>>>> and invoke it with cygmake.
>>>>
>>>>> * Is there a way to specify files (like the build script in this
>>>>> case)
>>>>> to be included in the source package?
>>>> SRC_URI+=" https://..."
>>>> SRC_URI+=" filename"
>>>>
>>>> The intent is for all packages to be built using cygport to support
>>>> CI and any policies and approaches desired, and automate a *LOT* of
>>>> any grunt work commonly required!
>>>>
>>>> The desire is to eventually have validated deployments only via
>>>> cygport, scallywag, and calm, or successors.
>>>>
>>>> Post the build script, or a link to the package definition, spec,
>>>> ebuild, etc. on other distros or sites, for advice, suggestions,
>>>> and help porting it to cygport.
>>>>
>>> Thanks for the SRC_URI+= hint. The GIT_URI, GIT_TAG hint did not
>>> work, nothing was downloaded. Also it's a huge repository and I'd
>>> prefer shallow clone (-- depth 1) and sparse checkout.
Actually, the SRC_URI trick fixes the package step but spoils the prep step:
/bin/cp: failed to access 'emojis-noto-v2.051-1.noarch': No such file or
directory
*** ERROR: cp -t emojis-noto-v2.051-1.noarch getnoto failed
Bundling a build script with the cygport does not seem to be supported.
It could be injected as a patch perhaps.
As the two scripts are actually also part of mintty, I guess I'll add
them as a downloadable source.
>>
>> Cygport git cygclass defaults to --depth 1, and retries without if
>> that fails because shallow clones are not supported by the upstream,
>> after issuing a message to that effect.
>>
>>> I've uploaded a source package of my proposed package to
>>> http://towo.net/cygwin/ emojis-noto-v2.048-1-src.tar.xz for
>>> consideration.
>>
>> Did you notice the `inherit git` *AFTER* the definitions hint above?
> No, thanks. However, that still does not give me sparse (partial)
> checkout. Also it seems to stall after checkout:
> git checkout tags/v2.051
> Updating files: 100% (20100/20100), done.
> HEAD is now at 8998f5dd Merge pull request #515 from googlefonts/e17
> - then nothing; waited for 5 min.
>
>>
>> https://cygwin.github.io/cygport/git_cygclass.html#git.cygclass
>>
>> Also `inherit font` gives you font cygclass functions to store fonts
>> in the appropriate places for use by *ALL* Cygwin apps newer than
>> those supporting only legacy Adobe types.
> I assigned this package to the Fonts category but it's not really a
> font...
>
>>
>> https://cygwin.github.io/cygport/git_cygclass.html#git.cygclass
>>
>> Note the existing package, whose cygport would need some tweaks to
>> get up to date since 2017:
>>
>> https://cygwin.com/cgit/cygwin-packages/noto-emoji-fonts
> My proposed package does not replace the other one; it does not
> provide the font but the emoji graphics (.png files) as used by mintty.
>
>>
>> Release v2.048 adds the Syria flag update to Unicode 16.0: you should
>> be accessing tag v2.051 for Unicode 17 Emoji (mk1).
>>
>> For comparison, see the Fedora spec for latest branch build F43
>> (currently == rawhide == main):
>>
>> https://src.fedoraproject.org/rpms/google-noto-emoji-fonts/blob/f43/f/google-noto-emoji-fonts.spec
>>
>>