public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
* CYGPORT: using WAF build system.
@ 2021-10-14 10:02 Carlo B.
  2021-10-15  4:07 ` Brian Inglis
  2021-10-15 15:22 ` Brian Inglis
  0 siblings, 2 replies; 5+ messages in thread
From: Carlo B. @ 2021-10-14 10:02 UTC (permalink / raw)
  To: cygwin

Hello,
I would like to make a package with LV2 plugins for CYGWIN.
The problem is that those plugins are using the WAF build system and
it is not clear to me how to proceed. Do you know if some of the
existing packages for CYGWIN are using WAF, so that they could be uses
as example for starting?
Thank you very much.

Sincerely.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: CYGPORT: using WAF build system.
  2021-10-14 10:02 CYGPORT: using WAF build system Carlo B.
@ 2021-10-15  4:07 ` Brian Inglis
  2021-10-15 15:22 ` Brian Inglis
  1 sibling, 0 replies; 5+ messages in thread
From: Brian Inglis @ 2021-10-15  4:07 UTC (permalink / raw)
  To: cygwin

On 2021-10-14 04:02, Carlo B. via Cygwin wrote:
> I would like to make a package with LV2 plugins for CYGWIN.
> The problem is that those plugins are using the WAF build system and
> it is not clear to me how to proceed. Do you know if some of the
> existing packages for CYGWIN are using WAF, so that they could be uses
> as example for starting?

Cygport supports packages that include their own WAF:

	https://cygwin.github.io/cygport/waf_cygclass.html

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

This email may be disturbing to some readers as it contains
too much technical detail. Reader discretion is advised.
[Data in binary units and prefixes, physical quantities in SI.]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: CYGPORT: using WAF build system.
  2021-10-14 10:02 CYGPORT: using WAF build system Carlo B.
  2021-10-15  4:07 ` Brian Inglis
@ 2021-10-15 15:22 ` Brian Inglis
  2021-10-17 12:25   ` Carlo B.
  2021-10-17 13:20   ` Carlo B.
  1 sibling, 2 replies; 5+ messages in thread
From: Brian Inglis @ 2021-10-15 15:22 UTC (permalink / raw)
  To: cygwin

On 2021-10-14 04:02, Carlo B. via Cygwin wrote:
> I would like to make a package with LV2 plugins for CYGWIN.
> The problem is that those plugins are using the WAF build system and
> it is not clear to me how to proceed. Do you know if some of the
> existing packages for CYGWIN are using WAF, so that they could be uses
> as example for starting?

In connection with other queries, I just came across a few lv2 packages 
already available in Cygwin:

lv2
lv2core
lv2-calf
lv2-devel
lv2-examples
lv2-swh

slv2
libslv2_9
libslv2-devel

with cygport build control script definitions and patches available 
which use WAF:

https://cygwin.com/git-cygwin-packages?p=git/cygwin-packages/lv2.git
https://cygwin.com/git-cygwin-packages?p=git/cygwin-packages/lv2-swh.git
https://cygwin.com/git-cygwin-packages?p=git/cygwin-packages/slv2.git

so you could install cygport and any *lv2* package dependencies, clone 
these repos or download and untar the current source packages which 
contain these files plus upstream tars, and build the current packages 
as a proof of concept and way of learning cygport, before trying to 
build more current versions.

The simple approach to running cygport is to change to the directory 
containing the .cygport definitions and .patch file(s) or move them to a 
working directory (normally named for the source package), then run e.g.

	$ cygport lv2.cygport get prep

which downloads the upstream (not Cygwin) package sources for the 
specified version to a central cache directory, creates a package build 
directory, copies or untars sources if required, and (tries to) apply 
any patches to the original sources, to give you working sources, which 
you can then use to compile and make install-able Cygwin packages for 
the current arch.
You can try one of the following examples, depending whether you want to 
watch the builds run or review the results later:

	$ cygport lv2.cygport all |& tee lv2-cygport-`arch`-all.log

	$ cygport lv2.cygport all | tee lv2-cygport-`arch`-all.log 2>&1

	$ cygport lv2.cygport all &> tee lv2-cygport-`arch`-all.log &

       $ cygport lv2.cygport all > tee lv2-cygport-`arch`-all.log 2>&1 &

Browse the created build subdirectories to see what is produced and 
review all detail logs generated during the process.

After a successful build and package creation, it is always a good idea 
to try to run any test suites with:

   $ cygport lv2.cygport check > tee lv2-cygport-`arch`-check.log 2>&1 &

