autopkg / apizz-recipes

MIT License
14 stars 23 forks source link

Update regex for EpsonScannerDriver download recipe #102

Open jazzace opened 1 week ago

jazzace commented 1 week ago

On at least one current download page (V850), a driver download named "ICA Scanner Driver" appears before Epson's driver. Thus, the regex captures it instead of the desired Epson Scan software, which can also make child recipes fail. This PR adds a " to the beginning of the regex to only capture the download whose name starts with Scanner Driver.

apizz commented 1 week ago

Mind giving me a verbose output run so I can rubber stamp?

jazzace commented 1 week ago

Sure. Here are two runs, one where the ICA Scanner Driver appears before the desired Scanner Driver and another where the ICA Driver is not present. I have not tested every case, but this fix does not appear to cause a failure with products that didn't have the identified problem.

ICA Present

% autopkg run -vv --ignore-parent-trust-verification-errors EpsonScannerDriverandScanUtility-NewCert.download -k SEARCH_URL="https://epson.ca/Support/Scanners/Perfection-Series/Epson-Perfection-V850-Pro/s/SPT_B11B224201?review-filter=macOS+13.x"
Processing EpsonScannerDriverandScanUtility-NewCert.download...
URLTextSearcher
{'Input': {'re_pattern': '"Scanner '
                         'Driver[^v]*v[\\d.]+[\\s\\w="-;]+href="(https://ftp.epson.com/drivers/[\\w].*\\.dmg)"',
           'result_output_var_name': 'url',
           'url': 'https://epson.ca/Support/Scanners/Perfection-Series/Epson-Perfection-V850-Pro/s/SPT_B11B224201?review-filter=macOS+13.x'}}
URLTextSearcher: Found matching text (url): https://ftp.epson.com/drivers/V800_V850_EScan2_6645_AM.dmg
{'Output': {'url': 'https://ftp.epson.com/drivers/V800_V850_EScan2_6645_AM.dmg'}}
URLDownloader
{'Input': {'url': 'https://ftp.epson.com/drivers/V800_V850_EScan2_6645_AM.dmg'}}
URLDownloader: No value supplied for prefetch_filename, setting default value of: False
URLDownloader: No value supplied for CHECK_FILESIZE_ONLY, setting default value of: False
URLDownloader: Storing new Last-Modified header: Tue, 10 Oct 2023 16:22:26 GMT
URLDownloader: Storing new ETag header: "624ed26085a66d68cd7b6e2e7b43bc0b-13"
URLDownloader: Downloaded /Volumes/AutoPkgLibrary/AutoPkg/Cache/com.github.apizz.download.EpsonScannerDriverandScanUtility-NewCert/downloads/V800_V850_EScan2_6645_AM.dmg
{'Output': {'download_changed': True,
            'etag': '"624ed26085a66d68cd7b6e2e7b43bc0b-13"',
            'last_modified': 'Tue, 10 Oct 2023 16:22:26 GMT',
            'pathname': '/Volumes/AutoPkgLibrary/AutoPkg/Cache/com.github.apizz.download.EpsonScannerDriverandScanUtility-NewCert/downloads/V800_V850_EScan2_6645_AM.dmg',
            'url_downloader_summary_result': {'data': {'download_path': '/Volumes/AutoPkgLibrary/AutoPkg/Cache/com.github.apizz.download.EpsonScannerDriverandScanUtility-NewCert/downloads/V800_V850_EScan2_6645_AM.dmg'},
                                              'summary_text': 'The following '
                                                              'new items were '
                                                              'downloaded:'}}}
EndOfCheckPhase
{'Input': {}}
{'Output': {}}
CodeSignatureVerifier
{'Input': {'expected_authority_names': ['Developer ID Installer: Seiko Epson '
                                        'Corporation (TXAEAV5RN4)',
                                        'Developer ID Certification Authority',
                                        'Apple Root CA'],
           'input_path': '/Volumes/AutoPkgLibrary/AutoPkg/Cache/com.github.apizz.download.EpsonScannerDriverandScanUtility-NewCert/downloads/V800_V850_EScan2_6645_AM.dmg/*.pkg'}}
CodeSignatureVerifier: Mounted disk image /Volumes/AutoPkgLibrary/AutoPkg/Cache/com.github.apizz.download.EpsonScannerDriverandScanUtility-NewCert/downloads/V800_V850_EScan2_6645_AM.dmg
CodeSignatureVerifier: Using path '/private/tmp/dmg.wqaOhQ/Epson Scan 2.pkg' matched from globbed '/private/tmp/dmg.wqaOhQ/*.pkg'.
CodeSignatureVerifier: Verifying installer package signature...
CodeSignatureVerifier: Package "Epson Scan 2.pkg":
CodeSignatureVerifier:    Status: signed by a developer certificate issued by Apple for distribution
CodeSignatureVerifier:    Notarization: trusted by the Apple notary service
CodeSignatureVerifier:    Signed with a trusted timestamp on: 2023-08-28 08:37:37 +0000
CodeSignatureVerifier:    Certificate Chain:
CodeSignatureVerifier:     1. Developer ID Installer: Seiko Epson Corporation (TXAEAV5RN4)
CodeSignatureVerifier:        Expires: 2027-02-01 22:12:15 +0000
CodeSignatureVerifier:        SHA256 Fingerprint:
CodeSignatureVerifier:            DD 5B 5E 7A 35 00 13 A0 DC 93 69 F4 F3 63 79 2F C6 8F 5D AE F2 AA 
CodeSignatureVerifier:            E2 13 82 31 DC 95 B7 08 44 58
CodeSignatureVerifier:        ------------------------------------------------------------------------
CodeSignatureVerifier:     2. Developer ID Certification Authority
CodeSignatureVerifier:        Expires: 2027-02-01 22:12:15 +0000
CodeSignatureVerifier:        SHA256 Fingerprint:
CodeSignatureVerifier:            7A FC 9D 01 A6 2F 03 A2 DE 96 37 93 6D 4A FE 68 09 0D 2D E1 8D 03 
CodeSignatureVerifier:            F2 9C 88 CF B0 B1 BA 63 58 7F
CodeSignatureVerifier:        ------------------------------------------------------------------------
CodeSignatureVerifier:     3. Apple Root CA
CodeSignatureVerifier:        Expires: 2035-02-09 21:40:36 +0000
CodeSignatureVerifier:        SHA256 Fingerprint:
CodeSignatureVerifier:            B0 B1 73 0E CB C7 FF 45 05 14 2C 49 F1 29 5E 6E DA 6B CA ED 7E 2C 
CodeSignatureVerifier:            68 C5 BE 91 B5 A1 10 01 F0 24
CodeSignatureVerifier: 
CodeSignatureVerifier: Signature is valid
CodeSignatureVerifier: Authority name chain is valid
{'Output': {}}
Receipt written to /Volumes/AutoPkgLibrary/AutoPkg/Cache/com.github.apizz.download.EpsonScannerDriverandScanUtility-NewCert/receipts/EpsonScannerDriverandScanUtility-NewCert-receipt-20240906-100005.plist

The following new items were downloaded:
    Download Path                                                                                                                                    
    -------------                                                                                                                                    
    /Volumes/AutoPkgLibrary/AutoPkg/Cache/com.github.apizz.download.EpsonScannerDriverandScanUtility-NewCert/downloads/V800_V850_EScan2_6645_AM.dmg 

No ICA

% autopkg run -vv --ignore-parent-trust-verification-errors EpsonScannerDriverandScanUtility-NewCert.download -k SEARCH_URL="https://epson.ca/Support/Scanners/Expression-Series/Epson-Expression-12000XL---Graphic-Arts/s/SPT_12000XL-GA?review-filter=macOS+14.x"
Processing EpsonScannerDriverandScanUtility-NewCert.download...
URLTextSearcher
{'Input': {'re_pattern': '"Scanner '
                         'Driver[^v]*v[\\d.]+[\\s\\w="-;]+href="(https://ftp.epson.com/drivers/[\\w].*\\.dmg)"',
           'result_output_var_name': 'url',
           'url': 'https://epson.ca/Support/Scanners/Expression-Series/Epson-Expression-12000XL---Graphic-Arts/s/SPT_12000XL-GA?review-filter=macOS+14.x'}}
URLTextSearcher: Found matching text (url): https://ftp.epson.com/drivers/EXP12000XL_EScan2_6645_AM.dmg
{'Output': {'url': 'https://ftp.epson.com/drivers/EXP12000XL_EScan2_6645_AM.dmg'}}
URLDownloader
{'Input': {'url': 'https://ftp.epson.com/drivers/EXP12000XL_EScan2_6645_AM.dmg'}}
URLDownloader: No value supplied for prefetch_filename, setting default value of: False
URLDownloader: No value supplied for CHECK_FILESIZE_ONLY, setting default value of: False
URLDownloader: Storing new Last-Modified header: Tue, 10 Oct 2023 16:21:18 GMT
URLDownloader: Storing new ETag header: "5b963baf97849f7640840a3418020ec0-7"
URLDownloader: Downloaded /Volumes/AutoPkgLibrary/AutoPkg/Cache/com.github.apizz.download.EpsonScannerDriverandScanUtility-NewCert/downloads/EXP12000XL_EScan2_6645_AM.dmg
{'Output': {'download_changed': True,
            'etag': '"5b963baf97849f7640840a3418020ec0-7"',
            'last_modified': 'Tue, 10 Oct 2023 16:21:18 GMT',
            'pathname': '/Volumes/AutoPkgLibrary/AutoPkg/Cache/com.github.apizz.download.EpsonScannerDriverandScanUtility-NewCert/downloads/EXP12000XL_EScan2_6645_AM.dmg',
            'url_downloader_summary_result': {'data': {'download_path': '/Volumes/AutoPkgLibrary/AutoPkg/Cache/com.github.apizz.download.EpsonScannerDriverandScanUtility-NewCert/downloads/EXP12000XL_EScan2_6645_AM.dmg'},
                                              'summary_text': 'The following '
                                                              'new items were '
                                                              'downloaded:'}}}
EndOfCheckPhase
{'Input': {}}
{'Output': {}}
CodeSignatureVerifier
{'Input': {'expected_authority_names': ['Developer ID Installer: Seiko Epson '
                                        'Corporation (TXAEAV5RN4)',
                                        'Developer ID Certification Authority',
                                        'Apple Root CA'],
           'input_path': '/Volumes/AutoPkgLibrary/AutoPkg/Cache/com.github.apizz.download.EpsonScannerDriverandScanUtility-NewCert/downloads/EXP12000XL_EScan2_6645_AM.dmg/*.pkg'}}
CodeSignatureVerifier: Mounted disk image /Volumes/AutoPkgLibrary/AutoPkg/Cache/com.github.apizz.download.EpsonScannerDriverandScanUtility-NewCert/downloads/EXP12000XL_EScan2_6645_AM.dmg
CodeSignatureVerifier: Using path '/private/tmp/dmg.Hcule2/Epson Scan 2.pkg' matched from globbed '/private/tmp/dmg.Hcule2/*.pkg'.
CodeSignatureVerifier: Verifying installer package signature...
CodeSignatureVerifier: Package "Epson Scan 2.pkg":
CodeSignatureVerifier:    Status: signed by a developer certificate issued by Apple for distribution
CodeSignatureVerifier:    Notarization: trusted by the Apple notary service
CodeSignatureVerifier:    Signed with a trusted timestamp on: 2023-09-20 23:43:22 +0000
CodeSignatureVerifier:    Certificate Chain:
CodeSignatureVerifier:     1. Developer ID Installer: Seiko Epson Corporation (TXAEAV5RN4)
CodeSignatureVerifier:        Expires: 2027-02-01 22:12:15 +0000
CodeSignatureVerifier:        SHA256 Fingerprint:
CodeSignatureVerifier:            DD 5B 5E 7A 35 00 13 A0 DC 93 69 F4 F3 63 79 2F C6 8F 5D AE F2 AA 
CodeSignatureVerifier:            E2 13 82 31 DC 95 B7 08 44 58
CodeSignatureVerifier:        ------------------------------------------------------------------------
CodeSignatureVerifier:     2. Developer ID Certification Authority
CodeSignatureVerifier:        Expires: 2027-02-01 22:12:15 +0000
CodeSignatureVerifier:        SHA256 Fingerprint:
CodeSignatureVerifier:            7A FC 9D 01 A6 2F 03 A2 DE 96 37 93 6D 4A FE 68 09 0D 2D E1 8D 03 
CodeSignatureVerifier:            F2 9C 88 CF B0 B1 BA 63 58 7F
CodeSignatureVerifier:        ------------------------------------------------------------------------
CodeSignatureVerifier:     3. Apple Root CA
CodeSignatureVerifier:        Expires: 2035-02-09 21:40:36 +0000
CodeSignatureVerifier:        SHA256 Fingerprint:
CodeSignatureVerifier:            B0 B1 73 0E CB C7 FF 45 05 14 2C 49 F1 29 5E 6E DA 6B CA ED 7E 2C 
CodeSignatureVerifier:            68 C5 BE 91 B5 A1 10 01 F0 24
CodeSignatureVerifier: 
CodeSignatureVerifier: Signature is valid
CodeSignatureVerifier: Authority name chain is valid
{'Output': {}}
Receipt written to /Volumes/AutoPkgLibrary/AutoPkg/Cache/com.github.apizz.download.EpsonScannerDriverandScanUtility-NewCert/receipts/EpsonScannerDriverandScanUtility-NewCert-receipt-20240906-100236.plist

The following new items were downloaded:
    Download Path                                                                                                                                     
    -------------                                                                                                                                     
    /Volumes/AutoPkgLibrary/AutoPkg/Cache/com.github.apizz.download.EpsonScannerDriverandScanUtility-NewCert/downloads/EXP12000XL_EScan2_6645_AM.dmg