-
Notifications
You must be signed in to change notification settings - Fork 731
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
move j1939 applications to a separate repository #587
Comments
That does not address my general concerns on this topic. |
Then let's move it out of here. |
Thanks! I'm not sure which j1939 applications make sense to remain in can-utils. |
Probably move:
|
Yes, those are the really big chunks that are already clustered in directories. |
What do you mean by link one repo to the other? If the libs in can-utils provide code that's uses by the j1939-utils, IMHO the can-utils must install these libs. The next issue to think about is the licensing of those those libs. See #578 (comment) |
I was thinking of libj1939.h and libj1939.c |
Yes, but what do you mean by
? |
I have seen, that you can have a git repository where you have e.g. a directory which points to another git repo with a specific commit. A bit like a symbolic link that needs to be pulled and updated before you can build your code. It was: |
Submodules are good but I don't think, it makes the life of a package maintainer in Debian, Buildroot, etc. easier. |
What about using shared libraries? |
ok |
Does that make things more complicated with installation, versioning, etc? E.g. if you build |
Choose your poison --- Split the code base or not. |
"Shared" library, as long as it doesn’t make "dynamic" calls, will be mostly shipped in both |
Sorry for my missing basics ... but how to I get a single |
Just an example of possible packages:
|
The j1939lib was very stable and unchanged for a long time. Therefore I would not have bad feelings to split the code base in this specific case. |
So it could be possible to run 'make' in a way that it creates dynamically linked binaries OR statically linked binaries? |
It would be |
But this would require |
We can keep the |
That's great! |
When bumping this package in buildroot it came up that a full static build of can-utils no longer succeeds because when building with cmake libisobusfs is now unconditionally built as a shared library (https://github.com/linux-can/can-utils/blob/master/CMakeLists.txt#L132) if I understood the problem correctly? There's two logs of failed builds because of that here: https://gitlab.com/jolivain/buildroot/-/jobs/9348149565 and https://gitlab.com/jolivain/buildroot/-/jobs/9348149479 I thought this might be a good place to ask if building can-utils without shared library support is going to be a supported use-case. |
@yegorich yes, looks all good now. Thanks! |
All,
after my failure to build the latest can-utils code with the plain Makefile here 71b2aec#commitcomment-153191516 , I thought about the dependency to libgps-dev over night.
IMO the problem is not in the Makefile but in the libgps dependency.
The can-utils are self-contained and aim to provide a bunch of tools to interact with the CAN subsystem in the Linux kernel. It can be easily compiled on every system that has a C-compiler and 'make' - even on offline systems with outdated kernel includes.
It has tools to send and receive content to the
CAN_RAW/CAN_ISOTP/CAN_J1939
sockets, where things can be stored, replayed and analyzed in detail. We also have J1939 toolsfor a while now which is fine.
Recently @olerem contributed J1939 applications that do not fit the idea of "simple tools to interact with the CAN subsystem in the Linux kernel" anymore. There is a good reason why we don't have the socketcand inside the can-utils or a full blown UDS diagnosis application that randomly uses
CAN_ISOTP
. So why do we have aj1939-vehicle-position-srv
application in can-utils??IMHO the J1939 applications (where I also assume that only a minority of CAN users is interested in anyway) got out of control - and I would suggest to create a separate repository (e.g. can-j1939.git or can-j1939-utils.git or j1939-utils.git) to host the recently contributed J1939 applications.
The text was updated successfully, but these errors were encountered: