Forums » Tutorial and setups »
[MANUAL] Building .DEB packages on clean Ubuntu or other Debian distros 
Added by saen acro almost 9 years ago
- Table of contents
 - Manual debugging step by step
 - GPU VA hardware acceleration aka Transcoding
 - Short version of all needed packages
 - How to clone Github repo to local folder
 - ARM OpenMax support
 - Automated build script
 
Manual debugging step by step¶
There is a manual in WIKI with says there is a some needed packages dependency 
https://tvheadend.org/projects/tvheadend/wiki/Building
Following this manual (from wiki) there is no chance to make any package
So here is how to solve this:
(Ubuntu 14.04LTS x86_64 used but possible to be used on newer, even "x86" version)
There is a lot of packages with need to install
First packages from wiki
sudo apt install build-essential git pkg-config libssl-dev bzip2 wget libavahi-client-dev zlib1g-dev libavcodec-dev libavutil-dev libavformat-dev libswscale-dev libavresample-dev
so let see is this correct by running
./configure
and result is
/opt/tvheadend# ./configure Checking support/features checking for cc execinfo.h ... ok checking for cc -mmmx ... ok checking for cc -msse2 ... ok checking for cc -Wunused-result ... ok checking for cc getloadavg ... ok checking for cc atomic64 ... ok checking for cc atomic_time_t ... ok checking for cc bitops64 ... ok checking for cc lockowner ... ok checking for cc qsort_r ... ok checking for cc stime ... ok checking for cc gmtoff ... ok checking for cc recvmmsg ... ok checking for cc sendmmsg ... ok checking for cc libiconv ... fail checking for cc libdvben50221 ... fail checking for cc ifnames ... ok checking for py module gzip ... ok checking for pkg-config ... ok checking for xgettext ... fail ERROR: no gettext binaries found
surprise nothing happens
so we need package gettext
sudo apt install gettext
again configure command
/opt/tvheadend# ./configure Checking support/features checking for cc execinfo.h ... ok checking for cc -mmmx ... ok checking for cc -msse2 ... ok checking for cc -Wunused-result ... ok checking for cc getloadavg ... ok checking for cc atomic64 ... ok checking for cc atomic_time_t ... ok checking for cc bitops64 ... ok checking for cc lockowner ... ok checking for cc qsort_r ... ok checking for cc stime ... ok checking for cc gmtoff ... ok checking for cc recvmmsg ... ok checking for cc sendmmsg ... ok checking for cc libiconv ... fail checking for cc libdvben50221 ... fail checking for cc ifnames ... ok checking for py module gzip ... ok checking for pkg-config ... ok checking for xgettext ... ok checking for msgmerge ... ok checking for gzip ... ok checking for bzip2 ... ok checking for pkg openssl ... ok (detected 1.0.1f) checking for cc linux/dvb/version.h ... ok checking for pkg zlib ... ok (detected 1.2.8) checking for pkg liburiparser ... fail (detected <none>) checking for pkg avahi-client ... ok (detected 0.6.31) checking for cmake ... fail ERROR: cmake not found
Again missing essential part
sudo apt install cmake
Again configure ShowHide
/opt/tvheadend# ./configure
Checking support/features
  checking for cc execinfo.h ...                    ok
  checking for cc -mmmx ...                         ok
  checking for cc -msse2 ...                        ok
  checking for cc -Wunused-result ...               ok
  checking for cc getloadavg ...                    ok
  checking for cc atomic64 ...                      ok
  checking for cc atomic_time_t ...                 ok
  checking for cc bitops64 ...                      ok
  checking for cc lockowner ...                     ok
  checking for cc qsort_r ...                       ok
  checking for cc stime ...                         ok
  checking for cc gmtoff ...                        ok
  checking for cc recvmmsg ...                      ok
  checking for cc sendmmsg ...                      ok
  checking for cc libiconv ...                      fail
  checking for cc libdvben50221 ...                 fail
  checking for cc ifnames ...                       ok
  checking for py module gzip ...                   ok
  checking for pkg-config ...                       ok
  checking for xgettext ...                         ok
  checking for msgmerge ...                         ok
  checking for gzip ...                             ok
  checking for bzip2 ...                            ok
  checking for pkg openssl  ...                     ok (detected 1.0.1f)
  checking for cc linux/dvb/version.h ...           ok
  checking for pkg zlib  ...                        ok (detected 1.2.8)
  checking for pkg liburiparser  ...                fail (detected <none>)
  checking for pkg avahi-client  ...                ok (detected 0.6.31)
  checking for cmake ...                            ok
  checking for cc -lstdc++ ...                      ok
  checking for cc nvEncodeAPI.h ...                 fail
  checking for cc sys/inotify.h ...                 ok
  fetching dvb-scan files ...                       ok
  checking for pkg dbus-1  ...                      ok (detected 1.6.18)
Compiler:
  Using C compiler:                        cc
  Build for arch:                          x86_64
Binaries:
  Using PYTHON:                            python
  Using GZIP:                              gzip
  Using BZIP2:                             bzip2
Options:
  pie                                      yes
  ccdebug                                  no
  cwc                                      yes
  capmt                                    yes
  constcw                                  yes
  linuxdvb                                 yes
  satip_server                             yes
  satip_client                             yes
  hdhomerun_client                         yes
  hdhomerun_static                         yes
  iptv                                     yes
  tsfile                                   yes
  dvbscan                                  yes
  timeshift                                yes
  trace                                    yes
  imagecache                               yes
  avahi                                    yes
  zlib                                     yes
  libav                                    yes
  ffmpeg_static                            yes
  libx264                                  yes
  libx264_static                           yes
  libx265                                  yes
  libx265_static                           yes
  libvpx                                   yes
  libvpx_static                            yes
  libtheora                                yes
  libtheora_static                         yes
  libvorbis                                yes
  libvorbis_static                         yes
  libfdkaac                                yes
  libfdkaac_static                         yes
  nvenc                                    no
  qsv                                      no
  libmfx_static                            no
  inotify                                  yes
  epoll                                    yes
  uriparser                                no
  ccache                                   no
  tvhcsa                                   yes
  bundle                                   no
  dvbcsa                                   no
  dvben50221                               no
  kqueue                                   no
  dbus_1                                   yes
  android                                  no
  tsdebug                                  no
  gtimer_check                             no
  slow_memoryinfo                          no
  libsystemd_daemon                        no
  bintray_cache                            yes
  execinfo                                 yes
  mmx                                      yes
  sse2                                     yes
  W_unused_result                          yes
  getloadavg                               yes
  atomic64                                 yes
  atomic_time_t                            yes
  bitops64                                 yes
  lockowner                                yes
  qsort_r                                  yes
  stime                                    yes
  gmtoff                                   yes
  recvmmsg                                 yes
  sendmmsg                                 yes
  ifnames                                  yes
  py_gzip                                  yes
  bin_pkg_config                           yes
  bin_xgettext                             yes
  bin_msgmerge                             yes
  bin_gzip                                 yes
  bin_bzip2                                yes
  ssl                                      yes
  linuxdvbapi                              yes
  upnp                                     yes
  bin_cmake                                yes
  stdcpp                                   yes
  libogg_static                            yes
  inotify_h                                yes
  mpegts                                   yes
  mpegts_dvb                               yes
Packages:
  openssl                                  1.0.1f
  zlib                                     1.2.8
  avahi-client                             0.6.31
  dbus-1                                   1.6.18
Installation paths:
  Prefix:                                  /usr/local
  Binaries:                                ${prefix}/bin
  Libraries:                               ${prefix}/lib
  Data files:                              ${prefix}/share
  Man pages:                               ${datadir}/man
Final Binary:
  /opt/tvheadend/build.linux/tvheadend
Tvheadend Data Directory:
  /usr/local/share/tvheadend
