bugThe FreeType Project - Bugs: bug #55235, CMake update build scripts to...

 
 

bug #55235: CMake update build scripts to support all features

Submitted by:  rim <rim>
Submitted on:  Mon 17 Dec 2018 02:50:38 AM UTC  
 
Severity:  3 - Normal Item Group:  None
Status:  None Privacy:  Public
Assigned to:  None Open/Closed:  Open
Planned Release:  None

Add a New Comment(Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

Sat 30 Mar 2019 05:01:16 PM UTC, comment #4:

I had a cursory look at the patch, what is the reason you enable all the `-f` features? I understand that hardening is desirable in general, but the flags aren't used for the default build system and tend to be distro-specific. This would result in a different build from what the default build system would produce. I am not sure that's a good thing. I suppose enabling `-fwrapv` might benefit a number-crunching library such as FreeType, but that has to be discussed with Werner.

Also, the patch tries to deliberately enable c11 or c99 mode, while the default build system goes for ansi for maximum compatibility. This may result in subtle behavioral (source) differences iirc. Also not sure this is a good idea.

What is bad about autodetection of dependencies?

Nikolaus Waxweiler <morksig>
Project Member
Sun 30 Dec 2018 03:21:11 AM UTC, comment #3:

Remove -fsanitize=safe-stack die to brokes some apps
add target_link_libraries() for static and dynamic libs

(file #45783)

rim <rim>
Fri 28 Dec 2018 11:10:27 PM UTC, comment #2:

1. Ok, reformat done.

2. Ok, long lines fixed.

3. I can not apply changes, I do not keep tons of unworked versios and do not use any cvs in process.

4. I will need help with documetation.

5. New files added because cmake have configure_file() function, witch expect @VAR_NAME@ to replace, istead %VAR_NAME% in current files. This saves ton of cmake code and make easy to read and understand CMakeFile.txt.
Also I made some small changes to these files.

6. Ok, I try :)

I take CMakeList.txt frome one mine projects and use it as template.
Next I add all staff from original CMakeList.txt.
Then I spent many time trying to fix pc file generetion, build static and shared lib same time, replacing vars in ftconfig.h and ftoption.h.

What new/differ:
1. freetype.pc file generated and installed

2. All staff that install autotool - now installed by cmake.

3. options:
FT_WITH_ZLIB - "Use system zlib instead of internal library."
FT_WITH_BZIP2 - "Support bzip2 compressed fonts."
FT_WITH_PNG - "Support PNG compressed OpenType embedded bitmaps."
FT_WITH_HARFBUZZ - "Improve auto-hinting of OpenType fonts."
FT_WITH_CONFIG - "Install freetype-config."
FT_DISABLE_MMAP - "do not check mmap() and do not use."
ENABLE_FULL_DEBUG - "Build with all possible debug."

4. All options OFF by default, no autodetect.

5. Use hardening things, if compiller/linker support:
"-D_FORTIFY_SOURCE=2"
"-fstack-protector-all"
"-fsanitize=safe-stack"
"-fsanitize=cfi"
"-mretpoline"
"-mfunction-return=thunk"
"-mindirect-branch=thunk"
"-fwrapv"
"-fPIE"
"-pie"
"-Wl,-z,retpolineplt"
"-Wl,-z,relro"
"-Wl,-z,now"
"-Wl,-z,noexecstack"

rim <rim>
Mon 17 Dec 2018 06:57:35 AM UTC, comment #1:

Thanks for your contribution. However, there are very serious problems with your patch.

  • I very much dislike indentation by tabs. AFAIK, this is not necessary for cmake, so please stay with two spaces per indentation level.
  • Similarly, you are introducing overlong lines, which I very much dislike, too. If possible, please stay within a line length of 80 characters – yes, I'm old-fashioned and conservative :-)
  • To make a comparison with your version and the current state possible, please apply your changes incrementally. I want to have a series of patches that introduce your added functionality in steps as small as possible – and formatting should be the last, optional patch in this series.
  • Documentation is completely lacking in case you are adding new features. You must fix this.
  • I dislike that you add new files `freetype-config.cmake' and `freetype2.cmake'. Why? We already have similar files, and maintaining two such files is error-prone. This alone is actually a reason to reject your patch...
  • I need ChangeLog entries for each step (these entries should not be part of the patch files but rather added separately in the preambles of those files).

Please retry.

Werner LEMBERG <wl>
Project Administrator
Mon 17 Dec 2018 02:50:38 AM UTC, original submission:

I have done update CMake files, now they can be used as main build system, at least for FreeBSD.

I try to keep all functionality from autotools and add some hardening and debug features.

rim <rim>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

Attached Files
file #45763:  0001-Update-CMake-build-scripts.patch added by rim (30KiB - text/x-patch - patch update)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by morksig (Posted a comment)
  • -email is unavailable- added by wl (Posted a comment)
  • -email is unavailable- added by rim (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

     

     

    Follow 4 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2019-03-30 wl SummaryCMake update build scripts to support all futures => CMake update build scripts to support all features
    2018-12-30 rim Attached File- => Added 0001-Update-CMake-build-scripts.patch, #45783
    2018-12-28 rim Attached File- => Added 0001-Update-CMake-build-scripts.patch, #45763
    2018-12-17 rim Attached File- => Added 0001-Update-CMake-build-scripts.patch, #45678

    Back to the top


    Powered by Savane 3.4