Jump to content

Самостоятельная сборка пакетов


Recommended Posts

В ‎25‎.‎10‎.‎2019 в 22:29, TheBB сказал:

знает толк в извращениях!

Потому что не знает толк в Линукс.

Доставил пакеты и далее по инструкции:

opkg install busybox ldd make gawk sed
wget -qO- http://bin.entware.net/mipselsf-k3.4/include/include.tar.gz | tar xvz -C /opt/include

Далее 

git clone https://github.com/Motion-Project/motion.git
cd motion
./configure.ac --prefix=/opt

Получаю ./configure.ac: Permission denied:

Скрытый текст
~/motion # ./configure.ac --prefix=/opt
-sh: ./configure.ac: Permission denied
~/motion # ls -al
drwxr-xr-x 9 root root 4096 Oct 27 07:58 .
drwxr-xr-x 4 root root 4096 Oct 27 07:51 ..
drwxr-xr-x 8 root root 4096 Oct 27 07:51 .git
-rw-r--r-- 1 root root 806 Oct 27 07:51 .gitignore
-rw-r--r-- 1 root root 5823 Oct 27 07:51 .travis.yml
-rw-r--r-- 1 root root 3074 Oct 27 07:51 CONTRIBUTING.md
-rw-r--r-- 1 root root 408 Oct 27 07:51 ISSUE_TEMPLATE.md
-rw-r--r-- 1 root root 2593 Oct 27 07:51 Makefile.am
-rw-r--r-- 1 root root 1682 Oct 27 07:51 README.md
-rw-r--r-- 1 root root 17448 Oct 27 07:51 configure.ac
drwxr-xr-x 2 root root 4096 Oct 27 07:51 data
drwxr-xr-x 2 root root 4096 Oct 27 07:51 doc
drwxr-xr-x 2 root root 4096 Oct 27 07:51 man
drwxr-xr-x 2 root root 4096 Oct 27 07:51 po
drwxr-xr-x 2 root root 4096 Oct 27 07:51 scripts
drwxr-xr-x 3 root root 4096 Oct 27 07:51 src

Из под root все делал :(

Edited by Дмитрий
Link to comment
Share on other sites

Ну да, конечно, мой косяк, config нету:

Скрытый текст

Итак, чтобы собрать что-то из исходников, нужно сначала собрать конфигуратор; как собрать конфигуратор, описано в файле configure.in. Для сборки конфигуратора необходимо выполнить


./bootstrap

или


./autogen.sh

Если таких скриптов не оказалось, то можно выполнить последовательно следующие команды:


aclocal
autoheader
automake --gnu --add-missing --copy --foreign
autoconf -f -Wall

Появился ./configure

Edited by Дмитрий
Link to comment
Share on other sites

Ну что опять?

Скрытый текст
~/motion # ./configure --prefix=/opt
checking for a BSD-compatible install... ./install-sh -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... ./install-sh -c -d
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /opt/bin/grep
checking for egrep... /opt/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking build system type... mipsel-unknown-Linux-gnu
checking host system type... mipsel-unknown-linux-gnu
./configure: line 4737: syntax error: unexpected word (expecting ")")

 

configure

Edited by Дмитрий
Link to comment
Share on other sites

 

22 часа назад, Дмитрий сказал:

Ну да, конечно, мой косяк, config нету:

`cat doc/INSTALL`

Цитата

...

Once required packages are installed, execute:
    autoreconf -fiv
    ./configure
    make
    make install

...

доустановить `opkg install libmicrohttpd libjpeg libffmpeg-full` и слегка подправить `ln -s /opt/lib/libjpeg.so.9.3.0 /opt/lib/libjpeg.so`

c `git clone git://github.com/Motion-Project/motion.git motion_a` понятно

/opt/home # git clone git://github.com/Motion-Project/motion.git motion_a
Cloning into 'motion_a'...
remote: Enumerating objects: 25, done.
remote: Counting objects: 100% (25/25), done.
remote: Compressing objects: 100% (25/25), done.
remote: Total 6791 (delta 11), reused 3 (delta 0), pack-reused 6766
Receiving objects: 100% (6791/6791), 5.47 MiB | 583.00 KiB/s, done.
Resolving deltas: 100% (5069/5069), done.
/opt/home #
/opt/home # cp -r motion_a motion_b
/opt/home # cd motion_b/
/opt/home/motion_b # 

идём дальше ))) патчим "configure.ac" `patch -p1 -i ../motion_configute.patch` (<-- сам патч, закинуть в любое место и патчить с указанием пути к нему)

