'make test' won't run trial on Mac OS-X #177
Labels
No Label
0.2.0
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.8.0
0.9.0
1.0.0
1.1.0
1.10.0
1.10.1
1.10.2
1.10a2
1.11.0
1.12.0
1.12.1
1.13.0
1.14.0
1.15.0
1.15.1
1.2.0
1.3.0
1.4.1
1.5.0
1.6.0
1.6.1
1.7.0
1.7.1
1.7β
1.8.0
1.8.1
1.8.2
1.8.3
1.8β
1.9.0
1.9.0-s3branch
1.9.0a1
1.9.0a2
1.9.0b1
1.9.1
1.9.2
1.9.2a1
LeastAuthority.com automation
blocker
cannot reproduce
cloud-branch
code
code-dirnodes
code-encoding
code-frontend
code-frontend-cli
code-frontend-ftp-sftp
code-frontend-magic-folder
code-frontend-web
code-mutable
code-network
code-nodeadmin
code-peerselection
code-storage
contrib
critical
defect
dev-infrastructure
documentation
duplicate
enhancement
fixed
invalid
major
minor
n/a
normal
operational
packaging
somebody else's problem
supercritical
task
trivial
unknown
was already fixed
website
wontfix
worksforme
No Milestone
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Reference: tahoe-lafs/trac-2024-07-25#177
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
I built tahoe on my new Mac with the following steps:
Pretty easy! But then I did 'make test', and it didn't even get started:
It looks like the trial.py-finding windows workaround blew up, because the
'which' command on OS-X emits an error message to stdout when it can't find
something, rather than emitting nothing:
This confuses the Make rule that runs 'which':
TRIALPATH=$(shell which trial.py 2>/dev/null)
ifeq ($(TRIALPATH),)
TRIALPATH=$(shell which trial 2>/dev/null)
endif
ifeq ($(TRIALPATH),)
TRIALPATH=$(shell $(PYTHON) -c "import os, sys; print repr(os.path.join(sys.prefix, "Scripts", "trial.py"))")
endif
ifeq ($(TRIALPATH),)
TRIALPATH=$(shell $(PYTHON) -c "import os, sys; print repr(os.path.join(sys.prefix, "Scripts", "trial"))")
endif
}}}
It looks like /usr/bin/which on OS-X is of a different lineage (BSD) than the
'which' that's on my linux box (debian).
As a local workaround, I can just comment out these TRIALPATH lines. For the
longer run, I'd like to find something else. Also, I'd really prefer to run
trial on sensibly-installed systems as just 'trial', rather than knowing that
it's really a python script and running it as 'python /path/to/trial'. It
just seems cleaner that way.
FYI, I just added an OS-X buildslave.
For the record, the reason I don't invoke just "trial" at this point is that if I install twisted from source it doesn't produce a "trial" executable on Windows. (The binary GUI "installer" does, but I really prefer not to rely on such a thing.)
twisted #1286 would allow twisted to use the setuptools executable-builder feature which would make an executable "trial" on Windows when building from source.
P.S. In the meantime, I will see why my current "find trial.py" hack works on my two Mac systems and not yours and see if we can tweak the hack to keep it working well enough until a setuptoolified Twisted comes out. How does that sound?
Also we could just predicate the "find trial" hack on detecting the platform, although I really like to avoid platform-switches. It's just a personal preference, but I tend to prefer:
weird_hack_that_works_everywhere()
over
if platform in good_set:
clean_approach()
elif platform in wacky_set:
wacky_approach()
elif platform in weird_set:
weird_have_that_works_everywhere()
I'm putting this in Milestone v0.6.1 because I want the buildbot to be All Green for the release and because I'm sure I can fix this one way or another soon.
fixed by changeset:bf3f629a683fd4cb (the OS-X buildslave is disconnected, but I reproduced the bug and tested the fix on my Macbook Pro ("ootles").