Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Failure to build supported package types on Linux #206

Closed
3 tasks done
maxbarry opened this issue Sep 17, 2021 · 3 comments
Closed
3 tasks done

Failure to build supported package types on Linux #206

maxbarry opened this issue Sep 17, 2021 · 3 comments

Comments

@maxbarry
Copy link

Bug Report

Problem

The page https://cordova.apache.org/docs/en/10.x/guide/platforms/electron/ lists some supported package types for Linux that don't seem to work.

cordova run electron works fine under default settings, producing .tar.gz output. It also works fine if configured via build.json to produce most of the listed supported formats. But the process fails if configured to build any of mas-dev, AppImg, snap, pacman, or p5p.

mas-dev

build.json:

    "electron": {
        "linux": {
            "package": [
                 "mas-dev"
            ]
        }   
    }   
}

This immediately fails:

$ cordova build electron
  • electron-builder  version=22.11.7 os=5.11.0-34-generic
  • loaded configuration  file=package.json ("build" field)
  • writing effective config  file=platforms/electron/build/builder-effective-config.yaml
Unknown target: mas-dev

AppImage, snap

build.json:

    "electron": {
        "linux": {
            "package": [
                 "AppImage",
                 "snap"
            ]
        }   
    }   
}

Any package list that includes "AppImage" or "snap" fails, leaving no build:

$ cordova build electron
  • electron-builder  version=22.11.7 os=5.11.0-34-generic
  • loaded configuration  file=package.json ("build" field)
  • writing effective config  file=platforms/electron/build/builder-effective-config.yaml
  • packaging       platform=linux arch=x64 electron=14.0.0 appOutDir=platforms/electron/build/linux-unpacked
  • building        target=tar.gz arch=x64 file=platforms/electron/build/squiggle-legends-0.9.6-PRE-ALPHA.20210917.7.8.59.tar.gz
  • building        target=7z arch=x64 file=platforms/electron/build/squiggle-legends-0.9.6-PRE-ALPHA.20210917.7.8.59.7z
  • building        target=zip arch=x64 file=platforms/electron/build/squiggle-legends-0.9.6-PRE-ALPHA.20210917.7.8.59.zip
  • building        target=snap arch=x64 file=platforms/electron/build/squiggle-legends_0.9.6-PRE-ALPHA.20210917.7.8.59_amd64.snap
  • building        target=AppImage arch=x64 file=platforms/electron/build/SquiggleLegends-0.9.6-PRE-ALPHA.20210917.7.8.59.AppImage
Cannot cleanup: 

Error apache/cordova#1 --------------------------------------------------------------------------------
TypeError: fs.rm is not a function
    at createStageDirPath (/home/max/code/squiggle/football/node_modules/app-builder-lib/src/targets/targetUtil.ts:32:12)
    at Object.createStageDir (/home/max/code/squiggle/football/node_modules/app-builder-lib/src/targets/targetUtil.ts:27:29)
    at AppImageTarget.build (/home/max/code/squiggle/football/node_modules/app-builder-lib/src/targets/AppImageTarget.ts:48:7)
    at async Promise.all (index 4)
    at AsyncTaskManager.awaitTasks (/home/max/code/squiggle/football/node_modules/builder-util/src/asyncTaskManager.ts:65:25)
    at /home/max/code/squiggle/football/node_modules/app-builder-lib/src/platformPackager.ts:150:7

Error apache/cordova#2 --------------------------------------------------------------------------------
TypeError: fs.rm is not a function
    at Object.createStageDirPath (/home/max/code/squiggle/football/node_modules/app-builder-lib/src/targets/targetUtil.ts:32:12)
    at SnapTarget.build (/home/max/code/squiggle/football/node_modules/app-builder-lib/src/targets/snap.ts:183:28)
    at async Promise.all (index 3)
    at AsyncTaskManager.awaitTasks (/home/max/code/squiggle/football/node_modules/builder-util/src/asyncTaskManager.ts:65:25)
    at /home/max/code/squiggle/football/node_modules/app-builder-lib/src/platformPackager.ts:150:7
    at async Promise.all (index 0)
    at AsyncTaskManager.awaitTasks (/home/max/code/squiggle/football/node_modules/builder-util/src/asyncTaskManager.ts:65:25)
    at Packager.doBuild (/home/max/code/squiggle/football/node_modules/app-builder-lib/src/packager.ts:453:5)
    at Object.executeFinally (/home/max/code/squiggle/football/node_modules/builder-util/src/promise.ts:12:14)
    at Packager._build (/home/max/code/squiggle/football/node_modules/app-builder-lib/src/packager.ts:376:31)
    at Packager.build (/home/max/code/squiggle/football/node_modules/app-builder-lib/src/packager.ts:337:12)
    at Object.executeFinally (/home/max/code/squiggle/football/node_modules/builder-util/src/promise.ts:12:14)

pacman, p5p

