-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] Fixed installation process with the GNU Build System #69
base: master
Are you sure you want to change the base?
Conversation
I'm not convinced that we want to make the process of installing more complicated for our users. What benefit does adhering to the GNU coding standards give? Isn't it better overall to just have people run Also, I personally am not a fan of autotools, it's really really complicated and I think it nay be too much for this project. I may just not understand the point of it though. |
I am not trying to be harsh here, I'd like to hear your opinion on the benefits to these changes that justify the additional complexity. And I guess the user-facing install process in README.md isn't that much more complicated, I was looking at INSTALL.md instead. |
The point with It also create a The current installation process is tricky and very bad coded for example, it does not take the correct path for programs (default path are absolute that is wrong). Moreover a custom Makefile implementation is hard to maintain. With |
Using a custum build system is not portable and it does not have all features that required the [GNU Coding Standards][0]. In order to come as close as possible to the [GNU Coding Standards][0]. Using [autotools][1] is a good practice. There are some changes: * the python library of this package is private so it does not install under the standard python `site-package` directory but on `pkglibdir` (default: `/usr/local/lib/cyg-apt`) * to build from source it requires the `automake` package * the build process command line: Before: $ make After: $ autoreconf -i && ./configure && make * the tests suite command line: Before: $ make test After: $ make check * the installation tests suite command line: Before: $ make installtest After: $ make installcheck [0]: http://www.gnu.org/prep/standards/standards.html#Makefile-Conventions [1]: http://www.gnu.org/software/automake/manual/automake.html#Autotools-Introduction
03b13e6
to
b7ac6c9
Compare
Well, alright. Let me know when you think this PR is ready and I'll test it on a couple of my systems. And, please don't get hit by a bus :( |
I freeze the first commit for this PR at b7ac6c9 before cleaning commit history and merge it is almost ready. For one week I work only on it (cf. travis appveyor). Indeed before merge it we need "health-insurance coverage". Besides, there is a good tutorial that explain how |
If a file is intended to be rebuilt by users, then there is no point in distributing it.
To allow Cygwin installation on a new root directory. The path of the mount program must be relative to the configuration ROOT directory. When the mount program does not exists the path mapper prepend the ROOT directory to the mapped path.
7830568
to
432518e
Compare
Create a batch script for Windows Python (e.g. cyg-apt.bat)
432518e
to
4e1d6d7
Compare
ec64d40
to
5a8588b
Compare
A python module is an architecture-independent file so it cannot be installed on `$(pkglibdir)` directory. An alternative should be on `$(pkgdatadir)/python` directory.
I am trying to resolve the executable script problem:
I don't know if the following solution is good. There are three cases:
Edit: Look like executable extension |
When referring to sources files or targets in Automake variables, you do not have to worry about source vs. build, because `make` will check both directories. You may need $(srcdir) when specifying flags for tools, or writing custom commands. E.g., to tell the compiler to include headers from `dir/`, you should write `-I$(srcdir)/dir`, not `-Idir`. (`-Idir` would fetch headers from the build tree.)
This change will be merge for the version 2.0 for give us time to prepare users and finalize it. |
configure
the check for only Python version2.*
, the version 3 is not supported..gitignore
(build, dist)Using a custum build system is not portable and it does not have all features
that required the GNU Coding Standards.
In order to come as close as possible to the GNU Coding Standards. Using
autotools is a good practice.
There are some changes:
the python library of this package is private so it does not install under
the standard python
site-package
directory but on$(pkgdatadir)/python
(default:
/usr/local/share/cyg-apt/python
)to build from source it requires the
automake
packagethe build process command line:
Before:
After:
the tests suite command line:
Before:
After:
the installation tests suite command line:
Before:
After: