Module: kamailio
Branch: master
Commit: 58bd1b995a1bf36eb1efebbd2e091e0dc9ca716c
URL: https://github.com/kamailio/kamailio/commit/58bd1b995a1bf36eb1efebbd2e091e0…
Author: Xenofon Karamanos <xk(a)gilawa.com>
Committer: Xenofon Karamanos <xk(a)gilawa.com>
Date: 2024-12-19T17:49:13Z
cmake: Fix modules suffix to .so for all OS
---
Modified: src/modules/CMakeLists.txt
---
Diff: https://github.com/kamailio/kamailio/commit/58bd1b995a1bf36eb1efebbd2e091e0…
Patch: https://github.com/kamailio/kamailio/commit/58bd1b995a1bf36eb1efebbd2e091e0…
---
diff --git a/src/modules/CMakeLists.txt b/src/modules/CMakeLists.txt
index fe13a88f537..a1b474a4502 100644
--- a/src/modules/CMakeLists.txt
+++ b/src/modules/CMakeLists.txt
@@ -65,6 +65,8 @@ function(add_module_group group_modules)
add_subdirectory(${module_path})
# Remove the 'lib' prefix from the module name
set_target_properties(${module_name} PROPERTIES PREFIX "")
+ # Set suffix to .so always
+ set_target_properties(${module_name} PROPERTIES SUFFIX ".so")
# Add this policy to new so we can use target_link_libraries(... PRIVATE
# ...) to link against targets defined in children directories
Do we expect a local kamailio to use /var/run/kamailio as it's `run` directory or use `build_folder/run`? if then, then kamailio must be run as `sudo` since it affects root files and folders.
If you do not provide it the default prefix is `/usr/local`, so even if its not installed it will use that when running it, so it must therefore have sudo access and the directory already created (I think).
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/commit/1860420fea7ed57d25bc7d735b46c11…
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/commit/1860420fea7ed57d25bc7d735b46c11c739aa0c4/150535640(a)github.com>
On darwin (macos), as I tested the usual commands I do when developing/testing, with the version before my commit I got the error:
```
0(44284) ERROR: <core> [main.c:3141]: main(): failed to create runtime dir /usr/local/var/run/kamailio, check directory permissions
```
It was simply after `mkdir buildmac; cd buildmac; cmake ..; make` and then running locally, not doing the make install.
Also, as I tested on the Ubuntu 24.04, I got similar situation:
```
0(562038) DEBUG: jsonrpcs [jsonrpcs_fifo.c:570]: jsonrpc_fifo_mod_init(): fifo path is [/usr/local/var/run/kamailio/kamailio_rpc.fifo]
0(562038) DEBUG: jsonrpcs [jsonrpcs_fifo.c:157]: jsonrpc_init_fifo_file(): testing if fifo file exists ...
0(562038) ERROR: jsonrpcs [jsonrpcs_fifo.c:72]: jsonrpc_init_fifo_server(): Can't create FIFO: Permission denied (mode=432)
```
MacOS is not a GNU System, but Ubuntu should be, so I don't know what actually happens -- I just compared with the old-makefiles to figure out a solution.
Furthermore, I think that the recommended standard path for runtime folders on Linux'es is now `/run/` no longer `/var/run/`, I remember that we had to do such change (also checking the ubunut, /var/run is a synlink to /run -- @linuxmaniac: am I right here?
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/commit/1860420fea7ed57d25bc7d735b46c11…
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/commit/1860420fea7ed57d25bc7d735b46c11c739aa0c4/150535482(a)github.com>
What you mean by included? Right now we have, two way to modify directly modules properties.
1. `cmake/defs.cmake` : there is a target called `common_modules` that is an INTERFACE. We can use this for whatever compiler options, definitions and more. and target propagates all these to each module. This is best to use when there is no usage of the `module_name` since we don't know it yet.
2. `src/modules/CMakeLists.txt`: Add options to each module as well but with extra ability when we need to specify also the `module_name` in the option.
Do you have something else in mind with the template inclusion?
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/commit/4bf2c9634ab19ac76c12c33ddc3d422…
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/commit/4bf2c9634ab19ac76c12c33ddc3d4220631d38ef/150535472(a)github.com>
Regarding this, we had some discussion with @linuxmaniac about the paths in general. CMake offers https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html that has the standard definitions for the usual paths.
Therefore I am not really sure if we need to introduce new variables like `prefix` and `run_dir`. User can supply the `LOCALSTATEDIR` or `RUNSTATEDIR` via `-Dvar='path'` and then figure the best way to provide that to kamailio.
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/commit/1860420fea7ed57d25bc7d735b46c11…
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/commit/1860420fea7ed57d25bc7d735b46c11c739aa0c4/150534991(a)github.com>
@xkaraman: you can replace the files for modules as you consider better.
I said in another comment that making a common template for modules to be included would be likely good, but I was not sure if it is going to slow down, or if that is the best option, and not recalling any further decisions on this, I pushed with a script that I have for such repetitive updates for CMakeLists.txt in module folders.
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/commit/4bf2c9634ab19ac76c12c33ddc3d422…
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/commit/4bf2c9634ab19ac76c12c33ddc3d4220631d38ef/150534486(a)github.com>
@miconda Mind if i revert this and the one with `-ffile-prefix` commits, so that we adjust this in `modules/CMakelists.txt` or `common_modules INTERFACE` since it's common for all modules?
It will be cleaner I believe and have a more central way to change it for all of them?
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/commit/4bf2c9634ab19ac76c12c33ddc3d422…
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/commit/4bf2c9634ab19ac76c12c33ddc3d4220631d38ef/150533398(a)github.com>
<!-- Kamailio Pull Request Template -->
<!--
IMPORTANT:
- for detailed contributing guidelines, read:
https://github.com/kamailio/kamailio/blob/master/.github/CONTRIBUTING.md
- pull requests must be done to master branch, unless they are backports
of fixes from master branch to a stable branch
- backports to stable branches must be done with 'git cherry-pick -x ...'
- code is contributed under BSD for core and main components (tm, sl, auth, tls)
- code is contributed GPLv2 or a compatible license for the other components
- GPL code is contributed with OpenSSL licensing exception
-->
#### Pre-Submission Checklist
<!-- Go over all points below, and after creating the PR, tick all the checkboxes that apply -->
<!-- All points should be verified, otherwise, read the CONTRIBUTING guidelines from above-->
<!-- If you're unsure about any of these, don't hesitate to ask on sr-dev mailing list -->
- [x] Commit message has the format required by CONTRIBUTING guide
- [x] Commits are split per component (core, individual modules, libs, utils, ...)
- [x] Each component has a single commit (if not, squash them into one commit)
- [x] No commits to README files for modules (changes must be done to docbook files
in `doc/` subfolder, the README file is autogenerated)
#### Type Of Change
- [ ] Small bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds new functionality)
- [ ] Breaking change (fix or feature that would change existing functionality)
#### Checklist:
<!-- Go over all points below, and after creating the PR, tick the checkboxes that apply -->
- [x] PR should be backported to stable branches
- [x] Tested changes locally
- [ ] Related to issue #XXXX (replace XXXX with an open issue number)
#### Description
<!-- Describe your changes in detail -->
This PR adds media forking support to the rtpengine module by exposing three functions:
rtpengine_copy_offer_f(): Sends a subscribe request to RTPEngine.
rtpengine_copy_answer_f(): Sends a subscribe answer to RTPEngine.
rtpengine_copy_delete_f(): Sends an unsubscribe request to RTPEngine.
These functions enable interaction with RTPEngine for managing media subscriptions, allowing for scenarios like media duplication or forking. This feature is based on the OpenSIPS RTPEngine module and provides similar functionality for handling media operations.
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/4071
-- Commit Summary --
* export subscribe operation functions
-- File Changes --
M src/modules/rtpengine/api.h (20)
M src/modules/rtpengine/rtpengine.c (217)
M src/modules/rtpengine/rtpengine.h (17)
A src/modules/rtpengine/rtpengine_common.h (28)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/4071.patchhttps://github.com/kamailio/kamailio/pull/4071.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/4071
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/4071(a)github.com>
Yes, i tried that everything that is generated from `CMake` to be inside the `CMAKE_BINARY_DIR` aka build folder and it's respective subfolders and not pollute the src tree in any way.
Picking that they are the same is actually a good sign, that it produced identical output! But I also believe they shouldn't exist in source tree, for whatever reason. If you want or need them, use them from the build directory.
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/commit/da629accb2c2095e3255f4aa3389a0a…
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/commit/da629accb2c2095e3255f4aa3389a0af02272980/150488267(a)github.com>
Pushed another commit (05bb67d91c8c7ffc0b68513d46e1de5f68124800) to remove these files from glob result over core source folder -- the ones generated by cmake are in bin folder not in src, but I guess they were detected as being the same and thus the warnings.
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/commit/da629accb2c2095e3255f4aa3389a0a…
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/commit/da629accb2c2095e3255f4aa3389a0af02272980/150487722(a)github.com>
Yeah probably they exist in your source tree under `src/core/` as well by invociking the old Makefiles? So, they are picked up by the `GLOB` as well.
These generated files should not be in the source tree but in the build tree instead. Some also argue they shouldn't even be tracked, since they can offer different things with different options and therefore should be generated everytime when options change.
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/commit/da629accb2c2095e3255f4aa3389a0a…
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/commit/da629accb2c2095e3255f4aa3389a0af02272980/150487124(a)github.com>
I reverted the commit since it was reported to break on some OSes.
On macos with cmake version 3.29.5 I get this warnings. I have to investigate further, it might be my local dev setup.
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/commit/da629accb2c2095e3255f4aa3389a0a…
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/commit/da629accb2c2095e3255f4aa3389a0af02272980/150487013(a)github.com>