Commit Graph

33 Commits

Author SHA1 Message Date
Kovid Goyal ee88003c01 Use the same soname for the freetype library as webengine uses 2024-10-03 07:13:32 +05:30
Kovid Goyal 8fbb9b254b Linux installer: Check that freetype is new enough 2024-10-02 20:49:03 +05:30
Kovid Goyal cb1bfb98a0 Linux installer: Workaround for Python 3.13 breaking SSL
Fixes #2083284 [Calibre installation script fails on Fedora 41 arm64 with ssl error](https://bugs.launchpad.net/calibre/+bug/2083284)
2024-10-01 08:27:41 +05:30
Kovid Goyal 641386dca1 Use a newer toolchain to build Linux binaries
Qt 6.7.2 fails to build with gcc 9/glibc 2.31
2024-08-05 10:48:09 +05:30
Kovid Goyal d447544e63 Revert "Bump the glibc version needed on linux"
This reverts commit 582122cc93.
Since we are going back to Qt 6.5 we dont need to build with newer
gcc
2023-12-08 09:10:12 +05:30
Kovid Goyal 582122cc93 Bump the glibc version needed on linux
Qt WebEngine 6.6 needs to be built with gcc that has -stdc++20 which
means we need to move to a ubuntu jammy image. The good part is this
harmonises ARM and Intel builds to both use jammy. The bad part is the
binaries now wont run on any distro released more than about a year ago.
Sigh.
2023-12-03 22:23:30 +05:30
Kovid Goyal bfa3f40279 typo in function name 2023-11-18 08:20:49 +05:30
Kovid Goyal 2d92d1009b Linux installer: Check that the user has libxcb-cursor.so.0 installed
If not quit early with an error message asking them to install it
2023-11-18 07:56:58 +05:30
Kovid Goyal b1aad38a4b Linux installer: Fix downloading of signatures for older versions
Fixes #2042748 [Unable to install previous version in isolated mode](https://bugs.launchpad.net/calibre/+bug/2042748)
2023-11-05 08:18:56 +05:30
Kovid Goyal cad8b4bb24 Linux installer: Nicer error message on ARM systems with glibc < 2.34 2022-11-04 20:31:55 +05:30
Kovid Goyal 32ed99b702 Linux installer: Also check for libOpenGL 2022-07-18 11:01:22 +05:30
Kovid Goyal 8478773194 Fix typo libopengl1 -> libopengl0 2022-07-15 07:41:41 +05:30
Kovid Goyal d413327e81 Linux installer: Check for libEGL as the QtGui module in Qt 6 links against it and many Linux servers dont have it installed 2022-07-14 23:57:15 +05:30
Kovid Goyal b93af62abf ... 2022-07-12 16:31:23 +05:30
Kovid Goyal 954cb38135 Linux installer: Fix glibc version check also being done when installing older versions 2022-07-12 16:09:50 +05:30
Kovid Goyal 5db39aa16e Drop 32-bit code paths 2022-07-06 19:19:39 +05:30
Kovid Goyal d92c5ccf87 Linux installer: Useful error message if glibc is too old 2022-07-06 19:19:36 +05:30
Kovid Goyal 2f830e666f Merge branch 'lint_linux_installer' of https://github.com/thuvh/calibre 2021-01-05 10:01:39 +05:30
Kovid Goyal 29cd8d64ea Change shebangs to python from python2
Also remove a few other miscellaneous references to python2
2020-08-22 18:47:51 +05:30
Kovid Goyal 1c66024316 Linux installer: Detect ARM 64bit as well as 32bit 2020-06-04 19:40:32 +05:30
Eli Schwartz 0163b537dc linux installer: fix python3 re.sub with mismatched str/bytes
This does not seem to have been a very commonly hit case, since it's
been broken for python3 since before 2014, but a user has just hit it
for the first time.

Fixes #1851873
2019-11-08 14:11:31 -05:00
Kovid Goyal 9536ffe8cd Merge branch 'pin-version' of https://github.com/widdix/calibre 2019-10-14 07:03:36 +05:30
Michael Wittig f93bf9379e fix 2019-10-13 19:15:32 +02:00
Michael Wittig 92c88b2637 Allow a user to specify the version that is installed 2019-10-13 18:48:46 +02:00
Eli Schwartz 45ca4c7934 py3: merge multiline __future__ imports to not confuse 2to3 2019-05-27 00:41:14 -04:00
Kovid Goyal 1c22094803 Cleanup urllib imports 2019-05-02 07:25:03 +05:30
Kovid Goyal d6402a0fdd Use a non-deprecated technique for resuming partial downloads in the Linux installer. Fixes #1827289 [Deprecation warning in installation script.](https://bugs.launchpad.net/calibre/+bug/1827289) 2019-05-02 07:17:44 +05:30
Joel Goguen 1c25ba0042 Exclude execute from umask
If the umask is set up to exlude execute, the installer will set up
calibre to be unreadable by any user other than the installing user.
When installing as `root`, a starting umask of `0o077` results in the
installer choosing a new umask of `0o033`, which means the calibre
install directory (and child directories) are installed with permissions
`0o744`, so only the installing user can actually use the resulting
calibre install.

To test, start with a system umask of `0o077` and run the installer
script as root:

