WelcomeWelcome | FAQFAQ | DownloadsDownloads | WikiWiki

Author Topic: Advice needed for building "-dev.tcz" extensions  (Read 3348 times)

Offline Rudock1

  • Jr. Member
  • **
  • Posts: 62
Advice needed for building "-dev.tcz" extensions
« on: August 25, 2020, 04:19:52 PM »
Hi Friends,

Aside from the fact that I am probably stepping into some deep water with limited swimming skills... I've given myself the challenge of "someday" compiling a KDE application.  I've started with this reference http://www.linuxfromscratch.org/blfs/view/svn/kde/krameworks5.html which describes the KDE Framework 5 libraries.

So I began with the first library in the list: attica-5.73.0.tar.xz

My main questions are:
Have I made any fundamental extensions creation mistakes?
Did I name them correctly?
Did I put the correct files in the -dev extension?


Below are five small sections:
My little build pseudo-script
My cmake install output
My libKF5Attica.tcz.list
My libKF5Attica-dev.tcz.list
My libKF5Attica-dev.tcz.dep


I would be forever grateful if you could review the outputs and the folders I've used in the TCZs, and please advise or critique or correct any other mistakes you see. Maybe better cmake command syntax?  I'd like to get the lib-dev.tcz structure and assembly process correct up front before I start working on the remaining libraries.

Running Corepure 64 TC 11.0 on a Dell laptop

My little build pseudo-script
Code: [Select]
wget -r -nH -nd -A 'attica-5.73.0.tar.xz' -np http://download.kde.org/stable/frameworks/5.73/

mkdir build
cd    build
cmake -DCMAKE_INSTALL_PREFIX=$KF5_PREFIX -DCMAKE_PREFIX_PATH=$QT5DIR -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -Wno-dev ..
make
sudo make install
My cmake install output
Code: [Select]
[/tmp/attica/attica-5.73.0/build]{$?=0}Tue Aug 25 08:18:25 > sudo make install
[  1%] Automatic MOC for target KF5Attica
[  1%] Built target KF5Attica_autogen
[100%] Built target KF5Attica
Install the project...
-- Install configuration: "Release"
-- Installing: /lib64/cmake/KF5Attica/KF5AtticaConfig.cmake
-- Installing: /lib64/cmake/KF5Attica/KF5AtticaConfigVersion.cmake
-- Installing: /lib64/cmake/KF5Attica/KF5AtticaTargets.cmake
-- Installing: /lib64/cmake/KF5Attica/KF5AtticaTargets-release.cmake
-- Installing: /include/KF5/attica_version.h
-- Installing: /include/KF5/Attica/Attica/Activity
-- Installing: /include/KF5/Attica/Attica/AccountBalance
-- Installing: /include/KF5/Attica/Attica/Achievement
-- Installing: /include/KF5/Attica/Attica/Comment
-- Installing: /include/KF5/Attica/Attica/Config
-- Installing: /include/KF5/Attica/Attica/Content
-- Installing: /include/KF5/Attica/Attica/Category
-- Installing: /include/KF5/Attica/Attica/DeleteJob
-- Installing: /include/KF5/Attica/Attica/Distribution
-- Installing: /include/KF5/Attica/Attica/DownloadDescription
-- Installing: /include/KF5/Attica/Attica/DownloadItem
-- Installing: /include/KF5/Attica/Attica/Event
-- Installing: /include/KF5/Attica/Attica/Folder
-- Installing: /include/KF5/Attica/Attica/Forum
-- Installing: /include/KF5/Attica/Attica/GetJob
-- Installing: /include/KF5/Attica/Attica/HomePageEntry
-- Installing: /include/KF5/Attica/Attica/HomePageType
-- Installing: /include/KF5/Attica/Attica/Icon
-- Installing: /include/KF5/Attica/Attica/ItemJob
-- Installing: /include/KF5/Attica/Attica/KnowledgeBaseEntry
-- Installing: /include/KF5/Attica/Attica/ListJob
-- Installing: /include/KF5/Attica/Attica/License
-- Installing: /include/KF5/Attica/Attica/Message
-- Installing: /include/KF5/Attica/Attica/Metadata
-- Installing: /include/KF5/Attica/Attica/Person
-- Installing: /include/KF5/Attica/Attica/PrivateData
-- Installing: /include/KF5/Attica/Attica/PostJob
-- Installing: /include/KF5/Attica/Attica/Project
-- Installing: /include/KF5/Attica/Attica/PutJob
-- Installing: /include/KF5/Attica/Attica/RemoteAccount
-- Installing: /include/KF5/Attica/Attica/BuildService
-- Installing: /include/KF5/Attica/Attica/BuildServiceJob
-- Installing: /include/KF5/Attica/Attica/BuildServiceJobOutput
-- Installing: /include/KF5/Attica/Attica/ProviderManager
-- Installing: /include/KF5/Attica/Attica/Provider
-- Installing: /include/KF5/Attica/Attica/Publisher
-- Installing: /include/KF5/Attica/Attica/PublisherField
-- Installing: /include/KF5/Attica/Attica/Topic
-- Installing: /lib64/libKF5Attica.so.5.73.0
-- Installing: /lib64/libKF5Attica.so.5
-- Set runtime path of "/lib64/libKF5Attica.so.5.73.0" to "/usr/local/lib"
-- Installing: /lib64/libKF5Attica.so
-- Installing: /include/KF5/Attica/attica/activity.h
-- Installing: /include/KF5/Attica/attica/accountbalance.h
-- Installing: /include/KF5/Attica/attica/achievement.h
-- Installing: /include/KF5/Attica/attica/comment.h
-- Installing: /include/KF5/Attica/attica/config.h
-- Installing: /include/KF5/Attica/attica/content.h
-- Installing: /include/KF5/Attica/attica/category.h
-- Installing: /include/KF5/Attica/attica/deletejob.h
-- Installing: /include/KF5/Attica/attica/distribution.h
-- Installing: /include/KF5/Attica/attica/downloaddescription.h
-- Installing: /include/KF5/Attica/attica/downloaditem.h
-- Installing: /include/KF5/Attica/attica/event.h
-- Installing: /include/KF5/Attica/attica/folder.h
-- Installing: /include/KF5/Attica/attica/forum.h
-- Installing: /include/KF5/Attica/attica/getjob.h
-- Installing: /include/KF5/Attica/attica/homepageentry.h
-- Installing: /include/KF5/Attica/attica/homepagetype.h
-- Installing: /include/KF5/Attica/attica/icon.h
-- Installing: /include/KF5/Attica/attica/itemjob.h
-- Installing: /include/KF5/Attica/attica/knowledgebaseentry.h
-- Installing: /include/KF5/Attica/attica/listjob.h
-- Installing: /include/KF5/Attica/attica/license.h
-- Installing: /include/KF5/Attica/attica/message.h
-- Installing: /include/KF5/Attica/attica/metadata.h
-- Installing: /include/KF5/Attica/attica/person.h
-- Installing: /include/KF5/Attica/attica/privatedata.h
-- Installing: /include/KF5/Attica/attica/postjob.h
-- Installing: /include/KF5/Attica/attica/project.h
-- Installing: /include/KF5/Attica/attica/putjob.h
-- Installing: /include/KF5/Attica/attica/remoteaccount.h
-- Installing: /include/KF5/Attica/attica/buildservice.h
-- Installing: /include/KF5/Attica/attica/buildservicejob.h
-- Installing: /include/KF5/Attica/attica/buildservicejoboutput.h
-- Installing: /include/KF5/Attica/attica/providermanager.h
-- Installing: /include/KF5/Attica/attica/provider.h
-- Installing: /include/KF5/Attica/attica/publisher.h
-- Installing: /include/KF5/Attica/attica/publisherfield.h
-- Installing: /include/KF5/Attica/attica/topic.h
-- Installing: /include/KF5/Attica/attica/atticabasejob.h
-- Installing: /include/KF5/Attica/attica/atticautils.h
-- Installing: /include/KF5/Attica/attica/platformdependent.h
-- Installing: /include/KF5/Attica/attica/platformdependent_v2.h
-- Installing: /include/KF5/Attica/attica/version.h
-- Installing: /include/KF5/Attica/attica/attica_export.h
-- Installing: /share/qlogging-categories5/attica.categories
-- Installing: /share/qlogging-categories5/attica.renamecategories
-- Installing: /mkspecs/modules/qt_Attica.pri
-- Installing: /lib64/pkgconfig/libKF5Attica.pc
[/tmp/attica/attica-5.73.0/build]{$?=0}Tue Aug 25 09:57:45 >
My libKF5Attica.tcz.list 
Code: [Select]
/usr/local/share/qlogging-categories5/attica.renamecategories
/usr/local/share/qlogging-categories5/attica.categories
/usr/local/lib/libKF5Attica.so.5.73.0
/usr/local/lib/libKF5Attica.so.5
/usr/local/lib/libKF5Attica.so
My libKF5Attica-dev.tcz.list 
Code: [Select]
/usr/local/include/KF5/Attica/Attica/AccountBalance
/usr/local/include/KF5/Attica/attica/accountbalance.h
/usr/local/include/KF5/Attica/Attica/Achievement
/usr/local/include/KF5/Attica/attica/achievement.h
/usr/local/include/KF5/Attica/Attica/Activity
/usr/local/include/KF5/Attica/attica/activity.h
/usr/local/include/KF5/Attica/attica/atticabasejob.h
/usr/local/include/KF5/Attica/attica/attica_export.h
/usr/local/include/KF5/Attica/attica/atticautils.h
/usr/local/include/KF5/Attica/Attica/BuildService
/usr/local/include/KF5/Attica/attica/buildservice.h
/usr/local/include/KF5/Attica/Attica/BuildServiceJob
/usr/local/include/KF5/Attica/attica/buildservicejob.h
/usr/local/include/KF5/Attica/Attica/BuildServiceJobOutput
/usr/local/include/KF5/Attica/attica/buildservicejoboutput.h
/usr/local/include/KF5/Attica/Attica/Category
/usr/local/include/KF5/Attica/attica/category.h
/usr/local/include/KF5/Attica/Attica/Comment
/usr/local/include/KF5/Attica/attica/comment.h
/usr/local/include/KF5/Attica/Attica/Config
/usr/local/include/KF5/Attica/attica/config.h
/usr/local/include/KF5/Attica/Attica/Content
/usr/local/include/KF5/Attica/attica/content.h
/usr/local/include/KF5/Attica/Attica/DeleteJob
/usr/local/include/KF5/Attica/attica/deletejob.h
/usr/local/include/KF5/Attica/Attica/Distribution
/usr/local/include/KF5/Attica/attica/distribution.h
/usr/local/include/KF5/Attica/Attica/DownloadDescription
/usr/local/include/KF5/Attica/attica/downloaddescription.h
/usr/local/include/KF5/Attica/Attica/DownloadItem
/usr/local/include/KF5/Attica/attica/downloaditem.h
/usr/local/include/KF5/Attica/Attica/Event
/usr/local/include/KF5/Attica/attica/event.h
/usr/local/include/KF5/Attica/Attica/Folder
/usr/local/include/KF5/Attica/attica/folder.h
/usr/local/include/KF5/Attica/Attica/Forum
/usr/local/include/KF5/Attica/attica/forum.h
/usr/local/include/KF5/Attica/Attica/GetJob
/usr/local/include/KF5/Attica/attica/getjob.h
/usr/local/include/KF5/Attica/Attica/HomePageEntry
/usr/local/include/KF5/Attica/attica/homepageentry.h
/usr/local/include/KF5/Attica/Attica/HomePageType
/usr/local/include/KF5/Attica/attica/homepagetype.h
/usr/local/include/KF5/Attica/Attica/Icon
/usr/local/include/KF5/Attica/attica/icon.h
/usr/local/include/KF5/Attica/Attica/ItemJob
/usr/local/include/KF5/Attica/attica/itemjob.h
/usr/local/include/KF5/Attica/Attica/KnowledgeBaseEntry
/usr/local/include/KF5/Attica/attica/knowledgebaseentry.h
/usr/local/include/KF5/Attica/Attica/License
/usr/local/include/KF5/Attica/attica/license.h
/usr/local/include/KF5/Attica/Attica/ListJob
/usr/local/include/KF5/Attica/attica/listjob.h
/usr/local/include/KF5/Attica/Attica/Message
/usr/local/include/KF5/Attica/attica/message.h
/usr/local/include/KF5/Attica/Attica/Metadata
/usr/local/include/KF5/Attica/attica/metadata.h
/usr/local/include/KF5/Attica/Attica/Person
/usr/local/include/KF5/Attica/attica/person.h
/usr/local/include/KF5/Attica/attica/platformdependent.h
/usr/local/include/KF5/Attica/attica/platformdependent_v2.h
/usr/local/include/KF5/Attica/Attica/PostJob
/usr/local/include/KF5/Attica/attica/postjob.h
/usr/local/include/KF5/Attica/Attica/PrivateData
/usr/local/include/KF5/Attica/attica/privatedata.h
/usr/local/include/KF5/Attica/Attica/Project
/usr/local/include/KF5/Attica/attica/project.h
/usr/local/include/KF5/Attica/Attica/Provider
/usr/local/include/KF5/Attica/attica/provider.h
/usr/local/include/KF5/Attica/Attica/ProviderManager
/usr/local/include/KF5/Attica/attica/providermanager.h
/usr/local/include/KF5/Attica/Attica/Publisher
/usr/local/include/KF5/Attica/Attica/PublisherField
/usr/local/include/KF5/Attica/attica/publisherfield.h
/usr/local/include/KF5/Attica/attica/publisher.h
/usr/local/include/KF5/Attica/Attica/PutJob
/usr/local/include/KF5/Attica/attica/putjob.h
/usr/local/include/KF5/Attica/Attica/RemoteAccount
/usr/local/include/KF5/Attica/attica/remoteaccount.h
/usr/local/include/KF5/Attica/Attica/Topic
/usr/local/include/KF5/Attica/attica/topic.h
/usr/local/include/KF5/Attica/attica/version.h
/usr/local/include/KF5/attica_version.h
/usr/local/lib/cmake/KF5Attica/KF5AtticaConfig.cmake
/usr/local/lib/cmake/KF5Attica/KF5AtticaConfigVersion.cmake
/usr/local/lib/cmake/KF5Attica/KF5AtticaTargets.cmake
/usr/local/lib/cmake/KF5Attica/KF5AtticaTargets-release.cmake
/usr/local/lib/mkspecs/modules/qt_Attica.pri
/usr/local/lib/pkgconfig/libKF5Attica.pc
My libKF5Attica-dev.tcz.dep 
Code: [Select]
libKF5Attica.tcz
thx

Billy
Rio Del Mar, California

Offline Sashank999

  • Sr. Member
  • ****
  • Posts: 392
Re: Advice needed for building "-dev.tcz" extensions
« Reply #1 on: August 25, 2020, 11:22:50 PM »
According to some standard instructions from the wiki, we should follow some CFLAGS and CXXFLAGS to compile tczs so that they run properly on all PCs running TC. I don't think that happened here. You can get them from the wiki : http://wiki.tinycorelinux.net/doku.php?id=wiki:creating_extensions and http://forum.tinycorelinux.net/index.php/topic,14397.0.html These are said to me by Juanito.
According to https://cmake.org/cmake/help/v3.12/envvar/CFLAGS.html , even if you set the CFLAGS or CC environment variables, it will simply ignore them if they are defined in CMakeLists.txt which is a danger. So, we should remove them from the CMakeLists.txt. I think this does this :
Code: [Select]
find . -name CMakeLists.txt -type f -exec sed -i '/CMAKE_C_FLAGS/d' {} \;
find . -name CMakeLists.txt -type f -exec sed -i '/CMAKE_CXX_FLAGS/d' {} \;
These are said to me by Juanito for Makefile but I modified them to CMakeLists.txt.
You better consider Juanito's opinion. But until then, we could run with these.
« Last Edit: October 27, 2022, 10:48:52 PM by Rich »

Offline jazzbiker

  • Hero Member
  • *****
  • Posts: 934
Re: Advice needed for building "-dev.tcz" extensions
« Reply #2 on: August 25, 2020, 11:37:27 PM »
Hi, Rudock1!

Just agree with You that one is to step into the water to learn swimming :-)
Not criticizing, don't You use DESTDIR variable while "make install"? It is adviced in Corebook and in the wiki page pointed by Sashank999.

Wish You success!

Offline Sashank999

  • Sr. Member
  • ****
  • Posts: 392
Re: Advice needed for building "-dev.tcz" extensions
« Reply #3 on: August 25, 2020, 11:46:46 PM »
@jazzbiker
The DESTDIR doesn't always work(when it isn't defined in Makefile) and hence even I don't use it. It is said in the same wiki page at the bottom.
Hence, I use this : http://forum.tinycorelinux.net/index.php/topic,23919.0.html (Thanks to Juanito) .

Offline jazzbiker

  • Hero Member
  • *****
  • Posts: 934
Re: Advice needed for building "-dev.tcz" extensions
« Reply #4 on: August 26, 2020, 12:10:23 AM »
Hi, Sashank999!

Of course, DESTDIR use is not the law but just a convention, sometimes You need to edit makefile.
The topic You pointed to is 9 pages long, would You be so good to point the message?

aus9

  • Guest
Re: Advice needed for building "-dev.tcz" extensions
« Reply #5 on: August 26, 2020, 12:24:38 AM »
the more submitters the better.

I love tmp dir and all my builds are done as root. And for me, its exceptional that a package does not install into tmp.

here are a few snippets that might help

Code: [Select]
# SNIP1 for meson/ninja
meson --strip --prefix=/usr/local -Ddebug=false --buildtype=plain -Ddocs=false
meson configure # to check what I may change
ninja # takes seconds
DESTDIR=/tmp/$P ninja install
cd /tmp

# SNIP2
make -j5 # takes X minutes
make install-strip DESTDIR=/tmp/$P 
cd /tmp

# SNIP3 for strip fails
make -j5 # takes secs
make install DESTDIR=/tmp/$P
cd /tmp

Obviously you might have to use make install with or without a timestamp file as per wiki, if /tmp can not be used.


« Last Edit: August 26, 2020, 12:26:24 AM by aus9 »

Offline jazzbiker

  • Hero Member
  • *****
  • Posts: 934
Re: Advice needed for building "-dev.tcz" extensions
« Reply #6 on: August 26, 2020, 01:02:41 AM »
I'm sure, Rudock1 is acquainted well with Corebook and wiki pages dedicated to extensions creating, and You guys can call me just "boring jazzbiker", but I will not loose the chance to remind, that DESTDIR use is preferred, because some files are simply copied, and they become hidden for the timestamp method, so You must be very careful using it.

Offline Juanito

  • Administrator
  • Hero Member
  • *****
  • Posts: 14815
Re: Advice needed for building "-dev.tcz" extensions
« Reply #7 on: August 26, 2020, 01:16:24 AM »
Assuming that you are building for CorePure64, if you use this:
Code: [Select]
-DCMAKE_BUILD_TYPE=Release..which is correct.

You also need to use this:
Code: [Select]
-DCMAKE_C_FLAGS_RELEASE="-flto -mtune=generic -Os -pipe" -DCMAKE_CXX_FLAGS_RELEASE="-flto -mtune=generic -Os -pipe -fno-exceptions -fno-rtti"
In almost all cases this will prevent any spurious flags from being used.

Offline Rudock1

  • Jr. Member
  • **
  • Posts: 62
Re: Advice needed for building "-dev.tcz" extensions
« Reply #8 on: August 27, 2020, 01:12:51 PM »
Thanks, everybody, for your answers and thoughtful advice. 
I reread the wiki, adopted DESTDIR and modifed my cmake build commands which now look like this:
Code: [Select]
mkdir build
cd    build
cmake .. -DCMAKE_INSTALL_PREFIX=$KF5_PREFIX -DCMAKE_PREFIX_PATH=$QT5DIR -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -Wno-dev -DCMAKE_C_FLAGS_RELEASE="-flto -mtune=generic -Os -pipe" -DCMAKE_CXX_FLAGS_RELEASE="-flto -mtune=generic -Os -pipe -fno-exceptions -fno-rtti"
cmake --build . -- help
cmake --build . -- -B install/strip DESTDIR=/tmp/my_attica

The next phase is to verify that I have correctly split up the files between the library and library-dev extensions.

Below are three tree outputs:
the combined build to DESTDIR
the library TCZ
the library-dev TCZ

Could you please check that I
#1: named the extension correctly libKF5Attica,
#2: split the files correctly between the two TCZs. 
#3. need maybe a symbolic link between /lib64 and /usr/local/lib? (haven't made one yet)

attica_DESTDIR.tree.txt
Code: [Select]
/tmp/my_attica/
├── include
│   └── KF5
│       ├── Attica
│       │   ├── attica
│       │   │   ├── accountbalance.h
│       │   │   ├── achievement.h
│       │   │   ├── activity.h
│       │   │   ├── atticabasejob.h
│       │   │   ├── attica_export.h
│       │   │   ├── atticautils.h
│       │   │   ├── buildservice.h
│       │   │   ├── buildservicejob.h
│       │   │   ├── buildservicejoboutput.h
│       │   │   ├── category.h
│       │   │   ├── comment.h
│       │   │   ├── config.h
│       │   │   ├── content.h
│       │   │   ├── deletejob.h
│       │   │   ├── distribution.h
│       │   │   ├── downloaddescription.h
│       │   │   ├── downloaditem.h
│       │   │   ├── event.h
│       │   │   ├── folder.h
│       │   │   ├── forum.h
│       │   │   ├── getjob.h
│       │   │   ├── homepageentry.h
│       │   │   ├── homepagetype.h
│       │   │   ├── icon.h
│       │   │   ├── itemjob.h
│       │   │   ├── knowledgebaseentry.h
│       │   │   ├── license.h
│       │   │   ├── listjob.h
│       │   │   ├── message.h
│       │   │   ├── metadata.h
│       │   │   ├── person.h
│       │   │   ├── platformdependent.h
│       │   │   ├── platformdependent_v2.h
│       │   │   ├── postjob.h
│       │   │   ├── privatedata.h
│       │   │   ├── project.h
│       │   │   ├── provider.h
│       │   │   ├── providermanager.h
│       │   │   ├── publisherfield.h
│       │   │   ├── publisher.h
│       │   │   ├── putjob.h
│       │   │   ├── remoteaccount.h
│       │   │   ├── topic.h
│       │   │   └── version.h
│       │   └── Attica
│       │       ├── AccountBalance
│       │       ├── Achievement
│       │       ├── Activity
│       │       ├── BuildService
│       │       ├── BuildServiceJob
│       │       ├── BuildServiceJobOutput
│       │       ├── Category
│       │       ├── Comment
│       │       ├── Config
│       │       ├── Content
│       │       ├── DeleteJob
│       │       ├── Distribution
│       │       ├── DownloadDescription
│       │       ├── DownloadItem
│       │       ├── Event
│       │       ├── Folder
│       │       ├── Forum
│       │       ├── GetJob
│       │       ├── HomePageEntry
│       │       ├── HomePageType
│       │       ├── Icon
│       │       ├── ItemJob
│       │       ├── KnowledgeBaseEntry
│       │       ├── License
│       │       ├── ListJob
│       │       ├── Message
│       │       ├── Metadata
│       │       ├── Person
│       │       ├── PostJob
│       │       ├── PrivateData
│       │       ├── Project
│       │       ├── Provider
│       │       ├── ProviderManager
│       │       ├── Publisher
│       │       ├── PublisherField
│       │       ├── PutJob
│       │       ├── RemoteAccount
│       │       └── Topic
│       └── attica_version.h
├── lib64
│   ├── cmake
│   │   └── KF5Attica
│   │       ├── KF5AtticaConfig.cmake
│   │       ├── KF5AtticaConfigVersion.cmake
│   │       ├── KF5AtticaTargets.cmake
│   │       └── KF5AtticaTargets-release.cmake
│   ├── libKF5Attica.so -> libKF5Attica.so.5
│   ├── libKF5Attica.so.5 -> libKF5Attica.so.5.73.0
│   ├── libKF5Attica.so.5.73.0
│   └── pkgconfig
│       └── libKF5Attica.pc
├── mkspecs
│   └── modules
│       └── qt_Attica.pri
└── share
    └── qlogging-categories5
        ├── attica.categories
        └── attica.renamecategories

13 directories, 94 files

libKF5Attica.tree.txt
Code: [Select]
/tmp/libKF5Attica/
├── attica-5.73.0.tar.xz
├── libKF5Attica.tcz
├── libKF5Attica.tcz.list
├── libKF5Attica.tcz.md5.txt
└── squashfs-root
    └── usr
        └── local
            ├── lib
            │   ├── libKF5Attica.so -> libKF5Attica.so.5
            │   ├── libKF5Attica.so.5 -> libKF5Attica.so.5.73.0
            │   ├── libKF5Attica.so.5.73.0
            └── share
                └── qlogging-categories5
                    ├── attica.categories
                    └── attica.renamecategories

9 directories, 14 files

libKF5Attica-dev.tree.txt
Code: [Select]
/tmp/libKF5Attica-dev/
├── libKF5Attica-dev.tcz
├── libKF5Attica-dev.tcz.dep
├── libKF5Attica-dev.tcz.list
├── libKF5Attica-dev.tcz.md5.txt
└── squashfs-root
    └── usr
        └── local
            ├── include
            │   └── KF5
            │       ├── Attica
            │       │   ├── attica
            │       │   │   ├── accountbalance.h
            │       │   │   ├── achievement.h
            │       │   │   ├── activity.h
            │       │   │   ├── atticabasejob.h
            │       │   │   ├── attica_export.h
            │       │   │   ├── atticautils.h
            │       │   │   ├── buildservice.h
            │       │   │   ├── buildservicejob.h
            │       │   │   ├── buildservicejoboutput.h
            │       │   │   ├── category.h
            │       │   │   ├── comment.h
            │       │   │   ├── config.h
            │       │   │   ├── content.h
            │       │   │   ├── deletejob.h
            │       │   │   ├── distribution.h
            │       │   │   ├── downloaddescription.h
            │       │   │   ├── downloaditem.h
            │       │   │   ├── event.h
            │       │   │   ├── folder.h
            │       │   │   ├── forum.h
            │       │   │   ├── getjob.h
            │       │   │   ├── homepageentry.h
            │       │   │   ├── homepagetype.h
            │       │   │   ├── icon.h
            │       │   │   ├── itemjob.h
            │       │   │   ├── knowledgebaseentry.h
            │       │   │   ├── license.h
            │       │   │   ├── listjob.h
            │       │   │   ├── message.h
            │       │   │   ├── metadata.h
            │       │   │   ├── person.h
            │       │   │   ├── platformdependent.h
            │       │   │   ├── platformdependent_v2.h
            │       │   │   ├── postjob.h
            │       │   │   ├── privatedata.h
            │       │   │   ├── project.h
            │       │   │   ├── provider.h
            │       │   │   ├── providermanager.h
            │       │   │   ├── publisherfield.h
            │       │   │   ├── publisher.h
            │       │   │   ├── putjob.h
            │       │   │   ├── remoteaccount.h
            │       │   │   ├── topic.h
            │       │   │   └── version.h
            │       │   └── Attica
            │       │       ├── AccountBalance
            │       │       ├── Achievement
            │       │       ├── Activity
            │       │       ├── BuildService
            │       │       ├── BuildServiceJob
            │       │       ├── BuildServiceJobOutput
            │       │       ├── Category
            │       │       ├── Comment
            │       │       ├── Config
            │       │       ├── Content
            │       │       ├── DeleteJob
            │       │       ├── Distribution
            │       │       ├── DownloadDescription
            │       │       ├── DownloadItem
            │       │       ├── Event
            │       │       ├── Folder
            │       │       ├── Forum
            │       │       ├── GetJob
            │       │       ├── HomePageEntry
            │       │       ├── HomePageType
            │       │       ├── Icon
            │       │       ├── ItemJob
            │       │       ├── KnowledgeBaseEntry
            │       │       ├── License
            │       │       ├── ListJob
            │       │       ├── Message
            │       │       ├── Metadata
            │       │       ├── Person
            │       │       ├── PostJob
            │       │       ├── PrivateData
            │       │       ├── Project
            │       │       ├── Provider
            │       │       ├── ProviderManager
            │       │       ├── Publisher
            │       │       ├── PublisherField
            │       │       ├── PutJob
            │       │       ├── RemoteAccount
            │       │       └── Topic
            │       └── attica_version.h
            ├── lib
            │   ├── cmake
            │   │   └── KF5Attica
            │   │       ├── KF5AtticaConfig.cmake
            │   │       ├── KF5AtticaConfigVersion.cmake
            │   │       ├── KF5AtticaTargets.cmake
            │   │       └── KF5AtticaTargets-release.cmake
            │   └── pkgconfig
            │       └── libKF5Attica.pc
            └── mkspecs
                └── modules
                    └── qt_Attica.pri