And success, there is a chance to build .DEB, but is it so simple are we miss some?
checking for cc libiconv ... fail checking for cc libdvben50221 ... fail checking for pkg liburiparser ... fail (detected <none>)
those maby not 100% needed but lets install it:
libiconv
there is some strange with this library in newer version it is build in in in other library
sudo apt install libiconv-hook-dev
/// this will not solve dependency error message, maby error in configure script
libdvben50221
this is DVB-CI support for hardware CAM module on some devices
solved by instaling dvb-apps
sudo apt install dvb-apps
liburiparser
sudo apt install liburiparser-dev
Let's see with configure ShowHide
/opt/tvheadend# ./configure
Checking support/features
  checking for cc execinfo.h ...                    ok
  checking for cc -mmmx ...                         ok
  checking for cc -msse2 ...                        ok
  checking for cc -Wunused-result ...               ok
  checking for cc getloadavg ...                    ok
  checking for cc atomic64 ...                      ok
  checking for cc atomic_time_t ...                 ok
  checking for cc bitops64 ...                      ok
  checking for cc lockowner ...                     ok
  checking for cc qsort_r ...                       ok
  checking for cc stime ...                         ok
  checking for cc gmtoff ...                        ok
  checking for cc recvmmsg ...                      ok
  checking for cc sendmmsg ...                      ok
  checking for cc libiconv ...                      fail
  checking for cc libdvben50221 ...                 ok
  checking for cc ifnames ...                       ok
  checking for py module gzip ...                   ok
  checking for pkg-config ...                       ok
  checking for xgettext ...                         ok
  checking for msgmerge ...                         ok
  checking for gzip ...                             ok
  checking for bzip2 ...                            ok
  checking for pkg openssl  ...                     ok (detected 1.0.1f)
  checking for cc linux/dvb/version.h ...           ok
  checking for pkg zlib  ...                        ok (detected 1.2.8)
  checking for pkg liburiparser  ...                ok (detected 0.7.5)
  checking for pkg avahi-client  ...                ok (detected 0.6.31)
  checking for cmake ...                            ok
  checking for cc -lstdc++ ...                      ok
  checking for cc nvEncodeAPI.h ...                 fail
  checking for cc sys/inotify.h ...                 ok
  fetching dvb-scan files ...                       ok
  checking for pkg dbus-1  ...                      ok (detected 1.6.18)
Compiler:
  Using C compiler:                        cc
  Using LD flags:                           -ldvben50221 -ldvbapi -lucsi
  Build for arch:                          x86_64
Binaries:
  Using PYTHON:                            python
  Using GZIP:                              gzip
  Using BZIP2:                             bzip2
Options:
  pie                                      yes
  ccdebug                                  no
  cwc                                      yes
  capmt                                    yes
  constcw                                  yes
  linuxdvb                                 yes
  satip_server                             yes
  satip_client                             yes
  hdhomerun_client                         yes
  hdhomerun_static                         yes
  iptv                                     yes
  tsfile                                   yes
  dvbscan                                  yes
  timeshift                                yes
  trace                                    yes
  imagecache                               yes
  avahi                                    yes
  zlib                                     yes
  libav                                    yes
  ffmpeg_static                            yes
  libx264                                  yes
  libx264_static                           yes
  libx265                                  yes
  libx265_static                           yes
  libvpx                                   yes
  libvpx_static                            yes
  libtheora                                yes
  libtheora_static                         yes
  libvorbis                                yes
  libvorbis_static                         yes
  libfdkaac                                yes
  libfdkaac_static                         yes
  nvenc                                    no
  qsv                                      no
  libmfx_static                            no
  inotify                                  yes
  epoll                                    yes
  uriparser                                yes
  ccache                                   no
  tvhcsa                                   yes
  bundle                                   no
  dvbcsa                                   no
  dvben50221                               yes
  kqueue                                   no
  dbus_1                                   yes
  android                                  no
  tsdebug                                  no
  gtimer_check                             no
  slow_memoryinfo                          no
  libsystemd_daemon                        no
  bintray_cache                            yes
  execinfo                                 yes
  mmx                                      yes
  sse2                                     yes
  W_unused_result                          yes
  getloadavg                               yes
  atomic64                                 yes
  atomic_time_t                            yes
  bitops64                                 yes
  lockowner                                yes
  qsort_r                                  yes
  stime                                    yes
  gmtoff                                   yes
  recvmmsg                                 yes
  sendmmsg                                 yes
  libdvben50221                            yes
  ifnames                                  yes
  py_gzip                                  yes
  bin_pkg_config                           yes
  bin_xgettext                             yes
  bin_msgmerge                             yes
  bin_gzip                                 yes
  bin_bzip2                                yes
  ssl                                      yes
  linuxdvbapi                              yes
  upnp                                     yes
  bin_cmake                                yes
  stdcpp                                   yes
  libogg_static                            yes
  inotify_h                                yes
  linuxdvb_ca                              yes
  mpegts                                   yes
  mpegts_dvb                               yes
Packages:
  openssl                                  1.0.1f
  zlib                                     1.2.8
  liburiparser                             0.7.5
  avahi-client                             0.6.31
  dbus-1                                   1.6.18
Installation paths:
  Prefix:                                  /usr/local
  Binaries:                                ${prefix}/bin
  Libraries:                               ${prefix}/lib
  Data files:                              ${prefix}/share
  Man pages:                               ${datadir}/man
Final Binary:
  /opt/tvheadend/build.linux/tvheadend
Tvheadend Data Directory:
  /usr/local/share/tvheadend
Some will ask about
checking for cc nvEncodeAPI.h ... fail
this is NVENC (nVidia hardware accelerator for transcoding)
I don't use nVidia can't help, there is a separate topic
So let's continue with bulding of .DEB packages.
Next step is to use Autobuild.sh, with will make all automatically. or not.
/opt/tvheadend# ./Autobuild.sh dpkg-buildpackage: пакет източник tvheadend dpkg-buildpackage: source version 4.1-2398~gc38af4c dpkg-buildpackage: source distribution unstable dpkg-buildpackage: source changed by Andreas Öman <andreas@tvheadend.org> dpkg-buildpackage: host architecture amd64 dpkg-source --before-build tvheadend dpkg-checkbuilddeps: Unmet build dependencies: debhelper (>= 7.0.50) libcurl4-gnutls-dev dpkg-buildpackage: warning: build dependencies/conflicts unsatisfied; aborting dpkg-buildpackage: warning: (Use -d flag to override.)
Again something missing
sudo apt install debhelper libcurl4-gnutls-dev
Crossing fingers an run again Autobuild.sh
If everything is OK, 
compilation of FFMPEG X264/5 OGG AAC and some other codecs will be compiled before TVHeadend and finally .DEB files.
If there is no critical errors at the end there is show something as this
dpkg-buildpackage: binary only upload (no source included) doozer-versioned-artifact:/opt/tvheadend/../tvheadend_4.1-2398~gc38af4c_amd64.deb:deb:application/x-deb:tvheadend_4.1-2398~gc38af4c_amd64.deb doozer-versioned-artifact:/opt/tvheadend/../tvheadend-dbg_4.1-2398~gc38af4c_amd64.deb:deb:application/x-deb:tvheadend-dbg_4.1-2398~gc38af4c_amd64.deb doozer-versioned-artifact:/opt/tvheadend/../tvheadend_4.1-2398~gc38af4c_amd64.changes:changes:text/plain:tvheadend_4.1-2398~gc38af4c_amd64.changes
/opt/tvheadend/../
this mean that I'm using /opt/tvheadend/ (source from git)
and files are generated in ../ (upper level) in this case /opt
installation can be done by command
sudo dpkg -i tvheadend_4.1-2398~gc38af4c_amd64.deb
=====
Edit new dependency libpcre /Perl 5 Compatible Regular Expression Library/
to install it add 
Sudo apt instal libpcre2-dev
Warning library is not accessible to all OS versions then use libpcre3-dev
GPU VA hardware acceleration aka Transcoding¶
  checking for pkg libva >=0.38.0 ...               ok (detected 0.39.0)
  checking for pkg libva-x11 >=0.38.0 ...           ok (detected 0.39.0)
  checking for pkg libva-drm >=0.38.0 ...           ok (detected 0.39.0)
	libva-dev 
libva-drm1 (libva-drm2) 
libva-x11-1 (libva-x11-1)
i965-va-driver-shaders (Latest Debian probably Ubuntu 20.04 for Intel GPU)
to work hardware need to support  VA-API version minimum 0.39.0 
ex.
ShowHide
i5-4440 - HD4600
# vainfo
error: XDG_RUNTIME_DIR not set in the environment.
error: can't connect to X server!
libva info: VA-API version 0.39.0   <<<<<<<<<<<<<<<<<<<<<<<<<<<
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_39
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.39 (libva 1.7.0)
vainfo: Driver version: Intel i965 driver for Intel(R) Haswell Desktop - 1.7.0
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Simple            : VAEntrypointEncSlice
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointEncSlice
      VAProfileH264High               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointEncSlice
      VAProfileH264MultiviewHigh      : VAEntrypointVLD
      VAProfileH264MultiviewHigh      : VAEntrypointEncSlice
      VAProfileH264StereoHigh         : VAEntrypointVLD
      VAProfileH264StereoHigh         : VAEntrypointEncSlice
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD
      VAProfileNone                   : VAEntrypointVideoProc
      VAProfileJPEGBaseline           : VAEntrypointVLD
there is a situation when Intel drivers are very buggy but work also
ex:
ShowHide
Intel Corporation Atom Processor D410 - IGMA3510
#vainfo
error: XDG_RUNTIME_DIR not set in the environment.
error: can't connect to X server!
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/i386-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_39
libva error: /usr/lib/i386-linux-gnu/dri/i965_drv_video.so init failed
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit
Short version of all needed packages¶
sudo apt install build-essential git ccache libpcre2-dev pkg-config libssl-dev bzip2 \
wget libavahi-client-dev zlib1g-dev libavcodec-dev libavutil-dev libavformat-dev \
libswscale-dev libavresample-dev gettext cmake libiconv-hook-dev liburiparser-dev \
debhelper libcurl4-gnutls-dev python-minimal libdvbcsa-dev python-requests
	If libpcre2-dev not found use libpcre3-dev
Optional packages for optional features ;) 
sudo apt install dvb-apps libva-dev libva-drm1 libva-x11-1
If used Ubuntu 18.04+ libva-drm2 libva-x11-2
To enable SYSTEMD service --enable-libsystemd_daemon on Ubuntu 18.04 and upper, install libsystemd-dev
Keep in mind, this will install ~400+Mb packages.
Some packages will install other packages to satisfy its dependencies
How to clone Github repo to local folder¶
Usually regular command to clone repo is 
git clone https://github.com/tvheadend/tvheadend.git
This will download latest source code (unstable) ready for compilation
but if need stable or other
use command
git clone -b release/4.2 https://github.com/tvheadend/tvheadend.git
command explained
git clone -b <branch> <remote_repo>
branch list can be seen at https://github.com/tvheadend/tvheadend
ARM OpenMax support¶
Use only on ARM boards
apt install libomxil-bellagio-dev
do not forget to add option
--enable-omx
Automated build script¶
Currently just clone only latest repo source code and compile it
#!/bin/bash
BASE=$(dirname "$0")
(
  if [ -d "$BASE/tvheadend" ]; then
    cd "$BASE/tvheadend" 
    git pull
  else
    cd "$BASE" 
    git clone https://github.com/tvheadend/tvheadend.git tvheadend # --depth=5 (need version tag workaround else 0.0.0 version)
    cd "$BASE/tvheadend" 
  fi
  time AUTOBUILD_CONFIGURE_EXTRA="--disable-bintray_cache --enable-vaapi --enable-nvenc --disable-hdhomerun_client --disable-hdhomerun_static " ./Autobuild.sh -j$(nproc) # edit only betwin "quotation marks" 
) | tee "$BASE/build.log" 
	Use command
./configure --help
to see possible options.
Usage: ./configure [options]
Miscellaneous
  --help                         Print this message
Installation Paths
  --prefix=DIR$                  Installation root [/usr/local]
  --bindir=DIR                   Install binaries in DIR [${prefix}/bin]
  --libdir=DIR                   Install libraries in DIR [${prefix}/lib]
  --mandir=DIR                   Install man pages in DIR [${datadir}/man]
  --datadir=DIR                  Install data files in DIR [${prefix}/share]
Compiler/Arch
  --cc=CC                        Build using compiler [cc]
  --cflags=CFLAGS                Build using C flags
  --ldflags=LDFLAGS              Build using LD flags
  --cpu=CPU                      Build and optimize for specific CPU
  --arch=ARCH                    Build for architecture [x86_64]
  --platform=PLATFORM            Build for platform [linux]
  --nowerror                     Build without -Werror CFLAGS
  --python=PYTHON                Use python binary [python]
Options
  --disable-pie                  Disable pie
  --enable-ccdebug               Enable ccdebug
  --disable-cardclient           Disable cardclient
  --enable-cardclient            Enable cardclient
  --disable-cwc                  Disable cwc
  --disable-cccam                Disable cccam
  --disable-capmt                Disable capmt
  --disable-constcw              Disable constcw
  --disable-linuxdvb             Disable linuxdvb
  --disable-satip_server         Disable satip_server
  --disable-satip_client         Disable satip_client
  --enable-hdhomerun_client      Enable hdhomerun_client
  --disable-hdhomerun_static     Disable hdhomerun_static
  --disable-iptv                 Disable iptv
  --disable-tsfile               Disable tsfile
  --disable-dvbscan              Disable dvbscan
  --disable-timeshift            Disable timeshift
  --disable-trace                Disable trace
  --disable-avahi                Disable avahi
  --enable-avahi                 Enable avahi
  --disable-zlib                 Disable zlib
  --enable-zlib                  Enable zlib
  --disable-libav                Disable libav
  --enable-libav                 Enable libav
  --disable-ffmpeg_static        Disable ffmpeg_static
  --disable-libx264              Disable libx264
  --disable-libx264_static       Disable libx264_static
  --disable-libx265              Disable libx265
  --disable-libx265_static       Disable libx265_static
  --disable-libvpx               Disable libvpx
  --disable-libvpx_static        Disable libvpx_static
  --disable-libtheora            Disable libtheora
  --disable-libtheora_static     Disable libtheora_static
  --disable-libvorbis            Disable libvorbis
  --disable-libvorbis_static     Disable libvorbis_static
  --enable-libfdkaac             Enable libfdkaac
  --disable-libfdkaac_static     Disable libfdkaac_static
  --disable-libopus              Disable libopus
  --disable-libopus_static       Disable libopus_static
  --enable-nvenc                 Enable nvenc
  --disable-vaapi                Disable vaapi
  --enable-vaapi                 Enable vaapi
  --enable-mmal                  Enable mmal
  --enable-omx                   Enable omx
  --disable-inotify              Disable inotify
  --enable-inotify               Enable inotify
  --disable-epoll                Disable epoll
  --enable-epoll                 Enable epoll
  --disable-pcre                 Disable pcre
  --enable-pcre                  Enable pcre
  --disable-pcre2                Disable pcre2
  --enable-pcre2                 Enable pcre2
  --disable-uriparser            Disable uriparser
  --enable-uriparser             Enable uriparser
  --disable-ccache               Disable ccache
  --enable-ccache                Enable ccache
  --disable-tvhcsa               Disable tvhcsa
  --enable-tvhcsa                Enable tvhcsa
  --enable-bundle                Enable bundle
  --enable-pngquant              Enable pngquant
  --enable-kqueue                Enable kqueue
  --disable-dbus_1               Disable dbus_1
  --enable-dbus_1                Enable dbus_1
  --enable-android               Enable android
  --enable-gtimer_check          Enable gtimer_check
  --enable-slow_memoryinfo       Enable slow_memoryinfo
  --enable-libsystemd_daemon     Enable libsystemd_daemon
  --disable-pcloud_cache         Disable pcloud_cache
  --disable-ddci                 Disable ddci
  --enable-cclang_threadsan      Enable cclang_threadsan
  --enable-gperftools            Enable gperftools
Replies (92)
    
    RE: [MANUAL] Building .DEB packages on clean Ubuntu or other Debian distros 
    -
    Added by saen acro almost 3 years ago
  
  D M wrote:
Can anyone help get this build to succeed? I tried ubuntu and Debian, but it always fails. It always ends with the following.
Use build script from first post and add this
--python=python3
to options
    
    RE: [MANUAL] Building .DEB packages on clean Ubuntu or other Debian distros 
    -
    Added by D M almost 3 years ago
  
  It ends with the same error. UTOBUILD_CONFIGURE_EXTRA="--disable-bintray_cache --python=python3 --disable-vaapi --disable-nvenc --disable-hdhomerun_client --disable-hdhomerun_static --disable-libnpp --disable-ffmpeg_static " ./Autobuild.sh -j$(nproc)
CC              src/htsmsg_binary.o
src/htsmsg_binary.c: In function ‘htsmsg_binary_des0’:
src/htsmsg_binary.c:80:39: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=]
   80 |       ((char *)f->_hmf_name)[namelen] = 0;
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
In file included from src/htsmsg_binary.h:22,
                 from src/htsmsg_binary.c:26:
src/htsmsg.h:84:14: note: at offset 0 to object ‘_hmf_name’ with size 0 declared here
   84 |   const char _hmf_name0;
      |              ^~~~~~~
In file included from /usr/include/string.h:495,
                 from src/htsmsg_binary.c:24:
In function ‘memcpy’,
    inlined from ‘htsmsg_binary_des0’ at src/htsmsg_binary.c:98:7:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:34:10: error: writing 16 bytes into a region of size 0 [-Werror=stringop-overflow=]
   34 |   return builtinmemcpy_chk (_dest, _src, __len, __bos0 (_dest));
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from src/htsmsg_binary.h:22,
                 from src/htsmsg_binary.c:26:
src/htsmsg_binary.c: In function ‘htsmsg_binary_des0’:
src/htsmsg.h:84:14: note: at offset 0 to object ‘_hmf_name’ with size 0 declared here
   84 |   const char _hmf_name0;
      |              ^~~~~~~
CC              src/htsmsg_binary2.o
cc1: all warnings being treated as errors
make2: * [Makefile:715: /home/debian/tvheadend/build.linux/src/htsmsg_binary.o] Error 1
make2: * Waiting for unfinished jobs....
src/htsmsg_binary2.c: In function ‘htsmsg_binary2_des0’:
src/htsmsg_binary2.c:139:39: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=]
  139 |       ((char *)f->_hmf_name)[namelen] = 0;
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
In file included from src/htsmsg_binary2.h:22,
                 from src/htsmsg_binary2.c:26:
src/htsmsg.h:84:14: note: at offset 0 to object ‘_hmf_name’ with size 0 declared here
   84 |   const char _hmf_name0;
      |              ^~~~~~~
In file included from /usr/include/string.h:495,
                 from src/htsmsg_binary2.c:24:
In function ‘memcpy’,
    inlined from ‘htsmsg_binary2_des0’ at src/htsmsg_binary2.c:157:7:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:34:10: error: writing 16 bytes into a region of size 0 [-Werror=stringop-overflow=]
   34 |   return builtinmemcpy_chk (_dest, _src, __len, __bos0 (_dest));
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from src/htsmsg_binary2.h:22,
                 from src/htsmsg_binary2.c:26:
src/htsmsg_binary2.c: In function ‘htsmsg_binary2_des0’:
src/htsmsg.h:84:14: note: at offset 0 to object ‘_hmf_name’ with size 0 declared here
   84 |   const char _hmf_name0;
      |              ^~~~~~~
cc1: all warnings being treated as errors
make2: * [Makefile:714: /home/debian/tvheadend/build.linux/src/htsmsg_binary2.o] Error 1
make2: Leaving directory '/home/debian/tvheadend'
make1:  [debian/rules:15: override_dh_auto_build] Error 2
make1: Leaving directory '/home/debian/tvheadend'
make: ** [debian/rules:6: build] Error 2
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2
    
    RE: [MANUAL] Building .DEB packages on clean Ubuntu or other Debian distros 
    -
    Added by saen acro almost 3 years ago
  
  make distclean
and try again
    
    RE: [MANUAL] Building .DEB packages on clean Ubuntu or other Debian distros 
    -
    Added by D M almost 3 years ago
  
  Still same result. It crashes when it gets to this line
CC              src/htsmsg_binary.o
    
    RE: [MANUAL] Building .DEB packages on clean Ubuntu or other Debian distros 
    -
    Added by Jonas Lang almost 3 years ago
  
  What hardware are you building TVH for. Using these simple build instructions from @Dave Pickles work flawlessly
cd /tmp
        mkdir -p makepkg
        cd makepkg
        git clone https://github.com/tvheadend/tvheadend.git
        cd tvheadend
        echo "LANGUAGES_ALL = en_GB" > Makefile.common
        ./configure \
                --prefix=/usr \
                --enable-ffmpeg_static \
                --disable-ffmpeg
        make -j3
        make install
    
    RE: [MANUAL] Building .DEB packages on clean Ubuntu or other Debian distros 
    -
    Added by D M almost 3 years ago
  
  I tried building on Ubuntu x64 and Debian x64. They both end with the same error on different machines. I even tried them on windows and still ended with the same error. I am beginning to think there is something wrong. The repo has new builds for everything but AMD x64.
| tmpmakepkgtvheadend.txt (302 KB) tmpmakepkgtvheadend.txt | Build log | 
    
    RE: [MANUAL] Building .DEB packages on clean Ubuntu or other Debian distros 
    -
    Added by saen acro almost 3 years ago
  
  D M wrote:
I tried building on Ubuntu x64 and Debian x64. They both end with the same error on different machines. I even tried them on windows and still ended with the same error. I am beginning to think there is something wrong. The repo has new builds for everything but AMD x64.
Do you install all recommended packages?
I don't have any problem with latest Ubuntu and PopOS
root@flamingoxl:/opt# cat build.sh
#!/bin/bash
BASE=$(dirname "$0")
(
  if [ -d "$BASE/tvheadend" ]; then
    cd "$BASE/tvheadend" 
    git pull
  else
    cd "$BASE" 
    git clone https://github.com/tvheadend/tvheadend.git tvheadend # --depth=5 (need version tag workaround else 0.0.0 version)
    cd "$BASE/tvheadend" 
  fi
  time AUTOBUILD_CONFIGURE_EXTRA="--python=python3 --disable-bintray_cache --disable-hdhomerun_client --disable-hdhomerun_static " ./Autobuild.sh -j$(nproc) # edit only betwin "quotation marks" 
) | tee "$BASE/build.log" 
root@flamingoxl:/opt# lsb_release -a && uname -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.1 LTS
Release:        22.04
Codename:       jammy
Linux flamingoxl 5.15.0-53-generic #59-Ubuntu SMP Mon Oct 17 18:53:30 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Jonas Lang wrote:
Using these simple build instructions from @Dave Pickles work flawlessly
This is uninstallable later, some install scripts are not executed also.
    
    RE: [MANUAL] Building .DEB packages on clean Ubuntu or other Debian distros 
    -
    Added by Jonas Lang almost 3 years ago
  
  What PC are you building on. There’s no reason why the build instructions don’t work. Is this a straightforward build or are you trying to build in a VM or Docker.
As one last option you could try this beginners install guide on an x86_64 using Ubuntu 23.04 LTS https://tvheadend.org/boards/4/topics/47932
    
    RE: [MANUAL] Building .DEB packages on clean Ubuntu or other Debian distros 
    -
    Added by Michael W almost 3 years ago
  
  I have the same error on Debian 11 x64 and aarch64 (raspberry). Building fails at htsmsg_binary.o. The last working version for me is 4.3-2058~g5543ce518.
    
    RE: [MANUAL] Building .DEB packages on clean Ubuntu or other Debian distros 
    -
    Added by D M almost 3 years ago
  
  Is there a way to specify 4.3-2058~g5543ce518 for building? I completed the build on ubuntu 22.04 for windows but couldn't install the deb on my debian machine. I get this error. The dependencies are not available.
The build ends with the same error on Debian native and Debian for Windows.
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Package libssl3 is not available but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
Edit: Maybe Debian 11 packages are outdated. Everything worked if I changed to testing.
    
    RE: [MANUAL] Building .DEB packages on clean Ubuntu or other Debian distros 
    -
    Added by Jonas Lang almost 3 years ago
  
  Have you tried building on a PC purely with Ubuntu or one that can dual boot Ubuntu or Windows.
You’re trying to build on a sub system which I can’t help you with. You could try building and suppressing errors to see if the build process completes.
You have the instructions I pointed you to which I can confirm as of today work. You also have the instructions here.
Maybe start a new post with your issue and others can join in to.
    
    RE: [MANUAL] Building .DEB packages on clean Ubuntu or other Debian distros 
    -
    Added by D M almost 3 years ago
  
  I tried building on a native-installed Debian 11 PC x64. It failed until I switched to testing. SO this issue is Debian 11. I see another user received the same exact error. That can't be a coincidence.
    
    RE: [MANUAL] Building .DEB packages on clean Ubuntu or other Debian distros 
    -
    Added by saen acro almost 3 years ago
  
  Report bug
    
    RE: [MANUAL] Building .DEB packages on clean Ubuntu or other Debian distros 
    -
    Added by D M almost 3 years ago
  
  I switched to Debian bookworms. Everything is working fine there. The missing dependency isn't available for Bullseye and I have already wasted enough time trying to get this up and running. Someone will figure this out eventually.
    
    RE: [MANUAL] Building .DEB packages on clean Ubuntu or other Debian distros 
    -
    Added by Jonas Lang almost 3 years ago
  
  It may have helped if you answered a few simple questions at the start of your post.
There’s absolutely nothing wrong with the instructions for building on an x86_64 on Ubuntu 22.04 I linked to earlier. In fact I tried them again this evening just to verify that. You mentioned someone else experienced your problem yet you didn’t include a link to that post to show this to others.
Not sure about you wasting your time but it’s normal practice to acknowledge assistance from wherever you get it.
Who exactly do you think “that someone” your refer to sorting this out will be.
    
    RE: [MANUAL] Building .DEB packages on clean Ubuntu or other Debian distros 
    -
    Added by D M almost 3 years ago
  
  Jonas Lang wrote:
It may have helped if you answered a few simple questions at the start of your post.
There’s absolutely nothing wrong with the instructions for building on an x86_64 on Ubuntu 22.04 I linked to earlier. In fact I tried them again this evening just to verify that. You mentioned someone else experienced your problem yet you didn’t include a link to that post to show this to others.
Not sure about you wasting your time but it’s normal practice to acknowledge assistance from wherever you get it.
Who exactly do you think “that someone” your refer to sorting this out will be.
I am using Debian 11 on an x86_x64 PC. I have said this a few times. The Build failed there but worked on Ubuntu 22.04 running on windows. It also worked on Debian testing running on an x86_x64 PC. It did not work when using Debian 11 Stable at all. Take a look at the screenshot. The build is broken.
I was able to compile tvheadend_4.3-2058~g5543ce518~buster_amd64.deb using my Debian PC but anything after fails.
| Screenshot 2022-12-02 193821.png (109 KB) Screenshot 2022-12-02 193821.png | From github | 
- « Previous
 - 1
 - 2
 - 3
 - 4
 - Next »