Open antmat opened 11 years ago
The source package is targetted at wheezy. It will not work on squeeze, to use it there a backport of it would need to be created.
The reason for that is the introduction of multiarch support in wheezy. This changes the paths that libraries are installed to, and these changed paths are the reason for the errors you're seeing.
Essentially the modifications that would be required is to strip out (undo) the multiarch changes and add a new changelog entry documenting reverting the multiarch changes with ~bpo60+1 added to the version number it is based on. That version would make it 'older' than the wheezy version, so wouldn't break the squeeze->wheezy upgrade path.
See http://wiki.debian.org/Multiarch/Implementation for more information.
Ok, thanks a lot. I'll take a look =)
I have created a squeeze-backport branch on GitHub, please see whether this version builds ok on squeeze.
Please note some packages were removed in wheezy to avoid conflicts with mysql-5.5 (eg libmysqlclient18). You may find that this causes problems if trying to use the packages on squeeze - I have not had a change to test the bpo60 version.
The problem persists. I think it is due to removing libmysqlclient as you mentioned above
dh_install: usr/lib/libmysqlclient.so.18.0.0 exists in debian/tmp but is not installed to anywhere
dh_install: usr/lib/libmysqlclient.so exists in debian/tmp but is not installed to anywhere
dh_install: usr/lib/libmysqlclient.so.18 exists in debian/tmp but is not installed to anywhere
dh_install: usr/lib/libmysqlclient.a exists in debian/tmp but is not installed to anywhere
dh_install: usr/lib/libmysqlclient_r.a exists in debian/tmp but is not installed to anywhere
I suppose there should be -Xusr/lib/libmysqlclient option in dh_install command in override_dh_install target
Omitting them wouldn't be enough since they're used by some of the binaries. New packages would need to be added. That's not something that's trivial though as you need to be careful not to break the upgrade path to wheezy.
The move to targetting wheezy was partly because it massively simplies these issues as the mysql-5.5 there has libmysqlclient18 which is ABI compatible with the library in mysql cluster 7.2, so it can just depend on the package from mysql-5.5.
I've made some updates to the squeeze backport, can you see whether this is more successful?
Please note that to build the packages will require debhelper 9. On squeeze that means you'll need to install it from squeeze-backports, see http://backports-master.debian.org/Instructions/
Unfortunately, it still fails
-- Installing: /home/antmat/mysql-cluster-tmp/mysql-cluster-buildscripts/squeeze/debian/tmp/usr/share/man/man8/ndbmtd.8
make[2]: Leaving directory `/home/antmat/mysql-cluster-tmp/mysql-cluster-buildscripts/squeeze/builddir'
# After installing, remove rpath to make lintian happy.
set +e; \
find ./debian/tmp/ -type f -print0 \
| xargs -0 --no-run-if-empty chrpath -k 2>/dev/null \
| fgrep RPATH= \
| cut -d: -f 1 \
| xargs --no-run-if-empty chrpath -d; \
set -e
# libmysqlclient
# Check if our beloved versioned symbols are really there
if [ "`objdump -T /home/antmat/mysql-cluster-tmp/mysql-cluster-buildscripts/squeeze/debian/tmp//usr/lib/libmysqlclient.so.18.0.0 | grep -c libmysqlclient_18`" -lt 500 ]; then \
echo "ERROR: versioned symbols are absent"; \
exit 1; \
fi
ERROR: versioned symbols are absent
This seems strange. I've just checked on a clean squeeze installation and that library does build with the correct symbols. Are you sure you're using the latest revision of the squeeze-backport branch? Do a fresh git clone if in doubt.
If the problem still persists I'd be curious to see the output of: objdump -T $(TMP)/usr/lib/libmysqlclient.so.18.0.0 (It'll be a large amount so stick it somewhere like pastebin)
What build options, if any, were you using?
I'm doing it like this
antmat@vm1 ~/mysql-cluster-tmp2 $ git clone https://github.com/SteveAyre/mysql-cluster-buildscripts.git
antmat@vm1 ~/mysql-cluster-tmp2 $ cd mysql-cluster-buildscripts/
antmat@vm1 ~/mysql-cluster-tmp2/mysql-cluster-buildscripts $ ./scripts/checkout squeeze
antmat@vm1 ~/mysql-cluster-tmp2/mysql-cluster-buildscripts $ ./scripts/build squeeze
Now it gives me
CMake Error at plugin/auth/cmake_install.cmake:108 (FILE):
file INSTALL cannot copy file
"/home/antmat/mysql-cluster-tmp2/mysql-cluster-buildscripts/squeeze/builddir/plugin/auth/qa_auth_server.so"
to
"/home/antmat/mysql-cluster-tmp2/mysql-cluster-buildscripts/squeeze/debian/tmp/usr/lib/mysql/plugin/qa_auth_server.so".
Call Stack (most recent call first):
cmake_install.cmake:55 (INCLUDE)
-- Installing: /home/antmat/mysql-cluster-tmp2/mysql-cluster-buildscripts/squeeze/debian/tmp/usr/lib/mysql/plugin/qa_auth_client.so
make[2]: *** [install] Ошибка 1
make[2]: Leaving directory `/home/antmat/mysql-cluster-tmp2/mysql-cluster-buildscripts/squeeze/builddir'
make[1]: *** [auto_install-stamp] Ошибка 2
make[1]: Leaving directory `/home/antmat/mysql-cluster-tmp2/mysql-cluster-buildscripts/squeeze'
make: *** [binary-indep] Ошибка 2
make: *** Ожидание завершения заданий...
And if I run build the second time it gives
# After installing, remove rpath to make lintian happy.
set +e; \
find ./debian/tmp/ -type f -print0 \
| xargs -0 --no-run-if-empty chrpath -k 2>/dev/null \
| fgrep RPATH= \
| cut -d: -f 1 \
| xargs --no-run-if-empty chrpath -d; \
set -e
# libmysqlclient
# Check if our beloved versioned symbols are really there
if [ "`objdump -T /home/antmat/mysql-cluster-tmp2/mysql-cluster-buildscripts/squeeze/debian/tmp//usr/lib/libmysqlclient.so.18.0.0 | grep -c libmysqlclient_18`" -lt 500 ]; then \
echo "ERROR: versioned symbols are absent"; \
exit 1; \
fi
ERROR: versioned symbols are absent
make[1]: *** [auto_install-stamp] Ошибка 1
make[1]: Leaving directory `/home/antmat/mysql-cluster-tmp2/mysql-cluster-buildscripts/squeeze'
make: *** [binary-arch] Ошибка 2
dpkg-buildpackage: ошибка: fakeroot debian/rules binary возвратил код ошибки 2
and objdump -T $(TMP)/usr/lib/libmysqlclient.so.18.0.0 gives this http://nopaste.info/208568609e.html
When trying to build mysql-cluster on debian squeeze I'm getting this (some months ago I was able to build it on debian squeeze)
Sorry for russian, I have russian locale - I suppose it is clear that it returns an error. Please ask, if I can help you in any way. Thanks!