Your message dated Fri, 11 Aug 2017 12:44:51 -0700 with message-id <87o9rlx51o.fsf@iris.silentflame.com> and subject line Closing inactive Policy bugs has caused the Debian Bug report #120418, regarding Policy for code using CPU extensions to be marked as done. This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the Bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact owner@bugs.debian.org immediately.) -- 120418: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=120418 Debian Bug Tracking System Contact owner@bugs.debian.org with problems
--- Begin Message ---
- To: submit@bugs.debian.org
- Subject: cc: Michel LESPINASSE <walken@zoy.org>,Robert Stone <talby@trap.mtview.ca.us>,Eduard Bloch <edi@gmx.de>,Adam C Powell IV <hazelsct@mit.edu>,Dirk Eddelbuettel <edd@debian.org>,bates@debian.org,bcollins@debian.org,camm
- From: <camm@enhanced.com>
- Date: Tue, 20 Nov 2001 18:13:03 -0500
- Message-id: <E166K4d-0006uK-00@intech19.enhanced.com>
Subject: debian-policy: Policy proposal: Cpu extension code Package: debian-policy Version: 3.1.1.1 Severity: wishlist Greetings! I posted this proposal to debian-policy for discussion in June, but am only now formally requesting its inclusion in the policy. I've taken the liberty of including recommendations from various submitters. The goal of this proposal is to provide a mechanism whereby packages can safely make use of cpu instruction set extensions (e.g. sse1,sse2,3dnow,3dnowext, etc.) In this scheme, packages can install on any machine of the general architecture, and extension instructions only get executed on appropriately capable cpus, even if /usr is served up over NFS. Proposal outline: 1) All packages providing programs and/or libraries which make use of CPU instruction set extensions (CISEs) must provide identical functionality on all machines of the given general architecture. One way to achieve this is for the code to be protected by runtime probes of the cpu, followed by appropriate branching to correctly executable sections. Alternatively, packages can separate routines using CISEs into shared libraries. This section of the policy details the machanism whereby ldso will load appropriate versions of such libraries according to the capabilities of the runtime cpu. 2) Libraries containing CSIEs should be placed in a designated subdir of /usr/lib specialized for code requiring the cpu extension in question. All such directories should be agreed upon and sanctioned by the policy committee. As a suggestion, the directory might be named after the cpu capability (as reported in /proc/cpuinfo) required to run the code, (e.g. /usr/lib/{sse,sse2,3dnow,3dnowext} on i386, /usr/lib/ev5 on alpha, and perhaps /usr/lib/sparc64 on sparc, etc.) 3) All functionality provided by this code should also be provided by a binary-equivalent generic shared lib of the same name and soname in /usr/lib. 4) Ideally, ldso should be smart enough to search the special directories first given the running cpu characteristics. Barring this, a system script, update-ld.so.conf, should be created, which packages can call at install/remove time, to add/remove the specialized paths appropriate to the running cpu to /etc/ld.so.conf and then run ldconfig. Optionally (and preferably), this script could also be run at boot time to catch cpu-upgrades and/or kernel upgrades (SSE requires kernel support). Paths need not be added, and can be removed, if no libraries exist in the directory. The package providing this script should be in the 'base' section if invoked at boot time. Otherwise, packages using this functionality should depend upon the update-ld.so.conf package. 5) For this scheme to work, it is necessary to ensure that ldso loads libraries in the directories specified in /etc/ld.so.conf in preference to identically named versions in /lib or /usr/lib, as is currently the case with Debian's ldso. It is part of this policy that such behavior remain standard on Debian systems. The Debian atlas packages currently use this scheme. I believe that at least gmp can currently make use of it as well. I've provided a sample update-ld.so.conf below. If this proposal is accepted, I'd be happy to package it or something similar. Thanks for your work on Debian! -- Camm Maguire camm@enhanced.com ========================================================================== "The earth is but one country, and mankind its citizens." -- Baha'u'llah ============================================================================= sample update-ld.so.conf, can doubtlessly be improved ============================================================================= #!/bin/bash set -e FILE=/etc/ld.so.conf usage() { echo "Usage: $0 [ --enable <ext> ] [ --disable <ext> ] [ --auto ]" exit 1 } do_ldso() { local j=$@ jj=$@ p q qp qm i k zi pp tf tf=$(tempfile -m 644) ( while read p; do q=$(basename $p) qp="+$q" qm="_$q" k="" for i in $j ; do if [ $i = $qp ] ; then k=p break fi if [ $i = $qm ] ; then k=m break fi done case $k in p) pp="" zi="" for i in $jj; do if [ -z $zi ] && echo $i | grep -q "^+" ; then echo /usr/lib/${i#+} else pp="$pp $i" fi if [ $i = $qp ] ; then zi=t ; fi done jj=$pp ;; m) ;; *) echo $p;; esac done < $FILE for i in $jj; do if echo $i | grep -q "^+" ; then echo /usr/lib/${i#+} fi done ) >$tf mv $tf $FILE ldconfig } cpu_probe_i386() { local fl i res kv j if ! [ -r /proc/cpuinfo ] ; then echo This script needs the proc filesystem to work exit 1 fi fl=$(grep ^flags /proc/cpuinfo) kv=$(uname -a | cut -f3 -d\ | cut -f2 -d.) # # Names changed in 2.4.x # Listed possibilities must be in order of preference here # case $kv in 2) ss="26 xmm 3dnowext 3dnow";; *) ss="sse2 sse 3dnowext 3dnow";; esac res="" for i in $ss; do j=${i/xmm/sse} j=${j/26/sse2} if echo $fl | grep -q "\<$i\>" ; then res="$res +$j" else res="$res _$j" fi done echo $res } cpu_probe_alpha() { local fl i res j if ! [ -r /proc/cpuinfo ] ; then echo This script needs the proc filesystem to work exit 1 fi fl=$(grep ^"cpu model" /proc/cpuinfo) res="" for i in EV7 EV6 EV5; do j=${i/EV7/ev5} j=${j/EV6/ev5} if grep -q "\<$i\>" $fl ; then res="$res +$j" else res="$res -$j" fi done echo $res } cpu_probe_sparc() { local fl i res if ! [ -r /proc/cpuinfo ] ; then echo This script needs the proc filesystem to work exit 1 fi fl=$(grep ^"cpu" /proc/cpuinfo) res="" for i in $fl; do case $i in UltraSparc) res="$res sparc64";; *);; esac done echo $res } mmatch() { local k t j i k=$1 t="" shift j=$@ for i in $j; do if [ $k = ${i#?} ] ; then t=$i; fi done echo $t } off() { local k j t i k=$1 shift j=$@ t="" for i in $j ; do if [ $k = ${i#?} ] ; then t="$t _$k" else t="$t $i" fi done echo $t } on() { local k j t i k=$1 shift j=$@ t="" for i in $j ; do if [ $k = ${i#?} ] ; then t="$t +$k" else t="$t $i" fi done echo $t } AUTO="" EN="" DIS="" EXT="" if [ $# -lt 1 ] ; then usage; fi case $1 in --auto) AUTO=t; if [ $# -ne 1 ] ; then usage; fi;; --enable) EN=t; if [ $# -ne 2 ] ; then usage; fi; EXT=$2;; --disable) DIS=t; if [ $# -ne 2 ] ; then usage; fi; EXT=$2;; *) usage;; esac ARCH=$(dpkg --print-architecture) case $ARCH in i386) cpu=$(cpu_probe_i386);; alpha) cpu=$(cpu_probe_alpha);; sparc) cpu=$(cpu_probe_sparc);; *) echo "There are no cpu extensions supported for this architecture ($ARCH)"; exit 0;; esac if [ "$AUTO" = "" ] ; then if [ "$(mmatch $EXT $cpu)" != "+$EXT" ] ; then echo "Cpu extension $EXT is not supported on this architecture ($ARCH)" exit 1 fi ldso="" while read p ; do q=$(basename $p) ldso="$ldso +$q" done < $FILE final="" for i in $cpu ; do t="_${i#?}" for j in $ldso ; do if [ $i = $j ] ; then t=$j fi done final="$final $t" done if [ "$EN" != "" ] ; then final=$(on $EXT $final) else final=$(off $EXT $final) fi fi do_ldso $final exit 0 ============================================================================= -- System Information Debian Release: 2.2 Kernel Version: Linux intech19 2.2.19-gen #1 SMP Fri May 25 15:14:23 EDT 2001 i686 unknown
--- End Message ---
--- Begin Message ---
- To: 617938-close@bugs.debian.org, 688363-close@bugs.debian.org, 821363-close@bugs.debian.org, 192571-close@bugs.debian.org, 215549-close@bugs.debian.org, 263448-close@bugs.debian.org, 276160-close@bugs.debian.org, 408500-close@bugs.debian.org, 562863-close@bugs.debian.org, 587377-close@bugs.debian.org, 592564-close@bugs.debian.org, 656569-close@bugs.debian.org, 663917-close@bugs.debian.org, 683570-close@bugs.debian.org, 684673-close@bugs.debian.org, 697134-close@bugs.debian.org, 704233-close@bugs.debian.org, 727754-close@bugs.debian.org, 737559-close@bugs.debian.org, 795783-close@bugs.debian.org, 832654-close@bugs.debian.org, 71621-close@bugs.debian.org, 120418-close@bugs.debian.org, 267142-close@bugs.debian.org, 291631-close@bugs.debian.org, 338219-close@bugs.debian.org, 375502-close@bugs.debian.org, 391240-close@bugs.debian.org, 397939-close@bugs.debian.org, 400112-close@bugs.debian.org, 412668-close@bugs.debian.org, 431109-close@bugs.debian.org, 457364-close@bugs.debian.org, 458824-close@bugs.debian.org, 462996-close@bugs.debian.org, 465140-close@bugs.debian.org, 466550-close@bugs.debian.org, 485559-close@bugs.debian.org, 491055-close@bugs.debian.org, 492144-close@bugs.debian.org, 521810-close@bugs.debian.org, 525843-close@bugs.debian.org, 528453-close@bugs.debian.org, 535577-close@bugs.debian.org, 541872-close@bugs.debian.org, 543417-close@bugs.debian.org, 549910-close@bugs.debian.org, 554194-close@bugs.debian.org, 570141-close@bugs.debian.org, 572571-close@bugs.debian.org, 580135-close@bugs.debian.org, 593177-close@bugs.debian.org, 610298-close@bugs.debian.org, 633994-close@bugs.debian.org, 660705-close@bugs.debian.org, 642914-close@bugs.debian.org, 663762-close@bugs.debian.org, 671503-close@bugs.debian.org, 681289-close@bugs.debian.org, 685992-close@bugs.debian.org, 690495-close@bugs.debian.org, 694384-close@bugs.debian.org, 775318-close@bugs.debian.org, 798714-close@bugs.debian.org, 524461-close@bugs.debian.org, 555981-close@bugs.debian.org, 682282-close@bugs.debian.org, 686143-close@bugs.debian.org, 515837-close@bugs.debian.org, 779506-close@bugs.debian.org, 628174-close@bugs.debian.org, 661417-close@bugs.debian.org, 681562-close@bugs.debian.org, 490605-close@bugs.debian.org, 647570-close@bugs.debian.org
- Subject: Closing inactive Policy bugs
- From: Sean Whitton <spwhitton@spwhitton.name>
- Date: Fri, 11 Aug 2017 12:44:51 -0700
- Message-id: <87o9rlx51o.fsf@iris.silentflame.com>
control: user debian-policy@packages.debian.org control: usertag -1 +obsolete control: tag -1 +wontfix Russ Allbery and I did a round of in-person bug triage at DebConf17 and we are closing this bug as inactive. The reasons for closing fall into the following categories, from most frequent to least frequent: - issue is appropriate for Policy, there is a consensus on how to fix the problem, but preparing the patch is very time-consuming and no-one has volunteered to do it, and we do not judge the issue to be important enough to keep an open bug around; - issue is appropriate for Policy but there does not yet exist a consensus on what should change, and no recent discussion. A fresh discussion might allow us to reach consensus, and the messages in the old bug are unlikely to help very much; or - issue is not appropriate for Policy. If you feel this bug is still relevant and want to restart the discussion, you can re-open the bug. However, please consider instead opening a new bug with a message that summarises and condenses the previous discussion, updates the report for the current state of Debian, and makes clear exactly what you think should change. A lot of these old bugs have long side tangents and numerous messages, and that old discussion is not necessarily helpful for figuring out what Debian Policy should say today. -- Sean WhittonAttachment: signature.asc
Description: PGP signature
--- End Message ---