L.A. Walsh wrote:
Ruediger Meier wrote:
On Friday 30 January 2015, Stanislav Brabec wrote:
Bootstrapping all-in-one with previous generation goes against the spirit of the openSUSE Build Service. When any single bit is changed in the package, OBS triggers to rebuild all packages that have that just-rebuilt package as build dependency.
But in util-linux you do exactly the opposite now. You build systemd and python stuff against the locally built binaries which you just don't install then.
Yep.
You betray yourself. Moreover you don't even use "make install".
No, If you check the util-linux-systemd and python-libmount, you can see that these packages are built against stage 1. the sed magic should be smart enough to never build against local instances. Stage 2 and 3 should always use stage 1 libraries: See section: # Use installed first stage libraries If not, it is a bug. I do "make install". I even do ONLY make install. I don't need to delete unwanted libraries. Ugly sed scripts create valid and correct Makefile.am. %make_install (Well, the rm commands below existed even before the split. It would be nice to convert them to configure options, if the new version has such options.) The sed patches are so complicated just because it completely prevents to build against uninstalled libraries. You can also see stage 1 in BuildRequires of stages 2 and 3. %if !%build_util_linux %if %build_util_linux_systemd BuildRequires: libblkid-devel BuildRequires: libmount-devel BuildRequires: libsmartcols-devel BuildRequires: libuuid-devel %endif %if %build_python_libmount BuildRequires: libmount-devel %endif %endif
---- Yep. So maybe we are missing re-linking or ignore upstreams idea
of permissions etc. The test suite will always run incomplete and not with the binaries we have installed at the end.
The testsuite runs exactly in the same way as it is ran by the all-in-one package, just on the limited set of binaries. If relinking happens after testsuite run (I don't think so) then it happens also in all-in-one build. When the split was done, I did a byte-by-byte comparison of all pre-split binaries and post-split binaries. Most binaries and libraries are byte-by-byte exact. Other just add a different debuginfo.
Even worse all three split subpackages are using different patches and different configure options... So neither the installed binaries nor the installed sources match together.
No, patches are the same. Just the sed magic is different. The sed magic contains no fixes, no features, just handles the split. Most of these configure options control only set of binaries and libraries to build. There are following exceptions: --with-systemd: Enabling systemd creates different binaries. To prevent feature stripping, I added "SYSTEMD SAFETY CHECK" section, that verifies that no systemd-capable binary is built in stage 1. --with-uuidd: Enabling this feature changes libuuid. There is an ugly hack added to work-around this problem (we want to build libuuid in stage 1 but uuidd in stage 2). # We are not building util_linux_systemd => we are not building uuidd # But we want libuuid with support of uuidd. The default configure # disables it as well. To prevent breakage, there is a check. # Safety check: HAVE_UUIDD should be always 1: grep -q 'HAVE_UUIDD 1' config.h
Actually these kind of package split violates this "spirit of the openSUSE" and also upstreams's ideas about how should it be done.
I had a discussion with the upstream, and they agreed that support for build against external stage 1 libraries could be accepted. The spec file could be much cleaner afterward. I don't like the split as well. But Build Service maintainers like it. It saved one day of a complete rebuild time. -- Best Regards / S pozdravem, Stanislav Brabec software developer --------------------------------------------------------------------- SUSE LINUX, s. r. o. e-mail: sbrabec@suse.cz Lihovarská 1060/12 tel: +49 911 7405384547 190 00 Praha 9 fax: +420 284 084 001 Czech Republic http://www.suse.cz/ PGP: 830B 40D5 9E05 35D8 5E27 6FA3 717C 209F A04F CD76 -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org