Fritzing - Building & Compiling


#1

Following up on side discussion (re programming) in a previous unrelated post. I tried compiling Fritzing… Problems…

Machine: Mac (OSX Sierra 10.12.6)

I have Zero problems compiling and running my Apps coded in: C, C++, Java and Python using Qt, QTCreator, Eclipse and (dare I say it, Xcode).
All compile and run without problems.

I downloaded Fritzing and libgit2.

I compiled/Built libgit2 and set the paths for universal access.

Then, I followed up with this instruction:
-f “/path/to/fritzing-app/” -parts “/path/to/fritzing-parts/” -db “/path/to/fritzing-parts/parts.db”

Then, Build & Run but, NO Success

Attached images shows files locations and QT’s Error Msg at bottom…

Read several post on net to see others have same/similar issue.

It’s possible I’m confused over the instructions so, any guidance is much appreciated… Thanks


#2

I don’t see boost in the list, and it is a requirement if it isn’t already present in your system (which it may be). The official build docs (which aren’t quite complete for Windows and Linux) are here:

I have some extra docs of what worked for me on Linux (and I expect the Mac will be at least similar) here:

One thing that may be biting you is on Linux it is necessary to sym link the libgit2 library in order for the build to work before the install script (which packages the whole mess) is run. The parts library and the libgit2 directory need to be in the same directory as the fritzing-parts repo, boost needs to be in fritzing-app/src/lib (I think it may also find a system version, but I always install the latest in fritzing-app/src/lib . As well I assume you changed the “path/to/” to the real path to the associated directories? This also only needs to be run once to build the parts database, on the next run you delete it. It will in fact start build the parts db and then exit Fritzing when run, I think it is the same as doing rebuild the parts db from within Fritzing. The documentation for building is rather sparse and somewhat dated but does work at least on Windows and Linux.

Peter


#3

Yes, Boost is loaded. Perhaps it’s a location issue? Attached…

I’ll review the remainder of your post and follow-up a bit later.

Thank you.


#4

If it didn’t complain in the initial Qmake dialog in Qtcreator (assuming of course you are using Qt Creator!) that it couldn’t find boost, then all is likely well. I think the issue with libgit2 doesn’t show up until runtime when you get the “the swap mechanism isn’t working” message. Sym linking libgit2 fixes that at least on Linux.

Peter


#5

Never got a ‘Boost’ complaint.

The error msg is seen at bottom of previous post - cut and pasted below. It’s about the Path, which I’m pretty sure is set correctly.

Perhaps someone (esp a Mac user who successfully got it running) can detail it more clearly for me


#6

Here is a copy of my top level directory on Ubuntu 18.04 which builds (or at least used to :slight_smile: ).

boost_1_66_0.tar.gz
build-phoenix-Desktop_Qt_5_11_2_GCC_64bit-Debug
Desktop
Documents
Downloads
EL84-Supply-80V.fzz
examples.desktop
fritzing-0.9.3b.linux.AMD64
fritzing-0.9.3b.linux.AMD64.tar
fritzing-app
fritzing-app_head
fritzing-app_head_with_boost
fritzing-parts
fritzing-parts_latest
libgit2
libgit2-0.27.4
libgit2-0.27.4.tar.gz

Note that libgit2 needs to be in a directory called libgit2, Qt won’t find the libgit2-0.27.4 build directory, actually when I looked libgit2 is a sym link to libgit2-0.27.4 so that works as well. To some extent I’m glad you are having problems too, but on the other hand I think this is part of why there is so little development people try and give up (and thus the detailed instructions). Once you do manage to get it to compile, it will last for one parts database update and then assert on a series of 8 parts (I’m working on fixing that).

Peter


#7

Thank you.

I actually did change the dir name in several different try’s. Also relocated several files but, no luck.

But, as you rightly pointed out - dealing with this stuff can quickly lead to the ‘End’ of enthusiasm for this. Especially as, other than perhaps a few tweaks and inclusions of some useful ideas, my Fritzing install works well (as long as I don’t update the Parts. And, I can live with existing parts db).

Of course, the geek in me would like to succeed but I have many other interests that are more enjoyable… and competing for time…


#8

I routinely lose interest in this whole maker/electronics thing, because I’m not a EE, so I give up and watch TV. But a few days latter while watching vids - passive watching sux -, I think of something and try again. Maybe something will come to you. :slightly_smiling_face:


#9

Spent a few more minutes with it - Resolved the file location issue (temporarily) but another important issue popped-up, re “Boost”… Attached…

Not likely I’ll spend more time on it but, never know as I agree with “Old_Grey”…

A complete new start at a simplified cross-platform Fritzing-Like App without the tentacles of things added to fix things that could/should have been done/planned upfront… You know what I mean - the plague of Open-Source.

thanks,


#10

As I recall that is a generic warning. I think I get it with boost 1.66 installed too. The next one may be more important, and as it says I always copy the current boost in to src/lib/boost and have never had problems. You don’t even have to build boost (although I usually do) as there are precompiled binaries on the boost site.

As you can see in the discussion on github, that is occurring. El-j (the parts maintainer) has created a new project which uses java script on cloud servers with the intent of replacing fritzing. Since he was one of the original developers it has a fair chance of going.

Peter


#11

Good news about the developing. However, for me and my Old-School, None-Of-Anybody’s-Business, along with my unwillingness to have anything to do with the Cloud, it’s not likely I’ll use it (if ever finished). I don’t do social-media either… participating in a couple of forums is my limit…

I prefer - will use only Stand-Alone app’s. I block outgoing/incoming data on my machines (via customizing LittleSnitch rules and, turning Off the wifi/router if necessary).

I may poke at it but, I can think of more exciting and useful code to work on. Been poking around with making a PCB app that will produce a correctly formatted SVG/XML file for Fritzing projects (to save me the repeated work of tweaking XML in Inkscape. Snapshot of progress on that attached… it’s not a priority but simply a time-filler on rainy-day in Oregon :laughing:

Yes, all but last item in above screenshot are messages so, perhaps only a bit more ‘work’ is needed to get through this hiccup. That is, ‘work and coffee’.

thanks, again


#12

If you like python you might have a look at the parts check script:

It is a python script that uses lxml to parse the xml and check it against a couple of state machines. It is possible (although I haven’t actually done it yet) to modify and rearrange the xml tree via python. Lxml makes that reasonably easy. If I get development started again I intend on using it to prototype parts editor changes / improvements. I have a bunch of improvements in the pipe (I originally was going to remove the tspans via the script, but it became more useful to do it manually because other things needed fixing in the 8 parts as well). I too am not a cloud person, and I wonder if javascript is going to have performance problems, but if they can do it more the power to them.

Peter


#13

Thanks, Peter.

I peeked into your parts checking code/etc… Makes my head spin. Yes, I understand the code and can program python but I stay away from it. I don’t like it.

From the various inputs & guidance points from you/others, the fritzing parts I make are good.

I much, much, prefer Java for GUI app’s, and combined Java and C++ for GUI/electronics app’s. Yes, can embed or call C++ from java.

In fact, one of my Android app’s has over 150k downloads - it’s been free for a couple of years now but, early-on it was $0.99 and I made well over $10k from it. Can’t do that with Python. And, cocoa/NS_crap) can join Mr.Job’s in his grave, as far a I’m concerned….

Java makes it simple to use db (such as sqlite…). And, can fairly easily turn the Java part into an Applet.

Of course, as you know, 90% programming in various languages is simple - it’s about the learning ‘Syntax’. The coding logic generally remains the same across languages…

Anyway, I appreciate your help/input. Right now, I setup an indoor Hydroponic garden and need to do some farming…


#14

I must admit I have a probably unfair bias against java, because the PeopleSoft application had their production web server coded in java which tended to have performance issues (usually with garbage collection I think) which got blamed on the network (which was one of my responsibilities). It left a bad taste so I’ve avoided it. Good luck with your garden!

Peter