GithubHelp home page GithubHelp logo

deepnest-io / deepnest Goto Github PK

View Code? Open in Web Editor NEW
75.0 8.0 14.0 206.41 MB

An open source nesting application for laser cutters, plasma cutters and other CNC machines.

License: Other

JavaScript 45.94% C++ 45.08% Python 0.02% CSS 1.20% HTML 7.75%

deepnest's Introduction

Deepnest

Deepnest

A fast nesting tool for laser cutters and other CNC tools

Deepnest is a desktop application originally based on SVGNest

  • New nesting engine with speed critical code written in C
  • Merges common lines for laser cuts
  • Support for DXF files (via conversion)
  • New path approximation feature for highly complex parts

Fork History

This Fork

The primary goal has been to get Deepnest buildable again, which has been achieved.

Prerequisites

  • Node 14/16/18/20: Node.js. You can use the Node Version Manager (nvm):
  • Python 3.7.9 You can use the Python Version Manager (pyenv):
  • Visual Studio with Desktop Development with C++ extension

For ubuntu (or when you're not sure how to build) look at the build workflow:

https://github.com/deepnest-io/Deepnest/blob/master/.github/workflows/build.yml#L28

Possible Problems

  • On Windows 10 1905 or newer, you might need to disable the built-in Python launcher via
    • Start > "Manage App Execution Aliases" and turning off the "App Installer" aliases for Python"
  • close-and-open all command shells and your IDE to activate the latest setup

Building

git clone https://github.com/deepnest-io/Deepnest
cd Deepnest
npm install
npm run build
npm run start

Rebuild

# If you change the electron-related files (web files, javascript), a build with 
npm run build

# If you change the the Minkowski files (the `.cc` or `.h` files):
npm run build-all

Running

  • npm run start

Clean builds

npm run clean  && npm run build

# full clean, incl. `node_modules`
npm run clean-all && npm install && npm run build

Create a Distribution

npm run dist

# During development, you can combine `clean-all, build-all and dist` via:
npm run dist-all

The resulting files will be located in .\deepnest-<version>-win32-x64.

Create a zip file of this folder for a simple distribution.

Debugging

If the environment variable "deepnest_debug" has a value of "1", Deepnest will open the browser dev tools (debugger/inspector).

License

The main license is the MIT.

Further Licenses:

deepnest's People

Contributors

cmidgley avatar bmtm avatar mpjansen avatar bosd avatar dogthemachine avatar dmitrydanileyko avatar henryqhl avatar petrppetrov avatar anio avatar

Stargazers

ulziibadrakh avatar Lari Nurkka avatar Andreas avatar Jake Noel avatar  avatar Alex avatar  avatar  avatar Rory MacTague avatar Andrii Shylenko avatar Ken Finney avatar  avatar  avatar Manny Haller avatar  avatar Mubashar Hussain avatar Florject avatar hfanzaou avatar Boris Beaulant avatar Danica Brown avatar Davis Clark avatar Robin Modisch avatar Marius Sucevan avatar Philipp Wabnitz avatar  avatar  avatar  avatar Josef Fröhle avatar  avatar  avatar Yuta Akizuki avatar Volodymyr Stelmashchuk avatar Steve Mac avatar  avatar  avatar Marc Miller avatar Icks avatar  avatar  avatar tjb1 avatar  avatar  avatar  avatar  avatar Nolan Locke avatar  avatar  avatar  avatar Geoff Hickey avatar  avatar Nicholas Finch avatar Dmitry avatar Richard Beattie avatar 章 avatar Jon McGuire avatar Sandro avatar Aleksa Suvačarov avatar Charlotte Curtis avatar Anthony VH avatar JRM avatar Yang Lin avatar  avatar Sean Stevens avatar Preston avatar  avatar  avatar  avatar Jan Suchotzki avatar Luc avatar Paul Philippov avatar  avatar Pierre Kisters avatar Phos  avatar  avatar  avatar

Watchers

 avatar Yang Lin avatar  avatar  avatar  avatar  avatar Martin Berriman avatar  avatar

deepnest's Issues

Do you plan a binary release for windows?

Actually I'm not using this project, but try to get it running for another user. Do you plan to create a binary release of deepnest? In that case I probably could stop my investigation and we simply wait for the binary release.

Interesting forks & Related projects

Deepnest with pdf support of @grvwebdev https://github.com/grvwebdev/deepnestweb

Deepnest fork with cli of @progand https://github.com/progand/Deepnest

Related projects

Cutnestprint
Automatic solution for compact placement of images for printing. Made on Python, based on Django3. Allows two databases .sqlite3 to fast import data from the website. Uses the OpenCV computer vision library to build outlines of cuts. Uses Deepnest open source project for compact placement of parts
https://github.com/Dogthemachine/CutNestPrint

Inkscape-nest
https://github.com/Neon22/inkscape-nest

SVG Nest Python fork
[WIP?]
https://github.com/zhuyuanxiang/SVGnestPython

SVGnest-batch
GUI to process multiple files with SVGnest
https://github.com/stephanbogner/SVGnest-batch

Ubuntu AppImage?

Hi, how to make it run under Ubuntu LTS?
Any AppImage?
Regards,

Federico

[MAJOR] Merges from other Repos

  • (Depends on #31)
  • (Processed in parallel with #24)

Main Fork Flow

Forks

Open an idea discussion topic starting with [MERGE]

https://github.com/deepnest-io/Deepnest/discussions/new?category=ideas

Assess

  • try the merge (or assess effort, expected problems)
  • verify/clarify license
  • quality

9swampy

https://github.com/9swampy/Deepnest/tree/develop

awaistkd

https://github.com/awaistkd/Deepnest

ManfredRichthofen

progrand

mfussi

odemakov

Not Merged

(see issues for rationales)

PNG/JPG to nest ?

企业微信截图_16843883932459

Hello,

I want to achieve DEEPNEST through PNG, JPG, and other methods; My application scenario is: cutting textile materials; Can you create a DEMO to demonstrate that PNG and JPG format images can be directly typeset in DEEPNEST?

[DOC] Revision of Build Instructions

(draft, please do not edit for now)

Prerequisites

  • Node 8: Use Node.js version 8 (10 generates lots of warnings, and 12+ fails due to node-gyp). Recommend using the Node version manager.
  • Python 2.7 (Python 3 does not work). Recommend using Python version manager pyenv-win to download and change versions. Make sure to close all command shells (including VSCode) after doing this, to get the latest environment variables. Check with python --version.
    • NOTE: If you are running Windows 10 1905 or newer, you might need to disable the built-in Python launcher via
      • Start > "Manage App Execution Aliases" and turning off the "App Installer" aliases for Python"
  • Visual Studio 2019 with Desktop Development wit C++ extensions - node-gyp (the Node to C++ binding environment) requires it.
    • See this page for a simple to install package that may work
    • manually Install VS2019 with C++ extensions, if the above does not work
# if your VCINSTALLDIR points to VS2022, clear it
set VCINSTALLDIR=

Building

git clone --recurse-submodules --remote-submodules https://github.com/cmidgley/Deepnest
cd Deepnest
npm config set msvs_version 2019
npm install
npm run w:build
npm run w:start

Rebuild

  • If you change the electron-related files (web files, javascript), a build with
    • npm run w:build is all that is needed.
  • If you change the the Minkowski files (the .cc or .h files), where the NFP (Non-Fit Polygon) logic and background threading is handled, you must rebuild using node-gyp to recompile the files using:
    • npm run w:fullbuild

Running

Unless you want to create a distribution build (a separate set of
executable files that can be run without dependency on the build environment), you can run Deepnest with:

  • npm run w:start

Clean builds

Two clean options:

  • For regular clean of build artifacts, use npm run w:clean and then npm run w:build.
  • To remove everything, including node_modules use npm run w:fullclean, then build again.

Create a distribution build

To build a distribution set of files, run:

  • npm run w:dist

The resulting files will be located in .\deepnest-win32-x64. All files need to be distributed,
meaning a ZIP file or writing a simple installer would be needed to avoid handling a larger number
of files.

Browser dev tools

If the environment variable "deepnest_debug" has a value of "1", Deepnest will open the browser
dev tools (debugger/inspector).

ReferenceError: createWindow is not defined

Describe the bug
The nest window stays blank.
There is an error message in the log.

To Reproduce
Steps to reproduce the behavior:

  1. npm run start

Expected behavior
Deepnest to start normally and nest

Log

(node:645549) UnhandledPromiseRejectionWarning: ReferenceError: createWindow is not defined
    at /home/data/git/Deepnest/main.js:79:5
(node:645549) UnhandledPromiseRejectionWarning: ReferenceError: createWindow is not defined
    at /home/data/git/Deepnest/main.js:79:5

Desktop (please complete the following information):

  • OS: Fedora
  • Deepnest 1.1.4
  • npm 8.19.2

Additional context

[Feature request] Option to inherit initial positions from the SVG

Sometimes I've got a pretty good packing of objects in a sheet, and I would like Deepnest to optimise it further.

A good example would be these pieces:

image

It isn't super clear from the image, but there's actually some small spacing between these pieces, and no line merging has been done. It would be helpful to be able to put this into Deepnest and have it fine-tune the positioning and do the line merging.

However, Deepnest has a ton of trouble with this shape due to starting from scratch, and it takes a large number of iterations for it to even place 60 of the 86 pieces on the board, even after carefully tweaking parameters.

It would be nice if there was a config option to inherit the initial packing solution from the imported SVG/DXF, and optimise further from there given the settings provided.

Docker Image

@Pinaute managed to build a docker for deepnest as originally posted in Jack000/Deepnest#123 (comment)

I'm crossposting it here for reference, as it might be to interest for some people.
(Some people had succes running it, myself was not able to use it)

Pinaute
Hi, For those interested, I managed to build a docker for deepnest. Based on the improvement work of @9swampy

dockerfile

FROM debian:bullseye-20220228-slim

RUN apt update && apt -y install \
  build-essential \
  ca-certificates \
  tar \
  wget \
  git \
  --no-install-recommends \
  && rm -rf /var/lib/apt/lists/*
  
RUN git clone --depth 1 --branch develop https://github.com/9swampy/Deepnest.git /opt/deepnest

RUN wget "https://sourceforge.net/projects/boost/files/boost/1.76.0/boost_1_76_0.tar.gz/download" -O /tmp/boost_1_76_0.tar.gz \
  && mkdir /opt/deepnest/boost_1_76_0 \
  && tar -xzvf /tmp/boost_1_76_0.tar.gz -C /opt/deepnest/boost_1_76_0 --strip-components 1 \
  && rm -rf /tmp/boost_1_76_0.tar.gz \
  && cd /opt/deepnest/boost_1_76_0 \
  && ./bootstrap.sh --prefix=/usr/ \
  && ./b2

COPY binding.gyp /opt/deepnest/binding.gyp

# Python is required by nvm
RUN apt update && apt -y install \
  python \
  --no-install-recommends \
  && rm -rf /var/lib/apt/lists/*

# https://stackoverflow.com/questions/25899912/how-to-install-nvm-in-docker
SHELL ["/bin/bash", "--login", "-c"]

RUN cd /opt/deepnest \
  && wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash \
  && chmod +x /root/.nvm/nvm.sh \
  && . /root/.nvm/nvm.sh \
  && nvm install 12 \
  && nvm use 12 \
  && npm install --arch=x64 \
  && ./node_modules/.bin/electron-rebuild

RUN rm -r /opt/deepnest/minkowski/Release \
  && cp -a /opt/deepnest/build/Release /opt/deepnest/minkowski/Release

# Required by electron, I use ldd to print library dependencies 
RUN apt update && apt -y install \
    libglib2.0-0 \
    libnss3 \
    libnspr4 \
    libgdk-pixbuf-2.0-0 \
    libgtk-3-0 \
    libpangocairo-1.0-0 \
    libpango-1.0-0 \
    libatk1.0-0 \
    libcairo2 \
    libdbus-1-3 \
    libxext6 \
    libx11-6 \
    libxcomposite1 \
    libxrender1 \
    libx11-xcb1 \
    libxcb1 \
    libxcursor1 \
    libxdamage1 \
    libxfixes3 \
    libxi6 \
    libxtst6 \
    libxrandr2 \
    libxss1 \
    libasound2 \
    libatk-bridge2.0-0 \
    libatspi2.0-0 \
    libcups2 \
    --no-install-recommends \
    && rm -rf /var/lib/apt/lists/*
    
# [12124:1012/192744.263024:FATAL:setuid_sandbox_host.cc(157)] The SUID sandbox helper binary was found, but is not configured correctly. Rather than run without sandboxing I'm aborting now. You need to make sure that  /opt/deepnest/node_modules/electron/dist/chrome-sandbox is owned by root and has mode 4755.
RUN chown root /opt/deepnest/node_modules/electron/dist/chrome-sandbox
RUN chmod 4755 /opt/deepnest/node_modules/electron/dist/chrome-sandbox

COPY Settings /root/.config/Deepnest.io/Settings

RUN mkdir /root/workdir
VOLUME /root/workdir

WORKDIR /opt/deepnest
ENTRYPOINT [ "/opt/deepnest/node_modules/electron/dist/electron", ".", "--no-sandbox" ]

You need these two files below in the same directory as the dockerfile

binding.gyp

{
  "targets": [
    {
      "target_name": "addon",
      "sources": [ "addon.cc", "minkowski.cc" ],
      'cflags!': [ '-fno-exceptions', "-m64" ],
      'cflags_cc!': [ '-fno-exceptions', '-fPIC -m64' ],
      "include_dirs" : ["<!(node -e \"require('nan')\")", "/opt/deepnest/boost_1_76_0/"]
    }
  ],
}

Settings

{"units":"mm","scale":"96","spacing":12.09448818897638,"curveTolerance":0.72,"rotations":4,"threads":"8","populationSize":10,"mutationRate":10,"placementType":"box","mergeLines":false,"timeRatio":0.5,"simplify":false,"dxfImportScale":"1","dxfExportScale":"72","endpointTolerance":0.36,"conversionServer":"http://convert.deepnest.io","useConverterDeepnestIo":false,"kabejaPath":"D:/kabeja-0.4"}

(Settings file are optional, if you don't use it, remove this line from the dockerfile: COPY Settings /root/.config/Deepnest.io/Settings )

  1. build
    docker build -t deepnest:debian-bullseye .
  2. run
docker run --rm --name deepnest -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix:rw -v /dev/shm:/dev/shm -v $HOME:/root/workdir deepnest:debian-bullseye

Note: I use the option -v /dev/shm:/dev/shm to resolve this problem: FATAL:memory.cc(22)] Out of memory. size=262144

Deepnest doesn´t run in Linux Mint

Hi!
after unzip and give permission to execute, i double click and nothing happen.
with the console i have this answer:

Segmentation fault (core dumped)

what should I do? Is there a way to fix this? Do you need more info?

This is back abondonware

This repo and organization is supposed to be the community based fork of deepnest.
Which has been abondoned by the original author.

Brief history
I've noticed that jack000 the original author of deepnest was no longer active maintaining the software and repo.
I've created this repo with the purpose of a community based fork. Ultimatly wanting to have multuple people to be able to contribute, merge and develop the community and application further.
With the ultimate goal of making the organization vonurable on a single person.
While lacking the time or technical capabilities, we've sponsored a developer to do the heavy lifting.
Cleaning of code and making it compatible with more recent builds and os's
Until we ran out of budget.

Sadly, I have to conclude we we've failed our mission on this community based fork.
Judging by his last commit the developer we hired, seems to have left github.
#122

Whilst he took over this repo and taking away my admin rights on this repo and organization.
Due to various indifferences.
(basically, and open source software and community is based on volunteerism and collaboration, it just cannot be managed as a commercial application)

At the time I created this fork, I have chosen the unfortunate name of deepnest-io. Now we are even unable to change it into deepnest-ce. Which more clearly indicates this is the community based fork instead and not related to deepnest.io or the repo of the original author.
With a lack of active members, admin/owner rights.
We are finding this software to slip down to abandonware. :(

[RFA] Provide Offline DXF Conversion

(sponsored by @dorkmo )
(RFA - requirements/feasibility analysis)

Status

Local deepnest depends on deepnest.io for DXF conversion

Expected

DXF conversion can be done locally, offline.

Workplan

Depends On

(need to be solved first, in order to keep the overall DXF implementation effort low. This is to avoid "evolving spaghetti-code")

  • #83
  • (possibly) #87
  • (possibly) #66
  • (possibly) #67

DXF Itself

  • Provide Server-Independent DXF Import
  • Provide Server-Independent DXF Export

Requirements & Feasibility

  • Assessing feasibility should be done after further evolving the code first (see "Depends On above")
  • Possibly better to spawn an independent task (e.g. "Try SVG->DXF conversion tools for use with Deepnest")
    • this would enable parallel work (dev A goes on with "Depends On", dev B executes the conversion trials)

SVG import doesn't clean up polyline

Importing an SVG with paths described by the polyline tag will result in open line segments instead of being merged into a closed path.

To Reproduce
Steps to reproduce the behavior:

  1. Download the following file (right click and 'Save Image As...'). It contains three squares (from left to right):
    1. A rectangle (svg:rect)
    2. A square made out of four paths (svg:path)
    3. A square made out of four polylines (svg:polyline).
      three_squares
  2. Import it in Deepnest

Expected Behavior
Three squares, as individual shapes.

Observed Behavior
Only the first two squares are correctly imported, the third one is ignored and shown in red.
image

Desktop:

  • OS: Windows 10 Enterprise (10.0.19045 Build 19045)
  • Deepnest Version: v1.1.4

Additional context
This issue came up when trying to import an SVG exported by the SVG exporter from OnShape. Exporting DXF seems to run into the same problem.
I can work around the issue with Inkscape by selecting everything and applying 'Path' -> 'Object to Path'. However, on a production file this takes a really long time and isn't really practical.

Empty DXF Export

Importing DXF Files and nesting them works perfect. If i then want to export the result as a DXF File it is only 1kB big and empty, where I have also given the file extension .dxf
Would be great if someone could help.

Gravity mode doesn't always choose the minimum width

Describe the bug
I used the "gravity" mode but the software doesn't look to minimize the width.
Indeed the last result as a smaller width than the first result.
first_result
last_result

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'parameter'
  2. Choose those parameters
  3. Add a frame of size W=350 H=500 (I supposed that the bug should also be visible with other shape)
    image

Expected behavior
The gravity mode should minimize the width.

Desktop (please complete the following information):

  • OS: Windows
  • Version 1.0.5

Additional
This is my first issue, so feel free to give me advices or even to remove this issue if it is not well written.
lettre_Inkscape.zip

Segmentation fault on AppImage for Deepnest-1.0.5-linux.zip

Hi:

I was trying to download and run from Deepnest's webpage the Appiamge from

https://deepnest.io/Deepnest-1.0.5-linux.zip

I gave execution permissions to the appimage a single message appeared:

andresh@andres-hurtado-lopez:~/appimages$ chmod +x Deepnest-1.0.5-x86_64.AppImage andresh@andres-hurtado-lopez:~/appimages$ ./Deepnest-1.0.5-x86_64.AppImage Segmentation fault

Because of that I ran it with an strace to see what was happening inside an I got this:

andresh@andres-hurtado-lopez:~/appimages$ strace -f ./Deepnest-1.0.5-x86_64.AppImage execve("./Deepnest-1.0.5-x86_64.AppImage", ["./Deepnest-1.0.5-x86_64.AppImage"], 0x7fff77a4e9c8 /* 43 vars */) = 0 brk(NULL) = 0x1577000 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f6e2ff17000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=153571, ...}, AT_EMPTY_PATH) = 0 mmap(NULL, 153571, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f6e2fef1000 close(3) = 0 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832 newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=14480, ...}, AT_EMPTY_PATH) = 0 mmap(NULL, 16400, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f6e2feec000 mmap(0x7f6e2feed000, 4096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x7f6e2feed000 mmap(0x7f6e2feee000, 4096, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f6e2feee000 mmap(0x7f6e2feef000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f6e2feef000 close(3) = 0 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libz.so.1", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832 newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=121280, ...}, AT_EMPTY_PATH) = 0 mmap(NULL, 123280, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f6e2fecd000 mmap(0x7f6e2fed0000, 77824, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7f6e2fed0000 mmap(0x7f6e2fee3000, 28672, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16000) = 0x7f6e2fee3000 mmap(0x7f6e2feea000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1c000) = 0x7f6e2feea000 close(3) = 0 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832 newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=14480, ...}, AT_EMPTY_PATH) = 0 mmap(NULL, 16400, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f6e2fec8000 mmap(0x7f6e2fec9000, 4096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x7f6e2fec9000 mmap(0x7f6e2feca000, 4096, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f6e2feca000 mmap(0x7f6e2fecb000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f6e2fecb000 close(3) = 0 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220x\2\0\0\0\0\0"..., 832) = 832 pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784 newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=1926256, ...}, AT_EMPTY_PATH) = 0 pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784 mmap(NULL, 1974096, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f6e2fce6000 mmap(0x7f6e2fd0c000, 1396736, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x26000) = 0x7f6e2fd0c000 mmap(0x7f6e2fe61000, 344064, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x17b000) = 0x7f6e2fe61000 mmap(0x7f6e2feb5000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1cf000) = 0x7f6e2feb5000 mmap(0x7f6e2febb000, 53072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f6e2febb000 close(3) = 0 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f6e2fce4000 arch_prctl(ARCH_SET_FS, 0x7f6e2fce5040) = 0 set_tid_address(0x7f6e2fce5310) = 903037 set_robust_list(0x7f6e2fce5320, 24) = 0 rseq(0x7f6e2fce5960, 0x20, 0, 0x53053053) = 0 mprotect(0x7f6e2feb5000, 16384, PROT_READ) = 0 mprotect(0x7f6e2fecb000, 4096, PROT_READ) = 0 mprotect(0x7f6e2feea000, 4096, PROT_READ) = 0 mprotect(0x7f6e2feef000, 4096, PROT_READ) = 0 mprotect(0x7f6e2ff49000, 8192, PROT_READ) = 0 prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0 munmap(0x7f6e2fef1000, 153571) = 0 openat(AT_FDCWD, "/proc/self/exe", O_RDONLY) = 3 pread64(3, "\177ELF\2\1\1\0AI\2\0\0\0\0\0", 16, 0) = 16 pread64(3, "\177ELF\2\1\1\0AI\2\0\0\0\0\0\2\0>\0\1\0\0\0\330\"@\0\0\0\0\0"..., 64, 0) = 64 pread64(3, "\1\0\0\0\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\327}\1\0\0\0\0\0"..., 64, 99960) = 64 close(3) = 0 openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=153571, ...}, AT_EMPTY_PATH) = 0 mmap(NULL, 153571, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f6e2fef1000 close(3) = 0 getrandom("\x39\xd6\x00\x67\x36\x66\x4d\x25", 8, GRND_NONBLOCK) = 8 brk(NULL) = 0x1577000 brk(0x1598000) = 0x1598000 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libfuse.so.2", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832 newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=264312, ...}, AT_EMPTY_PATH) = 0 mmap(NULL, 262432, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f6e2fca3000 mmap(0x7f6e2fcab000, 114688, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8000) = 0x7f6e2fcab000 mmap(0x7f6e2fcc7000, 40960, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x24000) = 0x7f6e2fcc7000 mmap(0x7f6e2fcd1000, 77824, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2e000) = 0x7f6e2fcd1000 close(3) = 0 mprotect(0x7f6e2fcd1000, 73728, PROT_READ) = 0 munmap(0x7f6e2fef1000, 153571) = 0 mkdir("/tmp/.mount_DeepneTYdwyZ", 0700) = 0 pipe2([3, 4], 0) = 0 clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f6e2fce5310) = 903038 strace: Process 903038 attached [pid 903037] close(4) = 0 [pid 903038] set_robust_list(0x7f6e2fce5320, 24 <unfinished ...> [pid 903037] read(3, <unfinished ...> [pid 903038] <... set_robust_list resumed>) = 0 [pid 903038] close(3) = 0 [pid 903038] readlink("/proc", 0x7ffe4728bce0, 1023) = -1 EINVAL (Invalid argument) [pid 903038] readlink("/proc/self", "903038", 1023) = 6 [pid 903038] readlink("/proc/903038", 0x7ffe4728bce0, 1023) = -1 EINVAL (Invalid argument) [pid 903038] readlink("/proc/903038/exe", "/home/andresh/appimages/Deepnest"..., 1023) = 54 [pid 903038] readlink("/home", 0x7ffe4728bce0, 1023) = -1 EINVAL (Invalid argument) [pid 903038] readlink("/home/andresh", 0x7ffe4728bce0, 1023) = -1 EINVAL (Invalid argument) [pid 903038] readlink("/home/andresh/appimages", 0x7ffe4728bce0, 1023) = -1 EINVAL (Invalid argument) [pid 903038] readlink("/home/andresh/appimages/Deepnest-1.0.5-x86_64.AppImage", 0x7ffe4728bce0, 1023) = -1 EINVAL (Invalid argument) [pid 903038] readlink("/tmp", 0x7ffe4728a970, 1023) = -1 EINVAL (Invalid argument) [pid 903038] readlink("/tmp/.mount_DeepneTYdwyZ", 0x7ffe4728a970, 1023) = -1 EINVAL (Invalid argument) [pid 903038] openat(AT_FDCWD, "/home/andresh/appimages/Deepnest-1.0.5-x86_64.AppImage", O_RDONLY) = 3 [pid 903038] pread64(3, "hsqsb\0\0\0\242d\177[\0\0\20\0\0\0\0\0\4\0\24\0\320\2\1\0\4\0\0\0"..., 96, 100024) = 96 [pid 903038] pread64(3, "6\f\213\2\0\0\0\0", 8, 42767092) = 8 [pid 903038] pread64(3, "8\v\213\2\0\0\0\0", 8, 42767078) = 8 [pid 903038] openat(AT_FDCWD, "/dev/null", O_RDWR) = 5 [pid 903038] close(5) = 0 [pid 903038] newfstatat(AT_FDCWD, "/tmp/.mount_DeepneTYdwyZ", {st_mode=S_IFDIR|0700, st_size=4096, ...}, 0) = 0 [pid 903038] openat(AT_FDCWD, "/tmp/.mount_DeepneTYdwyZ", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 5 [pid 903038] newfstatat(5, "", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_EMPTY_PATH) = 0 [pid 903038] getdents64(5, 0x1578ae0 /* 2 entries */, 32768) = 48 [pid 903038] getdents64(5, 0x1578ae0 /* 0 entries */, 32768) = 0 [pid 903038] close(5) = 0 [pid 903038] openat(AT_FDCWD, "/dev/fuse", O_RDWR) = 5 [pid 903038] getgid() = 1000 [pid 903038] getuid() = 1000 [pid 903038] mount("Deepnest-1.0.5-x86_64.AppImage", "/tmp/.mount_DeepneTYdwyZ", "fuse.Deepnest-1.0.5-x86_64.AppIm"..., MS_RDONLY|MS_NOSUID|MS_NODEV, "fd=5,rootmode=40000,user_id=1000"...) = -1 EPERM (Operation not permitted) [pid 903038] close(5) = 0 [pid 903038] socketpair(AF_UNIX, SOCK_STREAM, 0, [5, 6]) = 0 [pid 903038] clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f6e2fce5310) = 903039 strace: Process 903039 attached [pid 903039] set_robust_list(0x7f6e2fce5320, 24 <unfinished ...> [pid 903038] close(5 <unfinished ...> [pid 903039] <... set_robust_list resumed>) = 0 [pid 903038] <... close resumed>) = 0 [pid 903038] recvmsg(6, <unfinished ...> [pid 903039] openat(AT_FDCWD, "/dev/null", O_RDONLY) = 7 [pid 903039] dup2(7, 1) = 1 [pid 903039] dup2(7, 2) = 2 [pid 903039] close(6) = 0 [pid 903039] fcntl(5, F_SETFD, 0) = 0 [pid 903039] execve("/bin/fusermount", ["fusermount", "-o", "ro,nosuid,nodev,subtype=Deepnest"..., "--", "/tmp/.mount_DeepneTYdwyZ"], 0x1578bc0 /* 44 vars */) = 0 [pid 903039] access("/etc/suid-debug", F_OK) = -1 ENOENT (No such file or directory) [pid 903039] brk(NULL) = 0x562f0017a000 [pid 903039] fcntl(0, F_GETFD) = 0 [pid 903039] fcntl(1, F_GETFD) = 0 [pid 903039] fcntl(2, F_GETFD) = 0 [pid 903039] access("/etc/suid-debug", F_OK) = -1 ENOENT (No such file or directory) [pid 903039] mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f41093e2000 [pid 903039] access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) [pid 903039] openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 6 [pid 903039] newfstatat(6, "", {st_mode=S_IFREG|0644, st_size=153571, ...}, AT_EMPTY_PATH) = 0 [pid 903039] mmap(NULL, 153571, PROT_READ, MAP_PRIVATE, 6, 0) = 0x7f41093bc000 [pid 903039] close(6) = 0 [pid 903039] openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 6 [pid 903039] read(6, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220x\2\0\0\0\0\0"..., 832) = 832 [pid 903039] pread64(6, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784 [pid 903039] newfstatat(6, "", {st_mode=S_IFREG|0755, st_size=1926256, ...}, AT_EMPTY_PATH) = 0 [pid 903039] pread64(6, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784 [pid 903039] mmap(NULL, 1974096, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 6, 0) = 0x7f41091da000 [pid 903039] mmap(0x7f4109200000, 1396736, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 6, 0x26000) = 0x7f4109200000 [pid 903039] mmap(0x7f4109355000, 344064, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 6, 0x17b000) = 0x7f4109355000 [pid 903039] mmap(0x7f41093a9000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 6, 0x1cf000) = 0x7f41093a9000 [pid 903039] mmap(0x7f41093af000, 53072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f41093af000 [pid 903039] close(6) = 0 [pid 903039] mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f41091d7000 [pid 903039] arch_prctl(ARCH_SET_FS, 0x7f41091d7740) = 0 [pid 903039] set_tid_address(0x7f41091d7a10) = 903039 [pid 903039] set_robust_list(0x7f41091d7a20, 24) = 0 [pid 903039] rseq(0x7f41091d8060, 0x20, 0, 0x53053053) = 0 [pid 903039] mprotect(0x7f41093a9000, 16384, PROT_READ) = 0 [pid 903039] mprotect(0x562efeb8e000, 4096, PROT_READ) = 0 [pid 903039] mprotect(0x7f4109414000, 8192, PROT_READ) = 0 [pid 903039] prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0 [pid 903039] munmap(0x7f41093bc000, 153571) = 0 [pid 903039] getrandom("\xed\x60\x80\x75\x44\x9f\x9a\xe9", 8, GRND_NONBLOCK) = 8 [pid 903039] brk(NULL) = 0x562f0017a000 [pid 903039] brk(0x562f0019b000) = 0x562f0019b000 [pid 903039] getuid() = 1000 [pid 903039] getuid() = 1000 [pid 903039] setfsuid(1000) = 1000 [pid 903039] getgid() = 1000 [pid 903039] setfsgid(1000) = 1000 [pid 903039] readlink("/tmp", 0x7fffc2caa880, 1023) = -1 EINVAL (Invalid argument) [pid 903039] chdir("/") = 0 [pid 903039] getuid() = 1000 [pid 903039] setfsuid(1000) = 1000 [pid 903039] setfsgid(1000) = 1000 [pid 903039] umask(033) = 022 [pid 903039] getuid() = 1000 [pid 903039] getuid() = 1000 [pid 903039] setfsuid(1000) = 1000 [pid 903039] getgid() = 1000 [pid 903039] setfsgid(1000) = 1000 [pid 903039] openat(AT_FDCWD, "/dev/fuse", O_RDWR) = 6 [pid 903039] getuid() = 1000 [pid 903039] setfsuid(1000) = 1000 [pid 903039] setfsgid(1000) = 1000 [pid 903039] getuid() = 1000 [pid 903039] getuid() = 1000 [pid 903039] setfsuid(1000) = 1000 [pid 903039] getgid() = 1000 [pid 903039] setfsgid(1000) = 1000 [pid 903039] openat(AT_FDCWD, "/etc/fuse.conf", O_RDONLY) = 8 [pid 903039] newfstatat(8, "", {st_mode=S_IFREG|0644, st_size=280, ...}, AT_EMPTY_PATH) = 0 [pid 903039] read(8, "# /etc/fuse.conf - Configuration"..., 4096) = 280 [pid 903039] read(8, "", 4096) = 0 [pid 903039] close(8) = 0 [pid 903039] getuid() = 1000 [pid 903039] openat(AT_FDCWD, "/etc/mtab", O_RDONLY|O_CLOEXEC) = 8 [pid 903039] newfstatat(8, "", {st_mode=S_IFREG|0444, st_size=0, ...}, AT_EMPTY_PATH) = 0 [pid 903039] read(8, "sysfs /sys sysfs rw,nosuid,nodev"..., 1024) = 1024 [pid 903039] read(8, "oto=5,direct,pipe_ino=6841 0 0\nh"..., 1024) = 1001 [pid 903039] read(8, "", 1024) = 0 [pid 903039] close(8) = 0 [pid 903039] newfstatat(AT_FDCWD, "/tmp/.mount_DeepneTYdwyZ", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0 [pid 903039] getuid() = 1000 [pid 903039] chdir("/tmp/.mount_DeepneTYdwyZ") = 0 [pid 903039] newfstatat(AT_FDCWD, ".", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0 [pid 903039] access(".", W_OK) = 0 [pid 903039] statfs(".", {f_type=EXT2_SUPER_MAGIC, f_bsize=4096, f_blocks=245469053, f_bfree=40619790, f_bavail=28132213, f_files=62423040, f_ffree=59443168, f_fsid={val=[0x3b872784, 0x4f2c2b29]}, f_namelen=255, f_frsize=4096, f_flags=ST_VALID|ST_RELATIME}) = 0 [pid 903039] getuid() = 1000 [pid 903039] setfsuid(1000) = 1000 [pid 903039] setfsgid(1000) = 1000 [pid 903039] getuid() = 1000 [pid 903039] getuid() = 1000 [pid 903039] getuid() = 1000 [pid 903039] getuid() = 1000 [pid 903039] getuid() = 1000 [pid 903039] socket(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 8 [pid 903039] connect(8, {sa_family=AF_UNIX, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory) [pid 903039] close(8) = 0 [pid 903039] socket(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 8 [pid 903039] connect(8, {sa_family=AF_UNIX, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory) [pid 903039] close(8) = 0 [pid 903039] newfstatat(AT_FDCWD, "/etc/nsswitch.conf", {st_mode=S_IFREG|0644, st_size=553, ...}, 0) = 0 [pid 903039] newfstatat(AT_FDCWD, "/", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0 [pid 903039] openat(AT_FDCWD, "/etc/nsswitch.conf", O_RDONLY|O_CLOEXEC) = 8 [pid 903039] newfstatat(8, "", {st_mode=S_IFREG|0644, st_size=553, ...}, AT_EMPTY_PATH) = 0 [pid 903039] read(8, "# /etc/nsswitch.conf\n#\n# Example"..., 4096) = 553 [pid 903039] read(8, "", 4096) = 0 [pid 903039] newfstatat(8, "", {st_mode=S_IFREG|0644, st_size=553, ...}, AT_EMPTY_PATH) = 0 [pid 903039] close(8) = 0 [pid 903039] openat(AT_FDCWD, "/etc/passwd", O_RDONLY|O_CLOEXEC) = 8 [pid 903039] newfstatat(8, "", {st_mode=S_IFREG|0644, st_size=2678, ...}, AT_EMPTY_PATH) = 0 [pid 903039] lseek(8, 0, SEEK_SET) = 0 [pid 903039] read(8, "root:x:0:0:root:/root:/bin/bash\n"..., 4096) = 2678 [pid 903039] close(8) = 0 [pid 903039] getgid() = 1000 [pid 903039] getuid() = 1000 [pid 903039] openat(AT_FDCWD, ".", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 8 [pid 903039] newfstatat(8, "", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_EMPTY_PATH) = 0 [pid 903039] getdents64(8, 0x562f0017df40 /* 2 entries */, 32768) = 48 [pid 903039] getdents64(8, 0x562f0017df40 /* 0 entries */, 32768) = 0 [pid 903039] close(8) = 0 [pid 903039] mount("Deepnest-1.0.5-x86_64.AppImage", ".", "fuse.Deepnest-1.0.5-x86_64.AppIm"..., MS_RDONLY|MS_NOSUID|MS_NODEV, "fd=6,rootmode=40000,user_id=1000"...) = -1 EPERM (Operation not permitted) [pid 903039] write(2, "fusermount: mount failed: Operat"..., 50) = -1 EBADF (Bad file descriptor) [pid 903039] close(6) = 0 [pid 903039] exit_group(1) = ? [pid 903039] +++ exited with 1 +++ [pid 903038] <... recvmsg resumed>{msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="", iov_len=1}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 0 [pid 903038] --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=903039, si_uid=1000, si_status=1, si_utime=0, si_stime=0} --- [pid 903038] close(6) = 0 [pid 903038] wait4(903039, NULL, 0, NULL) = 903039 [pid 903038] socketpair(AF_UNIX, SOCK_STREAM, 0, [5, 6]) = 0 [pid 903038] clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f6e2fce5310) = 903040 strace: Process 903040 attached [pid 903038] close(5) = 0 [pid 903040] set_robust_list(0x7f6e2fce5320, 24 <unfinished ...> [pid 903038] recvmsg(6, <unfinished ...> [pid 903040] <... set_robust_list resumed>) = 0 [pid 903040] close(6) = 0 [pid 903040] fcntl(5, F_SETFD, 0) = 0 [pid 903040] execve("/bin/fusermount", ["fusermount", "-o", "ro,nosuid,nodev", "--", "/tmp/.mount_DeepneTYdwyZ"], 0x1578bc0 /* 44 vars */) = 0 [pid 903040] access("/etc/suid-debug", F_OK) = -1 ENOENT (No such file or directory) [pid 903040] brk(NULL) = 0x55ade3be3000 [pid 903040] fcntl(0, F_GETFD) = 0 [pid 903040] fcntl(1, F_GETFD) = 0 [pid 903040] fcntl(2, F_GETFD) = 0 [pid 903040] access("/etc/suid-debug", F_OK) = -1 ENOENT (No such file or directory) [pid 903040] mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fabb1d18000 [pid 903040] access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) [pid 903040] openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 6 [pid 903040] newfstatat(6, "", {st_mode=S_IFREG|0644, st_size=153571, ...}, AT_EMPTY_PATH) = 0 [pid 903040] mmap(NULL, 153571, PROT_READ, MAP_PRIVATE, 6, 0) = 0x7fabb1cf2000 [pid 903040] close(6) = 0 [pid 903040] openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 6 [pid 903040] read(6, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220x\2\0\0\0\0\0"..., 832) = 832 [pid 903040] pread64(6, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784 [pid 903040] newfstatat(6, "", {st_mode=S_IFREG|0755, st_size=1926256, ...}, AT_EMPTY_PATH) = 0 [pid 903040] pread64(6, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784 [pid 903040] mmap(NULL, 1974096, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 6, 0) = 0x7fabb1b10000 [pid 903040] mmap(0x7fabb1b36000, 1396736, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 6, 0x26000) = 0x7fabb1b36000 [pid 903040] mmap(0x7fabb1c8b000, 344064, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 6, 0x17b000) = 0x7fabb1c8b000 [pid 903040] mmap(0x7fabb1cdf000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 6, 0x1cf000) = 0x7fabb1cdf000 [pid 903040] mmap(0x7fabb1ce5000, 53072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fabb1ce5000 [pid 903040] close(6) = 0 [pid 903040] mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fabb1b0d000 [pid 903040] arch_prctl(ARCH_SET_FS, 0x7fabb1b0d740) = 0 [pid 903040] set_tid_address(0x7fabb1b0da10) = 903040 [pid 903040] set_robust_list(0x7fabb1b0da20, 24) = 0 [pid 903040] rseq(0x7fabb1b0e060, 0x20, 0, 0x53053053) = 0 [pid 903040] mprotect(0x7fabb1cdf000, 16384, PROT_READ) = 0 [pid 903040] mprotect(0x55ade2002000, 4096, PROT_READ) = 0 [pid 903040] mprotect(0x7fabb1d4a000, 8192, PROT_READ) = 0 [pid 903040] prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0 [pid 903040] munmap(0x7fabb1cf2000, 153571) = 0 [pid 903040] getrandom("\x82\xf1\xe6\x24\xe6\x5e\xf1\x9e", 8, GRND_NONBLOCK) = 8 [pid 903040] brk(NULL) = 0x55ade3be3000 [pid 903040] brk(0x55ade3c04000) = 0x55ade3c04000 [pid 903040] getuid() = 1000 [pid 903040] getuid() = 1000 [pid 903040] setfsuid(1000) = 1000 [pid 903040] getgid() = 1000 [pid 903040] setfsgid(1000) = 1000 [pid 903040] readlink("/tmp", 0x7fff777ffac0, 1023) = -1 EINVAL (Invalid argument) [pid 903040] chdir("/") = 0 [pid 903040] getuid() = 1000 [pid 903040] setfsuid(1000) = 1000 [pid 903040] setfsgid(1000) = 1000 [pid 903040] umask(033) = 022 [pid 903040] getuid() = 1000 [pid 903040] getuid() = 1000 [pid 903040] setfsuid(1000) = 1000 [pid 903040] getgid() = 1000 [pid 903040] setfsgid(1000) = 1000 [pid 903040] openat(AT_FDCWD, "/dev/fuse", O_RDWR) = 6 [pid 903040] getuid() = 1000 [pid 903040] setfsuid(1000) = 1000 [pid 903040] setfsgid(1000) = 1000 [pid 903040] getuid() = 1000 [pid 903040] getuid() = 1000 [pid 903040] setfsuid(1000) = 1000 [pid 903040] getgid() = 1000 [pid 903040] setfsgid(1000) = 1000 [pid 903040] openat(AT_FDCWD, "/etc/fuse.conf", O_RDONLY) = 7 [pid 903040] newfstatat(7, "", {st_mode=S_IFREG|0644, st_size=280, ...}, AT_EMPTY_PATH) = 0 [pid 903040] read(7, "# /etc/fuse.conf - Configuration"..., 4096) = 280 [pid 903040] read(7, "", 4096) = 0 [pid 903040] close(7) = 0 [pid 903040] getuid() = 1000 [pid 903040] openat(AT_FDCWD, "/etc/mtab", O_RDONLY|O_CLOEXEC) = 7 [pid 903040] newfstatat(7, "", {st_mode=S_IFREG|0444, st_size=0, ...}, AT_EMPTY_PATH) = 0 [pid 903040] read(7, "sysfs /sys sysfs rw,nosuid,nodev"..., 1024) = 1024 [pid 903040] read(7, "oto=5,direct,pipe_ino=6841 0 0\nh"..., 1024) = 1001 [pid 903040] read(7, "", 1024) = 0 [pid 903040] close(7) = 0 [pid 903040] newfstatat(AT_FDCWD, "/tmp/.mount_DeepneTYdwyZ", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0 [pid 903040] getuid() = 1000 [pid 903040] chdir("/tmp/.mount_DeepneTYdwyZ") = 0 [pid 903040] newfstatat(AT_FDCWD, ".", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0 [pid 903040] access(".", W_OK) = 0 [pid 903040] statfs(".", {f_type=EXT2_SUPER_MAGIC, f_bsize=4096, f_blocks=245469053, f_bfree=40619790, f_bavail=28132213, f_files=62423040, f_ffree=59443168, f_fsid={val=[0x3b872784, 0x4f2c2b29]}, f_namelen=255, f_frsize=4096, f_flags=ST_VALID|ST_RELATIME}) = 0 [pid 903040] getuid() = 1000 [pid 903040] setfsuid(1000) = 1000 [pid 903040] setfsgid(1000) = 1000 [pid 903040] getuid() = 1000 [pid 903040] getuid() = 1000 [pid 903040] getuid() = 1000 [pid 903040] getuid() = 1000 [pid 903040] getuid() = 1000 [pid 903040] socket(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 7 [pid 903040] connect(7, {sa_family=AF_UNIX, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory) [pid 903040] close(7) = 0 [pid 903040] socket(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 7 [pid 903040] connect(7, {sa_family=AF_UNIX, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory) [pid 903040] close(7) = 0 [pid 903040] newfstatat(AT_FDCWD, "/etc/nsswitch.conf", {st_mode=S_IFREG|0644, st_size=553, ...}, 0) = 0 [pid 903040] newfstatat(AT_FDCWD, "/", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0 [pid 903040] openat(AT_FDCWD, "/etc/nsswitch.conf", O_RDONLY|O_CLOEXEC) = 7 [pid 903040] newfstatat(7, "", {st_mode=S_IFREG|0644, st_size=553, ...}, AT_EMPTY_PATH) = 0 [pid 903040] read(7, "# /etc/nsswitch.conf\n#\n# Example"..., 4096) = 553 [pid 903040] read(7, "", 4096) = 0 [pid 903040] newfstatat(7, "", {st_mode=S_IFREG|0644, st_size=553, ...}, AT_EMPTY_PATH) = 0 [pid 903040] close(7) = 0 [pid 903040] openat(AT_FDCWD, "/etc/passwd", O_RDONLY|O_CLOEXEC) = 7 [pid 903040] newfstatat(7, "", {st_mode=S_IFREG|0644, st_size=2678, ...}, AT_EMPTY_PATH) = 0 [pid 903040] lseek(7, 0, SEEK_SET) = 0 [pid 903040] read(7, "root:x:0:0:root:/root:/bin/bash\n"..., 4096) = 2678 [pid 903040] close(7) = 0 [pid 903040] getgid() = 1000 [pid 903040] getuid() = 1000 [pid 903040] openat(AT_FDCWD, ".", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 7 [pid 903040] newfstatat(7, "", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_EMPTY_PATH) = 0 [pid 903040] getdents64(7, 0x55ade3be6f20 /* 2 entries */, 32768) = 48 [pid 903040] getdents64(7, 0x55ade3be6f20 /* 0 entries */, 32768) = 0 [pid 903040] close(7) = 0 [pid 903040] mount("/dev/fuse", ".", "fuse", MS_RDONLY|MS_NOSUID|MS_NODEV, "fd=6,rootmode=40000,user_id=1000"...) = -1 EPERM (Operation not permitted) [pid 903040] write(2, "fusermount: mount failed: Operat"..., 50fusermount: mount failed: Operation not permitted ) = 50 [pid 903040] close(6) = 0 [pid 903040] exit_group(1) = ? [pid 903040] +++ exited with 1 +++ [pid 903038] <... recvmsg resumed>{msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="", iov_len=1}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 0 [pid 903038] --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=903040, si_uid=1000, si_status=1, si_utime=0, si_stime=0} --- [pid 903038] close(6) = 0 [pid 903038] wait4(903040, NULL, 0, NULL) = 903040 [pid 903038] rmdir("/tmp/.mount_DeepneTYdwyZ") = 0 [pid 903038] munmap(0x7f6e2fca3000, 262432) = 0 [pid 903038] ioctl(0, TCGETS, {c_iflag=ICRNL|IXON|IUTF8, c_oflag=NL0|CR0|TAB0|BS0|VT0|FF0|OPOST|ONLCR, c_cflag=B38400|CS8|CREAD, c_lflag=ISIG|ICANON|ECHO|ECHOE|ECHOK|IEXTEN|ECHOCTL|ECHOKE, ...}) = 0 [pid 903038] newfstatat(1, "", {st_mode=S_IFCHR|0620, st_rdev=makedev(0x88, 0), ...}, AT_EMPTY_PATH) = 0 [pid 903038] write(1, "\n", 1 ) = 1 [pid 903038] write(1, "Cannot mount AppImage, please ch"..., 53Cannot mount AppImage, please check your FUSE setup. ) = 53 [pid 903038] write(1, "You might still be able to extra"..., 172You might still be able to extract the contents of this AppImage if you run it with the --appimage-extract option. See https://github.com/AppImage/AppImageKit/wiki/FUSE ) = 172 [pid 903038] write(1, "for more information\n", 21for more information ) = 21 [pid 903038] exit_group(0) = ? [pid 903038] +++ exited with 0 +++ <... read resumed>"", 1) = 0 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=903038, si_uid=1000, si_status=0, si_utime=0, si_stime=0} --- openat(AT_FDCWD, "/tmp/.mount_DeepneTYdwyZ", O_RDONLY) = -1 ENOENT (No such file or directory) dup(2) = 4 fcntl(4, F_GETFL) = 0x2 (flags O_RDWR) newfstatat(4, "", {st_mode=S_IFCHR|0620, st_rdev=makedev(0x88, 0), ...}, AT_EMPTY_PATH) = 0 write(4, "open dir error: No such file or "..., 42open dir error: No such file or directory ) = 42 close(4) = 0 exit_group(1) = ? +++ exited with 1 +++

As far as I could see it seems to be a Fuse issue so I did a complete reinstall of it and made sure everythong was complete reset for fuse, but it turns out I have everything up to date and still I get the segmentation fault:

andresh@andres-hurtado-lopez:~/appimages$ sudo apt install fuse libfuse2 Reading package lists... Done Building dependency tree... Done Reading state information... Done fuse is already the newest version (2.9.9-8+b1). libfuse2 is already the newest version (2.9.9-8+b1). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. andresh@andres-hurtado-lopez:~/appimages$ sudo modprobe fuse andresh@andres-hurtado-lopez:~/appimages$ sudo groupadd fuse andresh@andres-hurtado-lopez:~/appimages$ user="$(whoami)" andresh@andres-hurtado-lopez:~/appimages$ sudo usermod -a -G fuse $user andresh@andres-hurtado-lopez:~/appimages$ ./Deepnest-1.0.5-x86_64.AppImage Segmentation fault

At this point I'm lost because the whole idea of the Appimage is to provide a selfcontained environment to run the app but it seems to be something missing. The specs of my O/S and machine are the following:

andresh@andres-hurtado-lopez:~/appimages$ lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux trixie/sid Release: n/a Codename: trixie andresh@andres-hurtado-lopez:~/appimages$ uname -a Linux andres-hurtado-lopez 6.6.11-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.6.11-1 (2024-01-14) x86_64 GNU/Linux andresh@andres-hurtado-lopez:~/appimages$ neofetch _,met$$$$$gg. andresh@andres-hurtado-lopez ,g$$$$$$$$$$$$$$$P. ---------------------------- ,g$$P" """Y$$.". OS: Debian GNU/Linux trixie/sid x86_64 ,$$P' $$$. Host: ZenBook UX425QA_UM425QA 1.0
',$$P ,ggs. $$b: Kernel: 6.6.11-amd64 d$$' ,$P"' . $$$ Uptime: 3 hours, 11 mins
$$P d$' , $$P Packages: 3781 (dpkg)
$$: $$. - ,d$$' Shell: bash 5.2.21
$$; Y$b._ ,d$P' Resolution: 1920x1080
Y$$. ."Y$$$$P"' WM: i3
$$b "-.__ Theme: Adwaita [GTK3] Y$$ Icons: Adwaita [GTK3]
Y$$. Terminal: alacritty $$b. CPU: AMD Ryzen 9 5900HX with Radeon Graphics (16) @ 4.680GHz
Y$$b. GPU: AMD ATI Radeon Vega Series / Radeon Vega Mobile Series "Y$b.
Memory: 4134MiB / 15395MiB
`"""

`

What I'm doing wrong ?

Electron failed to install correctly

I can't complete the step "npm run start" on windows 11 visual studio 22. PowerShell returned the following
`PS C:\Users\drwen\Desktop\Project\NewDeepnest\Deepnest-master> npm run start

[email protected] start
electron .

C:\Users\drwen\Desktop\Project\NewDeepnest\Deepnest-master\node_modules\electron\index.js:14
throw new Error('Electron failed to install correctly, please delete node_modules/electron and try installing again')
^

Error: Electron failed to install correctly, please delete node_modules/electron and try installing again
at getElectronPath (C:\Users\drwen\Desktop\Project\NewDeepnest\Deepnest-master\node_modules\electron\index.js:14:11)
at Object. (C:\Users\drwen\Desktop\Project\NewDeepnest\Deepnest-master\node_modules\electron\index.js:18:18)
at Module._compile (node:internal/modules/cjs/loader:1149:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1203:10)
at Module.load (node:internal/modules/cjs/loader:1027:32)
at Module._load (node:internal/modules/cjs/loader:868:12)
at Module.require (node:internal/modules/cjs/loader:1051:19)
at require (node:internal/modules/cjs/helpers:103:18)
at Object. (C:\Users\drwen\Desktop\Project\NewDeepnest\Deepnest-master\node_modules\electron\cli.js:3:16)
at Module._compile (node:internal/modules/cjs/loader:1149:14)

Node.js v18.10.0
NativeCommandExitException: Program "npm.cmd" ended with non-zero exit code: 1.`

I have deleted the node_modules and reinstalled it many times with no effect whatsoever and after googling this problem, a website told me to delete ""electron": "^6.1.12"," in package.json and retry, which didn't work either.
Hope I can get a reply soon P.s. I am willing to share my gpt 4 account to whoever solved this problem lol
Best , Chen

Settings presets

Hi,

Suggestion : It would be really nice to be able to save custom settings (presets) with a preferred one loaded at start.

Thank you for your work !

Regards

[MAJOR] Update Versions

  • (Depends on #31)
  • (Processed in parallel with #34)

Tasks

  • attempted VS2022 build (2h), failed, stay with VS2019 for now
  • identified and updated first unit
  • awaiting budget
  • #57
  • Version 9371aeb has a broken UI (the hints do not work)
    • check commit after version after v1.1.0 release to find what change breaks it
    • revert d81d058 via d81d058
  • #63
  • several updates listed below in the comments via referencing
  • update to node 14
  • update to node 16
  • #85

Main Follow-up-Task

Resources / Trials

previous attempts to upgrade

Update README for this community

I have updated the old fork to reflect that it is now obsolete and this is the new fork to use for future work (therefore, do not merge with that fork else you get that readme update).

We should update this README to reflect the current state of the project (incl. removing my comments about not working on this), and add typical open-source things such as the goals of the community, how to participate, rules of engagement, and such.

[Fedora] Build fails Xcopy command not found

Describe the bug
Unable to build on Fedora Linux. Xcopy command not found.
The xcopy command is windows specific.

To Reproduce
Steps to reproduce the behavior:

  1. Clone the Repo
  2. cd Deepnest
  3. sudo dnf groupinstall "Development Tools" "Development Libraries"
  4. sudo dnf install make automake gcc gcc-c++ kernel-devel
  5. npm install
  6. npm run build

Expected behavior
Deepnest is able to build. (I know other platforms then windows are not yet supported)

Screenshots


[bosd@fedora Deepnest]$ npm run build

> [email protected] build
> mkdir minkowski >nul 2>&1|echo .>nul && mkdir minkowski/Release >nul 2>&1|echo .>nul && ./node_modules/.bin/electron-rebuild && npm run copy

✔ Rebuild Complete

> [email protected] copy
> xcopy /s /y .\build\Release .\minkowski\Release

sh: line 1: xcopy: command not found

Desktop (please complete the following information):

  • OS: Fedora 38
  • Deepnest 1.1.4
  • npm 8.19.2

Additional context
Propably better to use some form of platform independent copy method.

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

Location: renovate.json
Error type: Invalid JSON (parsing failed)
Message: Syntax error: expecting end of expression or separator near se "$sch

Deepnest won't start with ubuntu 22.04

The AppImage won't start properly, first time it proposes to integrate the software in the system. This is working fine. But software won't start. When launched from terminal, I got a segmentation fault message

To Reproduce
Steps to reproduce the behavior:

  1. launch a terminal.
  2. Goto the folder with Deepnest
  3. Launch Deepnest from terminal : ~/Applications/Deepnest-1.0.5-linux$ ./Deepnest-1.0.5-x86_64.AppImage

Expected behavior
Software start

Screenshots
thierry@thierry-UX410UAR:~/Applications/Deepnest-1.0.5-linux$ ./Deepnest-1.0.5-x86_64.AppImage
Segmentation error (core dumped)

Desktop (please complete the following information):

  • Ubuntu 22.04 (without Wayland if it helps)

Additional context
Add any other context about the problem here.

CLI Option

I've had a dig, but not been able to come up with anything.

Is there any way to run this as a CLI tool? Looking to interface with some other processes in-place.

Thanks!

Building with VS2022 under Windows 11

Solution: #21 (comment)


I'm trying to get this (as well as the InfernoEmbedded fork) to build for several hours now. Unfortunately the node-gyp is not working. Most likely it is not an issue at all with this repo, but with my configuration. However, as you guys figured out how to build, I hope someone can point me into the right direction. I'm willing to create some enhanced installation / build instructions, if you think it is required (I do ;).

I'm using Win11 (in a VM) and VS2022 (including the desktop C++ workload). I've installed NVM for windows and I am using node 8.17.0 as suggested. Also I finally installed pyenv with Python 2.7.18.

The problem I'm mainly facing is this:

gyp ERR! find VS
gyp ERR! find VS msvs_version was set from command line or npm config
gyp ERR! find VS - looking for Visual Studio version 2022
gyp ERR! find VS running in VS Command Prompt, installation path is:
gyp ERR! find VS "C:\Program Files\Microsoft Visual Studio\2022\Community"
gyp ERR! find VS - will only use this version
gyp ERR! find VS unknown version "undefined" found at "C:\Program Files\Microsoft Visual Studio\2022\Community"
gyp ERR! find VS could not find a version of Visual Studio 2017 or newer to use
gyp ERR! find VS looking for Visual Studio 2015
gyp ERR! find VS - not found
gyp ERR! find VS looking for Visual Studio 2013
gyp ERR! find VS - not found
gyp ERR! find VS msvs_version does not match this VS Command Prompt or the
gyp ERR! find VS installation cannot be used.
gyp ERR! find VS
gyp ERR! find VS **************************************************************
gyp ERR! find VS You need to install the latest version of Visual Studio
gyp ERR! find VS including the "Desktop development with C++" workload.
gyp ERR! find VS For more information consult the documentation at:
gyp ERR! find VS https://github.com/nodejs/node-gyp#on-windows
gyp ERR! find VS **************************************************************
gyp ERR! find VS
gyp ERR! configure error
gyp ERR! stack Error: Could not find any Visual Studio installation to use
gyp ERR! stack at VisualStudioFinder.fail (C:\Users\lernmoment\AppData\Roaming\nvm\v8.17.0\node_modules\npm\node_modules\node-gyp\lib\find-visualstudio.js:121:47)
gyp ERR! stack at findVisualStudio2013 (C:\Users\lernmoment\AppData\Roaming\nvm\v8.17.0\node_modules\npm\node_modules\node-gyp\lib\find-visualstudio.js:74:16)
gyp ERR! stack at regSearchKeys (C:\Users\lernmoment\AppData\Roaming\nvm\v8.17.0\node_modules\npm\node_modules\node-gyp\lib\find-visualstudio.js:372:16)
gyp ERR! stack at regGetValue (C:\Users\lernmoment\AppData\Roaming\nvm\v8.17.0\node_modules\npm\node_modules\node-gyp\lib\util.js:54:7)
gyp ERR! stack at C:\Users\lernmoment\AppData\Roaming\nvm\v8.17.0\node_modules\npm\node_modules\node-gyp\lib\util.js:33:16
gyp ERR! stack at ChildProcess.exithandler (child_process.js:288:5)
gyp ERR! stack at emitTwo (events.js:126:13)
gyp ERR! stack at ChildProcess.emit (events.js:214:7)
gyp ERR! stack at maybeClose (internal/child_process.js:915:16)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
gyp ERR! System Windows_NT 10.0.22621
gyp ERR! command "C:\Program Files\nodejs\node.exe" "C:\Users\lernmoment\AppData\Roaming\nvm\v8.17.0\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" "rebuild"
gyp ERR! cwd C:\temp\deepnest-cmidgley
gyp ERR! node -v v8.17.0
gyp ERR! node-gyp -v v5.0.5
gyp ERR! not ok
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

I've added the following lines to my .npmrc and I would think, that it is working:

msbuild_path="C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Current\\Bin\\MSBuild.exe"
msvs_version=2022

However, it looks like it is not able to use my VS2022. Is somebody using VS2022 for build deepnest? Otherwise I would assume that node-gyp is simply not compatible with VS2022 (or at least not the old node-gyp version used here).

Preparations for Electron Update

(sponsored by @bosd )

followup from:

Process

  • Just use standard-procedures

Info

2023-05-17

package used latest comment
electron 6.1.13 24.3.0 up 7.3.3, then 8, 9, 10 etc.
v24 possibly not reachable (effort/benefit)
request 2.88.2 2.88.2 deprecated, migrate to alternative
electron-settings 4.0.2 4.0.2 ok
nan 2.17.0 2.17.0 ok
graceful-fs 4.2.11 4.2.11 ok
electron-window-manager 1.0.6 1.0.6 ok
electron-packager 17.1.1 17.1.1 ok
electron-rebuild 3.2.9 3.2.9 ok

Tasks

  • preparation #90

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

github-actions
.github/workflows/build.yml
  • actions/checkout v3
  • actions/setup-node v3
npm
package.json
  • electron-config ^0.2.1
  • electron-settings ^2.2.2
  • electron-window-manager ^1.0.4
  • filequeue ^0.5.0
  • graceful-fs ^4.1.11
  • melanke-watchjs ^1.3.1
  • nan ^2.4.0
  • paralleljs ^0.2.1
  • request ^2.79.0
  • write-file-queue 0.0.1
  • electron ^1.4.1
  • electron-builder ^20.44.4
  • electron-packager ^8.0.0
  • electron-rebuild ^1.11.0

  • Check this box to trigger a request for Renovate to run again on this repository

Symetrical vs asymetric materials

Hi,
Just in case, I'd like to mention if the material has layers of different physical properties, the parts could not being flipped. However if the material is exactly the symetrical in layer terms, it would be the same to cut a piece or it's mirrored part thus allowing an extra optimization. Havent seen this option in the original version.
Regards,

Federico

SVG export viewbox height is wrong

Describe the bug
I exported an SVG of a layout. The sheet size was 5000 x 1500 mm. In the exported .SVG file the viewbox was width="5000mm" and height="1650.0000000000002mm". Where did the extra 150 mm come from?

It seems to calculate with the correct size though. When i changed the height in inkscape, the positioning of the parts seemed correct compared to the preview.

To Reproduce
Steps to reproduce the behavior:

  1. Add a sheet and parts.
  2. Start nest.
  3. Export to an .SVG file
  4. Open in SVG editor or text editor and check the size of viewbox-item.

Expected behavior
The viewbox should be the same as the main sheet.

Desktop (please complete the following information):

  • OS: Windows 10
  • Version 1.20

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.