From 6ba4bce7f43a793537360f87f53de5683bd01746 Mon Sep 17 00:00:00 2001 From: Stefan Ritt Date: Wed, 26 Aug 2020 20:38:33 +0200 Subject: [PATCH] New update for RPM build script from L.JR --- Makefile | 32 ++++++++++++-------------------- buildrpm | 53 +++++++++++++++++++++++++++++++++++++++++++++++------ elog.spec | 11 ++++------- 3 files changed, 63 insertions(+), 33 deletions(-) diff --git a/Makefile b/Makefile index d8eecba7..49c79d35 100644 --- a/Makefile +++ b/Makefile @@ -25,22 +25,21 @@ SRVDIR = $(ROOT)/usr/lib/systemd/system # flag for SSL support USE_SSL = 1 -# flag for Kerberos support, please turn on if you need Kerberos -USE_KRB5 = 0 +# flag for Kerberos support, please turn off if you don't need Kerberos +USE_KRB5 = 1 -# flag for LDAP support, please turn on if you need LDAP -USE_LDAP = 0 +# flag for LDAP support, please turn off if you don't need LDAP +USE_LDAP = 1 -# flag for PAM support, please turn on if you need PAM -USE_PAM = 0 +# flag for PAM support, please turn of if you don't need PAM +USE_PAM = 1 ############################################################# # Default compilation flags unless stated otherwise. -CFLAGS += -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -Imxml +CFLAGS += -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -Wno-unused-results -Imxml CC = gcc -IFLAGS = -kr -nut -i3 -l110 EXECS = elog elogd elconv OBJS = mxml.o crypt.o regex.o GIT_REVISION = src/git-revision.h @@ -92,29 +91,29 @@ endif ifdef USE_SSL ifneq ($(USE_SSL),0) -CFLAGS += -DHAVE_SSL +override CFLAGS += -DHAVE_SSL LIBS += -lssl endif endif ifdef USE_KRB5 ifneq ($(USE_KRB5),0) -CFLAGS += -DHAVE_KRB5 +override CFLAGS += -DHAVE_KRB5 LIBS += -lkrb5 endif endif ifdef USE_LDAP ifneq ($(USE_LDAP),0) -CFLAGS += -DHAVE_LDAP +override CFLAGS += -DHAVE_LDAP LIBS += -lldap endif endif ifdef USE_PAM ifneq ($(USE_PAM),0) -CFLAGS += -DHAVE_PAM -LIBS += -lpam +override CFLAGS += -DHAVE_PAM +LIBS += -lpam -llber endif endif @@ -160,13 +159,6 @@ debug: src/elogd.c auth.o $(OBJS) %: src/%.c $(CC) $(CFLAGS) -o $@ $< $(LIBS) -indent: - for src in src/*.c; do \ - d2u $$src; \ - indent $(IFLAGS) $$src; \ - u2d $$src; \ - done - ifeq ($(OSTYPE),CYGWIN_NT-5.1) loc: locext.exe for lang in resources/eloglang*; do \ diff --git a/buildrpm b/buildrpm index 9f624ce8..b0d9837a 100755 --- a/buildrpm +++ b/buildrpm @@ -1,18 +1,43 @@ -#!/bin/csh -x -# Usage: build [-n] +#!/bin/csh -v # Build ELOG distribution if ($#argv < 2) then - echo "Usage: build " + echo "Usage: build [-krb5] [-ldap] [-pam] [-ssl]" exit endif set version = $argv[1] set release = $argv[2] +set REV = "unknown" +set i = 0 +set BUILDOPTS="" +foreach argument ($argv) + set i=`expr $i + 1` + if ($i <= 2) continue + switch ($argument) + case "-ldap": + set BUILDOPTS="$BUILDOPTS --with ldap" + breaksw + case "-pam": + set BUILDOPTS="$BUILDOPTS --with pam" + breaksw + case "-ssl": + set BUILDOPTS="$BUILDOPTS --with ssl" + breaksw + case "-krb5": + set BUILDOPTS="$BUILDOPTS --with krb5" + breaksw + endsw +end + +if (`hostname` == 'elog01.psi.ch') then + set BUILDOPTS="$BUILDOPTS --with ldap --with pam --with ssl --with krb5" +endif + set dist = `rpm --eval %{\?dist}` set dir = /tmp/elog-$version-$release set archive = elog-$version-$release.tar.gz -set fdate = `date +"%a %b %d %Y"` +set fdate = `env LC_TIME=C date +"%a %b %d %Y"` echo ${fdate} @@ -59,6 +84,18 @@ cp -p ssl/* $dir/ssl cp -rp themes/default/* $dir/themes/default cp -p logbooks/demo/2001/011108a.log $dir/logbooks/demo/2001/ +# add git version for RPM +which git >& /dev/null +if ( $status != 1 ) then + set REV=`git log -n 1 --pretty=format:"%ad - %h"` +endif +echo \#define GIT_REVISION \"$REV\" > $dir/src/git-revision.h + +# generate correct specfile for current ver-rel +sed "s/__ELOGVER__/${version}/;s/__ELOGREL__/${release}/;s/__GIT__/$REV/" elog.spec.template > elog.spec +# add elog.spec in archive +cp -p elog.spec $dir/ + # create elog-x.xx-y.tar.gz file echo Creating archive... tar -czf /tmp/$archive -C /tmp/ elog-$version-$release/ @@ -68,7 +105,8 @@ rm -Rf $dir # transfer archive echo Transfer archive... -mkdir -p ~/rpmbuild/SOURCES && cp /tmp/$archive ~/rpmbuild/SOURCES/elog-$version-$release.tar.gz +[ ! -d ~/rpmbuild/SOURCES ] && mkdir -p ~/rpmbuild/SOURCES +cp /tmp/$archive ~/rpmbuild/SOURCES/$archive # if running on at PSI copy to download area if (`hostname` == 'elog01.psi.ch') then @@ -78,6 +116,8 @@ if (`hostname` == 'elog01.psi.ch') then cp -v /tmp/$archive ~ritt/html/elog/download/tar/elog-latest.tar.gz cp -vf doc/ChangeLog ~ritt/html/elog/download/ChangeLog endif + # define Factory Packager + #set BUILDOPTS="${BUILDOPTS} --define \"packager Stefan Ritt \"" endif rm -f /tmp/$archive @@ -87,7 +127,8 @@ rm -f ~/rpmbuild/SRPMS/elog*${version}-${release}*.rpm # building RPMs echo Build RPMs... -rpmbuild -ba --define "elogver ${version}" --define "elogrel ${release}" --with ssl --with pam --with ldap --with krb5 --define "factorydate ${fdate}" elog.spec || exit $? +rpmbuild -ba ${BUILDOPTS} --define "factorydate ${fdate}" \ + --define "elogver ${version}" --define "elogrel ${release}" elog.spec || exit $? # if running on at PSI copy to download area if (`hostname` == 'elog01.psi.ch') then diff --git a/elog.spec b/elog.spec index c68dfb97..c6cb334d 100644 --- a/elog.spec +++ b/elog.spec @@ -45,8 +45,6 @@ Prefix: /usr/local %{?_with_ldap:Requires: openldap >= 2.4.1} %{?_with_pam:BuildRequires: pam-devel >= 1.1.1} %{?_with_ssl:BuildRequires: openssl-devel >= 0.9.8e} -# GAIAOPS: set max N limit to 500 -# Patch1: elog_set_max_list_500.patch %description ELOG is part of a family of applications known as weblogs. @@ -78,9 +76,9 @@ each weblog can be totally different from the rest. %changelog * %{build_timestamp} %{packager} %{version}-%{release} - rebuild with option(s): %{?_with_krb5:KRB5 }%{?_with_ldap:LDAP }%{?_with_pam:PAM }%{?_with_ssl:SSL} -- set MAX_N_LIST to 500 (patch1) + * %{factorydate} Stefan Ritt %{version}-%{release} -- Updated from git +- Updated from git Tue Aug 25 13:38:41 2020 +0200 - 13c50f1 * Wed Sep 26 2018 Stefan Ritt - Made adjustments for new elog server and RH7 * Fri Aug 29 2014 Stefan Ritt @@ -104,8 +102,7 @@ each weblog can be totally different from the rest. %prep -%setup -q -# %patch1 -p0 +%setup -q -n elog-%{elogver}-%{elogrel} %pre %{_sbindir}/groupadd -r elog 2>/dev/null || : @@ -113,7 +110,7 @@ each weblog can be totally different from the rest. -g elog -M -r elog 2>/dev/null || : %build -make %{?_with_ssl} %{?_with_pam} %{?_with_ldap} %{?_with_krb5} CFLAGS='-O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -Imxml -g' +make %{?_with_ssl} %{?_with_pam} %{?_with_ldap} %{?_with_krb5} CFLAGS="$RPM_OPT_FLAGS -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -Wno-unused-result -Imxml" sed "s#\@PREFIX\@#%{prefix}#g" elogd.init_template > elogd.init %install