build.json:

    "electron": {
        "linux": {
            "package": [
                 "pacman"
            ]
        }   
    }   
}
$ cordova build electron
  • electron-builder  version=22.11.7 os=5.11.0-34-generic
  • loaded configuration  file=package.json ("build" field)
  • writing effective config  file=platforms/electron/build/builder-effective-config.yaml
  • packaging       platform=linux arch=x64 electron=14.0.0 appOutDir=platforms/electron/build/linux-unpacked
  • building        target=tar.gz arch=x64 file=platforms/electron/build/squiggle-legends-0.9.6-PRE-ALPHA.20210917.7.8.59.tar.gz
  • building        target=tar.bz2 arch=x64 file=platforms/electron/build/squiggle-legends-0.9.6-PRE-ALPHA.20210917.7.8.59.tar.bz2
  • building        target=tar.lz arch=x64 file=platforms/electron/build/squiggle-legends-0.9.6-PRE-ALPHA.20210917.7.8.59.tar.lz
  • building        target=tar.xz arch=x64 file=platforms/electron/build/squiggle-legends-0.9.6-PRE-ALPHA.20210917.7.8.59.tar.xz
  • building        target=7z arch=x64 file=platforms/electron/build/squiggle-legends-0.9.6-PRE-ALPHA.20210917.7.8.59.7z
  • building        target=zip arch=x64 file=platforms/electron/build/squiggle-legends-0.9.6-PRE-ALPHA.20210917.7.8.59.zip
  • building        target=pacman arch=x64 file=platforms/electron/build/squiggle-legends-0.9.6-PRE-ALPHA.20210917.7.8.59.pacman
  ⨯ cannot execute  cause=exit status 1
                    out={:timestamp=>"2021-09-17T10:55:07.479124+1000", :message=>"Process failed: /bin/bash failed (exit code 127). Full command was:[\"/bin/bash\", \"-c\", \"LANG=C bsdtar -czf .MTREE --format=mtree --options='!all,use-set,type,uid,gid,mode,time,size,md5,sha256,link' usr .INSTALL opt .PKGINFO\"]", :level=>:error}
    
                    command=/home/max/.cache/electron-builder/fpm/fpm-1.9.3-2.3.1-linux-x86_64/fpm -s dir --force -t pacman -d c-ares -d ffmpeg -d gtk3 -d http-parser -d libevent -d libvpx -d libxslt -d libxss -d minizip -d nss -d re2 -d snappy -d libnotify -d libappindicator-gtk3 --pacman-compression xz --architecture amd64 --after-install /tmp/t-cNwz45/0-after-install --after-remove /tmp/t-cNwz45/1-after-remove --description 'Squiggle Legends' --version 0.9.6-PRE-ALPHA.20210917.7.8.59 --package /home/max/code/squiggle/football/platforms/electron/build/squiggle-legends-0.9.6-PRE-ALPHA.20210917.7.8.59.pacman --name squiggle-legends --license Apache-2.0 /home/max/code/squiggle/football/platforms/electron/build/linux-unpacked/=/opt/SquiggleLegends /home/max/code/squiggle/football/platforms/electron/build-res/installer.png=/usr/share/icons/hicolor/0x0/apps/squiggle-legends.png /tmp/t-cNwz45/g-SquiggleLegends.desktop=/usr/share/applications/squiggle-legends.desktop
                    workingDir=
/home/max/code/squiggle/football/node_modules/app-builder-bin/linux/x64/app-builder exited with code ERR_ELECTRON_BUILDER_CANNOT_EXECUTE

Environment, Platform, Device

Ubuntu 21.04

Version information

Cordova 10.0.0
Platform: electron@3.0.0

Checklist

  • I searched for existing GitHub issues
  • I updated all Cordova tooling to most recent version
  • I included all the necessary information above
@breautek breautek transferred this issue from apache/cordova Sep 17, 2021
@erisu
Copy link
Member

erisu commented Sep 17, 2021

mas-dev is a macOS target, not Linux. That was a mistake in the documentation. I submited PRs to correct the docs:

For the other error target errors:

  • AppImage
  • snap
  • pacman
  • p5p

Those errors are coming from theelectron-builder. It is recommended to search for exisiting or open a new ticket here: https://github.com/electron-userland/electron-builder

From my quick search:

@erisu
Copy link
Member

erisu commented Sep 17, 2021

If the above-linked tickets resolved your issues, please close or let us know to close this ticket.


For additional infromation:

If you end up creating a new ticket on electron-builder, please make sure to provide their version of the config file when talking about configurations.

From your project root directory, you can find their config file at: platforms/electron/build/builder-effective-config.yaml

  • The YAML file is the actual configuration file that electron-builder uses.
  • The build.json file is how Cordova gets user-defined configurations and prepares them into what electron-builder can accept. Then electron-builder will generate and use their own YAML file.

@maxbarry
Copy link
Author

For the record: AppImage and snap formats did indeed successfully build after I upgraded from Node 14.4.0 -> 16.9.1. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants