
(In the above screenshot showing a successful conversion I won't show the Home page because I don't want to show my orders, but feel free to use my referral link above. 😉)
Update 2026-08-24: JLCPCB has announced that their $2 for 5 signature offer and cheap shipping rates are now only available from the JLCONE desktop app, so it's timely that I found a way to install it on my RPM system. When I looked recently cheap shipping wasn't available on the web page any more.
JLCPCB promises coupons and discounts if you submit orders via the desktop app instead of their webpage. When I went to look for the download, I saw that Windows, Mac (two flavours), and Linux are supported, but the Linux app is a DEB package. I have a RPM based system. I asked JLC if they were planning a RPM package, or perhaps a Flatpak or Appimage for wider coverage. They replied: We're thinking about it. In the meantime I decided to take things into my own hands.
I turned to alien, a converter between Linux package formats which I have used in the past.
I did:
# alien -r -k -c jlcone-1.0.67.deb
-r means to RPM, -k means keep version, -c means also convert {pre,post}{install,rm} shell scripts. You should first check that the scripts are safe by doing dpkg -e jlcone-1.0.67.deb
After some churning, a jlcone-1.0.67-1.x86_64.rpm was generated. When you install this you have to accept that it has no signing key. Fortunately there were no additional dependencies for the package.
Most files were installed in /opt/JLCONE. Here is the list of files:
# rpm -ql jlcone /opt/JLCONE /opt/JLCONE/LICENSE.electron.txt /opt/JLCONE/LICENSES.chromium.html /opt/JLCONE/chrome-sandbox /opt/JLCONE/chrome_100_percent.pak /opt/JLCONE/chrome_200_percent.pak /opt/JLCONE/chrome_crashpad_handler /opt/JLCONE/icudtl.dat /opt/JLCONE/jlcone /opt/JLCONE/libEGL.so /opt/JLCONE/libGLESv2.so /opt/JLCONE/libffmpeg.so /opt/JLCONE/libvk_swiftshader.so /opt/JLCONE/libvulkan.so.1 /opt/JLCONE/locales /opt/JLCONE/locales/af.pak /opt/JLCONE/locales/am.pak /opt/JLCONE/locales/ar.pak /opt/JLCONE/locales/bg.pak /opt/JLCONE/locales/bn.pak /opt/JLCONE/locales/ca.pak /opt/JLCONE/locales/cs.pak /opt/JLCONE/locales/da.pak /opt/JLCONE/locales/de.pak /opt/JLCONE/locales/el.pak /opt/JLCONE/locales/en-GB.pak /opt/JLCONE/locales/en-US.pak /opt/JLCONE/locales/es-419.pak /opt/JLCONE/locales/es.pak /opt/JLCONE/locales/et.pak /opt/JLCONE/locales/fa.pak /opt/JLCONE/locales/fi.pak /opt/JLCONE/locales/fil.pak /opt/JLCONE/locales/fr.pak /opt/JLCONE/locales/gu.pak /opt/JLCONE/locales/he.pak /opt/JLCONE/locales/hi.pak /opt/JLCONE/locales/hr.pak /opt/JLCONE/locales/hu.pak /opt/JLCONE/locales/id.pak /opt/JLCONE/locales/it.pak /opt/JLCONE/locales/ja.pak /opt/JLCONE/locales/kn.pak /opt/JLCONE/locales/ko.pak /opt/JLCONE/locales/lt.pak /opt/JLCONE/locales/lv.pak /opt/JLCONE/locales/ml.pak /opt/JLCONE/locales/mr.pak /opt/JLCONE/locales/ms.pak /opt/JLCONE/locales/nb.pak /opt/JLCONE/locales/nl.pak /opt/JLCONE/locales/pl.pak /opt/JLCONE/locales/pt-BR.pak /opt/JLCONE/locales/pt-PT.pak /opt/JLCONE/locales/ro.pak /opt/JLCONE/locales/ru.pak /opt/JLCONE/locales/sk.pak /opt/JLCONE/locales/sl.pak /opt/JLCONE/locales/sr.pak /opt/JLCONE/locales/sv.pak /opt/JLCONE/locales/sw.pak /opt/JLCONE/locales/ta.pak /opt/JLCONE/locales/te.pak /opt/JLCONE/locales/th.pak /opt/JLCONE/locales/tr.pak /opt/JLCONE/locales/uk.pak /opt/JLCONE/locales/ur.pak /opt/JLCONE/locales/vi.pak /opt/JLCONE/locales/zh-CN.pak /opt/JLCONE/locales/zh-TW.pak /opt/JLCONE/resources /opt/JLCONE/resources.pak /opt/JLCONE/resources/app-update.yml /opt/JLCONE/resources/app.asar /opt/JLCONE/resources/apparmor-profile /opt/JLCONE/resources/default_app.asar /opt/JLCONE/resources/package-type /opt/JLCONE/snapshot_blob.bin /opt/JLCONE/v8_context_snapshot.bin /opt/JLCONE/version /opt/JLCONE/vk_swiftshader_icd.json /usr/share/applications /usr/share/applications/jlcone.desktop /usr/share/doc/jlcone /usr/share/doc/jlcone/changelog.gz /usr/share/icons/hicolor /usr/share/icons/hicolor/256x256 /usr/share/icons/hicolor/256x256/apps /usr/share/icons/hicolor/256x256/apps/jlcone.png
In addition a symlink is created from /usr/bin/jlcone to /opt/JLCONE/jlcone.
It seems that the desktop app is a customised Chromium browser. I was able to fire up jlcone and get an app window. Oh, if you do this from the CLI there will be info messages to the terminal. If from a GUI launcher, then not. It will remember your login between sessions. I also got the coupons promised.
Ken Yap
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.