[gentoo-dev] Automated Package Removal and Addition Tracker, for the week ending 2016-07-10 23:59 UTC

2016-07-10 Thread Robin H. Johnson
The attached list notes all of the packages that were added or removed
from the tree, for the week ending 2016-07-10 23:59 UTC.

Removals:
app-arch/libzpaq   20160707-20:44 mgorny9062759
dev-ruby/gherkin3  20160707-20:52 mgornyced290d
dev-util/osdt  20160707-20:51 mgorny378574b
kde-base/kactivitymanagerd 20160708-19:16 johu  6da1ba8
sys-apps/9base 20160705-22:59 bman  440bfa1
sys-fs/redirfs 20160707-20:54 mgornyc4f7ed7

Additions:
app-admin/needrestart  20160704-18:00 monsieurp d068491
dev-perl/Test-Needs20160710-14:45 kentnlc3cc8b3
dev-perl/Test-RequiresInternet 20160710-13:30 dilfridge 8db16a8
dev-python/chump   20160705-18:26 monsieurp 109eb7c
dev-python/libzilla20160708-16:44 monsieurp 1d63b7c
dev-python/schema  20160706-10:45 monsieurp dd40e01
dev-ruby/hamster   20160705-04:49 graaff913a586
kde-apps/kholidays 20160705-16:38 johu  bd5da70
net-im/telegram-desktop-bin20160528-13:58 monsieurp 6549bb3

--
Robin Hugh Johnson
Gentoo Linux Developer
E-Mail : robb...@gentoo.org
GnuPG FP   : 11AC BA4F 4778 E3F6 E4ED  F38E B27B 944E 3488 4E85
Removed Packages:
kde-base/kactivitymanagerd,removed,johu,20160708-19:16,6da1ba8
sys-fs/redirfs,removed,mgorny,20160707-20:54,c4f7ed7
dev-ruby/gherkin3,removed,mgorny,20160707-20:52,ced290d
dev-util/osdt,removed,mgorny,20160707-20:51,378574b
app-arch/libzpaq,removed,mgorny,20160707-20:44,9062759
sys-apps/9base,removed,bman,20160705-22:59,440bfa1
Added Packages:
dev-perl/Test-Needs,added,kentnl,20160710-14:45,c3cc8b3
dev-perl/Test-RequiresInternet,added,dilfridge,20160710-13:30,8db16a8
net-im/telegram-desktop-bin,added,monsieurp,20160528-13:58,6549bb3
dev-python/libzilla,added,monsieurp,20160708-16:44,1d63b7c
app-admin/needrestart,added,monsieurp,20160704-18:00,d068491
dev-python/chump,added,monsieurp,20160705-18:26,109eb7c
dev-python/schema,added,monsieurp,20160706-10:45,dd40e01
kde-apps/kholidays,added,johu,20160705-16:38,bd5da70
dev-ruby/hamster,added,graaff,20160705-04:49,913a586

Done.

[gentoo-dev] [warning] the bug queue has 95 bugs

2016-07-10 Thread Alex Alexander
Our bug queue has 95 bugs!

If you have some spare time, please help assign/sort a few bugs.

To view the bug queue, click here: http://bit.ly/m8PQS5

Thanks!



[gentoo-portage-dev] [PATCH v3] portage.cache: write md5 instead of mtime (bug 568934)

2016-07-10 Thread Zac Medico
Change cache modules to write md5 in cache entries, instead of mtime.
Since portage-2.2.27, the relevant cache modules have had the ability
to read cache entries containing either md5 or mtime, therefore this
change is backward-compatible with portage-2.2.27 and later.

Also fix the reconstruct_eclasses function to raise CacheCorruption
when the specified chf_type is md5 and the cache entry contains mtime
data, and optimize __getitem__ to skip reconstruct_eclasses calls when
the entry appears to have a different chf_type.

X-Gentoo-Bug: 568934
X-Gentoo-Bug-url: https://bugs.gentoo.org/show_bug.cgi?id=568934
---
[PATCH v3] fixes the __getitem__ optimization to ensure that
CacheCorruption is raised if a cache entry does not contain a
recognized chf_type

 pym/portage/cache/anydbm.py|  4 ++--
 pym/portage/cache/flat_hash.py |  4 ++--
 pym/portage/cache/sqlite.py|  4 ++--
 pym/portage/cache/template.py  | 26 ++
 4 files changed, 28 insertions(+), 10 deletions(-)

diff --git a/pym/portage/cache/anydbm.py b/pym/portage/cache/anydbm.py
index 80d24e5..88d85b0 100644
--- a/pym/portage/cache/anydbm.py
+++ b/pym/portage/cache/anydbm.py
@@ -36,8 +36,8 @@ from portage.cache import cache_errors
 
 class database(fs_template.FsBased):
 
-   validation_chf = 'mtime'
-   chf_types = ('mtime', 'md5')
+   validation_chf = 'md5'
+   chf_types = ('md5', 'mtime')
 
autocommits = True
cleanse_keys = True
diff --git a/pym/portage/cache/flat_hash.py b/pym/portage/cache/flat_hash.py
index cca0f10..3a899c0 100644
--- a/pym/portage/cache/flat_hash.py
+++ b/pym/portage/cache/flat_hash.py
@@ -163,5 +163,5 @@ class md5_database(database):
 
 
 class mtime_md5_database(database):
-   validation_chf = 'mtime'
-   chf_types = ('mtime', 'md5')
+   validation_chf = 'md5'
+   chf_types = ('md5', 'mtime')
diff --git a/pym/portage/cache/sqlite.py b/pym/portage/cache/sqlite.py
index 32e4076..69150f6 100644
--- a/pym/portage/cache/sqlite.py
+++ b/pym/portage/cache/sqlite.py
@@ -18,8 +18,8 @@ if sys.hexversion >= 0x300:
 
 class database(fs_template.FsBased):
 
-   validation_chf = 'mtime'
-   chf_types = ('mtime', 'md5')
+   validation_chf = 'md5'
+   chf_types = ('md5', 'mtime')
 
autocommits = False
synchronous = False
diff --git a/pym/portage/cache/template.py b/pym/portage/cache/template.py
index a7c6de0..d292eed 100644
--- a/pym/portage/cache/template.py
+++ b/pym/portage/cache/template.py
@@ -54,6 +54,10 @@ class database(object):
 
if self.serialize_eclasses and "_eclasses_" in d:
for chf_type in chf_types:
+   if '_%s_' % chf_type not in d:
+   # Skip the reconstruct_eclasses call, 
since this
+   # entry appears to have a different 
chf_type.
+   continue
try:
d["_eclasses_"] = 
reconstruct_eclasses(cpv, d["_eclasses_"],
chf_type, 
paths=self.store_eclass_paths)
@@ -62,6 +66,9 @@ class database(object):
raise
else:
break
+   else:
+   raise cache_errors.CacheCorruption(cpv,
+   'entry does not contain a recognized 
chf_type')
 
elif "_eclasses_" not in d:
d["_eclasses_"] = {}
@@ -310,6 +317,18 @@ def serialize_eclasses(eclass_dict, chf_type='mtime', 
paths=True):
for k, v in sorted(eclass_dict.items(), key=_keysorter))
 
 
+def _md5_deserializer(md5):
+   if len(md5) != 32:
+   raise ValueError('expected 32 hex digits')
+   return md5
+
+
+_chf_deserializers = {
+   'md5': _md5_deserializer,
+   'mtime': long,
+}
+
+
 def reconstruct_eclasses(cpv, eclass_string, chf_type='mtime', paths=True):
"""returns a dict when handed a string generated by 
serialize_eclasses"""
eclasses = eclass_string.rstrip().lstrip().split("\t")
@@ -317,9 +336,7 @@ def reconstruct_eclasses(cpv, eclass_string, 
chf_type='mtime', paths=True):
# occasionally this occurs in the fs backends.  they suck.
return {}
 
-   converter = _unicode
-   if chf_type == 'mtime':
-   converter = long
+   converter = _chf_deserializers.get(chf_type, lambda x: x)
 
if paths:
if len(eclasses) % 3 != 0:
@@ -340,6 +357,7 @@ def reconstruct_eclasses(cpv, eclass_string, 
chf_type='mtime', paths=True):
raise cache_errors.CacheCorruption(cpv,
"_eclasses_ was of invalid len %i" % len(eclasses))
except ValueError:
-   raise 

