Fedora 24, released in June 2016, is not supported by the commercial PBS Professional (of course) and it is messy, so I tried and succeeded the build and the installation of PBS Professional OSS version.
Environment
- Fedora 24, Workstation : https://getfedora.org/
- PBS Professional OSS version : https://github.com/PBSPro/pbspro
- tried and succeeded on commit
f17641772c58140a45c706da34b89c072e7a6a7c
- tried and succeeded on commit
Build and Install steps
-
Install the prerequisite packages for building PBS Professional
$ sudo dnf install -y gcc make rpm-build libtool hwloc-devel libX11-devel libXt-devel libedit-devel libical-devel ncurses-devel perl postgresql-devel python-devel tcl-devel tk-devel swig expat-devel openssl-devel libXext libXft
-
Install the prerequisite packages to run PBS Professional
$ sudo dnf install -y expat libedit postgresql-server python sendmail sudo tcl tk libical
-
Clone the source code from the GitHub repository and change directory there
-
Modify
m4/with_libical.m4
andsrc/lib/Libutil/pbs_ical.c
, aslibical
seems to be modified/updated from the target environment-
As the path of
ical.h
has been changed add it tom4/with_libical.m4
$ git diff master -- m4/with_libical.m4 diff --git a/m4/with_libical.m4 b/m4/with_libical.m4 index dc14512..6e1e25f 100644 --- a/m4/with_libical.m4 +++ b/m4/with_libical.m4 @@ -50,6 +50,8 @@ AC_DEFUN([PBS_AC_WITH_LIBICAL], AS_IF([test -r "$libical_dir/include/ical.h"], AS_IF([test "$libical_dir" != "/usr"], [libical_inc="-I$libical_dir/include"]), + [test -r "$libical_dir/include/libical/ical.h"], + [libical_inc="-I$libical_dir/include/libical"], AC_MSG_ERROR([libical headers not found.])) AS_IF([test "$libical_dir" = "/usr"], # Using system installed libical
-
As a variant named
icalerror_errors_are_fatal
has not been defined in the headers define it as a local variable in the functions$ git diff master -- src/lib/Libutil/pbs_ical.c diff --git a/src/lib/Libutil/pbs_ical.c b/src/lib/Libutil/pbs_ical.c index 948ebc5..e72ca79 100644 --- a/src/lib/Libutil/pbs_ical.c +++ b/src/lib/Libutil/pbs_ical.c @@ -100,6 +100,8 @@ get_num_occurrences(char *rrule, time_t dtstart, char *tz) time_t date_limit; int num_resv = 0; + int icalerror_errors_are_fatal; + /* if any of the argument is NULL, we are dealing with * advance reservation, so return 1 occurrence */ if (rrule == NULL || tz == NULL) @@ -179,6 +181,8 @@ get_occurrence(char *rrule, time_t dtstart, char *tz, int idx) int i; time_t next_occr = dtstart; + int icalerror_errors_are_fatal; + if (rrule == NULL) return dtstart; @@ -269,6 +273,8 @@ check_rrule(char *rrule, time_t dtstart, time_t dtend, char *tz, int *err_code) long tmp_occr_duration = 0; long duration; + int icalerror_errors_are_fatal; + *err_code = 0; icalerror_clear_errno();
-
-
Run
autoreconf
, as autoconf and automake packages on Fedora 24 are newer than the target environment -
Build and install
$ ./configure --prefix=/opt/pbs $ make $ sudo make install
-
Post install operation
$ sudo /opt/pbs/libexec/pbs_postinstall $ sudo vi /etc/pbs.conf $ sudo chmod 4755 /opt/pbs/sbin/pbs_iff /opt/pbs/sbin/pbs_rcp $ service pbs start