```
% sudo sh ./setup/linux-installer.sh
Using python executable: /usr/bin/python3
WARNING: Your current umask disallows reading of files by some users, this can cause system breakage when running the installer because of bugs in common system utilities.
Should the installer (f)ix the umask, (i)gnore it or (a)bort [f/i/a Default is abort]: f
umask changed to: 022
Installing to /opt/calibre
Downloading tarball signature securely...
Using previously downloaded calibre-3.26.1-x86_64.txz
Extracting files to /opt/calibre ...
Extracting application files...
Creating symlinks...
	Symlinking /opt/calibre/ebook-edit to /usr/bin/ebook-edit
	Symlinking /opt/calibre/calibre-debug to /usr/bin/calibre-debug
	Symlinking /opt/calibre/web2disk to /usr/bin/web2disk
	Symlinking /opt/calibre/calibre-parallel to /usr/bin/calibre-parallel
	Symlinking /opt/calibre/calibredb to /usr/bin/calibredb
	Symlinking /opt/calibre/lrs2lrf to /usr/bin/lrs2lrf
	Symlinking /opt/calibre/calibre to /usr/bin/calibre
	Symlinking /opt/calibre/ebook-convert to /usr/bin/ebook-convert
	Symlinking /opt/calibre/calibre-server to /usr/bin/calibre-server
	Symlinking /opt/calibre/ebook-viewer to /usr/bin/ebook-viewer
	Symlinking /opt/calibre/calibre-smtp to /usr/bin/calibre-smtp
	Symlinking /opt/calibre/ebook-meta to /usr/bin/ebook-meta
	Symlinking /opt/calibre/ebook-device to /usr/bin/ebook-device
	Symlinking /opt/calibre/fetch-ebook-metadata to /usr/bin/fetch-ebook-metadata
	Symlinking /opt/calibre/ebook-polish to /usr/bin/ebook-polish
	Symlinking /opt/calibre/lrfviewer to /usr/bin/lrfviewer
	Symlinking /opt/calibre/calibre-customize to /usr/bin/calibre-customize
	Symlinking /opt/calibre/lrf2lrs to /usr/bin/lrf2lrs
	Symlinking /opt/calibre/markdown-calibre to /usr/bin/markdown-calibre
Setting up command-line completion...
Installing zsh completion to: /usr/share/zsh/site-functions/_calibre
Installing bash completion to: /usr/share/bash-completion/completions/calibre
Setting up desktop integration...
Creating un-installer: /usr/bin/calibre-uninstall
Run "calibre" to start calibre
```

And the resulting directory:
```
% ls -ld /opt/calibre
drwxr-xr-x. 5 root root 4.0K Jun 22 10:53 /opt/calibre/
```

Also verify the Python version, starting with no `/opt/calibre` and a system umask of `0o077`:
```
% sudo python3 ./setup/linux-installer.py
WARNING: Your current umask disallows reading of files by some users, this can cause system breakage when running the installer because of bugs in common system utilities.
Should the installer (f)ix the umask, (i)gnore it or (a)bort [f/i/a Default is abort]: f
umask changed to: 022
Installing to /opt/calibre
Downloading tarball signature securely...
Using previously downloaded calibre-3.26.1-x86_64.txz
Extracting files to /opt/calibre ...
Extracting application files...
Creating symlinks...
	Symlinking /opt/calibre/calibre-customize to /usr/bin/calibre-customize
	Symlinking /opt/calibre/calibre-smtp to /usr/bin/calibre-smtp
	Symlinking /opt/calibre/calibredb to /usr/bin/calibredb
	Symlinking /opt/calibre/calibre to /usr/bin/calibre
	Symlinking /opt/calibre/ebook-polish to /usr/bin/ebook-polish
	Symlinking /opt/calibre/ebook-meta to /usr/bin/ebook-meta
	Symlinking /opt/calibre/calibre-server to /usr/bin/calibre-server
	Symlinking /opt/calibre/markdown-calibre to /usr/bin/markdown-calibre
	Symlinking /opt/calibre/fetch-ebook-metadata to /usr/bin/fetch-ebook-metadata
	Symlinking /opt/calibre/lrf2lrs to /usr/bin/lrf2lrs
	Symlinking /opt/calibre/calibre-parallel to /usr/bin/calibre-parallel
	Symlinking /opt/calibre/ebook-convert to /usr/bin/ebook-convert
	Symlinking /opt/calibre/ebook-viewer to /usr/bin/ebook-viewer
	Symlinking /opt/calibre/web2disk to /usr/bin/web2disk
	Symlinking /opt/calibre/calibre-debug to /usr/bin/calibre-debug
	Symlinking /opt/calibre/ebook-device to /usr/bin/ebook-device
	Symlinking /opt/calibre/lrfviewer to /usr/bin/lrfviewer
	Symlinking /opt/calibre/ebook-edit to /usr/bin/ebook-edit
	Symlinking /opt/calibre/lrs2lrf to /usr/bin/lrs2lrf
Setting up command-line completion...
Installing zsh completion to: /usr/share/zsh/site-functions/_calibre
Installing bash completion to: /usr/share/bash-completion/completions/calibre
Setting up desktop integration...
Creating un-installer: /usr/bin/calibre-uninstall
Run "calibre" to start calibre

% ls -ld /opt/calibre
drwxr-xr-x. 5 root root 4.0K Jun 22 10:55 /opt/calibre/
```

After each, verify calibre starts as a non-root user.
2018-06-22 10:49:26 -07:00
Kovid Goyal 73029303d6 Dont use a set literal in the installer since there are apparently people still running linux installations with python 2.6 2018-06-09 07:05:03 +05:30
Kovid Goyal f04b5eea20 Remove use of command -v from linux-installer.sh 2018-04-30 08:29:59 +05:30
Kovid Goyal 7a150c065e Add a shebang for linux-installer.sh 2018-04-29 15:11:46 +05:30
Kovid Goyal 54c81eec15 Simplify passing arguments to linux-installer.py 2018-04-29 14:57:59 +05:30
Kovid Goyal db936049cd Add a shell script wrapper for the linux installer
Needed because Ubuntu 18.04 has decided, in its infinite wisdom to
have no default python executable, which makes it impossible to run
polyglot python scripts.
2018-04-28 10:05:18 +05:30