With the Librem 5 coming, we will soon have the need to be able to sync data between Librem laptops and phones without use of an online sync service.
Are there any efforts at creating such a solution? If not, I would ask that you do so. I have yet to find a fully encrypted online sync service that is not also proprietary, and therefore won’t be using one.
– Move contacts between the two: sync all, move only certain groups, or overwrite everything – being able to set the phone or the laptop as the master.
– same for calendar, notes, tasks, music, videos, podcasts, etc.
I believe Nextcloud, with whom Purism has partnered, offers much of this functionality, but not all. I don’t think there is a way to set a device as a master device. Nextcloud is open source, and you can host it yourself.
I know of Nextcloud, but I’m not interested in self-hosting, as I am not an expert in these matters. I’ve been told and read numerous times that you put yourself at more risk by doing things like self-hosting without the expertise to ensure it is actually secure.
That aside, I know there is not currently a way to do what I’m asking for, which is why I’m asking for it. Purism is a company that put out their own laptop hardware, will be releasing their own phone, and has their own distro to go with it all, with their own repo to go with the distro. It is fair to ask if they plan on developing an application to facilitate data transfer along these lines, as it is completely in keeping with the spirit of their stated mission. If they are not currently planning such a feature, it also is fair to ask that they do put effort into it, as it is in keeping with the mission.
Given time and the right developments, Purism has the potential to take Apple on in terms of “quality hardware and software that just works”. They are not there yet, but they have done a wonderful job at making significant progress in this direction. This particular feature I am asking about would be a massive step in that direction for the average person.
DecSync CC synchronizes contacts and calendars using DecSync. To start synchronizing, all you have to do is synchronize the directory “DecSync” located in the primary external storage, using for example Syncthing.
DecSync works along the lines of Syncthing, I think. Properly inlemented (easy guided setup, secure long-term), I could be down with.
I am thinking something more along the lines of an old school deliberate plug up and sync, like an old iPod or iPhone did — pre-iCloud or Mobile Me. Like the plug in sync portion of iTunes. All done over the wire, no network of any sort needed.
I anticipate this will be doable with minimal effort, however as the demand for this is likely quite small it will almost certainly be command line and not an app with a nice GUI, at least initially.
The convenience of network sync is generally desirable for the lack of wires required; which does contribute to why all of the major players have moved away from cabled sync to cloud sync.
I like your idea, I just think that from a resource standpoint it makes the most sense to focus on what the majority of people want until there is a nice solid foundation. In this case I anticipate someone else in the community, who also desires this functionality, will write a GUI for themselves and, hopefully, release it for others, such as yourself, before purism gets to it; not from a lack of caring on purism’s part, simply the limit of finite resources.
Ah, the era of Palm Pilots, with convenience and privacy that hasn’t been matched since I still miss those days.
I’d say you can get something similar today, but it doesn’t quite work out-of-the-box. You need your phone and your laptop to be on the same network, so they can reach each other. This could mean you need to poke a hole in your firewall(s).
You also need to set up a CalDAV server on the laptop. Radicale is pretty easy to get running, and it provides a local web interface for administration. (It is also very … pragmatic… in its view of CalDAV, so may not work with all clients.)
Once you have the server running, connect your calendars and address books. That should be it.
If it would be ok for you to use a server that you don’t need to trust, have a look at EteSync. It’s an open-source, end-to-end encrypted, and tamper-proof solution. The data never leaves you device unencrypted, so the server doesn’t get much information except your ip address and access patterns.
EteSync provides an Android app and a web client, that I believe are stable and used by a lot of people already. The web client uses signed web pages to prove it is the official version. There’s also a DAV adapter for desktop/laptop use, which is still pre-release I think.
You can self host the server (I realize you don’t want to do that) or use the one provided by EteSync. The subscription costs $2/mo (or $4 if you want to support the project a little extra).
Thanks for that, I’ll check it out! That seems like it might be able to accomplish something near enough to what I’m looking for.
I’m also going to being tinkering with scripting and programming to see if I can figure a way to get exactly what I’m looking for (all over the cable, no network). I dabbled with some programming in my earlier years and hope that is enough of a foundation to enable me to figure it out. Even if its a CLI app, if it works, it’ll make me happy.
Scripting an ssh file transfer over ttyusb shouldn’t be too terribly difficult. I’m fairly certain that is already doable on the dev board. This is essentially the non-gui option I was alluding to earlier and may put you down the path toward a quick solution.
I’m sorry, I hate to be an atavistic nitpicker here, but… I never did a pre-cloud sync (PalmOS or early iOS) that required more than one wire (singular). It was not an inconvenient process. I have had much less convenience overall in my use of cloud-based sync (usually delay/authentication problems) than I ever had with wired sync.
Make no mistake, wired sync was not “moved away from” for our convenience, it was because the major players want to sell us cloud services and mine our data.
I want to add my vote here for a wired sync functionality between Librem laptops and phone. While I guess I am comfortable enough with Nextcloud, i would much rather have a wired option.
I have completed some preliminary technical research, and it seems that simply plugging USB to USB on two separate systems is a bad idea.
The short version is that USB 2.0 requires special hardware and know-how, and USB 3.0 requires only the fancy know-how to prevent directly connecting two systems via USB from frying the USB controllers on both systems. For our application, this could be made possible, but it would require Purism’s involvement or that of some people working very closely with them.
If I am wrong about this, please let me know. USB sync is still the most desirable for me. This seems to be the case for some others as well based off of some replies on this thread.
Worry not! Additional research shows that SSH in some form may be an option. This will require a network sync as far as I can tell so far, which I do not like – but if it is all local, I can live with it.
What I have now begun work on is a script that uses SSHFS to mount the phone to the laptop (from my T430 to L15 for testing purposes). Once connected, it will compare/contrast the PIM databases from both systems and offer the sync options. To start, it will probobly be basic, offering only to overwrite the older databases with the more recently modified ones. I have some learning to do, but hope to bring per-record compare/contrast and syncing capabilities. Once proper PIM syncing is in place, I hope to introduce file syncing: the main folders in the home folder: Documents, Pictures, etc.
This will be compatible only with GNOME PIM applications to start, as this is the preferred DE for Purism. KDE stores it’s PIM data in a different location and format.
I’ll keep y’all updated as things move along. I’m a full-time dad, husband, and employee, so it will take some time – but I am confident I will be able to get something working!
The dev kits already support exposing the USB connection as an Ethernet network, so any syncing over the network can be done with the cable, using the natural networky way. I, for example, have set up a shared connection and SSH to the dev kit exclusively when not working below the kernel. I will try to keep that property on the phone, but that could conflict with stuff like MTP or ADB.
When it comes to our choice of NextCloud, the idea is not necessarily that you personally host it. Of course, that’s a possibility, but the more reasonable expectation is that someone you trust and who has the expertise will host it for a bunch of people including you. I say reasonable, because not everyone should be a sysadmin to use our phone.
When it comes to the particular way the syncing should be done, I invite you to submit your request and solutions to the bug tracker.