Github messages for voidlinux
 help / color / mirror / Atom feed
* [ISSUE] WIP: subversion cross compiling
@ 2020-01-31 20:38 voidlinux-github
  2020-02-07 17:36 ` [ISSUE] [CLOSED] " voidlinux-github
  0 siblings, 1 reply; 2+ messages in thread
From: voidlinux-github @ 2020-01-31 20:38 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 4782 bytes --]

New issue by pullmoll on void-packages repository

https://github.com/void-linux/void-packages/issues/18699

Description:
If someone wants to help me getting subversion cross compiled, here's what I have so far:
```
# Template file for 'subversion'
pkgname=subversion
version=1.13.0
revision=1
build_style=gnu-configure
configure_args="--with-apxs --disable-javahl --disable-static --with-kwallet
 --with-gnome-keyring --with-editor=vi --disable-mod-activation
 --with-utf8proc=internal"
hostmakedepends="automake libtool pkg-config perl"
makedepends="apache-devel gdbm-devel libgnome-keyring-devel serf-devel
 libsecret-devel liblz4-devel python-devel sqlite-devel swig kdelibs4support-devel"
depends="ca-certificates"
short_desc="Enterprise-class centralized version control for the masses"
maintainer="Orphaned <orphan@voidlinux.org>"
license="Apache-2.0, BSD-3-Clause"
homepage="http://subversion.apache.org/"
distfiles="http://apache.uvigo.es/subversion/subversion-${version}.tar.bz2"
checksum=bc50ce2c3faa7b1ae9103c432017df98dfd989c4239f9f8270bb3a314ed9e5bd

if [ "$CROSS_BUILD" ]; then
	hostmakedepends+=" apache-devel"
fi

pre_configure() {
	if [ "$CROSS_BUILD" ]; then
		cp -a ${XBPS_CROSS_BASE}/usr/bin/apxs ${wrksrc}
		cp -a ${XBPS_CROSS_BASE}/usr/share/apache/webroot/build/config_vars.mk ${wrksrc}

		# Use the modified apxs
		configure_args+=" --with-apxs=${wrksrc}/apxs"

		# Use the ${wrksrc}/config_vars.mk
		vsed -i apxs -e "s;/usr/share/apache/webroot/build;${wrksrc};g"

		# Use apr-1-config and apu-1-config wrappers
		vsed -i config_vars.mk \
			-e "s;/usr/bin/\(ap.-1-config\);${XBPS_WRAPPERDIR}/\1;g" \
			-e "s;-I/usr/include;-I${XBPS_CROSS_BASE}/usr/include;g"

		# Remove failing tests for Mac OS specific features
		vsed -i configure.ac \
			-e "/SVN_LIB_MACHO_ITERATE/d" \
			-e "/SVN_LIB_MACOS_PLIST/d" \
			-e "/SVN_LIB_MACOS_KEYCHAIN/d"
		NOCONFIGURE=1 autoreconf -fi
	fi
}

do_build() {
	make ${makejobs} LT_LDFLAGS="-L$Fdestdir/usr/lib"
	make ${makejobs} swig_pydir=/usr/lib/python2.7/site-packages/libsvn \
		swig_pydir_extra=/usr/lib/python2.7/site-packages/svn \
		swig-py swig-pl
}

