kravietz / pam_tacplus

TACACS+ protocol client library and PAM module in C. This PAM module support authentication, authorization (account management) and accounting (session management)performed using TACACS+ protocol designed by Cisco.
GNU Lesser General Public License v3.0
132 stars 100 forks source link

No configure in official tarball #188

Closed ffontaine closed 1 year ago

ffontaine commented 1 year ago

Official tarball (e.g. https://github.com/kravietz/pam_tacplus/releases/download/v1.6.2.1/v1.6.2.1.tar.gz) doesn't ship a configure script. Would it be possible to add one to avoid running autoreconf (which fails if gnulib is not installed).

It would ease the bump of pam_tacplus in buildroot

kravietz commented 1 year ago

@ffontaine configure depends on gnulib run as a first step, so that would be highly dependent on the build system. Not sure how portable that would be?

ffontaine commented 1 year ago

I'm not an expert with gnulib integration but most of the GNU opensource projects that use gnulib are able to provide a configure script in their release tarballs:

I assume that they're using their own local copy of gnulib to have reproducible builds.

kravietz commented 1 year ago

@ffontaine Thanks for the examples, I'll see how they make it. I think I've tried including only requires gnulib files already but that led to a terrible mess and I've ended up adding them at build time, but maybe it's done some other way.

kravietz commented 1 year ago

@ffontaine Check the https://github.com/kravietz/pam_tacplus/tree/with_configure branch but I still can't get it to work as some files seem to be broken even though they're created by configure 🤔

kravietz commented 1 year ago

@ffontaine OK, I got it working - simply running make dist produces an archive containing working ./configure and gnulib files. Check the newly added files in https://github.com/kravietz/pam_tacplus/releases/tag/v1.7.0 and I will make sure they're being added to the future releases as well.

ffontaine commented 1 year ago

Thanks a lot, this is working fine until the installation of tacc.1 where I got the following build failure:

 /usr/bin/install -c -m 644 tacc.1 tacc.1 '/home/fabrice/buildroot/output/per-package/libpam-tacplus/host/nios2-buildroot-linux-gnu/sysroot/usr/share/man/man1'
/usr/bin/install: will not overwrite just-created '/home/fabrice/buildroot/output/per-package/libpam-tacplus/host/nios2-buildroot-linux-gnu/sysroot/usr/share/man/man1/tacc.1' with 'tacc.1'

Dropping dist_man_MANS or man1_MANS from Makefile.am will fix the build failure. I can send a PR or I can let you handle it.

kravietz commented 1 year ago

@ffontaine No problem, fixed that in HEAD. I will be making a new release in a few days so all these minor changes will go into the release package too.

ffontaine commented 1 year ago

Great, I'll wait this release to make the bump on buildroot side.