WebP Express - Version 0.25.1

Version Description

(released 7 dec 2021) * An innocent text file triggered Windows Defender. It has been removed. Thanks to Javad Naroogheh from Iran for notifying

Download this release

Release Info

Developer rosell.dk
Plugin Icon 128x128 WebP Express
Version 0.25.1
Comparing to
See all releases

Code changes from version 0.25.0 to 0.25.1

README.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: https://ko-fi.com/rosell
4
  Tags: webp, images, performance
5
  Requires at least: 4.0
6
  Tested up to: 5.8
7
- Stable tag: 0.25.0
8
  Requires PHP: 5.6
9
  License: GPLv3
10
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
@@ -35,6 +35,7 @@ The plugin implements the "WebP On Demand" solution described [here](https://git
35
  - [Image MimeType Guesser](https://github.com/rosell-dk/image-mime-type-guesser): For detecting mime types of images.
36
  - [HTAccess Capability Tester](https://github.com/rosell-dk/htaccess-capability-tester): For testing .htaccess capabilities in a given directory, using live tests
37
  - [WebP Convert File Manager](https://github.com/rosell-dk/webp-convert-filemanager): For browsing conversions and triggering conversions.
 
38
 
39
  ### Benefits
40
  - Much faster load time for images in browsers that supports webp. The converted images are typically *less than half the size* (for jpeg), while maintaining the same quality. Bear in mind that for most web sites, images are responsible for the largest part of the waiting time.
@@ -177,11 +178,11 @@ Bread on the table don't come for free, even though this plugin does, and always
177
  * Ruben Solvang
178
 
179
  **Persons who recently contributed with [ko-fi](https://ko-fi.com/rosell) - Thanks!**
 
 
180
  * 20 Nov: Ben J
181
  * 13 Nov: @sween
182
  * 9 Nov: @utrenkner
183
- * 26 Oct: Anonymous
184
- * 29 Aug: Pawa Tecnologia
185
 
186
  **Persons who contributed with extra generously amounts of coffee / lifetime backing (>30$) - thanks!:**
187
 
@@ -813,6 +814,10 @@ If you want to make sure that my coffee supplies don't run dry, you can even buy
813
 
814
  == Changelog ==
815
 
 
 
 
 
816
  = 0.25.0 =
817
  (released 7 dec 2021, on my daughters 10 year birthday!)
818
  * No exec()? - We don't give up easily, but now emulates it if possible, using proc_open(), passthru() or other alternatives. The result is that the cwebp converter now is available on more systems. Quality detection of jpegs also works on more systems now. The fallback feature with the emulations is btw implemented in a new library, [exec-with-fallback](https://github.com/rosell-dk/exec-with-fallback)
@@ -906,6 +911,9 @@ For older releases, check out changelog.txt
906
 
907
  == Upgrade Notice ==
908
 
 
 
 
909
  = 0.25.0 =
910
  * No exec()? - We don't give up so easily anymore.
911
 
4
  Tags: webp, images, performance
5
  Requires at least: 4.0
6
  Tested up to: 5.8
7
+ Stable tag: 0.25.1
8
  Requires PHP: 5.6
9
  License: GPLv3
10
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
35
  - [Image MimeType Guesser](https://github.com/rosell-dk/image-mime-type-guesser): For detecting mime types of images.
36
  - [HTAccess Capability Tester](https://github.com/rosell-dk/htaccess-capability-tester): For testing .htaccess capabilities in a given directory, using live tests
37
  - [WebP Convert File Manager](https://github.com/rosell-dk/webp-convert-filemanager): For browsing conversions and triggering conversions.
38
+ - [Exec With Fallback](https://github.com/rosell-dk/exec-with-fallback): For emulating exec() on systems where it is disabled (using proc_open(), passthru() or similar alternatives).
39
 
40
  ### Benefits
41
  - Much faster load time for images in browsers that supports webp. The converted images are typically *less than half the size* (for jpeg), while maintaining the same quality. Bear in mind that for most web sites, images are responsible for the largest part of the waiting time.
178
  * Ruben Solvang
179
 
180
  **Persons who recently contributed with [ko-fi](https://ko-fi.com/rosell) - Thanks!**
181
+ * 3 Dec: Dallas
182
+ * 29 Nov: tadesco.org
183
  * 20 Nov: Ben J
184
  * 13 Nov: @sween
185
  * 9 Nov: @utrenkner
 
 
186
 
187
  **Persons who contributed with extra generously amounts of coffee / lifetime backing (>30$) - thanks!:**
188
 
814
 
815
  == Changelog ==
816
 
817
+ = 0.25.1 =
818
+ (released 7 dec 2021)
819
+ * An innocent text file triggered Windows Defender. It has been removed. Thanks to Javad Naroogheh from Iran for notifying
820
+
821
  = 0.25.0 =
822
  (released 7 dec 2021, on my daughters 10 year birthday!)
823
  * No exec()? - We don't give up easily, but now emulates it if possible, using proc_open(), passthru() or other alternatives. The result is that the cwebp converter now is available on more systems. Quality detection of jpegs also works on more systems now. The fallback feature with the emulations is btw implemented in a new library, [exec-with-fallback](https://github.com/rosell-dk/exec-with-fallback)
911
 
912
  == Upgrade Notice ==
913
 
914
+ = 0.25.1 =
915
+ * An innocent text file was triggering Windows Defender.
916
+
917
  = 0.25.0 =
918
  * No exec()? - We don't give up so easily anymore.
919
 
changelog.txt CHANGED
@@ -1,3 +1,7 @@
 
 
 
 
1
  = 0.25.0 =
2
  (released 7 dec 2021, on my daughters 10 year birthday!)
3
  * No exec()? - We don't give up easily, but now emulates it if possible, using proc_open(), passthru() or other alternatives. The result is that the cwebp converter now is available on more systems. Quality detection of jpegs also works on more systems now. The fallback feature with the emulations is btw implemented in a new library, [exec-with-fallback](https://github.com/rosell-dk/exec-with-fallback)
1
+ = 0.25.1 =
2
+ (released 7 dec 2021)
3
+ * An innocent text file triggered Windows Defender. It has been removed. Thanks to Javad Naroogheh from Iran for notifying
4
+
5
  = 0.25.0 =
6
  (released 7 dec 2021, on my daughters 10 year birthday!)
7
  * No exec()? - We don't give up easily, but now emulates it if possible, using proc_open(), passthru() or other alternatives. The result is that the cwebp converter now is available on more systems. Quality detection of jpegs also works on more systems now. The fallback feature with the emulations is btw implemented in a new library, [exec-with-fallback](https://github.com/rosell-dk/exec-with-fallback)
docs/publishing.md CHANGED
@@ -114,12 +114,12 @@ svn status | grep '^!' | awk '{print $2}' | xargs svn delete --force (t
114
  Then add a new tag
115
  ```
116
  cd svn
117
- svn cp trunk tags/0.24.2 (this will copy trunk into a new tag)
118
  ```
119
 
120
  And commit!
121
  ```
122
- svn ci -m '0.24.2'
123
  ```
124
 
125
 
114
  Then add a new tag
115
  ```
116
  cd svn
117
+ svn cp trunk tags/0.25.0 (this will copy trunk into a new tag)
118
  ```
119
 
120
  And commit!
121
  ```
122
+ svn ci -m '0.25.0'
123
  ```
124
 
125
 
lib/classes/ConvertHelperIndependent.php CHANGED
@@ -571,7 +571,7 @@ APACHE
571
  $text = preg_replace('#' . preg_quote($_SERVER["DOCUMENT_ROOT"]) . '#', '[doc-root]', $text);
572
 
573
  // TODO: Put version number somewhere else. Ie \WebPExpress\VersionNumber::version
574
- $text = 'WebP Express 0.25.0. ' . $msgTop . ', ' . date("Y-m-d H:i:s") . "\n\r\n\r" . $text;
575
 
576
  $logFile = self::getLogFilename($source, $logDir);
577
 
571
  $text = preg_replace('#' . preg_quote($_SERVER["DOCUMENT_ROOT"]) . '#', '[doc-root]', $text);
572
 
573
  // TODO: Put version number somewhere else. Ie \WebPExpress\VersionNumber::version
574
+ $text = 'WebP Express 0.25.1. ' . $msgTop . ', ' . date("Y-m-d H:i:s") . "\n\r\n\r" . $text;
575
 
576
  $logFile = self::getLogFilename($source, $logDir);
577
 
vendor/composer/installed.json CHANGED
@@ -284,17 +284,17 @@
284
  },
285
  {
286
  "name": "rosell-dk/exec-with-fallback",
287
- "version": "1.1.0",
288
- "version_normalized": "1.1.0.0",
289
  "source": {
290
  "type": "git",
291
  "url": "https://github.com/rosell-dk/exec-with-fallback.git",
292
- "reference": "f15871ff0a419ace7b034607adf483d7542fffeb"
293
  },
294
  "dist": {
295
  "type": "zip",
296
- "url": "https://api.github.com/repos/rosell-dk/exec-with-fallback/zipball/f15871ff0a419ace7b034607adf483d7542fffeb",
297
- "reference": "f15871ff0a419ace7b034607adf483d7542fffeb",
298
  "shasum": ""
299
  },
300
  "require": {
@@ -308,7 +308,7 @@
308
  "suggest": {
309
  "php-stan/php-stan": "Suggested for dev, in order to analyse code before committing"
310
  },
311
- "time": "2021-12-01T08:54:31+00:00",
312
  "type": "library",
313
  "extra": {
314
  "scripts-descriptions": {
@@ -348,7 +348,7 @@
348
  ],
349
  "support": {
350
  "issues": "https://github.com/rosell-dk/exec-with-fallback/issues",
351
- "source": "https://github.com/rosell-dk/exec-with-fallback/tree/1.1.0"
352
  },
353
  "funding": [
354
  {
284
  },
285
  {
286
  "name": "rosell-dk/exec-with-fallback",
287
+ "version": "1.1.1",
288
+ "version_normalized": "1.1.1.0",
289
  "source": {
290
  "type": "git",
291
  "url": "https://github.com/rosell-dk/exec-with-fallback.git",
292
+ "reference": "af7d9b513edd2a85ce8ad392f27099dab6d9def9"
293
  },
294
  "dist": {
295
  "type": "zip",
296
+ "url": "https://api.github.com/repos/rosell-dk/exec-with-fallback/zipball/af7d9b513edd2a85ce8ad392f27099dab6d9def9",
297
+ "reference": "af7d9b513edd2a85ce8ad392f27099dab6d9def9",
298
  "shasum": ""
299
  },
300
  "require": {
308
  "suggest": {
309
  "php-stan/php-stan": "Suggested for dev, in order to analyse code before committing"
310
  },
311
+ "time": "2021-12-07T10:37:35+00:00",
312
  "type": "library",
313
  "extra": {
314
  "scripts-descriptions": {
348
  ],
349
  "support": {
350
  "issues": "https://github.com/rosell-dk/exec-with-fallback/issues",
351
+ "source": "https://github.com/rosell-dk/exec-with-fallback/tree/1.1.1"
352
  },
353
  "funding": [
354
  {
vendor/composer/installed.php CHANGED
@@ -5,7 +5,7 @@
5
  'type' => 'wordpress-plugin',
6
  'install_path' => __DIR__ . '/../../',
7
  'aliases' => array(),
8
- 'reference' => '7f2f1fb55115c406a9142afaf571e9fc20249c4b',
9
  'name' => 'rosell-dk/webp-express',
10
  'dev' => true,
11
  ),
@@ -38,12 +38,12 @@
38
  'dev_requirement' => false,
39
  ),
40
  'rosell-dk/exec-with-fallback' => array(
41
- 'pretty_version' => '1.1.0',
42
- 'version' => '1.1.0.0',
43
  'type' => 'library',
44
  'install_path' => __DIR__ . '/../rosell-dk/exec-with-fallback',
45
  'aliases' => array(),
46
- 'reference' => 'f15871ff0a419ace7b034607adf483d7542fffeb',
47
  'dev_requirement' => false,
48
  ),
49
  'rosell-dk/htaccess-capability-tester' => array(
@@ -88,7 +88,7 @@
88
  'type' => 'wordpress-plugin',
89
  'install_path' => __DIR__ . '/../../',
90
  'aliases' => array(),
91
- 'reference' => '7f2f1fb55115c406a9142afaf571e9fc20249c4b',
92
  'dev_requirement' => false,
93
  ),
94
  'roundcube/plugin-installer' => array(
5
  'type' => 'wordpress-plugin',
6
  'install_path' => __DIR__ . '/../../',
7
  'aliases' => array(),
8
+ 'reference' => 'ea58ba41b482adf628b88813812c3d927770d8f6',
9
  'name' => 'rosell-dk/webp-express',
10
  'dev' => true,
11
  ),
38
  'dev_requirement' => false,
39
  ),
40
  'rosell-dk/exec-with-fallback' => array(
41
+ 'pretty_version' => '1.1.1',
42
+ 'version' => '1.1.1.0',
43
  'type' => 'library',
44
  'install_path' => __DIR__ . '/../rosell-dk/exec-with-fallback',
45
  'aliases' => array(),
46
+ 'reference' => 'af7d9b513edd2a85ce8ad392f27099dab6d9def9',
47
  'dev_requirement' => false,
48
  ),
49
  'rosell-dk/htaccess-capability-tester' => array(
88
  'type' => 'wordpress-plugin',
89
  'install_path' => __DIR__ . '/../../',
90
  'aliases' => array(),
91
+ 'reference' => 'ea58ba41b482adf628b88813812c3d927770d8f6',
92
  'dev_requirement' => false,
93
  ),
94
  'roundcube/plugin-installer' => array(
vendor/rosell-dk/exec-with-fallback/README.md CHANGED
@@ -4,7 +4,7 @@
4
  [![Build Status](https://github.com/rosell-dk/exec-with-fallback/actions/workflows/php.yml/badge.svg)](https://github.com/rosell-dk/exec-with-fallback/actions/workflows/php.yml)
5
  [![Software License](http://poser.pugx.org/rosell-dk/exec-with-fallback/license)](https://github.com/rosell-dk/exec-with-fallback/blob/master/LICENSE)
6
  [![PHP Version Require](http://poser.pugx.org/rosell-dk/exec-with-fallback/require/php)](https://packagist.org/packages/rosell-dk/exec-with-fallback)
7
-
8
 
9
  Some shared hosts may have disabled *exec()*, but leaved *proc_open()*, *passthru()*, *popen()* or *shell_exec()* open. In case you want to easily fall back to emulating *exec()* with one of these, you have come to the right library.
10
 
@@ -54,3 +54,9 @@ I made sure that the function behaves exactly like *exec()*, and wrote a lot of
54
 
55
  **going to be maintained**\
56
  I'm going to use this library in [webp-convert](https://github.com/rosell-dk/webp-convert), which is used in many projects. So it is going to be widely used. While I don't expect much need for maintenance for this project, it is going to be there, if needed.
 
 
 
 
 
 
4
  [![Build Status](https://github.com/rosell-dk/exec-with-fallback/actions/workflows/php.yml/badge.svg)](https://github.com/rosell-dk/exec-with-fallback/actions/workflows/php.yml)
5
  [![Software License](http://poser.pugx.org/rosell-dk/exec-with-fallback/license)](https://github.com/rosell-dk/exec-with-fallback/blob/master/LICENSE)
6
  [![PHP Version Require](http://poser.pugx.org/rosell-dk/exec-with-fallback/require/php)](https://packagist.org/packages/rosell-dk/exec-with-fallback)
7
+ [![Daily Downloads](http://poser.pugx.org/rosell-dk/exec-with-fallback/d/daily)](https://packagist.org/packages/rosell-dk/exec-with-fallback)
8
 
9
  Some shared hosts may have disabled *exec()*, but leaved *proc_open()*, *passthru()*, *popen()* or *shell_exec()* open. In case you want to easily fall back to emulating *exec()* with one of these, you have come to the right library.
10
 
54
 
55
  **going to be maintained**\
56
  I'm going to use this library in [webp-convert](https://github.com/rosell-dk/webp-convert), which is used in many projects. So it is going to be widely used. While I don't expect much need for maintenance for this project, it is going to be there, if needed.
57
+
58
+ ## Do you like what I do?
59
+ Perhaps you want to support my work, so I can continue doing it :)
60
+
61
+ - [Become a backer or sponsor on Patreon](https://www.patreon.com/rosell).
62
+ - [Buy me a Coffee](https://ko-fi.com/rosell)
vendor/rosell-dk/exec-with-fallback/docs/notes.md DELETED
@@ -1,116 +0,0 @@
1
-
2
- Read up on proc_open
3
- https://www.sitepoint.com/proc-open-communicate-with-the-outside-world/
4
- https://www.php.net/manual/en/function.proc-open.php
5
- https://www.php.net/manual/en/function.proc-close.php
6
- https://www.php.net/manual/en/function.stream-set-blocking.php
7
- https://www.php.net/manual/en/function.stream-select.php
8
- https://stackoverflow.com/questions/21353611/how-to-wait-for-a-process-executed-by-proc-open-in-php
9
- https://pretagteam.com/question/how-to-wait-for-a-process-executed-by-procopen-in-php
10
- https://www.google.com/search?q=proc_open+wait&oq=proc_open+wait&aqs=chrome..69i57.2386j0j1&sourceid=chrome&ie=UTF-8
11
- https://wuhzat.wordpress.com/2011/01/11/php-exec-vs-proc_open/
12
- https://stackoverflow.com/questions/5673740/php-or-apache-exec-popen-system-and-proc-open-commands-do-not-execute-any-com
13
- https://stackoverflow.com/questions/25424506/the-difference-between-exec-and-popen/25424608
14
-
15
- And see how other uses it:
16
- https://packagist.org/packages/tivie/command
17
- https://github.com/tivie/command/blob/master/src/Command.php
18
- https://packagist.org/packages/symfony/process
19
- https://github.com/axute/process
20
- https://packagist.org/?query=proc_open
21
- https://stackoverflow.com/questions/6014819/how-to-get-output-of-proc-open
22
-
23
-
24
- https://linuxhint.com/wait_command_linux/
25
-
26
-
27
- #pcntl_exec
28
- Should we use it?
29
- https://www.php.net/manual/en/function.proc-open.php#102239
30
- https://www.php.net/manual/en/function.pcntl-exec.php
31
- https://www.php.net/manual/en/function.posix-mkfifo.php
32
-
33
-
34
- #popen
35
- https://www.php.net/manual/en/function.popen.php
36
-
37
-
38
- #shell_exec
39
- Hm... no exit code.. how to deal with that?
40
- https://www.php.net/manual/en/function.shell-exec.php
41
-
42
-
43
- # disable_functions
44
- Perhaps check `ini_get('disable_functions')` too ?
45
- https://stackoverflow.com/questions/3938120/check-if-exec-is-disabled
46
- https://stackoverflow.com/questions/2749591/php-exec-check-if-enabled-or-disabled
47
- https://www.py4u.net/discuss/26911
48
-
49
- # passthrough
50
- https://www.php.net/manual/en/function.passthru.php
51
-
52
- According to this, you cannot store in variable:
53
- https://stackoverflow.com/questions/732832/php-exec-vs-system-vs-passthru
54
-
55
- However, it can be done with output buffering:
56
- ```
57
- function yemenEx($in)
58
- {
59
- $out = '';
60
- if (function_exists('exec')) {
61
- @exec($in, $out);
62
- $out = @join("\n", $out);
63
- } elseif (function_exists('passthru')) {
64
- ob_start();
65
- @passthru($in);
66
- $out = ob_get_clean();
67
- } elseif (function_exists('system')) {
68
- ob_start();
69
- @system($in);
70
- $out = ob_get_clean();
71
- } elseif (function_exists('shell_exec')) {
72
- $out = shell_exec($in);
73
- } elseif (is_resource($f = @popen($in, "r"))) {
74
- $out = "";
75
- while (!@feof($f)) {
76
- $out .= fread($f, 1024);
77
- }
78
- pclose($f);
79
- }
80
- return $out;
81
- }
82
- ```
83
- (got it from here: https://hotexamples.com/examples/-/-/passthru/php-passthru-function-examples.html)
84
- Also check this little overview out: https://stackoverflow.com/questions/732832/php-exec-vs-system-vs-passthru
85
- https://stackoverflow.com/questions/732832/php-exec-vs-system-vs-passthru
86
-
87
-
88
-
89
- #system
90
-
91
-
92
- Should I call the library ExecWithBackup or something like that instead? - nah, only if I find a better name than that
93
-
94
-
95
- # What should this be called?
96
- Simply what it does:
97
- - ExecWithFallback
98
- - ExecOrSimilar
99
- - TryHarderExec / ExecTryHarder
100
-
101
- The rat finds its way… And dont give up easily. Tries different ways
102
- - ExecRat / RatExec
103
-
104
- Eller navngiv efter Wolfe, “the fixer” i Pulp Fiction - a no nonense charactor who gets the job done (with style)
105
- - WolfeExec / ExecWolfe
106
-
107
- Nationality:
108
- - GermanExec
109
- - DanishExec
110
-
111
- Material:
112
- - RubberExec
113
- - RubberbandExec
114
-
115
- Other ideas:
116
- StrongExec, ResilientExec, EmulatedExec, GoalOrientedExec, ExecContractor, ExecDeLuxe, DropInExec, BetterExec, ExecMaster, ExecDragon, CuteExec, PersistantExec, ToughExec, ExecWithFallback, AdaptableExec, CompliantExec, ImprovedExec, ResoluteExec, StautExec, ObstinateExec, KeenExec, AgileExec, Smooth, Flexible, ExecAndFriends, SturdyExex, ResilientExec