do_install() {
	export LD_LIBRARY_PATH=${DESTDIR}/usr/lib:$LD_LIBRARY_PATH

	make DESTDIR=${DESTDIR} INSTALLDIRS=vendor \
		swig_pydir=/usr/lib/python2.7/site-packages/libsvn \
		swig_pydir_extra=/usr/lib/python2.7/site-packages/svn \
		install install-swig-py install-swig-pl

	rm -rf ${DESTDIR}/usr/lib/perl5/core_perl
	vmkdir usr/share/subversion
	install -d -m755 tools/hook-scripts ${DESTDIR}/usr/share/subversion/
	rm -f ${DESTDIR}/usr/share/subversion/hook-scripts/*.in

	install -Dm644 tools/client-side/bash_completion \
		${DESTDIR}/usr/share/bash-completion/completions/subversion

	for i in svn svnadmin svndumpfilter svnlook svnsync svnversion; do
		ln -sf subversion ${DESTDIR}/usr/share/bash-completion/completions/${i}
	done

	vsv svnserve
	vlicense LICENSE
}

libsvn_package() {
	short_desc+=" - shared libraries"
	pkg_install() {
		vmove "usr/lib/libsvn_ra*.so.*"
		vmove "usr/lib/libsvn_fs*.so.*"
		vmove "usr/lib/libsvn_subr*.so.*"
		vmove "usr/lib/libsvn_wc*.so.*"
		vmove "usr/lib/libsvn_delta*.so.*"
		vmove "usr/lib/libsvn_diff*.so.*"
		vmove "usr/lib/libsvn_repos*.so.*"
		vmove "usr/lib/libsvn_client*.so.*"
	}
}

subversion-apache_package() {
	short_desc+=" - apache httpd modules"
	pkg_install() {
		vmove usr/libexec
	}
}

subversion-devel_package() {
	depends="libsvn>=${version}_${revision}"
	short_desc+=" - development files"
	pkg_install() {
		vmove usr/include
		vmove "usr/lib/*.so"
		vmove usr/share/pkgconfig
	}
}

subversion-gnome-keyring-auth_package() {
	lib32disabled=yes
	short_desc+=" - gnome-keyring authentication support"
	pkg_install() {
		vmove "usr/lib/libsvn_auth_gnome_keyring*"
	}
}

subversion-kwallet-auth_package() {
	lib32disabled=yes
	short_desc+=" - KDE kwallet authentication support"
	pkg_install() {
		vmove "usr/lib/libsvn_auth_kwallet*"
	}
}

subversion-python_package() {
	lib32disabled=yes
	depends="python"
	pycompile_module="libsvn svn"
	short_desc+=" - python bindings"
	pkg_install() {
		vmove "usr/lib/libsvn_swig_py*"
		vmove "usr/lib/python*"
	}
}

subversion-perl_package() {
	lib32disabled=yes
	depends="perl"
	short_desc+=" - perl bindings"
	pkg_install() {
		vmove "usr/lib/libsvn_swig_perl*"
		vmove usr/lib/perl5
		vmove usr/share/man/man3
	}
}
```

A build now fails to find `kf5-config` and I don't know if whether would be okay to add `kdelibs4support` to the hostmakedepends or if the target arch binary needs to be run under `qemu-${XBPS_TARGET_QEMU_MACHINE}-static`.

Or perhaps we should make `kwallet` support an option?

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [ISSUE] [CLOSED] WIP: subversion cross compiling
  2020-01-31 20:38 [ISSUE] WIP: subversion cross compiling voidlinux-github
@ 2020-02-07 17:36 ` voidlinux-github
  0 siblings, 0 replies; 2+ messages in thread
From: voidlinux-github @ 2020-02-07 17:36 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 4841 bytes --]

Closed issue by pullmoll on void-packages repository

https://github.com/void-linux/void-packages/issues/18699

Description:
If someone wants to help me getting subversion cross compiled, here's what I have so far:
```
# Template file for 'subversion'
pkgname=subversion
version=1.13.0
revision=1
build_style=gnu-configure
configure_args="--with-apxs --disable-javahl --disable-static --with-kwallet
 --with-gnome-keyring --with-editor=vi --disable-mod-activation
 --with-utf8proc=internal"
hostmakedepends="automake libtool pkg-config perl python"
makedepends="apache-devel gdbm-devel libgnome-keyring-devel serf-devel
 libsecret-devel liblz4-devel python-devel sqlite-devel swig kdelibs4support-devel"
depends="ca-certificates"
short_desc="Enterprise-class centralized version control for the masses"
maintainer="Orphaned <orphan@voidlinux.org>"
license="Apache-2.0, BSD-3-Clause"
homepage="http://subversion.apache.org/"
distfiles="http://apache.uvigo.es/subversion/subversion-${version}.tar.bz2"
checksum=bc50ce2c3faa7b1ae9103c432017df98dfd989c4239f9f8270bb3a314ed9e5bd

if [ "$CROSS_BUILD" ]; then
	hostmakedepends+=" apache-devel kdelibs4support kwallet-devel"
fi

pre_configure() {
	if [ "$CROSS_BUILD" ]; then
		cp -a ${XBPS_CROSS_BASE}/usr/bin/apxs ${wrksrc}
		cp -a ${XBPS_CROSS_BASE}/usr/share/apache/webroot/build/config_vars.mk ${wrksrc}

		# Use the modified apxs
		configure_args+=" --with-apxs=${wrksrc}/apxs"

		# Use the ${wrksrc}/config_vars.mk
		vsed -i apxs -e "s;/usr/share/apache/webroot/build;${wrksrc};g"

		# Use apr-1-config and apu-1-config wrappers
		vsed -i config_vars.mk \
			-e "s;/usr/bin/\(ap.-1-config\);${XBPS_WRAPPERDIR}/\1;g" \
			-e "s;-I/usr/include;-I${XBPS_CROSS_BASE}/usr/include;g"

		# Remove failing tests for Mac OS specific features
		vsed -i configure.ac \
			-e "/SVN_LIB_MACHO_ITERATE/d" \
			-e "/SVN_LIB_MACOS_PLIST/d" \
			-e "/SVN_LIB_MACOS_KEYCHAIN/d"
		NOCONFIGURE=1 autoreconf -fi
		sed -i Makefile.in \
			-e "s;@SVN_MACOS_PLIST_LIBS@;;" \
			-e "s;@SVN_MACOS_KEYCHAIN_LIBS@;;"
	fi
}

do_build() {
	make ${makejobs} LT_LDFLAGS="-L$Fdestdir/usr/lib"
	make ${makejobs} swig_pydir=${XBPS_CROSS_BASE}/usr/lib/python2.7/site-packages/libsvn \
		swig_pydir_extra=${XBPS_CROSS_BASE}/usr/lib/python2.7/site-packages/svn \
		swig-py swig-pl
}

do_install() {
	export LD_LIBRARY_PATH=${DESTDIR}/usr/lib:$LD_LIBRARY_PATH

	make DESTDIR=${DESTDIR} INSTALLDIRS=vendor \
		swig_pydir=${XBPS_CROSS_BASE}/usr/lib/python2.7/site-packages/libsvn \
		swig_pydir_extra=${XBPS_CROSS_BASE}/usr/lib/python2.7/site-packages/svn \
		install install-swig-py install-swig-pl

	rm -rf ${DESTDIR}/usr/lib/perl5/core_perl
	vmkdir usr/share/subversion
	install -d -m755 tools/hook-scripts ${DESTDIR}/usr/share/subversion/
	rm -f ${DESTDIR}/usr/share/subversion/hook-scripts/*.in

	install -Dm644 tools/client-side/bash_completion \
		${DESTDIR}/usr/share/bash-completion/completions/subversion

	for i in svn svnadmin svndumpfilter svnlook svnsync svnversion; do
		ln -sf subversion ${DESTDIR}/usr/share/bash-completion/completions/${i}
	done

	vsv svnserve
	vlicense LICENSE
}

libsvn_package() {
	short_desc+=" - shared libraries"
	pkg_install() {
		vmove "usr/lib/libsvn_ra*.so.*"
		vmove "usr/lib/libsvn_fs*.so.*"
		vmove "usr/lib/libsvn_subr*.so.*"
		vmove "usr/lib/libsvn_wc*.so.*"
		vmove "usr/lib/libsvn_delta*.so.*"
		vmove "usr/lib/libsvn_diff*.so.*"
		vmove "usr/lib/libsvn_repos*.so.*"
		vmove "usr/lib/libsvn_client*.so.*"
	}
}

subversion-apache_package() {
	short_desc+=" - apache httpd modules"
	pkg_install() {
		vmove usr/libexec
	}
}

subversion-devel_package() {
	depends="libsvn>=${version}_${revision}"
	short_desc+=" - development files"
	pkg_install() {
		vmove usr/include
		vmove "usr/lib/*.so"
		vmove usr/share/pkgconfig
	}
}

subversion-gnome-keyring-auth_package() {
	lib32disabled=yes
	short_desc+=" - gnome-keyring authentication support"
	pkg_install() {
		vmove "usr/lib/libsvn_auth_gnome_keyring*"
	}
}

subversion-kwallet-auth_package() {
	lib32disabled=yes
	short_desc+=" - KDE kwallet authentication support"
	pkg_install() {
		vmove "usr/lib/libsvn_auth_kwallet*"
	}
}

subversion-python_package() {
	lib32disabled=yes
	depends="python"
	pycompile_module="libsvn svn"
	short_desc+=" - python bindings"
	pkg_install() {
		vmove "usr/lib/libsvn_swig_py*"
		vmove "usr/lib/python*"
	}
}

subversion-perl_package() {
	lib32disabled=yes
	depends="perl"
	short_desc+=" - perl bindings"
	pkg_install() {
		vmove "usr/lib/libsvn_swig_perl*"
		vmove usr/lib/perl5
		vmove usr/share/man/man3
	}
}
```

Current problem left is that swig-pl (perl bindings) are compiled or linked with `gcc` instead of `$XBPS_CROSS_TRIPLET-gcc`.


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2020-02-07 17:36 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-31 20:38 [ISSUE] WIP: subversion cross compiling voidlinux-github
2020-02-07 17:36 ` [ISSUE] [CLOSED] " voidlinux-github

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).