14 directories, 93 files

thx
Billy
Rio Del Mar, California
« Last Edit: August 27, 2020, 01:19:16 PM by Rudock1 »

Offline Juanito

  • Administrator
  • Hero Member
  • *****
  • Posts: 14815
Re: Advice needed for building "-dev.tcz" extensions
« Reply #9 on: August 27, 2020, 01:24:01 PM »
#3. need maybe a symbolic link between /lib64 and /usr/local/lib? (haven't made one yet)

You shouldn't have anything in /lib64, /usr/lib64 or /usr/local/lib64, you can either:

* recompile with a configure switch to block lib64 (use "cmake -LAH -DCMAKE_INSTALL_PREFIX=blah-blah" to get a (long) list of configure switches)
or
* move the files from lib64 to lib, but remember to correct any *.pc and *.cmake files that reference lib64

Offline Rudock1

  • Jr. Member
  • **
  • Posts: 62
Re: Advice needed for building "-dev.tcz" extensions
« Reply #10 on: August 28, 2020, 03:22:42 PM »
Thank you, Juanito.

Above I noted using: -DCMAKE_INSTALL_PREFIX=$KF5_PREFIX
You suggested I review cmake .. -LAH

great advice, it showed:
// Install path prefix, prepended onto install directories.
CMAKE_INSTALL_PREFIX:PATH=

Meaning nothing was actually defined for $KF5_PREFIX  ... oops

I now know about http://www.linuxfromscratch.org/blfs/view/svn/kde/kf5-intro.html
export KF5_PREFIX=/usr/local

On further review I found several KDE_INSTALL path variables unset, notably:
Code: [Select]
// executables and libraries ()
KDE_INSTALL_EXECROOTDIR:PATH=

// object code libraries (EXECROOTDIR/lib64)
KDE_INSTALL_LIBDIR:PATH=

So, after a few experiments, I found this cmake configuration command eliminated the /lib64 problem, and placed all the files under the Tiny Core /usr/local structure
Code: [Select]
cmake .. -DCMAKE_INSTALL_PREFIX=$KF5_PREFIX \
         -DCMAKE_PREFIX_PATH=$QT5DIR        \
         -DCMAKE_BUILD_TYPE=Release         \
         -DBUILD_TESTING=OFF                \
         -Wno-dev                           \
         -DCMAKE_C_FLAGS_RELEASE="-flto -mtune=generic -Os -pipe" \
         -DCMAKE_CXX_FLAGS_RELEASE="-flto -mtune=generic -Os -pipe -fno-exceptions -fno-rtti" \
         -DKDE_INSTALL_EXECROOTDIR=/usr/local \
         -DKDE_INSTALL_LIBDIR=/usr/local/lib

cmake --build . -- -B install/strip DESTDIR=/tmp/my_attica

thanks again!
Billy
Rio Del Mar, California