Comments (4)
The original plan was to use distutils, distribute, setuptools, pip, easy_install, waf, scons... whatever it's called, but Python packaging looked like a mess to me, so I decided that it was way easier to use autotools instead. One thing that I couldn't figure out was how to install the package to some user-writable location. It seemed like it forced installation to /usr/lib/.... I'm not sure I'm convinced by the greatness of pip/pypi either when at least all Linux distributions already have package managers.
With that said, I'll happly accept patches however to make it work in a more python-friendly way. I would however prefer to have the automake system still around side-by-side with distutils, at least until the next released version
from fusesoc.
I tried the patch now and installing works fine. There are some things that I can't figure out how to do however.
- I can't see any way to uninstall
- I'm having problems installing to a custom directory. (Not sure I need this though. Can as well run from the source directory)
- Can't figure out how to handle dependencies. Right now there's a hard dep on git and some other basic tools. Also, svn is an optional dependency. (In worst case these could be handled at runtime with exceptions, but having proper install-time dependencies makes it easier for package maintainers)
from fusesoc.
Agreed, Python packaging is a total mess. Sadly, it's probably never going to get sorted out. Question is whether to try and fit in with the mess or not - I think it will be easier for users ultimately if fusesoc
behaves like other Python packages. Keeping automake in parallel with distutils sounds like a very sensible compromise.
I can't see any way to uninstall
This is a general problem with Python packaging. In theory pip uninstall fusesoc
should work though I haven't tested it.
I'm having problems installing to a custom directory. (Not sure I need this though. Can as well run from the source directory)
pip install --install-option="--prefix=/some/user/location" .
Can't figure out how to handle dependencies.
Apparently the standard mechanism is to check in setup.py
and raise an exception with a helpful error message. This doesn't help package maintainers though and is a slightly cruddy way of doing things.
from fusesoc.
Fair enough. I see the benefits of being on pypi and keeping up with what the rest of the Python world is doing. I simplified the autotools files a bit to make it easier to co-exist with distutils. If you rebase your patches, just add setup.{cfg,py} and change version to 1.4-dev (or whatever distutils uses to indicate that this is a development version that will end up as 1.4 in time) I'm happy to add this
from fusesoc.
Related Issues (20)
- `iverilog` `timescale` option interacts badly with `resetall`
- Can't install fusesoc on Ubuntu 16.04 HOT 2
- Adding block design files for vivado flow HOT 1
- Targets in dependencies HOT 1
- Not possible to run multiple builds in parallel
- Update cached remote core if patch file was changed
- Does fusesoc support VC SpyGlass? HOT 3
- Issues with Merge Keys HOT 1
- Environment variable behaviour changed between fusesoc 2.1 and 2.2 HOT 7
- unable to run fuseSOC in windows installation HOT 3
- inherited scripts are overwritten HOT 1
- unknow location for get_edatools from edalize HOT 1
- No messages from tool are printed when the tool exits successfully
- Set path to file at runtime form the command line or read it from a command
- 'gapi' has an undocumented 'cores' section
- Add support for vvp extended arguments HOT 1
- why there is 'Could not find generator'? HOT 1
- Regression: v2.2.1 Doesn't copy files to build directory on Windows HOT 2
- fusesoc export xsa file HOT 3
- Tool documentation went missing HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fusesoc.