upd: патчем мы отламываем "gettext" и разные проверки

/opt/home/motion_b # patch -p1 -i ../motion_configute.patch 
patching file configure.ac
/opt/home/motion_b #

запускаем `autoreconf -fiv`

/opt/home/motion_b # autoreconf -fiv
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force -I m4
aclocal: warning: couldn't open directory 'm4': No such file or directory
autoreconf: configure.ac: tracing
autoreconf: configure.ac: not using Libtool
autoreconf: running: /opt/bin/autoconf --force
autoreconf: running: /opt/bin/autoheader --force
autoreconf: running: automake --add-missing --copy --force-missing
configure.ac:3: installing './compile'
configure.ac:8: installing './config.guess'
configure.ac:8: installing './config.sub'
configure.ac:2: installing './install-sh'
configure.ac:2: installing './missing'
src/Makefile.am: installing './depcomp'
autoreconf: Leaving directory `.'
/opt/home/motion_b # 

запускаем `./configure --prefix=/opt --without-libsqlite3`

upd: можно собрать и со "sqlite3", но потребуется дополнительная "фигурная резьба" в "configure.ac" и "Makefile"

Скрытый текст

 


/opt/home/motion_b # ./configure --prefix=/opt --without-sqlite3
checking for a BSD-compatible install... /opt/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... ./install-sh -c -d
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /opt/bin/grep
checking for egrep... /opt/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking build system type... mipsel-unknown-linux-gnu
checking host system type... mipsel-unknown-linux-gnu
checking stdio.h usability... yes
checking stdio.h presence... yes
checking for stdio.h... yes
checking for stdlib.h... (cached) yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking sys/wait.h usability... yes
checking sys/wait.h presence... yes
checking for sys/wait.h... yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/mman.h usability... yes
checking sys/mman.h presence... yes
checking for sys/mman.h... yes
checking sys/param.h usability... yes
checking sys/param.h presence... yes
checking for sys/param.h... yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking stdarg.h usability... yes
checking stdarg.h presence... yes
checking for stdarg.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking time.h usability... yes
checking time.h presence... yes
checking for time.h... yes
checking signal.h usability... yes
checking signal.h presence... yes
checking for signal.h... yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking errno.h usability... yes
checking errno.h presence... yes
checking for errno.h... yes
checking assert.h usability... yes
checking assert.h presence... yes
checking for assert.h... yes
checking netdb.h usability... yes
checking netdb.h presence... yes
checking for netdb.h... yes
checking ctype.h usability... yes
checking ctype.h presence... yes
checking for ctype.h... yes
checking regex.h usability... yes
checking regex.h presence... yes
checking for regex.h... yes
checking math.h usability... yes
checking math.h presence... yes
checking for math.h... yes
checking locale.h usability... yes
checking locale.h presence... yes
checking for locale.h... yes
checking dirent.h usability... yes
checking dirent.h presence... yes
checking for dirent.h... yes
checking for ctype.h... (cached) yes
checking arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
checking netinet/in.h usability... yes
checking netinet/in.h presence... yes
checking for netinet/in.h... yes
checking termios.h usability... yes
checking termios.h presence... yes
checking for termios.h... yes
checking for pkg-config... yes
checking pthread.h usability... yes
checking pthread.h presence... yes
checking for pthread.h... yes
checking setjmp.h usability... yes
checking setjmp.h presence... yes
checking for setjmp.h... yes
checking jerror.h usability... yes
checking jerror.h presence... yes
checking for jerror.h... yes
checking jpeglib.h usability... yes
checking jpeglib.h presence... yes
checking for jpeglib.h... yes
checking jpg libraries... yes
checking microhttpd.h usability... yes
checking microhttpd.h presence... yes
checking for microhttpd.h... yes
checking libmicrohttpd libraries... yes
checking pthread_np.h usability... no
checking pthread_np.h presence... no
checking for pthread_np.h... no
checking for pthread_setname_np... yes
checking for pthread_getname_np... yes
checking for XSI strerror_r... no
checking dev/bktr/ioctl_meteor.h usability... no
checking dev/bktr/ioctl_meteor.h presence... no
checking for dev/bktr/ioctl_meteor.h... no
checking dev/bktr/ioctl_bt848.h usability... no
checking dev/bktr/ioctl_bt848.h presence... no
checking for dev/bktr/ioctl_bt848.h... no
checking dev/ic/bt8xx.h usability... no
checking dev/ic/bt8xx.h presence... no
checking for dev/ic/bt8xx.h... no
checking linux/videodev2.h usability... yes
checking linux/videodev2.h presence... yes
checking for linux/videodev2.h... yes
checking for webp... no
checking MMAL pkg-config path... .:/opt/vc/lib/pkgconfig
checking for MMAL... no
checking MariaDB pkg-config path... 
checking for MariaDB... no
checking MySQL pkg-config path... 
checking for MySQL... no
checking PostgreSQL pkg-config path... 
checking for PostgreSQL... no
checking for sqlite3... skipping
checking for kill... /opt/bin/kill
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating man/Makefile
config.status: creating data/camera1-dist.conf
config.status: creating data/camera2-dist.conf
config.status: creating data/camera3-dist.conf
config.status: creating data/camera4-dist.conf
config.status: creating data/motion-dist.conf
config.status: creating data/motion.service
config.status: creating config.h
config.status: executing depfiles commands

   **************************
      Configure status       
      motion 4.2.2+dirty20191016-98f060d
   **************************

CFLAGS: -g -O2 -D_THREAD_SAFE  

LIBS:  -pthread   -ljpeg

LDFLAGS: 


OS                  : linux-gnu
pthread_np          : no
pthread_setname_np  : yes
pthread_getname_np  : yes
XSI error           : no
webp support        : yes
V4L2 support        : yes
BKTR support        : no
MMAL support        : no
FFmpeg support      : yes
libavformat version : --
SQLite3 support     : no
MYSQL support       : no
PostgreSQL support  : no
MariaDB support     : no

Install prefix:       /opt

/opt/home/motion_b # 

 

правим Makefile`ы