[gentoo-dev] Adding Ada support to toolchain.eclass

2016-07-10 Thread Luke A. Guest
Hi,

I've managed to add Ada to the toolchain.eclass, I've built in a chroot
for x86 and amd64, building 4.9.3 using the bootstrap that Steve Arnold
put together. I also then built a 5.1.0 build using the installed 4.9.3
toolchain. I then installed mingw crossdev toolchain with ada support.

It's based on my overlay to add this to gentoo,
https://github.com/Lucretia/ada-overlay.

I've included a patch to the latest eclass.

Thanks,
Luke.

--- /usr/portage/eclass/toolchain.eclass	2016-06-21 18:20:38.0 +0100
+++ eclass/toolchain.eclass	2016-07-10 18:18:14.849734912 +0100
@@ -152,7 +152,7 @@
 	# versions which we dropped.  Since graphite was also experimental in
 	# the older versions, we don't want to bother supporting it.  #448024
 	tc_version_is_at_least 4.8 && IUSE+=" graphite" IUSE_DEF+=( sanitize )
-	tc_version_is_at_least 4.9 && IUSE+=" cilk +vtv"
+	tc_version_is_at_least 4.9 && IUSE+=" cilk +vtv ada"
 	tc_version_is_at_least 5.0 && IUSE+=" jit mpx"
 	tc_version_is_at_least 6.0 && IUSE+=" pie +ssp"
 fi
@@ -161,6 +161,14 @@
 
 SLOT="${GCC_CONFIG_VER}"
 
+# If using Ada, use this bootstrap compiler to build, only when there is not existing compiler.
+# Support nothing before 4.9.x series.
+if [[ ! -f `which gnatbind 2>&1|tee /dev/null` ]]; then
+	# First time build, so need to bootstrap this.
+	tc_version_is_at_least 4.9 && GNAT_BOOTSTRAP_VERSION="4.9"
+	GNAT_STRAP_DIR="${WORKDIR}/gnat_strap"
+fi
+
 #>> DEPEND <<
 
 RDEPEND="sys-libs/zlib
@@ -355,6 +363,11 @@
 		fi
 	fi
 
+	if in_iuse ada && [[ -n ${GNAT_STRAP_DIR} ]] ; then
+		GCC_SRC_URI+=" amd64? ( https://dev.gentoo.org/~nerdboy/files/gnatboot-${GNAT_BOOTSTRAP_VERSION}-amd64.tar.xz )
+	   x86?   ( https://dev.gentoo.org/~nerdboy/files/gnatboot-${GNAT_BOOTSTRAP_VERSION}-i686.tar.xz )"
+	fi
+
 	echo "${GCC_SRC_URI}"
 }
 
@@ -401,6 +414,26 @@
 	else
 		gcc_quick_unpack
 	fi
+
+	# Unpack the Ada bootstrap if we're using it.
+	if in_iuse ada && [[ -n ${GNAT_STRAP_DIR} ]] ; then
+		if [ ! -d ${GNAT_STRAP_DIR} ]; then
+			mkdir -p ${GNAT_STRAP_DIR} > /dev/null
+		fi
+
+		pushd ${GNAT_STRAP_DIR} > /dev/null
+
+		case $(tc-arch) in
+			amd64)
+unpack gnatboot-${GNAT_BOOTSTRAP_VERSION}-amd64.tar.xz
+;;
+			x86)
+unpack gnatboot-${GNAT_BOOTSTRAP_VERSION}-i686.tar.xz
+;;
+		esac
+
+		popd > /dev/null
+	fi
 }
 
 gcc_quick_unpack() {
@@ -805,6 +838,29 @@
 	fi
 	[[ -n ${CBUILD} ]] && confgcc+=( --build=${CBUILD} )
 
+	# Add variables we need to make the build find the bootstrap compiler.
+	# We only want to use the bootstrap compiler for stage 1 of bootstrap, this will build the necessary compilers,
+	# then stage 2 uses these compilers.
+	#
+	# We only want to use the bootstrap when we don't have an already installed GNAT compiler.
+	if in_iuse ada && [[ -n ${GNAT_STRAP_DIR} ]] ; then
+		# We need to tell the system about our cross compiler!
+		export GNATBOOT=${GNAT_STRAP_DIR}/usr
+		export PATH="${GNATBOOT}/bin:${PATH}"
+
+		EXTRA_ECONF+=(
+			CC=${GNATBOOT}/bin/gnatgcc
+			CXX=${GNATBOOT}/bin/gnatg++
+			AR=${GNATBOOT}/bin/ar
+			AS=${GNATBOOT}/bin/as
+			LD=${GNATBOOT}/bin/ld
+			NM=${GNATBOOT}/bin/nm
+			RANLIB=${GNATBOOT}/bin/ranlib
+		)
+
+		einfo "EXTRA_ECONF=\"${EXTRA_ECONF}\""
+	fi
+
 	confgcc+=(
 		--prefix="${PREFIX}"
 		--bindir="${BINPATH}"
@@ -851,8 +907,8 @@
 	is_f77 && GCC_LANG+=",f77"
 	is_f95 && GCC_LANG+=",f95"
 
-	# We do NOT want 'ADA support' in here!
-	# is_ada && GCC_LANG+=",ada"
+	# We DO want 'ADA support' in here!
+	is_ada && GCC_LANG+=",ada"
 
 	confgcc+=( --enable-languages=${GCC_LANG} )
 
@@ -1669,7 +1725,12 @@
 	cd "${D}"${BINPATH}
 	# Ugh: we really need to auto-detect this list.
 	#  It's constantly out of date.
-	for x in cpp gcc g++ c++ gcov g77 gcj gcjh gfortran gccgo ; do
+
+	if in_iuse ada ; then
+		GNAT_EXTRA_BINS="gnat gnatbind gnatchop gnatclean gnatfind gnatkr gnatlink gnatls gnatmake gnatname gnatprep gnatxref"
+	fi
+
+	for x in cpp gcc g++ c++ gcov g77 gcj gcjh gfortran gccgo ${GNAT_EXTRA_BINS} ; do
 		# For some reason, g77 gets made instead of ${CTARGET}-g77...
 		# this should take care of that
 		if [[ -f ${x} ]] ; then


Re: [gentoo-dev] [PATCH 4/4] profiles: Add an amd64 no-lib-symlink profile

2016-07-10 Thread William Hubbs
Hold off on this one.

Let me work w/ releng today on this, I think we are going to create new
profiles.

William

On Sat, Jul 09, 2016 at 11:01:28PM +0200, Michał Górny wrote:
> Add an amd64 no-symlink profile that removes 'lib' symlink from
> the (current) default amd64 profile. Please note that this is not really
> a standard configuration (unlike the lib+lib64 model) but a profile
> intended to help developers find mispackaged software.
> 
> It provides a clean split where lib64 contains 64-bit libraries, lib32
> -- 32-bit libraries, and lib -- any other software packages (i.e.
> the new-style libexec use).
> ---
>  profiles/arch/amd64/no-lib-symlink/make.defaults| 2 ++
>  profiles/arch/amd64/no-lib-symlink/parent   | 1 +
>  profiles/default/linux/amd64/13.0/no-lib-symlink/parent | 2 ++
>  profiles/profiles.desc  | 1 +
>  4 files changed, 6 insertions(+)
>  create mode 100644 profiles/arch/amd64/no-lib-symlink/make.defaults
>  create mode 100644 profiles/arch/amd64/no-lib-symlink/parent
>  create mode 100644 profiles/default/linux/amd64/13.0/no-lib-symlink/parent
> 
> diff --git a/profiles/arch/amd64/no-lib-symlink/make.defaults 
> b/profiles/arch/amd64/no-lib-symlink/make.defaults
> new file mode 100644
> index 000..a715cf1
> --- /dev/null
> +++ b/profiles/arch/amd64/no-lib-symlink/make.defaults
> @@ -0,0 +1,2 @@
> +# do not want lib -> lib64 symlink, let lib be a directory on its own!
> +SYMLINK_LIB="no"
> diff --git a/profiles/arch/amd64/no-lib-symlink/parent 
> b/profiles/arch/amd64/no-lib-symlink/parent
> new file mode 100644
> index 000..f3229c5
> --- /dev/null
> +++ b/profiles/arch/amd64/no-lib-symlink/parent
> @@ -0,0 +1 @@
> +..
> diff --git a/profiles/default/linux/amd64/13.0/no-lib-symlink/parent 
> b/profiles/default/linux/amd64/13.0/no-lib-symlink/parent
> new file mode 100644
> index 000..2a54eb8
> --- /dev/null
> +++ b/profiles/default/linux/amd64/13.0/no-lib-symlink/parent
> @@ -0,0 +1,2 @@
> +../../../../../arch/amd64/no-lib-symlink
> +..
> diff --git a/profiles/profiles.desc b/profiles/profiles.desc
> index 2634742..9c4160f 100644
> --- a/profiles/profiles.desc
> +++ b/profiles/profiles.desc
> @@ -26,6 +26,7 @@ amd64   
> default/linux/amd64/13.0/desktop/kde/systemd   stable
>  amd64   default/linux/amd64/13.0/desktop/plasmastable
>  amd64   default/linux/amd64/13.0/desktop/plasma/systemdstable
>  amd64   default/linux/amd64/13.0/developer stable
> +amd64   default/linux/amd64/13.0/no-lib-symlinkdev
>  amd64   default/linux/amd64/13.0/no-multilib   dev
>  amd64   default/linux/amd64/13.0/systemd   stable
>  amd64   default/linux/amd64/13.0/x32   dev
> -- 
> 2.9.0
> 
> 


signature.asc
Description: Digital signature


Re: [gentoo-dev] man pages: build or copy?

2016-07-10 Thread Neil Bothwick
On Sun, 10 Jul 2016 08:37:57 +0200, Michał Górny wrote:

> > I've created an ebuild for net-misc/zerotier [1]. This has a BDEP on
> > app-text/ronn, the build system uses it to create the man pages. The
> > trouble is that ronn is a Ruby program and pulls in a shedload of
> > dependencies, just to install man pages.
> > 
> > It seems to me to make more sense to put pre-built man pages in
> > ${FILESDIR}/${PV} and copy them with doman. Is this considered the
> > correct or acceptable way to deal with this?
> > 
> > 1) https://bugs.gentoo.org/show_bug.cgi?id=588324  
> 
> If they are quite static (i.e. don't have important content that
> depends on USE flags etc.), generate them, put in a tarball somewhere
> (you can ask a proxy committer to host it for you), then fetch them via
> SRC_URI.

Thanks for that suggestion. I've done it that way with a tarball on
Github.


-- 
Neil Bothwick


pgp3opZDxzVoB.pgp
Description: OpenPGP digital signature


[gentoo-portage-dev] [PATCH] portage.cache: write md5 instead of mtime (bug 568934)

2016-07-10 Thread Zac Medico
Change cache modules to write md5 in cache entries, instead of mtime.
Since portage-2.2.27, the relevant cache modules have had the ability
to read cache entries containing either md5 or mtime, therefore this
change is backward-compatible with portage-2.2.27 and later.

Also, fix the reconstruct_eclasses function to raise CacheCorruption
when the specified chf_type is md5 and the cache entry contains mtime
data. This is needed so that the cache module chf_types attributes can
list md5 before mtime, without having mtime data be incorrectly
interpreted as md5 data.

X-Gentoo-Bug: 568934
X-Gentoo-Bug-url: https://bugs.gentoo.org/show_bug.cgi?id=568934
---
 pym/portage/cache/anydbm.py|  4 ++--
 pym/portage/cache/flat_hash.py |  4 ++--
 pym/portage/cache/sqlite.py|  4 ++--
 pym/portage/cache/template.py  | 19 +++
 4 files changed, 21 insertions(+), 10 deletions(-)

diff --git a/pym/portage/cache/anydbm.py b/pym/portage/cache/anydbm.py
index 80d24e5..88d85b0 100644
--- a/pym/portage/cache/anydbm.py
+++ b/pym/portage/cache/anydbm.py
@@ -36,8 +36,8 @@ from portage.cache import cache_errors
 
 class database(fs_template.FsBased):
 
-   validation_chf = 'mtime'
-   chf_types = ('mtime', 'md5')
+   validation_chf = 'md5'
+   chf_types = ('md5', 'mtime')
 
autocommits = True
cleanse_keys = True
diff --git a/pym/portage/cache/flat_hash.py b/pym/portage/cache/flat_hash.py
index cca0f10..3a899c0 100644
--- a/pym/portage/cache/flat_hash.py
+++ b/pym/portage/cache/flat_hash.py
@@ -163,5 +163,5 @@ class md5_database(database):
 
 
 class mtime_md5_database(database):
-   validation_chf = 'mtime'
-   chf_types = ('mtime', 'md5')
+   validation_chf = 'md5'
+   chf_types = ('md5', 'mtime')
diff --git a/pym/portage/cache/sqlite.py b/pym/portage/cache/sqlite.py
index 32e4076..69150f6 100644
--- a/pym/portage/cache/sqlite.py
+++ b/pym/portage/cache/sqlite.py
@@ -18,8 +18,8 @@ if sys.hexversion >= 0x300:
 
 class database(fs_template.FsBased):
 
-   validation_chf = 'mtime'
-   chf_types = ('mtime', 'md5')
+   validation_chf = 'md5'
+   chf_types = ('md5', 'mtime')
 
autocommits = False
synchronous = False
diff --git a/pym/portage/cache/template.py b/pym/portage/cache/template.py
index a7c6de0..021c706 100644
--- a/pym/portage/cache/template.py
+++ b/pym/portage/cache/template.py
@@ -310,6 +310,18 @@ def serialize_eclasses(eclass_dict, chf_type='mtime', 
paths=True):
for k, v in sorted(eclass_dict.items(), key=_keysorter))
 
 
+def _md5_deserializer(md5):
+   if len(md5) != 32:
+   raise ValueError('expected 32 hex digits')
+   return md5
+
+
+_chf_deserializers = {
+   'md5': _md5_deserializer,
+   'mtime': long,
+}
+
+
 def reconstruct_eclasses(cpv, eclass_string, chf_type='mtime', paths=True):
