Re: Control file
Justin B Rye <[email protected]> Sun, 11 Sep 2022 13:44:13 +0100
| Newsgroups | gmane.linux.debian.internationalization.english |
|---|---|
| Message-ID | <[email protected]> |
RL wrote: >> Finally a patch. Extra notes: >> >> * I've squeezed the first paragraph, and (usually) merged the last two. Oh, I've just noticed a typo in armv6k-support: s/ARMV6/ARMv6/. > Wow - i think I almost understand what these packages are for now. I > also thought the technical info helped a lot, and was really interesting > without being overwhelming. > > In the first para "in terms of package dependencies" could perhaps be > clearer as "using/via/though package dependencies"? - or maybe "allow > ISA requirements to be represented as package dependencies"? I like the latter - revised version attached. > The bit i dont understand is why the use of pre-depends is correct: > > eg, > - suppose i dont have sse3 support in my computer > - i can open aptitude and tell it i want to install gnome > - gnome requires the virtual www-browser which chromium provdes > - I can tell the package manager to use chromium to satisfy the dep > - I can now start the installaton of hundreds of packages (which will > include sse3-support) - all standard stuff to here. > - sse3-support will eventually fail to install - the pre-depends means > this happens before chromium, but i only learn this part-way through a > multiple-megabyte download of hundreds of gnome-related packages: seems > to me i might be left with a bunch of cryptic dpkg errors and not much > to hint that this is due to chromium and not gnome. (i doubt many people > would remember that i manually asked for chromium) That did sound nightmarish, but looking at the internals I see in the event of a failure it goes into a debconf error dialogue that ought to be comprehensible (infuriating, but comprehensible). Then you just need to track the dependency back to the culprit, which is still a pain even in the aptitude TUI. > .... wouldnt it be simpler if chromium _conflicted_ with a package that > represented "this computer does not support sse3"? then i couldnt even > start installing chromium unless the cpu was up to it? But then how do you make those systems and only those systems install that package? The isa-support approach can at least be implemented without needing innovations on the debian-installer level. > .... wouldnt it be even better for chromium to detect the missing sse3 at > runtime, not at package install time That would be lovely, if upstream could be bothered to maintain fallback code paths, but if it means that chromium installs happily and then mysteriously "doesn't work" it's just a support nightmare. > ... what happens if i change my cpu to add/remove sse3 support but keep > the same disk and same installation? (if it's a raspberry pi i can > easily move the disk between cpus) Things go wrong; this is the sort of thing you need to worry about while juggling hardware. Mind you, maybe as an enhancement these packages could also do some sort of (disablable) boot-time check? > (i also also note that in stable, chromium only depends on sse3-support, > not pre-depends. maybe that changed in sid - but i thought chromium was > always backported) (No idea, but I don't see any such dependency on bullseye.) > (i also suspect a name ending "-support" was perhaps not the most > helpful one from the point of view of a user coming accross these in a > package list - sounds like a set of drivers/firmware to me - but i can > see that it makes writing "Depends: sse3-support" read nice for > developers.) If they pick it out of the package lists as a candidate for installation we have to hope they'll read the description; usually they're more likely to encounter the name as a thing that is indeed being pulled in as a dependency, which ought to make it relatively intelligible. -- JBR with qualifications in linguistics, experience as a Debian sysadmin, and probably no clue about this particular package
control.new2
(text/plain, 12.5 KB)
Source: isa-support Section: misc Priority: optional Uploaders: Gioele Barabucci <[email protected]> Maintainer: Bastien Roucariès <[email protected]> Build-Depends: debhelper-compat (= 13), po-debconf Standards-Version: 4.6.1 Rules-Requires-Root: no Vcs-Git: https://salsa.debian.org/debian/isa-support.git Vcs-Browser: https://salsa.debian.org/debian/isa-support Package: isa-support Multi-Arch: same Architecture: any-i386 any-i386 any-amd64 armel armel armhf armhf powerpc Depends: ${shlibs:Depends}, ${misc:Depends} Description: CPU feature checking - common back-end The packages in the isa-support family probe for microprocessor Instruction Set Architecture features such as SSE3. By refusing to install on machines lacking a required feature, they allow ISA requirements to be represented as package dependencies. . This package provides the feature-probing infrastructure. To assert a CPU requirement, other packages can pre-depend on one of the individual feature-specific packages: . sse2-support, sse3-support, sse4.2-support, altivec-support, neon-support, armv6-support, armv7-support, armv8-support, vfp-support, vfpv2-support, vfpv3-support Package: sse2-support Multi-Arch: foreign Architecture: any-i386 Pre-Depends: isa-support (= ${binary:Version}) Description: CPU feature checking - require SSE2 The packages in the isa-support family probe for microprocessor Instruction Set Architecture features such as SSE3. By refusing to install on machines lacking a required feature, they allow ISA requirements to be represented as package dependencies. . This is a mostly dummy package which checks for SSE2 and refuses to install on unsupported hardware. . Streaming SIMD Extensions (SSE) is a single instruction, multiple data (SIMD) instruction set extension. . SSE2 was an incremental upgrade to SSE intended to fully replace the earlier MMX instruction set. It is available on processors from Pentium 4 onward, including all 64-bit capable ones, but not on Pentium 3, Athlon XP, Via C3, Quark, or older processors. Package: sse3-support Multi-Arch: foreign Architecture: any-i386 any-amd64 Pre-Depends: isa-support (= ${binary:Version}) Description: CPU feature checking - require SSE3 The packages in the isa-support family probe for microprocessor Instruction Set Architecture features such as SSE3. By refusing to install on machines lacking a required feature, they allow ISA requirements to be represented as package dependencies. . This is a mostly dummy package which checks for SSE3 and refuses to install on unsupported hardware. . Streaming SIMD Extensions (SSE) is a single instruction, multiple data (SIMD) instruction set extension. . SSE3, also called PNI (Prescott New Instructions), is an incremental upgrade to SSE2, adding a handful of new operations useful for processing media. It is available on almost any 64-bit-capable processor except for some early AMD models (Sledgehammer and Clawhammer), but is not available on most 32-bit-only hardware. Package: sse4.1-support Multi-Arch: foreign Architecture: any-i386 any-amd64 Pre-Depends: isa-support (= ${binary:Version}) Description: CPU feature checking - require SSE4.1 The packages in the isa-support family probe for microprocessor Instruction Set Architecture features such as SSE3. By refusing to install on machines lacking a required feature, they allow ISA requirements to be represented as package dependencies. . This is a mostly dummy package which checks for SSE4.1 and refuses to install on unsupported hardware. . Streaming SIMD Extensions (SSE) is a single instruction, multiple data (SIMD) instruction set extension. . SSE4.1 added a dot product instruction and additional integer instructions. It is available on Intel processors since Penryn (circa 2008), but notably not on anything AMD until the Bulldozer (15h, in 2011) and Jaguar (16h, in 2013) families. Package: sse4.2-support Multi-Arch: foreign Architecture: any-i386 any-amd64 Pre-Depends: isa-support (= ${binary:Version}) Description: CPU feature checking - require SSE4.2 The packages in the isa-support family probe for microprocessor Instruction Set Architecture features such as SSE3. By refusing to install on machines lacking a required feature, they allow ISA requirements to be represented as package dependencies. . This is a mostly dummy package which checks for SSE4.2 and refuses to install on unsupported hardware. . Streaming SIMD Extensions (SSE) is a single instruction, multiple data (SIMD) instruction set extension. . SSE4.2 added string and text processing instructions that perform character searches and comparison on two operands of 16 bytes at a time. It is available on Intel processors since Nehalem (circa 2008), but notably not on anything AMD until the Bulldozer (15h, in 2011) and Jaguar (16h, in 2013) families. Package: altivec-support Multi-Arch: foreign Architecture: powerpc Pre-Depends: isa-support (= ${binary:Version}) Description: CPU feature checking - require AltiVec The packages in the isa-support family probe for microprocessor Instruction Set Architecture features such as SSE3. By refusing to install on machines lacking a required feature, they allow ISA requirements to be represented as package dependencies. . This is a mostly dummy package which checks for AltiVec and refuses to install on unsupported hardware. . AltiVec is a single-precision floating point and integer SIMD instruction set. It is a standard part of the Power ISA v.2.03 specification. Package: neon-support Multi-Arch: foreign Architecture: armhf Pre-Depends: isa-support (= ${binary:Version}) Description: CPU feature checking - require Neon The packages in the isa-support family probe for microprocessor Instruction Set Architecture features such as SSE3. By refusing to install on machines lacking a required feature, they allow ISA requirements to be represented as package dependencies. . This is a mostly dummy package which checks for Neon and refuses to install on unsupported hardware. . Neon, also known as MPE (Media Processing Engine) or Advanced SIMD, is a combined 64- and 128-bit SIMD instruction set that provides standardised acceleration for media and signal processing applications. It is available on the vast majority of armhf devices but not guaranteed before the 64-bit capable ARMv8. Package: armv6-support Multi-Arch: foreign Architecture: armel Pre-Depends: isa-support (= ${binary:Version}) Description: CPU feature checking - require ARMv6 The packages in the isa-support family probe for microprocessor Instruction Set Architecture features such as SSE3. By refusing to install on machines lacking a required feature, they allow ISA requirements to be represented as package dependencies. . This is a mostly dummy package which checks for ARMv6 and refuses to install on unsupported hardware. . The ARMv6 architecture (not to be confused with product family ARM6) uses physically addressed cache, solving many cache aliasing problems and reducing context switch overhead. Unaligned and mixed-endian data access is supported. This architecture includes the first version of Thumb technology. . This feature is not guaranteed by the architecture baseline, but is available for newer armel machines in the ARM11 product family, including ARM1136J(F)-S, ARM1156T2(F)-S, ARM1176JZ(F)-S, ARM1136EJ(F)-S, and ARM11MPCore processors. Boards include the Raspberry Pi model 1 and Raspberry Pi Zero. Package: armv6k-support Multi-Arch: foreign Architecture: armel Pre-Depends: isa-support (= ${binary:Version}) Description: CPU feature checking - require ARMv6k The packages in the isa-support family probe for microprocessor Instruction Set Architecture features such as SSE3. By refusing to install on machines lacking a required feature, they allow ISA requirements to be represented as package dependencies. . This is a mostly dummy package which checks for ARMv6k and refuses to install on unsupported hardware. . ARMv6k is a subarchitecture of ARMv6 adding Symmetric MultiProcessing and Thread Local Storage instruction sets. It is not guaranteed by the architecture baseline, but is available for newer armel machines in the ARM11 product family; boards include the Raspberry Pi model 1 and Raspberry Pi Zero. Package: armv7-support Multi-Arch: foreign Architecture: armel Pre-Depends: isa-support (= ${binary:Version}) Description: CPU feature checking - require ARMv7 The packages in the isa-support family probe for microprocessor Instruction Set Architecture features such as SSE3. By refusing to install on machines lacking a required feature, they allow ISA requirements to be represented as package dependencies. . This is a mostly dummy package which checks for ARMv7 and refuses to install on unsupported hardware. . ARMv7 (not to be confused with product family ARM7) includes Thumb-2 technology, adding 32-bit instructions into compressed Thumb mode. It is not guaranteed by the architecture baseline, but is available for newer armel machines (including CPUs that support armhf) since the Cortex-A product family, including Cortex-A5, -A7, -A8, -A9, -A12, -A15, and -A17 processors. Boards include the Raspberry Pi 2. Package: armv8-support Multi-Arch: foreign Architecture: armel armhf Pre-Depends: isa-support (= ${binary:Version}) Description: CPU feature checking - require ARMv8 The packages in the isa-support family probe for microprocessor Instruction Set Architecture features such as SSE3. By refusing to install on machines lacking a required feature, they allow ISA requirements to be represented as package dependencies. . This is a mostly dummy package which checks for ARMv8 and refuses to install on unsupported hardware. . ARMv8 (not to be confused with product family ARM8) introduced a large number of ISA enhancements. It is not guaranteed by the architecture baseline, but is available for newer armel machines (including CPUs that support armhf) since the Cortex-A product family, including Cortex-A32, as well as all arm64 processors. Boards include the Raspberry Pi 3 and 4. Package: vfp-support Multi-Arch: foreign Architecture: armel Pre-Depends: isa-support (= ${binary:Version}) Description: CPU feature checking - require VFP The packages in the isa-support family probe for microprocessor Instruction Set Architecture features such as SSE3. By refusing to install on machines lacking a required feature, they allow ISA requirements to be represented as package dependencies. . This is a mostly dummy package which checks for VFP and refuses to install on unsupported hardware. . VFP (Vector Floating Point) technology is a floating-point unit (FPU) coprocessor extension to the ARM architecture. It provides single- and double-precision floating-point computation fully compliant with IEEE 754-1985. Package: vfpv2-support Multi-Arch: foreign Architecture: armel Pre-Depends: isa-support (= ${binary:Version}) Description: CPU feature checking - require VFPv2 The packages in the isa-support family probe for microprocessor Instruction Set Architecture features such as SSE3. By refusing to install on machines lacking a required feature, they allow ISA requirements to be represented as package dependencies. . This is a mostly dummy package which checks for VFPv2 and refuses to install on unsupported hardware. . VFP (Vector Floating Point) technology is a floating-point unit (FPU) coprocessor extension to the ARM architecture. It provides single- and double-precision floating-point computation fully compliant with IEEE 754-1985. . VFPv2 has 16 64-bit FPU registers. It is available for some ARMv5 and all ARMv6 cores. Package: vfpv3-support Multi-Arch: foreign Architecture: armel Pre-Depends: isa-support (= ${binary:Version}) Description: CPU feature checking - require VFPv3 The packages in the isa-support family probe for microprocessor Instruction Set Architecture features such as SSE3. By refusing to install on machines lacking a required feature, they allow ISA requirements to be represented as package dependencies. . This is a mostly dummy package which checks for VFPv3 and refuses to install on unsupported hardware. . VFP (Vector Floating Point) technology is a floating-point unit (FPU) coprocessor extension to the ARM architecture. It provides single- and double-precision floating-point computation fully compliant with IEEE 754-1985. . VFPv3 has 32 64-bit FPU registers as standard, adds VCVT instructions to convert between scalar, float, and double, and adds immediate mode to VMOV, allowing constants to be loaded into FPU registers. It is available on most Cortex-A8 and -A9 ARMv7 processors.