The BrickOwl/BrickLink synchronization software, BrickSync, is now open source!
http://www.bricksync.net/ Restrictions related to registration have been removed from the 1.7.1 builds (sorry, can't build OSX binaries, I don't have access to an OSX box...).
Direct link to the source code:
http://www.bricksync.net/bricksync-src.tar.gz It's being released under a very permissible attribution license, more precisely:
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
* arising from the use of this software.
*
* Permission is granted to anyone to use this software for any purpose,
* including commercial applications, and to alter it and redistribute it
* freely, subject to the following restrictions:
*
* 1. The origin of this software must not be misrepresented; you must not
* claim that you wrote the original software. If you use this software
* in a product, an acknowledgment in the product documentation would be
* appreciated but is not required.
* 2. Altered source versions must be plainly marked as such, and must not be
* misrepresented as being the original software.
* 3. This notice may not be removed or altered from any source distribution.
The source code is written in C with GNUisms, therefore it will compile with GCC, mingw64, Clang or the Intel Compiler. The only dependency is OpenSSL for socket encryption. The source code includes a build-win64 subdirectory with headers and DLLs for OpenSSL on Windows; the code therefore will build with a plain freshly installed mingw64 (select x86-64 as target when installing mingw64, not i686).
Direct link to the mingw64 installer (mingw being the famous GCC compiler ported to Windows):
https://sourceforge.net/projects/mingw-w64/files/Toolchains targetting Win32/Personal Builds/mingw-builds/installer/mingw-w64-install.exe/download You'll have to edit the compile-win64.bat script to set the PATH environment variable to the /bin subdirectory of wherever you installed mingw64.
Happy building, and coding
Comments
Thanks, hope you had a good vacation
Did you by chance add color “coral”?
Tyson
One question though...WIN32 here...How can I proceed?
Regarding OSX, I remember the "compile" script needed some minor tweaks.
I remember having to add a -mmacosx-version-min=10.6 argument to the gcc command, otherwise clang-apple would target the locally installed OSX version, and it would crash by "illegal instruction" on earlier versions of OSX.
I also remember that clang-apple was whining that I was trying to link against OpenSSL. Apparently, on OSX, the universal standard socket encryption library, OpenSSL, is "deprecated" and that I should instead be using a totally different Apple-only library with an ObjC API (no kidding, Apple doesn't want us to write cross-platform software). It needed some other weird argument to stop complaining and do as told.
Perhaps someone on OSX with a bit of coding experience could help figure out these build tweaks?...
In any case, I was able to set up an Xcode project and link with static openssl libs installed via Homebrew. It runs on my machine but have yet to test it on the work Mac I use, which is a few OS versions behind.
And with big news as well. Making BrickSync open-source had been mentioned long ago, so it's good to see it happening.
@Stragus : the fact that you're both releasing the source code *and* removing the registration restrictions suggests that you'll be staying away from any necessary updated going forward (like adding new colors, etc...). Is this the case?
It would be nice to see a more future-proof version of BrickSync. Something like releasing it on GitHub so that it could be easily accessible and worked on by the community. I don't know if I'd have the time to take on it, but it's something I'd be interested in contributing to.
And on a related note, I'd be interested in porting it to ASP.NET, a language I have way more experience with than C, and again, probably a bit more future-proof.
Thoughts?
I would of course welcome patches, especially since it's currently a bit harder for me to test changes. A GitHub repository would be appropriate.
I think I would rather trust C to still exist in 10-20 years than ASP.NET Though of course C is totally overkill for something like BrickSync... and it was also overkill not to use libraries (libcurl, json, etc.). I guess I just enjoy writing stuff from scratch.
Being as I am clueless to current coding protocols. Many years ago I was quite good with FORTRAN (mostly) and COBOL 😎
So will anyone be supporting Bricksync or are we on our own?
In your absence I attempted looking at bricksync in Xcode and got absolutely nowhere!
Ideally, it would be great to receive source code patches and/or have an active seller support BrickSync...
Also, now that you mention it, using libraries instead of writing everything from scratch would also improve maintainability by a lot.
And I mentioned ASP.NET because it's what I know. And ASP.NET Core runs on Windows, macOS, and Linux, so everyone would still be able to run it as they do now.
And sure, a higher level language and/or using libraries would have massively cut down the count of lines of code... I just really enjoy writing stuff from scratch, even 3000 lines of assembly for 1024 bits arithmetic (bn1024.c) for home-made asymmetric encryption.
Could you please check the integrity of the bricksync-src.tar.gz? I getting errors from tar, 7zip and winrar when expanding it ("unexpected EOF").
Normally I would just use the executable file but I guess I have to compile it myself because my Ubuntu 16.04LTS doesn't supply glib 2.27 ...
To compile on Linux, just cd to the directory and run ./compile
Whilst I truly appreciate what @Stragus has provided us, I feel it would be a little awkward bugging him for support whilst not paying for the product. So...
I for one would be interested in what you come up with. Ideally I would like an app with a GUI, that does more than just sync. BrickStock is so outdated now!
A major plus would be the ability to sync inventory, but to select what goes across platforms, especially pricing. BO and BL prices are diverging more as time goes on. Being able to use price data from either and/or both source would be handy. Also the ability to select what market(s) prices are based on. Then also the averaging could be improved.
And a lot more too!
Cheers Graham
Last time I did anything in assembly was in college, and I never felt the urge to do it again. I'm impressed, and also horrified :P