Giter VIP home page Giter VIP logo

appimage / appimage.github.io Goto Github PK

View Code? Open in Web Editor NEW
296.0 16.0 533.0 121.58 MB

Given an URL to an AppImage, the GitHub action in this project inspects the AppImage and puts it into a community-maintained catalog

Home Page: https://appimage.github.io/

License: Other

Python 1.88% Shell 34.80% Io 0.11% HTML 29.34% JavaScript 1.16% DIGITAL Command Language 0.09% Ruby 0.07% SCSS 32.42% Reason 0.13%
appimage catalog

appimage.github.io's Issues

Test for mismatch between .desktop file and the WM_CLASS that the window reports

Test for mismatch between .desktop file and the WM_CLASS that the window reports and/or missing QApplication::setWindowIcon() (i.e., no icon on the dock)

We can find out which WM_CLASS your window has got when you type in a terminal: xprop WM_CLASS and then click at the window.

Some applications need this in the desktop file, like so:

StartupWMClass=discord

References:
http://discourse.appimage.org/t/appimage-does-not-show-icon-in-task-bar/40/5
https://askubuntu.com/questions/367396/what-represent-the-startupwmclass-field-of-a-desktop-file
https://solus-project.com/forums/viewtopic.php?t=9729

Harvest package.json for metadata (electron-builder)

https://api.github.com/repos/wireapp/wire-desktop/git/trees/7d1fadad353ba4dadd9a9c9ccc3598fa007002c4?recursive=1 search for package.json, would give us

  "name": "wireinternal",
  "productName": "WireInternal",
  "description": "Modern communication, full privacy.",
  "main": "main.js",
  "updateWinUrl": "https://wire-app.wire.com/win/internal/",
  "environment": "internal",
  "homepage": "https://wire.com",
  "license": "GPL-3.0",
  "author": "Wire Swiss <[email protected]>",
  "private": true,
  "repository": {
    "type": "git",
    "url": "https://github.com/wireapp/wire-desktop.git"
},

Perhaps we can get electron-builder to include this file into the AppImage, @develar?
Or even better, electron-builder could use this information to produce an AppStream metainfo file.

Use client-side JavaScript to get the latest release from GitHub

AppImageHub is a repository of AppImages available on the net, but we don't want to keep track of each version released. It is a vital part of the AppImage philosophy that there should be no intermediaries between application authors and users, and in the very same second a releases is made available, it should be "there" for download for users. Hence, for AppImages made available on GitHub Releases, we could use the GitHub API on the client side to get the latest AppImage.

Something along the lines of https://stackoverflow.com/questions/24987542/

<script type="text/javascript">
    $(document).ready(function () {
        GetLatestReleaseInfo();
    });

    function GetLatestReleaseInfo() {
        $.getJSON("https://api.github.com/repos/ShareX/ShareX/releases/latest").done(function (release) {
            var asset = release.assets[0];
            var downloadCount = 0;
            for (var i = 0; i < release.assets.length; i++) {
                downloadCount += release.assets[i].download_count;
            }
            var oneHour = 60 * 60 * 1000;
            var oneDay = 24 * oneHour;
            var dateDiff = new Date() - new Date(asset.updated_at);
            var timeAgo;
            if (dateDiff < oneDay)
            {
                timeAgo = (dateDiff / oneHour).toFixed(1) + " hours ago";
            }
            else
            {
                timeAgo = (dateDiff / oneDay).toFixed(1) + " days ago";
            }
            var releaseInfo = release.name + " was updated " + timeAgo + " and downloaded " + downloadCount.toLocaleString() + " times.";
            $(".sharex-download").attr("href", asset.browser_download_url);
            $(".release-info").text(releaseInfo);
            $(".release-info").fadeIn("slow");
        });
    }
</script>

TODO: Iterate through all AppImages that may be in the latest release and return the download link for the one matching the architecture the browser is running.

Help from JavaScript wizards highly appreciated.

AppImages that could benefit from AppStream metainfo

Dear upstream author, if you are reading this then chances are that someone has added a link to your application to the AppImageHub central directory of available AppImages, and has determined that your application could be represented better if we had more metadata about it, such as description, screenshots, etc.

This project, like many distributions such as Debian and Fedora, is using AppStream metainfo files for this. So it would be great if you could add an AppStream metainfo file to your AppImage, make sure that it passes appstreamcli validation, and then ping us, so that we can update the record for your application on AppImageHub. At the same time, doing so will bring your metadata into other distributions as well.

For electron-builder, see electron-userland/electron-builder#1993

digiKam: libopenal.so.1 missing

libopenal.so.1: cannot open shared object file: No such file or directory

Would they have GitHub Issues enabled on https://github.com/KDE/digikam, I would have reported or even immediately fixed the issue. But since they haven't, I haven't. It's a pain to sign in somewhere else just to make a contribution like this.

Generate OCS (Open Collaboration Services v1.6)

Specs:

Example consumers:

Example providers:

Question:
How do "guesstimate" OCS categories from the existing data sources like desktop files and, optionally, AppStream metainfo? Need a mapping file?

Replace Jekyll with a more efficient rendering system

As the site currently uses Jekyll, it is quite limited in what data formats the data can be stored in so that it is readable to Jekyll. These "Markdown" pages containing nothing but these tables are a good example for this, they're hard to read for people who want to make use of the data in this repository. As a primary goal is machine readability, this is a no-go.

IMO, it is mandatory to switch to our own software for managing the data, and rendering the static pages. This allowed for extracting the actual AppImageHub as being the central data storage An approach I could imagine to work well is the following:

  • Write a library that implements the data format (e.g. on top of JSON, but I could as well imagine something more abstract that can then be converted to JSON, XML, AppStream XML etc., whatever works best for third party software). This library would contain a full specification of these formats, which allows for writing AppImageHub client libraries that could then be used by other applications.
  • Write a library for rendering the AppImageHub data to something I'd call the "reference client". This is what would be deployed on https://hub.appimage.org as a web frontend, while AppImageHub could be deployed on https://hub.appimage.org/api.

The latter library could really improve the workflow for adding software to AppImageHub. I could imagine to implement a little interactive web server based on Flask, which renders the pages on demand, allowing a "change, then press F5 in the browser" workflow.

But I assume that the biggest advantage would be that the time for rendering the whole AppImageHub pages could be greatly reduced. We don't require most of the features it provides, but which make it somewhat slow. A simple loop calling a templating engine with the same template should suffice at the moment. And, we're not limited any more to the data format that is fed into this renderer.

Switch to using httpfs

It will allow us to mount AppImages remotely over http(s) which should significantly speed up metadata extraction, since we do not need to download the whole AppImage.

Even if we are executing an AppImage it may still be advantageous (to be verified), since all the static files such as help, game assets, etc. which can be quite large may not need to be downloaded just in order to verify that the application launches.

The original one is totally awesome, works great for this purpose, but seemingly lacks support for https:
http://httpfs.sourceforge.net/

There is also httpfs2:

As of 0.1.5 SSL is enabled when GNUTLS 2.10 or higher is present. pkg-config is used to detect libraries.

But:

linux@linux:~/httpfs2-0.1.5> ./httpfs2-ssl -f "https://github.com/AppImage/AppImageUpdate/releases/download/continuous/AppImageUpdate-x86_64.AppImage" /mnt
file name:      AppImageUpdate-x86_64.AppImage
host name:      github.com
port number:    443
protocol:       https
request path:   /AppImage/AppImageUpdate/releases/download/continuous/AppImageUpdate-x86_64.AppImage
auth data:      (null)
./httpfs2-ssl: SSL init: -64 Error while reading file..
Connection failed.
linux@linux:~/httpfs

Even when taking the redirects out of the picture:

linux@linux:~/httpfs2-0.1.5> FINAL_URL=$(curl -w "%{url_effective}\n" -I -L -s -S "https://github.com/AppImage/AppImageUpdate/releases/download/continuous/AppImageUpdate-x86_64.AppImage" | tail -n 1)
linux@linux:~/httpfs2-0.1.5> ./httpfs2-ssl -f "$FINAL_URL" /mnt
file name:      c4bab194-7bc1-11e7-90db-80bd20a8f2ec?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20170808%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20170808T102115Z&X-Amz-Expires=300&X-Amz-Signature=520be860cb5479403808d42da6ac74eecce5e5c10bc4bc786954160e67277d79&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3DAppImageUpdate-x86_64.AppImage&response-content-type=application%2Foctet-stream
host name:      github-production-release-asset-2e65be.s3.amazonaws.com
port number:    443
protocol:       https
request path:   /84325774/c4bab194-7bc1-11e7-90db-80bd20a8f2ec?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20170808%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20170808T102115Z&X-Amz-Expires=300&X-Amz-Signature=520be860cb5479403808d42da6ac74eecce5e5c10bc4bc786954160e67277d79&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3DAppImageUpdate-x86_64.AppImage&response-content-type=application%2Foctet-stream
auth data:      (null)
./httpfs2-ssl: SSL init: -64 Error while reading file..
Connection failed.

