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 582122cc935808ed77571f8894ef4139adda6a7f.
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