I use the cygport command check instead of test as test is used 
ambiguously by cygport, as it may also refer to test vs stable or 
production releases produced by cygport using commands e.g. all-test.

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

This email may be disturbing to some readers as it contains
too much technical detail. Reader discretion is advised.
[Data in binary units and prefixes, physical quantities in SI.]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: CYGPORT: using WAF build system.
  2021-10-15 15:22 ` Brian Inglis
@ 2021-10-17 12:25   ` Carlo B.
  2021-10-17 13:20   ` Carlo B.
  1 sibling, 0 replies; 5+ messages in thread
From: Carlo B. @ 2021-10-17 12:25 UTC (permalink / raw)
  To: cygwin

Hello,
thank you very much for the replies.
I have successfully compiled lv2, lilv, serd, sord, sratom (but not
suil yet) for CYGWIN and I made the packages for building the master
branch of Audacity.
I also tried to do the same thing for i686 and x86_64, by using
provided MinGW-w64 cross compiler, but I'm getting this message:

*** ERROR: waf.cygclass does not yet support cross-compiling

I hope that somebody may fix this in the future.
Sincerely.

Il giorno ven 15 ott 2021 alle ore 17:22 Brian Inglis
<Brian.Inglis@systematicsw.ab.ca> ha scritto:
>
> On 2021-10-14 04:02, Carlo B. via Cygwin wrote:
> > I would like to make a package with LV2 plugins for CYGWIN.
> > The problem is that those plugins are using the WAF build system and
> > it is not clear to me how to proceed. Do you know if some of the
> > existing packages for CYGWIN are using WAF, so that they could be uses
> > as example for starting?
>
> In connection with other queries, I just came across a few lv2 packages
> already available in Cygwin:
>
> lv2
> lv2core
> lv2-calf
> lv2-devel
> lv2-examples
> lv2-swh
>
> slv2
> libslv2_9
> libslv2-devel
>
> with cygport build control script definitions and patches available
> which use WAF:
>
> https://cygwin.com/git-cygwin-packages?p=git/cygwin-packages/lv2.git
> https://cygwin.com/git-cygwin-packages?p=git/cygwin-packages/lv2-swh.git
> https://cygwin.com/git-cygwin-packages?p=git/cygwin-packages/slv2.git
>
> so you could install cygport and any *lv2* package dependencies, clone
> these repos or download and untar the current source packages which
> contain these files plus upstream tars, and build the current packages
> as a proof of concept and way of learning cygport, before trying to
> build more current versions.
>
> The simple approach to running cygport is to change to the directory
> containing the .cygport definitions and .patch file(s) or move them to a
> working directory (normally named for the source package), then run e.g.
>
>         $ cygport lv2.cygport get prep
>
> which downloads the upstream (not Cygwin) package sources for the
> specified version to a central cache directory, creates a package build
> directory, copies or untars sources if required, and (tries to) apply
> any patches to the original sources, to give you working sources, which
> you can then use to compile and make install-able Cygwin packages for
> the current arch.
> You can try one of the following examples, depending whether you want to
> watch the builds run or review the results later:
>
>         $ cygport lv2.cygport all |& tee lv2-cygport-`arch`-all.log
>
>         $ cygport lv2.cygport all | tee lv2-cygport-`arch`-all.log 2>&1
>
>         $ cygport lv2.cygport all &> tee lv2-cygport-`arch`-all.log &
>
>        $ cygport lv2.cygport all > tee lv2-cygport-`arch`-all.log 2>&1 &
>
> Browse the created build subdirectories to see what is produced and
> review all detail logs generated during the process.
>
> After a successful build and package creation, it is always a good idea
> to try to run any test suites with:
>
>    $ cygport lv2.cygport check > tee lv2-cygport-`arch`-check.log 2>&1 &
>
> I use the cygport command check instead of test as test is used
> ambiguously by cygport, as it may also refer to test vs stable or
> production releases produced by cygport using commands e.g. all-test.
>
> --
> Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada
>
> This email may be disturbing to some readers as it contains
> too much technical detail. Reader discretion is advised.
> [Data in binary units and prefixes, physical quantities in SI.]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: CYGPORT: using WAF build system.
  2021-10-15 15:22 ` Brian Inglis
  2021-10-17 12:25   ` Carlo B.
@ 2021-10-17 13:20   ` Carlo B.
  1 sibling, 0 replies; 5+ messages in thread
