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

Handle all debian/configure tasks using build profiles and options #1835

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

petterreinholdtsen
Copy link
Collaborator

Using the 'nodoc' Debian package profile and build option to
control the creation of documentation packages.

Updated minmum debhelper compat level from 9 to 10, matching the level
in Debian Buster. Drop code to set higher compat level on newer versions
of Debian.

Uses versioned alternative depends to control the readline and
texlive-xetex build dependency.

Updated all build scripts and documentation to reflect that the
debian/configure script is obsolete.

@petterreinholdtsen petterreinholdtsen changed the title WIP: Move all task from debian/configure into normal debian/* files WIP: Handle all debian/configure tasks using build profiles and options Jul 14, 2022
@petterreinholdtsen petterreinholdtsen changed the title WIP: Handle all debian/configure tasks using build profiles and options Handle all debian/configure tasks using build profiles and options Jul 14, 2022
@jepler
Copy link
Contributor

jepler commented Jul 16, 2022

I've put the current "merge" version of this PR as a branch on linuxcnc/linuxcnc so that buildbot can try it out. The branch is called test-1835. If it passes on buildbot I'm good with merging this.

@jepler
Copy link
Contributor

jepler commented Jul 16, 2022

in particular a nodoc build profile will be loved!

@SebKuzminsky
Copy link
Collaborator

Our current packaging supports just one realtime target: Preempt-RT. Historically we have supported multiple realtime targets (with different build-dependencies), eg Preempt-RT and RTAI. We handled this by having debian/configure generate debian/control with different things listed in Build-Depends, and different package names (ie linuxcnc-uspace for Preempt-RT and linuxcnc-rtai for RTAI). How would this proposed PR handle that situation (assuming we ever manage to get packaging going for another realtime target)?

@petterreinholdtsen
Copy link
Collaborator Author

petterreinholdtsen commented Jul 16, 2022 via email

@jepler
Copy link
Contributor

jepler commented Jul 19, 2022

I'd like to add that, if we are bringing back an RTAI-based linuxcnc package, it should also be "uspace" using the "lxrt" API of RTAI. This means we don't need kernel modules (though we'd probably still be tied to a particular RTAI kernel version). This would involve a separate, additional "linuxcnc-uspace-lxrt" package, rather than an independent "linuxcnc" (non-uspace) package.

@jepler
Copy link
Contributor

jepler commented Jul 19, 2022

The build did succeed on buildbot: http://buildbot.linuxcnc.org/buildbot/builders/0000.checkin/builds/8958

Using the 'nodoc' Debian package profile and build option to
control the creation of documentation packages.

Updated minmum debhelper compat level from 9 to 10, matching the level
in Debian Buster.  Drop code to set higher compat level on newer versions
of Debian.

Uses versioned alternative depends to control the readline and
texlive-xetex build dependency.

Updated all build scripts and documentation to reflect that the
debian/configure script is obsolete.
@smoe
Copy link
Contributor

smoe commented Aug 9, 2022

This looks good to me. My two concerns are that this may conflict with @SebKuzminsky's work in #1887 and that I do not have the immediate overview if the -A and -B flags still work (but they should, would accept this and then fix that if not working).

@petterreinholdtsen
Copy link
Collaborator Author

petterreinholdtsen commented Aug 9, 2022 via email

@smoe
Copy link
Contributor

smoe commented Dec 20, 2022

[Sebastian Kuzminsky]
Our current packaging supports just one realtime target: Preempt-RT. Historically we have supported multiple realtime targets (with different build-dependencies), eg Preempt-RT and RTAI. We handled this by having debian/configure generate debian/control with different things listed in Build-Depends, and different package names (ie linuxcnc-uspace for Preempt-RT and linuxcnc-rtai for RTAI). How would this proposed PR handle that situation (assuming we ever manage to get packaging going for another realtime target)?
My approach would be to use build profiles for this, similar to how the nodoc profile is handled.

These build profiles (https://wiki.debian.org/BuildProfileSpec) have d/rules interpret the DEB_BUILD_OPTIONS environment variable. I do not know how this can have an effect on the set of binary packages that d/configure influences since the d/control.*.in files would be gone, but d/rules has all the flexibility of the world. This also means that the dh commands could be passed various options to not create the one or other package.

@smoe
Copy link
Contributor

smoe commented Oct 7, 2023

Looked through it again and still liked it. The only concern is that this patch takes the need for debian/configure away (which is also the major motivation behind this PR). Some smallish updates are required beyond the conflicts now that the PR was bitrotting for quite a while. A safe thing to do for 2.10, unsure about 2.9 not knowing about how much our build infrastructure depends on the debian/configure script.

@smoe smoe removed their assignment Oct 7, 2023
@andypugh
Copy link
Collaborator

andypugh commented Oct 8, 2023

One thing that configure does is decide which realtime system is being built for. It can be preempt-rt, RTAI, Xenomai, RTAi-LXRT OR Xenomai-LXRT. Admittedly all but two of those are very niche and probably have no actual users.
This sets flags that alter a lot of conditional compilation.

@smoe
Copy link
Contributor

smoe commented Oct 8, 2023

And if we just have more packages and build both preempt and RTAI as the presumed most common flavours?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants