Re: cygport build/package issues

Brian Inglis via Cygwin-apps <[email protected]>
Newsgroups gmane.os.cygwin.applications
Organization Systematic Software
Message-ID <[email protected]>
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.

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?

	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.

	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

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

-- 
Take care. Thanks, Brian Inglis              Calgary, Alberta, Canada

La perfection est atteinte                   Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter  not when there is no more to add
mais lorsqu'il n'y a plus rien à retrancher  but when there is no more to cut
                                 -- Antoine de Saint-Exupéry
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.