"""returns a dict when handed a string generated by 
serialize_eclasses"""
eclasses = eclass_string.rstrip().lstrip().split("\t")
@@ -317,9 +329,7 @@ def reconstruct_eclasses(cpv, eclass_string, 
chf_type='mtime', paths=True):
# occasionally this occurs in the fs backends.  they suck.
return {}
 
-   converter = _unicode
-   if chf_type == 'mtime':
-   converter = long
+   converter = _chf_deserializers.get(chf_type, lambda x: x)
 
if paths:
if len(eclasses) % 3 != 0:
@@ -340,6 +350,7 @@ def reconstruct_eclasses(cpv, eclass_string, 
chf_type='mtime', paths=True):
raise cache_errors.CacheCorruption(cpv,
"_eclasses_ was of invalid len %i" % len(eclasses))
except ValueError:
-   raise cache_errors.CacheCorruption(cpv, "_eclasses_ mtime 
conversion to long failed")
+   raise cache_errors.CacheCorruption(cpv,
+   "_eclasses_ not valid for chf_type {}".format(chf_type))
del eclasses
return d
-- 
2.7.4




Re: [gentoo-dev] man pages: build or copy?

2016-07-10 Thread Michał Górny
On Sat, 9 Jul 2016 14:54:56 +0100
Neil Bothwick  wrote:

> I've created an ebuild for net-misc/zerotier [1]. This has a BDEP on
> app-text/ronn, the build system uses it to create the man pages. The
> trouble is that ronn is a Ruby program and pulls in a shedload of
> dependencies, just to install man pages.
> 
> It seems to me to make more sense to put pre-built man pages in
> ${FILESDIR}/${PV} and copy them with doman. Is this considered the
> correct or acceptable way to deal with this?
> 
> 1) https://bugs.gentoo.org/show_bug.cgi?id=588324

If they are quite static (i.e. don't have important content that
depends on USE flags etc.), generate them, put in a tarball somewhere
(you can ask a proxy committer to host it for you), then fetch them via
SRC_URI.

-- 
Best regards,
Michał Górny



pgpS5yLzZ5mZ1.pgp
Description: OpenPGP digital signature