Re: Mac OS Forge Migration update

2014-03-20 Thread Shreeraj Karulkar
Josh
The rsync command that is failing is something like this

buildbot@build buildbot]$ grep rsync deploy_archives.sh
rsync -rlDzv --ignore-existing ${ULPATH}/ ${DLHOST}:${DLPATH}
rsync -rlDzv --ignore-existing ${ULPATH}/ ${DLPATH}
[buildbot@build buildbot]$

I need some help in running a strace on it and providing support the out put. 
The command will look like.

# strace -f -t -T -o /tmp/rsync-rlDzv.trc rsync -rlDzv --ignore-existing 
${ULPATH}/ ${DLHOST}:${DLPATH}

I have done this by using test directory and test files between build.macports 
and packages.macports but it did not encounter any errors.

Shree
 

On Mar 17, 2014, at 11:12 PM, Joshua Root j...@macports.org wrote:

 On 2014-3-18 06:43 , Shreeraj Karulkar wrote:
 
 3) Buildbot/Slaves: While all the build-slaves seem to be compiling fine you 
 are probably referring to the deploy_archives.sh is failing for Mavericks 
 right? I have tried send a file via rsync with similar options (-rlDzv) from 
 build.macports to rsync.macports and it went through successfully. I also 
 did a su to user buildbot and sent a test file through successfully. It did 
 prompt me to accept the RSA key though. Can you check if it has worked?
 There is also a reference to use -e in the rsync options to pass ssh options 
 like the --ignore-existing” optionthat is being used in the script. However 
 the script has not changed 2013 so I am not sure it thats an issue.
 
 I am still working on this and would appreciate any clues from anyone, sorry 
 for the delay in the resolution of these issues.
 
 There are three buildbot-related issues remaining:
 
 1. buildslaves can't selfupdate (possibly they can't connect to
 rsync.macports.org).
 
 https://build.macports.org/builders/buildports-mavericks-x86_64/builds/2211/steps/sync/logs/stdio
 
 2. buildmaster can't connect to packages.macports.org with rsync.
 
 https://build.macports.org/builders/buildports-mavericks-x86_64/builds/2210/steps/deploy%20archives/logs/stdio
 
 3. buildmaster is not receiving any changesets. These should come from
 the post-commit hook which presumably runs on svn.macports.org.
 
 - Josh

___
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev


Arrival of new MacPorts version including mpstats

2014-03-20 Thread MK-MacPorts
Hi MacPorts devs,

how is the schedule for release of the next MP release which will - I gather - 
include the opt-in-able mpstats?

Greets,
Marko
___
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev


Re: Buildbot fails to upload packages...

2014-03-20 Thread Joshua Root
After it's fixed I'll re-run all the port builds since it broke.

- Josh

On 2014-3-20 05:29 , Shreeraj Karulkar wrote:
 Nope, I am looking into it.
 
 Shree
 
 On Mar 19, 2014, at 8:56 AM, Eric A. Borisch ebori...@macports.org
 mailto:ebori...@macports.org wrote:
 
 Just making sure this hasn't dropped off the radar.

 Just picking the latest build:
 https://build.macports.org/builders/buildports-lion-x86_64/builds/18908/steps/deploy%20archives/logs/stdio

  - Eric

___
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev


Re: Move part of macports infrastructure to GitHub

2014-03-20 Thread Mojca Miklavec
Hi,

Despite the fact that I kept pushing a couple of other projects to
switch to a different version control system (mostly from CVS to git),
MacPorts is one of those projects where the current system (trac with
nice linking between tickets and commits, subversion, buildbots, email
accounts, ...) works pretty well and also looks nice. I do miss some
functionality (like a website with a nice overview of packages with
their build success, latest few commits etc.), but that isn't
something that a migration can solve.

Subversion actually has a bunch of benefits over git in this
particular environment. Git is strong in merging, cherry-picking,
having a large number of branches etc., but I don't see much need for
that for maintaining Portfiles. The biggest problem with Portfiles is
that a number of people without commit rights might need to wait for a
long time before someone picks up their patch and commits it, but
switching to a different system would still mean that someone would
need to look at commit and test it before accepting it. The only thing
that could be different is probably a clearly visible pull request. In
MacPorts' trac it's not too easy to spot the difference between
please commit this, it's fully functional vs. I've been just
playing around and tossing ideas – feel free to look and this patch
and improve it vs. plain requests to fix things. And if a random
developer just happens to have time and is willing to test and commit
something, it's not clear in which of the thousands of open tickets to
start looking. (Trac searches and browsing through tickets based on
specific criteria could be improved, but I'm not sure how.)

Migrating to a completely new system for version control and tickets
would probably be either very difficult or lossy (or both). And the
workflow would need to be redefined completely.

I'm not saying that I oppose the idea if someone is actually willing
to spend time to do it right, just saying that current system works
nice and that git or hg probably wouldn't add that much. (For me, Tcl
is the one that's often limiting my contributions a lot more than
anything else because I don't have much experience writing code in
it.)

That said, a git/hg mirror on GitHub/ButBucket would definitely be
nice. MacPorts could potentially offer a selfupdate from an
arbitrary git/hg repository clone if necessary (but one can already
have a clone on the filesystem and use that one).

Btw, we now have:
- Fink: CVS + Perl
- MacPorts: SVN + Tcl
- HomeBrew: GIT + Ruby

We desperately need the fourth package manager using HG + Python ;)

Mojca
___
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev


Where do I find a good example of a tests variant (which is really installing the tests on the system)?

2014-03-20 Thread MK-MacPorts
I would like to introduce a tests variant for a port.

Can someone point me to a port which successfully installs a test variant?

I know that I can build and run tests when building ports (i.e. when I only run 
“sudo port build; cd build; ctest …”).

But I want that all needed test files get actually installed in the system and 
not only built and removed again.
So, I’d like to know where to place which files below ${destroot}.

Greets,
Marko
___
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev


Re: GSoC 2014 - Interactive Port Command and

2014-03-20 Thread Joshua Root
On 2014-3-20 12:29 , Marcus Santos wrote:
 
 Can you help me with some questions I have about base/src/port/port.tcl and 
 base/src/macports1.0.tcl?
 
 First of all I need to understand how they work together and what is the role 
 of each one. I have been around the code of the progress bar to understand 
 how it works and trying to realize how can I do the interaction between the 
 user and macports, and where to assess the input from the user. Second, how 
 can I use the interface of macports1.0 to allow asking user questions?

port.tcl is the port(1) command. It also contains a fair bit of code
that could be factored out and used by multiple front ends (if we had
them). This script is responsible for parsing and evaluating the command
line arguments and running the appropriate actions. UI stuff, basically.

macports.tcl provides an API (but no UI) for running targets on ports,
as well as some other stuff like selfupdate. First you mportinit, then
you mportlookup to find the port you want, then you mportopen it, then
you mportexec one or more targets on it, then when you're done you
mportclose it.

You wouldn't really use macports1.0 to ask the user questions, that
would be the role of the new interactive UI that you're going to write.
You would attempt to do things using the macports1.0 API, then if they
don't succeed, you would examine the error code and offer the user
appropriate choices depending on the situation.

You may or may not need to modify macports1.0 to give the front end more
information to support this.

- Josh
___
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev


Re: GSoC 2014 - Interactive Port Command and

2014-03-20 Thread Clemens Lang
Hi,

 On 2014-3-20 12:29 , Marcus Santos wrote:
  Can you help me with some questions I have about base/src/port/port.tcl and
  base/src/macports1.0.tcl?
  
  First of all I need to understand how they work together and what is the
  role of each one. I have been around the code of the progress bar to
  understand how it works and trying to realize how can I do the interaction
  between the user and macports, and where to assess the input from the
  user. Second, how can I use the interface of macports1.0 to allow asking
  user questions?
 
 [...]
 
 You wouldn't really use macports1.0 to ask the user questions, that
 would be the role of the new interactive UI that you're going to write.
 You would attempt to do things using the macports1.0 API, then if they
 don't succeed, you would examine the error code and offer the user
 appropriate choices depending on the situation.
 
 You may or may not need to modify macports1.0 to give the front end more
 information to support this.

Actually I was thinking of modifying port.tcl in a way that passes a callback
to macports1.0 that would subsequently be used in every situation where asking
the user a question makes sense. Of course that should only be done when there
is a callback function (i.e. only when port.tcl is used interactively).

So, you'd have to identify:
 - What requirements and API would such a conversation function have
 - Where can this be used and what type of feedback should the user be able
   to provide? Yes/No questions? Choices from a list of options? Dot graphs?
   (the latter would be a little unexpected, though ;))

From a mail a sent to a different student on the code structure in macports
base:

 8  8  8  8  8  8  8  8  8 
Just as a very simple primer:
 - port/ contains the tools you run from the command line
   Those should take care of argument parsing and output presentation
 - macports1.0/ is the core of MacPorts
   It knows where all the Portfiles are, manages settings, opens and runs
   Portfiles, etc.
 - port1.0/ is the API available to Portfiles and some helper functions
   All commands available in Portfiles are defined there, along with some
   helpers we use to simplify running Portfiles. Most of this code is usually
   run in a sub-interpreter created in macports1.0.
 - package1.0/ manages all the binary archive downloading and packaging
   If something extracts, packages or downloads a binary archive, it's
   probably using this code.
 - pextlib1.0/ is a collection of helper functions exported to Tcl
   Most of these would otherwise not be available in Tcl and export a Tcl
   command that's used elsewhere.
 - registry2.0/ and cregistry/ are helpers related to the registry
   They provide a Tcl abstraction of the C routines used to talk to the
   SQLite database of installed ports and files.

The rest are rather minor packages:
 - machista1.0/ is a helper library to parse Mach-O binaries
   It is used in rev-upgrade to check for linking errors
 - darwintracelib1.0/ contains a library needed for trace mode
   These are the source files that will be injected into each process using
   DYLD_INSERT_LIBRARIES when using trace mode.
 - programs/ contains helpers, e.g. for launchd plists
 - tcjobjc1.0/ and cflib1.0/ are currently unused
   Those were supposed to be bridges between Tcl and Objective-C or
   CoreFoundation for other (mostly GUI) software to use.

So, e.g. the progress information for downloads is generated in
pextlib1.0/curl.c where the cURL API is used to download files.
pextlib1.0/curl.c exports a Tcl command called curl, which is used in
port1.0 and package1.0 for downloads. To implement the progress bar, this
command got a new parameter to define a Tcl callback proc to be called with
the updated information. However, since port/port.tcl should take care of how
the progress bar should be displayed, the callback needs to be provided by
this file. To get the correct callback from port/port.tcl to port1.0 and
package1.0 where it is passed to pextlib1.0, it needs to go through
macports1.0 (as you have seen). Always imagine that it should be possible
to replace port/port.tcl with a GUI client (rendering a GUI progress bar).

 8  8  8  8  8  8  8  8  8 

HTH,

-- 
Clemens Lang
___
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev


Re: [117817] trunk/dports/devel/automake

2014-03-20 Thread Adam Mercer
On Thu, Mar 20, 2014 at 12:11 AM, David Evans dev...@macports.org wrote:

 If that is what is happening then you must be using the MacPorts Python
 ports as well.

Yes I am.

 The intent of the patch is for the macro to determine the
 correct Python installation paths for whichever Python is passed in env var
 PYTHON or failing that whichever Python it finds in the current search path.

 So if you are building a non-MacPorts project you should be using a
 non-MacPorts
 Python that is built to expect your installed Python modules where ever you
 plan to install them.

Why? That means that MacPorts python can only be used for MacPorts, so
are you saying that now I should install another version of python
along with all the required dependencies for third party code outside
of MacPorts? That makes no sense, the whole point of MacPorts is to
ease installation of software now you're essentially saying it can
only be used to install dependencies for other MacPorts ports?

 That's not very clear, is it?  I hope you understand my point.  You want
 these paths
 to point to where the Python in use will search for modules, not just in
 the arbitrary
 locations ${prefix} and ${exec_prefix} (although that's the norm for
 non-MacPorts installations).

I agree that MacPorts should install libraries in this path but we
need be able to use MacPorts to build other software on our systems.

Cheers

Adam
___
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev


Re: MacPorts automake and python

2014-03-20 Thread Eric A. Borisch
Brining back to dev list; seems like the right place.

On Thu, Mar 20, 2014 at 4:01 PM, Sean Farley s...@macports.org wrote:


 Adam Mercer r...@macports.org writes:

  On Thu, Mar 20, 2014 at 2:55 PM, Sean Farley s...@macports.org wrote:
 
  I tend to agree with you but need help seeing how this worked
  before. What path did automake pick up before this change?
 
  If you look at the patch you can see the original paths:
 
  
 http://trac.macports.org/browser/trunk/dports/devel/automake/files/patch-m4-python.m4.diff
 
 
  The original paths are:
 
  AC_SUBST([PYTHON_PREFIX], ['${prefix}'])
  AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}'])
 
  Just to clarify this isn't the MacPorts prefix but the prefix for the
  running configure process.

 Right, sorry, I meant more along the lines of:

 Before: my project installed into /path/foo/a
 After:  my project installed into /path/foo/b


I think the issue here is that automake is getting patched to *only*
support MacPorts-managed builds, but really automake should still be
available for use to build non-MP software.

What was broken that needed fixing (by the original change)? Is there a
particular port that needed the change? Is there another way to fix it
without modifying automake?

Assuming the change is/was needed (and the best solution), perhaps setting
an environment variable during MP managed builds could be used here to
switch the behavior? Something along the lines of:

AC_SUBST([PYTHON_PREFIX], [`[ ${__MP_BUILD__} ]  $PYTHON -c import sys;
sys.stdout.write(sys.prefix); || echo -n ${prefix}`])

where __MP_BUILD__=1 during a managed build, and undefined otherwise?

This way when a user outside of MacPorts is installing a
python-using-software (built against MP-provided python) and they have set
$prefix via configure, it doesn't get crowbarred into /opt/local/ (or
wherever MP is installed.) (Granted, as the .m4 file notes, they will need
to set PYTHONPATH or tell python about it in some manner to use it.)

 - Eric
___
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev


Re: MacPorts automake and python

2014-03-20 Thread Adam Mercer
On Thu, Mar 20, 2014 at 4:01 PM, Sean Farley s...@macports.org wrote:

 Before: my project installed into /path/foo/a
 After:  my project installed into /path/foo/b

Got you, if I configured using: ./configure --prefix=$HOME/opt

the the Python modules would be installed in:
$HOME/opt/lib/python2.7/site-packages

After the change it wants to install them in:
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/

Cheers

Adam
___
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev


Re: MacPorts automake and python

2014-03-20 Thread Adam Mercer
On Thu, Mar 20, 2014 at 4:51 PM, Eric A. Borisch ebori...@macports.org wrote:

 I think the issue here is that automake is getting patched to *only* support
 MacPorts-managed builds, but really automake should still be available for
 use to build non-MP software.

Agreed, that's one of the main concerns I have with this.

 What was broken that needed fixing (by the original change)? Is there a
 particular port that needed the change? Is there another way to fix it
 without modifying automake?

 Assuming the change is/was needed (and the best solution), perhaps setting
 an environment variable during MP managed builds could be used here to
 switch the behavior? Something along the lines of:

 AC_SUBST([PYTHON_PREFIX], [`[ ${__MP_BUILD__} ]  $PYTHON -c import sys;
 sys.stdout.write(sys.prefix); || echo -n ${prefix}`])

 where __MP_BUILD__=1 during a managed build, and undefined otherwise?

Seems that would work, but I'm not sure I like the idea of hacking the
autotools. At work I've run into a lot of bizarre problems that I
eventually traced back to different OS vendors making changes to the
autotools.

 This way when a user outside of MacPorts is installing a
 python-using-software (built against MP-provided python) and they have set
 $prefix via configure, it doesn't get crowbarred into /opt/local/ (or
 wherever MP is installed.) (Granted, as the .m4 file notes, they will need
 to set PYTHONPATH or tell python about it in some manner to use it.)

In the past when I've needed to ensure that python libraries, provided
by MacPorts, end up in the correct location I've used something like
the following:

set pythondir 
${frameworks_dir}/Python.framework/Versions/2.7/lib/python2.7/site-packages
destroot.args-append \
  pythondir=${pythondir} \
  pyexecdir=${pythondir} \
  pkgpythondir=${pythondir}/${name} \
  pkgpyexecdir=${pythondir}/${name}

It's a bit of a hack but gives full control and doesn't break things
for non MacPorts use.

Cheers

Adam
___
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev


Re: MacPorts automake and python

2014-03-20 Thread Sean Farley

Adam Mercer r...@macports.org writes:

 On Thu, Mar 20, 2014 at 4:01 PM, Sean Farley s...@macports.org wrote:

 Before: my project installed into /path/foo/a
 After:  my project installed into /path/foo/b

 Got you, if I configured using: ./configure --prefix=$HOME/opt

 the the Python modules would be installed in:
 $HOME/opt/lib/python2.7/site-packages

 After the change it wants to install them in:
 /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/

Ok, yeah, that's what I was wondering. Hacking autotools to change this
behavior is ludicrous. This change most certainly needs to be
reverted.

Honestly, I don't know why we're messing with automake at all. If this
is just to make installing ports (from the perspective of the portfile
author) easier then why can't this type of change go in the python
portgroup?
___
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev


MacPorts automake and python

2014-03-20 Thread Eric A. Borisch
On Thursday, March 20, 2014, Sean Farley
s...@macports.orgjavascript:_e(%7B%7D,'cvml','s...@macports.org');
wrote:


 Adam Mercer r...@macports.org writes:

  On Thu, Mar 20, 2014 at 4:01 PM, Sean Farley s...@macports.org wrote:
 
  Before: my project installed into /path/foo/a
  After:  my project installed into /path/foo/b
 
  Got you, if I configured using: ./configure --prefix=$HOME/opt
 
  the the Python modules would be installed in:
  $HOME/opt/lib/python2.7/site-packages
 
  After the change it wants to install them in:
 
 /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/

 Ok, yeah, that's what I was wondering. Hacking autotools to change this
 behavior is ludicrous. This change most certainly needs to be
 reverted.

 Honestly, I don't know why we're messing with automake at all. If this
 is just to make installing ports (from the perspective of the portfile
 author) easier then why can't this type of change go in the python
 portgroup?


That's what I was trying to get at - my guess it is not py-* ports that
benefitted from the change, but ports that include some pythonic parts.
Fixing one or two problem ports would be a better fix than patching the
build environment (automake).

devans@macports, what was the reason for the change? I don't see a ticket
referenced?

  - Eric
___
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev


Re: MacPorts automake and python

2014-03-20 Thread Sean Farley

Eric A. Borisch ebori...@macports.org writes:

 On Thursday, March 20, 2014, Sean Farley
 s...@macports.orgjavascript:_e(%7B%7D,'cvml','s...@macports.org');
 wrote:


 Adam Mercer r...@macports.org writes:

  On Thu, Mar 20, 2014 at 4:01 PM, Sean Farley s...@macports.org wrote:
 
  Before: my project installed into /path/foo/a
  After:  my project installed into /path/foo/b
 
  Got you, if I configured using: ./configure --prefix=$HOME/opt
 
  the the Python modules would be installed in:
  $HOME/opt/lib/python2.7/site-packages
 
  After the change it wants to install them in:
 
 /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/

 Ok, yeah, that's what I was wondering. Hacking autotools to change this
 behavior is ludicrous. This change most certainly needs to be
 reverted.

 Honestly, I don't know why we're messing with automake at all. If this
 is just to make installing ports (from the perspective of the portfile
 author) easier then why can't this type of change go in the python
 portgroup?


 That's what I was trying to get at - my guess it is not py-* ports that
 benefitted from the change, but ports that include some pythonic parts.
 Fixing one or two problem ports would be a better fix than patching the
 build environment (automake).

Yes, I wholeheartedly agree. Having ./configure --prefix=$HOME install
python parts into MacPorts' prefix is just plain bananas.
___
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev


Re: MacPorts automake and python

2014-03-20 Thread David Evans
On 3/20/14 2:57 PM, Adam Mercer wrote:
 On Thu, Mar 20, 2014 at 4:01 PM, Sean Farley s...@macports.org wrote:

 Before: my project installed into /path/foo/a
 After:  my project installed into /path/foo/b
 Got you, if I configured using: ./configure --prefix=$HOME/opt

 the the Python modules would be installed in:
 $HOME/opt/lib/python2.7/site-packages

 After the change it wants to install them in:
 /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/

 Cheers

 Adam
 ___
 macports-dev mailing list
 macports-dev@lists.macosforge.org
 https://lists.macosforge.org/mailman/listinfo/macports-dev

Sorry for not responding sooner.  I have been busy with non-MacPorts
issues today myself.

This answers one of my questions as well.   The second related question
is what exactly is being installed
in site-packages?  If it's a python extension module and you expect it
to be available to MacPorts python27
via import or the like, I appears to me that you would get an error that
the module can't be found because
it's not in Pythons true installation prefix.

What's your motivation for installing it elsewhere?  Trying to
understand but I guess I'm being dense.


___
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev


Re: MacPorts automake and python

2014-03-20 Thread Adam Mercer
On Thu, Mar 20, 2014 at 5:57 PM, David Evans dev...@orindasoftware.com wrote:

 What's your motivation for installing it elsewhere?  Trying to
 understand but I guess I'm being dense.

Simply because I'm installing manually from source, it isn't part of
MacPorts and shouldn't be installed in the MacPorts prefix.

I work on a project that has releases available via MacPorts, I have
the releases installed via MacPorts and install from the VCS locally,
with this change the development python libraries will overwrite the
release python libraries and cause a whole host of problems.

Cheers

Adam
___
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev


Re: Where do I find a good example of a tests variant (which is really installing the tests on the system)?

2014-03-20 Thread Ryan Schmidt

On Mar 20, 2014, at 03:07, mk-macpo...@techno.ms wrote:

 I would like to introduce a tests variant for a port.
 
 Can someone point me to a port which successfully installs a test variant?
 
 I know that I can build and run tests when building ports (i.e. when I only 
 run “sudo port build; cd build; ctest …”).
 
 But I want that all needed test files get actually installed in the system 
 and not only built and removed again.
 So, I’d like to know where to place which files below ${destroot}.

I’m not aware of any ports that do that, or any tests that are designed to work 
that way.

___
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev


Re: MacPorts automake and python

2014-03-20 Thread Sean Farley

David Evans dev...@orindasoftware.com writes:

 On 3/20/14 2:57 PM, Adam Mercer wrote:
 On Thu, Mar 20, 2014 at 4:01 PM, Sean Farley s...@macports.org wrote:

 Before: my project installed into /path/foo/a
 After:  my project installed into /path/foo/b
 Got you, if I configured using: ./configure --prefix=$HOME/opt

 the the Python modules would be installed in:
 $HOME/opt/lib/python2.7/site-packages

 After the change it wants to install them in:
 /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/

 Cheers

 Adam
 ___
 macports-dev mailing list
 macports-dev@lists.macosforge.org
 https://lists.macosforge.org/mailman/listinfo/macports-dev

 Sorry for not responding sooner.  I have been busy with non-MacPorts
 issues today myself.

 This answers one of my questions as well.   The second related question
 is what exactly is being installed
 in site-packages?  If it's a python extension module and you expect it
 to be available to MacPorts python27
 via import or the like, I appears to me that you would get an error that
 the module can't be found because
 it's not in Pythons true installation prefix.

 What's your motivation for installing it elsewhere?  Trying to
 understand but I guess I'm being dense.

The motivation is simple: I told ./configure to install everything into
$HOME/opt. Period. Patching automake to change this behavior is Very Bad™.
___
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev


Re: Move part of macports infrastructure to GitHub

2014-03-20 Thread Ryan Schmidt

On Mar 20, 2014, at 02:46, Mojca Miklavec wrote:

 Despite the fact that I kept pushing a couple of other projects to
 switch to a different version control system (mostly from CVS to git),
 MacPorts is one of those projects where the current system (trac with
 nice linking between tickets and commits, subversion, buildbots, email
 accounts, ...) works pretty well and also looks nice. I do miss some
 functionality (like a website with a nice overview of packages with
 their build success, latest few commits etc.), but that isn't
 something that a migration can solve.

Right, that’s something improving the MacPorts web site should solve.


 Subversion actually has a bunch of benefits over git in this
 particular environment. Git is strong in merging, cherry-picking,
 having a large number of branches etc., but I don't see much need for
 that for maintaining Portfiles. The biggest problem with Portfiles is
 that a number of people without commit rights might need to wait for a
 long time before someone picks up their patch and commits it, but
 switching to a different system would still mean that someone would
 need to look at commit and test it before accepting it. The only thing
 that could be different is probably a clearly visible pull request. In
 MacPorts' trac it's not too easy to spot the difference between
 please commit this, it's fully functional vs. I've been just
 playing around and tossing ideas – feel free to look and this patch
 and improve it vs. plain requests to fix things. And if a random
 developer just happens to have time and is willing to test and commit
 something, it's not clear in which of the thousands of open tickets to
 start looking. (Trac searches and browsing through tickets based on
 specific criteria could be improved, but I'm not sure how.)

Such a person should search for tickets with the “haspatch” keyword; that 
keyword should probably only be used for patches that are ready to go.

https://trac.macports.org/query?status=!closedkeywords=~haspatchdesc=1order=id


 That said, a git/hg mirror on GitHub/ButBucket would definitely be
 nice.

Why would that be nicer than the read-only git mirror that Mac OS Forge already 
provides here:

http://www.macosforge.org/post/git-mirrors/


 MacPorts could potentially offer a selfupdate from an
 arbitrary git/hg repository clone if necessary (but one can already
 have a clone on the filesystem and use that one).

selfupdate uses rsync only.

sync can use rsync or svn, possibly other version control systems already, I 
don’t remember.


___
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev


Re: Where do I find a good example of a tests variant (which is really installing the tests on the system)?

2014-03-20 Thread MK-MacPorts
On 21 Mar 2014, at 00:14 , Ryan Schmidt ryandes...@macports.org wrote:
 I’m not aware of any ports that do that, or any tests that are designed to 
 work that way.

OK, in just now I have made it work by simply chown'ing the port’s work 
directory and executing ctest by the logged in user.
That finally did the job.

(And yes, you are right, the tests wouldn’t work if one would install the tests 
someplace.
The test apps need to sit in the build directory in order to access additional 
files outside it.
___
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev


Re: Move part of macports infrastructure to GitHub

2014-03-20 Thread Mark Anderson
sync certainly works with git as well.

--Mark
___
Mark E. Anderson e...@emer.net


On Thu, Mar 20, 2014 at 7:19 PM, Ryan Schmidt ryandes...@macports.orgwrote:


 On Mar 20, 2014, at 02:46, Mojca Miklavec wrote:

  Despite the fact that I kept pushing a couple of other projects to
  switch to a different version control system (mostly from CVS to git),
  MacPorts is one of those projects where the current system (trac with
  nice linking between tickets and commits, subversion, buildbots, email
  accounts, ...) works pretty well and also looks nice. I do miss some
  functionality (like a website with a nice overview of packages with
  their build success, latest few commits etc.), but that isn't
  something that a migration can solve.

 Right, that's something improving the MacPorts web site should solve.


  Subversion actually has a bunch of benefits over git in this
  particular environment. Git is strong in merging, cherry-picking,
  having a large number of branches etc., but I don't see much need for
  that for maintaining Portfiles. The biggest problem with Portfiles is
  that a number of people without commit rights might need to wait for a
  long time before someone picks up their patch and commits it, but
  switching to a different system would still mean that someone would
  need to look at commit and test it before accepting it. The only thing
  that could be different is probably a clearly visible pull request. In
  MacPorts' trac it's not too easy to spot the difference between
  please commit this, it's fully functional vs. I've been just
  playing around and tossing ideas - feel free to look and this patch
  and improve it vs. plain requests to fix things. And if a random
  developer just happens to have time and is willing to test and commit
  something, it's not clear in which of the thousands of open tickets to
  start looking. (Trac searches and browsing through tickets based on
  specific criteria could be improved, but I'm not sure how.)

 Such a person should search for tickets with the haspatch keyword; that
 keyword should probably only be used for patches that are ready to go.


 https://trac.macports.org/query?status=!closedkeywords=~haspatchdesc=1order=id


  That said, a git/hg mirror on GitHub/ButBucket would definitely be
  nice.

 Why would that be nicer than the read-only git mirror that Mac OS Forge
 already provides here:

 http://www.macosforge.org/post/git-mirrors/


  MacPorts could potentially offer a selfupdate from an
  arbitrary git/hg repository clone if necessary (but one can already
  have a clone on the filesystem and use that one).

 selfupdate uses rsync only.

 sync can use rsync or svn, possibly other version control systems already,
 I don't remember.


 ___
 macports-dev mailing list
 macports-dev@lists.macosforge.org
 https://lists.macosforge.org/mailman/listinfo/macports-dev

___
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev


Re: MacPorts automake and python

2014-03-20 Thread David Evans
On 3/20/14 3:01 PM, Adam Mercer wrote:
 On Thu, Mar 20, 2014 at 4:51 PM, Eric A. Borisch ebori...@macports.org 
 wrote:

 I think the issue here is that automake is getting patched to *only* support
 MacPorts-managed builds, but really automake should still be available for
 use to build non-MP software.
 Agreed, that's one of the main concerns I have with this.
I don't see this as MacPorts specific.  Instead it correctly determines
the default PYTHON_PREFIX
for the Python in use.  This is a MacPorts path only because you are
using a MacPorts Python port
= 2.5.  If you were using a Python that was installed using the
traditional installation path then
this would return ${prefix} as the original did.

For instance using python24 returns /opt/local  (which is ${prefix) by
our standard and others as well).
Using /usr/bin/python (Apple build) returns
/System/Library/Frameworks/Python.framework/Versions/2.7

So the original AM_PYTHON_PATH only returns the correct result if the
Python in use is installed in the
'standard' place.  Doesn't work any Python installed in a non-standard
place.

Looking at the comments surrounding this code in python.m4 the upstream
authors acknowledge this.

  dnl Use the values of $prefix and $exec_prefix for the corresponding
  dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX.  These are made
  dnl distinct variables so they can be overridden if need be.  However,
  dnl general consensus is that you shouldn't need this ability.


 What was broken that needed fixing (by the original change)? Is there a
 particular port that needed the change? Is there another way to fix it
 without modifying automake?

The answer is yes, any port that uses AM_PYTHON_PATH to discover the
Python install
prefix will fail on MacPorts (or any other installation of Python into a
non-standard path)
without intervention and there are quite a few. 

In the past this has been handled typically by applying a similar patch
to the configure file
provided with each project being ported.  This works and the patch here
does not interfere
with this because the configure file is not being regenerated.

However, increasingly, ports need to use autoreconf or even autogen.sh
to regenerate configuration
files prior to build for some other reason (intltool perl issues for
instance).  This again effects a
large number of ports.  In this case, patching of the configure file is
impractical and the required
patch to configure.ac amounts to replacing AM_PYTHON_PATH with custom
code that is often
package specific.  This change to automake makes that unnecessary.

Have to head home now but will follow up later this evening.  In the
meantime, please don't revert
this change on your own as there are many ports that WILL be broken. 
If, we, as a group decide
that that is the preferred approach, I will make the change after the
effected ports have been re-written.

Thanks

PS What ever happened to the doctrine that if you mix code in other
installation prefixes with MacPorts
ports, all bets are off and results are not guaranteed?



Dave

___
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev


Re: [118041] trunk/dports/databases/mysql56

2014-03-20 Thread Marcus Calhoun-Lopez
I submitted the patch that was committed in r118041.
I will try to explain my tortured logic.

mysql was already silently using g++ as the C++ compiler for 32-bit builds.
Apparently, clang caused a problem at some point (See #42943 for more details).

Some possible solutions were:
1) Blacklist clang for 32-bit builds, in which case MacPorts would fallback to 
llvm-gcc42.
Since llvm-gcc42 is not working on Mavericks (#42849), this did not 
seem like an optimal choice.

2) For 32-bit builds, blacklist versions of clang in use at the time the 
problem was first reported.
Since there is no guarantee that subsequent version of clang (or mysql) 
fixed the problem,
this also seemed less than ideal.

3) Set configure.compiler gcc”

4) Let mysql continue to use whichever g++ it could find.
This is more or less the same as setting configure.compiler gcc
At least setting configure.compiler makes the ambiguity obvious.
Is that a virtue?

Solution 4 seemed to be the lesser of the evils.
I hope I did not miss an obvious solution.

-Marcus


On Mar 20, 2014, at 10:27 AM, Ryan Schmidt ryandes...@macports.org wrote:

 
 On Mar 19, 2014, at 19:28, pixi...@macports.org wrote:
 
 Revision
 118041
 Author
 pixi...@macports.org
 Date
 2014-03-19 17:28:20 -0700 (Wed, 19 Mar 2014)
 Log Message
 
 databases/mysql56:
 - Fix universal build. Closes #42938
 - Use the right compiler. Closes #42943
 
 Modified: trunk/dports/databases/mysql56/Portfile (118040 = 118041)
 
 
 +# Don't allow mysql to set the compiler to g++
 +# See 
 http://bazaar.launchpad.net/~mysql/mysql-server/5.6/revision/4223.1.4
 +# See also #42943
 +patchfiles-append   patch-CMakeLists.txt.diff
 +if { (![variant_isset universal]  ${build_arch} eq i386) || 
 ([variant_isset universal]  [lsearch ${universal_archs} i386] != -1) } {
 +# Disallow clang versions older than the clang version which caused 
 the problem
 +#compiler.blacklist {clang  425}
 +
 +# Disallow all clang versions
 +#compiler.blacklist *clang*
 +
 +# switch to /usr/bin/gcc and /usr/bin/g++
 +# closest to SET(CMAKE_CXX_COMPILER g++) removed in the patchfile
 +configure.compiler gcc
 +}
 
 “gcc” could be anything — from gcc 4.0 or 4.2 to llvm-gcc to clang, depending 
 on the Xcode version. Setting configure.compiler to “gcc” is the exact 
 opposite of using the right compiler. MacPorts shouldn’t even have that as a 
 value for configure.compiler.
 
 What is the real problem that you’re trying to solve here?
 
 
 ___
 macports-dev mailing list
 macports-dev@lists.macosforge.org
 https://lists.macosforge.org/mailman/listinfo/macports-dev

___
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev


Re: [118041] trunk/dports/databases/mysql56

2014-03-20 Thread Ryan Schmidt

On Mar 20, 2014, at 19:13, Marcus Calhoun-Lopez wrote:

 I submitted the patch that was committed in r118041.
 I will try to explain my tortured logic.
 
 mysql was already silently using g++ as the C++ compiler for 32-bit builds.
 Apparently, clang caused a problem at some point (See #42943 for more 
 details).
 
 Some possible solutions were:
 1) Blacklist clang for 32-bit builds, in which case MacPorts would fallback 
 to llvm-gcc42.
Since llvm-gcc42 is not working on Mavericks (#42849), this did not 
 seem like an optimal choice.

That must be a new problem. I have llvm-gcc42 installed on Mavericks.


 2) For 32-bit builds, blacklist versions of clang in use at the time the 
 problem was first reported.
Since there is no guarantee that subsequent version of clang (or 
 mysql) fixed the problem,
this also seemed less than ideal.

#42943 says the problem was Clang on 32 bit causes non-debug server to crash”. 
So we should reproduce that problem, then figure out if newer versions of clang 
fix it. If so, blacklist older clang. If not, blacklist all clang. And also 
poke the MySQL developers about what they’re planning on doing about this issue.


 3) Set configure.compiler gcc”

But “gcc” *is* clang as of Xcode 5. If all versions of clang cause the crash, 
then this is not helping anything. And if this version of clang does not cause 
this crash, then blacklist older clang.


 4) Let mysql continue to use whichever g++ it could find.
This is more or less the same as setting configure.compiler gcc
At least setting configure.compiler makes the ambiguity obvious.
Is that a virtue?
 
 Solution 4 seemed to be the lesser of the evils.
 I hope I did not miss an obvious solution.

___
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev


Re: Move part of macports infrastructure to GitHub

2014-03-20 Thread Eric Gallager
On Thu, Mar 20, 2014 at 7:19 PM, Ryan Schmidt ryandes...@macports.orgwrote:


 On Mar 20, 2014, at 02:46, Mojca Miklavec wrote:

  Despite the fact that I kept pushing a couple of other projects to
  switch to a different version control system (mostly from CVS to git),
  MacPorts is one of those projects where the current system (trac with
  nice linking between tickets and commits, subversion, buildbots, email
  accounts, ...) works pretty well and also looks nice. I do miss some
  functionality (like a website with a nice overview of packages with
  their build success, latest few commits etc.), but that isn't
  something that a migration can solve.

 Right, that's something improving the MacPorts web site should solve.


  Subversion actually has a bunch of benefits over git in this
  particular environment. Git is strong in merging, cherry-picking,
  having a large number of branches etc., but I don't see much need for
  that for maintaining Portfiles. The biggest problem with Portfiles is
  that a number of people without commit rights might need to wait for a
  long time before someone picks up their patch and commits it, but
  switching to a different system would still mean that someone would
  need to look at commit and test it before accepting it. The only thing
  that could be different is probably a clearly visible pull request. In
  MacPorts' trac it's not too easy to spot the difference between
  please commit this, it's fully functional vs. I've been just
  playing around and tossing ideas - feel free to look and this patch
  and improve it vs. plain requests to fix things. And if a random
  developer just happens to have time and is willing to test and commit
  something, it's not clear in which of the thousands of open tickets to
  start looking. (Trac searches and browsing through tickets based on
  specific criteria could be improved, but I'm not sure how.)

 Such a person should search for tickets with the haspatch keyword; that
 keyword should probably only be used for patches that are ready to go.


 https://trac.macports.org/query?status=!closedkeywords=~haspatchdesc=1order=id


  That said, a git/hg mirror on GitHub/ButBucket would definitely be
  nice.

 Why would that be nicer than the read-only git mirror that Mac OS Forge
 already provides here:

 http://www.macosforge.org/post/git-mirrors/


Try to avoid thinking of it as nicer than, but instead think of it as a
nice addition to. The nice thing about distributed systems like git is
that it makes it easier to mirror a single mirror to multiple places. A git
mirror on GitHub could even be the exact same mirror as the one on
MacOSForge is. That is similar to how most of the mirrors on the
GitHub-Mirrors account work: https://github.com/mirrors (I think I
mentioned that earlier in this thread...)


  MacPorts could potentially offer a selfupdate from an
  arbitrary git/hg repository clone if necessary (but one can already
  have a clone on the filesystem and use that one).

 selfupdate uses rsync only.

 sync can use rsync or svn, possibly other version control systems already,
 I don't remember.


 ___
 macports-dev mailing list
 macports-dev@lists.macosforge.org
 https://lists.macosforge.org/mailman/listinfo/macports-dev

