Difference between pages "FLOP:Kerberos V implementations" and "Test"

(Difference between pages)
(FLOP on krb5 impls)
 
 
Line 1: Line 1:
{{FLOP
+
{{#widget:YouTube16x9|playlist=PL2YVrx9jFJOewYI7f15FahwLOZlFCRqjZ|autoplay=1}}
|Created on=2015/02/06
+
 
|Summary=Funtoo supports two binary-incompatible Kerberos V implementations: MIT and Heimdal. Ebuilds supporting both need to properly depend on them to ensure rebuilds.
+
{{#ask: [[Category:News]] [[Publication Status::Published]]
|Author=Mgorny,
+
|  
|FLOP Status=Pending Review
+
| order=descending
|Reference Bug=FL-2093
+
| sort=Publication Date
 +
| format=feed
 +
| page=full
 +
| title=Funtoo Linux News
 +
| description=Latest Funtoo Linux news
 +
|type=atom
 +
| limit=20
 
}}
 
}}
== Overview ==
 
There are currently two Kerberos V implementations in Funtoo:
 
* MIT Kerberos V ({{Package|app-crypt/mit-krb5}}),
 
* Heimdal ({{Package|app-crypt/heimdal}}).
 
  
Both implementations use the same library names and a partially compatible API. However, they are binary incompatible and use different (non-colliding) SONAMEs.
+
{{#get_web_data:url=http://build.funtoo.org/index.xml|format=xml|use xpath|data=builds=/subarches/subarch[@name='amd64-bulldozer']/@builds}}
 +
;Builds: {{#external_value:builds}}
  
Many of Kerberos V applications support both implementations. In this case, the relevant packages depend on {{Package|virtual/krb5}}. Some applications support only one of the implementations, depending on it directly.
+
asdflk asdlfk asdlf alsdf lasd flasd flasd flasd flasd flasd flasd flas dflasd flasdl flasdf lasdfl alsdf lasdf lasdflafsd la sdf
 +
<div style="align: center;">
 +
[[{{#show: Organization:Brownrice Internet| ?Logo|link=none}}|350px|class=img-orglogo|link=Organization:Brownrice Internet]]<br/>
 +
[[Organization:Brownrice Internet|Learn about Funtoo-friendly organization: Brownrice Internet]]</div>
 +
asdflk asdlfk asdlf alsdf lasd flasd flasd flasd flasd flasd flasd flas dflasd flasdl flasdf lasdfl alsdf lasdf lasdflafsd la sdf
 +
{{fullurl:News:The Many Builds of Funtoo Linux}}
 +
{{#widget:AddThis}}
  
 +
I like the {{f|/etc/make.conf}} file, which can also be referred to as {{f|/etc/portage/make.conf}}. It is a groovy file. Another cool file is {{f|/etc/fstab}}.
  
== Issues with the current solution ==
+
=== make.conf mentions ===
Virtuals are based on assumption that the providers can be switched at runtime. However, since the krb5 implementations are binary-incompatible, switching them at runtime is incorrect and results in the reverse dependencies being broken. Instead, implementation switch needs to be followed by automatic reverse dependency rebuild.
+
  
Furthermore, the lack of explicit implementation control will be an issue if installing both implementations in parallel becomes possible in the future. This could be desired since there are both packages supporting only mit-krb5, as well as packages supporting only heimdal.
+
{{#ask: [[Mentions file::make.conf]]
 
+
| format=category
 
+
== Suggested solution ==
+
The simplest solution seems to be introducing a USE flag in all reverse dependencies that support both mit-krb5 and heimdal. The flag would decide which of the two implementation is used.
+
 
+
An example reverse dependency would look like:
+
{{File|name=example-1.ebuild|body=
+
IUSE="heimdal"
+
RDEPEND="
+
    heimdal? ( app-crypt/heimdal:0= )
+
    !heimdal? ( app-crypt/mit-krb5:0= )"
+
 
}}
 
}}
  
If Kerberos V support is optional, the flags would be combined with the ''kerberos'' feature flag:
+
{{console|body=
{{File|name=example-1.ebuild|body=
+
# ##i##bluetoothctl
IUSE="heimdal kerberos"
+
[##g##NEW##!g##] Controller 00:02:72:C9:62:65 antec [default]
RDEPEND="
+
##bl##[bluetooth]##!bl###power on
    kerberos? (
+
Changing power on succeeded
        heimdal? ( app-crypt/heimdal:0= )
+
##bl##[bluetooth]##!bl### ##i##agent on
        !heimdal? ( app-crypt/mit-krb5:0= )
+
Agent registered
    )"
+
##bl##[bluetooth]##!bl### ##i##scan on
 +
Discovery started
 +
##bl##[bluetooth]##!bl### ##i##devices
 +
Device 00:1F:20:3D:1E:75 Logitech K760
 +
##bl##[bluetooth]##!bl### ##i##pair 00:1F:20:3D:1E:75
 +
Attempting to pair with 00:1F:20:3D:1E:75
 +
[##y##CHG##!y##] Device 00:1F:20:3D:1E:75 Connected: yes
 +
##r##[agent]##!r## Passkey: 454358
 +
##r##[agent]##!r## Passkey: ##i##4##!i##54358
 +
##r##[agent]##!r## Passkey: ##i##45##!i##4358
 +
##r##[agent]##!r## Passkey: ##i##454##!i##358
 +
##r##[agent]##!r## Passkey: ##i##4543##!i##58
 +
##r##[agent]##!r## Passkey: ##i##45435##!i##8
 +
##r##[agent]##!r## Passkey: ##i##454358##!i##
 +
[##y##CHG##!y##] Device 00:1F:20:3D:1E:75 Paired: yes
 +
Pairing successful
 +
[##y##CHG##!y##] Device 00:1F:20:3D:1E:75 Connected: no
 +
##bl##[bluetooth]##!bl### ##i##connect 00:1F:20:3D:1E:75
 +
Attempting to connect to 00:1F:20:3D:1E:75
 +
[##y##CHG##!y##] Device 00:1F:20:3D:1E:75 Connected: yes
 +
Connection successful
 +
##bl##[bluetooth]##!bl### ##i##quit
 +
[##r##DEL##!r##] Controller 00:02:72:C9:62:65 antec [default]
 +
#
 
}}
 
}}
 
This implementation implies that:
 
# user is given an explicit choice of Kerberos V implementation.
 
# Switch of a Kerberos V implementation would cause a rebuild through ''--changed-use'', therefore resolving breakage caused by ABI change.
 
{{FLOPFooter}}
 

Revision as of 01:46, February 17, 2015

{{#ask: Publication Status::Published | | order=descending | sort=Publication Date | format=feed | page=full | title=Funtoo Linux News | description=Latest Funtoo Linux news |type=atom | limit=20 }}


Builds
1,2,3,4,5,6

asdflk asdlfk asdlf alsdf lasd flasd flasd flasd flasd flasd flasd flas dflasd flasdl flasdf lasdfl alsdf lasdf lasdflafsd la sdf

[[{{#show: Organization:Brownrice Internet| ?Logo|link=none}}|350px|class=img-orglogo|link=Organization:Brownrice Internet]]

Learn about Funtoo-friendly organization: Brownrice Internet

asdflk asdlfk asdlf alsdf lasd flasd flasd flasd flasd flasd flasd flas dflasd flasdl flasdf lasdfl alsdf lasdf lasdflafsd la sdf http://www.funtoo.org/News:The_Many_Builds_of_Funtoo_Linux

I like the /etc/make.conf file, which can also be referred to as /etc/portage/make.conf. It is a groovy file. Another cool file is /etc/fstab.

make.conf mentions

{{#ask: Mentions file::make.conf | format=category }}

# bluetoothctl 
[NEW] Controller 00:02:72:C9:62:65 antec [default]
[bluetooth]#power on
Changing power on succeeded
[bluetooth]# agent on
Agent registered
[bluetooth]# scan on
Discovery started
[bluetooth]# devices
Device 00:1F:20:3D:1E:75 Logitech K760
[bluetooth]# pair 00:1F:20:3D:1E:75
Attempting to pair with 00:1F:20:3D:1E:75
[CHG] Device 00:1F:20:3D:1E:75 Connected: yes
[agent] Passkey: 454358
[agent] Passkey: 454358
[agent] Passkey: 454358
[agent] Passkey: 454358
[agent] Passkey: 454358
[agent] Passkey: 454358
[agent] Passkey: 454358
[CHG] Device 00:1F:20:3D:1E:75 Paired: yes
Pairing successful
[CHG] Device 00:1F:20:3D:1E:75 Connected: no
[bluetooth]# connect 00:1F:20:3D:1E:75
Attempting to connect to 00:1F:20:3D:1E:75
[CHG] Device 00:1F:20:3D:1E:75 Connected: yes
Connection successful
[bluetooth]# quit
[DEL] Controller 00:02:72:C9:62:65 antec [default]
#