LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Newbie (https://www.linuxquestions.org/questions/linux-newbie-8/)
-   -   cmake related issue.. (https://www.linuxquestions.org/questions/linux-newbie-8/cmake-related-issue-4175691084/)

andrewysk 02-24-2021 03:08 PM

cmake related issue..
 
Can someone with better comprehensive of english tell me what does this means ?
Does it imply that my existing cmake is too old , not supported to make this package ?

Code:

CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

I am trying to build grive2 to have access to google drive.


Code:

~/grive2/grive2/build
$ cmake ..
CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


CMake Warning at CMakeLists.txt:8 (message):
  Version to build: 0.5.2-dev


-- Found libgcrypt: -lgcrypt -lgpg-error
CMake Error at /usr/share/cmake-3.19/Modules/FindPackageHandleStandardArgs.cmake:218 (message):
  Could NOT find Boost (missing: Boost_INCLUDE_DIR program_options filesystem
  unit_test_framework regex system) (Required is at least version "1.40.0")
Call Stack (most recent call first):
  /usr/share/cmake-3.19/Modules/FindPackageHandleStandardArgs.cmake:582 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake-3.19/Modules/FindBoost.cmake:2208 (find_package_handle_standard_args)
  libgrive/CMakeLists.txt:8 (find_package)


-- Configuring incomplete, errors occurred!
See also "/home/userw/grive2/grive2/build/CMakeFiles/CMakeOutput.log".

I wanted to check if my existing cmake is old (or got newer version of cmake available online), but i don't know how to check, since arch linux does not allow partial update...
how ?


Code:

$ pacman -Ss cmake
extra/cmake 3.19.5-1 [installed]
    A cross-platform open-source make system
extra/extra-cmake-modules 5.79.0-1 (kf5) [installed]
    Extra modules and scripts for CMake
community/cmake-fedora 2.9.3-3
    CMake helper modules for fedora developers
community/icmake 9.03.01-1
    A program maintenance (make) utility using a C-like grammar
community/leatherman 1.12.2-3
    Collection of C++ and CMake utility libraries
community/liri-cmake-shared 1.1.0-2 (liri)
    Extra imports and modules for Cmake
community/perl-alien-cmake3 0.05-3
    Find or download or build cmake 3 or better


shruggy 02-24-2021 03:41 PM

Check https://cmake.org. The latest release is 3.19.6. Your CMake is in no way old. The warning is about the minimal CMake version set in CMakeLists.txt for grive2 and is just this, a warning.

The error message is unrelated, it says boost is missing, so install boost.

andrewysk 02-24-2021 04:12 PM

Quote:

Originally Posted by shruggy (Post 6224182)
Check https://cmake.org. The latest release is 3.19.6. Your CMake is in no way old. The warning is about the minimal CMake version set in CMakeLists.txt for grive2 and is just this, a warning.

The error message is unrelated, it says boost is missing, so install boost.



Thank you for explaining that to me. I have to ask for apology first before asking these 3 stupid questions, but i wish to know the answer.

P1:
Since this has to do with version, i would like to ask again regarding partial update.

I still can't believe i can't update a package such "cmake" all by itself without having to do "pacman -Syu".
Maybe i can reinstall (install over existing version) the package , then i can update the package without having to invoke "pacman -Syu" , if i am in hurry.
What is your way if you need to update 1 or 2 program without wanting to update the whole system ..
**I asked because in my previous post, @boughtonp said "You want to do a partial upgrade. Arch doesn't support that."
if Arch does not support me update a software without doing the whole system update (pacman -Syu)... at least i can uninstall the package and reinstall it right ? this way i can update a single package. Am i right ?


P2:
Code:

Could NOT find Boost (missing: ......
Since linux is case sensitive...

I went to do a search for "Boost", but there is only "boost" .. it is small b.. not capital B..
It is weird the program wrote it with the wrong case.
Code:

$ sudo pacman -S Boost
error: target not found: Boost

Code:

$ sudo pacman -S boost
resolving dependencies...
looking for conflicting packages...

P3:
Code:

Check https://cmake.org. The latest release is 3.19.6.
You showed me the official webpage of cmake to show me the latest version of cmake.

Is that the proper way to know if my software is latest version (by going to each individual software webpage ) ?
Can you show me how linux users check if their software is old (there is newer version) the proper way ? I can't believe they actually check webpage to see if latest..

Is there cli way ? or proper way ?

Thx

shruggy 02-25-2021 10:58 AM

P1. But why would you want a partial upgrade? Especially on Arch. Arch is a rolling-release distro. It is supposed to be kept up-to-date at all times. Even if you could somehow conjure pacman to only upgrade individual packages, that would definitely break the system sooner or later.

If a stable and solid base is what you want, there are other distributions that offer precisely this: Debian Stable, Slackware, CentOS, etc. E.g. Debian and Ubuntu LTS provide backport repositories, so you can pick newer versions of some select packages and install them on stable releases. Besides, there are all those newfangled snaps/flatpaks/appimages that often allow your to install and test out beta versions or nightly builds of popular software not interfering with the rest of the system. That said, even on those stable distros a partial upgrade is not the usual mode of operation. Say in Debian, if you know a new version from repository will break things for you then you can put a package or two on hold so they won't be upgraded and upgrade the rest.

OTOH, mixing packages from different releases is not recommended. See Don't make a FrankenDebian in Debian Wiki. BTW, the consequences described in that article are similar to what you will get after a partial upgrade of Arch. Consider that each upgrade of Arch quasi constitutes a new distro release.

P2. The upstream project name is Boost, but the Arch package name is boost because all package names in Arch must be lowercase. Although in this particular case Arch probably just follows the upstream that also names their packages boost. Generally speaking, Arch is not as extreme as Debian in changing upstream names, paths and conventions, but it is not Slackware either to be religiously sticking to the upstream ways.

P3. Well, the official website or code repo is always the most authoritative source.

But Arch is generally very up-to-date, this is not the kind of distro where you should be concerned that you're behind the curve.

If I want to compare versions of a software package provided by different distros, I usually go to https://pkgs.org or to https://repology.org.

On the command line, similar data were previously provided by whohas. It still sort of works, but its development being mostly stalled for the last three years, it now requires quite a bit of patching and manual configuration to be really useful. As packaged in AUR, it's just the latest official release 0.29.1 of May 2015. As you can imagine, the things changed quite a bit since then in the Linux world. Some of the URLs whohas uses are not there or not updated anymore.

andrewysk 02-25-2021 05:48 PM

Your info is concise and VERY helpful. Thanks
 
Quote:

Originally Posted by shruggy (Post 6224470)
P1. See Don't make a FrankenDebian in Debian Wiki.

This URL teaches me that if i just update (for example ) OBS, it will also updates other packages (that i don't see) that needed for OBS.. and those packages will destablize the whole os, because it could be that OS also need those packages. Newer packages might not compatible with current OS.. that's the reason why it is not stable when doing partial update.

So, that means if i update my OBS, i can't. I can only do a whole system update, and whatever the
Code:

pacman -Syu
gave me, that's i have to accept.. no but. That's is good in term of stability, but suck in term of my own control.
For example, everytime i did a major
Code:

pacman -Syu
, i realized my background picture changed to something else and the whole launcher interface changed.. I was Shocked! Thinking this is a bit like microsoft os; which i used to described as,
Code:

everytime they produce a "car", we have to retake learning class to learn how to use the car.
HOWEVER, i just realized, (let's take teamviewer for example), there are so many teamviewer versions available in pamac -gui under AUR. There are version 10, 12, 15...etc I don't know what's the difference, why there are so many version.. maybe it is for the sake of user choices..


Quote:

Originally Posted by shruggy (Post 6224470)
P2. all package names in Arch must be lowercase

Got it, loud and clear. Thx

Quote:

Originally Posted by shruggy (Post 6224470)
P3. Well, the official website or code repo is always the most authoritative source.

But Arch is generally very up-to-date, this is not the kind of distro where you should be concerned that you're behind the curve.

If I want to compare versions of a software package provided by different distros, I usually go to https://pkgs.org or to https://repology.org.

Understood. So, no linux user check their software version.. they just do
Code:

pacman -Syu
and accept whatever the whole system update gives them.
Some do use git and build it manually. , but no linux user use
Code:

whohas cli
method anymore.

Thanks. Your concise info really helps me a lot. Appreciate it.

shruggy 02-25-2021 07:10 PM

Quote:

Originally Posted by andrewysk (Post 6224606)
So, no linux user check their software version.

Why? To take OBS as an example,
https://repology.org/project/obs-studio
https://pkgs.org/download/obs-studio
https://release-monitoring.org/project/7239
https://www.openhub.net/p/obs-studio

X-LFS-2010 02-27-2021 08:25 PM

which version of Cmake? you don't think they aren't going to give you version "can't compile wrong cmake version" do you?

if you dont' like it, switch to something which ... doesn't version bite you all the time

andrewysk 02-28-2021 08:04 AM

Quote:

Originally Posted by X-LFS-2010 (Post 6225526)
which version of Cmake? you don't think they aren't going to give you version "can't compile wrong cmake version" do you?

if you dont' like it, switch to something which ... doesn't version bite you all the time

Huh? I don't have any problem with Cmake nor version. I just faced something i don't know how to over come.. not that i have problem with it.. just need someone to explain the reason and way to over come it..
I don't know why you said like i don't like come version of Cmake.. anyway.. Conflict in language is a common thing.. so i don't blame you if you mis understood me.
Anyway, this is solved and closed already (even before you post this :-)

dugan 02-28-2021 08:18 AM

The warnings are about how the CMake script is written in a way that would be appropriate for an older version of CMake. They are not about your CMake executable being too old.

andrewysk 02-28-2021 08:25 AM

Quote:

Originally Posted by dugan (Post 6225686)
The warnings are about how the CMake script is written in a way that would be appropriate for an older version of CMake. They are not about your CMake executable being too old.

Code:

CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

It is just "shocking" at least to me, the language used by programmer... very hard to understand (to a layman such I :-)
Let's me read out what this means to me:

" Compatibility with CMake < 2.8.12 will be removed from a future version of CMake "

comaptibility with Cmake version greater than 2.8.12 will be removed from a future version of Cmake.

Version greater than 2.8.12 will be removed ???? that's just does not make any sence..
If it says, version older than 2.8.12 will be removed from support in the future.. than i understand perfectly..

All these programmer language made me don't understand....

shruggy 02-28-2021 08:30 AM

Quote:

Originally Posted by andrewysk (Post 6225689)
" Compatibility with CMake < 2.8.12 will be removed from a future version of CMake "

comaptibility with Cmake version greater than 2.8.12 will be removed from a future version of Cmake.

This is not the language, this is math. < means "less than" , not "greater than".

andrewysk 02-28-2021 08:59 AM

Oh.. i get it now.. my bad. Got it now , totally.

Appreciate it.
TQ


All times are GMT -5. The time now is 03:57 PM.