Package Details: octoprint-venv 1.4.0-2

Git Clone URL: https://aur.archlinux.org/octoprint-venv.git (read-only, click to copy)
Package Base: octoprint-venv
Description: The snappy snappy web interface for your 3D printer! (venv installation type)
Upstream URL: http://octoprint.org/
Licenses: AGPL3
Conflicts: octoprint
Provides: octoprint
Submitter: Jake
Maintainer: Jake
Last Packager: Jake
Votes: 19
Popularity: 0.008332
First Submitted: 2017-01-15 12:46
Last Updated: 2020-07-11 18:40

Pinned Comments

Jake commented on 2017-10-24 16:03

If the hashsum is incorrect please just flag it out of date (also when there is no real new release).

The reason is a variable that gets filled out by git-archive and changes every time with branching, for example:

diff -r OctoPrint-1.4.0-old/src/octoprint/_version.py OctoPrint-1.4.0-new/src/octoprint/_version.py
30c30
<     git_refnames = " (tag: 1.4.0, rc/maintenance, rc/devel)"
---
>     git_refnames = " (tag: 1.4.0, rc/devel)"

It happens usually 2 times between releases...

Latest Comments

1 2 3 4 5 6 ... Next › Last »

celogeek commented on 2020-03-27 18:10

Unfortunately, I have check all my plugins and most of them have no update for several years. Of course, they may be compatible with python3 but not mark as it.

I can clone and patch each of them to make it work, but well, that's not always obvious and take a lot of time.

I will try py3 like a new fresh octoprint, with only working plugins (so not so much) and see if it is manageable.

Jake commented on 2020-03-08 20:55

celogeek: Your observations are correct, but i think we should rather try to get the plugins updated, in most cases they only need very small changes. Python 2 is now finally EOL, so the default here should be 3.x. About Klipper: AFAIK the host software is independent from octoprint and communicates simply over a serial interface, basic printing should still work. If you are referring to the OctoKlipper plugin, that got no updates since 2018, for any fixes you need to install a some fork anyway (possible with sudo -u octoprint /opt/octoprint-venv/bin/pip install URL). I tested it quickly and it seems to run fine though, if the Python 3 compatibility flag* is set. Otherwise it is probably better to stay also on older octoprint releases or switch to DWC2 instead.

* https://docs.octoprint.org/en/master/plugins/python3_migration.html#telling-octoprint-your-plugin-is-python-3-ready

celogeek commented on 2020-03-07 15:15

Nice to have python3.8 on octoprint!

But not all modules are ready to go on that version of python.

