Hi,
A lot of openSUSE packages require an exact version-release of another
subpackage of the same spec. Is this really needed? While it makes sense
for some special packages like *-debuginfo or the gcc subpackages, does
a *-devel or even *-doc package really need to depend on the runtime
package from the _same build_? IMHO it only makes debugging and testing
harder, because one has to update / downgrade certain sets of packages
atomically, instead of just upgrading the one package with one patch
added. And "one patch added" is usually the only difference (if any)
between libxy-version-release and libxy-version-(release+1).
Opinions? Should we eliminate these strict dependencies where possible?
Or should we use them everywhere? As it is now, it's inconsistent at least.
I attached a script that I used for checking which Factory RPMS have
such dependencies. The second attachment is the output of the script.
Michal
aelfred-demo requires aelfred = %version-%release
bsh2-demo requires bsh2 = %version-%release
castor-demo requires castor = %version-%release
castor-test requires castor = %version-%release
castor-xml requires castor = %version-%release
geronimo-jetty-servlet-container requires geronimo = %version-%release
geronimo-tomcat-servlet-container requires geronimo = %version-%release
gnu-regexp-demo requires gnu-regexp = %version-%release
jakarta-commons-httpclient3-demo requires jakarta-commons-httpclient3 = %version-%release
jdepend-demo requires jdepend = %version-%release
junit-demo requires junit = %version-%release
jython-demo requires jython = %version-%release
moodle-af requires moodle = %version-%release
moodle-ar requires moodle = %version-%release
moodle-be requires moodle = %version-%release
moodle-bg requires moodle = %version-%release
moodle-bs requires moodle = %version-%release
moodle-ca requires moodle = %version-%release
moodle-cs requires moodle = %version-%release
moodle-da requires moodle = %version-%release
moodle-de requires moodle = %version-%release
moodle-de_du requires moodle = %version-%release
moodle-el requires moodle = %version-%release
moodle-es requires moodle = %version-%release
moodle-et requires moodle = %version-%release
moodle-eu requires moodle = %version-%release
moodle-fa requires moodle = %version-%release
moodle-fi requires moodle = %version-%release
moodle-fr requires moodle = %version-%release
moodle-ga requires moodle = %version-%release
moodle-gl requires moodle = %version-%release
moodle-he requires moodle = %version-%release
moodle-hi requires moodle = %version-%release
moodle-hr requires moodle = %version-%release
moodle-hu requires moodle = %version-%release
moodle-id requires moodle = %version-%release
moodle-is requires moodle = %version-%release
moodle-it requires moodle = %version-%release
moodle-ja requires moodle = %version-%release
moodle-ka requires moodle = %version-%release
moodle-km requires moodle = %version-%release
moodle-kn requires moodle = %version-%release
moodle-ko requires moodle = %version-%release
moodle-lt requires moodle = %version-%release
moodle-lv requires moodle = %version-%release
moodle-mi_tn requires moodle = %version-%release
moodle-ms requires moodle = %version-%release
moodle-nl requires moodle = %version-%release
moodle-nn requires moodle = %version-%release
moodle-no requires moodle = %version-%release
moodle-pl requires moodle = %version-%release
moodle-pt requires moodle = %version-%release
moodle-ro requires moodle = %version-%release
moodle-ru requires moodle = %version-%release
moodle-sk requires moodle = %version-%release
moodle-sl requires moodle = %version-%release
moodle-so requires moodle = %version-%release
moodle-sq requires moodle = %version-%release
moodle-sr requires moodle = %version-%release
moodle-sv requires moodle = %version-%release
moodle-th requires moodle = %version-%release
moodle-tl requires moodle = %version-%release
moodle-tr requires moodle = %version-%release
moodle-uk requires moodle = %version-%release
moodle-vi requires moodle = %version-%release
moodle-zh_cn requires moodle = %version-%release
struts-webapps-tomcat5 requires struts = %version-%release
tomcat55-admin-webapps requires tomcat55 = %version-%release
tomcat55-common-lib requires tomcat55-servlet-2.4-api = %version-%release
tomcat55-common-lib requires tomcat55-jsp-2.0-api = %version-%release
tomcat55-common-lib requires tomcat55-jasper = %version-%release
tomcat55-common-lib requires tomcat55-servlet-2.4-api = %version-%release
tomcat55-common-lib requires tomcat55-jsp-2.0-api = %version-%release
tomcat55-common-lib requires tomcat55-jasper = %version-%release
tomcat55-jasper requires tomcat55-servlet-2.4-api = %version-%release
tomcat55-jsp-2_0-api requires tomcat55-servlet-2.4-api = %version-%release
tomcat55-server-lib requires tomcat55-jasper = %version-%release
tomcat55-server-lib requires tomcat55-jasper = %version-%release
tomcat55-webapps requires tomcat55 = %version-%release
tomcat55 requires tomcat55-common-lib = %version-%release
tomcat55 requires tomcat55-server-lib = %version-%release
tomcat55 requires tomcat55-common-lib = %version-%release
tomcat55 requires tomcat55-server-lib = %version-%release
xalan-j2-demo requires xalan-j2 = %version-%release
xerces-j2-demo requires xerces-j2 = %version-%release
xerces-j2-scripts requires xerces-j2 = %version-%release
xml-commons-apis requires xml-commons = %version-%release
xml-commons-which requires xml-commons = %version-%release
ConsoleKit-devel requires ConsoleKit = %version-%release
NetworkManager-devel requires NetworkManager = %version-%release
NetworkManager-devel requires NetworkManager-glib = %version-%release
NetworkManager-glib requires NetworkManager = %version-%release
NetworkManager-gnome requires NetworkManager = %version-%release
NetworkManager-kde-devel requires NetworkManager-kde = %version-%release
NetworkManager-novellvpn-gnome requires NetworkManager-novellvpn = %version-%release
NetworkManager-openvpn-gnome requires NetworkManager-openvpn = %version-%release
NetworkManager-openvpn-kde requires NetworkManager-kde = %version-%release
NetworkManager-vpnc-gnome requires NetworkManager-vpnc = %version-%release
NetworkManager-vpnc-kde requires NetworkManager-kde = %version-%release
PolicyKit-gnome-demo requires PolicyKit-gnome = %version-%release
anthy-devel requires anthy = %version-%release
apt-devel requires apt = %version-%release
apt-devel requires apt-libs = %version-%release
apt-server requires apt-libs = %version-%release
apt requires apt-libs = %version-%release
audit-devel requires audit-libs = %version-%release
audit requires audit-libs = %version-%release
binutils-devel requires binutils = %version-%release
bytefx-data-mysql requires mono-core = %version-%release
bytefx-data-mysql requires mono-data = %version-%release
camlp4 requires ocaml = %version-%release
cimple-devel requires cimple = %version-%release
cimple-openwbem-adapter requires cimple = %version-%release
cimple-openwbem-devel requires cimple = %version-%release
cimple-openwbem-devel requires cimple-openwbem-adapter = %version-%release
cimple-openwbem-devel requires cimple-devel = %version-%release
evolution-data-server-devel requires evolution-data-server = %version-%release
evolution-devel requires evolution = %version-%release
evolution-pilot requires evolution = %version-%release
fftw-devel requires fftw = %version-%release
fftw-mpi-devel requires fftw = %version-%release
fftw-mpi requires fftw = %version-%release
fftw-threads-devel requires fftw-threads = %version-%release
fftw-threads-devel requires fftw-devel = %version-%release
fftw-threads requires fftw = %version-%release
fftw3-devel requires fftw3 = %version-%release
fftw3-threads-devel requires fftw3-threads = %version-%release
fftw3-threads-devel requires fftw3-devel = %version-%release
fftw3-threads requires fftw3 = %version-%release
file-devel requires file = %version-%release
freeglut-devel requires freeglut = %version-%release
freeradius-client-devel requires freeradius-client-libs = %version-%release
freeradius-client requires freeradius-client-libs = %version-%release
gcc41-32bit requires gcc41 = %version-%release
gcc41-ada requires gcc41 = %version-%release
gcc41-ada requires libada41 = %version-%release
gcc41-c++ requires gcc41 = %version-%release
gcc41-c++ requires libstdc++41-devel = %version-%release
gcc41-fortran-32bit requires gcc41-32bit = %version-%release
gcc41-fortran requires gcc41 = %version-%release
gcc41-java requires gcc41 = %version-%release
gcc41-locale requires gcc41 = %version-%release
gcc41-obj-c++ requires gcc41-objc = %version-%release
gcc41-obj-c++ requires gcc41-c++ = %version-%release
gcc41-objc-32bit requires gcc41-32bit = %version-%release
gcc41-objc requires gcc41 = %version-%release
gcc41 requires cpp41 = %version-%release
gcc42-32bit requires gcc42 = %version-%release
gcc42-ada requires gcc42 = %version-%release
gcc42-ada requires libada42 = %version-%release
gcc42-c++ requires gcc42 = %version-%release
gcc42-c++ requires libstdc++42-devel = %version-%release
gcc42-fortran-32bit requires gcc42 = %version-%release
gcc42-fortran requires gcc42 = %version-%release
gcc42-java requires gcc42 = %version-%release
gcc42-locale requires gcc42 = %version-%release
gcc42-obj-c++ requires gcc42-objc = %version-%release
gcc42-obj-c++ requires gcc42-c++ = %version-%release
gcc42-objc-32bit requires gcc42 = %version-%release
gcc42-objc requires gcc42 = %version-%release
gcc42 requires cpp42 = %version-%release
gcc43-32bit requires gcc43 = %version-%release
gcc43-ada requires gcc43 = %version-%release
gcc43-ada requires libada43 = %version-%release
gcc43-c++ requires gcc43 = %version-%release
gcc43-c++ requires libstdc++43-devel = %version-%release
gcc43-fortran-32bit requires gcc43 = %version-%release
gcc43-fortran requires gcc43 = %version-%release
gcc43-java requires gcc43 = %version-%release
gcc43-locale requires gcc43 = %version-%release
gcc43-obj-c++ requires gcc43-objc = %version-%release
gcc43-obj-c++ requires gcc43-c++ = %version-%release
gcc43-objc-32bit requires gcc43 = %version-%release
gcc43-objc requires gcc43 = %version-%release
gcc43 requires cpp43 = %version-%release
git-arch requires git-core = %version-%release
git-cvs requires git-core = %version-%release
git-email requires git-core = %version-%release
git-svn requires git-core = %version-%release
gitk requires git-core = %version-%release
gnome-sharp2-complete requires art-sharp2 = %version-%release
gnome-sharp2-complete requires gconf-sharp2 = %version-%release
gnome-sharp2-complete requires gnome-sharp2 = %version-%release
gnome-sharp2-complete requires gnome-vfs-sharp2 = %version-%release
gnome-sharp2-complete requires gtkhtml-sharp2 = %version-%release
gnome-sharp2-complete requires rsvg-sharp2 = %version-%release
gnome-sharp2-complete requires vte-sharp2 = %version-%release
gok-devel requires gok = %version-%release
graphviz-gd requires graphviz = %version-%release
graphviz-guile requires graphviz = %version-%release
graphviz-java requires graphviz = %version-%release
graphviz-lua requires graphviz = %version-%release
graphviz-ocaml requires graphviz = %version-%release
graphviz-perl requires graphviz = %version-%release
graphviz-php requires graphviz = %version-%release
graphviz-python requires graphviz = %version-%release
graphviz-ruby requires graphviz = %version-%release
graphviz-sharp requires graphviz = %version-%release
graphviz-tcl requires graphviz = %version-%release
gtk-sharp2-complete requires glade-sharp2 = %version-%release
gtk-sharp2-complete requires glib-sharp2 = %version-%release
gtk-sharp2-complete requires gtk-sharp2 = %version-%release
gtk-sharp2-complete requires gtk-sharp2-doc = %version-%release
gtk-sharp2-complete requires gtk-sharp2-gapi = %version-%release
hal-devel requires hal = %version-%release
ibm-data-db2 requires mono-core = %version-%release
id3lib-devel requires id3lib = %version-%release
java-1_4_2-cacao-devel requires java-1_4_2-cacao = %version-%release
java-1_4_2-gcj-compat-devel requires java-1_4_2-gcj-compat = %version-%release
java-1_4_2-ibm-demo requires java-1_4_2-ibm = %version-%release
java-1_4_2-ibm-devel requires java-1_4_2-ibm = %version-%release
java-1_4_2-ibm-src requires java-1_4_2-ibm = %version-%release
java-1_5_0-ibm-demo requires java-1_5_0-ibm = %version-%release
java-1_5_0-ibm-devel requires java-1_5_0-ibm = %version-%release
java-1_5_0-ibm-src requires java-1_5_0-ibm = %version-%release
java-1_5_0-sun-alsa requires java-1_5_0-sun = %version-%release
java-1_5_0-sun-alsa requires jre-1.5.0-sun-64 = %version-%release
java-1_5_0-sun-demo requires java-1_5_0-sun = %version-%release
java-1_5_0-sun-demo requires jre-1.5.0-sun-64 = %version-%release
java-1_5_0-sun-devel requires java-1_5_0-sun = %version-%release
java-1_5_0-sun-devel requires jre-1.5.0-sun-64 = %version-%release
java-1_5_0-sun-jdbc requires java-1_5_0-sun = %version-%release
java-1_5_0-sun-jdbc requires jre-1.5.0-sun-64 = %version-%release
java-1_5_0-sun-src requires java-1_5_0-sun = %version-%release
java-1_5_0-sun-src requires jre-1.5.0-sun-64 = %version-%release
java-1_6_0-ibm-demo requires java-1_6_0-ibm = %version-%release
java-1_6_0-ibm-devel requires java-1_6_0-ibm = %version-%release
java-1_6_0-ibm-jdbc requires java-1_6_0-ibm = %version-%release
java-1_6_0-ibm-src requires java-1_6_0-ibm = %version-%release
java-1_6_0-sun-alsa requires java-1_6_0-sun = %version-%release
java-1_6_0-sun-demo requires java-1_6_0-sun = %version-%release
java-1_6_0-sun-devel requires java-1_6_0-sun = %version-%release
java-1_6_0-sun-jdbc requires java-1_6_0-sun = %version-%release
java-1_6_0-sun-src requires java-1_6_0-sun = %version-%release
kernel-syms requires kernel-source = %version-%release
ksh-devel requires ksh = %version-%release
labltk requires ocaml = %version-%release
libapparmor-devel requires libapparmor1 = %version-%release
libcfitsio-devel requires libcfitsio0 = %version-%release
libcfitsio-doc requires libcfitsio0 = %version-%release
libetpan-devel requires libetpan11 = %version-%release
libnl-devel requires libnl = %version-%release
libtidy-devel requires libtidy = %version-%release
libunwind-devel requires libunwind = %version-%release
libvolume_id-devel requires libvolume_id = %version-%release
mono-complete requires bytefx-data-mysql = %version-%release
mono-complete requires ibm-data-db2 = %version-%release
mono-complete requires mono-core = %version-%release
mono-complete requires mono-data = %version-%release
mono-complete requires mono-data-oracle = %version-%release
mono-complete requires mono-data-postgresql = %version-%release
mono-complete requires mono-data-sqlite = %version-%release
mono-complete requires mono-data-sybase = %version-%release
mono-complete requires mono-extras = %version-%release
mono-complete requires mono-locale-extras = %version-%release
mono-complete requires mono-web = %version-%release
mono-complete requires mono-winforms = %version-%release
mono-data-firebird requires mono-core = %version-%release
mono-data-firebird requires mono-data = %version-%release
mono-data-oracle requires mono-core = %version-%release
mono-data-oracle requires mono-data = %version-%release
mono-data-postgresql requires mono-core = %version-%release
mono-data-postgresql requires mono-data = %version-%release
mono-data-sqlite requires mono-core = %version-%release
mono-data-sqlite requires mono-data = %version-%release
mono-data-sybase requires mono-core = %version-%release
mono-data-sybase requires mono-data = %version-%release
mono-data requires mono-core = %version-%release
mono-devel requires mono-core = %version-%release
mono-extras requires mono-core = %version-%release
mono-jscript requires mono-core = %version-%release
mono-locale-extras requires mono-core = %version-%release
mono-nunit requires mono-core = %version-%release
mono-web requires mono-core = %version-%release
mono-winforms requires mono-core = %version-%release
mozilla-nss-devel requires mozilla-nss = %version-%release
ncurses-devel requires ncurses = %version-%release
ocaml-docs requires ocaml = %version-%release
ocaml-emacs requires ocaml = %version-%release
ocaml-ocamldoc requires ocaml = %version-%release
openwbem-devel requires openwbem = %version-%release
powersave-devel requires powersave = %version-%release
python-pygame-doc requires python-pygame = %version-%release
sabayon-admin requires sabayon = %version-%release
seahorse-devel requires seahorse = %version-%release
smart-gui requires smart = %version-%release
smart-ksmarttray requires smart = %version-%release
smart-ksmarttray requires smart-gui = %version-%release
splashy-themes requires splashy = %version-%release
tack requires ncurses = %version-%release
udev requires libvolume_id = %version-%release
x11-input-gunze-tools requires x11-input-gunze = %version-%release
x11-input-wacom-devel requires x11-input-wacom-tools = %version-%release
x11-input-wacom-tools requires x11-input-wacom = %version-%release
yum-updatesd requires yum = %version-%release