Git Product home page Git Product logo

Comments (10)

AndreyNikiforov avatar AndreyNikiforov commented on June 3, 2024

Sorry for broken experience. Compatibility tests show that pip runs fine on amd64 linuxes - I am curious how your setup on Synology is different... We run compatibility test in python virtual envs while your setup seems to be with it - may be that is the root cause...

from icloud_photos_downloader.

genegoykhman avatar genegoykhman commented on June 3, 2024

Thanks for the quick response Andrey. I'm not too familiar with Python or virtual environments, but I followed the Sam the Geek guide to set things up.

Here is a screenshot of the repro steps ... maybe I have a stale pip package cache or something?
2024-01-04 at 4 15 PM

from icloud_photos_downloader.

AndreyNikiforov avatar AndreyNikiforov commented on June 3, 2024

"Permission denied" for /tmp folder suggests that user under which icloudpd is running does not have sufficient/necessary privileges for using /tmp folder. I suspect the fact that icloudpd self-extracts into tmp and then runs from there, complicate things.

I tried reproducing the situation using docker on linux and non-privileged account -- no lack. I don't have Synology hardware and seems that DSM is not available for installing into VM.

A number of options for your to proceed:

  • use 1.17.2 until we repro and fix the issue - you already figured that path
  • use icloudpd docker image instead of pip - I don't have experience with Synology, but setting up docker and running apps in it seems to be well supported on Synology

from icloud_photos_downloader.

git-newbe avatar git-newbe commented on June 3, 2024

Hi Andrey, using docker image seems to be an issue as well. Please see my post #762. May I ask you to check what has been changed? Thanks a lot. - If you like we can also have a quick remote session to demonstrate ;)

from icloud_photos_downloader.

genegoykhman avatar genegoykhman commented on June 3, 2024

To test your theory that it might be a permissions issue I logged in with sudo -i and tried again:

2024-01-05 at 10 49 AM

Immediately after running this command I checked and there is no /tmp/staticx-lHadii in the file system, but maybe it was cleaned up as part of the script.

Is this expanding into /tmp new for 1.17.3? I noticed that there were some commits related to building and deployment between 1.17.2 and 1.17.3.

Anyway, thanks for looking into this and I'm happy to test or provide additional info.

from icloud_photos_downloader.

AndreyNikiforov avatar AndreyNikiforov commented on June 3, 2024

Is this expanding into /tmp new for 1.17.3? I noticed that there were some commits related to building and deployment between 1.17.2 and 1.17.3.

We've been packaging python into single binary executable for some time now. In 1.17.3 I added validation and tweaks to the process that may have changed the behavior around /tmp folder.

Anyway, thanks for looking into this and I'm happy to test or provide additional info.

My thoughts on possible avenues for troubleshooting:

  • try clean install of icloudpd, not upgrade
  • try installing into venv (btw installing without venv does not work for me for latest pip at all)
  • try root vs user
  • try docker instead of pip/python

IIUC DSM allows running Virtual DSM (as VM). That may be better option for troubleshooting than your real setup.

from icloud_photos_downloader.

gierschv avatar gierschv commented on June 3, 2024

I got the same issue, it's happening because /tmp is mounted with noexec on Synology DSM 7.

sudo mount /tmp -o remount,exec will temporary fix this issue. I don't see it in the fstab, so I will probably try to run icloudpd differently if I don't see how to change this config.

from icloud_photos_downloader.

genegoykhman avatar genegoykhman commented on June 3, 2024

Yup @gierschv the sudo mount /tmp -o remount,exec allows 1.17.3 to work. Thanks!

I guess something in 1.17.3 now requires the ability to execute from within /tmp whereas that wasn't necessary in previous versions. I don't know much about DSM but if there is a better workaround in the future (like adding a line into fstab somewhere) I'd be interested in hearing it.

Or better yet, maybe icloudpd can be expanded and executed from $TMP instead @AndreyNikiforov ? But I'm not sure if that's feasible / possible / a good idea.

from icloud_photos_downloader.

AndreyNikiforov avatar AndreyNikiforov commented on June 3, 2024

Or better yet, maybe icloudpd can be expanded and executed from $TMP instead @AndreyNikiforov ? But I'm not sure if that's feasible / possible / a good idea.

I'll keep looking for Synology with special permission on /tmp use case. I suspect that before 1.17.3 you were getting source code, while in 1.17.3 you started getting binaries and /tmp behavior is related to how self-extracting binaries work.

In general, I found binary distributions (docker, binary pip, binary npm) easier to support as there are less uncertainty and better compatibility (e.g. source icloudpd on arm needs rust compiler and plenty of libs during installation). There will be nuances like Synology /tmp use case and we'll have to figure out how to solve them.

Thanks for your patience

from icloud_photos_downloader.

SamTheGeek avatar SamTheGeek commented on June 3, 2024

@genegoykhman I'm going to have to update my guide at some point, a few of the instructions are a little out of date.

It also appears that you can use export TMPDIR=$HOME/tmp; before running icloudpd which allows you to run it without needing sudo. This allows for use in scheduled tasks and unattended setup.

from icloud_photos_downloader.

Related Issues (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.