{"id":17193813,"url":"https://github.com/darealshinji/linuxdeploy-plugin-checkrt","last_synced_at":"2025-04-13T19:31:43.400Z","repository":{"id":38848637,"uuid":"89483761","full_name":"darealshinji/linuxdeploy-plugin-checkrt","owner":"darealshinji","description":"Have your AppImage check libgcc and libstdc++ dependencies at runtime.","archived":false,"fork":false,"pushed_at":"2025-03-09T20:18:16.000Z","size":93,"stargazers_count":37,"open_issues_count":0,"forks_count":28,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-27T10:21:17.483Z","etag":null,"topics":["appimage","applications","deployment","linux","linux-app","packaging"],"latest_commit_sha":null,"homepage":"https://github.com/probonopd/AppImageKit","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/darealshinji.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-04-26T13:27:08.000Z","updated_at":"2025-03-09T15:08:21.000Z","dependencies_parsed_at":"2023-01-19T13:46:59.586Z","dependency_job_id":"45b1b5f7-e4af-41ab-a424-8814785f917d","html_url":"https://github.com/darealshinji/linuxdeploy-plugin-checkrt","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darealshinji%2Flinuxdeploy-plugin-checkrt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darealshinji%2Flinuxdeploy-plugin-checkrt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darealshinji%2Flinuxdeploy-plugin-checkrt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darealshinji%2Flinuxdeploy-plugin-checkrt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/darealshinji","download_url":"https://codeload.github.com/darealshinji/linuxdeploy-plugin-checkrt/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248767946,"owners_count":21158560,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["appimage","applications","deployment","linux","linux-app","packaging"],"created_at":"2024-10-15T01:44:59.752Z","updated_at":"2025-04-13T19:31:42.972Z","avatar_url":"https://github.com/darealshinji.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"linuxdeploy-plugin-checkrt\n--------------------------\n\nThis linuxdeploy plugin allows you to deploy `libstdc++.so.6` and `libgcc_s.so.1`\nwithout breaking compatibility. The installed AppRun hook script will compare the\nsymbol version numbers between the deployed libraries and those on your system\nand only add the deployed ones to `LD_LIBRARY_PATH` if they're newer.\n\nAdditionally the library `exec.so` is deployed and will be preloaded by AppRun if\nit's found. This library is intended to restore the environment of the AppImage's\nparent process in order to avoid library clashing of bundled libraries with external\nprocesses called from within the AppImage (i.e. when a webbrowser is opened or a\nterminal emulator is started).\nIf you don't want `exec.so` then simply delete it before creating your final AppImage.\n\nRequirements\n------------\nC compiler (GCC or Clang)\n\nUsage\n-----\n``` sh\n# get linuxdeploy and linuxdeploy-plugin-checkrt and make them executable\nwget -c \"https://github.com/darealshinji/linuxdeploy-plugin-checkrt/releases/download/continuous/linuxdeploy-plugin-checkrt.sh\"\nwget -c \"https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage\"\nchmod a+x linuxdeploy-x86_64.AppImage linuxdeploy-plugin-checkrt.sh\n\n# add GCC's libraries to the search path\n# and call through linuxdeploy using the `--plugin checkrt` option\nLD_LIBRARY_PATH=\"/path/to/my/gcc-snapshot/lib64\" \\\n  ./linuxdeploy-x86_64.AppImage --appdir AppDir --plugin checkrt --output appimage --icon-file mypackage.png --desktop-file mypackage.desktop\n```\n\nWhy?\n----\n`libstdc++.so.6` and `libgcc_s.so.1` are part of GCC and if you compile code it\nwill be linked against these libraries if required. If you use a newer version\nof GCC than normally available on your system these libraries will also be newer\nand chances are high that your program - linked against these newer versions - is\nno longer compatible to those installed by default on your system.\n\nStarting your program would get you an error message like this:\n```\n./myApp: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by ./myApp)\n```\n\nHowever you cannot simply bundle these libraries as usual. If the AppImage is\nstarted on a different system and an unbundled system library depends on a newer\nversion than available from the AppImage it won't work either.\n\nThis linuxdeploy plugin will install a hook script that quickly checks and compares\nthe internal version number of the libraries and only adds them to the search\npath if they're newer.\n\nHacking\n-------\nThe file `linuxdeploy-plugin-checkrt.sh` is created from `generate.sh`.\nTo add changes to the plugin you must edit the other files and then run `./generate.sh`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarealshinji%2Flinuxdeploy-plugin-checkrt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdarealshinji%2Flinuxdeploy-plugin-checkrt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarealshinji%2Flinuxdeploy-plugin-checkrt/lists"}