PilatusDevs / StatusPilatus

Monitor your PC like never before!
GNU General Public License v3.0
59 stars 9 forks source link

npm run buildlinux fails #72

Closed IanTrudel closed 4 years ago

IanTrudel commented 4 years ago

Building StatusPilatus using npm run buildlinux fails. Should be noted that npm install and npm start do work.

StatusPilatus is really nice!

Expected Behavior

Some kind of installable package.

Actual Behavior

Trying to build a deb on a non-debian distro. CentOS uses rpm.

Context

How has this issue affected you? What are you trying to accomplish? Providing context helps us come up with a solution that is most useful in the real world

Your Environment

CentOS 7 with custom kernel (5.3.12). NodeJS v10.16.3 npm 6.13.4

Logs

> StatusPilatus@0.5.0 buildlinux /home/ian/Workspace/StatusPilatus
> node build.js --linux

  • electron-builder  version=22.1.0 os=5.3.12
  • loaded configuration  file=/home/ian/Workspace/StatusPilatus/electron-builder.yml
  • writing effective config  file=dist/builder-effective-config.yaml
  • packaging       platform=linux arch=x64 electron=7.0.1 appOutDir=dist/linux-unpacked
  • building        target=AppImage arch=x64 file=dist/StatusPilatus-0.5.0.AppImage
  • building        target=snap arch=x64 file=dist/StatusPilatus_0.5.0_amd64.snap
  • building        target=tar.gz arch=x64 file=dist/StatusPilatus-0.5.0.tar.gz
{
  "base": "core18",
  "grade": "stable",
  "confinement": "strict",
  "plugs": {
    "gnome-3-28-1804": {
      "interface": "content",
      "target": "$SNAP/gnome-platform",
      "default-provider": "gnome-3-28-1804"
    },
    "gtk-3-themes": {
      "interface": "content",
      "target": "$SNAP/data-dir/themes",
      "default-provider": "gtk-common-themes"
    },
    "icon-themes": {
      "interface": "content",
      "target": "$SNAP/data-dir/icons",
      "default-provider": "gtk-common-themes"
    },
    "sound-themes": {
      "interface": "content",
      "target": "$SNAP/data-dir/sounds",
      "default-provider": "gtk-common-themes"
    }
  },
  "name": "statuspilatus",
  "version": "0.5.0",
  "summary": "StatusPilatus",
  "description": "Monitor your PC like never before!",
  "architectures": [
    "amd64"
  ],
  "apps": {
    "statuspilatus": {
      "command": "command.sh",
      "plugs": [
        "desktop",
        "desktop-legacy",
        "home",
        "x11",
        "wayland",
        "unity7",
        "browser-support",
        "network",
        "gsettings",
        "pulseaudio",
        "opengl"
      ],
      "environment": {
        "DISABLE_WAYLAND": "1",
        "TMPDIR": "$XDG_RUNTIME_DIR",
        "PATH": "$SNAP/usr/sbin:$SNAP/usr/bin:$SNAP/sbin:$SNAP/bin:$PATH",
        "SNAP_DESKTOP_RUNTIME": "$SNAP/gnome-platform",
        "LD_LIBRARY_PATH": "$SNAP_LIBRARY_PATH:$SNAP/lib:$SNAP/usr/lib:$SNAP/lib/x86_64-linux-gnu:$SNAP/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH:$SNAP/lib:$SNAP/usr/lib:$SNAP/lib/x86_64-linux-gnu:$SNAP/usr/lib/x86_64-linux-gnu"
      }
    }
  }
}
  • building        target=deb arch=x64 file=dist/StatusPilatus_0.5.0_amd64.deb
  ⨯ cannot execute  cause=exit status 1
                    out={:timestamp=>"2019-12-24T16:50:20.003028-0500", :message=>"Debian tools (dpkg/apt) don't do well with packages that use capital letters in the name. In some cases it will automatically downcase them, in others it will not. It is confusing. Best to not use any capital letters at all. I have downcased the package name for you just to be safe.", :oldname=>"StatusPilatus", :fixedname=>"statuspilatus", :level=>:warn}
    {:timestamp=>"2019-12-24T16:50:20.009787-0500", :message=>"Debian packaging tools generally labels all files in /etc as config files, as mandated by policy, so fpm defaults to this behavior for deb packages. You can disable this default behavior with --deb-no-default-config-files flag", :level=>:warn}
    {:timestamp=>"2019-12-24T16:50:20.398868-0500", :message=>"Process failed: tar failed (exit code 13). Full command was:[\"tar\", \"-C\", \"/tmp/package-dir-staging-afc365e8869bf7fe35c1ba19108ad4b350334f8366dc111b52fc4aad023e\", \"-I'/home/ian/Workspace/StatusPilatus/node_modules/app-builder-bin/linux/x64/app-builder'\", \"--numeric-owner\", \"--owner\", \"0\", \"--numeric-owner\", \"--group\", \"0\", \"-cf\", \"/tmp/package-deb-build-d74559048092e44b0c1662d6723a22256a543d76170b7b02df439dce8b7d/data.tar.xz\", \".\"]", :level=>:error}

                    command=/home/ian/.cache/electron-builder/fpm/fpm-1.9.3-2.3.1-linux-x86_64/fpm -s dir --force -t deb -d libgtk-3-0 -d libnotify4 -d libnss3 -d libxss1 -d libxtst6 -d xdg-utils -d libatspi2.0-0 -d libuuid1 -d libappindicator3-1 -d libsecret-1-0 --deb-compression xz --architecture amd64 --name StatusPilatus --after-install /tmp/t-uZ8Yi7/0-after-install --after-remove /tmp/t-uZ8Yi7/1-after-remove --description '
     Monitor your PC like never before!' --version 0.5.0 --package /home/ian/Workspace/StatusPilatus/dist/StatusPilatus_0.5.0_amd64.deb --maintainer PilatusDevs --url https://github.com/PilatusDevs/StatusPilatus --vendor PilatusDevs --license GPL-3.0+ /home/ian/Workspace/StatusPilatus/dist/linux-unpacked/=/opt/StatusPilatus /home/ian/Workspace/StatusPilatus/app/img/icons/16x16.png=/usr/share/icons/hicolor/16x16/apps/statuspilatus.png /home/ian/Workspace/StatusPilatus/app/img/icons/24x24.png=/usr/share/icons/hicolor/24x24/apps/statuspilatus.png /home/ian/Workspace/StatusPilatus/app/img/icons/32x32.png=/usr/share/icons/hicolor/32x32/apps/statuspilatus.png /home/ian/Workspace/StatusPilatus/app/img/icons/48x48.png=/usr/share/icons/hicolor/48x48/apps/statuspilatus.png /home/ian/Workspace/StatusPilatus/app/img/icons/64x64.png=/usr/share/icons/hicolor/64x64/apps/statuspilatus.png /home/ian/Workspace/StatusPilatus/app/img/icons/96x96.png=/usr/share/icons/hicolor/96x96/apps/statuspilatus.png /home/ian/Workspace/StatusPilatus/app/img/icons/128x128.png=/usr/share/icons/hicolor/128x128/apps/statuspilatus.png /home/ian/Workspace/StatusPilatus/app/img/icons/256x256.png=/usr/share/icons/hicolor/256x256/apps/statuspilatus.png /home/ian/Workspace/StatusPilatus/app/img/icons/512x512.png=/usr/share/icons/hicolor/512x512/apps/statuspilatus.png /home/ian/Workspace/StatusPilatus/app/img/icons/1024x1024.png=/usr/share/icons/hicolor/1024x1024/apps/statuspilatus.png /tmp/t-uZ8Yi7/5-StatusPilatus.desktop=/usr/share/applications/statuspilatus.desktop
                    workingDir=
{ Error: /home/ian/Workspace/StatusPilatus/node_modules/app-builder-bin/linux/x64/app-builder exited with code ERR_ELECTRON_BUILDER_CANNOT_EXECUTE
    at ChildProcess.childProcess.once.code (/home/ian/Workspace/StatusPilatus/node_modules/builder-util/src/util.ts:239:14)
    at Object.onceWrapper (events.js:286:20)
    at ChildProcess.emit (events.js:198:13)
    at maybeClose (internal/child_process.js:982:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)
  exitCode: 2,
  alreadyLogged: true,
  code: 'ERR_ELECTRON_BUILDER_CANNOT_EXECUTE' }