What I see after the upgrade: - it is like a reset, nothing installed anymore (all modules installed in python2.7 wont be automatically reinstalled on python3.8) - incompatible modules (worst for me is Klipper, which will take times to upgrade, and without it, I can't print at all)

Maybe it would be better to have 2 versions of octoprint-venv:

  • octoprint-venv: python 2.7 like before
  • octoprint-venv-next: python 3.8 for the brave

Jake commented on 2020-03-06 15:15

Thanks n8henrie for the patch, i am pulling this in as temporary fix.

What i have found out so far: The root issue is that markdown is in setup_requires, so it gets installed before all normal dependencies. In the step where it downloads the install_requires it thinks that markdown is already available and does not install it into site-packages where it should be. Now in my tests (and probably vaar with your regular user) it was working fine because it could still import it from $srcdir, after wiping that it breaks again. The import path can be checked with /opt/octoprint-venv/bin/python -c 'import markdown; print(markdown.__file__)'.

Now i searched through the octoprint source and apparently the function/object that markdown actually imports never gets called, the other only if octoprint.util.is_running_from_source(). The exception at start is just because the octoprint script checks if all defined dependencies are available and raises the pkg_resources.DistributionNotFound error otherwise. So that is why it works with directly running the octoprint module.

vaar commented on 2020-03-06 11:21

n8henrie's patch below fixes the problem for me too.

n8henrie commented on 2020-03-06 05:02

Service crashing for me on 1.4.0 as well, same error about markdown.

Running with the below patch seems to work, removes the virtualenv dependency (since python3 has venv built-in), and uses python -m octoprint which helps prevent import issues with dependencies.

diff --git a/PKGBUILD b/PKGBUILD
index 5b3e145..654934c 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -3,41 +3,38 @@
 pkgname=octoprint-venv
 pkgver=1.4.0
 pkgrel=1
-pkgdesc="The snappy snappy web interface for your 3D printer! (virtualenv installation type)"
+pkgdesc="The snappy snappy web interface for your 3D printer! (venv installation type)"
 arch=('any')
 url="http://octoprint.org/"
 license=('AGPL3')
-depends=('python-virtualenv' )
+depends=('python')
 optdepends=('ffmpeg: timelapse support'
             'mjpg-streamer: stream images from webcam')
 provides=('octoprint')
 conflicts=('octoprint')
-install="octoprint.install"
+install=octoprint.install
 source=("https://github.com/foosel/OctoPrint/archive/${pkgver}.tar.gz"
         'octoprint.service'
         'octoprint.sysusers'
         'octoprint.tmpfiles')
 sha256sums=('46558dd965e2e60016f1b5aea4c559a48fa1d7dc6b03dcdd08efcbad034f72e8'
-            'c6fb02d68cbfb1806c6c66134f1fa211caa1a8b7176befee53757cf546fdd4b3'
+            '4eb0ce0d884a1a5416c4cd0937f55587c70f013688c73bf2902e8c5b251b6294'
             '79d0f9fe053181eaa77f472b5235463ce217475d47fada9869f42d313b4651a9'
             '67f7844f39428058d59e2a7cb03b3d3077b5f4b0a136fc9dd123e6538a92e851')

-
 package() {
     cd "${srcdir}/OctoPrint-${pkgver}"
-    
-    virtualenv "${pkgdir}/opt/$pkgname"
-    "${pkgdir}/opt/$pkgname/bin/python" setup.py install --optimize=1
+
+    python3 -m venv "${pkgdir}/opt/$pkgname"
+    "${pkgdir}/opt/$pkgname/bin/python3" setup.py install --optimize=1
     sed -i "s|${pkgdir}/opt/$pkgname|/opt/$pkgname|g" "${pkgdir}/opt/$pkgname/bin/"* # relocate without breaking plugin system
-    
+
     install -Dm644 "${srcdir}/octoprint.service" "${pkgdir}/usr/lib/systemd/system/octoprint.service"
     install -Dm644 "${srcdir}/octoprint.sysusers" "${pkgdir}/usr/lib/sysusers.d/octoprint.conf"
     install -Dm644 "${srcdir}/octoprint.tmpfiles" "${pkgdir}/usr/lib/tmpfiles.d/octoprint.conf"
-    
+
     install -d "${pkgdir}/usr/bin/"
-    ln -s /opt/$pkgname/bin/octoprint "${pkgdir}/usr/bin/octoprint"
-    
+
     install -d "${pkgdir}/var/lib/octoprint" "${pkgdir}/etc/"
     ln -s /var/lib/octoprint/.octoprint/ "${pkgdir}/etc/octoprint"
-    
 }
diff --git a/octoprint.service b/octoprint.service
index 8067c18..deaacc2 100644
--- a/octoprint.service
+++ b/octoprint.service
@@ -6,9 +6,8 @@ After=network.target
 User=octoprint
 Group=octoprint
 Type=simple
-ExecStart=/usr/bin/octoprint serve
+ExecStart=/opt/octoprint-venv/bin/python3 -m octoprint serve
 Restart=on-failure

 [Install]
 WantedBy=multi-user.target
-

vaar commented on 2020-03-05 16:34

1.4.0 does not start as a service for me. I don't see the error with systemctl status octoprint (just "octoprint.service: Failed with result 'exit-code'") but if I run "sudo -u octoprint /usr/bin/octoprint serve" I get a traceback and:

pkg_resources.DistributionNotFound: The 'markdown<3.2,>=3.1' distribution was not found and is required by OctoPrint

I can start octoprint serve as my regular user though.

plutonium commented on 2019-09-27 08:02

@ArchGalileu I have a Raspberry Pi cam working on my octoprint install... I just followed guides available on the net, e.g. the alarm wiki https://archlinuxarm.org/wiki/Raspberry_Pi + octoprint information to run mjpg-streamer. The only problem I had with mjpg-streamer is that I did not get the input_raspicam plugin to work, but input_uvc works...

For your access to sudo systemctl reboot and other system commands from octoprint, check that you have a line that allows the octoprint user to run sudo commands without a password, either in /etc/sudoers or a file in /etc/sudoers.d/. Furthermore, on my fresh install the octoprint account was expired and password-locked. You don't have to unlock the password (user should not log-in), but update the account so it does not expire: chage -E -1 octoprint

ArchGalileu commented on 2019-09-16 23:17

Hello

anyone knows howto add the camera to octoprint? The raspberry pi camera?

Also can't solve access to "sudo systemctl restart .... or sudo systemctl reboot"

Best regards ArchGalileu

Jake commented on 2019-08-25 12:15

sl1pkn07: You must run it as the octoprint user, if you want to use plugin installation etc. with the included pip, the permissions get set accordingly (other have only read+execute). I have also included a systemd service that does this automatically, so the simplest way is to just start/enable that.