Package Details: platformio-udev-rules 6.0.2-1

Git Clone URL: (read-only, click to copy)
Package Base: platformio
Description: A cross-platform code builder and library manager
Upstream URL:
Keywords: arduino builder platformio
Licenses: Apache
Conflicts: platformio-git
Submitter: zer0chain
Maintainer: zer0chain (Jake)
Last Packager: Jake
Votes: 71
Popularity: 1.22
First Submitted: 2016-02-11 15:01 (UTC)
Last Updated: 2022-06-20 02:26 (UTC)

Latest Comments

Jake commented on 2022-03-14 20:55 (UTC)

Hey @Svenstaro, surely this can be useful in some cases, I split the package now.

Svenstaro commented on 2022-03-14 08:08 (UTC)

Hey @Jake what do you think about my suggestion?

Svenstaro commented on 2022-01-22 01:54 (UTC)

Hey, any chance you could expose the udev rules as a split package by itself? I only want to install the udev rules (pio is installed separately via other means).

Jake commented on 2021-09-18 11:24 (UTC) (edited on 2021-09-18 11:25 (UTC) by Jake)

Hi @jancici, @skunktrader, @mantielero, you are right and I can reproduce it, python-zeroconf was indeed missing, I am always looking at and overlooked that conditional dep... it is added/fixed now. Thanks for the notice.

Otherwise everything should be already covered, even though the are not directly listed in the PKGBUILD, they are sub dependencies:

  - aiofiles [required: ==0.7.*, installed: 0.7.0]
  - ajsonrpc [required: ==1.*, installed: 1.2.0]
  - bottle [required: ==0.12.*, installed: 0.12.19]
  - click [required: >=5,<9, installed: 8.0.1]
  - colorama [required: Any, installed: 0.4.4]
  - marshmallow [required: >=2,<4, installed: 3.13.0]
  - pyelftools [required: >=0.27,<1, installed: 0.27]
  - pyserial [required: ==3.*, installed: 3.5]
  - requests [required: ==2.*, installed: 2.26.0]
    - certifi [required: >=2017.4.17, installed: 2021.5.30]
    - charset-normalizer [required: ~=2.0.0, installed: 2.0.6]
    - idna [required: >=2.5,<4, installed: 3.2]
    - urllib3 [required: >=1.21.1,<1.27, installed: 1.26.6]
  - semantic-version [required: ==2.8.*, installed: 2.8.5]
  - starlette [required: ==0.16.*, installed: 0.16.0]
    - anyio [required: >=3.0.0,<4, installed: 3.3.1]
      - idna [required: >=2.8, installed: 3.2]
      - sniffio [required: >=1.1, installed: 1.2.0]
  - tabulate [required: ==0.8.*, installed: 0.8.9]
  - uvicorn [required: ==0.15.*, installed: 0.15.0]
    - asgiref [required: >=3.4.0, installed: 3.4.1]
    - click [required: >=7.0, installed: 8.0.1]
    - h11 [required: >=0.8, installed: 0.12.0]
  - wsproto [required: ==1.0.*, installed: 1.0.0]
    - h11 [required: >=0.9.0,<1, installed: 0.12.0]
  - zeroconf [required: ==0.36.*, installed: 0.36.4]
    - ifaddr [required: >=0.1.7, installed: 0.1.7]

I have double checked it with the Arch packages:

`sniffio` - python-anyio - python-starlette
`idna` - python-requests
`urllib3` - python-requests
`ifaddr` - python-zeroconf
`h11` - python-wsproto
`click` - DIRECT
`charset-normalizer` (chardet) - python-requests
`certifi` - python-requests (not in arch, uses system certs)
`asgiref` - uvicorn
`anyio` - python-starlette
`zeroconf` = was actually missing!
`wsproto` - DIRECT
`uvicorn`- DIRECT
`tabulate` - DIRECT
`starlette` - DIRECT
`semantic-version` - DIRECT
`requests` - DIRECT
`pyserial` - DIRECT
`pyelftools` - DIRECT
`marshmallow` - DIRECT
`colorama` - DIRECT
`bottle` - DIRECT
`ajsonrpc` - DIRECT
`aiofiles` - DIRECT

Let me know when you find something else.

mantielero commented on 2021-09-18 10:12 (UTC)

I think the issue is that not all the dependencies are installed.

If you install it locally by means of:

wget -O

you will observe that the dependencies are:

sniffio, idna, urllib3, ifaddr, h11, click, charset-normalizer, certifi, asgiref, anyio, zeroconf, wsproto, uvicorn, tabulate, starlette, semantic-version, requests, pyserial, pyelftools, marshmallow, colorama, bottle, ajsonrpc, aiofiles, platformio

Many of these are not covered by the PKGBUILD.

In particular, the one that solved the issue for me was:

$ yay -S python-zeroconf

skunktrader commented on 2021-09-14 23:36 (UTC)

Just chiming in that I get the same error as @jancici below. Reverted back to platformio-5.1.1-1 for now

jancici commented on 2021-09-14 19:34 (UTC) (edited on 2021-09-14 19:35 (UTC) by jancici)

afer update I am not able to used pio

getting this in terminal

Usage: platformio [OPTIONS] COMMAND [ARGS]...
Try 'platformio -h' for help.

Error: No such command "access"

smrqdt commented on 2021-07-15 16:31 (UTC)

FYI: platformio Home currently might not start because of a missing dependency in the uvicorn package

Solution: install python-asgiref from [extra] manually (and upvote the bug)

Jake commented on 2021-02-22 11:24 (UTC)

@greyltc: True, thanks! Actually it missed a few more that got added for the pio home web UI, they are all added now (pkgrel=3).

greyltc commented on 2021-02-21 14:23 (UTC)

Seems to be missing python-starlette dep.

Jake commented on 2021-02-01 13:26 (UTC)

ansemjo: No, that is indeed not necessary, it is changed now. Thanks for the notice!

ansemjo commented on 2021-02-01 12:06 (UTC)

Is there a reason why /usr/lib/udev/rules.d/99-platformio-udev.rules needs to be executable? Otherwise I'd suggest adding a -m644 to the install command in package(). :)

ixil commented on 2020-12-21 12:20 (UTC)

Is it possible to install the shell completions to a system-wide install location?

Jake commented on 2020-12-12 13:10 (UTC)

@snowball: I understand your argument with new python releases an have added the install line now. Thanks for the patch! I don't think a additional install script is required though. Reloading of udev rules is handled automatically with a pacman hook: /usr/share/libalpm/hooks/30-systemd-udev-reload.hook and while being in uucp is necessary for serial port access it is not specific to this package, more a general system configuration thing.

snowball commented on 2020-12-09 10:23 (UTC)

To install the udev rules:

diff --git a/PKGBUILD b/PKGBUILD
index d6a0428..3f70958 100644
@@ -27,10 +27,12 @@ depends=('python-setuptools'
 optdepends=('python-click-completion: for shell completions'
            'python-shellingham: for shell completions')

 package() {
     cd "$srcdir/platformio-core-$pkgver"
     python install --root="$pkgdir/" --optimize=1
+    install -Dt "$pkgdir/usr/lib/udev/rules.d" "scripts/99-platformio-udev.rules"
diff --git a/platformio.install b/platformio.install
new file mode 100644
index 0000000..b46b9c0
--- /dev/null
+++ b/platformio.install
@@ -0,0 +1,6 @@
+post_install() {
+    echo 'Restart udev and add yourself to the uucp group for access to serial ports:'
+    echo '  systemctl restart systemd-udevd.service'
+    echo '  usermod -a -G uucp $USER'
+    echo 'You will need to log out and log back in again after the group change.'

I prefer this over creating a symlink, as the symlink breaks whenever there's a new Python release.

Jake commented on 2020-09-04 16:03 (UTC)

@greyltc: Fixed upstream (for 5.0.1):

greyltc commented on 2020-09-03 20:35 (UTC) (edited on 2020-09-03 20:37 (UTC) by greyltc)

Hey, please don't put stuff in /usr/lib/python3.8/site-packages/tests

theaifam5 commented on 2020-02-12 20:52 (UTC) (edited on 2020-02-12 20:55 (UTC) by theaifam5)

PIO 4.2 released, where the issue with marshmallow 3 should be fixed.

Still python-semantic-version got no update.

Jake commented on 2020-02-01 00:48 (UTC)

@TheAifam5: I have also sent Felix Yan a mail a few weeks ago, with updated semantic-version PKGBUILD and explanation that it does not break other packages. Same as you, did also not get any response... Don't quite know what to do now. Just push the update here with a notice that users have to fix this dependency themselves?

@Scrumplex: It is actually already in the package, you can create a link to make udev load them: ln -s /usr/lib/python3.8/site-packages/scripts/99-platformio-udev.rules /etc/udev/rules.d/

theaifam5 commented on 2020-01-31 01:37 (UTC) (edited on 2020-01-31 01:41 (UTC) by theaifam5)

Fix is already on the master. Will come in next release, which will be marshmallow 3 compatible.

I tried to contact with the maintainer of the „python-semantic-version“. Even sent him PKGBUILD which may help him a little bit, but never got any response.

Scrumplex commented on 2020-01-23 22:38 (UTC)

What about adding the platformio udev rules to this package?

Jake commented on 2019-12-26 18:11 (UTC)

@TheAifam5 @offlinehoster: Thanks for the help. The main problem is in my opinion still semantic_version, because it is in the official repos and not in the correct version... but making a AUR package just with a newer version seems wrong. I also tried applying the patch (2.6.0 > 2.8.1) in reverse, but there were other changes and it is not that easy. Otherwise we could fulfill the 4.1.0 dependencies now, here is the list from


medicineman25 commented on 2019-12-25 11:47 (UTC)

I cannot register an account from the CL, citing "Bad Gateway". Anyone else having issues with the PKGBUILD for 4.1?

offlinehoster commented on 2019-12-19 11:13 (UTC)

I already wrote @zer0chain an email on Dec 2th to tell him that the current platformio is out of date and we're running into a bigger problem, because of update issues.

I did an update to the "latest" version by myself. I'm running

 -> platformio: local (4.1.0-1) is newer than AUR (4.0.2-1)

You can fetch the current platformio PKGBUILD from

theaifam5 commented on 2019-11-21 15:48 (UTC) (edited on 2019-11-25 00:15 (UTC) by theaifam5)

sha256: 24106822deb6ec18d46ac2fc2ebcec728eec8538cb92041030c95d2300753463

Does not work due python-marshmallow package. I've created github issue about that:

EDIT: Hey I made a package:

Additionally you need (after that PIO works <3)

# Maintainer: Felix Yan <>
# Contributor: Simon Sapin <simon dot sapin at exyr dot org>
# Contributor: Kyle Keen <>
# Contributor: TheAifam5 <>

pkgdesc="A library implementing the 'SemVer' scheme."
checkdepends=('python-pytest') # 'python-django') Test hangs

build() {
  cd "$srcdir"/$pkgname-$pkgver
  python build

check() {
  cd "$srcdir"/$pkgname-$pkgver
  rm tests/

package() {
  cd python-semanticversion-$pkgver
  python3 install --root="$pkgdir" --optimize=1
  install -D -m644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE

Jake commented on 2019-09-19 19:21 (UTC)

Okay for me, would be nice to have it in the official repos @FFY00

FFY00 commented on 2019-09-17 08:14 (UTC)

Hey, do you mind if I move this to [community]? Thank you :)

Jake commented on 2019-09-11 12:29 (UTC)

I am holding back 4.0.3 because it requires semantic_version>=2.8.0 and in [community] it is still on 2.6.0 (already flagged out-of-date).

Jake commented on 2019-07-14 10:42 (UTC) (edited on 2019-07-14 10:42 (UTC) by Jake)

Yes, upstream patched it: But it is not in 4.0.0.

AFAIK these functions are just for generation of the online documentation, so not important in this case.

ubuntourist commented on 2019-07-14 10:22 (UTC) (edited on 2019-07-14 10:26 (UTC) by ubuntourist) is fine on github, but the latest on AUR needs parenthesis around the print arguments. So, a more recent pull:

writing byte-compilation script '/tmp/'
/usr/bin/python /tmp/
  File "usr/lib/python3.7/site-packages/scripts/", line 283
    print "Processing platform: %s" % name
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Processing platform: %s" % name)?

  File "usr/lib/python3.7/site-packages/scripts/", line 21
    print root, fname, brokenlink
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(root, fname, brokenlink)?

removing /tmp/

Jake commented on 2019-05-18 15:23 (UTC)

Please update, latest version is 3.6.7! I also happy to help i you add me as maintainer.

jd72 commented on 2019-01-13 21:22 (UTC)

What should I do with this?

================================= . . . Reading local package database... :: error: Failed to remove installed dependencies, packages inconsistency: python2-click Do you want to proceed? [Y/n] :: Removing already installed dependencies for platformio: checking dependencies... error: failed to prepare transaction (could not satisfy dependencies) :: python2-incremental: removing python2-click-5.1 breaks dependency 'python2-click' Command 'sudo pacman --color=always --remove python2-semantic-version python2-bottle python2-click-5.1 python2-arrow python2-pyserial' failed to execute. . . . =================================

GPereira commented on 2019-01-10 17:43 (UTC)

Fixed and updated!

ThreadRipper commented on 2018-02-15 01:24 (UTC)

Still failing- error: target not found: python2-click-5.1

ginkel commented on 2017-11-17 22:15 (UTC)

Unfortunately, the installation currently fails due to a broken python-click-5.1 dependency. Any ideas?

zer0chain commented on 2017-08-04 07:19 (UTC)

Thanks @MrHaroldA I can't (or I don't know how) set several rules for the deps version so I put a >=3.4 to be sure it's not using 3.3.

MrHaroldA commented on 2017-08-04 06:56 (UTC)

The latest version does not work with community/python2-pyserial 3.4-1 installed as the build specifically asks for < 3.3, while 3.4 should be ok. Please remove the < 3.3 restriction, or make it a specific one like upstream does: "pyserial>=3,<4,!=3.3".

z3ntu commented on 2017-07-13 11:43 (UTC)

Doesn't work with python2-pyserial 3.3. See . Downgrading python2-pyserial worked.

zer0chain commented on 2017-03-30 06:28 (UTC)

Done guys ;)

Jake commented on 2017-03-29 22:14 (UTC)

Yes, i can also confirm that arrow is required. @zer0chain Could you add 'python2-arrow' to the dependencies? Or add me as co-maintainer and i can push the changes. Thanks

frazar0 commented on 2017-03-28 07:27 (UTC) (edited on 2017-03-28 07:30 (UTC) by frazar0)

Is it possible that "python-arrow" is a required dependency? After updating, I get $ platformio update Traceback (most recent call last): File "/usr/bin/platformio", line 6, in <module> from pkg_resources import load_entry_point ... MORE TRACEBACK LINES ... File "/usr/lib/python2.7/site-packages/pkg_resources/", line 854, in resolve raise DistributionNotFound(req, requirers) pkg_resources.DistributionNotFound: The 'arrow<1' distribution was not found and is required by platformio Installing "python-arrow" fixed this. Can be confirmed by looking at install_requires = [ "arrow<1", "bottle<0.13", ... MORE DEPENDENCIES ... ]

myles commented on 2016-12-12 23:19 (UTC)

Thanks for maintaining this package. These changes work: -pkgver=3.1.0 +pkgver=3.2.1 -sha256sums=('80b22f4322904648ea4b355935ea9315cfd765c3286022b54b75227e1be03d83') +sha256sums=('5a85e60afc28b4ee04b43efd90c77f69b6c6ff96829e1b8750aa52143bca6eb2') - cd "$srcdir/platformio-$pkgver" + cd "$srcdir/platformio-core-$pkgver"

tirithen commented on 2016-12-10 10:19 (UTC)

Yes, it's failing, I tried to change to this to get the latest version 3.2.1 # Maintainer: Guilhelm Savin <> # Upstream URL: # # For improvements/fixes to this package, please send a pull request: # # pkgname=platformio pkgver=3.2.1 pkgrel=0 pkgdesc="A cross-platform code builder and library manager" arch=('any') url="" license=('Apache') depends=('python2' 'python2-bottle' 'python2-click-5.1' # 'python2-colorama' 'python2-lockfile' 'python2-pyserial' 'python2-requests' 'python2-semantic-version' 'python2-setuptools') conflicts=('platformio-git') source=("${pkgver}.tar.gz") sha256sums=('5a85e60afc28b4ee04b43efd90c77f69b6c6ff96829e1b8750aa52143bca6eb2') package() { cd "$srcdir/platformio-$pkgver" python2 install --root="$pkgdir/" --optimize=1 } But I got some PKGBUILD error that it could not find some file. Not to good at this. Could @zer0chain give us a hand maybe? :)

ninov commented on 2016-11-30 19:40 (UTC)

Getting an error building this package: ==> Making package: platformio 3.1.0-1 (Wed Nov 30 20:40:39 CET 2016) ==> Retrieving sources... -> Found v3.1.0.tar.gz ==> Validating source files with sha256sums... v3.1.0.tar.gz ... FAILED ==> ERROR: One or more files did not pass the validity check! :: failed to verify platformio integrity

zer0chain commented on 2016-11-11 11:48 (UTC)

Thanks @bricewge. Sorry for the late update.

bricewge commented on 2016-10-24 16:35 (UTC)

I made a pull request [1] to the github repository indicated in the PKGBUILD. There you can find a working recipe for platformio 3.1.0 [1]:

patrickelectric commented on 2016-10-11 11:23 (UTC)

Please, update the package.

xsmile commented on 2016-09-13 19:16 (UTC)

PKGBUILD for 3.0.1 with python-click-5.1:

zer0chain commented on 2016-06-20 09:21 (UTC)

@buckket I agree it is a bad idea. I thought platformio will moved to the next version of click and so it shoud be temporary to use this patch on However, I think it is also a bad idea to use an out-of-date package in AUR when the last version if available in the official repository.

buckket commented on 2016-06-17 23:36 (UTC) (edited on 2016-06-17 23:37 (UTC) by buckket)

Dear maintainer, patching to allow the usage of click v6 is a bad idea, there is a reason this restriction is in place: click v6 introduces a bug to platformio. [0] Instead I suggest adjusting the PKGBUILD dependency to explicitly list an older, but compatible, version of click. Someone already has created a python-click-5.1 package [1], which would be a perfect fit. [0]: [1]:

zer0chain commented on 2016-04-13 20:56 (UTC)

avrdude is a known issue for platformio on Arch, but I do not think that adding these deps is the proper way of solving it. Best is to use the avrdude provided by Arch rather than the one of platformio. A symbolic link (~/.platformio/packages/tool-avrdude -> /usr/bin/avrdude) do the job for now.

Xeranor commented on 2016-04-13 09:56 (UTC)

Please add and to the dependencies since they are needed to run the version of avrdude.