Sep. 15, 2009
UPDATE 2009-10-22: Truecrypt 6.3 has been released, no need for this anymore
UPDATE 2009-09-18-2: Removed ref. to Fink as it requires to be built from source on Snow Leopard
UPDATE 2009-09-18: Added a missing requirement: pkg-config. See “installing pkg-config”
Unfortunately licensing issues prevent me from publishing my pre-compiled versions of TrueCrypt. So the next best thing I can do until there’s a new version of TrueCrypt that supports Snow Leopard, is to publish a “simple” do it your self guide.
In order to compile TrueCrypt for Mac OS X Snow Leopard you need the following:
- XCode (it’s under the Optional folder on the Snow Leopard Install DVD)
- macFUSE
- TrueCrypt and wxWidgets source code
- Header files from the RSA Security Inc. PKCS #11 Cryptographic Token Interface (Cryptoki) 2.20.
- pkg-config
- A patch that modifies the source code so it compiles under Snow Leopard.
Installing XCode
Install XCode from the Snow Leopard installation DVD. This should be pretty straight forward and hopefully does not need any further explanation.
Installing macFUSE
Download and install macFUSE from here: http://code.google.com/p/macfuse
Installing pkg-config
pkg-config can be installed either through MacPorts or through Fink. The difference is that MacPorts requires you to compile the source and Fink installs the binary version. I personally prefer Fink as it uses the debian package installer. Below you will find instructions for installing either through MacPorts. OR Fink. Don’t do both!
Installing pkg-config through Fink
- Get and install Fink 0.9 from here: http://www.finkproject.org/download/index.php?phpLang=en
- Install pkgconfig by issuing the following command:
sudo apt-get update && sudo apt-get install pkgconfig
Installing pkg-config through MacPorts
- Get and install MacPorts from here: http://www.macports.org/install.php
- Install pkgconfig by issuing the following command:
sudo port install pkgconfig
- Restart the Terminal application
Getting the TrueCrypt and wxWidgets source code
Download the TrueCrypt source code (preferably the tar.gz version) from here: http://www.truecrypt.org/downloads2
Open up a new Terminal window and create a new directory from where you will build TrueCrypt eg. $HOME/src:
mkdir $HOME/src
Uncompress the downloaded file into the new directory:
cd $HOME/src; tar xvzf $HOME/Downloads/TrueCrypt\ 6.2a\ Source.tar.gz
TrueCrypt uses the wxWidgets cross platform GUI library and therefore needs it to compile. Get it here:
http://prdownloads.sourceforge.net/wxwindows/wxMac-2.8.10.tar.gz
Uncompress the wxMac-2.8.10.tar.gz file into the $HOME/src directory using the following command:
cd $HOME/src; tar xvzf $HOME/Downloads/wxMac-2.8.10.tar.gz
You should now have two directories in the $HOME/src directory truecrypt-6.2a-source and wxMac-2.8.10. You can verify this by running the following command:
ls $HOME/src
In order to compile TrueCrypt for Snow Leopard the source code has to be patched slightly. I have prepared a patch file that can be applied to the code automatically using the patch utility. Download the patch from here: http://patrik.cqure.net/files/truecrypt-snow-leopard.patch
Apply the patch by running the following command:
cd $HOME/src; patch -p0 < $HOME/Downloads/truecrypt-snow-leopard.patch
You should see the following output:
patching file truecrypt-6.2a-source/Main/FatalErrorHandler.cpp
patching file truecrypt-6.2a-source/Main/StringFormatter.h
patching file truecrypt-6.2a-source/Makefile
Hunk #1 succeeded at 145 with fuzz 2.
TrueCrypt also uses a number of header files from RSA Security Inc. PKCS #11 Cryptographic Token Interface (Cryptoki) 2.20. These have to be downloaded manually from here: ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-20. The files needed are pkcs11.h, pkcs11f.h and pkcs11t.h. They need to go into the directory $HOME/src/pkcs11. If your lazy you can run the following, which does this for you:
mkdir $HOME/src/pkcs11; cd $HOME/src/pkcs11; \
for f in pkcs11.h pkcs11f.h pkcs11t.h; do \
curl --no-epsv --ftp-pasv "ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-20/${f}" > ${f}; \
done
Ok, so now we are all set with the source code and can begin compiling.
Compiling TrueCrypt
First of all we need to point out where our RSA Security pkcs stuff is located. You do this by issuing the following command in the Terminal:
export PKCS11_INC=$HOME/src/pkcs11
Once this is done we can start to compile the wxWidgets by issuing the following command:
cd $HOME/src/truecrypt-6.2a-source; make WX_ROOT=$HOME/src/wxMac-2.8.10 wxbuild
Compilation will take time and at times look as if it has stopped. Be patient and disregard any WARNINGS or error messages that you may see (there may be quite a few with different information!) If all went well you should now have a directory called $HOME/src/truecrypt-6.2a-source/wxrelease with 355 items in it. You can verify this by issuing the following command:
ls $HOME/src/truecrypt-6.2a-source/wxrelease | wc -l
With the wxWidgets compiled we can now start compiling TrueCrypt by issuing the following command:
cd $HOME/src/truecrypt-6.2a-source; make WXSTATIC=1
Again, compiling TrueCrypt will take some time but it should not return any errors. If all goes well, which it should if you have followed the guide properly, you should end up with a TrueCrypt.app folder under the Main directory. You can test whether the application works or not by running the following command:
open $HOME/src/truecrypt-6.2a-source/Main/TrueCrypt.app/
If it starts, you’re all set and simply need to copy or move the application into /Applications as usual. From the Terminal you can do this by issuing the following command:
cp -R $HOME/src/truecrypt-6.2a-source/Main/TrueCrypt.app /Applications
Good luck!
33 Responses to “Compiling TrueCrypt for Snow Leopard”
When i try to patch, I get the error:
“[14] 4380
-bash: lt: command not found”
is that an l or a 1?
By Quyen on Sep 17, 2009
sorry Quyen, there was a typo. I have fixed it now check out the correct patch command in the article.
By Patrik on Sep 17, 2009
I posted this on the True Crypt forum.
http://forums.truecrypt.org/viewforum.php?f=12
The entire post was removed.
True Crypt dev team does not care about us.
I would like to know if any n00bs got this to work.
I am not sure if I want to try this yet.
By Slum Dog on Sep 17, 2009
Hi. I followed all your steps but whenever I run I get the same error:
diskimages-helper(31550,0×100604000) malloc: *** error for object 0x10011bc00: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug hdiutil: attach failed – No child processes
Any idea?
By Raisen on Sep 17, 2009
Raisen, when do you get that error? Immediately after start or when you try to create a new volume? What version of MacFUSE are you running? Does the /var/log/system.log provide any additional insight to the problem?
By Patrik on Sep 17, 2009
hello,
compiling of wxwidgets finished.
while compiling truecrypt i get the following (and some more) errors:
….
FuseService.cpp:317: error: ‘fuse_get_context’ was not declared in this scope
FuseService.cpp: In member function ‘virtual void TrueCrypt::FuseService::ExecFunctor::operator()(int, char**)’:
FuseService.cpp:540: error: ‘fuse_operations’ does not name a type
FuseService.cpp:542: error: ‘fuse_service_oper’ was not declared in this scope
FuseService.cpp:582: error: ‘fuse_main’ was not declared in this scope
lipo: can’t figure out the architecture type of: /var/folders/yI/yIQ23MMXZA1sO++++TI/-Tmp-//ccUCF79l.out
make[1]: *** [FuseService.o] Error 1
make: *** [all] Error 2
By stone on Sep 17, 2009
Hey Patrik,
I tried it out as well but have a different problem:
Compiling FuseService.cpp
FuseService.cpp:12:18: error: fuse.h: No such file or directory
FuseService.cpp: In function ‘int TrueCrypt::fuse_service_getattr(const char*, TrueCrypt::stat*)’:
FuseService.cpp:98: error: invalid application of ‘sizeof’ to incomplete type ‘TrueCrypt::stat’
FuseService.cpp:100: error: invalid use of incomplete type ‘struct TrueCrypt::stat’
ETC, ETC
This happens at the MAKE step. I am running MacFuse 2.0.3,2. Any ideas? I would love to get this working.
Cheers for all your work!
By Wilson on Sep 18, 2009
For all of you having trouble compiling, please note that the article is updated! I had missed the pkgconfig requirement! Sorry for that.
By Patrik on Sep 18, 2009
Many Thanks Patrik!
Just compiled it successfully and created a container
ps.: I used macports.
best regards
jo
By stone on Sep 18, 2009
I am pleased to here it worked out at last!
By Patrik on Sep 18, 2009
Hi Patrik, thanks a lot for your guide!
. BTW I got the pkgconfig 0.23 sources from http://pkgconfig.freedesktop.org/releases/ and compiled it myself without problems.
I just did everything the way you described and all went smooth. Just the bunch of warnings while compiling wxWidgets scared me a little
Got rid of my last show-stopper for upgrading to SL!
Cheers,
Ten
By Ten on Sep 18, 2009
Thanks for the revisions. It works great.
couple things:
1)’cd $HOME/src; tar xvzf /Users/patrik/Downloads/wxMac-2.8.10.tar.gz’ maybe should be changed to ‘cd $HOME/src; tar xvzf $HOME/Downloads/wxMac-2.8.10.tar.gz’
2) I think maybe rebooting after installing MacPorts is a good idea
That did it for me
Just what I needed.
Cheers
By Wilson on Sep 18, 2009
Thanks for your input Wilson. I have updated the post accordingly. I think restarting the Terminal should be sufficient in order to update the relevant paths etc.
By Patrik on Sep 18, 2009
Works like a charm
Thanx a lot for the howto.
By zorro on Sep 19, 2009
thanks for your howto!
By Pachi on Sep 21, 2009
I get the following error when I try to install pkgconfig…commands & output are all shown below. any ideas? MacPorts was installed from latest version for Snow Leopard before this was attempted.
sudo port install pkgconfig
Password:
—> Computing dependencies for pkgconfig
—> Configuring pkgconfig
Error: Target org.macports.configure returned: configure failure: shell command ” cd “/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_pkgconfig/work/pkg-config-0.23″ && ./configure –prefix=/opt/local –enable-indirect-deps –with-pc-path=/opt/local/lib/pkgconfig:/opt/local/share/pkgconfig ” returned error 77
Command output: checking for a BSD-compatible install… /usr/bin/install -c
checking whether build environment is sane… yes
checking for gawk… no
checking for mawk… no
checking for nawk… no
checking for awk… awk
checking whether make sets $(MAKE)… no
checking whether to enable maintainer-specific portions of Makefiles… no
checking build system type… i386-apple-darwin10.0.0
checking host system type… i386-apple-darwin10.0.0
checking for style of include used by make… none
checking for gcc… /usr/bin/gcc-4.2
checking for C compiler default output file name…
configure: error: C compiler cannot create executables
See `config.log’ for more details.
Error: Status 1 encountered during processing.
By Steve on Sep 23, 2009
Steve,
Could you please try to update your ports by issuing: sudo port -d selfupdate.
After this completes try installing the port again. If it still fails could you e-mail me the config.log that get generated?
By Patrik on Sep 23, 2009
If you are getting this error:
Package fuse was not found in the pkg-config search path.
Perhaps you should add the directory containing `fuse.pc’
to the PKG_CONFIG_PATH environment variable
No package ‘fuse’ found
Package fuse was not found in the pkg-config search path.
Perhaps you should add the directory containing `fuse.pc’
to the PKG_CONFIG_PATH environment variable
No package ‘fuse’ found
Compiling FuseService.cpp
FuseService.cpp:12:18: error: fuse.h: No such file or directory
FuseService.cpp: In function ‘int TrueCrypt::fuse_service_getattr(const char*, TrueCrypt::stat*)’:
FuseService.cpp:98: error: invalid application of ‘sizeof’ to incomplete type ‘TrueCrypt::stat’
FuseService.cpp:100: error: invalid use of incomplete type ‘struct TrueCrypt::stat’
FuseService.cpp:94: error: forward declaration of ‘struct TrueCrypt::stat’
FuseService.cpp:101: error: invalid use of incomplete type ‘struct TrueCrypt::stat’
FuseService.cpp:94: error: forward declaration of ‘struct TrueCrypt::stat’
FuseService.cpp:102: error: invalid use of incomplete type ‘struct TrueCrypt::stat’
FuseService.cpp:94: error: forward declaration of ‘struct TrueCrypt::stat’
FuseService.cpp:103: error: invalid use of incomplete type ‘struct TrueCrypt::stat’
FuseService.cpp:94: error: forward declaration of ‘struct TrueCrypt::stat’
FuseService.cpp:104: error: invalid use of incomplete type ‘struct TrueCrypt::stat’
FuseService.cpp:94: error: forward declaration of ‘struct TrueCrypt::stat’
FuseService.cpp:108: error: invalid use of incomplete type ‘struct TrueCrypt::stat’
FuseService.cpp:94: error: forward declaration of ‘struct TrueCrypt::stat’
FuseService.cpp:109: error: invalid use of incomplete type ‘struct TrueCrypt::stat’
FuseService.cpp:94: error: forward declaration of ‘struct TrueCrypt::stat’
FuseService.cpp:118: error: invalid use of incomplete type ‘struct TrueCrypt::stat’
FuseService.cpp:94: error: forward declaration of ‘struct TrueCrypt::stat’
FuseService.cpp:119: error: invalid use of incomplete type ‘struct TrueCrypt::stat’
FuseService.cpp:94: error: forward declaration of ‘struct TrueCrypt::stat’
FuseService.cpp:120: error: invalid use of incomplete type ‘struct TrueCrypt::stat’
FuseService.cpp:94: error: forward declaration of ‘struct TrueCrypt::stat’
FuseService.cpp:124: error: invalid use of incomplete type ‘struct TrueCrypt::stat’
FuseService.cpp:94: error: forward declaration of ‘struct TrueCrypt::stat’
FuseService.cpp:125: error: invalid use of incomplete type ‘struct TrueCrypt::stat’
FuseService.cpp:94: error: forward declaration of ‘struct TrueCrypt::stat’
FuseService.cpp:126: error: invalid use of incomplete type ‘struct TrueCrypt::stat’
FuseService.cpp:94: error: forward declaration of ‘struct TrueCrypt::stat’
FuseService.cpp: In function ‘int TrueCrypt::fuse_service_open(const char*, TrueCrypt::fuse_file_info*)’:
FuseService.cpp:172: error: invalid use of incomplete type ‘struct TrueCrypt::fuse_file_info’
FuseService.cpp:142: error: forward declaration of ‘struct TrueCrypt::fuse_file_info’
FuseService.cpp: At global scope:
FuseService.cpp:251: error: ‘fuse_fill_dir_t’ has not been declared
FuseService.cpp: In function ‘int TrueCrypt::fuse_service_readdir(const char*, void*, int, off_t, TrueCrypt::fuse_file_info*)’:
FuseService.cpp:261: error: ‘filler’ cannot be used as a function
FuseService.cpp:262: error: ‘filler’ cannot be used as a function
FuseService.cpp:263: error: ‘filler’ cannot be used as a function
FuseService.cpp:264: error: ‘filler’ cannot be used as a function
FuseService.cpp: In static member function ‘static bool TrueCrypt::FuseService::CheckAccessRights()’:
FuseService.cpp:317: error: ‘fuse_get_context’ was not declared in this scope
FuseService.cpp: In member function ‘virtual void TrueCrypt::FuseService::ExecFunctor::operator()(int, char**)’:
FuseService.cpp:540: error: ‘fuse_operations’ does not name a type
FuseService.cpp:542: error: ‘fuse_service_oper’ was not declared in this scope
FuseService.cpp:582: error: ‘fuse_main’ was not declared in this scope
FuseService.cpp:12:18: error: fuse.h: No such file or directory
FuseService.cpp: In function ‘int TrueCrypt::fuse_service_getattr(const char*, TrueCrypt::stat*)’:
FuseService.cpp:98: error: invalid application of ‘sizeof’ to incomplete type ‘TrueCrypt::stat’
FuseService.cpp:100: error: invalid use of incomplete type ‘struct TrueCrypt::stat’
FuseService.cpp:94: error: forward declaration of ‘struct TrueCrypt::stat’
FuseService.cpp:101: error: invalid use of incomplete type ‘struct TrueCrypt::stat’
FuseService.cpp:94: error: forward declaration of ‘struct TrueCrypt::stat’
FuseService.cpp:102: error: invalid use of incomplete type ‘struct TrueCrypt::stat’
FuseService.cpp:94: error: forward declaration of ‘struct TrueCrypt::stat’
FuseService.cpp:103: error: invalid use of incomplete type ‘struct TrueCrypt::stat’
FuseService.cpp:94: error: forward declaration of ‘struct TrueCrypt::stat’
FuseService.cpp:104: error: invalid use of incomplete type ‘struct TrueCrypt::stat’
FuseService.cpp:94: error: forward declaration of ‘struct TrueCrypt::stat’
FuseService.cpp:108: error: invalid use of incomplete type ‘struct TrueCrypt::stat’
FuseService.cpp:94: error: forward declaration of ‘struct TrueCrypt::stat’
FuseService.cpp:109: error: invalid use of incomplete type ‘struct TrueCrypt::stat’
FuseService.cpp:94: error: forward declaration of ‘struct TrueCrypt::stat’
FuseService.cpp:118: error: invalid use of incomplete type ‘struct TrueCrypt::stat’
FuseService.cpp:94: error: forward declaration of ‘struct TrueCrypt::stat’
FuseService.cpp:119: error: invalid use of incomplete type ‘struct TrueCrypt::stat’
FuseService.cpp:94: error: forward declaration of ‘struct TrueCrypt::stat’
FuseService.cpp:120: error: invalid use of incomplete type ‘struct TrueCrypt::stat’
FuseService.cpp:94: error: forward declaration of ‘struct TrueCrypt::stat’
FuseService.cpp:124: error: invalid use of incomplete type ‘struct TrueCrypt::stat’
FuseService.cpp:94: error: forward declaration of ‘struct TrueCrypt::stat’
FuseService.cpp:125: error: invalid use of incomplete type ‘struct TrueCrypt::stat’
FuseService.cpp:94: error: forward declaration of ‘struct TrueCrypt::stat’
FuseService.cpp:126: error: invalid use of incomplete type ‘struct TrueCrypt::stat’
FuseService.cpp:94: error: forward declaration of ‘struct TrueCrypt::stat’
FuseService.cpp: In function ‘int TrueCrypt::fuse_service_open(const char*, TrueCrypt::fuse_file_info*)’:
FuseService.cpp:172: error: invalid use of incomplete type ‘struct TrueCrypt::fuse_file_info’
FuseService.cpp:142: error: forward declaration of ‘struct TrueCrypt::fuse_file_info’
FuseService.cpp: At global scope:
FuseService.cpp:251: error: ‘fuse_fill_dir_t’ has not been declared
FuseService.cpp: In function ‘int TrueCrypt::fuse_service_readdir(const char*, void*, int, off_t, TrueCrypt::fuse_file_info*)’:
FuseService.cpp:261: error: ‘filler’ cannot be used as a function
FuseService.cpp:262: error: ‘filler’ cannot be used as a function
FuseService.cpp:263: error: ‘filler’ cannot be used as a function
FuseService.cpp:264: error: ‘filler’ cannot be used as a function
FuseService.cpp: In static member function ‘static bool TrueCrypt::FuseService::CheckAccessRights()’:
FuseService.cpp:317: error: ‘fuse_get_context’ was not declared in this scope
FuseService.cpp: In member function ‘virtual void TrueCrypt::FuseService::ExecFunctor::operator()(int, char**)’:
FuseService.cpp:540: error: ‘fuse_operations’ does not name a type
FuseService.cpp:542: error: ‘fuse_service_oper’ was not declared in this scope
FuseService.cpp:582: error: ‘fuse_main’ was not declared in this scope
lipo: can’t figure out the architecture type of: /var/folders/B1/B1LJiAyjGNuOhekZm3xRKE+++TM/-Tmp-//ccIUPTXp.out
make[1]: *** [FuseService.o] Error 1
make: *** [all] Error 2
This is the solution:
sudo cp /usr/local/lib/pkgconfig/fuse.pc /opt/local/lib/pkgconfig/
By A Friend on Sep 24, 2009
Thanks Patrik! Worked like a charm, just about to create my new TrueCrypt volume!
Many Thanks!
Holger
By Holger on Sep 28, 2009
Hi Patrik–Easy as pie–until I go to the “ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-20″ link to download the RSA files. I get an error page in both Safari AND Firefox, as follows:
“You have tried to access the ftp domain.
Its DNS record does point to this server, but this server does not host this domain.
If you think that this message is in error, please contact postmaster@bl-107.cluster1.echolabs.net ”
I’m stuck at this point–everything else installed seamlessly. HELP!!!!
By Russ on Sep 30, 2009
wxWidgets appeared to have compiled correctly, however when attempting to do compile TrueCrypt itself, I encounter the following error:
vikram:~ Vik$ cd $HOME/src/truecrypt-6.2a-source; make WXSTATIC=1
Compiling Keyfile.cpp
In file included from Keyfile.cpp:10:
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:43:21: error: pkcs11.h: No such file or directory
In file included from Keyfile.cpp:10:
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:56: error: ‘CK_SLOT_ID’ does not name a type
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:57: error: ‘CK_FLAGS’ does not name a type
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:77: error: ‘CK_OBJECT_HANDLE’ does not name a type
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:80: error: ‘CK_SLOT_ID’ does not name a type
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:86: error: expected `)’ before ‘errorCode’
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:92: error: expected `)’ before ‘errorCode’
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:106: error: ‘CK_RV’ does not name a type
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:109: error: ‘CK_RV’ does not name a type
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:160: error: ‘CK_SESSION_HANDLE’ does not name a type
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:181: error: ‘CK_SLOT_ID’ has not been declared
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:183: error: ‘CK_SLOT_ID’ has not been declared
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:186: error: ‘CK_SLOT_ID’ has not been declared
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:194: error: ‘CK_SLOT_ID’ has not been declared
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:195: error: ‘CK_OBJECT_HANDLE’ was not declared in this scope
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:195: error: template argument 1 is invalid
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:195: error: template argument 2 is invalid
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:195: error: ‘CK_SLOT_ID’ has not been declared
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:195: error: ‘CK_ATTRIBUTE_TYPE’ has not been declared
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:196: error: ‘CK_SLOT_ID’ has not been declared
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:196: error: ‘CK_OBJECT_HANDLE’ has not been declared
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:196: error: ‘CK_ATTRIBUTE_TYPE’ has not been declared
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:197: error: ‘CK_SLOT_ID’ was not declared in this scope
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:197: error: template argument 1 is invalid
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:197: error: template argument 2 is invalid
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:198: error: ‘CK_SLOT_ID’ has not been declared
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:199: error: ‘CK_SLOT_ID’ has not been declared
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:200: error: ‘CK_SLOT_ID’ has not been declared
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:205: error: ‘CK_FUNCTION_LIST_PTR’ does not name a type
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:211: error: ‘CK_SLOT_ID’ was not declared in this scope
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:211: error: template argument 1 is invalid
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:211: error: template argument 3 is invalid
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:211: error: template argument 4 is invalid
In file included from Keyfile.cpp:10:
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:43:21: error: pkcs11.h: No such file or directory
In file included from Keyfile.cpp:10:
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:56: error: ‘CK_SLOT_ID’ does not name a type
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:57: error: ‘CK_FLAGS’ does not name a type
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:77: error: ‘CK_OBJECT_HANDLE’ does not name a type
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:80: error: ‘CK_SLOT_ID’ does not name a type
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:86: error: expected `)’ before ‘errorCode’
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:92: error: expected `)’ before ‘errorCode’
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:106: error: ‘CK_RV’ does not name a type
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:109: error: ‘CK_RV’ does not name a type
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:160: error: ‘CK_SESSION_HANDLE’ does not name a type
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:181: error: ‘CK_SLOT_ID’ has not been declared
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:183: error: ‘CK_SLOT_ID’ has not been declared
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:186: error: ‘CK_SLOT_ID’ has not been declared
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:194: error: ‘CK_SLOT_ID’ has not been declared
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:195: error: ‘CK_OBJECT_HANDLE’ was not declared in this scope
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:195: error: template argument 1 is invalid
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:195: error: template argument 2 is invalid
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:195: error: ‘CK_SLOT_ID’ has not been declared
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:195: error: ‘CK_ATTRIBUTE_TYPE’ has not been declared
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:196: error: ‘CK_SLOT_ID’ has not been declared
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:196: error: ‘CK_OBJECT_HANDLE’ has not been declared
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:196: error: ‘CK_ATTRIBUTE_TYPE’ has not been declared
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:197: error: ‘CK_SLOT_ID’ was not declared in this scope
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:197: error: template argument 1 is invalid
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:197: error: template argument 2 is invalid
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:198: error: ‘CK_SLOT_ID’ has not been declared
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:199: error: ‘CK_SLOT_ID’ has not been declared
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:200: error: ‘CK_SLOT_ID’ has not been declared
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:205: error: ‘CK_FUNCTION_LIST_PTR’ does not name a type
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:211: error: ‘CK_SLOT_ID’ was not declared in this scope
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:211: error: template argument 1 is invalid
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:211: error: template argument 3 is invalid
/Users/Vik/src/truecrypt-6.2a-source/Common/SecurityToken.h:211: error: template argument 4 is invalid
lipo: can’t figure out the architecture type of: /var/folders/Om/OmX9T3IVHvKg8dlSCOiefE+++TI/-Tmp-//ccM8aBHZ.out
make[1]: *** [Keyfile.o] Error 1
make: *** [all] Error 2
vikram:truecrypt-6.2a-source Vik$
Help would be appreciated.
By Vikram Verma on Sep 30, 2009
Can someone just post a compiled version that works with Snow Leopard?
By Zach on Oct 2, 2009
Thank you for this guide, but for me truecrypt throws this error while making:
Linking TrueCrypt
Undefined symbols for architecture i386:
“_iconv_close”, referenced from:
wxMBConv_iconv::~wxMBConv_iconv()in libwx_base_carbonu-2.8.a(baselib_strconv.o)
wxMBConv_iconv::~wxMBConv_iconv()in libwx_base_carbonu-2.8.a(baselib_strconv.o)
wxMBConv_iconv::~wxMBConv_iconv()in libwx_base_carbonu-2.8.a(baselib_strconv.o)
wxMBConv_iconv::~wxMBConv_iconv()in libwx_base_carbonu-2.8.a(baselib_strconv.o)
“_iconv”, referenced from:
wxMBConv_iconv::GetMBNulLen() const in libwx_base_carbonu-2.8.a(baselib_strconv.o)
wxMBConv_iconv::WC2MB(char*, wchar_t const*, unsigned long) constin libwx_base_carbonu-2.8.a(baselib_strconv.o)
wxMBConv_iconv::WC2MB(char*, wchar_t const*, unsigned long) constin libwx_base_carbonu-2.8.a(baselib_strconv.o)
wxMBConv_iconv::MB2WC(wchar_t*, char const*, unsigned long) constin libwx_base_carbonu-2.8.a(baselib_strconv.o)
wxMBConv_iconv::MB2WC(wchar_t*, char const*, unsigned long) constin libwx_base_carbonu-2.8.a(baselib_strconv.o)
wxMBConv_iconv::wxMBConv_iconv(wchar_t const*)in libwx_base_carbonu-2.8.a(baselib_strconv.o)
“_iconv_open”, referenced from:
wxMBConv_iconv::wxMBConv_iconv(wchar_t const*)in libwx_base_carbonu-2.8.a(baselib_strconv.o)
wxMBConv_iconv::wxMBConv_iconv(wchar_t const*)in libwx_base_carbonu-2.8.a(baselib_strconv.o)
wxMBConv_iconv::wxMBConv_iconv(wchar_t const*)in libwx_base_carbonu-2.8.a(baselib_strconv.o)
wxMBConv_iconv::wxMBConv_iconv(wchar_t const*)in libwx_base_carbonu-2.8.a(baselib_strconv.o)
ld: symbol(s) not found for architecture i386
collect2: ld returned 1 exit status
Undefined symbols for architecture ppc:
“_iconv_close”, referenced from:
wxMBConv_iconv::~wxMBConv_iconv()in libwx_base_carbonu-2.8.a(baselib_strconv.o)
wxMBConv_iconv::~wxMBConv_iconv()in libwx_base_carbonu-2.8.a(baselib_strconv.o)
wxMBConv_iconv::~wxMBConv_iconv()in libwx_base_carbonu-2.8.a(baselib_strconv.o)
wxMBConv_iconv::~wxMBConv_iconv()in libwx_base_carbonu-2.8.a(baselib_strconv.o)
“_iconv”, referenced from:
wxMBConv_iconv::MB2WC(wchar_t*, char const*, unsigned long) constin libwx_base_carbonu-2.8.a(baselib_strconv.o)
wxMBConv_iconv::MB2WC(wchar_t*, char const*, unsigned long) constin libwx_base_carbonu-2.8.a(baselib_strconv.o)
wxMBConv_iconv::GetMBNulLen() const in libwx_base_carbonu-2.8.a(baselib_strconv.o)
wxMBConv_iconv::WC2MB(char*, wchar_t const*, unsigned long) constin libwx_base_carbonu-2.8.a(baselib_strconv.o)
wxMBConv_iconv::WC2MB(char*, wchar_t const*, unsigned long) constin libwx_base_carbonu-2.8.a(baselib_strconv.o)
wxMBConv_iconv::wxMBConv_iconv(wchar_t const*)in libwx_base_carbonu-2.8.a(baselib_strconv.o)
“_iconv_open”, referenced from:
wxMBConv_iconv::wxMBConv_iconv(wchar_t const*)in libwx_base_carbonu-2.8.a(baselib_strconv.o)
wxMBConv_iconv::wxMBConv_iconv(wchar_t const*)in libwx_base_carbonu-2.8.a(baselib_strconv.o)
wxMBConv_iconv::wxMBConv_iconv(wchar_t const*)in libwx_base_carbonu-2.8.a(baselib_strconv.o)
wxMBConv_iconv::wxMBConv_iconv(wchar_t const*)in libwx_base_carbonu-2.8.a(baselib_strconv.o)
ld: symbol(s) not found for architecture ppc
collect2: ld returned 1 exit status
lipo: can’t open input file: /var/folders/PB/PBf5yBA8G5mMx0GkkjXWw++++TY/-Tmp-//ccmfTiV9.out (No such file or directory)
make[1]: *** [TrueCrypt] Error 1
make: *** [all] Error 2
While building this kernel was booted …
Darwin Kernel Version 10.0.0: Fri Jul 31 22:47:34 PDT 2009; root:xnu-1456.1.25~1/RELEASE_I386 i386
… and gcc v.4.2.1 was used:
edv-macbookproa:truecrypt-6.2a-source martinbehrens$ gcc -v
Using built-in specs.
Target: i686-apple-darwin10
Configured with: /var/tmp/gcc/gcc-5646~6/src/configure –disable-checking –enable-werror –prefix=/usr –mandir=/share/man –enable-languages=c,objc,c++,obj-c++ –program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ –with-slibdir=/usr/lib –build=i686-apple-darwin10 –with-gxx-include-dir=/include/c++/4.2.1 –program-prefix=i686-apple-darwin10- –host=x86_64-apple-darwin10 –target=i686-apple-darwin10
Thread model: posix
gcc version 4.2.1 (Apple Inc. build 5646)
Are there any suggestions?
By rent on Oct 2, 2009
Patrik, good guide, worked without issues. A new volume is in the work just now.
By Tim on Oct 4, 2009
zach, looks as if there’s problem with libiconv. Did you upgrade to Snow Leopard or did you do a fresh install? If you upgraded did you have macports installed prior to upgrade.
I did an upgrade with macports already installed and had quite some issues with this myself as several ports were broken and required re-building.
If this is your case this may (or may not) do it:
sudo port uninstall -f libiconv
sudo port install libiconv
By Patrik on Oct 4, 2009
Patrik, if you’ve upgraded to Snow Leopard you basically need to completely rebuild the macports tree from scratch. I’ve done it. Also note that things like WINE are tricky to install because of 64-bit.
By Dave on Oct 11, 2009
Dave, that’s what I ended up doing to.
By Patrik on Oct 11, 2009
Holger, I have no problem reaching that URL. Let me know if you still do and I’ll try to post the files somewhere else for you.
By Patrik on Oct 11, 2009
Vikram, looks as if your missing the pkcs files from rsa security. Did you follow the steps properly?
By Patrik on Oct 11, 2009
I had the same libiconv issue. What I did was make sure I didn’t have a copy of the library in /usr/local/lib. I also broke my MacPorts tree by renaming /opt/local and used a manual installation of pkg-config (goes in /usr/local).
This worked, and inspection with otool reveals that the produced binary should be portable to 10.6 machines that don’t have libiconv from MacPorts installed.
By Dave on Oct 16, 2009
TrueCrypt 6.3 with full Snow leopard support is released!
http://www.truecrypt.org/downloads
By Benni on Oct 22, 2009
Thanks Benni. I have posted another blog entry and updated this one.
By patrik on Oct 22, 2009