Differences between revisions 5 and 7 (spanning 2 versions)
Revision 5 as of 2019-09-07 18:07:39
Size: 3875
Editor: nodiscc
Comment: add CategoryPackaging
Revision 7 as of 2020-04-02 00:53:03
Size: 3882
Editor: PaulWise
Comment: use the wiki link
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
I copy interesting info I recieved from Riku Voipio and Luk Claes on the bug report [[DebianBug:461088|Bug#461088]] for gsynaptics with some minor edits to fit to the wiki. I copy interesting info I received from Riku Voipio and Luk Claes on the bug report [[DebianBug:461088|Bug#461088]] for gsynaptics with some minor edits to fit to the wiki.
Line 5: Line 5:
We have several overlapping mechanisms to avoid building packages on selected architectures. Worse, we don't have any proper instructions explaining which mechaism to use. We have several overlapping mechanisms to avoid building packages on selected architectures. Worse, we don't have any proper instructions explaining which mechanism to use.
Line 16: Line 16:
the package to build (why?), but sbuild will fail it immeadetly. the package to build (why?), but sbuild will fail it immediately.
Line 26: Line 26:
This is used on packages that build some binary on all archs and some on only selected ones. This is very usefull unless misused. This is used on packages that build some binary on all archs and some on only selected ones. This is very useful unless misused.
Line 32: Line 32:
buildd maintainer sets this. From [[http://www.debian.org/devel/buildd/wanna-build-states|wanna-build docs]]: buildd maintainer sets this. From [[https://www.debian.org/devel/buildd/wanna-build-states|wanna-build docs]]:
Line 34: Line 34:
  there's need for a way to list packages for which even an attempt to build isn't required. The first solution to this problem was not-for-us; however, as that is difficult to maintain, not-for-us is deprecated nowadays; autobuilder maintainers should use packages-arch-specific instead. There's a need for a way to list packages for which even an attempt to build isn't required. The first solution to this problem was not-for-us; however, as that is difficult to maintain, not-for-us is deprecated nowadays; autobuilder maintainers should use packages-arch-specific instead.
Line 36: Line 36:
From Riku's armel short buildd maintainance experience, he can't see why n-f-u is more difficult to maintain. neither n-f-u or p-a-s have any connection to what package maintainer defines in Architecture: strings. From Riku's armel short buildd maintenance experience, he can't see why n-f-u is more difficult to maintain. neither n-f-u or p-a-s have any connection to what package maintainer defines in Architecture: strings.
Line 52: Line 52:
[[https://buildd.debian.org/quinn-diff/Packages-arch-specific|packages-arch-specific (p-a-s)]] makes package never appear in wanna-build. It will [[PackagesArchSpecific|packages-arch-specific (p-a-s)]] makes package never appear in wanna-build. It will
Line 54: Line 54:
It' maintained by three people who manually update it.
Any technical advantage this approarch has over n-f-u
is completly negated by the fact the people who are supposed
It is maintained by the [[Teams/DebianBuildd|Debian Build Daemon support Team]] who manually update it.
Any technical advantage this approach has over n-f-u
is completely negated by the fact the people who are supposed
Line 69: Line 69:
Line 77: Line 76:

Creating package without some particular architecture

I copy interesting info I received from Riku Voipio and Luk Claes on the bug report Bug#461088 for gsynaptics with some minor edits to fit to the wiki.

We have several overlapping mechanisms to avoid building packages on selected architectures. Worse, we don't have any proper instructions explaining which mechanism to use.

(!) For short term generic solution, Riku suggested using "Option 6" to generate architecture strings.

(!) For gsynaptics which can be blocked by xfree86-driver-synaptics, "Option 3" or "Option 4" can be used.

Option 1: Architecture: list in package source

This is what gsynaptics does now. wanna-build will still offer the package to build (why?), but sbuild will fail it immediately. Annoyingly maintainers can't define negations (!s390).

It's still offered for building as it might only be temporary relevant and buildd maintainers and/or porters might want to look into it. sbuild will fail as that's what one expects it to do without changing the Arch-field.

Option 2: Architecture: list on binary section

This is used on packages that build some binary on all archs and some on only selected ones. This is very useful unless misused.

(!) probably should be used more often for particular kind of packages...

Option 3: Wanna-build state not-for-us.

buildd maintainer sets this. From wanna-build docs:

There's a need for a way to list packages for which even an attempt to build isn't required. The first solution to this problem was not-for-us; however, as that is difficult to maintain, not-for-us is deprecated nowadays; autobuilder maintainers should use packages-arch-specific instead.

From Riku's armel short buildd maintenance experience, he can't see why n-f-u is more difficult to maintain. neither n-f-u or p-a-s have any connection to what package maintainer defines in Architecture: strings.

Luk stated "You can't document why it's in n-f-u AFAICS and one can't easily have a listing of packages per issue probably."

Option 4: wanna-build state dep-wait

One option would be to put gsynaptics to dep-wait on xfree86-driver-synaptics. Thus buildd would not try to build it unless xfree86-driver-synaptics becomes some day available on s390. While X on s390 might seem unlikely, stranger things have happened.

Luk stated "Perfectly reasonable IMHO."

Option 5: packages-arch-specific

packages-arch-specific (p-a-s) makes package never appear in wanna-build. It will never by tried to be built on architectures defined there. It is maintained by the Debian Build Daemon support Team who manually update it. Any technical advantage this approach has over n-f-u is completely negated by the fact the people who are supposed to update it ignore my requests to update it... Since it's manually updated, it has gathered a lot of cruft.

%xfree86-driver-synaptics: !s390 # Needs %xserver-xfree86

For some unknown reason, this was not a acceptable solution for gsynaptics/ksynaptics, but was for xfree86-driver-synaptics.

Luk stated "It is also not being built on other suites then the one were it sometimes is meant not to build anymore... Some updates go quickly, others take time, I guess that's because there are only a few persons who can update it..."

Option 6: type-handling

This is a kludge that has been written to workaround problems in rest of the architecture selection system. In practice it seems to work very well.

Luk stated "I guess one can see this as a dynamic case of "Architecture: list in package source" and "Architecture: list on binary section"?"


CategoryPackaging