Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Please provide installable packages (rpm,deb) for Linux distros... #84

Closed
15knots opened this issue Mar 7, 2015 · 15 comments
Closed

Please provide installable packages (rpm,deb) for Linux distros... #84

15knots opened this issue Mar 7, 2015 · 15 comments

Comments

@15knots
Copy link

15knots commented Mar 7, 2015

.. to save time, disk space and bandwidth
.. to allow the use of cmakepp in build systems that diable network access during the build

I am willing to help with that.

Martin

@toeb
Copy link
Owner

toeb commented Mar 7, 2015

Hi Martin,

thanks for the issue. I need some clarification Do you want to have cmakepp inside a rpm/deb or do you want to use cmakepp to retrieve these packages?

if you mean the first:
I am not familiar creating install packages for linux - but I think that travis ci has a publishing mechanism for that. If so that would be the way to go as I want all releases to be automated. (after a successful build cmakepp already compiles itself into a single large cmake file which is appended then released in github's release section. ) If you would create a pull request which contains a script file in the build folder which automates the creation this would be fantastic.

If you mean the latter:
creating package_sources for apt or similar would be very nice. to do that you would just have to look at existing package_sources and implement the query, resolve and pull methods.

@15knots
Copy link
Author

15knots commented Mar 7, 2015

Am Samstag, 7. M�rz 2015, 11:37:01 schrieb Tobias Becker:

Hi Martin,

Hi Tobias,

thanks for the issue. I need some clarification Do you want to have
cmakepp inside a rpm/deb or do you want to use cmakepp to retrieve these

I want cmakepp inside an rpm.
To accomplish that, I could first create a project on OBS
https://build.opensuse.org/project/show/home:15knots where at least the SUSE
distros get build.
If cmakepp proves to be useful, I could later ask the SUSE guys to put it into
their distro. They already have cmake
https://build.opensuse.org/project/show/openSUSE:Factory

Whith OBS, it is possible to build rpms for Fedora and other rpm based
distros, too.
I am familiar creating rpms, .deb packages require some investigation.

OBS also has some kind of integration to github which could automatically
trigger an rpm rebuild if a new relsease of cmakepp arrives.

Do you think, that would help to spread cmakepp?

BTW: The command name 'icmake' is already occupied in the linux world:
linux:~ # zypper info icmake

Information for package icmake:

Repository: openSUSE-13.1-Oss
Name: icmake
Version: 7.20.00-2.1.2
Arch: i586
Vendor: openSUSE
Installed: No
Status: not installed
Installed Size: 523.1 KiB
Summary: A program maintenance (make) utility using a C-like grammar
Description:
Icmake allows the programmer to use a program language (closely
resembling the well-known C-programming language) to define the
actions involved in (complex) program maintenance. For this, icmake
offers various special operators as well as a set of support functions
that have proven to be useful in program maintenance.

Cd wrttn wtht vwls s mch trsr.

@toeb
Copy link
Owner

toeb commented Mar 7, 2015

Ok sounds good.

I added an issue to rename icmake (i'll do that as soon as I get a change) as I primarily use that for testing purposes.

I am all for spreading cmakepp and I think that install packages are a good possibility - if you would take that upon yourself I would be very happy :) The only concern I have is that it has to be automatically mantained - automation is a main aspect of cmakepp I want it itself to adhere to it.

@15knots
Copy link
Author

15knots commented Mar 7, 2015

Am Samstag, 7. M�rz 2015, 12:06:27 schrieb Tobias Becker:

Ok sounds good.

I added an issue to rename icmake (i'll do that as soon as I get a change)
as I primarily use that for testing purposes.

I am all for spreading cmakepp and I think that install packages are a good
possibility - if you would take that upon yourself I would be very happy :)

Ok, I will setup up a home-project on OBS. Once that is building, you could
add an link on the cmakepp site, where users can download RPMs.

The only concern I have is that it has to be automatically mantained -
automation is a main aspect of cmakepp I want it itself to adhere to it.

Well, complete automation to build newer versions of cmakepp as rpms will
not be possible: Someone has to add some changelog files:-)

Martin

Cd wrttn wtht vwls s mch trsr.

@15knots
Copy link
Author

15knots commented Mar 7, 2015

Am Samstag, 7. M�rz 2015, 12:06:27 schrieb Tobias Becker:

Ok sounds good.

https://build.opensuse.org/package/show/home:15knots/cmakepp

Will I get all the sources with the download link on github
https://github.com/toeb/cmakepp/archive/master.zip ?

Cd wrttn wtht vwls s mch trsr.

@toeb
Copy link
Owner

toeb commented Mar 8, 2015

you can get all sources when you download https://github.com/toeb/cmakepp/releases a release.
it also privides you with a single cmake file cmakepp.cmake which contains all of cmakepp with no external dependencies

@15knots
Copy link
Author

15knots commented Mar 8, 2015

Ok, preview rpms are available at
https://build.opensuse.org/package/show/home:15knots/cmakepp
now. You will find some distros marked as unresolvable there, because cmakepp requires cmake 2.8.12, but some distros only have older versions. (My openSUSE 13.1 has 2.8.11, RHEL/Centos are still at 2.6.x). Would cmakepp work with 2.8.11?

I decided to build and put the all-in-one cmakepp.cmake inside the rpm instead of multiple files. Please tell me if that decision will lead to problems.
cmakepp.cmake gets installed in /usr/share/cmake/Modules, is that correct?

And now for the bad news.

  • No docs in the rpm for now. I did not build the docs, since 09-download-build-use-jsoncpp needs network access, which is not given at build time. (Too lazy to figure out to exclude some samples from cmakepp_compile_docs)
    See the %build section in https://build.opensuse.org/package/view_file/home:15knots/cmakepp/cmakepp.spec?expand=1
    Anyway, markdown docs may be ok for online doc, but for offline docs, something like manpages/info/html should be delivered.
  • Tests are not run. tests/CommandRunnerAddRunCOmmand fails, so I disabled tests for the first. (Found no way to exclude that test from being run)

@15knots
Copy link
Author

15knots commented Mar 8, 2015

Am Samstag, 7. M�rz 2015, 11:37:01 schrieb Tobias Becker:

Hi Martin,

Hi Tobias,

first rpms are out.
I had to truncate the descritpion inside the rpm, more than twenty lines are
considered pad practice.
I tried to list the most relevant features. It now reads:

URL : https://github.com/toeb/cmakepp
Summary : An Enhancement Suite for CMake, the cross-platform build system
Description :
A feature rich set of CMake modules. Features include

  • Creating Checksums
  • Collections and Maps
  • Date/Time
  • Uniform Resource Identifiers
  • Events
  • Objects
  • Process Management
  • Parsing and handling semantic versions
  • Templating
  • HTTP Client

Please contact me, if you fell uncomfortable with that list.

BTW: Thats a lot of features for v 0.0.7. What do you plan for v 1.0.0?

Regards,
Martin

Cd wrttn wtht vwls s mch trsr.

@toeb
Copy link
Owner

toeb commented Mar 8, 2015

cmakepp works with older version of cmake (I did use 2.8.7 ) but not completely - some functions will work some will not.) thats why I specified version 2.8.12 since that is the first version for which all tests work. cmake 2.11 should not be a problem. However travis-ci only tests against 2.8.12, 3.0.xx 3.1.xx

The single file solution is optimal. It does not contain anything unnecessary and should always work.

It may be put into the modules path / however it is not necessary (the best thing is if it is part of PATH) If you want to have access to the aliases cmakepp, icmakepp, ... you should run cmake -P ./cmakepp.cmake cmakepp_setup_environment once. This adds the aliases to ~/.bash-profile
(I haven't tried other shells yet) (Alternatively you can specify the aliases yourself ) Also if possible the CMAKEPP_PATH variable should be set to the location of the file - however this is not a MUST

Currently the cmakepp.cmake file cannot by used by cmake's find_package however this is planned. Therefore having it in the modules path would be a good thing.

The docs are currently split up into different markdown files so they would probably not be useful for manpages. I plan on creating a single doc file in the future (if you want you can add the issue and also tell me what kind of docs would be sensible)

The test commandrunneraddruncommand is obsolete and will be removed in the next release.

I will try to create a condensed abstract less than 20 lines to explain cmakepp :) (I plan on taking some time on documenting everything and creating samples soon. But as you know that is always hard ;))

I do not have a real roadmap for cmakepp but I guess version 1.0.0 should have the completed package management and should they should be stable. As I am trying to adhere to semantic versioning (which I am failing at a bit) the 1 will be added as soon as I am happy with the interface.

@toeb
Copy link
Owner

toeb commented Mar 8, 2015

AH: Thanks for your work.

Would you mind telling what is involved in releasing a newer version?

@15knots
Copy link
Author

15knots commented Mar 8, 2015

Am Sonntag, 8. M�rz 2015, 12:49:29 schrieb Tobias Becker:

cmakepp works with older version of cmake (I did use 2.8.7 ) but not
completely - some functions will work some will not.) thats why I specified
version 2.8.12 since that is the first version for which all tests work.
cmake 2.11 should not be a problem. However travis-ci only tests against

OK, I will try to lower that limit. Adds one more distro.

...

It may be put into the modules path / however it is not necessary (the best
thing is if it is part of PATH) If you want to have access to the aliases

Well, on linux, $path is for command binaries.
Putting the all-in-1 cmakepp.cmake in <dir/for/cmake/modules> would allow
users to sinply include(cmakepp) it. (Did not test yet)

cmakepp, icmakepp, ... you should run cmake -P ./cmakepp.cmake cmakepp_setup_environment once. This adds the aliases to ~/.bash-profile
(I haven't tried other shells yet) (Alternatively you can specify the

I wasn't aware of the aliases yet, but the rpm could add a file in
/etc/profile.d. This would add the aliases for each user on the system. But
that's an issue for the rpm build, not for cmakepp itself.
(Issue cmakepp#85 is a blocker here; but currently, users do not complain
about missing aliases:-)

...

The docs are currently split up into different markdown files so they would
probably not be useful for manpages. I plan on creating a single doc file
in the future (if you want you can add the issue and also tell me what kind
of docs would be sensible)

Well, to be honest here: I do not insist on providing offline docs with the
rpm. Unless users demand offline doc in the rpm, I will be happy, if you
provide online docs on github.

The test commandrunneraddruncommand is obsolete and will be removed in the
next release.

The rpm build invokes
cmake -P ../cmakepp.cmake test_execute_glob ../tests/**.cmake --recurse
Is there a way to exclude commandrunneraddruncommand in the glob?
It would be nice to run the tests in the rpm build.

I will try to create a condensed abstract less than 20 lines to explain

Let me know if it's done. I will update the rpm description accordingly then.
The current description just whas a guess.

I do not have a real roadmap for cmakepp but I guess version 1.0.0 should
have the completed package management and should they should be stable. As

Oops, package management ? I totally missed that. IMHO, cmakepp has lots of
other valuable features. Do you plan to reinvent maven (without the angle
brackets)?

I am trying to adhere to semantic versioning (which I am failing at a bit)
the 1 will be added as soon as I am happy with the interface.

v 0.0.7 seems definitely too shy, if I look at the amount of code and docs.
In terms of semantic versioning, 0.0.7 is the seventh bugfix version of
release number zero.
v 0.7.0 sounds reasonable.
And don't worry, v 0.122.0 would be ok for semantic versioning (dewey
decimals!)

Cd wrttn wtht vwls s mch trsr.

@15knots
Copy link
Author

15knots commented Mar 8, 2015

Am Sonntag, 8. M�rz 2015, 12:50:28 schrieb Tobias Becker:

AH: Thanks for your work.

Would you mind telling what is involved in releasing a newer version?

Sorry, I don't get that question right.

  • Cmakepp team: Writes source code and build scripts portable to many
    platforms and publishes these.
  • Packaging team: Takes published file(s) from cmakepp team, converts/compiles
    these into executables/libs/docs/startup-scripts.
    Puts executables/libs/docs into an installable file (formats:
    rpm,msi,deb,setup.exe,...).
    Adds commands/files-needed-to-smoothly-integrate-cmakepp-into-the-end-user-
    platform to the installable file.
    Places installable files somewhere in the web.
  • End user: Finds cmakepp source. Googles. Finds installable file for her OS
    in the web. Downloads, installs & happies. Donates Cmakepp team.

Conclusion:
If the Cmakepp team decides to releae a new version and wants that to be
available for end users as installable files, the Cmakepp team should inform
the Packaging team. Changelog files or links to will be apperiated.

YOU code, WE package SCNR

Cd wrttn wtht vwls s mch trsr.

@15knots
Copy link
Author

15knots commented Mar 13, 2015

RPMs are published (for 7 distros).
The all-in-one file cmakepp.cmake gets installed in the cmake modules dir (/usr/share/cmake/Modules/).
If I add the line
include(cmakepp)
to my CMakeLists.txt, cmake nicely finds cmakepp.

But see issue #97

@toeb
Copy link
Owner

toeb commented Mar 14, 2015

Thank You! - Shall I Close the Issue?

@15knots
Copy link
Author

15knots commented Mar 14, 2015

Yes, close this.
You can re-open this when you release a new version, so I will get informed

@toeb toeb closed this as completed Mar 18, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants