Re: [gentoo-dev] LFS QA warnings coming soon to a build near you

2015-06-01 Thread Alexis Ballier
On Sun, 31 May 2015 11:17:50 -0400
Mike Frysinger  wrote:

> well if we're going to do arbitrary lists ;)
> (1) your options aren't mutually exclusive
> (2) implementing both are desirable

good to know your longterm plan :)
however, even if both can be done, i still don't see the point of going
through patching if we end up changing the default anyway.

> (3) considering the glibc effort has been stalled for over a year,
> (1) is something we can help accomplish and make reasonable progress
> on (4) glibc isn't the only one that implements LFS in a transparent
> backwards compatible manner

maybe the fact that some file operations are broken with glibc's
default settings on a somewhat popular fs would be a good argument to
un-stall it ?

> which leads me to the next part ... my first suggestion in the
> tracker is for autotool based projects to use AC_SYS_LARGEFILE
> because: (a) it supports a variety of systems
> (b) as new systems come up or bugs are found or whatever, the
> autoconf macro will improve and people eventually get those fixes for
> free (c) it does it all transparently for you -- add the macro and
> you're done (d) it fixes the package for all users, new & old
> 
> the reason i listed only the raw CPPFLAGS and autoconf macros are
> because those are the two i'm familiar with.  i don't know how other
> build systems (e.g. cmake) support this (assuming they do at all).
> if people have other recipes on hand, then it would be great to
> collect more there. -mike


yes, but that is not what i am discussing: unless i missed something,
they'll all end up one way or another adding the relevant defines;
whether it is done with an m4 macro, append-lfs-flags, a cmake function
or what else is an implementation detail of little interest to me trying
to understand why we don't simply change the default :)

Alexis.



[gentoo-dev] udev-init-scripts update

2015-06-01 Thread William Hubbs
All,

I have not released udev-init-scripts-28 yet. However, the latest 
version is set up the way I think we should go forward; it automatically
adds the services to the sysinit runlevel.

Take a look and let me know what you think.

William



signature.asc
Description: Digital signature


Re: [gentoo-dev] LFS QA warnings coming soon to a build near you

2015-06-01 Thread Christopher Head
On May 31, 2015 7:33:28 AM PDT, Alexis Ballier  wrote:
>
>I'm not sure what's best for every one:
>1. Push hundreds of patches upstream to add lfs flags;
>2. Apply your patch to our glibc ebuilds, fix the corner cases, and go
>  back to glibc upstream with these data.
>

If the changes are made to glibc, would these be under a new symbol version for 
ABI compatibility, or just be changes to headers to make _FILE_OFFSET_BITS=64 
the default? If not, what about binary software? Not saying you haven’t 
considered the relevant issues; I just haven’t seen binary software brought up 
on this list yet.

-- 
Christopher Head



[gentoo-dev] s6.eclass: new eclass for installing s6 services

2015-06-01 Thread William Hubbs
All,

we are starting to add support for s6 service supervision to Gentoo, so
I would like to add an eclass to facilitate the installation of s6
services.

Please take a look and let me know what you think.

If no one objects, I will commit this to the tree on 3 Jun.

Thanks,

William

# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

# @ECLASS: s6.eclass
# @MAINTAINER:
# William Hubbs 
# @BLURB: helper functions to install s6 services
# @DESCRIPTION:
# This eclass provides a helper to install s6 services.
# @EXAMPLE:
#
# @CODE
# inherit s6
#
# src_install() {
#   ...
#   s6_doservice myservice "${FILESDIR}"/run-s6 "${FILESDIR}"/finish-s6
#   s6_doservice myservice/log "${FILESDIR}"/log-run-s6 \
#   "${FILESDIR}"/log-finish-s6
#   ...
# }
# @CODE

case ${EAPI:-0} in
0|1|2|3|4|5) ;;
*) die "${ECLASS}.eclass API in EAPI ${EAPI} not yet established."
esac

# @FUNCTION: _s6_get_servicedir
# @INTERNAL
# @DESCRIPTION:
# Get unprefixed servicedir.
_s6_get_servicedir() {
echo /var/svc.d
}

# @FUNCTION: s6_get_servicedir
# @DESCRIPTION:
# Output the path for the s6 service directory (not including ${D}).
s6_get_servicedir() {
has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX=
debug-print-function ${FUNCNAME} "${@}"

echo "${EPREFIX}$(_s6_get_servicedir)"
}

# @FUNCTION: s6_doservice
# @USAGE: servicename run finish
# @DESCRIPTION:
# Install an s6 service.
# servicename is the name of the service.
# run is the run script for the service.
# finish is the optional finish script for the service.
# This function is fatal in eapis newer than 4 and non-fatal otherwise.
s6_doservice() {
debug-print-function ${FUNCNAME} "${@}"

local name="$1"
local run="$2"
local finish="$3"

[[ $name ]] ||
die "${ECLASS}.eclassYou must specify the s6 service name."
[[ $run ]] ||
die "${ECLASS}.eclass: You must specify the s6 service run 
script."

(
local servicepath="$(_s6_get_servicedir)/$name"
exeinto "$servicepath"
newexe "$run" run
[[ $finish ]] && newexe "$finish" finish
)
}


signature.asc
Description: Digital signature


Re: [gentoo-dev] s6.eclass: new eclass for installing s6 services

2015-06-01 Thread Michał Górny
Dnia 2015-06-01, o godz. 12:13:52
William Hubbs  napisał(a):

> # @FUNCTION: s6_get_servicedir
> # @DESCRIPTION:
> # Output the path for the s6 service directory (not including ${D}).
> s6_get_servicedir() {
>   has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX=

How about killing some support for ancient EAPIs? The less people can
use them, the better for ebuild migration.

>   debug-print-function ${FUNCNAME} "${@}"
> 
>   echo "${EPREFIX}$(_s6_get_servicedir)"
> }
> 
> # @FUNCTION: s6_doservice
> # @USAGE: servicename run finish

Please don't name it 'do*' if it doesn't match the usual do-function
usage, i.e. 'dofoo file1 file2...'. That's why I created
'systemd_install_serviced' and not 'doserviced'.

-- 
Best regards,
Michał Górny


pgpFdxZ3sVnNL.pgp
Description: OpenPGP digital signature


Re: [gentoo-dev] s6.eclass: new eclass for installing s6 services

2015-06-01 Thread William Hubbs
On Mon, Jun 01, 2015 at 07:24:26PM +0200, Michał Górny wrote:
> Dnia 2015-06-01, o godz. 12:13:52
> William Hubbs  napisał(a):
> 
> > # @FUNCTION: s6_get_servicedir
> > # @DESCRIPTION:
> > # Output the path for the s6 service directory (not including ${D}).
> > s6_get_servicedir() {
> > has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX=
> 
> How about killing some support for ancient EAPIs? The less people can
> use them, the better for ebuild migration.

That's easy enough. In that case I would start support at eapi 5.

> 
> > debug-print-function ${FUNCNAME} "${@}"
> > 
> > echo "${EPREFIX}$(_s6_get_servicedir)"
> > }
> > 
> > # @FUNCTION: s6_doservice
> > # @USAGE: servicename run finish
> 
> Please don't name it 'do*' if it doesn't match the usual do-function
> usage, i.e. 'dofoo file1 file2...'. That's why I created
> 'systemd_install_serviced' and not 'doserviced'.

Ok, it would be easy enough to name it s6_install_service. There can't
be a do* in this case then because an s6 service is not just a simple
file.

William


signature.asc
Description: Digital signature


Re: [gentoo-dev] s6.eclass: new eclass for installing s6 services

2015-06-01 Thread Brian Evans
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 6/1/2015 1:13 PM, William Hubbs wrote:
> All,
> 
> we are starting to add support for s6 service supervision to
> Gentoo, so I would like to add an eclass to facilitate the
> installation of s6 services.
> 
> Please take a look and let me know what you think.
> 
> If no one objects, I will commit this to the tree on 3 Jun.
> 

Can support be added for a run/finish log script?
Should be no big deal to add what amounts to

doexe $(s6_get_servicedir)/$name/log
newexe run-s6 run

Otherwise i may just cheat and use $name/log as the name on a second
call since the eclass does not do any $name validation.

Thanks
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.17 (MingW32)

iQIcBAEBAgAGBQJVbJi1AAoJENH3ge/59KO2MZQP/2fc8nVlFkjXJGGFVchTKhwK
XvUAB9PmF2oRz5xOPAbhfQc1YgQaVLDqFV/PrNHfN/gmcUnfvRv2JnSFEqw6Qv7O
aCOQenVF6WhQjfxxfolZjBMX7M0rM2XgXQ8aHEov1JkQyV/1JXUr4MsLAyZwLE9v
Di8MLcxZv/diJI3cqqiPucoehi/sPxQdc37mPbw3uGN+oWOzTMmwmUaPUEcvq2Pu
gmtX6YA/A+1O/4pDXO7zJedHHFsluAlaUcuHJSp0LJ7RnfyFy0ZXqS4TjXs+N8q/
dPr51cKrL3bU1vLrOWQLHXvWHZIm3Uc3Po3P2x2AvqZpebltSFVZzaEq/e/DXrSK
bgRpOzwTXMENHPM6cUr/GiebbAD+m3WG9TkS+wcd1C25NSsq+ocZQDJjaLf+VfpK
hwZ1uIUy0Ux0LmdyGnnDNl8pWORldbtlC/tWjL3ZYf7OWVkRckxAoQ6lLSdf9qa/
pU2qO68bE3iDLL5r48QVmy4Xc1A1/zqge3vxvxG6DyerXJYRWF4OF23fSbCpdrQi
BBRNE2p6g9jgJIps96iCL89DOdRAg6zopcMwZEO+e4cOHmAewxGFunsnCQAYsMIV
9EMUQH2l1vDwoKNglIgB6o/knGpjapJGgeU4IGlIjKjnuSucSaIYtquIqU5HagOR
N+70MyEB9VVn0fgUneSa
=OciI
-END PGP SIGNATURE-



Re: [gentoo-dev] s6.eclass: new eclass for installing s6 services

2015-06-01 Thread William Hubbs
On Mon, Jun 01, 2015 at 01:39:01PM -0400, Brian Evans wrote:
> Can support be added for a run/finish log script?
> Should be no big deal to add what amounts to
> 
> doexe $(s6_get_servicedir)/$name/log
> newexe run-s6 run
> 
> Otherwise i may just cheat and use $name/log as the name on a second
> call since the eclass does not do any $name validation.

I'm open to it, I'm just not sure how I would make it happen since the
finish script for the service itself is optional. For example:

s6_install_service service script-1 script-2

In the above, script-2 is optional and could either be the finish script
for ${service} or the run script for ${service}/log, which is a service
itself.

The only way I can think of to allow service and log service
installation at the same time would be to use a reserved value such as
"none" to indicate that a script should be skipped. If I did that, to
install a run script and a log run script might look like:

s6_install_service service run-script none log-run-script

If you have a finish script, the call would be:

s6_install_service service run-script finish-script log-run-script

For either of these calls, there would also be an optional final
argument which would be the log-finish-script.

The tradeoff here would be that whatever I choose to indicate that a
script is skipped can't be used as a file name.

What do you think?

William



signature.asc
Description: Digital signature


Re: [gentoo-dev] s6.eclass: new eclass for installing s6 services

2015-06-01 Thread William Hubbs
All,

here is an updated version of the eclass after receiving feedback on
IRC.

Let me know what you think.

Thanks,

William

# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

# @ECLASS: s6.eclass
# @MAINTAINER:
# William Hubbs 
# @BLURB: helper functions to install s6 services
# @DESCRIPTION:
# This eclass provides helpers to install s6 services.
# @EXAMPLE:
#
# @CODE
# inherit s6
#
# src_install() {
#   ...
#   s6_install_service myservice "${FILESDIR}"/run-s6 
"${FILESDIR}"/finish-s6
...
#   If you want a service to be logged, install the log service as
#   shown here.
#   s6_install_service myservice/log "${FILESDIR}"/log-run-s6 \
#   "${FILESDIR}"/log-finish-s6
#   ...
# }
# @CODE

case ${EAPI:-0} in
5) ;;
*) die "${ECLASS}.eclass API in EAPI ${EAPI} not yet established."
esac

# @FUNCTION: _s6_get_servicedir
# @INTERNAL
# @DESCRIPTION:
# Get unprefixed servicedir.
_s6_get_servicedir() {
echo /var/svc.d
}

# @FUNCTION: s6_get_servicedir
# @DESCRIPTION:
# Output the path for the s6 service directory (not including ${D}).
s6_get_servicedir() {
debug-print-function ${FUNCNAME} "${@}"

echo "${EPREFIX}$(_s6_get_servicedir)"
}

# @FUNCTION: s6_install_service
# @USAGE: servicename run finish
# @DESCRIPTION:
# Install an s6 service.
# servicename is the name of the service.
# run is the run script for the service.
# finish is the optional finish script for the service.
s6_install_service() {
debug-print-function ${FUNCNAME} "${@}"

local name="$1"
local run="$2"
local finish="$3"

[[ $name ]] ||
die "${ECLASS}.eclassYou must specify the s6 service name."
[[ $run ]] ||
die "${ECLASS}.eclass: You must specify the s6 service run 
script."

(
local servicepath="$(_s6_get_servicedir)/$name"
exeinto "$servicepath"
newexe "$run" run
[[ $finish ]] && newexe "$finish" finish
)
}

