Re: [ITP] openh264 (2.3.1)

2023-02-20 Thread Jon Turney via Cygwin-apps

On 17/02/2023 08:49, Takashi Yano via Cygwin-apps wrote:

On Thu, 16 Feb 2023 19:24:24 +
Jon Turney wrote:

On 14/02/2023 21:21, Takashi Yano via Cygwin-apps wrote:

On Tue, 14 Feb 2023 17:41:16 +0100
ASSI wrote:

Takashi Yano via Cygwin-apps writes:

Thanks for the advice. I have revised the cygport file.


You are getting the file and the hash from the same unprotected source.
I was thinking you should put the hash into the cygport file and hence
the postinstall script.

Also note that the system doing the postinstall will not necessarily
have internet access, so you'll need to cope with errors that will
produce.


Thanks.

The new cygport file attached downloads md5hash during
the packaging process and embeds it into postinstall
script. Does this make sense?


Thanks.

So, this looks like it works, and meets the requirements.

Is md5 the only hash available?  This is not really considered "good
enough" any more.

As a thought-experiment, consider doing it slightly differently:

package contains:
- the headers
- a data file with the version (or maybe URL) and hash
- a script which can fetch (using above data) or remove the DLL
- postinstall and preremove scripts which invoke that script appropriately

(I think this means the post/pre scripts can be static, and packaged via
$C, rather than written by the cygport itself)

What do you think of that?


Thanks for the advice!

So, how about this one?

package contains:
- the headers
- the data files with the version and hash
- postinstall and preremove scripts which fetch (using above data)
   and remove the DLL


Great, thanks.  I hope this means you think this is a better approach, 
rather than just humouring me :)


A few minor points:

* It seems like the empty dummy archive could be made with something 
like just:


  tar -Jcf ${SRC_URI} --files-from /dev/null

* If the postinstall failed somehow, the preremove script will fail 
trying to remove a file which doesn't exist.  It might be a good idea to 
use 'rm -f' to ensure that doesn't happen.


* I don't think you should need:


# Install postinstall/preremove scripts
mkdir -p ${D}/etc/postinstall  ${D}/etc/preremove
cp ${C}/lib${NAME}.postinstall ${D}/etc/postinstall/lib${NAME}.sh
cp ${C}/lib${NAME}.preremove ${D}/etc/preremove/lib${NAME}.sh



This should happen automatically if the files are in $C (and you can 
list them in CYGWIN_FILES or make them with cygwin.patch file to put 
them there)




Re: Heads up: Problems with parallel make

2023-02-20 Thread Ken Brown via Cygwin-apps

On 2/20/2023 6:29 PM, Ken Brown via Cygwin-apps wrote:

On 2/20/2023 5:00 PM, Ken Brown via Cygwin-apps wrote:

On 2/20/2023 2:12 PM, Marco Atzeri via Cygwin-apps wrote:

uploaded as test 4.4.0.91-1


following message is still present while missing in 4.4-1

make[1]: warning: jobserver unavailable: using -j1.  Add '+' to 
parent make rule.




and I do not see clear evidence of parallelism like in 4.4-1


I doubt if this is related to the pipe vs. fifo issue, but maybe you 
should test 4.4.0.90-1 to be sure.


Do you have a simple way to reproduce the problem?  For example, does 
it happen if you just make a toy cmake project?


Ignore what I said about 'make -j13 check' working right in the TeX Live 
build.  I just retried it and saw the "jobserver unavailable" message. 
When I saw several makes running at once, I think it was because of 
recursion, not parallelism.  So there's a real problem that can be 
reproduced without cmake.


I'm going to report this upstream, as a continuation of the upstream bug 
report that I filed earlier.


Ken


Re: Heads up: Problems with parallel make

2023-02-20 Thread Ken Brown via Cygwin-apps

On 2/20/2023 5:00 PM, Ken Brown via Cygwin-apps wrote:

On 2/20/2023 2:12 PM, Marco Atzeri via Cygwin-apps wrote:

