public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
* cygport: CYGCMAKE_SOURCE seems to have no effect.
@ 2021-09-16 15:18 Carlo B.
  2021-09-16 17:48 ` Brian Inglis
  2021-09-17  9:37 ` Carlo B.
  0 siblings, 2 replies; 6+ messages in thread
From: Carlo B. @ 2021-09-16 15:18 UTC (permalink / raw)
  To: cygwin

Hello,
I'm trying to make a package for CYGWIN to provide liblo, but I'm
having some difficulties.
This library is available to the most used linux distributions (but
not limited to), here there is the link to the one into a Debian as
example:

https://packages.debian.org/buster/liblo-dev

I implemented a script for cygport but this is the output on the
console when I execute it:

$ cygport liblo.cygport all
>>> Preparing liblo-0.31-1.x86_64
>>> Unpacking source liblo-0.31.tar.gz
>>> Preparing working source directory
>>> Compiling liblo-0.31-1.x86_64
*** ERROR: cygcmake: cmake directory not found

The unique aspect of this library is that the CMakeLists.txt file is
not into the root of the source tree, but it is located into a
subfolder, see here:

https://github.com/radarsat1/liblo/tree/master/cmake

So, in my script, I configured ${CYGCMAKE_SOURCE} to point there, but
it still cannot make it working. Since it seems that I'm not able to
make it working in any way, I'm wondering if the behaviour of this
variable has been ever tested, so I'm writing here with the hope to
receive a suggestion.

Thank you very much for your support.

=======> And this is the content of my liblo.cygport file:

inherit cmake

NAME="liblo"
VERSION=0.31
RELEASE=1
CATEGORY="Audio"
SUMMARY="Open Sound Control protocol for POSIX systems"
DESCRIPTION="Open Sound Control (OSC) is a protocol for communication
 among computers, sound synthesizers, and other multimedia devices that
 is optimized for modern networking technology."
HOMEPAGE="http://liblo.sourceforge.net/"
SRC_URI="http://downloads.sourceforge.net/liblo/liblo-${VERSION}.tar.gz"

PKG_NAMES="liblo1 liblo-devel"
PKG_IGNORE="
    usr/share/doc/liblo/AUTHORS
    usr/share/doc/liblo/COPYING
    usr/share/doc/liblo/ChangeLog
    usr/share/doc/liblo/NEWS
    usr/share/doc/liblo/README
    usr/share/doc/liblo/TODO
"

liblo1_CATEGORY="Libs"
liblo1_SUMMARY="${SUMMARY}"
liblo1_CONTENTS="
    usr/bin/cyglo-7.dll
    usr/bin/oscdump.exe
    usr/bin/oscsend.exe
