Hi,
Thanks for having a look at this.
Am 05.09.2020 um 21:30 schrieb Adolf Belka ahb.ipfire@gmail.com:
Hallo Jonatan,
Having looked at /usr/lib further I have noted that programmes such as conntrack-tools and collectd just use .so files and the solution with them is to have their own directory under /usr/lib.
So I could do the same with bacula and change the libdir in configure to be /usr/lib/bacula. I think that should solve the problem. Just have to remember to do the change when the next bacula update occurs.
Regards,
Adolf
On 05/09/2020 21:14, Adolf Belka wrote: Hallo Jonatan,
I see that you have a rule to remove all .so shared libraries from /usr/lib
With the bacula addon, this will give a problem as bacula have a different approach to the naming of their shared libraries
/usr/lib/libbac-9.6.5.so /usr/lib/libbaccfg-9.6.5.so /usr/lib/libbaccfg.so -> libbaccfg-9.6.5.so /usr/lib/libbacfind-9.6.5.so /usr/lib/libbacfind.so -> libbacfind-9.6.5.so /usr/lib/libbac.so -> libbac-9.6.5.so
Thanks for pointing this out. So the patch shows that our wiki is inaccurate. You are right that the patch in the current version, is not suitable for production.
As you can see the .so is at the end of all the files so that rule would remove all shared libraries causing bacula to fail to load.
If this rule is implemented in make.sh then the only option I can think of for bacula would be to change the library location from /usr/lib to /lib unless someone else has any suggestions for how I could deal with it.
I suggest dropping the patch in the current version 😉. Sometimes a good workaround is worth a lot, but here I should improve the script to detect these situations and handle them gracefully.
So no need to do anything 🙂. The only one which need to do things is myself 😒. I will raise this topic in the telephone conference tomorrow.
Greetings Jonatan
Regards,
Adolf
On 05/09/2020 10:40, Jonatan Schlag wrote: There are some rules which files should be definitely not included in a rootfile. Applying these rules by hand is error prone and annoying. So I wrote these simple command, because computer can apply these rules faster and better than humans :-;
It removes all lines starting with '-' and comment out all lines which point to files which should not be included in the distribution. This list needs to be extended, but I think this is a good starting point to make the creating of rootfiles easier.
Signed-off-by: Jonatan Schlag jonatan.schlag@ipfire.org
make.sh | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-)
diff --git a/make.sh b/make.sh index 4a9dd3cb6..909d4a4de 100755 --- a/make.sh +++ b/make.sh @@ -1895,6 +1895,41 @@ downloadsrc) fi cd - >/dev/null 2>&1 ;; +format-rootfile)
- if [ ! -f $2 ]; then
echo -n "'$2' is not a regular file"
beautify message FAIL
exit 1
- fi
- ROOTFILE_TO_FORMAT="$2"
- # Remove all .so files in /usr/lib
- sed -i '/^+usr/lib/.*.so$/s/+/#/g' "$ROOTFILE_TO_FORMAT"
- # Remove all .a files in /usr/lib
- sed -i '/^+usr/lib/.*.a$/s/+/#/g' "$ROOTFILE_TO_FORMAT"
- # Remove all .la files in /usr/lib
- sed -i '/^+usr/lib/.*.la$/s/+/#/g' "$ROOTFILE_TO_FORMAT"
- # Remove all .hpp files in /usr/include
- sed -i '/^+usr/include/.*.hpp$/s/+/#/g' "$ROOTFILE_TO_FORMAT"
- # Remove all .h files in /usr/include
- sed -i '/^+usr/include/.*.h$/s/+/#/g' "$ROOTFILE_TO_FORMAT"
- # Remove all .ipp files in /usr/include
- sed -i '/^+usr/include/.*.ipp$/s/+/#/g' "$ROOTFILE_TO_FORMAT"
- # Remove all .m4 files in /usr/share/aclocal
- sed -i '/^+usr/share/aclocal/.*.h$/s/+/#/g' "$ROOTFILE_TO_FORMAT"
- # Remove all lines starting with -
- sed -i '/^-.*$/d' "$ROOTFILE_TO_FORMAT"
+;; toolchain) # Clear screen ${INTERACTIVE} && clear @@ -1990,7 +2025,7 @@ find-dependencies) exec "${BASEDIR}/tools/find-dependencies" "${BASEDIR}/build" "$@" ;; *)
- echo "Usage: $0 {build|changelog|clean|gettoolchain|downloadsrc|shell|sync|toolchain|update-contributors|find-dependencies}"
- echo "Usage: $0 {build|changelog|clean|format-rootfile|gettoolchain|downloadsrc|shell|sync|toolchain|update-contributors|find-dependencies}" cat doc/make.sh-usage ;; esac