How to compile release-1.27?

Forum for questions and support relating to the 1.26.x releases only.
Locked
User avatar
Basildane
Posts: 108
Joined: Mon Sep 16, 2013 1:09 pm

How to compile release-1.27?

Post by Basildane »

I'm having trouble figuring out how to compile a particular branch.

I've tried several different things.

# git clone https://github.com/ZoneMinder/ZoneMinder.git zoneminder;
# cd zoneminder;
# git checkout -b release-1.27 origin/release-1.27
# ln -s distros/ubuntu1204 debian;
# dpkg-checkbuilddeps;
# dpkg-buildpackage;

But then it seems to compile 1.26.5-1.
Can someone point me in the right direction?
User avatar
Basildane
Posts: 108
Joined: Mon Sep 16, 2013 1:09 pm

Re: How to compile release-1.27?

Post by Basildane »

I think I managed to compile this way:

# cmake -C zm_conf.cmake -DENABLE_MMAP=yes .
# make clean
# make
# make install

(if updating run the update script, root user, no password)
# scripts/zmupdate.pl --user=root --pass=

# ldconfig

*** Never mind, it's compiling now.
I think I didn't have enough coffee.
mabene
Posts: 13
Joined: Tue Dec 24, 2013 1:06 pm

Re: How to compile release-1.27?

Post by mabene »

Basildane wrote:I'm having trouble figuring out how to compile a particular branch.

I've tried several different things.

# git clone https://github.com/ZoneMinder/ZoneMinder.git zoneminder;
# cd zoneminder;
# git checkout -b release-1.27 origin/release-1.27
# ln -s distros/ubuntu1204 debian;
# dpkg-checkbuilddeps;
# dpkg-buildpackage;

But then it seems to compile 1.26.5-1.
Can someone point me in the right direction?
I've just built 1.27 on ubuntu so I think I can give some hints:
not all version references have been adjusted to 1.27 so - while what you build is actually V1.27 the version number doesn't say so. your build instructions look good so far but you'll need to change a few files before the final instruction:

(presuming you arre in your zoneminder directory)

./version
==> Change 1.26.5 to 1.27.0

./CMakeLists.txt
==> Change version on line 13

./configure.ac
==> Change version on line 2

./distros/ubuntu1204/changelog
==> Change 1st Line, 1.26.5-1 ==> 1.27.0-1

# dpkg-buildpackage;

hope this helps.
User avatar
Basildane
Posts: 108
Joined: Mon Sep 16, 2013 1:09 pm

Re: How to compile release-1.27?

Post by Basildane »

Thank you for that.

I am always puzzled though. There seem to be a major conflict over how to compile from source.

One way I see is this:
root@host:~# git clone https://github.com/ZoneMinder/ZoneMinder.git zoneminder;
root@host:~# cd zoneminder;
root@host:~# ln -s distros/ubuntu1204 debian;
root@host:~# dpkg-checkbuilddeps;
root@host:~# dpkg-buildpackage;

Which always seems to miss ffmpeg dependencies and never works for me.
The way I do it is this, and this is the only way I have ever had any success:

# cmake -C zm_conf.cmake -DENABLE_MMAP=yes .
# make clean
# make
# make install
# scripts/zmupdate.pl --user=root --pass=
# ldconfig

There seem to be a dozen websites out there with instructions, and a dozen conflicting ways to do it.
mabene
Posts: 13
Joined: Tue Dec 24, 2013 1:06 pm

Re: How to compile release-1.27?

Post by mabene »

Basildane wrote:Thank you for that.

I am always puzzled though. There seem to be a major conflict over how to compile from source.

One way I see is this:
root@host:~# ln -s distros/ubuntu1204 debian;
root@host:~# dpkg-checkbuilddeps;
root@host:~# dpkg-buildpackage;

Which always seems to miss ffmpeg dependencies and never works for me.
The way I do it is this, and this is the only way I have ever had any success:

# cmake -C zm_conf.cmake -DENABLE_MMAP=yes .
# make clean
# make
# make install
# scripts/zmupdate.pl --user=root --pass=
# ldconfig

There seem to be a dozen websites out there with instructions, and a dozen conflicting ways to do it.
difference is in what you're trying to build. first method builds a .deb installation package that can be installed using dpkg and is thus managed by ubuntus package management system.

The 2nd method is a generic build that just builds and installs the files without using a distributions package management system. the first method is preferable if your distribution is supported.

I'd consider zoneminders github page at https://github.com/ZoneMinder/ZoneMinder the authoritative source for installation instructions. in the ubuntu section you'll see the first command that installs all the required dependancies so ffmpeg etc. can be picked up by the build process.

Code: Select all

root@host:~# aptitude install -y apache2 mysql-server php5 php5-mysql build-essential libmysqlclient-dev libssl-dev libbz2-dev libpcre3-dev libdbi-perl libarchive-zip-perl libdate-manip-perl libdevice-serialport-perl libmime-perl libpcre3 libwww-perl libdbd-mysql-perl libsys-mmap-perl yasm subversion automake autoconf libjpeg8-dev libjpeg8 apache2-mpm-prefork libapache2-mod-php5 php5-cli libphp-serialization-perl libgnutls-dev libjpeg8-dev libavcodec-dev libavformat-dev libswscale-dev libavutil-dev libv4l-dev libtool ffmpeg libnetpbm10-dev libavdevice-dev libmime-lite-perl dh-autoreconf dpatch;
User avatar
Basildane
Posts: 108
Joined: Mon Sep 16, 2013 1:09 pm

Re: How to compile release-1.27?

Post by Basildane »

OK, thanks again for your input.

I made progress, but now I'm stuck for hours on this:
zm_mpeg.cpp:(.text+0x59): undefined reference to `avcodec_encode_video2'

I assume my libavformat headers are wrong.
I have this:
# dpkg -l | grep libavformat
ii libavformat-dev 4:0.8.10-0ubuntu0.12.04.1 Development files for libavformat
ii libavformat53 4:0.8.10-0ubuntu0.12.04.1 Libav file format library

No idea if that is right or not.
I removed ffmpeg and libavformat*

Reinstall dependencies from your aptitude command, and run dpkg-buildpackage; get the same error.
I'm running Ubuntu 12.0.4 LTS
Locked