___
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev


Re: MacPorts automake and python

2014-03-20 Thread Sean Farley

David Evans dev...@macports.org writes:

 On 3/20/14 3:01 PM, Adam Mercer wrote:
 On Thu, Mar 20, 2014 at 4:51 PM, Eric A. Borisch ebori...@macports.org 
 wrote:

 I think the issue here is that automake is getting patched to *only* support
 MacPorts-managed builds, but really automake should still be available for
 use to build non-MP software.
 Agreed, that's one of the main concerns I have with this.
 I don't see this as MacPorts specific.  Instead it correctly determines
 the default PYTHON_PREFIX
 for the Python in use.  This is a MacPorts path only because you are
 using a MacPorts Python port
= 2.5.  If you were using a Python that was installed using the
 traditional installation path then
 this would return ${prefix} as the original did.

 For instance using python24 returns /opt/local  (which is ${prefix) by
 our standard and others as well).
 Using /usr/bin/python (Apple build) returns
 /System/Library/Frameworks/Python.framework/Versions/2.7

 So the original AM_PYTHON_PATH only returns the correct result if the
 Python in use is installed in the
 'standard' place.  Doesn't work any Python installed in a non-standard
 place.

 Looking at the comments surrounding this code in python.m4 the upstream
 authors acknowledge this.

   dnl Use the values of $prefix and $exec_prefix for the corresponding
   dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX.  These are made
   dnl distinct variables so they can be overridden if need be.  However,
   dnl general consensus is that you shouldn't need this ability.


 What was broken that needed fixing (by the original change)? Is there a
 particular port that needed the change? Is there another way to fix it
 without modifying automake?

 The answer is yes, any port that uses AM_PYTHON_PATH to discover the
 Python install
 prefix will fail on MacPorts (or any other installation of Python into a
 non-standard path)
 without intervention and there are quite a few. 

 In the past this has been handled typically by applying a similar patch
 to the configure file
 provided with each project being ported.  This works and the patch here
 does not interfere
 with this because the configure file is not being regenerated.

 However, increasingly, ports need to use autoreconf or even autogen.sh
 to regenerate configuration
 files prior to build for some other reason (intltool perl issues for
 instance).  This again effects a
 large number of ports.  In this case, patching of the configure file is
 impractical and the required
 patch to configure.ac amounts to replacing AM_PYTHON_PATH with custom
 code that is often
 package specific.  This change to automake makes that unnecessary.

 Have to head home now but will follow up later this evening.  In the
 meantime, please don't revert
 this change on your own as there are many ports that WILL be broken. 
 If, we, as a group decide
 that that is the preferred approach, I will make the change after the
 effected ports have been re-written.

 Thanks

 PS What ever happened to the doctrine that if you mix code in other
 installation prefixes with MacPorts
 ports, all bets are off and results are not guaranteed?

That is not the issue here. It is *real* simple, son: ./configure
--prefix=$HOME doesn't work anymore. The change needs to be reverted
immediately and some other workaround provided.
___
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev


Re: Move part of macports infrastructure to GitHub

2014-03-20 Thread Ryan Schmidt

On Mar 20, 2014, at 19:21, Eric Gallager wrote:

 That said, a git/hg mirror on GitHub/ButBucket would definitely be nice.
 
 Why would that be nicer than the read-only git mirror that Mac OS Forge 
 already provides here:
 
 http://www.macosforge.org/post/git-mirrors/
 
 Try to avoid thinking of it as nicer than, but instead think of it as a 
 nice addition to. The nice thing about distributed systems like git is that 
 it makes it easier to mirror a single mirror to multiple places. A git mirror 
 on GitHub could even be the exact same mirror as the one on MacOSForge is. 
 That is similar to how most of the mirrors on the GitHub-Mirrors account 
 work: https://github.com/mirrors (I think I mentioned that earlier in this 
 thread…)

Why is a github mirror of the git repository desirable? Why can’t users who 
want a git version of our repository use the one Mac OS Forge provides? Is it 
just to help users discover the existence of the repository or what?

___
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev