fangfufu / httpdirfs

A filesystem which allows you to mount HTTP directory listings or a single file, with a permanent cache. Now with Airsonic / Subsonic support!
Other
729 stars 58 forks source link

RHEL 8/ RPM Build instructions #153

Open mgordon1964 opened 1 month ago

mgordon1964 commented 1 month ago

Hello, I was wondering if anyone had built this on a RHEL or variant such as ALMA or Rocky based system?

So far I have gotten the pre-reqs sorted:

For: gumbo-parser-devel.x86_64 gumbo-parser.x86_64 you need a 3rd party repo on 8, but it appears to be in EPEL for 9.

dnf localinstall https://pkgs.dyn.su/el8/base/x86_64/raven-release-1.0-2.el8.noarch.rpm

dnf install gumbo-parser-devel gumbo-parser libcurl-devel libuuid-devel libuuid uuid-devel uuid fuse-devel expat-devel expat

Then I am able to do the ./configure

gmake fails: $ gmake /bin/sh ./config.status --recheck running CONFIG_SHELL=/bin/sh /bin/sh ./configure --no-create --no-recursion checking build system type... x86_64-pc-linux-gnu checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking for library containing backtrace... none required ./configure: line 2841: syntax error near unexpected token '-Wunused-command-line-argument,NUCLA=-Wno-unused-command-line-argument,-Werror' ./configure: line 2841: 'AX_CHECK_COMPILE_FLAG(-Wunused-command-line-argument,NUCLA=-Wno-unused-command-line-argument,-Werror)' gmake: *** [Makefile:360: config.status] Error 2

Any ideas?

fangfufu commented 1 month ago

Which operating system did you try this on?

In the immediate term, please could you try using the Makefile from https://github.com/fangfufu/httpdirfs/blob/ed93a133dff2ef55717e7b1a02a46f697be20c7c/Makefile ? The structure of this project hasn't changed much. That Makefile should still work.

@jikamens could you help with this please?

mgordon1964 commented 1 month ago

AlmaLinux release 8.9

jikamens commented 1 month ago

Likely cause is you ran autoreconf or aclocal without having the autoconf-archive package installed. Install autoconf-archive, then rerun autoreconf, then configure should work fine.

mgordon1964 commented 1 month ago

Thank you.

I installed autoconf-archive. Then re-ran gmake:

gmake cd . && /bin/sh /software/httpdirfs/missing automake-1.16 --foreign aclocal.m4:17: warning: this file was generated for autoconf 2.71. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'. configure.ac:10: error: version mismatch. This is Automake 1.16.1, configure.ac:10: but the definition used by this AM_INIT_AUTOMAKE configure.ac:10: comes from Automake 1.16.5. You should recreate configure.ac:10: aclocal.m4 with aclocal and run automake again. WARNING: 'automake-1.16' is probably too old. You should only need it if you modified 'Makefile.am' or 'configure.ac' or m4 files included by 'configure.ac'. The 'automake' program is part of the GNU Automake package: https://www.gnu.org/software/automake It also requires GNU Autoconf, GNU m4 and Perl in order to run: https://www.gnu.org/software/autoconf https://www.gnu.org/software/m4/ https://www.perl.org/ gmake: *** [Makefile:341: Makefile.in] Error 1

Then ran, aclocal, to resolve that but I am now getting:

gmake cd . && /bin/sh /software/httpdirfs/missing automake-1.16 --foreign CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh '/software/httpdirfs/missing' autoconf /bin/sh ./config.status --recheck running CONFIG_SHELL=/bin/sh /bin/sh ./configure --no-create --no-recursion checking build system type... x86_64-pc-linux-gnu checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking for library containing backtrace... none required checking whether C compiler accepts -Wunused-command-line-argument... no ./configure: line 2873: -Werror: command not found checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports the include directive... yes (GNU style) checking whether make supports nested variables... yes checking dependency style of gcc... gcc3 checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.9.0... yes checking for pkgconf... yes checking for fuse... yes checking that generated files are newer than configure... done configure: creating ./config.status /bin/sh ./config.status config.status: creating Makefile config.status: creating Doxyfile config.status: executing depfiles commands gcc -g -O2 -Wall -Wextra -Wshadow -rdynamic -D_GNU_SOURCE -DVERSION=\"1.2.5\" -I/usr/include/uuid -I/usr/include/fuse -D_FILE_OFFSET_BITS=64 -lfuse -pthread -o httpdirfs src/main.o src/network.o src/fuse_local.o src/link.o src/cache.o src/util.o src/sonic.o src/log.o src/config.o src/memcache.o -lgumbo -lcurl -luuid -lexpat -lssl -lcrypto -lfuse -pthread src/network.o: In function `curl_multi_perform_once': /software/httpdirfs/src/network.c:199: collect2: error: ld returned 1 exit status gmake: *** [Makefile:434: httpdirfs] Error 1

Looks like libcurl is too old on Alma 8... I am having more success with Alma 9.

Thank you

fangfufu commented 1 month ago

Well if the library on your operating system is too old. Then there is nothing much I could do on my end. Perhaps use an operating system with newer version of the libraries?