Seemingly we need to supply a certificate bundle:

./httpfs2-ssl -f -d 1000 -a /etc/ssl/ca-bundle.pem  "https://github.com/AppImage/AppImageUpdate/releases/download/continuous/AppImageUpdate-x86_64.AppImage" /mnt

file name: 	AppImageUpdate-x86_64.AppImage
host name: 	github.com
port number: 	443
protocol: 	https
request path: 	/AppImage/AppImageUpdate/releases/download/continuous/AppImageUpdate-x86_64.AppImage
auth data: 	(null)
./httpfs2-ssl: SSL init: loaded 164 CA certificate(s).
REC[0x21974b0]: Allocating epoch #0
ASSERT: gnutls_constate.c:586
REC[0x21974b0]: Allocating epoch #1
HSK[0x21974b0]: Keeping ciphersuite: ECDHE_ECDSA_AES_128_GCM_SHA256 (C0.2B)
HSK[0x21974b0]: Keeping ciphersuite: ECDHE_ECDSA_AES_256_GCM_SHA384 (C0.2C)
HSK[0x21974b0]: Keeping ciphersuite: ECDHE_ECDSA_CAMELLIA_128_GCM_SHA256 (C0.86)
HSK[0x21974b0]: Keeping ciphersuite: ECDHE_ECDSA_CAMELLIA_256_GCM_SHA384 (C0.87)
HSK[0x21974b0]: Keeping ciphersuite: ECDHE_ECDSA_AES_128_CBC_SHA1 (C0.09)
HSK[0x21974b0]: Keeping ciphersuite: ECDHE_ECDSA_AES_128_CBC_SHA256 (C0.23)
HSK[0x21974b0]: Keeping ciphersuite: ECDHE_ECDSA_AES_256_CBC_SHA1 (C0.0A)
HSK[0x21974b0]: Keeping ciphersuite: ECDHE_ECDSA_AES_256_CBC_SHA384 (C0.24)
HSK[0x21974b0]: Keeping ciphersuite: ECDHE_ECDSA_CAMELLIA_128_CBC_SHA256 (C0.72)
HSK[0x21974b0]: Keeping ciphersuite: ECDHE_ECDSA_CAMELLIA_256_CBC_SHA384 (C0.73)
HSK[0x21974b0]: Keeping ciphersuite: ECDHE_ECDSA_3DES_EDE_CBC_SHA1 (C0.08)
HSK[0x21974b0]: Keeping ciphersuite: ECDHE_RSA_AES_128_GCM_SHA256 (C0.2F)
HSK[0x21974b0]: Keeping ciphersuite: ECDHE_RSA_AES_256_GCM_SHA384 (C0.30)
HSK[0x21974b0]: Keeping ciphersuite: ECDHE_RSA_CAMELLIA_128_GCM_SHA256 (C0.8A)
HSK[0x21974b0]: Keeping ciphersuite: ECDHE_RSA_CAMELLIA_256_GCM_SHA384 (C0.8B)
HSK[0x21974b0]: Keeping ciphersuite: ECDHE_RSA_AES_128_CBC_SHA1 (C0.13)
HSK[0x21974b0]: Keeping ciphersuite: ECDHE_RSA_AES_128_CBC_SHA256 (C0.27)
HSK[0x21974b0]: Keeping ciphersuite: ECDHE_RSA_AES_256_CBC_SHA1 (C0.14)
HSK[0x21974b0]: Keeping ciphersuite: ECDHE_RSA_AES_256_CBC_SHA384 (C0.28)
HSK[0x21974b0]: Keeping ciphersuite: ECDHE_RSA_CAMELLIA_128_CBC_SHA256 (C0.76)
HSK[0x21974b0]: Keeping ciphersuite: ECDHE_RSA_CAMELLIA_256_CBC_SHA384 (C0.77)
HSK[0x21974b0]: Keeping ciphersuite: ECDHE_RSA_3DES_EDE_CBC_SHA1 (C0.12)
HSK[0x21974b0]: Keeping ciphersuite: RSA_AES_128_GCM_SHA256 (00.9C)
HSK[0x21974b0]: Keeping ciphersuite: RSA_AES_256_GCM_SHA384 (00.9D)
HSK[0x21974b0]: Keeping ciphersuite: RSA_CAMELLIA_128_GCM_SHA256 (C0.7A)
HSK[0x21974b0]: Keeping ciphersuite: RSA_CAMELLIA_256_GCM_SHA384 (C0.7B)
HSK[0x21974b0]: Keeping ciphersuite: RSA_AES_128_CBC_SHA1 (00.2F)
HSK[0x21974b0]: Keeping ciphersuite: RSA_AES_128_CBC_SHA256 (00.3C)
HSK[0x21974b0]: Keeping ciphersuite: RSA_AES_256_CBC_SHA1 (00.35)
HSK[0x21974b0]: Keeping ciphersuite: RSA_AES_256_CBC_SHA256 (00.3D)
HSK[0x21974b0]: Keeping ciphersuite: RSA_CAMELLIA_128_CBC_SHA1 (00.41)
HSK[0x21974b0]: Keeping ciphersuite: RSA_CAMELLIA_128_CBC_SHA256 (00.BA)
HSK[0x21974b0]: Keeping ciphersuite: RSA_CAMELLIA_256_CBC_SHA1 (00.84)
HSK[0x21974b0]: Keeping ciphersuite: RSA_CAMELLIA_256_CBC_SHA256 (00.C0)
HSK[0x21974b0]: Keeping ciphersuite: RSA_3DES_EDE_CBC_SHA1 (00.0A)
HSK[0x21974b0]: Keeping ciphersuite: DHE_RSA_AES_128_GCM_SHA256 (00.9E)
HSK[0x21974b0]: Keeping ciphersuite: DHE_RSA_AES_256_GCM_SHA384 (00.9F)
HSK[0x21974b0]: Keeping ciphersuite: DHE_RSA_CAMELLIA_128_GCM_SHA256 (C0.7C)
HSK[0x21974b0]: Keeping ciphersuite: DHE_RSA_CAMELLIA_256_GCM_SHA384 (C0.7D)
HSK[0x21974b0]: Keeping ciphersuite: DHE_RSA_AES_128_CBC_SHA1 (00.33)
HSK[0x21974b0]: Keeping ciphersuite: DHE_RSA_AES_128_CBC_SHA256 (00.67)
HSK[0x21974b0]: Keeping ciphersuite: DHE_RSA_AES_256_CBC_SHA1 (00.39)
HSK[0x21974b0]: Keeping ciphersuite: DHE_RSA_AES_256_CBC_SHA256 (00.6B)
HSK[0x21974b0]: Keeping ciphersuite: DHE_RSA_CAMELLIA_128_CBC_SHA1 (00.45)
HSK[0x21974b0]: Keeping ciphersuite: DHE_RSA_CAMELLIA_128_CBC_SHA256 (00.BE)
HSK[0x21974b0]: Keeping ciphersuite: DHE_RSA_CAMELLIA_256_CBC_SHA1 (00.88)
HSK[0x21974b0]: Keeping ciphersuite: DHE_RSA_CAMELLIA_256_CBC_SHA256 (00.C4)
HSK[0x21974b0]: Keeping ciphersuite: DHE_RSA_3DES_EDE_CBC_SHA1 (00.16)
HSK[0x21974b0]: Keeping ciphersuite: DHE_DSS_AES_128_GCM_SHA256 (00.A2)
HSK[0x21974b0]: Keeping ciphersuite: DHE_DSS_AES_256_GCM_SHA384 (00.A3)
HSK[0x21974b0]: Keeping ciphersuite: DHE_DSS_CAMELLIA_128_GCM_SHA256 (C0.80)
HSK[0x21974b0]: Keeping ciphersuite: DHE_DSS_CAMELLIA_256_GCM_SHA384 (C0.81)
HSK[0x21974b0]: Keeping ciphersuite: DHE_DSS_AES_128_CBC_SHA1 (00.32)
HSK[0x21974b0]: Keeping ciphersuite: DHE_DSS_AES_128_CBC_SHA256 (00.40)
HSK[0x21974b0]: Keeping ciphersuite: DHE_DSS_AES_256_CBC_SHA1 (00.38)
HSK[0x21974b0]: Keeping ciphersuite: DHE_DSS_AES_256_CBC_SHA256 (00.6A)
HSK[0x21974b0]: Keeping ciphersuite: DHE_DSS_CAMELLIA_128_CBC_SHA1 (00.44)
HSK[0x21974b0]: Keeping ciphersuite: DHE_DSS_CAMELLIA_128_CBC_SHA256 (00.BD)
HSK[0x21974b0]: Keeping ciphersuite: DHE_DSS_CAMELLIA_256_CBC_SHA1 (00.87)
HSK[0x21974b0]: Keeping ciphersuite: DHE_DSS_CAMELLIA_256_CBC_SHA256 (00.C3)
HSK[0x21974b0]: Keeping ciphersuite: DHE_DSS_3DES_EDE_CBC_SHA1 (00.13)
EXT[0x21974b0]: Sending extension STATUS REQUEST (5 bytes)
EXT[0x21974b0]: Sending extension SAFE RENEGOTIATION (1 bytes)
EXT[0x21974b0]: Sending extension SESSION TICKET (0 bytes)
EXT[0x21974b0]: Sending extension SUPPORTED ECC (12 bytes)
EXT[0x21974b0]: Sending extension SUPPORTED ECC POINT FORMATS (2 bytes)
EXT[0x21974b0]: sent signature algo (4.1) RSA-SHA256
EXT[0x21974b0]: sent signature algo (4.2) DSA-SHA256
EXT[0x21974b0]: sent signature algo (4.3) ECDSA-SHA256
EXT[0x21974b0]: sent signature algo (5.1) RSA-SHA384
EXT[0x21974b0]: sent signature algo (5.3) ECDSA-SHA384
EXT[0x21974b0]: sent signature algo (6.1) RSA-SHA512
EXT[0x21974b0]: sent signature algo (6.3) ECDSA-SHA512
EXT[0x21974b0]: sent signature algo (3.1) RSA-SHA224
EXT[0x21974b0]: sent signature algo (3.2) DSA-SHA224
EXT[0x21974b0]: sent signature algo (3.3) ECDSA-SHA224
EXT[0x21974b0]: sent signature algo (2.1) RSA-SHA1
EXT[0x21974b0]: sent signature algo (2.2) DSA-SHA1
EXT[0x21974b0]: sent signature algo (2.3) ECDSA-SHA1
EXT[0x21974b0]: Sending extension SIGNATURE ALGORITHMS (28 bytes)
HSK[0x21974b0]: CLIENT HELLO was queued [239 bytes]
HWRITE: enqueued [CLIENT HELLO] 239. Total 239 bytes.
HWRITE FLUSH: 239 bytes in buffer.
REC[0x21974b0]: Preparing Packet Handshake(22) with length: 239 and min pad: 0
ENC[0x21974b0]: cipher: NULL, MAC: MAC-NULL, Epoch: 0
WRITE: enqueued 244 bytes for 0x4. Total 244 bytes.
REC[0x21974b0]: Sent Packet[1] Handshake(22) in epoch 0 and length: 244
HWRITE: wrote 1 bytes, 0 bytes left.
WRITE FLUSH: 244 bytes in buffer.
WRITE: wrote 244 bytes, 0 bytes left.
ASSERT: gnutls_buffers.c:1138
READ: Got 5 bytes from 0x4
READ: read 5 bytes from 0x4
RB: Have 0 bytes into buffer. Adding 5 bytes.
RB: Requested 5 bytes
REC[0x21974b0]: SSL 3.3 Handshake packet received. Epoch 0, length: 89
REC[0x21974b0]: Expected Packet Handshake(22)
REC[0x21974b0]: Received Packet Handshake(22) with length: 89
READ: Got 89 bytes from 0x4
READ: read 89 bytes from 0x4
RB: Have 5 bytes into buffer. Adding 89 bytes.
RB: Requested 94 bytes
REC[0x21974b0]: Decrypted Packet[0] Handshake(22) with length: 89
BUF[REC]: Inserted 89 bytes of Data(22)
HSK[0x21974b0]: SERVER HELLO (2) was received. Length 85[85], frag offset 0, frag length: 85, sequence: 0
HSK[0x21974b0]: Server's version: 3.3
HSK[0x21974b0]: SessionID length: 32
HSK[0x21974b0]: SessionID: 7343cdd4be0f4ce253a1cab2d9094b11c7a8ef74a6f7f96da89eddeea9e79fea
HSK[0x21974b0]: Selected cipher suite: ECDHE_RSA_AES_128_GCM_SHA256
HSK[0x21974b0]: Selected compression method: NULL (0)
EXT[0x21974b0]: Parsing extension 'SAFE RENEGOTIATION/65281' (1 bytes)
EXT[0x21974b0]: Parsing extension 'SUPPORTED ECC POINT FORMATS/11' (4 bytes)
HSK[0x21974b0]: Safe renegotiation succeeded
ASSERT: gnutls_buffers.c:1138
READ: Got 5 bytes from 0x4
READ: read 5 bytes from 0x4
RB: Have 0 bytes into buffer. Adding 5 bytes.
RB: Requested 5 bytes
REC[0x21974b0]: SSL 3.3 Handshake packet received. Epoch 0, length: 3140
REC[0x21974b0]: Expected Packet Handshake(22)
REC[0x21974b0]: Received Packet Handshake(22) with length: 3140
READ: Got 1241 bytes from 0x4
READ: Got 1899 bytes from 0x4
READ: read 3140 bytes from 0x4
RB: Have 5 bytes into buffer. Adding 3140 bytes.
RB: Requested 3145 bytes
REC[0x21974b0]: Decrypted Packet[1] Handshake(22) with length: 3140
BUF[REC]: Inserted 3140 bytes of Data(22)
HSK[0x21974b0]: CERTIFICATE (11) was received. Length 3136[3136], frag offset 0, frag length: 3136, sequence: 0
ASSERT: status_request.c:382
ASSERT: common.c:1106
ASSERT: dn.c:990
ASSERT: dn.c:990
ASSERT: dn.c:990
ASSERT: dn.c:990
ASSERT: dn.c:990
ASSERT: dn.c:990
ASSERT: dn.c:990
ASSERT: dn.c:990
ASSERT: dn.c:990
ASSERT: common.c:1106
ASSERT: extensions.c:65
ASSERT: name_constraints.c:173
ASSERT: mpi.c:240
ASSERT: common.c:1106
ASSERT: extensions.c:65
ASSERT: name_constraints.c:173
ASSERT: dn.c:249
ASSERT: dn.c:249
ASSERT: common.c:1106
ASSERT: x509.c:3620
ASSERT: common.c:1106
ASSERT: x509.c:3575
ASSERT: common.c:1106
ASSERT: x509_ext.c:115
ASSERT: common.c:1106
ASSERT: x509_ext.c:2897
ASSERT: x509_ext.c:2190
ASSERT: common.c:1106
ASSERT: x509_ext.c:1701
ASSERT: x509_ext.c:2556
ASSERT: mpi.c:240
ASSERT: common.c:1964
ASSERT: x509.c:708
X.509 Certificate Information:
	Version: 3
	Serial Number (hex): 0bfdb4090ad7b5e640c30b16c9529a27
	Issuer: C=US,O=DigiCert Inc,OU=www.digicert.com,CN=DigiCert SHA2 Extended Validation Server CA
	Validity:
		Not Before: Thu Mar 10 00:00:00 UTC 2016
		Not After: Thu May 17 12:00:00 UTC 2018
	Subject: businessCategory=Private Organization,jurisdictionOfIncorporationCountryName=US,jurisdictionOfIncorporationStateOrProvinceName=Delaware,serialNumber=5157550,street=88 Colin P Kelly\, Jr Street,postalCode=94107,C=US,ST=California,L=San Francisco,O=GitHub\, Inc.,CN=github.com
	Subject Public Key Algorithm: RSA
	Algorithm Security Level: Medium (2048 bits)
		Modulus (bits 2048):
			00:e7:88:5c:f2:96:5c:97:18:1c:ba:98:e2:03:f1:7f
			39:91:91:c2:6f:d9:96:e7:28:40:64:cd:4c:a9:81:12
			03:6c:ae:7f:e6:c6:19:e0:5a:63:f0:6c:0b:d4:68:b3
			ff:fd:3e:fd:25:cf:b5:59:73:29:c4:c8:b3:f4:f2:ba
			c9:94:51:16:e2:28:d1:dd:9b:c7:8d:b7:34:0e:a1:38
			bd:91:4e:d6:e7:7e:cf:b2:d0:f1:52:fd:84:e9:41:27
			a5:4e:ea:be:16:ec:2d:b3:9b:fa:68:0c:1e:37:23:1c
			60:3d:07:07:26:e4:91:da:2c:16:80:dc:70:13:73:27
			dd:80:73:c2:39:11:50:d4:73:73:ab:ff:88:d2:c9:9c
			33:c6:ef:64:76:60:65:07:37:87:32:fb:2a:74:7f:12
			5f:d9:8d:6a:15:ed:5f:14:69:c1:99:c1:89:48:f0:df
			a3:e0:37:eb:3d:18:b5:86:ad:a7:dd:d3:64:f4:bb:1f
			58:cd:de:5e:ce:43:31:ba:4a:84:01:0e:c0:28:82:22
			8e:f6:96:3c:02:5b:2b:fe:76:5c:b8:48:cb:6b:e9:18
			dc:a5:ca:78:bf:0d:00:f5:f1:b0:4f:4f:e6:46:d6:eb
			f4:41:03:fd:2e:e6:3f:8e:83:be:14:a0:ce:4e:57:ab
			e3
		Exponent (bits 24):
			01:00:01
	Extensions:
		Authority Key Identifier (not critical):
			3dd350a5d6a0adeef34a600a65d321d4f8f8d60f
		Subject Key Identifier (not critical):
			885c486719cca076592d1179c3bea2ac8722275b
		Subject Alternative Name (not critical):
			DNSname: github.com
			DNSname: www.github.com
		Key Usage (critical):
			Digital signature.
			Key encipherment.
		Key Purpose (not critical):
			TLS WWW Server.
			TLS WWW Client.
		CRL Distribution points (not critical):
			URI: http://crl3.digicert.com/sha2-ev-server-g1.crl
			URI: http://crl4.digicert.com/sha2-ev-server-g1.crl
		Certificate Policies (not critical):
			2.16.840.1.114412.2.1
				URI: https://www.digicert.com/CPS
			2.23.140.1.1
		Authority Information Access (not critical):
			Access Method: 1.3.6.1.5.5.7.48.1 (id-ad-ocsp)
			Access Location URI: http://ocsp.digicert.com
			Access Method: 1.3.6.1.5.5.7.48.2 (id-ad-caIssuers)
			Access Location URI: http://cacerts.digicert.com/DigiCertSHA2ExtendedValidationServerCA.crt
		Basic Constraints (critical):
			Certificate Authority (CA): FALSE
		Unknown extension 1.3.6.1.4.1.11129.2.4.2 (not critical):
			ASCII: ...k.i.v.......X......gp.<5.......w.........Sa........G0E.!...!........6.h..)l....4...,.Vt... '.j..._[.-.....| .Kf<..Q4.$..6B .v.h....d..:...(.L.qQ]g..D..g..OO.....Sa........G0E.!....R.{h.N.p7.....(.NM.4...UZ3|a[. 5J....f.`.Ha.....|..)....DCn&'F..w.V.../.......D.>.Fv....\....U.......Sa........H0F.!...u..[.....4..A..d$.d.....X_..3 .!...yz.....5.Z.x"..f.!.{(.?. mn.1|
			Hexdump: 0482016b0169007600a4b90990b418581487bb13a2cc67700a3c359804f91bdfb8e377cd0ec80ddc10000001536189ea1e0000040300473045022100871d2118fd138adbfb0e9636ca68d11c296cfa0711c934f3ad8d2cae5674a7e1022027a46abd86d25f5bca2de5fbbe99ce7c201f4b663c941e5134cc24eaeb36422000760068f698f81f6482be3a8ceeb9281d4cfc71515d6793d444d10a67acbb4f4ffbc4000001536189e9e70000040300473045022100d9a5de52fb7b68f24ee57037960618890128984e4dab3404f6ea555a337c615b0220354aab908383669460fa4861a7c6a0eb907c9aed29e095009a44436e262746f60077005614069a2fd7c2ecd3f5e1bd44b23ec74676b9bc99115cc0ef949855d689d0dd000001536189ea990000040300483046022100e79b7592b65bc4f7d1828b34b1f941ad1a6424d964e89283e0a3585f8aff3320022100fad8797ac182c780f635165a807822f99c66db218d7b289d3f0c206d6ed7317c
	Signature Algorithm: RSA-SHA256
	Signature:
		8b:6c:db:64:c6:eb:29:ab:27:2a:f2:1d:44:a5:b9:80
		5f:4c:0c:e4:3a:16:ee:13:3f:15:57:73:e0:b2:77:2a
		67:ed:ca:4d:72:77:c8:ff:3d:2c:51:ac:04:0d:d8:ca
		ff:7e:b2:9e:2b:c3:44:d5:c3:23:8b:7d:a6:25:b0:6a
		a5:6b:4a:ff:ec:02:f9:ab:cf:a6:50:54:6c:da:73:3f
		9d:dc:b9:33:05:fd:0b:2c:c4:8b:4ASSERT: gnutls_buffers.c:1138
READ: Got 5 bytes from 0x4
READ: read 5 bytes from 0x4
RB: Have 0 bytes into buffer. Adding 5 bytes.
RB: Requested 5 bytes
REC[0x21974b0]: SSL 3.3 Handshake packet received. Epoch 0, length: 333
REC[0x21974b0]: Expected Packet Handshake(22)
REC[0x21974b0]: Received Packet Handshake(22) with length: 333
READ: Got 333 bytes from 0x4
READ: read 333 bytes from 0x4
RB: Have 5 bytes into buffer. Adding 333 bytes.
RB: Requested 338 bytes
REC[0x21974b0]: Decrypted Packet[2] Handshake(22) with length: 333
BUF[REC]: Inserted 333 bytes of Data(22)
HSK[0x21974b0]: SERVER KEY EXCHANGE (12) was received. Length 329[329], frag offset 0, frag length: 329, sequence: 0
HSK[0x21974b0]: Selected ECC curve SECP256R1 (2)
HSK[0x21974b0]: verify handshake data: using RSA-SHA512
ASSERT: gnutls_buffers.c:1138
READ: Got 5 bytes from 0x4
READ: read 5 bytes from 0x4
RB: Have 0 bytes into buffer. Adding 5 bytes.
RB: Requested 5 bytes
REC[0x21974b0]: SSL 3.3 Handshake packet received. Epoch 0, length: 4
REC[0x21974b0]: Expected Packet Handshake(22)
REC[0x21974b0]: Received Packet Handshake(22) with length: 4
READ: Got 4 bytes from 0x4
READ: read 4 bytes from 0x4
RB: Have 5 bytes into buffer. Adding 4 bytes.
RB: Requested 9 bytes
REC[0x21974b0]: Decrypted Packet[3] Handshake(22) with length: 4
BUF[REC]: Inserted 4 bytes of Data(22)
HSK[0x21974b0]: SERVER HELLO DONE (14) was received. Length 0[0], frag offset 0, frag length: 1, sequence: 0
ASSERT: gnutls_buffers.c:1129
ASSERT: gnutls_buffers.c:1358
HSK[0x21974b0]: CLIENT KEY EXCHANGE was queued [70 bytes]
HWRITE: enqueued [CLIENT KEY EXCHANGE] 70. Total 70 bytes.
HWRITE: enqueued [CHANGE CIPHER SPEC] 1. Total 71 bytes.
REC[0x21974b0]: Sent ChangeCipherSpec
INT: PREMASTER SECRET[32]: 006c5fe21b34df6683724344732689d78b62667aab91757b7d6c28731cff9568
INT: CLIENT RANDOM[32]: 598992995d3dd0b5bc4bb1b2dad92b4d6b2f808fe738c4ff635d7f25ec4420a2
INT: SERVER RANDOM[32]: 89fcd9b7e48311381190398d0ba64cf34aad0fb6f51e8ddaf58e7198adebc5cc
INT: MASTER SECRET: 86d0887d614eb1be2fa4d2aa085949dc4778f68cfde1c7916d5f265e3796554eb489872ee847269b0074c891a0c7e9eb
REC[0x21974b0]: Initializing epoch #1
INT: KEY BLOCK[40]: 738dd15eed96bc1f544316b62caec409a95ad04680c27881b90c457cad5f4906
INT: CLIENT WRITE KEY [16]: 738dd15eed96bc1f544316b62caec409
INT: SERVER WRITE KEY [16]: a95ad04680c27881b90c457cad5f4906
REC[0x21974b0]: Epoch #1 ready
HSK[0x21974b0]: Cipher Suite: ECDHE_RSA_AES_128_GCM_SHA256
HSK[0x21974b0]: Initializing internal [write] cipher sessions
HSK[0x21974b0]: recording tls-unique CB (send)
HSK[0x21974b0]: FINISHED was queued [16 bytes]
HWRITE: enqueued [FINISHED] 16. Total 87 bytes.
HWRITE FLUSH: 87 bytes in buffer.
REC[0x21974b0]: Preparing Packet Handshake(22) with length: 70 and min pad: 0
ENC[0x21974b0]: cipher: NULL, MAC: MAC-NULL, Epoch: 0
WRITE: enqueued 75 bytes for 0x4. Total 75 bytes.
REC[0x21974b0]: Sent Packet[2] Handshake(22) in epoch 0 and length: 75
HWRITE: wrote 1 bytes, 17 bytes left.
REC[0x21974b0]: Preparing Packet ChangeCipherSpec(20) with length: 1 and min pad: 0
ENC[0x21974b0]: cipher: NULL, MAC: MAC-NULL, Epoch: 0
WRITE: enqueued 6 bytes for 0x4. Total 81 bytes.
REC[0x21974b0]: Sent Packet[3] ChangeCipherSpec(20) in epoch 0 and length: 6
HWRITE: wrote 1 bytes, 16 bytes left.
REC[0x21974b0]: Preparing Packet Handshake(22) with length: 16 and min pad: 0
ENC[0x21974b0]: cipher: AES-128-GCM, MAC: AEAD, Epoch: 1
WRITE: enqueued 45 bytes for 0x4. Total 126 bytes.
REC[0x21974b0]: Sent Packet[1] Handshake(22) in epoch 1 and length: 45
HWRITE: wrote 1 bytes, 0 bytes left.
WRITE FLUSH: 126 bytes in buffer.
WRITE: wrote 126 bytes, 0 bytes left.
READ: Got 5 bytes from 0x4
READ: read 5 bytes from 0x4
RB: Have 0 bytes into buffer. Adding 5 bytes.
RB: Requested 5 bytes
REC[0x21974b0]: SSL 3.3 ChangeCipherSpec packet received. Epoch 0, length: 1
REC[0x21974b0]: Expected Packet ChangeCipherSpec(20)
REC[0x21974b0]: Received Packet ChangeCipherSpec(20) with length: 1
READ: Got 1 bytes from 0x4
READ: read 1 bytes from 0x4
RB: Have 5 bytes into buffer. Adding 1 bytes.
RB: Requested 6 bytes
REC[0x21974b0]: Decrypted Packet[4] ChangeCipherSpec(20) with length: 1
BUF[REC]: Inserted 1 bytes of Data(20)
HSK[0x21974b0]: Cipher Suite: ECDHE_RSA_AES_128_GCM_SHA256
ASSERT: gnutls_buffers.c:1138
READ: Got 5 bytes from 0x4
READ: read 5 bytes from 0x4
RB: Have 0 bytes into buffer. Adding 5 bytes.
RB: Requested 5 bytes
REC[0x21974b0]: SSL 3.3 Handshake packet received. Epoch 0, length: 40
REC[0x21974b0]: Expected Packet Handshake(22)
REC[0x21974b0]: Received Packet Handshake(22) with length: 40
READ: Got 40 bytes from 0x4
READ: read 40 bytes from 0x4
RB: Have 5 bytes into buffer. Adding 40 bytes.
RB: Requested 45 bytes
REC[0x21974b0]: Decrypted Packet[0] Handshake(22) with length: 16
BUF[REC]: Inserted 16 bytes of Data(22)
HSK[0x21974b0]: FINISHED (20) was received. Length 12[12], frag offset 0, frag length: 12, sequence: 0
REC[0x21974b0]: Start of epoch cleanup
REC[0x21974b0]: Epoch #0 freed
REC[0x21974b0]: End of epoch cleanup
REC[0x21974b0]: Start of epoch cleanup
REC[0x21974b0]: End of epoch cleanup
REC[0x21974b0]: Epoch #1 freed
REC[0x2197ad0]: Allocating epoch #0
ASSERT: gnutls_constate.c:586
REC[0x2197ad0]: Allocating epoch #1
HSK[0x2197ad0]: Keeping ciphersuite: ECDHE_ECDSA_AES_128_GCM_SHA256 (C0.2B)
HSK[0x2197ad0]: Keeping ciphersuite: ECDHE_ECDSA_AES_256_GCM_SHA384 (C0.2C)
HSK[0x2197ad0]: Keeping ciphersuite: ECDHE_ECDSA_CAMELLIA_128_GCM_SHA256 (C0.86)
HSK[0x2197ad0]: Keeping ciphersuite: ECDHE_ECDSA_CAMELLIA_256_GCM_SHA384 (C0.87)
HSK[0x2197ad0]: Keeping ciphersuite: ECDHE_ECDSA_AES_128_CBC_SHA1 (C0.09)
HSK[0x2197ad0]: Keeping ciphersuite: ECDHE_ECDSA_AES_128_CBC_SHA256 (C0.23)
HSK[0x2197ad0]: Keeping ciphersuite: ECDHE_ECDSA_AES_256_CBC_SHA1 (C0.0A)
HSK[0x2197ad0]: Keeping ciphersuite: ECDHE_ECDSA_AES_256_CBC_SHA384 (C0.24)
HSK[0x2197ad0]: Keeping ciphersuite: ECDHE_ECDSA_CAMELLIA_128_CBC_SHA256 (C0.72)
HSK[0x2197ad0]: Keeping ciphersuite: ECDHE_ECDSA_CAMELLIA_256_CBC_SHA384 (C0.73)
HSK[0x2197ad0]: Keeping ciphersuite: ECDHE_ECDSA_3DES_EDE_CBC_SHA1 (C0.08)
HSK[0x2197ad0]: Keeping ciphersuite: ECDHE_RSA_AES_128_GCM_SHA256 (C0.2F)
HSK[0x2197ad0]: Keeping ciphersuite: ECDHE_RSA_AES_256_GCM_SHA384 (C0.30)
HSK[0x2197ad0]: Keeping ciphersuite: ECDHE_RSA_CAMELLIA_128_GCM_SHA256 (C0.8A)
HSK[0x2197ad0]: Keeping ciphersuite: ECDHE_RSA_CAMELLIA_256_GCM_SHA384 (C0.8B)
HSK[0x2197ad0]: Keeping ciphersuite: ECDHE_RSA_AES_128_CBC_SHA1 (C0.13)
HSK[0x2197ad0]: Keeping ciphersuite: ECDHE_RSA_AES_128_CBC_SHA256 (C0.27)
HSK[0x2197ad0]: Keeping ciphersuite: ECDHE_RSA_AES_256_CBC_SHA1 (C0.14)
HSK[0x2197ad0]: Keeping ciphersuite: ECDHE_RSA_AES_256_CBC_SHA384 (C0.28)
HSK[0x2197ad0]: Keeping ciphersuite: ECDHE_RSA_CAMELLIA_128_CBC_SHA256 (C0.76)
HSK[0x2197ad0]: Keeping ciphersuite: ECDHE_RSA_CAMELLIA_256_CBC_SHA384 (C0.77)
HSK[0x2197ad0]: Keeping ciphersuite: ECDHE_RSA_3DES_EDE_CBC_SHA1 (C0.12)
HSK[0x2197ad0]: Keeping ciphersuite: RSA_AES_128_GCM_SHA256 (00.9C)
HSK[0x2197ad0]: Keeping ciphersuite: RSA_AES_256_GCM_SHA384 (00.9D)
HSK[0x2197ad0]: Keeping ciphersuite: RSA_CAMELLIA_128_GCM_SHA256 (C0.7A)
HSK[0x2197ad0]: Keeping ciphersuite: RSA_CAMELLIA_256_GCM_SHA384 (C0.7B)
HSK[0x2197ad0]: Keeping ciphersuite: RSA_AES_128_CBC_SHA1 (00.2F)
HSK[0x2197ad0]: Keeping ciphersuite: RSA_AES_128_CBC_SHA256 (00.3C)
HSK[0x2197ad0]: Keeping ciphersuite: RSA_AES_256_CBC_SHA1 (00.35)
HSK[0x2197ad0]: Keeping ciphersuite: RSA_AES_256_CBC_SHA256 (00.3D)
HSK[0x2197ad0]: Keeping ciphersuite: RSA_CAMELLIA_128_CBC_SHA1 (00.41)
HSK[0x2197ad0]: Keeping ciphersuite: RSA_CAMELLIA_128_CBC_SHA256 (00.BA)
HSK[0x2197ad0]: Keeping ciphersuite: RSA_CAMELLIA_256_CBC_SHA1 (00.84)
HSK[0x2197ad0]: Keeping ciphersuite: RSA_CAMELLIA_256_CBC_SHA256 (00.C0)
HSK[0x2197ad0]: Keeping ciphersuite: RSA_3DES_EDE_CBC_SHA1 (00.0A)
HSK[0x2197ad0]: Keeping ciphersuite: DHE_RSA_AES_128_GCM_SHA256 (00.9E)
HSK[0x2197ad0]: Keeping ciphersuite: DHE_RSA_AES_256_GCM_SHA384 (00.9F)
HSK[0x2197ad0]: Keeping ciphersuite: DHE_RSA_CAMELLIA_128_GCM_SHA256 (C0.7C)
HSK[0x2197ad0]: Keeping ciphersuite: DHE_RSA_CAMELLIA_256_GCM_SHA384 (C0.7D)
HSK[0x2197ad0]: Keeping ciphersuite: DHE_RSA_AES_128_CBC_SHA1 (00.33)
HSK[0x2197ad0]: Keeping ciphersuite: DHE_RSA_AES_128_CBC_SHA256 (00.67)
HSK[0x2197ad0]: Keeping ciphersuite: DHE_RSA_AES_256_CBC_SHA1 (00.39)
HSK[0x2197ad0]: Keeping ciphersuite: DHE_RSA_AES_256_CBC_SHA256 (00.6B)
HSK[0x2197ad0]: Keeping ciphersuite: DHE_RSA_CAMELLIA_128_CBC_SHA1 (00.45)
HSK[0x2197ad0]: Keeping ciphersuite: DHE_RSA_CAMELLIA_128_CBC_SHA256 (00.BE)
HSK[0x2197ad0]: Keeping ciphersuite: DHE_RSA_CAMELLIA_256_CBC_SHA1 (00.88)
HSK[0x2197ad0]: Keeping ciphersuite: DHE_RSA_CAMELLIA_256_CBC_SHA256 (00.C4)
HSK[0x2197ad0]: Keeping ciphersuite: DHE_RSA_3DES_EDE_CBC_SHA1 (00.16)
HSK[0x2197ad0]: Keeping ciphersuite: DHE_DSS_AES_128_GCM_SHA256 (00.A2)
HSK[0x2197ad0]: Keeping ciphersuite: DHE_DSS_AES_256_GCM_SHA384 (00.A3)
HSK[0x2197ad0]: Keeping ciphersuite: DHE_DSS_CAMELLIA_128_GCM_SHA256 (C0.80)
HSK[0x2197ad0]: Keeping ciphersuite: DHE_DSS_CAMELLIA_256_GCM_SHA384 (C0.81)
HSK[0x2197ad0]: Keeping ciphersuite: DHE_DSS_AES_128_CBC_SHA1 (00.32)
HSK[0x2197ad0]: Keeping ciphersuite: DHE_DSS_AES_128_CBC_SHA256 (00.40)
HSK[0x2197ad0]: Keeping ciphersuite: DHE_DSS_AES_256_CBC_SHA1 (00.38)
HSK[0x2197ad0]: Keeping ciphersuite: DHE_DSS_AES_256_CBC_SHA256 (00.6A)
HSK[0x2197ad0]: Keeping ciphersuite: DHE_DSS_CAMELLIA_128_CBC_SHA1 (00.44)
HSK[0x2197ad0]: Keeping ciphersuite: DHE_DSS_CAMELLIA_128_CBC_SHA256 (00.BD)
HSK[0x2197ad0]: Keeping ciphersuite: DHE_DSS_CAMELLIA_256_CBC_SHA1 (00.87)
HSK[0x2197ad0]: Keeping ciphersuite: DHE_DSS_CAMELLIA_256_CBC_SHA256 (00.C3)
HSK[0x2197ad0]: Keeping ciphersuite: DHE_DSS_3DES_EDE_CBC_SHA1 (00.13)
EXT[0x2197ad0]: Sending extension STATUS REQUEST (5 bytes)
EXT[0x2197ad0]: Sending extension SAFE RENEGOTIATION (1 bytes)
EXT[0x2197ad0]: Sending extension SESSION TICKET (0 bytes)
EXT[0x2197ad0]: Sending extension SUPPORTED ECC (12 bytes)
EXT[0x2197ad0]: Sending extension SUPPORTED ECC POINT FORMATS (2 bytes)
EXT[0x2197ad0]: sent signature algo (4.1) RSA-SHA256
EXT[0x2197ad0]: sent signature algo (4.2) DSA-SHA256
EXT[0x2197ad0]: sent signature algo (4.3) ECDSA-SHA256
EXT[0x2197ad0]: sent signature algo (5.1) RSA-SHA384
EXT[0x2197ad0]: sent signature algo (5.3) ECDSA-SHA384
EXT[0x2197ad0]: sent signature algo (6.1) RSA-SHA512
EXT[0x2197ad0]: sent signature algo (6.3) ECDSA-SHA512
EXT[0x2197ad0]: sent signature algo (3.1) RSA-SHA224
EXT[0x2197ad0]: sent signature algo (3.2) DSA-SHA224
EXT[0x2197ad0]: sent signature algo (3.3) ECDSA-SHA224
EXT[0x2197ad0]: sent signature algo (2.1) RSA-SHA1
EXT[0x2197ad0]: sent signature algo (2.2) DSA-SHA1
EXT[0x2197ad0]: sent signature algo (2.3) ECDSA-SHA1
EXT[0x2197ad0]: Sending extension SIGNATURE ALGORITHMS (28 bytes)
HSK[0x2197ad0]: CLIENT HELLO was queued [239 bytes]
HWRITE: enqueued [CLIENT HELLO] 239. Total 239 bytes.
HWRITE FLUSH: 239 bytes in buffer.
REC[0x2197ad0]: Preparing Packet Handshake(22) with length: 239 and min pad: 0
ENC[0x2197ad0]: cipher: NULL, MAC: MAC-NULL, Epoch: 0
WRITE: enqueued 244 bytes for 0x4. Total 244 bytes.
REC[0x2197ad0]: Sent Packet[1] Handshake(22) in epoch 0 and length: 244
HWRITE: wrote 1 bytes, 0 bytes left.
WRITE FLUSH: 244 bytes in buffer.
WRITE: wrote 244 bytes, 0 bytes left.
ASSERT: gnutls_buffers.c:1138
READ: Got 5 bytes from 0x4
READ: read 5 bytes from 0x4
RB: Have 0 bytes into buffer. Adding 5 bytes.
RB: Requested 5 bytes
REC[0x2197ad0]: SSL 3.3 Handshake packet received. Epoch 0, length: 89
REC[0x2197ad0]: Expected Packet Handshake(22)
REC[0x2197ad0]: Received Packet Handshake(22) with length: 89
READ: Got 89 bytes from 0x4
READ: read 89 bytes from 0x4
RB: Have 5 bytes into buffer. Adding 89 bytes.
RB: Requested 94 bytes
REC[0x2197ad0]: Decrypted Packet[0] Handshake(22) with length: 89
BUF[REC]: Inserted 89 bytes of Data(22)
HSK[0x2197ad0]: SERVER HELLO (2) was received. Length 85[85], frag offset 0, frag length: 85, sequence: 0
HSK[0x2197ad0]: Server's version: 3.3
HSK[0x2197ad0]: SessionID length: 32
HSK[0x2197ad0]: SessionID: b2f61fff2c1935632e9e3d38eab144010cf400a5b00dca5c4db7b39588c8c0c1
HSK[0x2197ad0]: Selected cipher suite: ECDHE_RSA_AES_128_GCM_SHA256
HSK[0x2197ad0]: Selected compression method: NULL (0)
EXT[0x2197ad0]: Parsing extension 'SAFE RENEGOTIATION/65281' (1 bytes)
EXT[0x2197ad0]: Parsing extension 'SUPPORTED ECC POINT FORMATS/11' (4 bytes)
HSK[0x2197ad0]: Safe renegotiation succeeded
ASSERT: gnutls_buffers.c:1138
READ: Got 5 bytes from 0x4
READ: read 5 bytes from 0x4
RB: Have 0 bytes into buffer. Adding 5 bytes.
RB: Requested 5 bytes
REC[0x2197ad0]: SSL 3.3 Handshake packet received. Epoch 0, length: 3140
REC[0x2197ad0]: Expected Packet Handshake(22)
REC[0x2197ad0]: Received Packet Handshake(22) with length: 3140
READ: Got 1241 bytes from 0x4
READ: Got 1899 bytes from 0x4
READ: read 3140 bytes from 0x4
RB: Have 5 bytes into buffer. Adding 3140 bytes.
RB: Requested 3145 bytes
REC[0x2197ad0]: Decrypted Packet[1] Handshake(22) with length: 3140
BUF[REC]: Inserted 3140 bytes of Data(22)
HSK[0x2197ad0]: CERTIFICATE (11) was received. Length 3136[3136], frag offset 0, frag length: 3136, sequence: 0
ASSERT: status_request.c:382
ASSERT: common.c:1106
ASSERT: dn.c:990
ASSERT: dn.c:990
ASSERT: dn.c:990
ASSERT: dn.c:990
ASSERT: dn.c:990
ASSERT: dn.c:990
ASSERT: dn.c:990
ASSERT: dn.c:990
ASSERT: dn.c:990
ASSERT: common.c:1106
ASSERT: extensions.c:65
ASSERT: name_constraints.c:173
ASSERT: mpi.c:240
ASSERT: common.c:1106
ASSERT: extensions.c:65
ASSERT: name_constraints.c:173
ASSERT: gnutls_buffers.c:1138
READ: Got 5 bytes from 0x4
READ: read 5 bytes from 0x4
RB: Have 0 bytes into buffer. Adding 5 bytes.
RB: Requested 5 bytes
REC[0x2197ad0]: SSL 3.3 Handshake packet received. Epoch 0, length: 333
REC[0x2197ad0]: Expected Packet Handshake(22)
REC[0x2197ad0]: Received Packet Handshake(22) with length: 333
READ: Got 333 bytes from 0x4
READ: read 333 bytes from 0x4
RB: Have 5 bytes into buffer. Adding 333 bytes.
RB: Requested 338 bytes
REC[0x2197ad0]: Decrypted Packet[2] Handshake(22) with length: 333
BUF[REC]: Inserted 333 bytes of Data(22)
HSK[0x2197ad0]: SERVER KEY EXCHANGE (12) was received. Length 329[329], frag offset 0, frag length: 329, sequence: 0
HSK[0x2197ad0]: Selected ECC curve SECP256R1 (2)
HSK[0x2197ad0]: verify handshake data: using RSA-SHA512
ASSERT: gnutls_buffers.c:1138
READ: Got 5 bytes from 0x4
READ: read 5 bytes from 0x4
RB: Have 0 bytes into buffer. Adding 5 bytes.
RB: Requested 5 bytes
REC[0x2197ad0]: SSL 3.3 Handshake packet received. Epoch 0, length: 4
REC[0x2197ad0]: Expected Packet Handshake(22)
REC[0x2197ad0]: Received Packet Handshake(22) with length: 4
READ: Got 4 bytes from 0x4
READ: read 4 bytes from 0x4
RB: Have 5 bytes into buffer. Adding 4 bytes.
RB: Requested 9 bytes
REC[0x2197ad0]: Decrypted Packet[3] Handshake(22) with length: 4
BUF[REC]: Inserted 4 bytes of Data(22)
HSK[0x2197ad0]: SERVER HELLO DONE (14) was received. Length 0[0], frag offset 0, frag length: 1, sequence: 0
ASSERT: gnutls_buffers.c:1129
ASSERT: gnutls_buffers.c:1358
HSK[0x2197ad0]: CLIENT KEY EXCHANGE was queued [70 bytes]
HWRITE: enqueued [CLIENT KEY EXCHANGE] 70. Total 70 bytes.
HWRITE: enqueued [CHANGE CIPHER SPEC] 1. Total 71 bytes.
REC[0x2197ad0]: Sent ChangeCipherSpec
INT: PREMASTER SECRET[32]: e3dd1deda67d76135ab540547df077c8651241b3ae7d2805f87c700593183a80
INT: CLIENT RANDOM[32]: 598992450c62bf11c1803efc1def108c361704a01ac99257c4c30f457ee6cfac
INT: SERVER RANDOM[32]: 62a4aad7a2e3294ef543e9691ccb3433480e921ac9b676bfdbcabe90a59793e7
INT: MASTER SECRET: 8335a9cfa09ed787b71844580b489e86ff96ea27a33f87e626194d4f925ee8da5d1f5ccee37a230f2e6cf363c24cbb04
REC[0x2197ad0]: Initializing epoch #1
INT: KEY BLOCK[40]: 152a1eeeed3ab27f194b407d2a32edb60cfc5acd0a81d9a414b6a7064c82c13a
INT: CLIENT WRITE KEY [16]: 152a1eeeed3ab27f194b407d2a32edb6
INT: SERVER WRITE KEY [16]: 0cfc5acd0a81d9a414b6a7064c82c13a
REC[0x2197ad0]: Epoch #1 ready
HSK[0x2197ad0]: Cipher Suite: ECDHE_RSA_AES_128_GCM_SHA256
HSK[0x2197ad0]: Initializing internal [write] cipher sessions
HSK[0x2197ad0]: recording tls-unique CB (send)
HSK[0x2197ad0]: FINISHED was queued [16 bytes]
HWRITE: enqueued [FINISHED] 16. Total 87 bytes.
HWRITE FLUSH: 87 bytes in buffer.
REC[0x2197ad0]: Preparing Packet Handshake(22) with length: 70 and min pad: 0
ENC[0x2197ad0]: cipher: NULL, MAC: MAC-NULL, Epoch: 0
WRITE: enqueued 75 bytes for 0x4. Total 75 bytes.
REC[0x2197ad0]: Sent Packet[2] Handshake(22) in epoch 0 and length: 75
HWRITE: wrote 1 bytes, 17 bytes left.
REC[0x2197ad0]: Preparing Packet ChangeCipherSpec(20) with length: 1 and min pad: 0
ENC[0x2197ad0]: cipher: NULL, MAC: MAC-NULL, Epoch: 0
WRITE: enqueued 6 bytes for 0x4. Total 81 bytes.
REC[0x2197ad0]: Sent Packet[3] ChangeCipherSpec(20) in epoch 0 and length: 6
HWRITE: wrote 1 bytes, 16 bytes left.
REC[0x2197ad0]: Preparing Packet Handshake(22) with length: 16 and min pad: 0
ENC[0x2197ad0]: cipher: AES-128-GCM, MAC: AEAD, Epoch: 1
WRITE: enqueued 45 bytes for 0x4. Total 126 bytes.
REC[0x2197ad0]: Sent Packet[1] Handshake(22) in epoch 1 and length: 45
HWRITE: wrote 1 bytes, 0 bytes left.
WRITE FLUSH: 126 bytes in buffer.
WRITE: wrote 126 bytes, 0 bytes left.
READ: Got 5 bytes from 0x4
READ: read 5 bytes from 0x4
RB: Have 0 bytes into buffer. Adding 5 bytes.
RB: Requested 5 bytes
REC[0x2197ad0]: SSL 3.3 ChangeCipherSpec packet received. Epoch 0, length: 1
REC[0x2197ad0]: Expected Packet ChangeCipherSpec(20)
REC[0x2197ad0]: Received Packet ChangeCipherSpec(20) with length: 1
READ: Got 1 bytes from 0x4
READ: read 1 bytes from 0x4
RB: Have 5 bytes into buffer. Adding 1 bytes.
RB: Requested 6 bytes
REC[0x2197ad0]: Decrypted Packet[4] ChangeCipherSpec(20) with length: 1
BUF[REC]: Inserted 1 bytes of Data(20)
HSK[0x2197ad0]: Cipher Suite: ECDHE_RSA_AES_128_GCM_SHA256
ASSERT: gnutls_buffers.c:1138
READ: Got 5 bytes from 0x4
READ: read 5 bytes from 0x4
RB: Have 0 bytes into buffer. Adding 5 bytes.
RB: Requested 5 bytes
REC[0x2197ad0]: SSL 3.3 Handshake packet received. Epoch 0, length: 40
REC[0x2197ad0]: Expected Packet Handshake(22)
REC[0x2197ad0]: Received Packet Handshake(22) with length: 40
READ: Got 40 bytes from 0x4
READ: read 40 bytes from 0x4
RB: Have 5 bytes into buffer. Adding 40 bytes.
RB: Requested 45 bytes
REC[0x2197ad0]: Decrypted Packet[0] Handshake(22) with length: 16
BUF[REC]: Inserted 16 bytes of Data(22)
HSK[0x2197ad0]: FINISHED (20) was received. Length 12[12], frag offset 0, frag length: 12, sequence: 0
REC[0x2197ad0]: Start of epoch cleanup
REC[0x2197ad0]: Epoch #0 freed
REC[0x2197ad0]: End of epoch cleanup
REC[0x2197ad0]: Preparing Packet Application Data(23) with length: 163 and min pad: 0
ENC[0x2197ad0]: cipher: AES-128-GCM, MAC: AEAD, Epoch: 1
WRITE: enqueued 192 bytes for 0x4. Total 192 bytes.
WRITE FLUSH: 192 bytes in buffer.
WRITE: wrote 192 bytes, 0 bytes left.
REC[0x2197ad0]: Sent Packet[2] Application Data(23) in epoch 1 and length: 192
READ: Got 5 bytes from 0x4
READ: read 5 bytes from 0x4
RB: Have 0 bytes into buffer. Adding 5 bytes.
RB: Requested 5 bytes
REC[0x2197ad0]: SSL 3.3 Application Data packet received. Epoch 0, length: 1394
REC[0x2197ad0]: Expected Packet Application Data(23)
REC[0x2197ad0]: Received Packet Application Data(23) with length: 1394
READ: Got 1394 bytes from 0x4
READ: read 1394 bytes from 0x4
RB: Have 5 bytes into buffer. Adding 1394 bytes.
RB: Requested 1399 bytes
REC[0x2197ad0]: Decrypted Packet[1] Application Data(23) with length: 1370
BUF[REC]: Inserted 1370 bytes of Data(23)
./httpfs2-ssl: HEAD: reply does not contain end of header!
HTTP/1.1 302 Found
Server: GitHub.com
Date: Tue, 08 Aug 2017 10:27:26 GMT
Content-Type: text/html; charset=utf-8
Status: 302 Found
Cache-Control: no-cache
Vary: X-PJAX
Location: https://github-production-release-asset-2e65be.s3.amazonaws.com/84325774/c4bab194-7bc1-11e7-90db-80bd20a8f2ec?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20170808%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20170808T102726Z&X-Amz-Expires=300&X-Amz-Signature=4feb644095972ab1839ac27237467491d98145e36d4080c07a5a20a0f4a86559&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3DAppImageUpdate-x86_64.AppImage&response-content-type=application%2Foctet-stream
X-UA-Compatible: IE=Edge,chrome=1
Set-Cookie: logged_in=no; domain=.github.com; path=/; expires=Sat, 08 Aug 2037 10:27:26 -0000; secure; HttpOnly
Set-Cookie: _gh_sess=eyJzZXNzaW9uX2lkIjoiODI5OGEyZmJiZTdhOGIwZTMyMTJkMzdlZTdiMmYzMzkiLCJsYXN0X3JlYWRfZnJvbV9yZXBsaWNhcyI6MTUwMjE4ODA0NjY2Miwic3B5X3JlcG8iOiJBcHBJbWFnZS
./httpfs2-ssl: HEAD: exchange: server error
HTTP/1.1 302 Found
Server: GitHub.com
Date: Tue, 08 Aug 2017 10:27:26 GMT
Content-Type: text/html; charset=utf-8
Status: 302 Found
Cache-Control: no-cache
Vary: X-PJAX
Location: https://github-production-release-asset-2e65be.s3.amazonaws.com/84325774/c4bab194-7bc1-11e7-90db-80bd20a8f2ec?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20170808%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20170808T102726Z&X-Amz-Expires=300&X-Amz-Signature=4feb644095972ab1839ac27237467491d98145e36d4080c07a5a20a0f4a86559&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3DAppImageUpdate-x86_64.AppImage&response-content-type=application%2Foctet-stream
X-UA-Compatible: IE=Edge,chrome=1
Set-Cookie: logged_in=no; domain=.github.com; path=/; expires=Sat, 08 Aug 2037 10:27:26 -0000; secure; HttpOnly
Set-Cookie: _gh_sess=eyJzZXNzaW9uX2lkIjoiODI5OGEyZmJiZTdhOGIwZTMyMTJkMzdlZTdiMmYzMzkiLCJsYXN0X3JlYWRfZnJvbV9yZXBsaWNhcyI6MTUwMjE4ODA0NjY2Miwic3B5X3JlcG8iOiJBcHBJbWFnZS
f:18:d3:f9:fc:e4
		fd:02:3d:41:c4:0f:cd:a1:f5:99:2a:1e:2e:7d:5e:dc
		cf:7a:58:44:34:b8:04:5f:84:10:54:38:97:91:98:fb
		2a:78:58:90:3f:c5:2b:d8:b1:31:d6:79:6c:51:0f:5f
		e7:97:ad:bf:45:df:45:37:63:64:69:c4:55:a3:30:b1
		45:59:5e:16:b0:47:4c:5c:6a:20:fe:a4:0e:7c:62:2c
		49:41:ad:99:e0:b5:8d:3b:89:eb:5a:61:95:4b:40:df
		c4:4f:2a:8b:41:fb:6c:7f:c4:de:73:04:e4:95:b8:ef
		9b:c3:53:26:a6:da:21:58:9f:63:0a:b0:34:df:b8:95
		1c:52:dc:5e:65:36:50:3f:8a:5d:76:20:e8:1b:46:2a
		0b:23:ad:a8:f0:6d:03:68:45:10:80:73:5f:f2:f4:86
Other Information:
	SHA1 fingerprint:
		d79f076110b39293e349ac89845b0380c19e2f8b
	SHA256 fingerprint:
		25fe3932d9638c8afca19a2987d83e4c1d98db71e41a480398ea226abd8b9316
	Public Key ID:
		d4ee9d2a6712b3614c272d158b04fcc8ca08a0b6
	Public key's random art:
		+--[ RSA 2048]----+
		|     .... ..     |
		|.     .. o..     |
		|o    . oooo      |
		|o.    o.=.o      |
		|...o . oS+.      |
		| E. o   *. . .   |
		|       . =. o    |
		|        + o.     |
		|         =.      |
		+-----------------+
- Key Exchange: ECDHE-RSA
- Protocol: TLS1.2
- Certificate Type: X.509
- Compression: NULL
- Cipher: AES-128-GCM
- MAC: AEAD
Note: SSL paramaters may change as new connections are established to the server.

So the issue seems to be

./httpfs2-ssl: HEAD: reply does not contain end of header!
./httpfs2-ssl: HEAD: exchange: server error

And with another server it segfaults straight away:

linux@linux:~/httpfs2-0.1.5> ./httpfs2-ssl -f -d 1000 -a /etc/ssl/ca-bundle.pem  "http://download.opensuse.org/repositories/home:/jsevans/AppImage/kueue-5.5.7-1.1.Build3.12.glibc2.14-x86_64.AppImage" /mnt 
file name:      kueue-5.5.7-1.1.Build3.12.glibc2.14-x86_64.AppImage
host name:      download.opensuse.org
port number:    80
protocol:       http
request path:   /repositories/home:/jsevans/AppImage/kueue-5.5.7-1.1.Build3.12.glibc2.14-x86_64.AppImage
auth data:      (null)
Segmentation fault (core dumped)

Then, there seems to be a more actively maintained fork at https://github.com/BenTech2/httpfs2 but it also does not succeed with these examples, although it gets a bit farther on the second one: BenTech2/httpfs2#1

This one is another enhanced fork which suffers as well:
Tomas-M/httpfs2-enhanced#2

Hence looking for alternatives, e.g., https://github.com/prologic/httpfs/
...once we can mount a single file:
https://github.com/prologic/httpfs/issues/6

Use a Jekyll collection for apps

https://jekyllrb.com/docs/collections/

Looks like for each app, we would want one yaml/md file. Hence we should probably combine all input files (e.g., desktop files, AppStream metainfo, etc.) into one yaml/md/json file per application.

This will have the added benefit that external consumers (e.g., app centers) will be able to easily use the same file too.

How best to handle multiple channels?

How best to handle multiple channels, such as

  • Release
  • Nightly
  • Alpha
  • Beta
  • Continous

?

We need

  • A data structure for specifying the different channels in the input files
  • A data structure for the resulting output files
  • A way to specify different channels, e.g., in GitHub URLs

Use subdirectories?

Thoughts welcome!

flexVDI: desktop file does not pass desktop-file-validate

/tmp/.mount_appimajHe3OD/flexvdi-client.desktop: error: file contains key "Value" in group "Desktop Entry", but keys extending the format should start with "X-"

/tmp/.mount_appimajHe3OD/flexvdi-client.desktop: error: value "Network" for string list key "Categories" in group "Desktop Entry" does not have a semicolon (';') as trailing character

https://travis-ci.org/AppImage/AppImageHub/builds/266118880#L541-L542

Would they a GitHub project for the FlexVDI desktop, I would have reported or even immediately fixed the issue. But since they haven't, I haven't. It's a pain to sign in somewhere else just to make a contribution like this.

AppImages without download links

Dear upstream developer, if you are reading this, then most likely someone has tried adding your AppImage to the central directory of AppImages here, but failed, because no download link for your application was available.

It would be nice if you could provide an AppImage download link, ideally without a hardcoded version number in the URL.

electron-builder-generated desktop files are lacking a Categories= entry

The *.desktop file is lacking a Categories= entry.

According to the menu spec,

By including one of the Main Categories in an application's desktop entry file, the application will be ensured that it will show up in a section of the application menu dedicated to this category. If multiple Main Categories are included in a single desktop entry file, the entry may appear more than once in the menu.

Hence, please add at least one of the following in the Categories= key.

Main Category Description Notes
AudioVideo Application for presenting, creating, or processing multimedia (audio/video)
Audio An audio application Desktop entry must include AudioVideo as well
Video A video application Desktop entry must include AudioVideo as well
Development An application for development
Education Educational software
Game A game
Graphics Application for viewing, creating, or processing graphics
Network Network application such as a web browser
Office An office type application
Science Scientific software
Settings Settings applications Entries may appear in a separate menu or as part of a "Control Center"
System System application, "System Tools" such as say a log viewer or network monitor
Utility Small utility application, "Accessories"

In addition, you could specify one or more from the longer list of Additional Categories.

Please test the result with desktop-file-validate and make sure it passes.

electron-builder offers native support for this since v19.22.1.. Please see the category key at https://www.electron.build/configuration/linux-other.

References:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.