[devel] other specs with "if 64"; was: Re: [AArch64] python3 spec fix

Ivan Zakharyaschev imz на altlinux.org
Пт Июн 10 14:58:36 MSK 2016


Здравствуйте!

Предстоит разобраться с проверками if 64 в остающемся списке из примерно 
270 пакетов. (Список кусочков спеков я покажу чуть погодя.)

Общее соображение такое, что %if упоминающий просто случай x86_64 или 
lib64 не очень хорош (если только пакет не явно ExclusiveArch: .... x86_64 
..., т.е. мейнтейнер разобрался с тем, на каких архитектурах оно должно 
быть собрано и записал это явно).

if на просто x86_64 (или явный список подобных архитектур) или lib64 плох, 
потому что как бы говорит, что во всех остальных случаях не надо ничего 
осбенного делать и мы соберёмся. Но может быть другая не рассмотренная 
им архитектура, где "%_libdir" != "lib" (и при этом не lib64) или там в 
каком-то смылсе 64 бита, что потребует аналогичных x86_64 манипуляций.

Если написан if, трудно, увидев его, автоматически проверить, хороший он 
или плохой.

У меня даже возникла такая мысль -- чтобы эту проблему не прятать (за 
каким-нибудь бесполезным, как тут говорилось, %if64bit): в особо трудных 
случаях (вроде nss) для рассмотренных менйтейнером архитектур делать 
макросы со специальными действиями вида %setup_for_SOME_ARCH и потом 
пытаться экспандить setup_for_%_arch. (Такого рода switch вместо if.) Если 
архитектура не рассмотрена/неизвестна, это будет явно вызывать ошибку при 
обработке спека. (Возможно, это излишне и хватит ExclusiveArch, но не 
хочется повального бездумного проставления ExclusiveArch из-за этого моего 
обращения.)

Обратите внимание на пакеты (ACL с @ переместил в конец). Я параллельно 
продолжаю их рассматривать и обрабатывать. Если у меня возникнут конретные 
предложения по пакетам или группам, я их либо воплощу (если всё 
довольно просто), либо сообщу для обсуждения.

ssh girar acl sisyphus | while read p users; do set -- $users; for user; do echo "$user" "$p"; done; done | sort -k1 | { while read sect p; do if [[ "$prev" != "$sect" ]]; then echo "$prev:" "${pkgs[@]}";  prev="$sect"; pkgs=(); fi; pkgs=("${pkgs[@]}" "$p"); done; echo "$prev:" "${pkgs[@]}"; }

ach: powder
antohami: winff
arc: sams
aris: libfreeimage
boris: mingw32-gcc
boyarsh: util-linux
cas: 389-ds-base freebasic jitsi
cow: luajit
crux: rust
damir: calibre
danil: runawfe4-gpd runawfe4-notifier
dans: lxc
drool: libprojectM uchardet
ender: libmusicbrainz3 libquicktime111
evg: awesome pqiv
george: cooldown fpc-units-ptcpas gforth gravit lugaru powdertoy python3 renpy violetland
glebfm: binutils filesystem gcc3.4 gcc4.3 gcc4.4 gcc4.5 gcc4.7 gcc4.8 gcc4.9 gcc5 glibc-kernheaders jdkgcj libcaca python3
gray_graff: eiskaltdcpp
greycat: erlang libqca
hsv: erlang
imz: python3
inger: mvapich-gcc
karpov: extreme-tuxracer
lakostis: mbuffer
lav: audacious audacious-plugins dia gnustep-make imlib2 iozone libcds libcryptopp libmathgl libxerces-c mingw32-libnspr python-module-numpy python-module-wx sK1 wine wine-vanilla
ldv: binutils filesystem gcc3.4 gcc4.3 gcc4.4 gcc4.5 gcc4.7 gcc4.8 gcc4.9 gcc5 glibc-kernheaders jdkgcj john procps python3 zlib
legion: mozldap nspr nss util-linux
manowar: qhull scribus
mike: MySQL gromacs imlib2 pdfedit python-module-wx rpm-macros-uefi sK1
mithraen: apulse mongo speex unixODBC wanpipe
mutabor: libquicktime111
mvk: freerdp pidgin-mra
nenderus: SFML jreen miniupnpc qutim
oddity: qgis
pv: libuniset2 mosquitto
real: CoinCsdp CoinLEMON CoinPFunc OpenAD Xdmf adolc allegro5.0 apiextractor armadillo atl berkeley_upc blitz blosc bml cca-spec-babel cca-spec-classic cercs_env chasm clipper coin3d cppcheck crlibm cudd dakota df_shm dill dolfin-complex dolfin-real elmerfem escript-finley evpath exodusii ffs fityk flake freecfd-complex freecfd-real freefemxx generatorrunner geos geos1 gl2ps glsl-optimizer gmsh gnustep-BDB gnustep-JIGS gnustep-ShengGuang gnustep-make gnustep-objc2 gpsynth hiredis hlsl2glsl hypre jsonxx ksocrat labplot lapack laspack libBatch libbotan1.11 libcuefile libdict libgibsonclient libhdf5-8-mpi libhdf5-8-seq libjson_spirit libmesh-complex libmesh-real libnetcdf7-mpi libnetcdf7-seq libnetcdf_c++-4-mpi libnetcdf_c++-4-seq libnetcdf_c++4-1-mpi libnetcdf_c++4-1-seq libnetcdff5-mpi libnetcdff5-seq libquicktime111 libreplaygain libsc libsocket libsuitesparse libvdpau-va-gl libxtract log4cplus logtop lout lz4 marsyas merkaartor mpip musepack mvapich-gcc mygui netgen nnti oofem-compl
 ex oofem-real open-axiom openblas openpdt oscpack pacoxx papi parmetis parmetis0 pastix petsc-complex petsc-real picosat plplot pnetcdf poco pyside-qt4 pyside-qt4-py3 qalculate-kde4 qhull qm-dsp qtm rakarrack reduce scotch scribus shiboken shiboken-py3 shogun simage tau tbb tinyxml2 trilinos10 trilinos10-docs vtk vtk6.2 xmlrpcxx xraylib yaafe yices
redbaron: mlt
rider: MySQL libbroadvoice php5-dba
rom_as: kdeedu qt3
rt: gnustep-make
ruslandh: palemoon
sbolshakov: gcc4.5 gcc4.7 jdkgcj libquicktime111 x265
sem: nuxwdog
serpiph: blender2.49
shaba: edk2 mariadb qemu
shrek: Mesa dia
sin: cca-spec-babel cca-spec-classic dolfin-complex dolfin-real hypre libnss-fallback libnss-tartarus mpip petsc-complex petsc-real tau vtk
slazav: xfig
snejok: e3
stanv: bro cpupower mvapich-gcc
vitty: MySQL alterator-grub cegui mongo python3
viy: jdkgcj libquicktime111 pine speex
vkni: i3
vsu: glibc-kernheaders
zerg: apt-scripts-nvidia eigen2 kde4-settings-kmobile kde4-settings-knetbook libmygpo-qt libqca libringclient mlt qt3 qt4-webkit qt5-webengine

:
@everybody: 389-ds-base CoinCsdp CoinLEMON CoinPFunc OpenAD SFML Xdmf adolc allegro5.0 alterator-grub apiextractor apulse armadillo atl audacious-plugins berkeley_upc blender2.49 blitz blosc bml bro calibre cca-spec-babel cca-spec-classic cegui cercs_env chasm clipper coin3d cooldown cppcheck cpupower crlibm cudd dakota df_shm dia dill dolfin-complex dolfin-real e3 edk2 eiskaltdcpp elmerfem erlang escript-finley evpath exodusii ffs fityk flake fpc-units-ptcpas freebasic freecfd-complex freecfd-real freefemxx freerdp generatorrunner geos geos1 gforth gl2ps glsl-optimizer gnustep-BDB gnustep-JIGS gnustep-ShengGuang gnustep-objc2 gpsynth gravit gromacs hiredis hlsl2glsl hypre i3 jitsi jreen jsonxx kde4-settings-kmobile kde4-settings-knetbook kdeedu ksocrat labplot lapack laspack libBatch libbotan1.11 libbroadvoice libcaca libcds libcryptopp libcuefile libdict libgibsonclient libhdf5-8-mpi libhdf5-8-seq libjson_spirit libmathgl libmesh-complex libmesh-real libmusicbrainz3 libmygpo-qt lib
 netcdf7-mpi libnetcdf7-seq libnetcdf_c++-4-mpi libnetcdf_c++-4-seq libnetcdf_c++4-1-mpi libnetcdf_c++4-1-seq libnetcdff5-mpi libnetcdff5-seq libnss-tartarus libqca libreplaygain libsc libsocket libsuitesparse libuniset2 libvdpau-va-gl libxerces-c libxtract log4cplus logtop lout luajit lugaru lxc lz4 mariadb marsyas mbuffer merkaartor mingw32-gcc mingw32-libnspr miniupnpc mlt mongo mono mosquitto mpip musepack mygui netgen nnti oofem-complex oofem-real open-axiom openblas openpdt oscpack pacoxx palemoon papi parmetis parmetis0 pastix pdfedit petsc-complex petsc-real php5-dba picosat pidgin-mra pine plplot pnetcdf poco powder powdertoy pqiv pyside-qt4 pyside-qt4-py3 python-module-curve25519 python-module-cvxopt python-module-faketime python-module-gnureadline python-module-libmagic python-module-libxmp python-module-mathutils python-module-netCDF4 python-module-pivy python-module-pycudd python-module-pyices python-module-pymagic python-module-rtree python-module-scikits.audiolab pytho
 n-module-scikits.samplerate python-module-wx3.0 python-module-z3c.pt python3-module-pcap qalculate-kde4 qemu qgis qm-dsp qt3 qtm qutim rakarrack reduce renpy rpm-macros-uefi runawfe4-gpd runawfe4-notifier rust sK1 sams scotch scribus shiboken shiboken-py3 shogun simage tau tbb tinyxml2 trilinos10 trilinos10-docs uchardet unixODBC violetland vtk6.2 wanpipe winff x265 xmlrpcxx xraylib yaafe yices
@mono: mono
@nobody: allegro4.4 dmd libixp libopencv2.4 tremulous
@python: cca-spec-babel cca-spec-classic dolfin-complex dolfin-real hypre mpip petsc-complex petsc-real python-module-curve25519 python-module-cvxopt python-module-faketime python-module-gnureadline python-module-libmagic python-module-libxmp python-module-mathutils python-module-netCDF4 python-module-numpy python-module-pivy python-module-pycudd python-module-pyices python-module-pymagic python-module-rtree python-module-scikits.audiolab python-module-scikits.samplerate python-module-wx python-module-wx3.0 python-module-z3c.pt python3-module-pcap tau vtk
@qa: adolc armadillo audacious blitz cca-spec-babel cca-spec-classic chasm coin3d dia dolfin-complex dolfin-real erlang extreme-tuxracer freecfd-complex freecfd-real gmsh gnustep-make gromacs hypre imlib2 iozone labplot laspack libcryptopp libmathgl libmesh-complex libmesh-real libnss-tartarus libquicktime111 libsuitesparse libxerces-c lout mpip mvapich-gcc netgen nuxwdog oofem-complex oofem-real open-axiom papi parmetis pastix petsc-complex petsc-real python-module-cvxopt python-module-numpy qgis reduce sK1 scotch scribus tau vtk wine-vanilla xfig

-- 
Best regards,
Ivan


Подробная информация о списке рассылки Devel