Re: Setup reports "http://mirrors.kernel.org/sourceware/cygwin/" no longer supported
On 19.07.2020 06:42, Matt Seitz wrote: From: Cygwin On Behalf Of Brian Inglis On 2020-07-18 19:09, Matt Seitz wrote: When I ran Setup today to get the latest Cygwin, Setup reported an error: Warning: One or more mirrors you have selected is/are not on the list of official Cygwin mirrors any more. It/They may be out of date or missing some packages. For more info check: https://cygwin.com/mirrors-report.html the status counts agree with the server statuses in the tables below. Most issues are transient or fairly short term; if the mirror status changes to o out-of-date, you may want to reach out to the mirror host support and report an issue; if it is a weekend, there may be no support available. Thanks for your help! I just checked the page, and didn't see any errors reported for "http://mirrors.kernel.org/sourceware/cygwin/;. I downloaded and ran Setup again and still saw the same error. choose another mirror, for the time being. There is no lack of mirrors in USA https://cygwin.com/mirrors.html -- 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
Re: Setup reports "http://mirrors.kernel.org/sourceware/cygwin/" no longer supported
On Sun, 19 Jul 2020 04:42:33 + Matt Seitz wrote: > > From: Cygwin On Behalf Of Brian Inglis > > > > On 2020-07-18 19:09, Matt Seitz wrote: > > > When I ran Setup today to get the latest Cygwin, Setup reported an error: > > > > > > Warning: One or more mirrors you have selected is/are not on the list of > > official Cygwin mirrors any more. It/They may be out of date or missing > > some > > packages. > > > > For more info check: https://cygwin.com/mirrors-report.html > > the status counts agree with the server statuses in the tables below. > > Most issues are transient or fairly short term; if the mirror status > > changes to o > > out-of-date, you may want to reach out to the mirror host support and report > > an issue; if it is a weekend, there may be no support available. > > Thanks for your help! I just checked the page, and didn't see any errors > reported for "http://mirrors.kernel.org/sourceware/cygwin/;. I downloaded > and ran Setup again and still saw the same error. Please try https://mirrors.kernel.org/sourceware/cygwin/ rather than http://mirrors.kernel.org/sourceware/cygwin/ -- Takashi Yano -- 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
RE: Setup reports "http://mirrors.kernel.org/sourceware/cygwin/" no longer supported
> From: Cygwin On Behalf Of Brian Inglis > > On 2020-07-18 19:09, Matt Seitz wrote: > > When I ran Setup today to get the latest Cygwin, Setup reported an error: > > > > Warning: One or more mirrors you have selected is/are not on the list of > official Cygwin mirrors any more. It/They may be out of date or missing some > packages. > > For more info check: https://cygwin.com/mirrors-report.html > the status counts agree with the server statuses in the tables below. > Most issues are transient or fairly short term; if the mirror status changes > to o > out-of-date, you may want to reach out to the mirror host support and report > an issue; if it is a weekend, there may be no support available. Thanks for your help! I just checked the page, and didn't see any errors reported for "http://mirrors.kernel.org/sourceware/cygwin/;. I downloaded and ran Setup again and still saw the same error. -- 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
Re: Cygwin PHP (all available versions) has a hard 4MB memory limit
On 7/17/2020 5:39 PM, km2z7kca0oge--- via Cygwin wrote: Hi there, Recently I've noticed that PHP seems have to hard 4MB memory limit, [...] Example script: ``` http://mirror.cwcs.co.uk/centos/8.2.2004/isos/x86_64/CentOS-8.2.2004-x86_64-dvd1.iso'); // A large file such as an ISO. ``` Output: $ php test.php 128M PHP Fatal error: Out of memory (allocated 4194304) (tried to allocate 2097184 bytes) in /c/Users/JackBlower/tmp-safe/test.php on line 5 Thanks for the simple reproduction steps. I've run this under gdb, and the function zend_mm_alloc_huge, which tries to get a chunk of memory from the system, seems to be failing when it tries to increase the zend heap from 4MB to 6MB. I'm in the process of building an unoptimized version of php to make debugging easier, in the hope of figuring out why the function is failing. Ken -- 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
Re: ssh not working for past few months?
On 2020-07-18 17:29, Lester Ingber via Cygwin wrote: > Is anyone else having problems with ssh -- a most basic tool? > > The past few months ssh has not been working for me. I have had to use > WSL Bash. Windows installs its own ssh client and sshd server when WSL is installed: before starting Cygwin services, I check for and stop the following services: ssh ssh-agent sshbroker sshproxy sshd sshdbroker sshdproxy -- 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 IEC units and prefixes, physical quantities in SI.] -- 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
Re: Setup reports "http://mirrors.kernel.org/sourceware/cygwin/" no longer supported
On 2020-07-18 19:09, Matt Seitz wrote: > When I ran Setup today to get the latest Cygwin, Setup reported an error: > > Warning: One or more mirrors you have selected is/are not on the list of > official Cygwin mirrors any more. It/They may be out of date or missing some > packages. For more info check: https://cygwin.com/mirrors-report.html the status counts agree with the server statuses in the tables below. Most issues are transient or fairly short term; if the mirror status changes to o out-of-date, you may want to reach out to the mirror host support and report an issue; if it is a weekend, there may be no support available. -- 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 IEC units and prefixes, physical quantities in SI.] -- 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
Setup reports "http://mirrors.kernel.org/sourceware/cygwin/" no longer supported
When I ran Setup today to get the latest Cygwin, Setup reported an error: Warning: One or more mirrors you have selected is/are not on the list of official Cygwin mirrors any more. It/They may be out of date or missing some packages. cygcheck.out Description: cygcheck.out -- 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
Re: [ANNOUNCEMENT] Test: cmake-3.17.3-1
Date: Sat, 18 Jul 2020 07:47:40 +0200 From: Marco Atzeri via Cygwin > On 18.07.2020 02:45, Lemures Lemniscati via Cygwin wrote: > > > > > Hi! > > > > Thank you for updating cmake. > > > > Some errors'll occur in Source/kwsys/SystemInformation.cxx > > since /proc/meminfo in Cygwin has only these fields > > > > $ cat /proc/meminfo > > MemTotal: 20824372 kB > > MemFree:13545156 kB > > HighTotal: 0 kB > > HighFree: 0 kB > > LowTotal: 20824372 kB > > LowFree:13545156 kB > > SwapTotal: 3145728 kB > > SwapFree:3131252 kB > > > > In particular, we have no MemAvailable field in Cygwin. > > > > > > > > I attached a patch 0001-3.17.3-cpuinfo_suppl.patch for this issue, > > which should be applied after 3.17.3-cpuinfo.patch > > > > The patch separates a case defined(__CYGWIN__) from a case defined(__linux) > > > > > > Regards, > > > > Lem > > > > > Thanks Lem > > appreciated, I will add it for -2 before final release. > > If you find anything else, let me know Thank you, Marco. LGTM. Regards, Lem -- 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
Re: ssh not working for past few months?
On 7/18/2020 6:29 PM, Lester Ingber via Cygwin wrote: Is anyone else having problems with ssh -- a most basic tool? No. It is working as expected. $ cygcheck -c openssh Cygwin Package Information Package VersionStatus openssh 8.3p1-1OK $ ssh -p ... Linux ... 3.10.105 #25426 SMP Tue May 12 04:52:34 CST 2020 x86_64 ... Last login: Sat Jul 18 12:08:14 2020 from 192.168.10.3 ... -- R. Berber -- 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
ssh not working for past few months?
Is anyone else having problems with ssh -- a most basic tool? The past few months ssh has not been working for me. I have had to use WSL Bash. Lester -- 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
graph (plotutils) seg-faulting
Hi, So i noticed graph wasn't doing anything, i could even get it to respond to the help argument. I attached strace to it, and it shows that it was seg-faulting. I _just_ did an update, specifically to see if that would fix it and it did not. 1 could someone reproduce this ? 2 what should i do for a bug report ? I was running graph in a terminal in X not in a terminal window under win10. Thanks, -- Brian -- 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
Re: [ANNOUNCEMENT] Updated: gnuplot-5.4.0-1
On 2020-07-18 14:09, Achim Gratz wrote: > Brian Inglis writes: >> Need a 5.4.0-2 soon! > > Which part of "it's fixed" is confusing you? Look in the release > package, not the RC2. Sorry - thought I was looking at a recent setup.ini but not recent enough, and didn't take in there was only test no curr, and rc2 was not just part of the upstream release due to other distros' "decorative" version suffixes! My bad! Blame a brainworm or maybe just a Brian-worm! ;^> -- 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 IEC units and prefixes, physical quantities in SI.] -- 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
Re: [ANNOUNCEMENT] Updated: gnuplot-5.4.0-1
Brian Inglis writes: > Need a 5.4.0-2 soon! Which part of "it's fixed" is confusing you? Look in the release package, not the RC2. Regards, Achim. -- +<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+ Factory and User Sound Singles for Waldorf Blofeld: http://Synth.Stromeko.net/Downloads.html#WaldorfSounds -- 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
Re: [ANNOUNCEMENT] Updated: gnuplot-5.4.0-1
Am 18.07.2020 um 21:56 schrieb Achim Gratz: Thomas Wolff writes: Errh, which you explained above, sorry. Anyhow, gnuplot.exe did not get installed. OK, it's called gnuplot-base now. Is it a good idea to drop plain gnuplot as an invocation name? By the way, the next release of mintty will also support GNUTERM=tek40xx The postinstall scripts should install gnuplot as the alternative to the "highest functionality" package you have installed (gnuplot-base, gnuplot-X11, gnuplot-wxt or even gnuplot-qt5 as it were). If you've had installed the test packages before (when there was still a bug in those scripts) there might have been a bogus entry in the alternatives system that takes precedence, just remove it. rm /etc/alternatives/gnuplot and reinstalling gnuplot-base with setup fixes the issue, thanks Regards, Achim. -- 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
Re: [ITA] python-imaging
On 17.07.2020 23:25, Marco Atzeri wrote: On 17.07.2020 23:03, Hamish McIntyre-Bhatty via Cygwin-apps wrote: Okay. I've updated my test packages, and they are available at https://www.hamishmb.com/files/cygwin-temp/ as before. Please let me know if I'm now good to go or if there are any more issues. *bump* in case no one has seen. Hamish I have seen, but I am currently busy with some of mine packages, and my computer is not so fast to handle too many in parallel Regards Marco I change maintainership to you. Before uploading can you rebuild so to pick dependency on all version of python3x-olefile ? Regards Marco
Re: [ANNOUNCEMENT] Updated: gnuplot-5.4.0-1
On 2020-07-18 13:37, Brian Inglis wrote: > On 2020-07-18 11:45, Brian Inglis wrote: >> On 2020-07-18 10:45, Thomas Wolff wrote: >>> Am 18.07.2020 um 18:40 schrieb Thomas Wolff: Am 18.07.2020 um 18:31 schrieb Thomas Wolff: > Am 18.07.2020 um 09:55 schrieb Achim Gratz: >> Gnuplot version 5.4.0 is now available on Cygwin. The upstream release >> notes are available at: >> http://www.gnuplot.info/ReleaseNotes_5_4.html >> Cygwin Notes > >> Depending on which packages you install running plain >> "gnuplot" will dispatch different executables via the alternatives >> system. > > running setup, gnuplot-base is updated from 5.4 rc2 to 5.4, but package > gnuplot has vanished. > Errh, which you explained above, sorry. Anyhow, gnuplot.exe did not get installed. > >>> OK, it's called gnuplot-base now. Is it a good idea to drop plain gnuplot >>> as an >>> invocation name? > >> Release notes suggest there should be a file /var/lib/alternatives/gnuplot to >> define a symlink /bin/gnuplot to /etc/alternatives/gnuplot and that symlinks >> to >> /bin/gnuplot-base. >> >> Please check if /etc/postinstall/gnuplot.sh.done exists and completed >> successfully in /var/log/setup.log.full or /var/log/setup.log and the >> alternatives were created successfully, as above. > > Script to setup postinstall alternatives is actually called gnuplot-base.dash > and the executable name does not look as if alternatives will use it: > > $ tar -x -O \ > -f mirror/x86_64/release/gnuplot/gnuplot-base/gnuplot-base-5.4.rc2-0.tar.xz \ > etc/postinstall/gnuplot-base.dash > /usr/sbin/alternatives --install /usr/bin/gnuplot gnuplot > /usr/bin/gnuplot-{BB}.exe 10 > > AFAIK alternatives is not going to do anything special with > gnuplot-*{BB}*.exe: > perhaps intended to be generated with "*$*{BB}" == "base" but missing *$*? Yup, should have checked further earlier - missing *$* before {BB} in postinstall/preremove alternatives script generation: $ fgrep -C1 alternatives gnuplot-5.4.rc2-0.src/gnuplot-5.4.rc2-0.cygport cat > ${PN}-${BB}.postinstall < ${PN}-${BB}.preremove
Re: [ANNOUNCEMENT] Updated: gnuplot-5.4.0-1
Brian Inglis writes: > Script to setup postinstall alternatives is actually called gnuplot-base.dash > and the executable name does not look as if alternatives will use it: That was an error in the test packages that has since been fixed and had been noted in the announcement of the test package. It sometimes helps to read these announcements… Regards, Achim. -- +<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+ SD adaptation for Waldorf rackAttack V1.04R1: http://Synth.Stromeko.net/Downloads.html#WaldorfSDada -- 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
Re: [ANNOUNCEMENT] Updated: gnuplot-5.4.0-1
Thomas Wolff writes: >> Errh, which you explained above, sorry. Anyhow, gnuplot.exe did not >> get installed. > OK, it's called gnuplot-base now. Is it a good idea to drop plain > gnuplot as an invocation name? > By the way, the next release of mintty will also support GNUTERM=tek40xx The postinstall scripts should install gnuplot as the alternative to the "highest functionality" package you have installed (gnuplot-base, gnuplot-X11, gnuplot-wxt or even gnuplot-qt5 as it were). If you've had installed the test packages before (when there was still a bug in those scripts) there might have been a bogus entry in the alternatives system that takes precedence, just remove it. Regards, Achim. -- +<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+ SD adaptation for Waldorf rackAttack V1.04R1: http://Synth.Stromeko.net/Downloads.html#WaldorfSDada -- 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
Re: [ANNOUNCEMENT] Updated: gnuplot-5.4.0-1
On 2020-07-18 11:45, Brian Inglis wrote: > On 2020-07-18 10:45, Thomas Wolff wrote: >> Am 18.07.2020 um 18:40 schrieb Thomas Wolff: >>> Am 18.07.2020 um 18:31 schrieb Thomas Wolff: Am 18.07.2020 um 09:55 schrieb Achim Gratz: > Gnuplot version 5.4.0 is now available on Cygwin. The upstream release > notes are available at: > http://www.gnuplot.info/ReleaseNotes_5_4.html > Cygwin Notes > Depending on which packages you install running plain > "gnuplot" will dispatch different executables via the alternatives > system. running setup, gnuplot-base is updated from 5.4 rc2 to 5.4, but package gnuplot has vanished. >>> Errh, which you explained above, sorry. Anyhow, gnuplot.exe did not get >>> installed. >> OK, it's called gnuplot-base now. Is it a good idea to drop plain gnuplot as >> an >> invocation name? > Release notes suggest there should be a file /var/lib/alternatives/gnuplot to > define a symlink /bin/gnuplot to /etc/alternatives/gnuplot and that symlinks > to > /bin/gnuplot-base. > > Please check if /etc/postinstall/gnuplot.sh.done exists and completed > successfully in /var/log/setup.log.full or /var/log/setup.log and the > alternatives were created successfully, as above. Script to setup postinstall alternatives is actually called gnuplot-base.dash and the executable name does not look as if alternatives will use it: $ tar -x -O \ -f mirror/x86_64/release/gnuplot/gnuplot-base/gnuplot-base-5.4.rc2-0.tar.xz \ etc/postinstall/gnuplot-base.dash /usr/sbin/alternatives --install /usr/bin/gnuplot gnuplot /usr/bin/gnuplot-{BB}.exe 10 AFAIK alternatives is not going to do anything special with gnuplot-*{BB}*.exe: perhaps intended to be generated with "*$*{BB}" == "base" but missing *$*? -- 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 IEC units and prefixes, physical quantities in SI.] -- 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
Re: [ANNOUNCEMENT] Updated: gnuplot-5.4.0-1
On 2020-07-18 10:45, Thomas Wolff wrote: > Am 18.07.2020 um 18:40 schrieb Thomas Wolff: >> Am 18.07.2020 um 18:31 schrieb Thomas Wolff: >>> Am 18.07.2020 um 09:55 schrieb Achim Gratz: Gnuplot version 5.4.0 is now available on Cygwin. The upstream release notes are available at: http://www.gnuplot.info/ReleaseNotes_5_4.html Cygwin Notes The tutorial has been removed from the 5.4 branch of gnuplot, so it is no longer available in the package. The ggi terminal has been dropped from the build. I am considering dropping both the gpic and the mif terminal in a further update as well. The wxt terminal is now available. The qt terminal still doesn't work on Cygwin due to either a Cygwin or Qt5 bug that is still under investigation. If you want to help, please install the gnuplot-qt5 package and try to debug it. The packaging has been changed to allow more fine-grained control over dependencies. Depending on which packages you install running plain "gnuplot" will dispatch different executables via the alternatives system. The gnuplot-base package provides no GUI terminal at all and will replace the gnuplot package unless you chose to install one of the other feature packages, this variant is always directly available as gnuplot-base. This variant is most useful for scripted gnuplot invocations and for using it interactively in MinTTY with the sixelgd terminal. The gnuplot-X11 package resembles the previous gnuplot package most closely, the executable for this variant is gnuplot-X11 and depends on a relatively small number of X11 libraries. The gnuplot-wx package adds the wxt terminal and retains the X11 terminal. The executable for this variant is gnuplot-wx and it depends on an extensive list of GNOME libraries. The gnuplot-qt package provides the qt terminal and retains the X11 terminal. The executable for this variant is gnuplot-qt5 and of course depends on Qt5 libraries. Please note that while gnuplot-qt5 does build, the qt terminal does not actually work yet, see above. >>> running setup, gnuplot-base is updated from 5.4 rc2 to 5.4, but package >>> gnuplot has vanished. >> Errh, which you explained above, sorry. Anyhow, gnuplot.exe did not get >> installed. > OK, it's called gnuplot-base now. Is it a good idea to drop plain gnuplot as > an > invocation name? Release notes suggest there should be a file /var/lib/alternatives/gnuplot to define a symlink /bin/gnuplot to /etc/alternatives/gnuplot and that symlinks to /bin/gnuplot-base. Please check if /etc/postinstall/gnuplot.sh.done exists and completed successfully in /var/log/setup.log.full or /var/log/setup.log and the alternatives were created successfully, as above. -- 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 IEC units and prefixes, physical quantities in SI.] -- 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
Re: Cygwin PHP (all available versions) has a hard 4MB memory limit
On 2020-07-18 09:33, km2z7kca0oge--- via Cygwin wrote: >> You told us nothing about what versions of Windows, Cygwin, and PHP you are >> running, so WAG, either: > Wow Brian, what a rude response. I definitely followed the problem reporting > guide, and didn't realise you'd need information overload that probably > doesn't relate to the case at hand. When reporting bugs I always give as much > info as I believe is needed in helping, there's no need to snap. You did not specify Windows, Cygwin, Web server type, PHP, or Zend versions or include the *required* cygcheck.out attachment which shows all this. Many problems are because Cygwin and/or package releases have not been upgraded for weeks, months, or even years, or reports do not include verbatim commands and output, which may contain or clearly show symptoms of obvious errors, or suggest a reproducible test case. Most problems are unique to the reporter's system, otherwise others would have reported it, and it would be known, and possibly fixed by volunteer maintainers. More information than one might think is often required to diagnose the problem with your unique situation and suggest a solution or provide a fix. Many of the most knowledgeable and experienced volunteers providing support will not even look at emails which don't attach a plain text cygcheck.out, from which they can often diagnose a problem, suggest a workaround, further diagnostic steps, or provide a fix. Others of us try to nudge people into providing sufficient information so that those with the most relevant knowledge and experience may take a look at the issue, if they have time available, and suggest a further diagnostic, configuration change, or provide a fix. > I gave lots of information, such as: > - It applies to all bundled versions of PHP from the `setup-x86-64.exe`. > - That I've reproduced it on multiple (two) machines, including one of > those being a machine that has never had (and so a fresh install of) Cygwin > with just PHP added. > - Compiling PHP from source doesn't produce this issue so it's something to > do with the bundled version only > > For extra information, both machines tested are: > - Windows 10 64-bit (10.0.18363) > - One machine is 16GB, the other 8GB RAM. > - All PHP versions from the `setup-x86-64.exe` (7.3.4-1 and 7.1.16-1) >From below it appears you have also tested current PHP 7.3.7 with Zend 3.3.7. One common issue with Cygwin installations causing memory problems is when autorebase has not run or completed properly, so please try the following command on a failing Cygwin installation: $ awk '/0p_000_autorebase.dash"/,/zp_/' /var/log/setup.log.full and if you see the message: "The following DLLs couldn't be rebased because they were in use:" followed by a number of DLLs, please run: $ rebase-trigger full then ensure *ALL* Cygwin services and process are shut down: Win-R/taskmgr /7 OR ctrl-shift-esc - run Task Manager/select Details tab, right-click on column headings/Select columns/check Image path name/OK if required, sort by Image path name and see nothing starts with Cygwin installation root path, [possibly select menu Options/Set default tab/Details for next time,] and Exit), then rerun the Cygwin Setup program, and ensure that autorebase runs successfully to completion, as above. Another issue can be Windows memory management, so sometimes a system restart will resolve memory related problems, or if your system is under extreme memory loading at times (too little available/free) and you experience unexpected issues under load, you need to change Virtual memory paging management from Automatic to Custom by following: press Win-Break keys/select Advanced tab/select Performance Settings... button/ /select Advanced tab/select Virtual memory Change... button/ /Uncheck Automatically manage paging file size.../ /select a drive from the list/select Custom size/ /Initial size (MB)/8192 (or 16384 depending on memory size)/ /Maximum size (MB)/16384 (or 32768 depending on memory size)/ /select *Set* button [essential!]/repeat with other drive(s)/select OK button (3 times) to close dialogue boxes, then Exit System control panel. >> - you have defaulted to or specified a PHP configuration limit of 4MB memory >> for PHP tasks, or > Nope, as shown in the output of my example, the memory limit is set to 128MB: >> Output: >> $ php test.php >> 128M <--- This here shows the configured memory limit >> PHP Fatal error: Out of memory (allocated 4194304) (tried to allocate >> 2097184 bytes) in /c/Users/JackBlower/tmp-safe/test.php on line 5 > >> including copying verbatim all error messages seen > Here, the message was included in my initial email: > PHP Fatal error: Out > of memory (allocated 4194304) (tried to allocate 2097184 bytes) in > /c/Users/JackBlower/tmp-safe/test.php on line 5 > >> - if you're running 32 bit Cygwin, possibly under 32 bit Windows, you have >> probably run out of heap space from installing
Re: [ANNOUNCEMENT] Updated: gnuplot-5.4.0-1
Am 18.07.2020 um 18:40 schrieb Thomas Wolff: Am 18.07.2020 um 18:31 schrieb Thomas Wolff: Am 18.07.2020 um 09:55 schrieb Achim Gratz: Gnuplot version 5.4.0 is now available on Cygwin. The upstream release notes are available at: http://www.gnuplot.info/ReleaseNotes_5_4.html Cygwin Notes The tutorial has been removed from the 5.4 branch of gnuplot, so it is no longer available in the package. The ggi terminal has been dropped from the build. I am considering dropping both the gpic and the mif terminal in a further update as well. The wxt terminal is now available. The qt terminal still doesn't work on Cygwin due to either a Cygwin or Qt5 bug that is still under investigation. If you want to help, please install the gnuplot-qt5 package and try to debug it. The packaging has been changed to allow more fine-grained control over dependencies. Depending on which packages you install running plain "gnuplot" will dispatch different executables via the alternatives system. The gnuplot-base package provides no GUI terminal at all and will replace the gnuplot package unless you chose to install one of the other feature packages, this variant is always directly available as gnuplot-base. This variant is most useful for scripted gnuplot invocations and for using it interactively in MinTTY with the sixelgd terminal. The gnuplot-X11 package resembles the previous gnuplot package most closely, the executable for this variant is gnuplot-X11 and depends on a relatively small number of X11 libraries. The gnuplot-wx package adds the wxt terminal and retains the X11 terminal. The executable for this variant is gnuplot-wx and it depends on an extensive list of GNOME libraries. The gnuplot-qt package provides the qt terminal and retains the X11 terminal. The executable for this variant is gnuplot-qt5 and of course depends on Qt5 libraries. Please note that while gnuplot-qt5 does build, the qt terminal does not actually work yet, see above. Hi Achim, running setup, gnuplot-base is updated from 5.4 rc2 to 5.4, but package gnuplot has vanished. Errh, which you explained above, sorry. Anyhow, gnuplot.exe did not get installed. OK, it's called gnuplot-base now. Is it a good idea to drop plain gnuplot as an invocation name? By the way, the next release of mintty will also support GNUTERM=tek40xx Kind regards, Thomas Tried 4 mirrors. Could there be a packaging problem? Thomas -- 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 -- 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 -- 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
Re: [ANNOUNCEMENT] Updated: gnuplot-5.4.0-1
Am 18.07.2020 um 18:31 schrieb Thomas Wolff: Am 18.07.2020 um 09:55 schrieb Achim Gratz: Gnuplot version 5.4.0 is now available on Cygwin. The upstream release notes are available at: http://www.gnuplot.info/ReleaseNotes_5_4.html Cygwin Notes The tutorial has been removed from the 5.4 branch of gnuplot, so it is no longer available in the package. The ggi terminal has been dropped from the build. I am considering dropping both the gpic and the mif terminal in a further update as well. The wxt terminal is now available. The qt terminal still doesn't work on Cygwin due to either a Cygwin or Qt5 bug that is still under investigation. If you want to help, please install the gnuplot-qt5 package and try to debug it. The packaging has been changed to allow more fine-grained control over dependencies. Depending on which packages you install running plain "gnuplot" will dispatch different executables via the alternatives system. The gnuplot-base package provides no GUI terminal at all and will replace the gnuplot package unless you chose to install one of the other feature packages, this variant is always directly available as gnuplot-base. This variant is most useful for scripted gnuplot invocations and for using it interactively in MinTTY with the sixelgd terminal. The gnuplot-X11 package resembles the previous gnuplot package most closely, the executable for this variant is gnuplot-X11 and depends on a relatively small number of X11 libraries. The gnuplot-wx package adds the wxt terminal and retains the X11 terminal. The executable for this variant is gnuplot-wx and it depends on an extensive list of GNOME libraries. The gnuplot-qt package provides the qt terminal and retains the X11 terminal. The executable for this variant is gnuplot-qt5 and of course depends on Qt5 libraries. Please note that while gnuplot-qt5 does build, the qt terminal does not actually work yet, see above. Hi Achim, running setup, gnuplot-base is updated from 5.4 rc2 to 5.4, but package gnuplot has vanished. Errh, which you explained above, sorry. Anyhow, gnuplot.exe did not get installed. Tried 4 mirrors. Could there be a packaging problem? Thomas -- 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 -- 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
Re: [ANNOUNCEMENT] Updated: gnuplot-5.4.0-1
Am 18.07.2020 um 09:55 schrieb Achim Gratz: Gnuplot version 5.4.0 is now available on Cygwin. The upstream release notes are available at: http://www.gnuplot.info/ReleaseNotes_5_4.html Cygwin Notes The tutorial has been removed from the 5.4 branch of gnuplot, so it is no longer available in the package. The ggi terminal has been dropped from the build. I am considering dropping both the gpic and the mif terminal in a further update as well. The wxt terminal is now available. The qt terminal still doesn't work on Cygwin due to either a Cygwin or Qt5 bug that is still under investigation. If you want to help, please install the gnuplot-qt5 package and try to debug it. The packaging has been changed to allow more fine-grained control over dependencies. Depending on which packages you install running plain "gnuplot" will dispatch different executables via the alternatives system. The gnuplot-base package provides no GUI terminal at all and will replace the gnuplot package unless you chose to install one of the other feature packages, this variant is always directly available as gnuplot-base. This variant is most useful for scripted gnuplot invocations and for using it interactively in MinTTY with the sixelgd terminal. The gnuplot-X11 package resembles the previous gnuplot package most closely, the executable for this variant is gnuplot-X11 and depends on a relatively small number of X11 libraries. The gnuplot-wx package adds the wxt terminal and retains the X11 terminal. The executable for this variant is gnuplot-wx and it depends on an extensive list of GNOME libraries. The gnuplot-qt package provides the qt terminal and retains the X11 terminal. The executable for this variant is gnuplot-qt5 and of course depends on Qt5 libraries. Please note that while gnuplot-qt5 does build, the qt terminal does not actually work yet, see above. Hi Achim, running setup, gnuplot-base is updated from 5.4 rc2 to 5.4, but package gnuplot has vanished. Tried 4 mirrors. Could there be a packaging problem? Thomas -- 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
RE: Cygwin PHP (all available versions) has a hard 4MB memory limit
Oh, to add one more thing here, I've noticed there's a patch in the Cygwin Source Package called `7.1.9-malloc-cygwin.patch` which references something to do with Page sizes and 4096 which makes me wonder if this is interfering somehow. > +#define REAL_PAGE_SIZE 4096 --Jack -- 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
RE: Cygwin PHP (all available versions) has a hard 4MB memory limit
> You told us nothing about what versions of Windows, Cygwin, and PHP you are > running, so WAG, either: Wow Brian, what a rude response. I definitely followed the problem reporting guide, and didn't realise you'd need information overload that probably doesn't relate to the case at hand. When reporting bugs I always give as much info as I believe is needed in helping, there's no need to snap. I gave lots of information, such as: - It applies to all bundled versions of PHP from the `setup-x86-64.exe`. - That I've reproduced it on multiple (two) machines, including one of those being a machine that has never had (and so a fresh install of) Cygwin with just PHP added. - Compiling PHP from source doesn't produce this issue so it's something to do with the bundled version only For extra information, both machines tested are: - Windows 10 64-bit (10.0.18363) - One machine is 16GB, the other 8GB RAM. - All PHP versions from the `setup-x86-64.exe` (7.3.4-1 and 7.1.16-1) > - you have defaulted to or specified a PHP configuration limit of 4MB memory > for PHP tasks, or Nope, as shown in the output of my example, the memory limit is set to 128MB: > Output: > $ php test.php > 128M <--- This here shows the configured memory limit > PHP Fatal error: Out of memory (allocated 4194304) (tried to allocate > 2097184 bytes) in /c/Users/JackBlower/tmp-safe/test.php on line 5 > including copying verbatim all error messages seen Here, the message was included in my initial email: > PHP Fatal error: Out of memory (allocated 4194304) (tried to allocate 2097184 bytes) in /c/Users/JackBlower/tmp-safe/test.php on line 5 > - if you're running 32 bit Cygwin, possibly under 32 bit Windows, you have > probably run out of heap space from installing too many packages requiring > too many DLLs. Nope all 64-bit, I would've mentioned if not. > and PHP build configurations and logs. See the output below for some more info, either way this is a pre-packaged version of PHP with very little changed from default configuration. -- > Greetings, km2z7kca0oge--- via Cygwin! Hey Andrey, I've tried your script and I hit the 128MB limit, as expected. So maybe it's to do with the `http` wrapper. Could you try my version of the script please and see how you get on? I first bumped into this problem when I rolled back from composer 2.X to 1.X which uses more memory. I generated an 800MB file using: ` fsutil file createnew 800mega 838860800` and then ran your script you provided substituting your backup for the 800 MB file I generated. The output of the script is below: ``` $ ./test-mailing-list.php #!/usr/bin/env php 7.3.7 System => CYGWIN_NT-10.0-18363 AML0147 3.1.6-340.x86_64 2020-07-09 08:20 UTC x86_64 Build Date => Jul 21 2019 16:57:32 Server API => Command Line Interface Virtual Directory Support => disabled Configuration File (php.ini) Path => /etc Loaded Configuration File => /etc/php.ini Scan this dir for additional .ini files => /etc/php.d Additional .ini files parsed => /etc/php.d/bcmath.ini, /etc/php.d/bz2.ini, /etc/php.d/curl.ini, /etc/php.d/fileinfo.ini, /etc/php.d/gd.ini, /etc/php.d/gmp.ini, /etc/php.d/intl.ini, /etc/php.d/json.ini, /etc/php.d/ldap.ini, /etc/php.d/mbstring.ini, /etc/php.d/pdo_mysql.ini, /etc/php.d/pdo_pgsql.ini, /etc/php.d/pdo_sqlite.ini, /etc/php.d/phar.ini, /etc/php.d/posix.ini, /etc/php.d/simplexml.ini, /etc/php.d/sockets.ini, /etc/php.d/sodium.ini, /etc/php.d/sqlite3.ini, /etc/php.d/tokenizer.ini, /etc/php.d/vld.ini, /etc/php.d/xmlwriter.ini, /etc/php.d/zip.ini, /etc/php.d/zlib.ini PHP API => 20180731 PHP Extension => 20180731 Zend Extension => 320180731 Zend Extension Build => API320180731,NTS PHP Extension Build => API20180731,NTS Debug Build => no Thread Safety => disabled Zend Signal Handling => enabled Zend Memory Manager => enabled Zend Multibyte Support => provided by mbstring IPv6 Support => enabled DTrace Support => disabled Registered PHP Streams => https, ftps, php, file, glob, data, http, ftp, compress.bzip2, compress.zlib, zip, phar Registered Stream Socket Transports => tcp, udp, unix, udg, ssl, sslv3, tls, tlsv1.0, tlsv1.1, tlsv1.2 Registered Stream Filters => string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, bzip2.*, zlib.* This program makes use of the Zend Scripting Language Engine: Zend Engine v3.3.7, Copyright (c) 1998-2018 Zend Technologies 128M PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 838869024 bytes) in /c/Users/JackBlower/tmp-safe/test-mailing-list.php on line 5 ``` Notice how this time it's running out of memory at 128MB and has the "Allowed memory size" error instead of the "Out of memory" error from before. Many Thanks, Jack -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation:https://cygwin.com/docs.html Unsubscribe info:
[PATCH 4/5] Cygwin: Don't dump non-writable image regions
After this, we will end up dumping memory regions where: - state is MEM_COMMIT (i.e. is not MEM_RESERVE or MEM_FREE), and -- type is MEM_PRIVATE and protection allows reads (i.e. not a guardpage), or -- type is MEM_IMAGE and protection allows writes Making this decision based on the current protection isn't 100% correct, because it may have been changed using VirtualProtect(). But we don't know how to determine if a region is shareable. (As a practical matter, anything which gets us the stack (MEM_PRIVATE) and .data/.bss (RW MEM_IMAGE) is going to be enough for 99% of cases) --- winsup/utils/dumper.cc | 6 ++ 1 file changed, 6 insertions(+) diff --git a/winsup/utils/dumper.cc b/winsup/utils/dumper.cc index 2a0c66002..b96ee54cc 100644 --- a/winsup/utils/dumper.cc +++ b/winsup/utils/dumper.cc @@ -292,6 +292,12 @@ dumper::collect_memory_sections () int skip_region_p = 0; const char *disposition = "dumped"; + if ((mbi.Type & MEM_IMAGE) && !(mbi.Protect & (PAGE_EXECUTE_READWRITE | PAGE_READWRITE))) + { + skip_region_p = 1; + disposition = "skipped due to non-writeable MEM_IMAGE"; + } + if (mbi.Protect & PAGE_NOACCESS) { skip_region_p = 1; -- 2.27.0
[PATCH 3/5] Cygwin: Drop excluded regions list from dumper
Drop excluded regions, now it's always empty --- winsup/utils/dumper.cc | 48 -- winsup/utils/dumper.h | 17 --- 2 files changed, 4 insertions(+), 61 deletions(-) diff --git a/winsup/utils/dumper.cc b/winsup/utils/dumper.cc index 4577d2a3f..2a0c66002 100644 --- a/winsup/utils/dumper.cc +++ b/winsup/utils/dumper.cc @@ -83,7 +83,6 @@ dumper::dumper (DWORD pid, DWORD tid, const char *file_name) this->pid = pid; this->tid = tid; core_bfd = NULL; - excl_list = new exclusion (20); list = last = NULL; @@ -125,19 +124,16 @@ dumper::close () { if (core_bfd) bfd_close (core_bfd); - if (excl_list) -delete excl_list; if (hProcess) CloseHandle (hProcess); core_bfd = NULL; hProcess = NULL; - excl_list = NULL; } int dumper::sane () { - if (hProcess == NULL || core_bfd == NULL || excl_list == NULL) + if (hProcess == NULL || core_bfd == NULL) return 0; return 1; } @@ -226,42 +222,6 @@ dumper::add_mem_region (LPBYTE base, SIZE_T size) return 1; } -/* split_add_mem_region scans list of regions to be excluded from dumping process - (excl_list) and removes all "excluded" parts from given region. */ -int -dumper::split_add_mem_region (LPBYTE base, SIZE_T size) -{ - if (!sane ()) -return 0; - - if (base == NULL || size == 0) -return 1; // just ignore empty regions - - LPBYTE last_base = base; - - for (process_mem_region * p = excl_list->region; - p < excl_list->region + excl_list->last; - p++) -{ - if (p->base >= base + size || p->base + p->size <= base) - continue; - - if (p->base <= base) - { - last_base = p->base + p->size; - continue; - } - - add_mem_region (last_base, p->base - last_base); - last_base = p->base + p->size; -} - - if (last_base < base + size) -add_mem_region (last_base, base + size - last_base); - - return 1; -} - int dumper::add_module (LPVOID base_address) { @@ -413,14 +373,14 @@ dumper::collect_memory_sections () last_size += mbi.RegionSize; else { - split_add_mem_region (last_base, last_size); + add_mem_region (last_base, last_size); last_base = (LPBYTE) mbi.BaseAddress; last_size = mbi.RegionSize; } } else { - split_add_mem_region (last_base, last_size); + add_mem_region (last_base, last_size); last_base = NULL; last_size = 0; } @@ -429,7 +389,7 @@ dumper::collect_memory_sections () } /* dump last sections, if any */ - split_add_mem_region (last_base, last_size); + add_mem_region (last_base, last_size); return 1; }; diff --git a/winsup/utils/dumper.h b/winsup/utils/dumper.h index 78592b61e..6e624a983 100644 --- a/winsup/utils/dumper.h +++ b/winsup/utils/dumper.h @@ -62,22 +62,6 @@ typedef struct _process_entity struct _process_entity* next; } process_entity; -class exclusion -{ -public: - size_t last; - size_t size; - size_t step; - process_mem_region* region; - - exclusion ( size_t step ) { last = size = 0; - this->step = step; - region = NULL; } - ~exclusion () { free ( region ); } - int add ( LPBYTE mem_base, SIZE_T mem_size ); - int sort_and_check (); -}; - #define PAGE_BUFFER_SIZE 4096 class dumper @@ -87,7 +71,6 @@ class dumper HANDLE hProcess; process_entity* list; process_entity* last; - exclusion* excl_list; char* file_name; bfd* core_bfd; -- 2.27.0
[PATCH 5/5] Cygwin: Use MEMORY_WORKING_SET_EX_INFORMATION in dumper
Use the (undocumented) MEMORY_WORKING_SET_EX_INFORMATION in dumper to determine if a MEM_IMAGE region is unsharable, and hence has been modified. --- winsup/doc/utils.xml | 8 ++--- winsup/utils/Makefile.in | 2 +- winsup/utils/dumper.cc | 63 ++-- 3 files changed, 65 insertions(+), 8 deletions(-) diff --git a/winsup/doc/utils.xml b/winsup/doc/utils.xml index 5f266bcb1..8b92bfdf1 100644 --- a/winsup/doc/utils.xml +++ b/winsup/doc/utils.xml @@ -524,11 +524,11 @@ error_start=x:\path\to\dumper.exe dumper exits, the target process is terminated too. To save space in the core dump, dumper doesn't - write those portions of target process' memory space that are loaded from - executable and dll files and are unchangeable, such as program code and - debug info. Instead, dumper saves paths to files which + write those portions of the target process's memory space that are loaded + from executable and dll files and are unchanged (e.g. program code). + Instead, dumper saves paths to the files which contain that data. When a core dump is loaded into gdb, it uses these - paths to load appropriate files. That means that if you create a core + paths to load the appropriate files. That means that if you create a core dump on one machine and try to debug it on another, you'll need to place identical copies of the executable and dlls in the same directories as on the machine where the core dump was created. diff --git a/winsup/utils/Makefile.in b/winsup/utils/Makefile.in index f9892fa1d..6bf4454c5 100644 --- a/winsup/utils/Makefile.in +++ b/winsup/utils/Makefile.in @@ -116,7 +116,7 @@ CYGWIN_BINS += dumper.exe dumper.o module_info.o: CXXFLAGS += -I$(top_srcdir)/include dumper.o: dumper.h dumper.exe: module_info.o -dumper.exe: CYGWIN_LDFLAGS += -lpsapi -lbfd -lintl -liconv -liberty ${ZLIB} +dumper.exe: CYGWIN_LDFLAGS += -lpsapi -lbfd -lintl -liconv -liberty ${ZLIB} -lntdll else all: warn_dumper endif diff --git a/winsup/utils/dumper.cc b/winsup/utils/dumper.cc index b96ee54cc..3af138b9e 100644 --- a/winsup/utils/dumper.cc +++ b/winsup/utils/dumper.cc @@ -266,6 +266,46 @@ void protect_dump(DWORD protect, char *buf) strcat (buf, pt[i]); } +typedef enum _MEMORY_INFORMATION_CLASS +{ + MemoryWorkingSetExInformation = 4, // MEMORY_WORKING_SET_EX_INFORMATION +} MEMORY_INFORMATION_CLASS; + +extern "C" +NTSTATUS +NtQueryVirtualMemory(HANDLE ProcessHandle, +LPVOID BaseAddress, +MEMORY_INFORMATION_CLASS MemoryInformationClass, +LPVOID MemoryInformation, +SIZE_T MemoryInformationLength, +SIZE_T *ReturnLength); + +typedef struct _MEMORY_WORKING_SET_EX_INFORMATION +{ + LPVOID VirtualAddress; + ULONG_PTR Long; +} MEMORY_WORKING_SET_EX_INFORMATION; + +#define MWSEI_ATTRIB_SHARED (0x1 << 15) + +static BOOL +getRegionAttributes(HANDLE hProcess, LPVOID address, DWORD ) +{ + MEMORY_WORKING_SET_EX_INFORMATION mwsei = { address }; + NTSTATUS status = NtQueryVirtualMemory(hProcess, 0, +MemoryWorkingSetExInformation, +, sizeof(mwsei), 0); + + if (!status) +{ + attribs = mwsei.Long; + return TRUE; +} + + deb_printf("MemoryWorkingSetExInformation failed status %08x\n", status); + return FALSE; +} + int dumper::collect_memory_sections () { @@ -292,10 +332,27 @@ dumper::collect_memory_sections () int skip_region_p = 0; const char *disposition = "dumped"; - if ((mbi.Type & MEM_IMAGE) && !(mbi.Protect & (PAGE_EXECUTE_READWRITE | PAGE_READWRITE))) + if (mbi.Type & MEM_IMAGE) { - skip_region_p = 1; - disposition = "skipped due to non-writeable MEM_IMAGE"; + DWORD attribs = 0; + if (getRegionAttributes(hProcess, current_page_address, attribs)) + { + if (attribs & MWSEI_ATTRIB_SHARED) + { + skip_region_p = 1; + disposition = "skipped due to shared MEM_IMAGE"; + } + } + /* + The undocumented MemoryWorkingSetExInformation is allegedly + supported since XP, so should always succeed, but if it fails, + fallback to looking at region protection. + */ + else if (!(mbi.Protect & (PAGE_EXECUTE_READWRITE | PAGE_READWRITE))) + { + skip_region_p = 1; + disposition = "skipped due to non-writeable MEM_IMAGE"; + } } if (mbi.Protect & PAGE_NOACCESS) -- 2.27.0
[PATCH 2/5] Cygwin: Remove reading of PE for section flags from dumper
--- winsup/utils/Makefile.in | 6 +-- winsup/utils/dumper.cc | 2 - winsup/utils/dumper.h| 2 - winsup/utils/parse_pe.cc | 107 --- 4 files changed, 3 insertions(+), 114 deletions(-) delete mode 100644 winsup/utils/parse_pe.cc diff --git a/winsup/utils/Makefile.in b/winsup/utils/Makefile.in index 5bb62bc6f..f9892fa1d 100644 --- a/winsup/utils/Makefile.in +++ b/winsup/utils/Makefile.in @@ -113,9 +113,9 @@ build_dumper := $(shell test -r "$(libbfd)" && echo 1) ifdef build_dumper CYGWIN_BINS += dumper.exe -dumper.o module_info.o parse_pe.o: CXXFLAGS += -I$(top_srcdir)/include -dumper.o parse_pe.o: dumper.h -dumper.exe: module_info.o parse_pe.o +dumper.o module_info.o: CXXFLAGS += -I$(top_srcdir)/include +dumper.o: dumper.h +dumper.exe: module_info.o dumper.exe: CYGWIN_LDFLAGS += -lpsapi -lbfd -lintl -liconv -liberty ${ZLIB} else all: warn_dumper diff --git a/winsup/utils/dumper.cc b/winsup/utils/dumper.cc index 46e4b0692..4577d2a3f 100644 --- a/winsup/utils/dumper.cc +++ b/winsup/utils/dumper.cc @@ -281,8 +281,6 @@ dumper::add_module (LPVOID base_address) new_entity->u.module.base_address = base_address; new_entity->u.module.name = module_name; - parse_pe (module_name, excl_list); - deb_printf ("added module %p %s\n", base_address, module_name); return 1; } diff --git a/winsup/utils/dumper.h b/winsup/utils/dumper.h index 9367587bf..78592b61e 100644 --- a/winsup/utils/dumper.h +++ b/winsup/utils/dumper.h @@ -133,8 +133,6 @@ extern int deb_printf ( const char* format, ... ); extern char* psapi_get_module_name ( HANDLE hProcess, LPVOID BaseAddress ); -extern int parse_pe ( const char* file_name, exclusion* excl_list ); - extern BOOL verbose; #endif diff --git a/winsup/utils/parse_pe.cc b/winsup/utils/parse_pe.cc deleted file mode 100644 index 90b5c0b0d..0 --- a/winsup/utils/parse_pe.cc +++ /dev/null @@ -1,107 +0,0 @@ -/* parse_pe.cc - - Written by Egor Duda - - This file is part of Cygwin. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License (file COPYING.dumper) for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#define PACKAGE -#include -#include -#include - -#include "dumper.h" - -#ifndef bfd_get_section_size -#define bfd_get_section_size(sect) bfd_section_size(sect) -#endif - -int -exclusion::add (LPBYTE mem_base, SIZE_T mem_size) -{ - while (last >= size) -size += step; - region = (process_mem_region *) realloc (region, size * sizeof (process_mem_region)); - if (region == NULL) -return 0; - region[last].base = mem_base; - region[last].size = mem_size; - last++; - return 1; -}; - -int -cmp_regions (const void *r1, const void *r2) -{ - if (((process_mem_region *) r1)->base < ((process_mem_region *) r2)->base) -return -1; - if (((process_mem_region *) r1)->base > ((process_mem_region *) r2)->base) -return 1; - return 0; -} - -int -exclusion::sort_and_check () -{ - qsort (region, last, sizeof (process_mem_region), _regions); - for (process_mem_region * p = region; p < region + last - 1; p++) -{ - process_mem_region *q = p + 1; - if (q == p + 1) - continue; - if (p->base + size > q->base) - { - fprintf (stderr, "region error @ (%p + %zd) > %p\n", p->base, size, q->base); - return 0; - } -} - return 1; -} - -static void -select_data_section (bfd * abfd, asection * sect, PTR obj) -{ - exclusion *excl_list = (exclusion *) obj; - - if ((sect->flags & (SEC_CODE | SEC_DEBUGGING)) && - sect->vma && bfd_get_section_size (sect)) -{ - excl_list->add ((LPBYTE) sect->vma, (SIZE_T) bfd_get_section_size (sect)); - deb_printf ("excluding section: %20s %08lx\n", sect->name, - bfd_get_section_size (sect)); -} -} - -int -parse_pe (const char *file_name, exclusion * excl_list) -{ - if (file_name == NULL || excl_list == NULL) -return 0; - - bfd *abfd = bfd_openr (file_name, "pei-i386"); - if (abfd == NULL) -{ - bfd_perror ("failed to open file"); - return 0; -} - - bfd_check_format (abfd, bfd_object); - bfd_map_over_sections (abfd, _data_section, (PTR) excl_list); - excl_list->sort_and_check (); - - bfd_close (abfd); - return 1; -} -- 2.27.0
[PATCH 1/5] Cygwin: Show details of all memory regions details in dumper debug output
--- winsup/utils/dumper.cc | 101 - 1 file changed, 80 insertions(+), 21 deletions(-) diff --git a/winsup/utils/dumper.cc b/winsup/utils/dumper.cc index ccc4bd12f..46e4b0692 100644 --- a/winsup/utils/dumper.cc +++ b/winsup/utils/dumper.cc @@ -289,6 +289,25 @@ dumper::add_module (LPVOID base_address) #define PAGE_BUFFER_SIZE 4096 +void protect_dump(DWORD protect, char *buf) +{ + const char *pt[10]; + pt[0] = (protect & PAGE_READONLY) ? "RO " : ""; + pt[1] = (protect & PAGE_READWRITE) ? "RW " : ""; + pt[2] = (protect & PAGE_WRITECOPY) ? "WC " : ""; + pt[3] = (protect & PAGE_EXECUTE) ? "EX " : ""; + pt[4] = (protect & PAGE_EXECUTE_READ) ? "EXRO " : ""; + pt[5] = (protect & PAGE_EXECUTE_READWRITE) ? "EXRW " : ""; + pt[6] = (protect & PAGE_EXECUTE_WRITECOPY) ? "EXWC " : ""; + pt[7] = (protect & PAGE_GUARD) ? "GRD " : ""; + pt[8] = (protect & PAGE_NOACCESS) ? "NA " : ""; + pt[9] = (protect & PAGE_NOCACHE) ? "NC " : ""; + + buf[0] = '\0'; + for (int i = 0; i < 10; i++) +strcat (buf, pt[i]); +} + int dumper::collect_memory_sections () { @@ -313,10 +332,65 @@ dumper::collect_memory_sections () break; int skip_region_p = 0; + const char *disposition = "dumped"; - if (mbi.Protect & (PAGE_NOACCESS | PAGE_GUARD) || - mbi.State != MEM_COMMIT) - skip_region_p = 1; + if (mbi.Protect & PAGE_NOACCESS) + { + skip_region_p = 1; + disposition = "skipped due to noaccess"; + } + + if (mbi.Protect & PAGE_GUARD) + { + skip_region_p = 1; + disposition = "skipped due to guardpage"; + } + + if (mbi.State != MEM_COMMIT) + { + skip_region_p = 1; + disposition = "skipped due to uncommited"; + } + + { + char buf[10 * 6]; + protect_dump(mbi.Protect, buf); + + const char *state = ""; + const char *type = ""; + + if (mbi.State & MEM_COMMIT) + { + state = "COMMIT"; + } + else if (mbi.State & MEM_FREE) + { + state = "FREE"; + type = "FREE"; + } + else if (mbi.State & MEM_RESERVE) + { + state = "RESERVE"; + } + + if (mbi.Type & MEM_IMAGE) + { + type = "IMAGE"; + } + else if (mbi.Type & MEM_MAPPED) + { + type = "MAPPED"; + } + else if (mbi.Type & MEM_PRIVATE) + { + type = "PRIVATE"; + } + + deb_printf ("region 0x%016lx-0x%016lx (protect = %-8s, state = %-7s, type = %-7s, %s)\n", + current_page_address, + current_page_address + mbi.RegionSize, + buf, state, type, disposition); + } if (!skip_region_p) { @@ -326,26 +400,11 @@ dumper::collect_memory_sections () if (!ReadProcessMemory (hProcess, current_page_address, mem_buf, sizeof (mem_buf), )) { DWORD err = GetLastError (); - const char *pt[10]; - pt[0] = (mbi.Protect & PAGE_READONLY) ? "RO " : ""; - pt[1] = (mbi.Protect & PAGE_READWRITE) ? "RW " : ""; - pt[2] = (mbi.Protect & PAGE_WRITECOPY) ? "WC " : ""; - pt[3] = (mbi.Protect & PAGE_EXECUTE) ? "EX " : ""; - pt[4] = (mbi.Protect & PAGE_EXECUTE_READ) ? "EXRO " : ""; - pt[5] = (mbi.Protect & PAGE_EXECUTE_READWRITE) ? "EXRW " : ""; - pt[6] = (mbi.Protect & PAGE_EXECUTE_WRITECOPY) ? "EXWC " : ""; - pt[7] = (mbi.Protect & PAGE_GUARD) ? "GRD " : ""; - pt[8] = (mbi.Protect & PAGE_NOACCESS) ? "NA " : ""; - pt[9] = (mbi.Protect & PAGE_NOCACHE) ? "NC " : ""; - char buf[10 * 6]; - buf[0] = '\0'; - for (int i = 0; i < 10; i++) - strcat (buf, pt[i]); - - deb_printf ("warning: failed to read memory at %p-%p (protect = %s), error %ld.\n", + + deb_printf ("warning: failed to read memory at %p-%p, error %ld.\n", current_page_address, current_page_address + mbi.RegionSize, - buf, err); + err); skip_region_p = 1; } } -- 2.27.0
[PATCH 0/5] Improve dumper megion region selection
Improve how dumper determines if a memory region should be dumped: Currently we open and read the PE file for each module, and exclude regions corresponding to sections marked 'DEBUGGING' or 'CODE'. This doesn't work correctly if the DLL has been loaded to an address other than the ImageBase recorded in the PE header. It fails to produce a useful dump if there's a collision in excluded region addresses (which will always occur on x86_64, as kernel32.dll has an ImageBase which collides with the cygwin1.dll) This probably also doesn't produce correct dumps if the protection on memory regions corresponding to 'CODE' sections is manipulated using VirtualProtect(). Instead, dump memory region based on their type, protection and sharability: - state is MEM_COMMIT (i.e. is not MEM_RESERVE or MEM_FREE), and -- type is MEM_PRIVATE and protection allows reads (i.e. not a guardpage), or -- type is MEM_IMAGE and attribute is non-sharable (i.e. it was WC, got written to, and is now a RW copy) Jon Turney (5): Cygwin: Show details of all memory regions details in dumper debug output Cygwin: Remove reading of PE for section flags from dumper Cygwin: Drop excluded regions list from dumper Cygwin: Don't dump non-writable image regions Cygwin: Use MEMORY_WORKING_SET_EX_INFORMATION in dumper winsup/doc/utils.xml | 8 +- winsup/utils/Makefile.in | 8 +- winsup/utils/dumper.cc | 214 +++ winsup/utils/dumper.h| 19 winsup/utils/parse_pe.cc | 107 5 files changed, 155 insertions(+), 201 deletions(-) delete mode 100644 winsup/utils/parse_pe.cc -- 2.27.0
Re: [ITA] libiconv-1.16-1, libiconv2-1.16, libcharset1-1.16-1
Date: Sat, 18 Jul 2020 12:45:35 +0200 From: Achim Gratz > Lemures Lemniscati via Cygwin-apps writes: > > I've prepared it at a branch w_build-requires in the repository > > https://cygwin.com/git/cygwin-packages/libiconv.git . > > > > But not merged yet to master branch. > > You should push experiments to the playground branch, which you can > force-push and delete without intervention from Jon. You can check the > CI results here: > > https://cygwin.com/cgi-bin2/jobs.cgi > https://ci.appveyor.com/project/cygwin/scallywag/history > Very wonderful! Thank you. Lem
Re: [ITA] libiconv-1.16-1, libiconv2-1.16, libcharset1-1.16-1
Lemures Lemniscati via Cygwin-apps writes: > I've prepared it at a branch w_build-requires in the repository > https://cygwin.com/git/cygwin-packages/libiconv.git . > > But not merged yet to master branch. You should push experiments to the playground branch, which you can force-push and delete without intervention from Jon. You can check the CI results here: https://cygwin.com/cgi-bin2/jobs.cgi https://ci.appveyor.com/project/cygwin/scallywag/history Regards, Achim. -- +<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+ SD adaptations for Waldorf Q V3.00R3 and Q+ V3.54R2: http://Synth.Stromeko.net/Downloads.html#WaldorfSDada
Re: [ITA] libiconv-1.16-1, libiconv2-1.16, libcharset1-1.16-1
Date: Sat, 18 Jul 2020 10:29:15 +0200 From: Achim Gratz > When you next build the libiconv package, please add BUILD_REQUIRES so > the CI can try to build it. Currently it's missing at least gperf from > the CI build environment. All right, Achim. I've prepared it at a branch w_build-requires in the repository https://cygwin.com/git/cygwin-packages/libiconv.git . But not merged yet to master branch. Regards, Lem
Re: [ITA] cmake-3.18.0-1 and related packages
Subject: Re: [ITA] cmake-3.18.0-1 and related packages Date: Sat, 18 Jul 2020 09:01:20 +0200 From: Achim Gratz > Marco Atzeri via Cygwin-apps writes: > > I know, but it take times, specially as I will hate to lose > > the history if I port only last version > > You can rewrite the git repo with filter-branch to keep the history. I > did that with my packages since I also had them in a single repo. I now > have them as submodules in a new repo, although the submodules wouldn't > strictly be necessary. > All right. I've made a new history branch here by extracting with git filter-branch and merge: https://github.com/cygwin-lem/cygwin-pkg/tree/new_master_cmake And attached a result of 'git log --pretty=fuller --graph --color=always' as an HTML file. Please review it. If it is OK, I'll push to the repo https://cygwin.com/git-cygwin-packages/cmake.git . Regards, Lem
[ANNOUNCEMENT] Updated: Perl distributions
The following Perl distributions have been updated to their latest version on CPAN: x86/x86_64 -- perl-Compress-Bzip2-2.28-1 perl-GD-2.72-1 noarch -- perl-LWP-Protocol-https-6.09-1 perl-Mojolicious-8.57-1 -- *** CYGWIN-ANNOUNCE UNSUBSCRIBE INFO *** If you want to unsubscribe from the cygwin-announce mailing list, look at the "List-Unsubscribe: " tag in the email header of this message. Send email to the address specified there. It will be in the format: cygwin-announce-unsubscribe-you=yourdomain@cygwin.com If you need more information on unsubscribing, start reading here: http://sourceware.org/lists.html#unsubscribe-simple Please read *all* of the information on unsubscribing that is available starting at this URL. -- 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
Updated: Perl distributions
The following Perl distributions have been updated to their latest version on CPAN: x86/x86_64 -- perl-Compress-Bzip2-2.28-1 perl-GD-2.72-1 noarch -- perl-LWP-Protocol-https-6.09-1 perl-Mojolicious-8.57-1 -- *** CYGWIN-ANNOUNCE UNSUBSCRIBE INFO *** If you want to unsubscribe from the cygwin-announce mailing list, look at the "List-Unsubscribe: " tag in the email header of this message. Send email to the address specified there. It will be in the format: cygwin-announce-unsubscribe-you=yourdomain@cygwin.com If you need more information on unsubscribing, start reading here: http://sourceware.org/lists.html#unsubscribe-simple Please read *all* of the information on unsubscribing that is available starting at this URL.
Re: [ITA] libiconv-1.16-1, libiconv2-1.16, libcharset1-1.16-1
When you next build the libiconv package, please add BUILD_REQUIRES so the CI can try to build it. Currently it's missing at least gperf from the CI build environment. Regards, Achim. -- +<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+ Factory and User Sound Singles for Waldorf Q+, Q and microQ: http://Synth.Stromeko.net/Downloads.html#WaldorfSounds
Re: [ITA] cmake-3.18.0-1 and related packages
Achim Gratz writes: > Marco Atzeri via Cygwin-apps writes: >> I know, but it take times, specially as I will hate to lose >> the history if I port only last version > > You can rewrite the git repo with filter-branch to keep the history. I > did that with my packages since I also had them in a single repo. I now > have them as submodules in a new repo, although the submodules wouldn't > strictly be necessary. Here are a the scripts that I created for this conversion. The first one filters each subdirectory into its own branch. The second one imports one such branch into a new repo. You need to define a cygpack: alias in your gitconfig (global or local) to use it directly. Obviously you'll want to loop across all your packages, I did that directly in the shell. It goes without saying that you should do all operations on fresh clones of your repositories so you can easily start over if necessary. The third script was for packages that I took over from Yaakov that he had put earlier history on the Cygwin server (from Cygport, mostly) and I had already local history fro my releases; it will fetch what's on Cygwin and then append any local history. If the relation is more complicated than that you will either need to rewrite the history manually or drop / branch off some of the intertwined history. --8<- .gitconfig -cut herestart->8--- [url "git://cygwin.com/git/cygwin-packages"] InsteadOf = cygpack: [url "ssh://cyg...@cygwin.com/git/cygwin-packages"] pushInsteadOf = cygpack: --8<- .gitconfig -cut hereend--->8--- --8<- splitgit.dash -cut here--start->8--- #!/bin/dash pkgs="" spkg="" if [ $# -gt 2 ] ; then orepo=$1; shift nrepo=$1; shift pkgs=$1; shift spkg=$pkgs else echo "Not enough arguments!\n$@" exit 1 fi while [ $# -gt 0 ] ; do pkgs="$pkgs $1" spkg="$spkg|$1" shift done echo "$spkg" # clone repo and keep reference to original git clone $orepo $nrepo cd $nrepo git branch unsplit master # stuff packages into separate subdirectories git filter-branch --index-filter ' \ git ls-files -s | \ perl -pE '"'"'s:\t('$spkg'):\t$1/$1:'"'"' | \ env GIT_INDEX_FILE=$GIT_INDEX_FILE.new git update-index --index-info && \ mv "$GIT_INDEX_FILE.new" "$GIT_INDEX_FILE" \ ' HEAD git branch subdirs # split each subdir into a new branch for pkg in $pkgs ; do git filter-branch -f --subdirectory-filter $pkg -- --all git branch $pkg git reset --hard original/refs/heads/master done --8<- splitgit.dash -cut here-end--->8--- --8<- gitimport.dash -cut herestart->8--- #!/usr/bin/dash if [ $# -gt 1 ] ; then srepo=$(realpath $1); shift pkg=$1; shift else echo "Not enough arguments!\n$@" exit 1 fi echo "$pkg" # create new git repo git init $pkg cd $pkg # import history git fetch -fu $srepo master:master git reset --hard git remote add origin cygpack:/$pkg # cd .. --8<- gitimport.dash -cut hereend--->8--- --8<- grafthist.dash -cut herestart->8--- #!/bin/dash if [ $# -gt 1 ] ; then srepo=$(realpath $1); shift pkg=$1; shift else echo "Not enough arguments!\n$@" exit 1 fi echo "$pkg" # create new git repo git clone git://cygwin.com/git/cygwin-packages/${pkg}.git || git init $pkg cd $pkg # import history git fetch $srepo refs/heads/${pkg}:import git checkout import if [ "origin" = "$( git remote )" ] ; then # append imported history sha1=$( git show-ref refs/heads/master | cut -d\ -f 1 ) echo $sha1 git filter-branch -f \ --commit-filter ' \ if [ $# -eq 1 ] ; then \ git commit-tree -p $( git show-ref refs/heads/master | cut -d" " -f 1 ) $1 ; \ else \ git commit-tree "$@" ; \ fi ' \ --msg-filter ' \ sed -e "s/initial commit/Take over maintenance/;s/^\* //" \ ' \ HEAD fi git branch -f master import git reset --hard cd .. --8<- grafthist.dash -cut hereend--->8--- Regards, Achim. -- +<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+ Samples for the Waldorf Blofeld: http://Synth.Stromeko.net/Downloads.html#BlofeldSamplesExtra
[ANNOUNCEMENT] Updated: gnuplot-5.4.0-1
Gnuplot version 5.4.0 is now available on Cygwin. The upstream release notes are available at: http://www.gnuplot.info/ReleaseNotes_5_4.html Cygwin Notes The tutorial has been removed from the 5.4 branch of gnuplot, so it is no longer available in the package. The ggi terminal has been dropped from the build. I am considering dropping both the gpic and the mif terminal in a further update as well. The wxt terminal is now available. The qt terminal still doesn't work on Cygwin due to either a Cygwin or Qt5 bug that is still under investigation. If you want to help, please install the gnuplot-qt5 package and try to debug it. The packaging has been changed to allow more fine-grained control over dependencies. Depending on which packages you install running plain "gnuplot" will dispatch different executables via the alternatives system. The gnuplot-base package provides no GUI terminal at all and will replace the gnuplot package unless you chose to install one of the other feature packages, this variant is always directly available as gnuplot-base. This variant is most useful for scripted gnuplot invocations and for using it interactively in MinTTY with the sixelgd terminal. The gnuplot-X11 package resembles the previous gnuplot package most closely, the executable for this variant is gnuplot-X11 and depends on a relatively small number of X11 libraries. The gnuplot-wx package adds the wxt terminal and retains the X11 terminal. The executable for this variant is gnuplot-wx and it depends on an extensive list of GNOME libraries. The gnuplot-qt package provides the qt terminal and retains the X11 terminal. The executable for this variant is gnuplot-qt5 and of course depends on Qt5 libraries. Please note that while gnuplot-qt5 does build, the qt terminal does not actually work yet, see above. -- *** CYGWIN-ANNOUNCE UNSUBSCRIBE INFO *** If you want to unsubscribe from the cygwin-announce mailing list, look at the "List-Unsubscribe: " tag in the email header of this message. Send email to the address specified there. It will be in the format: cygwin-announce-unsubscribe-you=yourdomain@cygwin.com If you need more information on unsubscribing, start reading here: http://sourceware.org/lists.html#unsubscribe-simple Please read *all* of the information on unsubscribing that is available starting at this URL. -- 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
Updated: gnuplot-5.4.0-1
Gnuplot version 5.4.0 is now available on Cygwin. The upstream release notes are available at: http://www.gnuplot.info/ReleaseNotes_5_4.html Cygwin Notes The tutorial has been removed from the 5.4 branch of gnuplot, so it is no longer available in the package. The ggi terminal has been dropped from the build. I am considering dropping both the gpic and the mif terminal in a further update as well. The wxt terminal is now available. The qt terminal still doesn't work on Cygwin due to either a Cygwin or Qt5 bug that is still under investigation. If you want to help, please install the gnuplot-qt5 package and try to debug it. The packaging has been changed to allow more fine-grained control over dependencies. Depending on which packages you install running plain "gnuplot" will dispatch different executables via the alternatives system. The gnuplot-base package provides no GUI terminal at all and will replace the gnuplot package unless you chose to install one of the other feature packages, this variant is always directly available as gnuplot-base. This variant is most useful for scripted gnuplot invocations and for using it interactively in MinTTY with the sixelgd terminal. The gnuplot-X11 package resembles the previous gnuplot package most closely, the executable for this variant is gnuplot-X11 and depends on a relatively small number of X11 libraries. The gnuplot-wx package adds the wxt terminal and retains the X11 terminal. The executable for this variant is gnuplot-wx and it depends on an extensive list of GNOME libraries. The gnuplot-qt package provides the qt terminal and retains the X11 terminal. The executable for this variant is gnuplot-qt5 and of course depends on Qt5 libraries. Please note that while gnuplot-qt5 does build, the qt terminal does not actually work yet, see above. -- *** CYGWIN-ANNOUNCE UNSUBSCRIBE INFO *** If you want to unsubscribe from the cygwin-announce mailing list, look at the "List-Unsubscribe: " tag in the email header of this message. Send email to the address specified there. It will be in the format: cygwin-announce-unsubscribe-you=yourdomain@cygwin.com If you need more information on unsubscribing, start reading here: http://sourceware.org/lists.html#unsubscribe-simple Please read *all* of the information on unsubscribing that is available starting at this URL.
Re: Cygwin PHP (all available versions) has a hard 4MB memory limit
Greetings, km2z7kca0oge--- via Cygwin! > Recently I've noticed that PHP seems have to hard 4MB memory limit, even > when overridden in the settings. For whatever reason the bundled PHP > versions with Cygwin have this problem. > The failing message is `Out of memory` which indicates PHP thinks the > system has exhausted all RAM (the usual out of memory message is "Fatal > error: Allowed memory size of XXX bytes exhausted" when you hit the cap). > If I compile a fresh PHP from source (for example 7.4.8) > https://github.com/php/php-src/tree/php-7.4.8 it works absolutely fine. > I've reproduced this on another PC with a fresh install of Cygwin only > installing the base PHP as the only extra package. > Example script: > ``` > echo ini_get('memory_limit'), "\n"; > file_get_contents('http://mirror.cwcs.co.uk/centos/8.2.2004/isos/x86_64/CentOS-8.2.2004-x86_64-dvd1.iso'); > // A large file such as an ISO. > ``` #!/usr/bin/env php 7.3.7 System => CYGWIN_NT-6.1-7601 daemon2 3.1.5-340.x86_64 2020-06-01 08:59 UTC x86_64 Build Date => Jul 21 2019 16:57:32 Server API => Command Line Interface Virtual Directory Support => disabled Configuration File (php.ini) Path => /etc Loaded Configuration File => /etc/php-cli.ini Scan this dir for additional .ini files => /etc/php.d Additional .ini files parsed => /etc/php.d/00-core.ini, /etc/php.d/00-date.ini, /etc/php.d/00-mail.ini, /etc/php.d/10-Cygwin.ini, /etc/php.d/10-mbstring.ini, /etc/php.d/20-intl.ini, /etc/php.d/20-openssl.ini, /etc/php.d/20-phar.ini, /etc/php.d/20-session.ini, /etc/php.d/20-tidy.ini, /etc/php.d/20-timezonedb.ini, /etc/php.d/bcmath.ini, /etc/php.d/bz2.ini, /etc/php.d/calendar.ini, /etc/php.d/ctype.ini, /etc/php.d/curl.ini, /etc/php.d/exif.ini, /etc/php.d/fileinfo.ini, /etc/php.d/ftp.ini, /etc/php.d/gd.ini, /etc/php.d/gettext.ini, /etc/php.d/gmp.ini, /etc/php.d/iconv.ini, /etc/php.d/imap.ini, /etc/php.d/intl.ini, /etc/php.d/json.ini, /etc/php.d/ldap.ini, /etc/php.d/opcache.ini, /etc/php.d/pdo_mysql.ini, /etc/php.d/pdo_odbc.ini, /etc/php.d/pdo_sqlite.ini, /etc/php.d/phar.ini, /etc/php.d/posix.ini, /etc/php.d/shmop.ini, /etc/php.d/simplexml.ini, /etc/php.d/soap.ini, /etc/php.d/sockets.ini, /etc/php.d/sqlite3.ini, /etc/php.d/sysvmsg.ini, /etc/php.d/sysvsem.ini, /etc/php.d/sysvshm.ini, /etc/php.d/tidy.ini, /etc/php.d/tokenizer.ini, /etc/php.d/wddx.ini, /etc/php.d/xmlreader.ini, /etc/php.d/xmlrpc.ini, /etc/php.d/xmlwriter.ini, /etc/php.d/xsl.ini, /etc/php.d/zip.ini, /etc/php.d/zlib.ini PHP API => 20180731 PHP Extension => 20180731 Zend Extension => 320180731 Zend Extension Build => API320180731,NTS PHP Extension Build => API20180731,NTS Debug Build => no Thread Safety => disabled Zend Signal Handling => enabled Zend Memory Manager => enabled Zend Multibyte Support => provided by mbstring IPv6 Support => enabled DTrace Support => disabled Registered PHP Streams => https, ftps, php, file, glob, data, http, ftp, compress.bzip2, compress.zlib, zip, phar Registered Stream Socket Transports => tcp, udp, unix, udg, ssl, sslv3, tls, tlsv1.0, tlsv1.1, tlsv1.2 Registered Stream Filters => string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, bzip2.*, convert.iconv.*, zlib.* This program makes use of the Zend Scripting Language Engine: Zend Engine v3.3.7, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.3.7, Copyright (c) 1999-2018, by Zend Technologies -1 642,477,327 > Output: > $ php test.php > 128M > PHP Fatal error: Out of memory (allocated 4194304) (tried to allocate > 2097184 bytes) in /c/Users/JackBlower/tmp-safe/test.php on line 5 > Any help would be great thanks. More info is needed. -- With best regards, Andrey Repin Saturday, July 18, 2020 10:28:03 Sorry for my terrible english... -- 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
Re: [ITA] cmake-3.18.0-1 and related packages
Marco Atzeri via Cygwin-apps writes: > I know, but it take times, specially as I will hate to lose > the history if I port only last version You can rewrite the git repo with filter-branch to keep the history. I did that with my packages since I also had them in a single repo. I now have them as submodules in a new repo, although the submodules wouldn't strictly be necessary. Regards, Achim. -- +<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+ Factory and User Sound Singles for Waldorf rackAttack: http://Synth.Stromeko.net/Downloads.html#WaldorfSounds
Re: [ITA] cmake-3.18.0-1 and related packages
On 18.07.2020 08:12, Achim Gratz wrote: Marco Atzeri via Cygwin-apps writes: New cygport and patch files are placed to https://github.com/cygwin-lem/cmake-cygport/tree/n_3.18.0-1d (I can't find any git repository for cmake.cygport). all mine are together at https://github.com/matzeri/cygwin-pkg You should put them on https://cygwin.com/git-cygwin-packages/ preferrably as the canonical source. I know, but it take times, specially as I will hate to lose the history if I port only last version Regards, Achim. Regards Marco
Re: [ANNOUNCEMENT] Test: cmake-3.17.3-1
On 18.07.2020 08:14, Achim Gratz wrote: Lemures Lemniscati via Cygwin writes: Some errors'll occur in Source/kwsys/SystemInformation.cxx since /proc/meminfo in Cygwin has only these fields $ cat /proc/meminfo MemTotal: 20824372 kB MemFree:13545156 kB HighTotal: 0 kB HighFree: 0 kB LowTotal: 20824372 kB LowFree:13545156 kB SwapTotal: 3145728 kB SwapFree:3131252 kB In particular, we have no MemAvailable field in Cygwin. I attached a patch 0001-3.17.3-cpuinfo_suppl.patch for this issue, which should be applied after 3.17.3-cpuinfo.patch The patch separates a case defined(__CYGWIN__) from a case defined(__linux) I'd suggest we rather patch Cygwin to provide that field in meminfo. Regards, Achim. https://cygwin.com/acronyms/#PGA I am sure Corinna will appreciate it -- 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
Re: [ANNOUNCEMENT] Test: cmake-3.17.3-1
Lemures Lemniscati via Cygwin writes: > Some errors'll occur in Source/kwsys/SystemInformation.cxx > since /proc/meminfo in Cygwin has only these fields > > $ cat /proc/meminfo > MemTotal: 20824372 kB > MemFree:13545156 kB > HighTotal: 0 kB > HighFree: 0 kB > LowTotal: 20824372 kB > LowFree:13545156 kB > SwapTotal: 3145728 kB > SwapFree:3131252 kB > > In particular, we have no MemAvailable field in Cygwin. > > I attached a patch 0001-3.17.3-cpuinfo_suppl.patch for this issue, > which should be applied after 3.17.3-cpuinfo.patch > > The patch separates a case defined(__CYGWIN__) from a case defined(__linux) I'd suggest we rather patch Cygwin to provide that field in meminfo. Regards, Achim. -- +<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+ Factory and User Sound Singles for Waldorf Q+, Q and microQ: http://Synth.Stromeko.net/Downloads.html#WaldorfSounds -- 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
Re: [ITA] cmake-3.18.0-1 and related packages
Marco Atzeri via Cygwin-apps writes: >> New cygport and patch files are placed >> to https://github.com/cygwin-lem/cmake-cygport/tree/n_3.18.0-1d >> (I can't find any git repository for cmake.cygport). > > all mine are together at > > https://github.com/matzeri/cygwin-pkg You should put them on https://cygwin.com/git-cygwin-packages/ preferrably as the canonical source. Regards, Achim. -- +<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+ Factory and User Sound Singles for Waldorf Q+, Q and microQ: http://Synth.Stromeko.net/Downloads.html#WaldorfSounds