uploaded as test 4.4.0.91-1


following message is still present while missing in 4.4-1

make[1]: warning: jobserver unavailable: using -j1.  Add '+' to 
parent make rule.




and I do not see clear evidence of parallelism like in 4.4-1


I doubt if this is related to the pipe vs. fifo issue, but maybe you 
should test 4.4.0.90-1 to be sure.


Do you have a simple way to reproduce the problem?  For example, does it 
happen if you just make a toy cmake project?


Ignore what I said about 'make -j13 check' working right in the TeX Live 
build.  I just retried it and saw the "jobserver unavailable" message. 
When I saw several makes running at once, I think it was because of 
recursion, not parallelism.  So there's a real problem that can be 
reproduced without cmake.


Ken


Re: Heads up: Problems with parallel make

2023-02-20 Thread Ken Brown via Cygwin-apps

On 2/20/2023 2:12 PM, Marco Atzeri via Cygwin-apps wrote:

uploaded as test 4.4.0.91-1


following message is still present while missing in 4.4-1

make[1]: warning: jobserver unavailable: using -j1.  Add '+' to parent 
make rule.




and I do not see clear evidence of parallelism like in 4.4-1


I doubt if this is related to the pipe vs. fifo issue, but maybe you 
should test 4.4.0.90-1 to be sure.


Do you have a simple way to reproduce the problem?  For example, does it 
happen if you just make a toy cmake project?


Ken


Re: Heads up: Problems with parallel make

2023-02-20 Thread Ken Brown via Cygwin-apps

On 2/20/2023 2:12 PM, Marco Atzeri via Cygwin-apps wrote:



On 20.02.2023 18:34, Marco Atzeri wrote:

On 20.02.2023 18:14, Ken Brown via Cygwin-apps wrote:

On 2/20/2023 12:00 PM, Achim Gratz via Cygwin-apps wrote:

Ken Brown via Cygwin-apps writes:

Thanks, Marco.  As expected, that fixes the problem for my test case
(building TeX Live).  Obviously it would be better if the make
developers would provide a configure option to use a pipe for the
jobserver, but this is a good workaround if they don't.


Does it actually do a parallel build?  I've quickly tested a cmake 
based

project with it and it completely serializes the build.  Reverting to
4.4 resolves that problem.




uploaded as test 4.4.0.91-1


following message is still present while missing in 4.4-1

make[1]: warning: jobserver unavailable: using -j1.  Add '+' to parent 
make rule.




and I do not see clear evidence of parallelism like in 4.4-1



It does for my build of TeX Live.  I just tried 'make -j13 check', 
and I saw many make processes and many sh processes running at once.  
[But I'm currently testing a self-built make 4.4.0.91.]


Ken




How are you configuring your build ?


Just a plain vanilla build, no configure options.

Ken


Re: Heads up: Problems with parallel make

2023-02-20 Thread Marco Atzeri via Cygwin-apps




On 20.02.2023 18:34, Marco Atzeri wrote:

On 20.02.2023 18:14, Ken Brown via Cygwin-apps wrote:

On 2/20/2023 12:00 PM, Achim Gratz via Cygwin-apps wrote:

Ken Brown via Cygwin-apps writes:

Thanks, Marco.  As expected, that fixes the problem for my test case
(building TeX Live).  Obviously it would be better if the make
developers would provide a configure option to use a pipe for the
jobserver, but this is a good workaround if they don't.


Does it actually do a parallel build?  I've quickly tested a cmake based
project with it and it completely serializes the build.  Reverting to
4.4 resolves that problem.




uploaded as test 4.4.0.91-1


following message is still present while missing in 4.4-1

make[1]: warning: jobserver unavailable: using -j1.  Add '+' to parent 
make rule.




and I do not see clear evidence of parallelism like in 4.4-1



It does for my build of TeX Live.  I just tried 'make -j13 check', and 
I saw many make processes and many sh processes running at once.  [But 
I'm currently testing a self-built make 4.4.0.91.]


Ken




How are you configuring your build ?


Re: Heads up: Problems with parallel make

2023-02-20 Thread Brian Inglis via Cygwin-apps

On 2023-02-20 10:14, Ken Brown via Cygwin-apps wrote:

On 2/20/2023 12:00 PM, Achim Gratz via Cygwin-apps wrote:

Ken Brown via Cygwin-apps writes:

Thanks, Marco.  As expected, that fixes the problem for my test case
(building TeX Live).  Obviously it would be better if the make
developers would provide a configure option to use a pipe for the
jobserver, but this is a good workaround if they don't.


Does it actually do a parallel build?  I've quickly tested a cmake based
project with it and it completely serializes the build.  Reverting to
4.4 resolves that problem.


It does for my build of TeX Live.  I just tried 'make -j13 check', and I saw 
many make processes and many sh processes running at once.  [But I'm currently 
testing a self-built make 4.4.0.91.]


Definitely parallel jobs visible in top with make 4.4.0.90-1

--
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 à retirerbut when there is no more to cut
-- Antoine de Saint-Exupéry



Re: Heads up: Problems with parallel make

2023-02-20 Thread Marco Atzeri via Cygwin-apps

On 20.02.2023 18:14, Ken Brown via Cygwin-apps wrote:

On 2/20/2023 12:00 PM, Achim Gratz via Cygwin-apps wrote:

Ken Brown via Cygwin-apps writes:

Thanks, Marco.  As expected, that fixes the problem for my test case
(building TeX Live).  Obviously it would be better if the make
developers would provide a configure option to use a pipe for the
jobserver, but this is a good workaround if they don't.


Does it actually do a parallel build?  I've quickly tested a cmake based
project with it and it completely serializes the build.  Reverting to
4.4 resolves that problem.


I noticed the same with another cmake build

make[1]: warning: jobserver unavailable: using -j1.  Add '+' to parent 
make rule.


but I do not see the message on Autoconf build



It does for my build of TeX Live.  I just tried 'make -j13 check', and I 
saw many make processes and many sh processes running at once.  [But I'm 
currently testing a self-built make 4.4.0.91.]


Ken


I will build it and test again

Regards
Marco


Re: Heads up: Problems with parallel make

2023-02-20 Thread Ken Brown via Cygwin-apps

On 2/20/2023 12:00 PM, Achim Gratz via Cygwin-apps wrote:

Ken Brown via Cygwin-apps writes:

Thanks, Marco.  As expected, that fixes the problem for my test case
(building TeX Live).  Obviously it would be better if the make
developers would provide a configure option to use a pipe for the
jobserver, but this is a good workaround if they don't.


Does it actually do a parallel build?  I've quickly tested a cmake based
project with it and it completely serializes the build.  Reverting to
4.4 resolves that problem.


It does for my build of TeX Live.  I just tried 'make -j13 check', and I 
saw many make processes and many sh processes running at once.  [But I'm 
currently testing a self-built make 4.4.0.91.]


Ken


Re: Heads up: Problems with parallel make

2023-02-20 Thread Achim Gratz via Cygwin-apps
Ken Brown via Cygwin-apps writes:
> Thanks, Marco.  As expected, that fixes the problem for my test case
> (building TeX Live).  Obviously it would be better if the make
> developers would provide a configure option to use a pipe for the
> jobserver, but this is a good workaround if they don't.

Does it actually do a parallel build?  I've quickly tested a cmake based
project with it and it completely serializes the build.  Reverting to
4.4 resolves that problem.


Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

Waldorf MIDI Implementation & additional documentation:
http://Synth.Stromeko.net/Downloads.html#WaldorfDocs


Re: Heads up: Problems with parallel make

2023-02-20 Thread Ken Brown via Cygwin-apps

On 2/16/2023 9:21 PM, Ken Brown via Cygwin-apps wrote:

On 2/16/2023 2:47 AM, Marco Atzeri via Cygwin-apps wrote:

On 15.02.2023 19:09, Ken Brown via Cygwin-apps wrote:

On 2/14/2023 4:23 PM, Marco Atzeri via Cygwin-apps wrote:

On 14.02.2023 17:49, Brian Inglis via Cygwin-apps wrote:
There is a make 4.4.1 release candidate 4.40.0.90 with patches that 
may help to deal with this:


 https://alpha.gnu.org/gnu/make/make-4.4.0.90.tar.lz{,.sig}

https://sv.gnu.org/bugs/index.php?group=make_id=111_release_id=110=custom



test version built and on the way


The problems I reported with make 4.4 still exist in 4.4.0.90.

Until someone can figure out why this happens, you might want to 
consider building make so that it doesn't default to using a FIFO for 
its jobserver.  I suggested to the make developers that they provide 
a configure option for this purpose.  If they don't do this, I think 
you could accomplish the same thing by configuring make with 
ac_cv_func_mkfifo=no.


Ken


version 2 uploaded.


Thanks, Marco.  As expected, that fixes the problem for my test case 
(building TeX Live).  Obviously it would be better if the make 
developers would provide a configure option to use a pipe for the 
jobserver, but this is a good workaround if they don't.


Just to finish this off, there's now a new release candidate 4.4.0.91 
for make, which makes the jobserver use a pipe by default on Cygwin. 
You can override this default when building make by defining 
JOBSERVER_USE_FIFO to 1, and you can override it when running make by 
using the make option --jobserver-style=fifo.  But there's no longer a 
need to build make with ac_cv_func_mkfifo=no, and there's no longer a 
need to use --jobserver-style=pipe when running make.


I'm very impressed with how responsive the make developer (Paul Smith) was.

Ken


Re: [ITP] openh264 (2.3.1)

2023-02-20 Thread Takashi Yano via Cygwin-apps
On Sun, 19 Feb 2023 15:37:47 +
Jon Turney wrote:
> On 17/02/2023 08:49, Takashi Yano via Cygwin-apps wrote:
> > So, how about this one?
> > 
> > package contains:
> > - the headers
> > - the data files with the version and hash
> > - postinstall and preremove scripts which fetch (using above data)
> >and remove the DLL
> 
> Great, thanks.  I hope this means you think this is a better approach, 
> rather than just humouring me :)

Absolutely yes :)

> A few minor points:
> 
> * It seems like the empty dummy archive could be made with something 
> like just:
> 
>tar -Jcf ${SRC_URI} --files-from /dev/null

Just doing this causes mismatch of SRC_DIR with actual source
package. However, making ${NAME}-{$VERSION}/dummy file does not
seem necessary.

So, I modified the cygport file as follows.
mkdir -p ${NAME}-${VERSION}
tar acf ${SRC_URI} ${NAME}-${VERSION}
rm -rf ${NAME}-${VERSION}

> * If the postinstall failed somehow, the preremove script will fail 
> trying to remove a file which doesn't exist.  It might be a good idea to 
> use 'rm -f' to ensure that doesn't happen.

Indeed. Fixed. Thanks!

> * I don't think you should need:
> 
> > # Install postinstall/preremove scripts
> > mkdir -p ${D}/etc/postinstall  ${D}/etc/preremove
> > cp ${C}/lib${NAME}.postinstall ${D}/etc/postinstall/lib${NAME}.sh
> > cp ${C}/lib${NAME}.preremove ${D}/etc/preremove/lib${NAME}.sh
> > 
> 
> This should happen automatically if the files are in $C (and you can 
> list them in CYGWIN_FILES or make them with cygwin.patch file to put 
> them there)

That's what I understood from
https://cygwin.github.io/cygport/masterindex.html,
however, actually libopenh264.{postinstall,preremove} are
not installed during install process by cygport 0.36.0
even though openh264-2.3.1-1.cygwin.patch exists.

Could you please give me a hint how I can make it work?

-- 
Takashi Yano