BrickSync is now open source!

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

  • 30 Comments sorted by Votes Date Added
  • HE’S BACK!!!!!
    Thanks, hope you had a good vacation
  • Presumably that means not supported by you now?
    Did you by chance add color “coral”?
  • What’s with the “we are running a bricksync version from the future” ?
  • Awesome! I will definitely try to add useful things to this that I have been missing. Thank you so much!
  • Thanks for sharing your hard work!
  • I have an OSX box but would need some step by step instructions to make the OSX build, can anyone help. I'll send to @Stragus to post once it's compiled.

    Tyson
  • @Stragus I would like to thank you for all your work on this software.
  • @leopard37 I run OS X also and will set up an Xcode project when I get time to look into it so it will be easy to build and debug.
  • Thanks Alexis! Good that you are back!
    One question though...WIN32 here...How can I proceed?
  • edited October 2019 Vote Up0Vote Down
    @BrickItOn I see you are still on Vista :), I have uploaded a package for win32. (I also updated the source package to have a build-win32 subdirectory and a compile-win32.bat script, for those building from source).

    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?...
  • @bricksinbins If I can do anything let me know!
  • @Stragus :Thanks! (win 7 proff. is what my pc is telling me BTW :)).
  • @Stragus Well there are legitimate technical reasons as to why Apple moved away from OpenSSL also aside from their other usual reasons.
    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.
  • @Stragus is back! Welcome back!

    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?
  • @Graham @brickrepository Let me try to patch in that Coral color... (Ideally, the software should be able to grab the list of colors from the BrickOwl catalog, instead of using hardcoded translation tables) BL also broke the evalinv/evalset commands some time ago.

    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.
  • C is at least portable to pretty much any platform in existence.
  • @Stragus Thanks!

    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!
  • @Graham Well, I'll make sure BrickSync keeps working, though it should keep going smoothly as long as both BL and BO don't break their APIs.

    Ideally, it would be great to receive source code patches and/or have an active seller support BrickSync...
  • @minifigforlife seems to want to take over but at a high cost...
  • @leopard37 Unfortunately I am not a C programmer, so cannot take over the project. It has been on my mind to write a sync program of my own for some time, and announcing this recently was a decision brought on by a number of factors, including other members concerns of what was happening with BrickSync. I welcome @Stragus announcement to make his software open source and the members who want to take this project on, but I am still going to continue with my own project, and charge for it once it is published. As for it being a high cost, I guess I will find out, if I get 0 customers.
  • @Stragus when I mentioned future-proof I was also thinking of the amount of developers out there who can support it. I'm pretty sure the number of people with experience in C is trending down.
    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.
  • @brickrepository A quick note... If you write synchronization software in ASP.NET, I assume there would be some central server doing the synchronization for all users, with people interacting with it through a browser, instead of each user running the software on their own machine? Just be careful with that: both BrickOwl and BL temporarily ban IP addresses when it's hammering them with API requests (BrickSync needed throttling, daily limits and command queue prioritizing).

    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. ;)
  • @Stragus Thank your for the new version and sharing its source with us!
    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 ...
  • @DeichBricks Woah, sorry, I have no idea what happened in the last upload. Download it again, should be 3414899 bytes with md5sum of 914da7e650ae686bbf0eecf35d34f78c.

    To compile on Linux, just cd to the directory and run ./compile
  • @minifigforlife

    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
  • @Graham. I totally understand, and that is what I am working toward. I will create a new forum post outlining my intentions for the software on a separate thread.
  • @Stragus I meant just writing a console application. ASP.NET is not just for websites...

    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
Sign In or Register to comment.