Jelmerro commented 4 years ago

Could you take steps to confirm that this is specifically an issue for StatusPilatus, and not one caused by either your system configuration or by electron-builder? Maybe you could search for similar issues with electron-builder, as it's a fairly complex process.

I usually build the releases from Fedora (also RPM-based) using this exact electron-builder config file, so I suspect that there is something else that's causing this problem on your pc. Feel free to leave a comment if you manage to figure out the issue or have any other questions, because I can't reproduce this issue on Fedora.

IanTrudel commented 4 years ago

@Jelmerro hi there! I resync with the repo, updated npm, reinstalled electron-builder and installed dpkg on my system. The dist directory does indeed list an AppImage, a snap file and a tarball. It still fails building a deb package and never gets to build a rpm. Is there a way to skip building the deb package?

> StatusPilatus@0.5.0 buildlinux /home/ian/Workspace/StatusPilatus
> node build.js --linux

  • electron-builder  version=22.2.0 os=5.3.12
  • loaded configuration  file=/home/ian/Workspace/StatusPilatus/electron-builder.yml
  • writing effective config  file=dist/builder-effective-config.yaml
  • packaging       platform=linux arch=x64 electron=7.0.1 appOutDir=dist/linux-unpacked
  • building        target=AppImage arch=x64 file=dist/StatusPilatus-0.5.0.AppImage
  • building        target=snap arch=x64 file=dist/StatusPilatus_0.5.0_amd64.snap
  • building        target=tar.gz arch=x64 file=dist/StatusPilatus-0.5.0.tar.gz
{
  "base": "core18",
  "grade": "stable",
  "confinement": "strict",
  "plugs": {
    "gnome-3-28-1804": {
      "interface": "content",
      "target": "$SNAP/gnome-platform",
      "default-provider": "gnome-3-28-1804"
    },
    "gtk-3-themes": {
      "interface": "content",
      "target": "$SNAP/data-dir/themes",
      "default-provider": "gtk-common-themes"
    },
    "icon-themes": {
      "interface": "content",
      "target": "$SNAP/data-dir/icons",
      "default-provider": "gtk-common-themes"
    },
    "sound-themes": {
      "interface": "content",
      "target": "$SNAP/data-dir/sounds",
      "default-provider": "gtk-common-themes"
    }
  },
  "name": "statuspilatus",
  "version": "0.5.0",
  "summary": "StatusPilatus",
  "description": "Monitor your PC like never before!",
  "architectures": [
    "amd64"
  ],
  "apps": {
    "statuspilatus": {
      "command": "command.sh",
      "plugs": [
        "desktop",
        "desktop-legacy",
        "home",
        "x11",
        "wayland",
        "unity7",
        "browser-support",
        "network",
        "gsettings",
        "pulseaudio",
        "opengl"
      ],
      "environment": {
        "DISABLE_WAYLAND": "1",
        "TMPDIR": "$XDG_RUNTIME_DIR",
        "PATH": "$SNAP/usr/sbin:$SNAP/usr/bin:$SNAP/sbin:$SNAP/bin:$PATH",
        "SNAP_DESKTOP_RUNTIME": "$SNAP/gnome-platform",
        "LD_LIBRARY_PATH": "$SNAP_LIBRARY_PATH:$SNAP/lib:$SNAP/usr/lib:$SNAP/lib/x86_64-linux-gnu:$SNAP/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH:$SNAP/lib:$SNAP/usr/lib:$SNAP/lib/x86_64-linux-gnu:$SNAP/usr/lib/x86_64-linux-gnu"
      }
    }
  }
}
  • building        target=deb arch=x64 file=dist/StatusPilatus_0.5.0_amd64.deb
  ⨯ cannot execute  cause=exit status 1
                    out={:timestamp=>"2020-01-11T12:25:55.321155-0500", :message=>"Debian tools (dpkg/apt) don't do well with packages that use capital letters in the name. In some cases it will automatically downcase them, in others it will not. It is confusing. Best to not use any capital letters at all. I have downcased the package name for you just to be safe.", :oldname=>"StatusPilatus", :fixedname=>"statuspilatus", :level=>:warn}
    {:timestamp=>"2020-01-11T12:25:55.331889-0500", :message=>"Debian packaging tools generally labels all files in /etc as config files, as mandated by policy, so fpm defaults to this behavior for deb packages. You can disable this default behavior with --deb-no-default-config-files flag", :level=>:warn}
    {:timestamp=>"2020-01-11T12:25:55.750946-0500", :message=>"Process failed: tar failed (exit code 13). Full command was:[\"tar\", \"-C\", \"/tmp/package-dir-staging-08f26784da402265a5fe944d733e822f1bd40d4e36ea6d38aa042516b486\", \"-I'/home/ian/Workspace/StatusPilatus/node_modules/app-builder-bin/linux/x64/app-builder'\", \"--numeric-owner\", \"--owner\", \"0\", \"--numeric-owner\", \"--group\", \"0\", \"-cf\", \"/tmp/package-deb-build-adf094cb0c3a9f0ede79424fbf39fd156d1a4a75a9f238c110c3810e5113/data.tar.xz\", \".\"]", :level=>:error}

                    command=/home/ian/.cache/electron-builder/fpm/fpm-1.9.3-2.3.1-linux-x86_64/fpm -s dir --force -t deb -d libgtk-3-0 -d libnotify4 -d libnss3 -d libxss1 -d libxtst6 -d xdg-utils -d libatspi2.0-0 -d libuuid1 -d libappindicator3-1 -d libsecret-1-0 --deb-compression xz --architecture amd64 --name StatusPilatus --after-install /tmp/t-BXmJA0/3-after-install --after-remove /tmp/t-BXmJA0/2-after-remove --description '
     Monitor your PC like never before!' --version 0.5.0 --package /home/ian/Workspace/StatusPilatus/dist/StatusPilatus_0.5.0_amd64.deb --maintainer PilatusDevs --url https://github.com/PilatusDevs/StatusPilatus --vendor PilatusDevs --license GPL-3.0+ /home/ian/Workspace/StatusPilatus/dist/linux-unpacked/=/opt/StatusPilatus /home/ian/Workspace/StatusPilatus/app/img/icons/16x16.png=/usr/share/icons/hicolor/16x16/apps/statuspilatus.png /home/ian/Workspace/StatusPilatus/app/img/icons/24x24.png=/usr/share/icons/hicolor/24x24/apps/statuspilatus.png /home/ian/Workspace/StatusPilatus/app/img/icons/32x32.png=/usr/share/icons/hicolor/32x32/apps/statuspilatus.png /home/ian/Workspace/StatusPilatus/app/img/icons/48x48.png=/usr/share/icons/hicolor/48x48/apps/statuspilatus.png /home/ian/Workspace/StatusPilatus/app/img/icons/64x64.png=/usr/share/icons/hicolor/64x64/apps/statuspilatus.png /home/ian/Workspace/StatusPilatus/app/img/icons/96x96.png=/usr/share/icons/hicolor/96x96/apps/statuspilatus.png /home/ian/Workspace/StatusPilatus/app/img/icons/128x128.png=/usr/share/icons/hicolor/128x128/apps/statuspilatus.png /home/ian/Workspace/StatusPilatus/app/img/icons/256x256.png=/usr/share/icons/hicolor/256x256/apps/statuspilatus.png /home/ian/Workspace/StatusPilatus/app/img/icons/512x512.png=/usr/share/icons/hicolor/512x512/apps/statuspilatus.png /home/ian/Workspace/StatusPilatus/app/img/icons/1024x1024.png=/usr/share/icons/hicolor/1024x1024/apps/statuspilatus.png /tmp/t-BXmJA0/5-StatusPilatus.desktop=/usr/share/applications/statuspilatus.desktop
                    workingDir=
{ Error: /home/ian/Workspace/StatusPilatus/node_modules/app-builder-bin/linux/x64/app-builder exited with code ERR_ELECTRON_BUILDER_CANNOT_EXECUTE
    at ChildProcess.childProcess.once.code (/home/ian/Workspace/StatusPilatus/node_modules/builder-util/src/util.ts:239:14)
    at Object.onceWrapper (events.js:286:20)
    at ChildProcess.emit (events.js:198:13)
    at maybeClose (internal/child_process.js:982:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)
  exitCode: 2,
  alreadyLogged: true,
  code: 'ERR_ELECTRON_BUILDER_CANNOT_EXECUTE' }
Jelmerro commented 4 years ago

You can change the config file named electron-builder.yml which contains all the configuration for the builds, including a list of platforms to build for. You can simply remove the entire .deb target from the file to skip building it.

Aside from that there are plenty of other targets you could consider if you are interested: https://www.electron.build/configuration/linux

IanTrudel commented 4 years ago

Yes, yes. It did help and yum successfully installed the resulting rpm. Thank you!