From: Carlo B. @ 2021-10-17 13:20 UTC (permalink / raw)
  To: cygwin

Hello,
in addition to my previous message, I would like to say that I tried
to build the existing old sources of lv2-1.12.0-1.x86_64 package, but
an error is generated.
I attached what happens and I hope that you will find this report useful.
Sincerely.

=============

$ cygport lv2.cygport all
>>> Preparing lv2-1.12.0-1.x86_64
>>> Unpacking source lv2-1.12.0.tar.bz2
*** Info: applying patch 1.12.0-cygwin-shlib.patch (-p2):
patching file plugins/eg-amp.lv2/wscript
patching file plugins/eg-fifths.lv2/wscript
patching file plugins/eg-metro.lv2/wscript
patching file plugins/eg-midigate.lv2/wscript
patching file plugins/eg-sampler.lv2/wscript
patching file plugins/eg-scope.lv2/wscript
>>> Preparing working source directory
>>> Compiling lv2-1.12.0-1.x86_64
Traceback (most recent call last):
  File "/home/Carlo/packages/lv2.src/lv2.src/a/lv2-1.12.0-1.src/lv2-1.12.0-1.x86_64/build/.waf3-1.8.5-3556be08f33a5066528395b11fed89fa/waflib/Node.py",
line 293, in ant_iter
    raise StopIteration
StopIteration

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/Carlo/packages/lv2.src/lv2.src/a/lv2-1.12.0-1.src/lv2-1.12.0-1.x86_64/build/.waf3-1.8.5-3556be08f33a5066528395b11fed89fa/waflib/Scripting.py",
line 103, in waf_entry_point
    run_commands()
  File "/home/Carlo/packages/lv2.src/lv2.src/a/lv2-1.12.0-1.src/lv2-1.12.0-1.x86_64/build/.waf3-1.8.5-3556be08f33a5066528395b11fed89fa/waflib/Scripting.py",
line 160, in run_commands
    parse_options()
  File "/home/Carlo/packages/lv2.src/lv2.src/a/lv2-1.12.0-1.src/lv2-1.12.0-1.x86_64/build/.waf3-1.8.5-3556be08f33a5066528395b11fed89fa/waflib/Scripting.py",
line 133, in parse_options
    Context.create_context('options').execute()
  File "/home/Carlo/packages/lv2.src/lv2.src/a/lv2-1.12.0-1.src/lv2-1.12.0-1.x86_64/build/.waf3-1.8.5-3556be08f33a5066528395b11fed89fa/waflib/Options.py",
line 141, in execute
    super(OptionsContext,self).execute()
  File "/home/Carlo/packages/lv2.src/lv2.src/a/lv2-1.12.0-1.src/lv2-1.12.0-1.x86_64/build/.waf3-1.8.5-3556be08f33a5066528395b11fed89fa/waflib/Context.py",
line 92, in execute
    self.recurse([os.path.dirname(g_module.root_path)])
  File "/home/Carlo/packages/lv2.src/lv2.src/a/lv2-1.12.0-1.src/lv2-1.12.0-1.x86_64/build/.waf3-1.8.5-3556be08f33a5066528395b11fed89fa/waflib/Context.py",
line 133, in recurse
    user_function(self)
  File "/home/Carlo/packages/lv2.src/lv2.src/a/lv2-1.12.0-1.src/lv2-1.12.0-1.x86_64/build/wscript",
line 25, in options
    opt.load('compiler_c')
  File "/home/Carlo/packages/lv2.src/lv2.src/a/lv2-1.12.0-1.src/lv2-1.12.0-1.x86_64/build/.waf3-1.8.5-3556be08f33a5066528395b11fed89fa/waflib/Context.py",
line 89, in load
    fun(self)
  File "/home/Carlo/packages/lv2.src/lv2.src/a/lv2-1.12.0-1.src/lv2-1.12.0-1.x86_64/build/.waf3-1.8.5-3556be08f33a5066528395b11fed89fa/waflib/Tools/compiler_c.py",
line 36, in options
    opt.load_special_tools('c_*.py',ban=['c_dumbpreproc.py'])
  File "/home/Carlo/packages/lv2.src/lv2.src/a/lv2-1.12.0-1.src/lv2-1.12.0-1.x86_64/build/.waf3-1.8.5-3556be08f33a5066528395b11fed89fa/waflib/Context.py",