"
liblo_devel_CATEGORY="Libs"
liblo_devel_SUMMARY="${SUMMARY}"
liblo_devel_CONTENTS="
    usr/include/lo/*
    usr/lib/liblo.dll.a
    usr/lib/pkgconfig/liblo.pc
    usr/lib/cmake/liblo/libloConfig.cmake
"

CYGCMAKE_SOURCE="${S}/cmake"

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

* Re: cygport: CYGCMAKE_SOURCE seems to have no effect.
  2021-09-16 15:18 cygport: CYGCMAKE_SOURCE seems to have no effect Carlo B.
@ 2021-09-16 17:48 ` Brian Inglis
  2021-09-17  8:18   ` Carlo B.
  2021-09-17  9:37 ` Carlo B.
  1 sibling, 1 reply; 6+ messages in thread
From: Brian Inglis @ 2021-09-16 17:48 UTC (permalink / raw)
  To: cygwin

On 2021-09-16 09:18, Carlo B. via Cygwin wrote:
> Hello,
> I'm trying to make a package for CYGWIN to provide liblo, but I'm
> having some difficulties.
> This library is available to the most used linux distributions (but
> not limited to), here there is the link to the one into a Debian as
> example:
> 
> https://packages.debian.org/buster/liblo-dev
> 
> I implemented a script for cygport but this is the output on the
> console when I execute it:
> 
> $ cygport liblo.cygport all
>>>> Preparing liblo-0.31-1.x86_64
>>>> Unpacking source liblo-0.31.tar.gz
>>>> Preparing working source directory
>>>> Compiling liblo-0.31-1.x86_64
> *** ERROR: cygcmake: cmake directory not found
> 
> The unique aspect of this library is that the CMakeLists.txt file is
> not into the root of the source tree, but it is located into a
> subfolder, see here:
> 
> https://github.com/radarsat1/liblo/tree/master/cmake
> 
> So, in my script, I configured ${CYGCMAKE_SOURCE} to point there, but
> it still cannot make it working. Since it seems that I'm not able to
> make it working in any way, I'm wondering if the behaviour of this
> variable has been ever tested, so I'm writing here with the hope to
> receive a suggestion.
> 
> Thank you very much for your support.

Worked just fine for a recent update of fortune-mod.

See online or under your Cygwin directory:

	https://cygwin.github.io/cygport/cmake_cygclass.html#robo765

	cygstart /usr/share/doc/cygport/html/manual/cmake_cygclass.html

Try directory specification rather than path - cygport often just DTRT:

	CYGCMAKE_SOURCE=cmake

-- 
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.]


> =======> And this is the content of my liblo.cygport file:
> 
> inherit cmake
> 
> NAME="liblo"
> VERSION=0.31
> RELEASE=1
> CATEGORY="Audio"
> SUMMARY="Open Sound Control protocol for POSIX systems"
> DESCRIPTION="Open Sound Control (OSC) is a protocol for communication
>   among computers, sound synthesizers, and other multimedia devices that
>   is optimized for modern networking technology."
> HOMEPAGE="http://liblo.sourceforge.net/"
> SRC_URI="http://downloads.sourceforge.net/liblo/liblo-${VERSION}.tar.gz"
> 
> PKG_NAMES="liblo1 liblo-devel"
> PKG_IGNORE="
>      usr/share/doc/liblo/AUTHORS
>      usr/share/doc/liblo/COPYING
>      usr/share/doc/liblo/ChangeLog
>      usr/share/doc/liblo/NEWS
>      usr/share/doc/liblo/README
>      usr/share/doc/liblo/TODO
> "
> 
> liblo1_CATEGORY="Libs"
> liblo1_SUMMARY="${SUMMARY}"
> liblo1_CONTENTS="
>      usr/bin/cyglo-7.dll
>      usr/bin/oscdump.exe
>      usr/bin/oscsend.exe
> "
> liblo_devel_CATEGORY="Libs"
> liblo_devel_SUMMARY="${SUMMARY}"
> liblo_devel_CONTENTS="
>      usr/include/lo/*
>      usr/lib/liblo.dll.a
>      usr/lib/pkgconfig/liblo.pc
>      usr/lib/cmake/liblo/libloConfig.cmake
> "
> 
> CYGCMAKE_SOURCE="${S}/cmake"

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

* Re: cygport: CYGCMAKE_SOURCE seems to have no effect.
  2021-09-16 17:48 ` Brian Inglis
@ 2021-09-17  8:18   ` Carlo B.
  0 siblings, 0 replies; 6+ messages in thread
From: Carlo B. @ 2021-09-17  8:18 UTC (permalink / raw)
  To: cygwin

Hello,

thank you for your message,

> Worked just fine for a recent update of fortune-mod.
>
I gave a look to the source tree inside the package
fortune-mod-3.6.1-1-src.tar.xz and the CMakeLists.txt is into the
top-level directory, so it is not the same thing. And it seems to me
that ${CYGCMAKE_SOURCE} is not used by fortune-mod.cygport.

> See online or under your Cygwin directory:
>
>         https://cygwin.github.io/cygport/cmake_cygclass.html#robo765
>
>         cygstart /usr/share/doc/cygport/html/manual/cmake_cygclass.html
>
Yes, I had read that.

> Try directory specification rather than path - cygport often just DTRT:
>
>         CYGCMAKE_SOURCE=cmake
>
Yes, I had also tried that, but without success.

Sincerely.

> --
> 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.]
>
>
> > =======> And this is the content of my liblo.cygport file:
> >
> > inherit cmake
> >
> > NAME="liblo"
> > VERSION=0.31
> > RELEASE=1
> > CATEGORY="Audio"
> > SUMMARY="Open Sound Control protocol for POSIX systems"
> > DESCRIPTION="Open Sound Control (OSC) is a protocol for communication
> >   among computers, sound synthesizers, and other multimedia devices that
> >   is optimized for modern networking technology."
> > HOMEPAGE="http://liblo.sourceforge.net/"
> > SRC_URI="http://downloads.sourceforge.net/liblo/liblo-${VERSION}.tar.gz"
> >
> > PKG_NAMES="liblo1 liblo-devel"
> > PKG_IGNORE="
> >      usr/share/doc/liblo/AUTHORS
> >      usr/share/doc/liblo/COPYING
> >      usr/share/doc/liblo/ChangeLog
> >      usr/share/doc/liblo/NEWS
> >      usr/share/doc/liblo/README
> >      usr/share/doc/liblo/TODO
> > "
> >
> > liblo1_CATEGORY="Libs"
> > liblo1_SUMMARY="${SUMMARY}"
> > liblo1_CONTENTS="
> >      usr/bin/cyglo-7.dll
> >      usr/bin/oscdump.exe
> >      usr/bin/oscsend.exe
> > "
> > liblo_devel_CATEGORY="Libs"
> > liblo_devel_SUMMARY="${SUMMARY}"
> > liblo_devel_CONTENTS="
> >      usr/include/lo/*
> >      usr/lib/liblo.dll.a
> >      usr/lib/pkgconfig/liblo.pc
> >      usr/lib/cmake/liblo/libloConfig.cmake
> > "
> >
> > CYGCMAKE_SOURCE="${S}/cmake"
>
> --
> Problem reports:      https://cygwin.com/problems.html
> FAQ:                  https://cygwin.com/faq/
> Documentation:        https://cygwin.com/docs.html
> Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

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

* Re: cygport: CYGCMAKE_SOURCE seems to have no effect.
  2021-09-16 15:18 cygport: CYGCMAKE_SOURCE seems to have no effect Carlo B.
  2021-09-16 17:48 ` Brian Inglis
@ 2021-09-17  9:37 ` Carlo B.
  2021-09-17 15:41   ` Brian Inglis
  1 sibling, 1 reply; 6+ messages in thread
From: Carlo B. @ 2021-09-17  9:37 UTC (permalink / raw)
  To: cygwin

Hello,
in addition to my previous message, I did some experiments with the
code of cygport and I added these lines to
/usr/share/cygport/cygclass/cmake.cygclass:

echo "CYGCMAKE_SOURCE=${CYGCMAKE_SOURCE}"
echo "B=${B}"
echo "S=${S}"
echo "PWD=${PWD}"

and the result is:

CYGCMAKE_SOURCE=/cmake
B=/home/carlo/liblo.src/liblo-0.31-1.x86_64/build
S=/home/carlo/liblo.src/liblo-0.31-1.x86_64/src/liblo-0.31
PWD=/home/carlo/liblo.src/liblo-0.31-1.x86_64/build
*** ERROR: cygcmake: cmake directory not found

But ${CYGCMAKE_SOURCE} was set as:

CYGCMAKE_SOURCE="${S}/cmake"

So, it seems to me that there is at least a bug into the
documentation, because ${CYGCMAKE_SOURCE} does not seem to allow the
use of {S}.
I was able to make it working by writing:

CYGCMAKE_SOURCE="$(pwd)/${NAME}-${VERSION}-${RELEASE}.${ARCH}/src/${NAME}-${VERSION}/cmake"

but I don't know if this is the right way to do it and could be accepted or not.

Sincerely.

Il giorno gio 16 set 2021 alle ore 17:18 Carlo B.
<carlo.bramini@gmail.com> ha scritto:
>
> Hello,
> I'm trying to make a package for CYGWIN to provide liblo, but I'm
> having some difficulties.
> This library is available to the most used linux distributions (but
> not limited to), here there is the link to the one into a Debian as
> example:
>
> https://packages.debian.org/buster/liblo-dev
>
> I implemented a script for cygport but this is the output on the
> console when I execute it:
>
> $ cygport liblo.cygport all
> >>> Preparing liblo-0.31-1.x86_64
> >>> Unpacking source liblo-0.31.tar.gz
> >>> Preparing working source directory
> >>> Compiling liblo-0.31-1.x86_64
> *** ERROR: cygcmake: cmake directory not found
>
> The unique aspect of this library is that the CMakeLists.txt file is
> not into the root of the source tree, but it is located into a
> subfolder, see here:
>
> https://github.com/radarsat1/liblo/tree/master/cmake
>
> So, in my script, I configured ${CYGCMAKE_SOURCE} to point there, but
> it still cannot make it working. Since it seems that I'm not able to
> make it working in any way, I'm wondering if the behaviour of this
> variable has been ever tested, so I'm writing here with the hope to
> receive a suggestion.
>
> Thank you very much for your support.
>
> =======> And this is the content of my liblo.cygport file:
>
> inherit cmake
>
> NAME="liblo"
> VERSION=0.31
> RELEASE=1
> CATEGORY="Audio"
> SUMMARY="Open Sound Control protocol for POSIX systems"
> DESCRIPTION="Open Sound Control (OSC) is a protocol for communication
>  among computers, sound synthesizers, and other multimedia devices that
>  is optimized for modern networking technology."
> HOMEPAGE="http://liblo.sourceforge.net/"
> SRC_URI="http://downloads.sourceforge.net/liblo/liblo-${VERSION}.tar.gz"
>
> PKG_NAMES="liblo1 liblo-devel"
> PKG_IGNORE="
>     usr/share/doc/liblo/AUTHORS
>     usr/share/doc/liblo/COPYING
>     usr/share/doc/liblo/ChangeLog
>     usr/share/doc/liblo/NEWS
>     usr/share/doc/liblo/README
>     usr/share/doc/liblo/TODO
> "
>
> liblo1_CATEGORY="Libs"
> liblo1_SUMMARY="${SUMMARY}"
> liblo1_CONTENTS="
>     usr/bin/cyglo-7.dll
>     usr/bin/oscdump.exe
>     usr/bin/oscsend.exe
> "
> liblo_devel_CATEGORY="Libs"
> liblo_devel_SUMMARY="${SUMMARY}"
> liblo_devel_CONTENTS="
>     usr/include/lo/*
>     usr/lib/liblo.dll.a
>     usr/lib/pkgconfig/liblo.pc
>     usr/lib/cmake/liblo/libloConfig.cmake
> "
>
> CYGCMAKE_SOURCE="${S}/cmake"

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

* Re: cygport: CYGCMAKE_SOURCE seems to have no effect.
  2021-09-17  9:37 ` Carlo B.
@ 2021-09-17 15:41   ` Brian Inglis
  2021-09-17 20:57     ` Carlo B.
  0 siblings, 1 reply; 6+ messages in thread
From: Brian Inglis @ 2021-09-17 15:41 UTC (permalink / raw)
  To: cygwin

On 2021-09-17 03:37, Carlo B. via Cygwin wrote:
> in addition to my previous message, I did some experiments with the
> code of cygport and I added these lines to
> /usr/share/cygport/cygclass/cmake.cygclass:
> 
> echo "CYGCMAKE_SOURCE=${CYGCMAKE_SOURCE}"
> echo "B=${B}"
> echo "S=${S}"
> echo "PWD=${PWD}"
> 
> and the result is:
> 
> CYGCMAKE_SOURCE=/cmake

If you look at the Cygport Install Functions docs for docinto, ...into, 
defining target directories, you would see that an "absolute" path 
disables cygport from prefixing a subdirectory name with the package 
name, etc. so CMakeLists.txt is (linked) under ${S,B}/cmake, and cygport 
will automatically find that, so it should not be required or specified:

	https://cygwin.github.io/cygport/cmake_cygclass.html#robo767

"This is only necessary when the top-level CMakeLists.txt is not in $S 
and cygcmake is not being run in the same subdirectory of $B which under 
$S contains the top-level CMakeLists.txt. (IOW if the top-level 
CMakeLists.txt is in $S/unix and cygcmake is run from $B/unix, setting 
CYGCMAKE_SOURCE would not be necessary.)"

as cygport would find CMakeLists.txt in $S/cmake/ so it would copy or 
link those under $B, and run cygcmake under the equivalent subdirectory.

> B=/home/carlo/liblo.src/liblo-0.31-1.x86_64/build
> S=/home/carlo/liblo.src/liblo-0.31-1.x86_64/src/liblo-0.31
> PWD=/home/carlo/liblo.src/liblo-0.31-1.x86_64/build
> *** ERROR: cygcmake: cmake directory not found
> 
> But ${CYGCMAKE_SOURCE} was set as:
> 
> CYGCMAKE_SOURCE="${S}/cmake"
> 
> So, it seems to me that there is at least a bug into the
> documentation, because ${CYGCMAKE_SOURCE} does not seem to allow the
> use of {S}.

CMakeLists.txt is found automatically by cygport if it is under $S, as 
that is the documented assumption (see above).

> I was able to make it working by writing:
> 
> CYGCMAKE_SOURCE="$(pwd)/${NAME}-${VERSION}-${RELEASE}.${ARCH}/src/${NAME}-${VERSION}/cmake"
> 
> but I don't know if this is the right way to do it and could be accepted or not.

-- 
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.]


>> =======> And this is the content of my liblo.cygport file:
>>
>> inherit cmake
>>
>> NAME="liblo"
>> VERSION=0.31
>> RELEASE=1
>> CATEGORY="Audio"
>> SUMMARY="Open Sound Control protocol for POSIX systems"
>> DESCRIPTION="Open Sound Control (OSC) is a protocol for communication
>>   among computers, sound synthesizers, and other multimedia devices that
>>   is optimized for modern networking technology."
>> HOMEPAGE="http://liblo.sourceforge.net/"
>> SRC_URI="http://downloads.sourceforge.net/liblo/liblo-${VERSION}.tar.gz"
>>
>> PKG_NAMES="liblo1 liblo-devel"
>> PKG_IGNORE="
>>      usr/share/doc/liblo/AUTHORS
>>      usr/share/doc/liblo/COPYING
>>      usr/share/doc/liblo/ChangeLog
>>      usr/share/doc/liblo/NEWS
>>      usr/share/doc/liblo/README
>>      usr/share/doc/liblo/TODO
>> "
>>
>> liblo1_CATEGORY="Libs"
>> liblo1_SUMMARY="${SUMMARY}"
>> liblo1_CONTENTS="
>>      usr/bin/cyglo-7.dll
>>      usr/bin/oscdump.exe
>>      usr/bin/oscsend.exe
>> "
>> liblo_devel_CATEGORY="Libs"
>> liblo_devel_SUMMARY="${SUMMARY}"
>> liblo_devel_CONTENTS="
>>      usr/include/lo/*
>>      usr/lib/liblo.dll.a
>>      usr/lib/pkgconfig/liblo.pc
>>      usr/lib/cmake/liblo/libloConfig.cmake
>> "
>>
>> CYGCMAKE_SOURCE="${S}/cmake"



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

* Re: cygport: CYGCMAKE_SOURCE seems to have no effect.
  2021-09-17 15:41   ` Brian Inglis
@ 2021-09-17 20:57     ` Carlo B.
  0 siblings, 0 replies; 6+ messages in thread
From: Carlo B. @ 2021-09-17 20:57 UTC (permalink / raw)
  To: cygwin

[-- Attachment #1: Type: text/plain, Size: 1963 bytes --]

Hello,

> If you look at the Cygport Install Functions docs for docinto, ...into,
> defining target directories, you would see that an "absolute" path
> disables cygport from prefixing a subdirectory name with the package
> name, etc. so CMakeLists.txt is (linked) under ${S,B}/cmake, and cygport
> will automatically find that, so it should not be required or specified:
>
>         https://cygwin.github.io/cygport/cmake_cygclass.html#robo767
>
cygport does not find it.

If CYGCMAKE_SOURCE is not defined into my liblo.cygport, it prints:
*** ERROR: cygcmake: cmake directory not found

If CYGCMAKE_SOURCE is defined as "${S}/cmake", it prints again:
*** ERROR: cygcmake: cmake directory not found

If CYGCMAKE_SOURCE is defined as an absolute path like I have written
in my previous message, it finally works.

> "This is only necessary when the top-level CMakeLists.txt is not in $S
> and cygcmake is not being run in the same subdirectory of $B which under
> $S contains the top-level CMakeLists.txt. (IOW if the top-level
> CMakeLists.txt is in $S/unix and cygcmake is run from $B/unix, setting
> CYGCMAKE_SOURCE would not be necessary.)"

"This is only necessary when the top-level CMakeLists.txt is not in $S"
true, it is under "$S/cmake"

"and cygcmake is not being run in the same subdirectory of $B which
under $S contains the top-level CMakeLists.txt."
also true in my opinion.

It could be possible that I have not understood something, but however
there is also an easy way:
- my cygport file was included in my first email and also attached
into this last one.

- the source archive can be downloaded from this direct link:
http://downloads.sourceforge.net/liblo/liblo-0.31.tar.gz

- put both them into a directory and execute:

cygport liblo.cygport all

and you will see with your eyes that it does not work.
Perhaps, there are other extra things to write in my cygport that I
don't know about.

thank you very much for your support.
Sincerely.

[-- Attachment #2: liblo.cygport --]
[-- Type: application/octet-stream, Size: 1002 bytes --]

inherit cmake

NAME="liblo"
VERSION=0.31
RELEASE=1
CATEGORY="Audio"
SUMMARY="Open Sound Control protocol for POSIX systems"
DESCRIPTION="Open Sound Control (OSC) is a protocol for communication
 among computers, sound synthesizers, and other multimedia devices that
 is optimized for modern networking technology."
HOMEPAGE="http://liblo.sourceforge.net/"
SRC_URI="http://downloads.sourceforge.net/liblo/liblo-${VERSION}.tar.gz"

PKG_NAMES="liblo1 liblo-devel"
PKG_IGNORE="
	usr/share/doc/liblo/AUTHORS
	usr/share/doc/liblo/COPYING
	usr/share/doc/liblo/ChangeLog
	usr/share/doc/liblo/NEWS
	usr/share/doc/liblo/README
	usr/share/doc/liblo/TODO
"

liblo1_CATEGORY="Libs"
liblo1_SUMMARY="${SUMMARY}"
liblo1_CONTENTS="
	usr/bin/cyglo-7.dll
	usr/bin/oscdump.exe
	usr/bin/oscsend.exe
"
liblo_devel_CATEGORY="Libs"
liblo_devel_SUMMARY="${SUMMARY}"
liblo_devel_CONTENTS="
	usr/include/lo/*
	usr/lib/liblo.dll.a
	usr/lib/pkgconfig/liblo.pc
	usr/lib/cmake/liblo/libloConfig.cmake
"

CYGCMAKE_SOURCE="${S}/cmake"

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

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

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-16 15:18 cygport: CYGCMAKE_SOURCE seems to have no effect Carlo B.
2021-09-16 17:48 ` Brian Inglis
2021-09-17  8:18   ` Carlo B.
2021-09-17  9:37 ` Carlo B.
2021-09-17 15:41   ` Brian Inglis
2021-09-17 20:57     ` 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).