One of tool we’re using requires msdia80.dll file. Unfortunately this DLL is available only inside the VS2005 installation / redistributable pack. When you execute dump_syms.exe without this file, you will receive following message:
"OrmDesigner2" can't be opened because it is from an unidentified developer.
To solve this error message it’s necessary to do following steps:
Register in Apple developer program and pay $99 per year
Download and install developer certificate
Sign whole application
1) Register on Developer.apple.com
You need to create registration here: https://developer.apple.com/. It’s necessary to fill info about contact person and company. After that, your registration will be reviewed by apple team and if everything will be OK, your registration will be approved.
Now you need to install this certificate to your developer machine. Simply double-click on certificate and let system to import it. You can check that certificate is imported in Go->Utilities->Keychain Access->login. Now search for “Developer ID Application: XXXX”
Note: In my case when I transfer certificate to several developer machines I need to migrate also other Apple certificates. Without that my certificate wasn’t a valid.
3) Sign your application
Now you need to sign your application including all plugins and frameworks inside app bundle. After you sing your app, you can’t do any changes in the bundle. So as first run your deploy as usual and as last step do app singing.
For ORM Designer sign script looks like this:
#go to deploy directory
codesign --force --verify --verbose --sign "Developer ID Application: Inventic s.r.o." ./OrmDesigner2.app
#sign all *.dylib files
find OrmDesigner2.app -name *.dylib | xargs -I $ codesign --force --verify --verbose --sign "Developer ID Application: Inventic s.r.o." $
#sign all Qt* frameworks
find OrmDesigner2.app -name Qt* -type f | xargs -I $ codesign --force --verify --verbose --sign "Developer ID Application: Inventic s.r.o." $
4) Test it!
As last step it’s necessary to test that sign process was successful. As first you can try following command line to validate it:
codesign -vvv -d OrmDesigner2.app
Format=bundle with Mach-O thin (x86_64)
CodeDirectory v=20100 size=174478 flags=0x0(none) hashes=8717+3 location=embedded
Hash type=sha1 size=20
Authority=Developer ID Application: Inventic s.r.o. (6BYV46LH6T)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Signed Time=6 Jun 2013 23:16:08
Sealed Resources rules=4 files=27
Internal requirements count=1 size=212
Now when you checked that App is correctly signed, it’s time to try it on clean computer where no security policy changes was made. Upload your app and execute it.
If you don’t see annoying screen “Can’t execute application from unidentified developer”, you win ;-).
We reached the point where we need some kind of CRM system. We have a lot of customers, oportunies and tasks we need to track and keep records. I tried several of them and read about much more. Here are summary of CRMs with short info about each.
sudo fdisk /dev/sdb
#press u (units to sectors)
#press n (create new partition)
#press p (primary partition)
#press 1 (first partition)
#press enter (default start at begin)
#press enter (default end at end)
#press L (list of formats)
#?? need tye 83, don't know how to enter 😉
#press W (write changes to hdd and quit)
#update kernel with changes we have made
sudo partproble /dev/sdb
sudo mkfs /dev/sdb1 -t ext4
#create directory mount point
sudo mkdir /home/dev/dev
sudo chmod 777 /home/dev/dev
sudo mount /dev/sdb1 /home/dev/dev -t ext4
#try to write something
#setup auto-mounting point
sudo nano /etc/fstab
/dev/sdb1 /home/dev/dev ext4 defaults 0 0
There is a several ways how you can deal with this problem. I think the easiest (and solution I choose) is compile application on the most oldest version of OS you want support. Here is the reason:
For dynamic linking, Linux (and most other UNIXes) support backward compatibility: an old binary continues to work on newer systems. But they don’t support forward compatibility (a binary built on a newer system will generally not run on an older one).
Here is a nice list how can be this issue solved (source here):
You could copy ld-2.14.so (the target of /lib/ld-linux symlink) to the target system, and invoke it explicitly: /path/to/ld-2.14.so –library-path /path/to/your/executable. This generally works, but can confuse an application that looks at argv, and breaks for applications that re-exec themselves.
You could build on an older system.
You could use appgcc.
You could set up a chroot environment matching the target system, and build inside that chroot.
You could build yourself a Linux-to-olderLinux crosscompiler
One more solution
You can also try following way, but I don’t test it
To add DBUS to Qt compilation, add following switch
./configure -opensource -dbus ....
If you get following error:
The QtDBus module cannot be enabled because libdbus-1 version 0.93 was not found.
Turn on verbose messaging (-v) to ./configure to see the final report.
If you believe this message is in error you may use the continue
switch (-continue) to ./configure to continue.
It’s necessary to install libsbus:
sudo apt-get install libdbus-1-3
Reading package lists... Done
Building dependency tree
Reading state information... Done
libdbus-1-3 is already the newest version.