fontconfig is a missing dependency:
marktext I: Link-level dependence (fontconfig) in file ['usr/lib/libfontconfig.so.1']
marktext I: Depends as namcap sees them: depends=(libsecret fontconfig libxkbfile)
| Git Clone URL: | https://aur.archlinux.org/marktext.git (read-only, click to copy) |
|---|---|
| Package Base: | marktext |
| Description: | A simple and elegant open-source markdown editor that focused on speed and usability |
| Upstream URL: | https://www.marktext.cc |
| Keywords: | editor electron markdown note |
| Licenses: | MIT |
| Submitter: | dopsi |
| Maintainer: | alerque |
| Last Packager: | alerque |
| Votes: | 28 |
| Popularity: | 1.00 |
| First Submitted: | 2018-05-01 08:22 (UTC) |
| Last Updated: | 2026-06-30 08:30 (UTC) |
fontconfig is a missing dependency:
marktext I: Link-level dependence (fontconfig) in file ['usr/lib/libfontconfig.so.1']
marktext I: Depends as namcap sees them: depends=(libsecret fontconfig libxkbfile)
Good news everyone. Since the upstream project has finally gotten up to speed with current Electron releases, as of the 0.16.3 release posted about an hour ago this build is back to working with the Arch [community] electron package. It also builds with any current nodejs package so you don't have to downgrade to an old LTS to build either.
If you don't want to build at all, as always the most recent successful build I've run is available in my user repository.
@kipsora Sorry for the confustion there, I did miss something. In the mean time while this package should work now I actually recommend using marktext-git because the upstream project has finally updated to use a real modern Electron (11) which can be supplied by the [community] packages again. This package will not reflet this until the 0.16.3 release, but the Git package already uses it (and that's what I'm actually running, which is why I didn't even notice this was only pretending on the Electron 8 bump).
Is the current building script corrupted?
Well I can install electron8-bin as required but the PKGBUILD still uses electron7 for building stuffs.
@monoid What a fiasco! The electron7 package was dropped from [community] but there is an AUR package eletron7-bin that provides it. You can use that. This is actually available for 8 too and I didn't want to go down the road of using an AUR bin package, but there is less and less options available to us. I preferred the downgrade to 7 over the bin package. Now that our hand is forced I'll bump this to 8 again. People that want to build it can supply that how they want, but currently electron8-bin is the only way I know of.
If anybody submits a working electron8 source package to the [AUR] I'd be happy to build and host it in my package repository.
@caleb
electron7 seems to have been removed from the official repos. Not sure what would be the best course of action, maybe adding electron7 to AUR and using that instead?
Not much work has been done towards electron9 support just yet https://github.com/marktext/marktext/issues/2128
PKGBUILD using NVM to set the Node.js version during build instead of replacing nodejs with nodejs-lts-erbium on one's system.
I still have a build error in a clean chroot:
OKAY take it away `electron-builder`
yarn run v1.22.4
$ /build/marktext/src/marktext-0.16.2/node_modules/.bin/electron-builder --linux --x64 --dir dist
• electron-builder version=22.7.0 os=5.7.7-arch1-1
• loaded configuration file=/build/marktext/src/marktext-0.16.2/electron-builder.yml
• electron-rebuild not required if you use electron-builder, please consider to remove excess dependency from devDependencies
To ensure your native dependencies are always matched electron version, simply add script `"postinstall": "electron-builder install-app-deps" to your `package.json`
• rebuilding native dependencies dependencies=@hfelix/spellchecker@4.0.12-rc.2, ced@1.0.0, cld@2.7.0, fontmanager-redux@0.4.0, keyboard-layout@2.0.16, keytar@6.0.1 platform=linux arch=x64
• install prebuilt binary name=keytar version=6.0.1 platform=linux arch=x64
• build native dependency from sources name=keytar
version=6.0.1
platform=linux
arch=x64
reason=prebuild-install failed with error (run with env DEBUG=electron-builder to get more information)
error=/build/marktext/src/marktext-0.16.2/node_modules/semver/semver.js:323
throw new TypeError('Invalid Version: ' + version)
^
TypeError: Invalid Version:
at new SemVer (/build/marktext/src/marktext-0.16.2/node_modules/semver/semver.js:323:11)
at compare (/build/marktext/src/marktext-0.16.2/node_modules/semver/semver.js:614:39)
at Function.lte (/build/marktext/src/marktext-0.16.2/node_modules/semver/semver.js:668:10)
at getAbi (/build/marktext/src/marktext-0.16.2/node_modules/node-abi/index.js:25:16)
at module.exports (/build/marktext/src/marktext-0.16.2/node_modules/prebuild-install/rc.js:73:57)
at Object.<anonymous> (/build/marktext/src/marktext-0.16.2/node_modules/prebuild-install/bin.js:9:25)
at Module._compile (internal/modules/cjs/loader.js:1138:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)
at Module.load (internal/modules/cjs/loader.js:986:32)
at Function.Module._load (internal/modules/cjs/loader.js:879:14)
• rebuilding native dependency name=ced version=1.0.0
• rebuilding native dependency name=@hfelix/spellchecker version=4.0.12-rc.2
• rebuilding native dependency name=fontmanager-redux version=0.4.0
• rebuilding native dependency name=cld version=2.7.0
• rebuilding native dependency name=keytar version=6.0.1
• rebuilding native dependency name=keyboard-layout version=2.0.16
⨯ cannot execute cause=exit status 1
out=$ node-gyp rebuild
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
errorOut=gyp info it worked if it ends with ok
gyp info using node-gyp@6.1.0
gyp info using node@12.17.0 | linux | x64
gyp info find Python using Python version 3.8.3 found at "/usr/bin/python3"
gyp http GET https://electronjs.org/headers/v12.17.0/node-v12.17.0-headers.tar.gz
gyp http 403 https://electronjs.org/headers/v12.17.0/node-v12.17.0-headers.tar.gz
gyp WARN install got an error, rolling back install
gyp ERR! configure error
gyp ERR! stack Error: 403 response downloading https://electronjs.org/headers/v12.17.0/node-v12.17.0-headers.tar.gz
gyp ERR! stack at Request.<anonymous> (/build/marktext/src/marktext-0.16.2/node_modules/node-gyp/lib/install.js:188:14)
gyp ERR! stack at Request.emit (events.js:327:22)
gyp ERR! stack at Request.onRequestResponse (/build/marktext/src/marktext-0.16.2/node_modules/request/request.js:1059:10)
gyp ERR! stack at ClientRequest.emit (events.js:315:20)
gyp ERR! stack at HTTPParser.parserOnIncomingClient [as onIncoming] (_http_client.js:596:27)
gyp ERR! stack at HTTPParser.parserOnHeadersComplete (_http_common.js:119:17)
gyp ERR! stack at TLSSocket.socketOnData (_http_client.js:469:22)
gyp ERR! stack at TLSSocket.emit (events.js:315:20)
gyp ERR! stack at addChunk (_stream_readable.js:295:12)
gyp ERR! stack at readableAddChunk (_stream_readable.js:271:9)
gyp ERR! System Linux 5.7.7-arch1-1
gyp ERR! command "/usr/bin/node" "/build/marktext/src/marktext-0.16.2/node_modules/.bin/node-gyp" "rebuild"
gyp ERR! cwd /build/marktext/src/marktext-0.16.2/node_modules/cld
gyp ERR! node -v v12.17.0
gyp ERR! node-gyp -v v6.1.0
gyp ERR! not ok
error Command failed with exit code 1.
command=/usr/bin/node /usr/lib/node_modules/yarn/bin/yarn.js run install
workingDir=/build/marktext/src/marktext-0.16.2/node_modules/cld
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
==> ERROR: A failure occurred in build().
Aborting...
==> ERROR: Build failed, check /var/lib/archbuild/extra-x86_64/nicohood/build
@monoid Having a -bin package definitely makes sense and will be what some people want to use for the least hassle approach. The -bin package should be kept up to date as well for those that want it, but the source package being a bit more Arch idiomatic is what some people expect and want. Yes it's some trouble, but in the end some people prefer that outcome.
@caleb
Thanks for the explanation. Seems like being always on the bleeding edge is a maintenance nightmare for electron packages. Does it make sense to simply provide an updated bin package? There is one already but does not seem to be getting updates anymore.
Marktext provides an appimage that can be used at the basis for a -bin package.
I know that bin packages is not a recommended approach but it seems to be the easiest way to avoid this dependency issue.
Pinned Comments
alerque commented on 2023-11-02 11:09 (UTC)
PSA: The build process for this package is known to be broken because it requires older versions of stuff than is available in Arch now. The only way I know of to install it is to use packages that were built back when the
npmin Arch was older. You can use my user repository to get the latest successful build.