remove the "build" step in the "edit, build, run" cycle #82
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#82
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?
setup.py build -i
ought to workHere's my plan:
copy AES/SHA256 into src/allmydata, get rid of PyCrypto: donedon't already have it. We know that Twisted, Nevow, and Foolscap already
have .debs out there. We'll put copies of the .debs on the tahoe
apt-repository for all platforms that don't already have them.
and simplejson.
Once this is in place, it will be possible to install and use a tahoe .deb
that does not contain anything other than tahoe code. The debian dependencies
will be fulfilled by installing those other .debs .
work. (this is already the case with foolscap).
pieces to be installed with easy_install. That's ok.
dependent libraries (except Twisted).
At this point, 'python setup.py install' should handle dependencies
automatically. Our README can be changed to instruct users to make sure that
python, setuptools, and Twisted are installed, then just type 'python
setup.py install'. The 'make install' target should be a simple alias for
this. I'd like to create a small script that adds the necessary
--single-version-externally-managed and --prefix and PYTHONPATH=prefixything
to make it possible to install tahoe code to somewhere other than /usr/lib
(misc/install-to-prefix.py comes to mind), and then have the 'make install
PREFIX=x' target be an alias for that.
In addition, the 'python setup.py build_ext -i' command will work: it will
compile the crypto pieces to .so files in place. The 'make' target should be
a simple alias for this.
when it detects that we're running it from the source directory (at the
moment it adds instdir/lib in this case).
With that, users who have all the necessary dependent libraries installed
(perhaps because they ran 'easy_install zfec', etc) can run tahoe from source
by just typing 'make; ./bin/tahoe COMMAND'.
our dependent libraries are needed ('try: import zfec; except ImportError:
needed=True'), and for each one, run easy_install.py and tell it to put
the results in ./support . The 'make build-deps' target should be an
alias for this utility.
PYTHONPATH and support/ to the end of PYTHONPATH.
With this, users who do not have the necessary dependent libraries can still
run from source, by typing 'make; make build-deps; ./bin/tahoe COMMAND'.
website, and change setup.py to add that as a possible download path: this
would allow a tahoe tree to be built on a system that does not already
have the dependent libraries installed even if the main
zfec/simplejson/foolscap site were down. If we put a copy inside the tahoe
source tree itself, this enables these sorts of builds without network
access.
This last step would enable 'easy_install tahoe', again assuming that Twisted
is already installed.
Excellent plan, Brian!
I'm making this ticket the successor to #15. See also the Packaging page.
This is the biggest component of the "packaging/build system" task which I hope will go into the v0.6 release.
For reference, http://wiki.debian.org/DebianPythonFAQ suggests that
--single-version-externally-managed is the Right Way to build debian packages
out of setuptool-using python projects, and that the process is actually
fairly easy.
progress thus far:
enough to do 'import zfec', which is all we need for tahoe. They do
not support the zfec/zunfec command-line tools (they do not even
include them). Zandr is setting up an etch buildslave now (#24); once
that's in place we can make a .deb for etch too.
tahoe-0.5.0 . (foolscap-0.1.5 is the current release, but there are bugs
in its debian packaging, and tahoe-0.5.0 doesn't need any of the new
features, and foolscap-0.1.4 is wire-compatible with foolscap-0.1.5)
The next step will be to change the tahoe .deb generation to declare
dependencies upon python-zfec, python-simplejson, and python-foolscap, and
stop including zfec in the tahoe .deb .
I've modified .deb generation. 'apt-get install allmydata-tahoe' now works, pulling in foolscap/zfec/simplejson as necessary.
The next step requires that 'easy_install zfec' works, which will require zfec-1.0.2 to be published (to fix the MANIFEST problems that caused ez_setup.py and src/fec.h to be left out of the source tarball, as well as to remove the setup.py-declared dependency on "pyutil").
Assigning to zooko for zfec-1.0.2, please assign back to me when the release is complete.
Okay, zfec-1.0.3 is easy_installable.
we just implemented most of the rest of this today.
The pieces that remain:
building
others, but it's slow and confusing to look at)
is old (0.6.0) but works, but has no .egg-info, so our build-deps target didn't see it,
and tried to build the new one (0.9.18), but that requires twisted-2.4.0 or newer, and
the platform has twisted-2.2.0 . I hacked it to remove nevow from the dependencies if it
sees nevow-0.6.0 available to import, which at least makes dapper work.
Now that the tahoe-specific things are done, I'm going to close out this ticket. I'll add a new one for registering tahoe with the cheeseshop.