Skip to content

remove DBSStore/EIS #6510

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from
Closed

remove DBSStore/EIS #6510

wants to merge 1 commit into from

Conversation

LinusHeu
Copy link

@LinusHeu LinusHeu commented Jun 28, 2025

This Library includes a bunch of files that are straight-up copied and not modified from multiple adafruit libraries.
This creates two issues:

  1. Licensing (I think. I'm not a lawyer.)
  2. It breaks compilation of adafruit libraries in the arduino cloud IDE because the cloud IDE auto-includes DBSStore/EIS instead of the original adafruit libraries.
    For example compiling the Adafruit GFXcanvas example (https://app.arduino.cc/sketches/examples?nav=Examples&eid=adafruit_gfx_library_1_12_1%2Fexamples%2FGFXcanvas&slid=adafruit_gfx_library_1_12_1) (for Arduino Uno) results in a ton of "multiple definitions" errors because the "stolen" adafruit-files in DBSStore/EIS mess everything up.
    This error does not occur in the desktop IDE 1.X or 2.X, because with those IDEs you have to manually install the official adafruit IDEs and not install EIS. It only occurs in the cloud IDE where all libraries are automatically installed.

This is a major and hard to fix error for beginners. Which is especially bad because adafruit libraries are extremely popular for beginners. In comparison DBSStore/EIS has 0 stars. So in my opinion it would absolutely be beneficial to the arduino beginner community to fix the official adafruit libraries by removing DBSStore/EIS.

The library creator was made aware of this 8 months ago here DBSStore/EIS#1. And has not responded, they look totally inactive. 2 people on github have had the same issue. Plus at least one person on the official arduino discord. Plus multiple people in the forums (with 130 views) https://forum.arduino.cc/t/multiple-definition-error-in-cloud-editor-with-adafruit-gfx/1360122

Error when trying to compile the Adafruit GFXcanvas example https://app.arduino.cc/sketches/examples?nav=Examples&eid=adafruit_gfx_library_1_12_1%2Fexamples%2FGFXcanvas&slid=adafruit_gfx_library_1_12_1 for arduino uno in the cloud IDE:

[A TON of multiple definitions errors that I won't copy-paste here due to their length]
(.text+0x0): multiple definition of `Adafruit_SPITFT::readcommand8(unsigned char, unsigned char)'
/var/run/arduino/user-cache/sketches/F833544A7A32785F6538A49EC15A7241/libraries/Adafruit_GFX_Library/Adafruit_SPITFT.cpp.o (symbol from plugin):(.text+0x0): first defined here
/var/run/arduino/user-cache/sketches/F833544A7A32785F6538A49EC15A7241/libraries/EIS/Adafruit_SPITFT.cpp.o (symbol from plugin): In function `Adafruit_SPITFT::endWrite()':
(.text+0x0): multiple definition of `Adafruit_SPITFT::read16()'
/var/run/arduino/user-cache/sketches/F833544A7A32785F6538A49EC15A7241/libraries/Adafruit_GFX_Library/Adafruit_SPITFT.cpp.o (symbol from plugin):(.text+0x0): first defined here
collect2: error: ld returned 1 exit status
Multiple libraries were found for "Adafruit_I2CDevice.h"
  Used: /run/arduino/directories-data/internal/EIS_0.0.1_7b9a78c117637fbc
  Not used: /run/arduino/directories-data/internal/Adafruit_BusIO_1.17.1_db8a20223a2bc4d5
  Not used: /run/arduino/directories-data/internal/EIS_INTERBOT_1.0.0_4c1ce07692fbb2fd
  Not used: /run/arduino/directories-data/internal/VEGAIoT_BusIO_1.0.0_68606b9abaf94dc3
Multiple libraries were found for "Wire.h"
  Used: /run/arduino/directories-data/packages/arduino/hardware/avr/1.8.6/libraries/Wire
  Not used: /run/arduino/directories-data/internal/FlexWire_1.2.1_1fc5f1d1a14af0e7
Multiple libraries were found for "SPI.h"
  Used: /run/arduino/directories-data/packages/arduino/hardware/avr/1.8.6/libraries/SPI
  Not used: /run/arduino/directories-data/internal/EventEthernet_1.0.0_bd9dd894ef7641f8
Multiple libraries were found for "Adafruit_GFX.h"
  Used: /run/arduino/directories-data/internal/Adafruit_GFX_Library_1.12.1_0a7f9e1a08fbb518
  Not used: /run/arduino/directories-data/internal/DFRobot_RGBMatrix_1.0.1_07c8edece0610b8a
  Not used: /run/arduino/directories-data/internal/EIS_INTERBOT_1.0.0_4c1ce07692fbb2fd
  Not used: /run/arduino/directories-data/internal/Hanuman_1.4.0_9b5ae950e2a2ee63
  Not used: /run/arduino/directories-data/internal/EIS_0.0.1_7b9a78c117637fbc

This error log shows that the cloud IDE tried to use Adafruit_I2CDevice.h from DBSStore/EIS_0.0.1_7b9a78c117637fbc instead of the official Adafruit_BuisIO library. The same applies to multiple other adafruit libraries.

@github-actions github-actions bot added the topic: removal Remove library from the list label Jun 28, 2025
Copy link
Contributor

Hi @LinusHeu.
Your pull request has been detected as something other than a Library Manager submission.
A maintainer will need to review it before it can be merged.

If you intended to submit a library, please check the instructions and update your pull request if necessary:
https://github.com/arduino/library-registry/blob/main/README.md#instructions

@LinusHeu
Copy link
Author

LinusHeu commented Jun 29, 2025

Update: Other adafruit libraries and their examples work. Even though they use the same Adafruit_I2CDevice.h.

I think the underlying issue is that the arduino cloud editor chooses the wrong libraries when there multiple libraries with the same file names.

It could be related to this https://forum.arduino.cc/t/adafruit-neopixel-multiple-libraries-glitch-help/1211563/2

In this case I think this is happening:

  1. Arduino cloud tries to use the original Adafruit GFX library because the sketch includes <Adafruit_GFX.h>.
  2. Then it searches for Adafruit_I2CDevice.h. It finds this file in EIS. So it compiles the entire EIS library.
  3. But DBSStore didn't just copypaste Adafruit_I2CDevice.h and related files into EIS. They also copypasted Adafruit GFX.
  4. So now Adafruit GFX files are compiled twice: First from the original library. And second time from the copypasted files in EIS.
  5. => linker fails.

Copy link
Contributor

@per1234 per1234 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hello @LinusHeu. We only remove libraries at the request of the library maintainer, so I will decline your proposal.

I provided a detailed explanation of the cause and the available solutions over on the Arduino forum topic you referenced:

https://forum.arduino.cc/t/multiple-definition-error-in-cloud-editor-with-adafruit-gfx/1360122/10

If you have any questions or concerns, please comment over there and I'll provide further assistance.

Regards, Per

@per1234 per1234 closed this Jun 29, 2025
@per1234 per1234 added the conclusion: declined Will not be worked on label Jun 29, 2025
@LinusHeu
Copy link
Author

@per1234 understandable. Thank you!

@LinusHeu LinusHeu deleted the patch-1 branch June 29, 2025 18:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
conclusion: declined Will not be worked on topic: removal Remove library from the list
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants