poudriere, FLAVOR and rebuilding for python3.6

2018-09-09 Thread Bjarne


I have been using python 2.7 so far for all ports, which means all python packages  are built as 
py27-something. These python packages are all automaticcaly build as dependencies from other 
packages, for example like py27-dnspython which is a requirement of mailman.


Now I am trying to change to python36, but can't get the py36 packages to build. In the transition 
period,  I would like to simultaneously have:

py27-something
py36-something


In make.conf for the jail I set:
DEFAULT_VERSIONS+= python=3.6 python=2.7

I would expect a new "poudriere bulk" command would build all py36-something for me, but no, got 
nothing.

No packages where build.


I added the follwing to  poudriere.conf:
FLAVOR_DEFAULT_ALL=yes
Still without any luck.

I can of course specify that I want to build for example dnspython and then poudriere builds 
py36-dnspython, but that means I will have to go through all dependencies by hand.


So what am I supposed to do.

Updating just says:
"People using Poudriere 3.2+ and binary packages do not have to do anything."

--
Regards,
Bjarne

___
freebsd-ports@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"


RUN_DEPENDS and portmaster

2018-09-09 Thread Matthias Fechner
Dear all,

I have a questions reagarding the RUN_DEPENDS and at which step
dependencies should be installed.
I'm the maintainer of gitlab-ce port and I added a feature that checks
in the install target:
do-install:
(cd ${WRKSRC} && ${RM} Gemfile.lock && bundle install --local)
${FIND} ${WRKSRC} -name '*.orig' -delete
...

that all gems available in the system do match the version required by
the Gemfile.
Poudriere works fine with this, but portmaster fails.
Regarding the documentation RUN_DEPENDS packages should be installed
before the install is happening.
Is this install related to the do-install target or the installation of
the package itself?

Is this maybe a problem with portmaster as poudiere handles this correctly?

Thanks.

Gruß,
Matthias

-- 
"Programming today is a race between software engineers striving to
build bigger and better idiot-proof programs, and the universe trying to
produce bigger and better idiots. So far, the universe is winning." --
Rich Cook
___
freebsd-ports@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"


Re: poudriere, FLAVOR and rebuilding for python3.6

2018-09-09 Thread Matthew Seaman
On 09/09/2018 19:34, Bjarne wrote:
> 
> I have been using python 2.7 so far for all ports, which means all
> python packages  are built as py27-something. These python packages are
> all automaticcaly build as dependencies from other packages, for example
> like py27-dnspython which is a requirement of mailman.
> 
> Now I am trying to change to python36, but can't get the py36 packages
> to build. In the transition period,  I would like to simultaneously have:
> py27-something
> py36-something
> 
> 
> In make.conf for the jail I set:
> DEFAULT_VERSIONS+= python=3.6 python=2.7

This does not do what you're expecting, and will be equivalent to just
'python=2.7'

> I would expect a new "poudriere bulk" command would build all
> py36-something for me, but no, got nothing.
> No packages where build.
> 
> 
> I added the follwing to  poudriere.conf:
> FLAVOR_DEFAULT_ALL=yes
> Still without any luck.
> 
> I can of course specify that I want to build for example dnspython and
> then poudriere builds py36-dnspython, but that means I will have to go
> through all dependencies by hand.
> 
> So what am I supposed to do.

OK, there are two ways of handling this.

Firstly you can specify a package as:

   some/port@all

in the list of packages you feed to poudriere.  I think you can use that
on a package which is not itself flavoured, and the effect is inherited
by flavoured dependencies, but you'll need to experiment.  If you do
this explicitly for python ports it will result in building both
python-2.7 and python-3.6 versions.

Secondly you can build your packages with one default setting, and then
do an incremental bulk using the other default setting, which should
result in you ending up with both flavours in your repository.
Something like:

  # echo 'DEFAULT_VERSIONS+= python=3.6' >
/usr/local/etc/poudriere.d/python36-make.conf
  # poudriere bulk -c -f /usr/local/etc/poudriere.d/my-ports
  # poudriere bulk -z python36 -f  /usr/local/etc/poudriere.d/my-ports

It is, quite feasible to have simultaneous parallel installs of
python-2.7 and python-3.6 -- the DEFAULT_VERSIONS make.conf setting will
affect which version you get by typing plain 'python' by controlling how
various symbolic links are created.

Note that the version of any flavoured dependencies will be baked into
unflavoured packages, and it's the last built that will appear in your
repository.

However, your example of trying to treat the mail/mailman port in this
way is unfortunately doomed to failure, as mailman is specifically
restricted to python-2.7 only.

Cheers,

Matthew



signature.asc
Description: OpenPGP digital signature