upd: т.к. отломали "gettext" и прочее (см. выше), в 1-ом исключаем локализацию, во 2-м
меняем отломанную "libintl" на "libmicrohttpd"

/opt/home/motion_b # sed -i -e 's, po , ,' Makefile
/opt/home/motion_b # 
/opt/home/motion_b # sed -i -e 's,@LIBINTL@,-lmicrohttpd,' src/Makefile
/opt/home/motion_b #

запускаем `make`

Скрытый текст

 


/opt/home/motion_b # make
make  all-recursive
make[1]: Entering directory '/opt/home/motion_b'
Making all in src
make[2]: Entering directory '/opt/home/motion_b/src'
depbase=`echo motion.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..    -Dsysconfdir=\"/opt/etc/motion\" -DLOCALEDIR=\"/opt/share/locale\" -g -O2 -D_THREAD_SAFE   -MT motion.o -MD -MP -MF $depbase.Tpo -c -o motion.o motion.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo logger.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..    -Dsysconfdir=\"/opt/etc/motion\" -DLOCALEDIR=\"/opt/share/locale\" -g -O2 -D_THREAD_SAFE   -MT logger.o -MD -MP -MF $depbase.Tpo -c -o logger.o logger.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo conf.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..    -Dsysconfdir=\"/opt/etc/motion\" -DLOCALEDIR=\"/opt/share/locale\" -g -O2 -D_THREAD_SAFE   -MT conf.o -MD -MP -MF $depbase.Tpo -c -o conf.o conf.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo draw.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..    -Dsysconfdir=\"/opt/etc/motion\" -DLOCALEDIR=\"/opt/share/locale\" -g -O2 -D_THREAD_SAFE   -MT draw.o -MD -MP -MF $depbase.Tpo -c -o draw.o draw.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo jpegutils.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..    -Dsysconfdir=\"/opt/etc/motion\" -DLOCALEDIR=\"/opt/share/locale\" -g -O2 -D_THREAD_SAFE   -MT jpegutils.o -MD -MP -MF $depbase.Tpo -c -o jpegutils.o jpegutils.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo video_loopback.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..    -Dsysconfdir=\"/opt/etc/motion\" -DLOCALEDIR=\"/opt/share/locale\" -g -O2 -D_THREAD_SAFE   -MT video_loopback.o -MD -MP -MF $depbase.Tpo -c -o video_loopback.o video_loopback.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo video_v4l2.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..    -Dsysconfdir=\"/opt/etc/motion\" -DLOCALEDIR=\"/opt/share/locale\" -g -O2 -D_THREAD_SAFE   -MT video_v4l2.o -MD -MP -MF $depbase.Tpo -c -o video_v4l2.o video_v4l2.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo video_common.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..    -Dsysconfdir=\"/opt/etc/motion\" -DLOCALEDIR=\"/opt/share/locale\" -g -O2 -D_THREAD_SAFE   -MT video_common.o -MD -MP -MF $depbase.Tpo -c -o video_common.o video_common.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo video_bktr.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..    -Dsysconfdir=\"/opt/etc/motion\" -DLOCALEDIR=\"/opt/share/locale\" -g -O2 -D_THREAD_SAFE   -MT video_bktr.o -MD -MP -MF $depbase.Tpo -c -o video_bktr.o video_bktr.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo netcam.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..    -Dsysconfdir=\"/opt/etc/motion\" -DLOCALEDIR=\"/opt/share/locale\" -g -O2 -D_THREAD_SAFE   -MT netcam.o -MD -MP -MF $depbase.Tpo -c -o netcam.o netcam.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo netcam_http.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..    -Dsysconfdir=\"/opt/etc/motion\" -DLOCALEDIR=\"/opt/share/locale\" -g -O2 -D_THREAD_SAFE   -MT netcam_http.o -MD -MP -MF $depbase.Tpo -c -o netcam_http.o netcam_http.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo netcam_ftp.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..    -Dsysconfdir=\"/opt/etc/motion\" -DLOCALEDIR=\"/opt/share/locale\" -g -O2 -D_THREAD_SAFE   -MT netcam_ftp.o -MD -MP -MF $depbase.Tpo -c -o netcam_ftp.o netcam_ftp.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo netcam_jpeg.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..    -Dsysconfdir=\"/opt/etc/motion\" -DLOCALEDIR=\"/opt/share/locale\" -g -O2 -D_THREAD_SAFE   -MT netcam_jpeg.o -MD -MP -MF $depbase.Tpo -c -o netcam_jpeg.o netcam_jpeg.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo netcam_wget.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..    -Dsysconfdir=\"/opt/etc/motion\" -DLOCALEDIR=\"/opt/share/locale\" -g -O2 -D_THREAD_SAFE   -MT netcam_wget.o -MD -MP -MF $depbase.Tpo -c -o netcam_wget.o netcam_wget.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo netcam_rtsp.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..    -Dsysconfdir=\"/opt/etc/motion\" -DLOCALEDIR=\"/opt/share/locale\" -g -O2 -D_THREAD_SAFE   -MT netcam_rtsp.o -MD -MP -MF $depbase.Tpo -c -o netcam_rtsp.o netcam_rtsp.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo track.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..    -Dsysconfdir=\"/opt/etc/motion\" -DLOCALEDIR=\"/opt/share/locale\" -g -O2 -D_THREAD_SAFE   -MT track.o -MD -MP -MF $depbase.Tpo -c -o track.o track.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo alg.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..    -Dsysconfdir=\"/opt/etc/motion\" -DLOCALEDIR=\"/opt/share/locale\" -g -O2 -D_THREAD_SAFE   -MT alg.o -MD -MP -MF $depbase.Tpo -c -o alg.o alg.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo event.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..    -Dsysconfdir=\"/opt/etc/motion\" -DLOCALEDIR=\"/opt/share/locale\" -g -O2 -D_THREAD_SAFE   -MT event.o -MD -MP -MF $depbase.Tpo -c -o event.o event.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo picture.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..    -Dsysconfdir=\"/opt/etc/motion\" -DLOCALEDIR=\"/opt/share/locale\" -g -O2 -D_THREAD_SAFE   -MT picture.o -MD -MP -MF $depbase.Tpo -c -o picture.o picture.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo rotate.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..    -Dsysconfdir=\"/opt/etc/motion\" -DLOCALEDIR=\"/opt/share/locale\" -g -O2 -D_THREAD_SAFE   -MT rotate.o -MD -MP -MF $depbase.Tpo -c -o rotate.o rotate.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo translate.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..    -Dsysconfdir=\"/opt/etc/motion\" -DLOCALEDIR=\"/opt/share/locale\" -g -O2 -D_THREAD_SAFE   -MT translate.o -MD -MP -MF $depbase.Tpo -c -o translate.o translate.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo md5.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..    -Dsysconfdir=\"/opt/etc/motion\" -DLOCALEDIR=\"/opt/share/locale\" -g -O2 -D_THREAD_SAFE   -MT md5.o -MD -MP -MF $depbase.Tpo -c -o md5.o md5.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo stream.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..    -Dsysconfdir=\"/opt/etc/motion\" -DLOCALEDIR=\"/opt/share/locale\" -g -O2 -D_THREAD_SAFE   -MT stream.o -MD -MP -MF $depbase.Tpo -c -o stream.o stream.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo ffmpeg.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..    -Dsysconfdir=\"/opt/etc/motion\" -DLOCALEDIR=\"/opt/share/locale\" -g -O2 -D_THREAD_SAFE   -MT ffmpeg.o -MD -MP -MF $depbase.Tpo -c -o ffmpeg.o ffmpeg.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo webu.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..    -Dsysconfdir=\"/opt/etc/motion\" -DLOCALEDIR=\"/opt/share/locale\" -g -O2 -D_THREAD_SAFE   -MT webu.o -MD -MP -MF $depbase.Tpo -c -o webu.o webu.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo webu_html.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..    -Dsysconfdir=\"/opt/etc/motion\" -DLOCALEDIR=\"/opt/share/locale\" -g -O2 -D_THREAD_SAFE   -MT webu_html.o -MD -MP -MF $depbase.Tpo -c -o webu_html.o webu_html.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo webu_stream.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..    -Dsysconfdir=\"/opt/etc/motion\" -DLOCALEDIR=\"/opt/share/locale\" -g -O2 -D_THREAD_SAFE   -MT webu_stream.o -MD -MP -MF $depbase.Tpo -c -o webu_stream.o webu_stream.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo webu_text.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..    -Dsysconfdir=\"/opt/etc/motion\" -DLOCALEDIR=\"/opt/share/locale\" -g -O2 -D_THREAD_SAFE   -MT webu_text.o -MD -MP -MF $depbase.Tpo -c -o webu_text.o webu_text.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo mmalcam.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..    -Dsysconfdir=\"/opt/etc/motion\" -DLOCALEDIR=\"/opt/share/locale\" -g -O2 -D_THREAD_SAFE   -MT mmalcam.o -MD -MP -MF $depbase.Tpo -c -o mmalcam.o mmalcam.c &&\
mv -f $depbase.Tpo $depbase.Po
gcc -Dsysconfdir=\"/opt/etc/motion\" -DLOCALEDIR=\"/opt/share/locale\" -g -O2 -D_THREAD_SAFE     -o motion motion.o logger.o conf.o draw.o jpegutils.o video_loopback.o video_v4l2.o video_common.o video_bktr.o netcam.o netcam_http.o netcam_ftp.o netcam_jpeg.o netcam_wget.o netcam_rtsp.o track.o alg.o event.o picture.o rotate.o translate.o md5.o stream.o ffmpeg.o webu.o webu_html.o webu_stream.o webu_text.o mmalcam.o   -lmicrohttpd  -pthread   -ljpeg
make[2]: Leaving directory '/opt/home/motion_b/src'
Making all in man
make[2]: Entering directory '/opt/home/motion_b/man'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/opt/home/motion_b/man'
make[2]: Entering directory '/opt/home/motion_b'
make[2]: Leaving directory '/opt/home/motion_b'
make[1]: Leaving directory '/opt/home/motion_b'
/opt/home/motion_b # 

 

собсна, смотрим, что вышло

/opt/home/motion_b # ./src/motion -h
motion Version 4.2.2+dirty20191016-98f060d, Copyright 2000-2019 Jeroen Vreeken/Folkert van Heusden/Kenneth Lavrsen/Motion-Project maintainers

Home page :	 https://motion-project.github.io/ 

usage:	motion [options]


Possible options:

-b			Run in background (daemon) mode.
-n			Run in non-daemon mode.
-s			Run in setup mode.
-c config		Full path and filename of config file.
-d level		Log level (1-9) (EMG, ALR, CRT, ERR, WRN, NTC, INF, DBG, ALL). default: 6 / NTC.
-k type			Type of log (COR, STR, ENC, NET, DBL, EVT, TRK, VID, ALL). default: ALL.
-p process_id_file	Full path and filename of process id file (pid file).
-l log file 		Full path and filename of log file.
-m			Disable motion detection at startup.
-h			Show this screen.

Motion is configured using a config file only. If none is supplied,
it will read motion.conf from current directory, ~/.motion or /opt/etc/motion.

/opt/home/motion_b #

осталось отладка (если не взлетит)

Edited by TheBB
upd
Link to comment
Share on other sites

  • 1 year later...

Уважаемые гуру

Прошу поделиться Вашим опытом. Являюсь полным новичоком в сборке пакетов и хочу решить следующую задачу:
- собрать пакет ipk для кинетика, который состоит ТОЛЬКО из набора различных bash скриптов и дополнительных файлов (конфиги, текстовые данные). 

Подскажите пожалуйста, куда копать? Собирать все так же как описано на первой странице этого топика?

Link to comment
Share on other sites

8 часов назад, Zeleza сказал:

который состоит ТОЛЬКО из набора различных bash скриптов и дополнительных файлов (конфиги, текстовые данные).

Скрытый текст
# XXX шапку заполняем по усмотрению
#
# Copyright (C) Year
#
# This is free software, licensed under...
#

include $(TOPDIR)/rules.mk

PKG_NAME:=$pkg_name	# XXX $pkg_name: здесь и ниже - имя пакета
PKG_VERSION:=0.0.1	# XXX версия пакета
PKG_RELEASE:=1		# XXX релиз

include $(INCLUDE_DIR)/package.mk

define Package/$pkg_name
  SECTION:=	# XXX секция
  CATEGORY:=	# XXX категория 
  TITLE:=	# XXX краткое описание
  URL:=		# XXX дом. страница
  DEPENDS:=	# XXX зависимости, если нужны
endef

# XXX описание пакета, если нужно
define Package/$pkg_name/description
endef

# XXX конфиги пакета, если нужны
define Package/$pkg_name/conffiles
endef

# ХХХ пропуск этапов сборки
Build/Prepare:=:	# XXX подготовка (скачивание, распаковка, наложение патчей, ...)

Build/Configure:=:	# XXX конфигурирование

Build/Compile:=:	# XXX компиляция

define Package/$pkg_name/install
	$(INSTALL_DIR) $(1)
	$(CP) ./files/opt $(1)
endef

$(eval $(call BuildPackage,$pkg_name))

В директории "files" проекта пакета создать полную структуру расположения файлов

/files/

|_ /opt/

        |_ /bin/

                  |_ bash-file1.sh

        |_ /etc/

                  |_ /conf_dir1/

                                       |_ config1.conf

                  |_ config2.conf

        |_ /sbin/

                   |_ bash-file2.sh

...

собсна, её и копировать в секции "define Package/$pkg_name/install"

 

---

см. (как пример) https://github.com/Entware/rtndev/tree/master/entware-opt

см. также макросы $(INSTALL_BIN) | $(INSTALL_DATA) | $(INSTALL_CONF)

===

https://openwrt.org/docs/guide-developer/packages#buildpackage_variables

 

Edited by TheBB
add2
Link to comment
Share on other sites

  • 10 months later...

Доброго всем утра,

Прошу помочь посильную.
При сборке пакета Жезл, после того, как случайно удалил файлы с компиляцией, пришлось весь процесс начинать заново, но столкнулся вот с такой вот проблемой при сборке toпolchain (см. ниже под катом). В menuconfig устанавливал только галочки, как и рекомендовали - opt-ndmsv2, ndmq, libndm + zezl:

Скрытый текст

  bash scripts/headers_install.sh /opt/apps/entware/build_dir/toolchain-aarch64_cortex-a53_gcc-8.4.0_-/linux-dev//include/asm /opt/apps/entware/build_dir/toolchain-aarch64_cortex-a53_gcc-8.4.0_-/linux-3.10.108/arch/arm64/include/uapi/asm auxvec.h bitsperlong.h byteorder.h fcntl.h hwcap.h param.h ptrace.h setup.h sigcontext.h siginfo.h signal.h stat.h statfs.h unistd.h; bash scripts/headers_install.sh /opt/apps/entware/build_dir/toolchain-aarch64_cortex-a53_gcc-8.4.0_-/linux-dev//include/asm /opt/apps/entware/build_dir/toolchain-aarch64_cortex-a53_gcc-8.4.0_-/linux-3.10.108/arch/arm64/include/asm ; bash scripts/headers_install.sh /opt/apps/entware/build_dir/toolchain-aarch64_cortex-a53_gcc-8.4.0_-/linux-dev//include/asm /opt/apps/entware/build_dir/toolchain-aarch64_cortex-a53_gcc-8.4.0_-/linux-3.10.108/arch/arm64/include/generated/uapi/asm ; for F in kvm_para.h errno.h ioctl.h ioctls.h ipcbuf.h kvm_para.h mman.h msgbuf.h poll.h posix_types.h resource.h sembuf.h shmbuf.h socket.h sockios.h swab.h termbits.h termios.h types.h; do echo "#include <asm-generic/$F>" > /opt/apps/entware/build_dir/toolchain-aarch64_cortex-a53_gcc-8.4.0_-/linux-dev//include/asm/$F; done; touch /opt/apps/entware/build_dir/toolchain-aarch64_cortex-a53_gcc-8.4.0_-/linux-dev//include/asm/.install
make[3]: Leaving directory '/opt/apps/entware/build_dir/toolchain-aarch64_cortex-a53_gcc-8.4.0_-/linux-3.10.108'
touch /opt/apps/entware/build_dir/toolchain-aarch64_cortex-a53_gcc-8.4.0_-/linux-3.10.108/.configured
touch /opt/apps/entware/build_dir/toolchain-aarch64_cortex-a53_gcc-8.4.0_-/linux-3.10.108/.built
cp -fpR /opt/apps/entware/build_dir/toolchain-aarch64_cortex-a53_gcc-8.4.0_-/linux-dev/* /opt/apps/entware/staging_dir/toolchain-aarch64_cortex-a53_gcc-8.4.0_-/
mkdir -p /opt/apps/entware/staging_dir/toolchain-aarch64_cortex-a53_gcc-8.4.0_-/stamp
touch /opt/apps/entware/build_dir/toolchain-aarch64_cortex-a53_gcc-8.4.0_-/linux-3.10.108/.built
touch /opt/apps/entware/staging_dir/toolchain-aarch64_cortex-a53_gcc-8.4.0_-/stamp/.linux_installed
make[2]: Leaving directory '/opt/apps/entware/toolchain/kernel-headers'
time: toolchain/kernel-headers/compile#12.12#3.71#14.08
make[2]: Entering directory '/opt/apps/entware'
make[2]: *** toolchain//headers: No such file or directory.  Stop.
make[2]: Leaving directory '/opt/apps/entware'
time: toolchain//headers/compile#0.00#0.00#0.00
    ERROR: toolchain//headers failed to build.
make[1]: *** [toolchain/Makefile:97: toolchain//headers/compile] Error 1
make[1]: Leaving directory '/opt/apps/entware'
make: *** [/opt/apps/entware/include/toplevel.mk:230: toolchain/install] Error 2

Кто встречался с подобной проблемой? В каком направлении искать решение?
Повторюсь ничего не менял - только заново запустил пересборку.

Edited by Zeleza
Link to comment
Share on other sites

Строго по wiki:

git clone https://github.com/Entware/Entware.git && cd Entware
make package/symlinks
cp -v configs/mipsel-3.4.config .config
make tools/install
make toolchain/install
make target/compile

Галки в `make menuconfig` трогать незачем, просто собирайте нужный пакет:

make V=s package/<name>/compile 

Можно руководствоваться документацией по OpenWrt Buildroot'у.

  • Thanks 1
Link to comment
Share on other sites

Доброго вечера,

Без флага export FORCE_UNSAFE_CONFIGURE=1 на Debian 11.3 не хотелось собираться. 
Но потом все удалил и собрал по новой, снова и уже с флагом.

Благодарю за науку.
Все удалось.  

Link to comment
Share on other sites

В 2018 писали

Цитата
3. Before you compile the toolchain if you are doing this as root like me set this variable to avoid errors.  
   set FORCE_UNSAFE_CONFIGURE=1
   export set FORCE_UNSAFE_CONFIGURE=1 

Может Вы под рутом собирали? Это не стоит делать!

Link to comment
Share on other sites

Доброго утра,

8 часов назад, zyxmon сказал:

Может Вы под рутом собирали? Это не стоит делать!

Как говорят: "век живи - век учись.")
Еще раз благодарю. 

Link to comment
Share on other sites

Доброго вечера,

Мудрые люди прошу помощи посильной в сборке пакета. 
Все сделал по написанному, НЕ из под root

git clone https://github.com/Entware/Entware.git && cd Entware
make package/symlinks
cp -v configs/mipsel-3.4.config .config
make tools/install
make toolchain/install
make target/compile
make V=s package/<name>/compile 

Все этапы проходят без ошибок, но пакета в собранном виде (ipk) в папке ./bin/targets/mipsel-3.4/generic-glibc/packages/ не появляется.

Куда посмотреть, что делаю не так?

Link to comment
Share on other sites

Все нашел, вопрос снимается - проблема была в не очевидной ошибке в Makefile самого пакета - не указал версию пакета в переменной PKG_VERSION.
Отловить смог по дампу cat ./logs/package/utils/<пакет>/dump.txt 

Edited by Zeleza
Link to comment
Share on other sites

6 минут назад, zyxmon сказал:

Пакет выбран в конфиге? make menuconfig

Да, конечно, хотя @Александр Рыжов выше написал, что никакие галки трогать не стоит. )
Если не трудно, проясните этот момент пожалуйста, чтобы в голове все на свои места встало.

В принципе нужно галку ставить или нет в menuconfig напротив собираемого пакета

Edited by Zeleza
Link to comment
Share on other sites

1 минуту назад, Zeleza сказал:

В принципе нужно галку ставить или нет в menuconfig напротив собираемого пакета

Если собираете новый пакет, то нужно его выбрать в menuconfig

  • Thanks 1
Link to comment
Share on other sites

  • 2 months later...
В 21.11.2016 в 18:24, TheBB сказал:
make tools/install
make toolchain/install
make target/compile
make package/compile

Одна особенность - так не создаётся Packages.gz. Лучше make.

Link to comment
Share on other sites

1 минуту назад, Uzov сказал:

Одна особенность - так не создаётся Packages.gz. Лучше make.

или

make package/index

 

Link to comment
Share on other sites

  • 3 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...