line 296, in load_special_tools
    lst=self.root.find_node(waf_dir).find_node('waflib/extras').ant_glob(var)
  File "/home/Carlo/packages/lv2.src/lv2.src/a/lv2-1.12.0-1.src/lv2-1.12.0-1.x86_64/build/.waf3-1.8.5-3556be08f33a5066528395b11fed89fa/waflib/Node.py",
line 342, in ant_glob
    ret=[x for x in
self.ant_iter(accept=accept,pats=[to_pat(incl),to_pat(excl)],maxdepth=kw.get('maxdepth',25),dir=dir,src=src,remove=kw.get('remove',True))]
  File "/home/Carlo/packages/lv2.src/lv2.src/a/lv2-1.12.0-1.src/lv2-1.12.0-1.x86_64/build/.waf3-1.8.5-3556be08f33a5066528395b11fed89fa/waflib/Node.py",
line 342, in <listcomp>
    ret=[x for x in
self.ant_iter(accept=accept,pats=[to_pat(incl),to_pat(excl)],maxdepth=kw.get('maxdepth',25),dir=dir,src=src,remove=kw.get('remove',True))]
RuntimeError: generator raised StopIteration
*** ERROR: waf configure failed

Il giorno ven 15 ott 2021 alle ore 17:22 Brian Inglis
<Brian.Inglis@systematicsw.ab.ca> ha scritto:
>
> On 2021-10-14 04:02, Carlo B. via Cygwin wrote:
> > I would like to make a package with LV2 plugins for CYGWIN.
> > The problem is that those plugins are using the WAF build system and
> > it is not clear to me how to proceed. Do you know if some of the
> > existing packages for CYGWIN are using WAF, so that they could be uses
> > as example for starting?
>
> In connection with other queries, I just came across a few lv2 packages
> already available in Cygwin:
>
> lv2
> lv2core
> lv2-calf
> lv2-devel
> lv2-examples
> lv2-swh
>
> slv2
> libslv2_9
> libslv2-devel
>
> with cygport build control script definitions and patches available
> which use WAF:
>
> https://cygwin.com/git-cygwin-packages?p=git/cygwin-packages/lv2.git
> https://cygwin.com/git-cygwin-packages?p=git/cygwin-packages/lv2-swh.git
> https://cygwin.com/git-cygwin-packages?p=git/cygwin-packages/slv2.git
>
> so you could install cygport and any *lv2* package dependencies, clone
> these repos or download and untar the current source packages which
> contain these files plus upstream tars, and build the current packages
> as a proof of concept and way of learning cygport, before trying to
> build more current versions.
>
> The simple approach to running cygport is to change to the directory
> containing the .cygport definitions and .patch file(s) or move them to a
> working directory (normally named for the source package), then run e.g.
>
>         $ cygport lv2.cygport get prep
>
> which downloads the upstream (not Cygwin) package sources for the
> specified version to a central cache directory, creates a package build
> directory, copies or untars sources if required, and (tries to) apply
> any patches to the original sources, to give you working sources, which
> you can then use to compile and make install-able Cygwin packages for
> the current arch.
> You can try one of the following examples, depending whether you want to
> watch the builds run or review the results later:
>
>         $ cygport lv2.cygport all |& tee lv2-cygport-`arch`-all.log
>
>         $ cygport lv2.cygport all | tee lv2-cygport-`arch`-all.log 2>&1
>
>         $ cygport lv2.cygport all &> tee lv2-cygport-`arch`-all.log &
>
>        $ cygport lv2.cygport all > tee lv2-cygport-`arch`-all.log 2>&1 &
>
> Browse the created build subdirectories to see what is produced and
> review all detail logs generated during the process.
>
> After a successful build and package creation, it is always a good idea
> to try to run any test suites with:
>
>    $ cygport lv2.cygport check > tee lv2-cygport-`arch`-check.log 2>&1 &
>
> I use the cygport command check instead of test as test is used
> ambiguously by cygport, as it may also refer to test vs stable or
> production releases produced by cygport using commands e.g. all-test.
>
> --
> Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada
>
> This email may be disturbing to some readers as it contains
> too much technical detail. Reader discretion is advised.
> [Data in binary units and prefixes, physical quantities in SI.]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2021-10-17 13:20 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-14 10:02 CYGPORT: using WAF build system Carlo B.
2021-10-15  4:07 ` Brian Inglis
2021-10-15 15:22 ` Brian Inglis
2021-10-17 12:25   ` Carlo B.
2021-10-17 13:20   ` Carlo B.

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).