# @FUNCTION: s6_service_down
# @USAGE: servicename
# @DESCRIPTION:
# Install the "down" flag so this service will not be started by
# default.
# servicename is the name of the service.
s6_service_down() {
debug-print-function ${FUNCNAME} "${@}"

local name="$1"

[[ $name ]] ||
die "${ECLASS}.eclassYou must specify the s6 service name."

(
touch "$T"/down || die
local servicepath="$(_s6_get_servicedir)/$name"
insinto "$servicepath"
doins "$T"/down
)
}

# @FUNCTION: s6_service_nosetsid
# @USAGE: servicename
# @DESCRIPTION:
# Install the "nosetsid" flag so this service will not be made a session
# leader.
# servicename is the name of the service.
s6_service_nosetsid() {
debug-print-function ${FUNCNAME} "${@}"

local name="$1"

[[ $name ]] ||
die "${ECLASS}.eclassYou must specify the s6 service name."

(
touch "$T"/nosetsid || die
local servicepath="$(_s6_get_servicedir)/$name"
insinto "$servicepath"
doins "$T"/nosetsid
)
}


signature.asc
Description: Digital signature


Re: [gentoo-dev] s6.eclass: new eclass for installing s6 services

2015-06-01 Thread Tim Harder
On 2015-06-01 17:08, William Hubbs wrote:
>   [[ $name ]] ||
>   die "${ECLASS}.eclassYou must specify the s6 service name."

This looks like it's missing a colon and space after ${ECLASS}.eclass,
note that this typo appears to be copied to a few other places.

Tim


signature.asc
Description: PGP signature


[gentoo-dev] Re: [gentoo-commits] gentoo-x86 commit in eclass: linux-info.eclass

2015-06-01 Thread Michał Górny
Dnia 2015-06-02, o godz. 04:27:35
"Mike Frysinger (vapier)"  napisał(a):

> vapier  15/06/02 04:27:35
> 
>   Modified: linux-info.eclass
>   Log:
>   fix looking up output dir when cross-compiling (fix by Nam Nguyen from 
> Chromium OS)
> 
> Revision  ChangesPath
> 1.106eclass/linux-info.eclass
> 
> file : 
> http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/linux-info.eclass?rev=1.106&view=markup
> plain: 
> http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/linux-info.eclass?rev=1.106&content-type=text/plain
> diff : 
> http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/linux-info.eclass?r1=1.105&r2=1.106
> 
> Index: linux-info.eclass
> ===
> RCS file: /var/cvsroot/gentoo-x86/eclass/linux-info.eclass,v
> retrieving revision 1.105
> retrieving revision 1.106
> diff -u -r1.105 -r1.106
> --- linux-info.eclass 9 May 2015 08:03:40 -   1.105
> +++ linux-info.eclass 2 Jun 2015 04:27:35 -   1.106
> @@ -1,6 +1,6 @@
>  # Copyright 1999-2015 Gentoo Foundation
>  # Distributed under the terms of the GNU General Public License v2
> -# $Header: /var/cvsroot/gentoo-x86/eclass/linux-info.eclass,v 1.105 
> 2015/05/09 08:03:40 ulm Exp $
> +# $Header: /var/cvsroot/gentoo-x86/eclass/linux-info.eclass,v 1.106 
> 2015/06/02 04:27:35 vapier Exp $
>  
>  # @ECLASS: linux-info.eclass
>  # @MAINTAINER:
> @@ -529,7 +529,15 @@
>   # but before we do this, we need to find if we use a different object 
> directory.
>   # This *WILL* break if the user is using localversions, but we assume 
> it was
>   # caught before this if they are.
> - 
> OUTPUT_DIR="${OUTPUT_DIR:-/lib/modules/${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${KV_EXTRA}/build}"
> + if [[ -z ${OUTPUT_DIR} ]] ; then
> + # Try to locate a kernel that is most relevant for us.
> + for OUTPUT_DIR in "${SYROOT}" "${ROOT}" "" ; do

What's SYROOT? Did you mean SYSROOT?

> + 
> OUTPUT_DIR+="/lib/modules/${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${KV_EXTRA}/build"
> + if [[ -e ${OUTPUT_DIR} ]] ; then
> + break
> + fi
> + done
> + fi
>  
>   [ -h "${OUTPUT_DIR}" ] && KV_OUT_DIR="$(readlink -f ${OUTPUT_DIR})"
>   [ -d "${OUTPUT_DIR}" ] && KV_OUT_DIR="${OUTPUT_DIR}"

Also, how about you send your eclass changes for review like everyone
else is supposed to? That's how we usually fix bugs like the above.
Especially that you *aren't* listed as maintainer of the eclass, so
likely you won't even be CC-ed on bugs you created.

-- 
Best regards,
Michał Górny


pgpFHabew13yc.pgp
Description: OpenPGP digital signature