Menu

Building latest git version

Kev
2024-06-18
2024-06-26
  • Kev

    Kev - 2024-06-18

    Hi
    I've pulled the latest git of Veracript but when i try to build i get the following error

    Main.make:373: *** missing 'endif'. Stop.
    make: *** [Makefile:554: clean] Error 2

    I use a script to build the file and it's worked in the past.

    I've tried to clean and pull again but get the same error.

    Is there a problem with the latest code or something I've done?

    thanks

     
  • Mounir IDRASSI

    Mounir IDRASSI - 2024-06-18

    Hi,

    I have been working on macOS-related enhancements lately, and the changes might have introduced build issues on Linux. I will look into it and fix it.

     
  • Mounir IDRASSI

    Mounir IDRASSI - 2024-06-18

    PS: I believe it’s time to add a continuous integration pipeline to VeraCrypt repository on GitHub to catch such issues early on. I never had the time to put it in place but it seems to be a good one-time investment.

     
    ❤️
    1
  • Kev

    Kev - 2024-06-19

    hi

    thanks for the quick response.

    I've pulled the latest git and the initial problem is fixed but I'm afraid it more fails later on with the following

    Linking veracrypt

    Volume.a(Cipher.o): in function VeraCrypt::CipherAES::Decrypt(unsigned char*) const': Cipher.cpp:(.text._ZNK9VeraCrypt9CipherAES7DecryptEPh+0x10): undefined reference toaes_decrypt'

    Volume.a(Cipher.o): in function VeraCrypt::CipherAES::Encrypt(unsigned char*) const': Cipher.cpp:(.text._ZNK9VeraCrypt9CipherAES7EncryptEPh+0xc): undefined reference toaes_encrypt'
    collect2: error: ld returned 1 exit status
    make[1]: *** [Main.make:162: veracrypt] Error 1
    make: *** [Makefile:554: all] Error 2

    Appreciate all your hard work on Veracrypt.

     
  • Mounir IDRASSI

    Mounir IDRASSI - 2024-06-19

    Hi,

    Indeed, there was another problem...I wanted to go fast and so I just checked that the Makefile is correct but I didn't perform actual build :-(

    I have now fixed the issue and the build is successful: https://sourceforge.net/p/veracrypt/code/ci/a76c87383f1da3fd82a4955003601b2a433e48be/

    I wanted to save time and I ended up loosing more...very good lesson!
    Next step: putting in place CI pipeline on Github to catch such issues early.

     
    👍
    1
    ❤️
    1
    • Jertzukka

      Jertzukka - 2024-06-21

      You can take a look at my drafts here which build both Linux and MacOS versions successfully, though even when the tests pass on MacOS, the volume mounting fails due to the macfuse/osxfuse requiring a reboot based on the comments on this page. FUSE-T could probably work here as they also mention. Their CI implementation is also a good example of how the containers could be used to test on multiple OS's, alpine, centos etc, maybe even build the packages there and use the CI upload to save the burden from you of creating packages.

      Getting it to build on MacOS required addition of --without-libtiff for the FULL build, as I couldn't get it to build otherwise.

       
      👍
      1
    • Mounir IDRASSI

      Mounir IDRASSI - 2024-06-22

      Thank you @jertzukka for sharing your draft and the valuable information. This is very helpful!

      I have now added support for FUSE-T for macOS so automatic testing will be possible from CI.
      Regarding creating packages using CI, I prefer to refrain from this approach. For trust reasons, I prefer to build official packages in a trusted environment that I fully control.

      Thank you for the tip about the --without-libtiff flag. I think we don't need libtiff for the macOS UI so it should be safe to use this flag all the time. I will give it a try.

      Thanks again for your contribution!

       
  • Kev

    Kev - 2024-06-19

    That's brilliant @idrassi it now builds successfully.

    Thanks for the quick fixes.

     
  • Kev

    Kev - 2024-06-26

    Looks like the latest changes have broken it again on Linux?

    Cleaning Platform
    Cleaning Volume
    Cleaning Driver
    Cleaning Core
    Main.make:139: *** invalid syntax in conditional. Stop.
    make: *** [Makefile:574: clean] Error 2

     
  • Mounir IDRASSI

    Mounir IDRASSI - 2024-06-26

    Yes, but this time it is not a surprise as I was aware of it.
    Thank you for the report, though. I should be able to push a fix in one hour.

     
    👍
    1
  • Mounir IDRASSI

    Mounir IDRASSI - 2024-06-26

    I have pushed the fix for the Makefile issue.
    For context, I'm making changes to the Makefiles to simplify the build logic under various configurations. This is to help with the upcoming CI pipelines.

     

Log in to post a comment.