digikam и gphoto

Добрый день!

Подскажите, как правильно пересобирать gphoto и digikam?
Я делаю так:
- прописываю в /etc/make.conf строчку
CAMERAS="ptp2"
- устанавливаю gphoto: # emerge -av gphoto2
- устанавливаю digikam: # emerge -av digikam

Всё ли я правильно делаю? Порядок установки подсказал знакомый, но я нигде не видел среди флагов выбор CAMERAS. Как правильно установить digikam?
Работать необходимо с фотоаппаратом CANON PowerShot A570 IS.

see:

less /usr/portage/profiles/desc/cameras.desc ;-)

Для gphoto2 критично libgphoto2 -- именно её и нужно пересобрать с правильными флагами CAMERAS. Также от этой либы условно зависят kdegraphics и sane-backends, которые в свою очередь могут использоваться digikam. Таким образом добавляем:

CAMERAS="ptp2"
USE="gphoto2"
в /etc/make.conf

после чего:
emerge -vauDN world

Поправьте, если ошибаюсь, но

Поправьте, если ошибаюсь, но если не указывать никакую определённую камеру, libgphoto2 соберётся с поддержкой всех возможных камер.

Я Gentoo & Funtoo

Это легко проверить

emerge --info | grep USE=
emerge -vp1 libgphoto2

А как это объяснить: #equery

А как это объяснить:

#equery f media-libs/libgphoto2 | grep '/usr/lib'
/usr/lib
/usr/lib/libgphoto2
/usr/lib/libgphoto2.la
/usr/lib/libgphoto2.so
/usr/lib/libgphoto2.so.2
/usr/lib/libgphoto2.so.2.4.0
/usr/lib/libgphoto2/2.4.3
/usr/lib/libgphoto2/2.4.3/adc65.la
/usr/lib/libgphoto2/2.4.3/adc65.so
/usr/lib/libgphoto2/2.4.3/agfa_cl20.la
/usr/lib/libgphoto2/2.4.3/agfa_cl20.so
/usr/lib/libgphoto2/2.4.3/aox.la
/usr/lib/libgphoto2/2.4.3/aox.so
/usr/lib/libgphoto2/2.4.3/barbie.la
/usr/lib/libgphoto2/2.4.3/barbie.so
/usr/lib/libgphoto2/2.4.3/canon.la
/usr/lib/libgphoto2/2.4.3/canon.so
/usr/lib/libgphoto2/2.4.3/casio_qv.la
/usr/lib/libgphoto2/2.4.3/casio_qv.so
/usr/lib/libgphoto2/2.4.3/clicksmart310.la
/usr/lib/libgphoto2/2.4.3/clicksmart310.so
/usr/lib/libgphoto2/2.4.3/digigr8.la
/usr/lib/libgphoto2/2.4.3/digigr8.so
/usr/lib/libgphoto2/2.4.3/digita.la
/usr/lib/libgphoto2/2.4.3/digita.so
/usr/lib/libgphoto2/2.4.3/dimagev.la
/usr/lib/libgphoto2/2.4.3/dimagev.so
/usr/lib/libgphoto2/2.4.3/dimera3500.la
/usr/lib/libgphoto2/2.4.3/dimera3500.so
/usr/lib/libgphoto2/2.4.3/directory.la
/usr/lib/libgphoto2/2.4.3/directory.so
/usr/lib/libgphoto2/2.4.3/enigma13.la
/usr/lib/libgphoto2/2.4.3/enigma13.so
/usr/lib/libgphoto2/2.4.3/fuji.la
/usr/lib/libgphoto2/2.4.3/fuji.so
/usr/lib/libgphoto2/2.4.3/gsmart300.la
/usr/lib/libgphoto2/2.4.3/gsmart300.so
/usr/lib/libgphoto2/2.4.3/hp215.la
/usr/lib/libgphoto2/2.4.3/hp215.so
/usr/lib/libgphoto2/2.4.3/iclick.la
/usr/lib/libgphoto2/2.4.3/iclick.so
/usr/lib/libgphoto2/2.4.3/jamcam.la
/usr/lib/libgphoto2/2.4.3/jamcam.so
/usr/lib/libgphoto2/2.4.3/jd11.la
/usr/lib/libgphoto2/2.4.3/jd11.so
/usr/lib/libgphoto2/2.4.3/jl2005a.la
/usr/lib/libgphoto2/2.4.3/jl2005a.so
/usr/lib/libgphoto2/2.4.3/kodak_dc120.la
/usr/lib/libgphoto2/2.4.3/kodak_dc120.so
/usr/lib/libgphoto2/2.4.3/kodak_dc210.la
/usr/lib/libgphoto2/2.4.3/kodak_dc210.so
/usr/lib/libgphoto2/2.4.3/kodak_dc240.la
/usr/lib/libgphoto2/2.4.3/kodak_dc240.so
/usr/lib/libgphoto2/2.4.3/kodak_dc3200.la
/usr/lib/libgphoto2/2.4.3/kodak_dc3200.so
/usr/lib/libgphoto2/2.4.3/kodak_ez200.la
/usr/lib/libgphoto2/2.4.3/kodak_ez200.so
/usr/lib/libgphoto2/2.4.3/konica.la
/usr/lib/libgphoto2/2.4.3/konica.so
/usr/lib/libgphoto2/2.4.3/konica_qm150.la
/usr/lib/libgphoto2/2.4.3/konica_qm150.so
/usr/lib/libgphoto2/2.4.3/largan.la
/usr/lib/libgphoto2/2.4.3/largan.so
/usr/lib/libgphoto2/2.4.3/lg_gsm.la
/usr/lib/libgphoto2/2.4.3/lg_gsm.so
/usr/lib/libgphoto2/2.4.3/mars.la
/usr/lib/libgphoto2/2.4.3/mars.so
/usr/lib/libgphoto2/2.4.3/mustek.la
/usr/lib/libgphoto2/2.4.3/mustek.so
/usr/lib/libgphoto2/2.4.3/panasonic_coolshot.la
/usr/lib/libgphoto2/2.4.3/panasonic_coolshot.so
/usr/lib/libgphoto2/2.4.3/panasonic_dc1000.la
/usr/lib/libgphoto2/2.4.3/panasonic_dc1000.so
/usr/lib/libgphoto2/2.4.3/panasonic_dc1580.la
/usr/lib/libgphoto2/2.4.3/panasonic_dc1580.so
/usr/lib/libgphoto2/2.4.3/panasonic_l859.la
/usr/lib/libgphoto2/2.4.3/panasonic_l859.so
/usr/lib/libgphoto2/2.4.3/pccam300.la
/usr/lib/libgphoto2/2.4.3/pccam300.so
/usr/lib/libgphoto2/2.4.3/pccam600.la
/usr/lib/libgphoto2/2.4.3/pccam600.so
/usr/lib/libgphoto2/2.4.3/polaroid_pdc320.la
/usr/lib/libgphoto2/2.4.3/polaroid_pdc320.so
/usr/lib/libgphoto2/2.4.3/polaroid_pdc640.la
/usr/lib/libgphoto2/2.4.3/polaroid_pdc640.so
/usr/lib/libgphoto2/2.4.3/polaroid_pdc700.la
/usr/lib/libgphoto2/2.4.3/polaroid_pdc700.so
/usr/lib/libgphoto2/2.4.3/ptp2.la
/usr/lib/libgphoto2/2.4.3/ptp2.so
/usr/lib/libgphoto2/2.4.3/ricoh.la
/usr/lib/libgphoto2/2.4.3/ricoh.so
/usr/lib/libgphoto2/2.4.3/ricoh_g3.la
/usr/lib/libgphoto2/2.4.3/ricoh_g3.so
/usr/lib/libgphoto2/2.4.3/samsung.la
/usr/lib/libgphoto2/2.4.3/samsung.so
/usr/lib/libgphoto2/2.4.3/sierra.la
/usr/lib/libgphoto2/2.4.3/sierra.so
/usr/lib/libgphoto2/2.4.3/sipix_blink2.la
/usr/lib/libgphoto2/2.4.3/sipix_blink2.so
/usr/lib/libgphoto2/2.4.3/sipix_web2.la
/usr/lib/libgphoto2/2.4.3/sipix_web2.so
/usr/lib/libgphoto2/2.4.3/smal.la
/usr/lib/libgphoto2/2.4.3/smal.so
/usr/lib/libgphoto2/2.4.3/sonix.la
/usr/lib/libgphoto2/2.4.3/sonix.so
/usr/lib/libgphoto2/2.4.3/sony_dscf1.la
/usr/lib/libgphoto2/2.4.3/sony_dscf1.so
/usr/lib/libgphoto2/2.4.3/sony_dscf55.la
/usr/lib/libgphoto2/2.4.3/sony_dscf55.so
/usr/lib/libgphoto2/2.4.3/soundvision.la
/usr/lib/libgphoto2/2.4.3/soundvision.so
/usr/lib/libgphoto2/2.4.3/spca50x.la
/usr/lib/libgphoto2/2.4.3/spca50x.so
/usr/lib/libgphoto2/2.4.3/sq905.la
/usr/lib/libgphoto2/2.4.3/sq905.so
/usr/lib/libgphoto2/2.4.3/stv0674.la
/usr/lib/libgphoto2/2.4.3/stv0674.so
/usr/lib/libgphoto2/2.4.3/stv0680.la
/usr/lib/libgphoto2/2.4.3/stv0680.so
/usr/lib/libgphoto2/2.4.3/sx330z.la
/usr/lib/libgphoto2/2.4.3/sx330z.so
/usr/lib/libgphoto2/2.4.3/topfield.la
/usr/lib/libgphoto2/2.4.3/topfield.so
/usr/lib/libgphoto2/2.4.3/toshiba_pdrm11.la
/usr/lib/libgphoto2/2.4.3/toshiba_pdrm11.so
/usr/lib/libgphoto2/print-camera-list
/usr/lib/libgphoto2_port
/usr/lib/libgphoto2_port.la
/usr/lib/libgphoto2_port.so
/usr/lib/libgphoto2_port.so.0
/usr/lib/libgphoto2_port.so.0.8.0
/usr/lib/libgphoto2_port/0.8.0
/usr/lib/libgphoto2_port/0.8.0/disk.la
/usr/lib/libgphoto2_port/0.8.0/disk.so
/usr/lib/libgphoto2_port/0.8.0/ptpip.la
/usr/lib/libgphoto2_port/0.8.0/ptpip.so
/usr/lib/libgphoto2_port/0.8.0/serial.la
/usr/lib/libgphoto2_port/0.8.0/serial.so
/usr/lib/libgphoto2_port/0.8.0/usb.la
/usr/lib/libgphoto2_port/0.8.0/usb.so
/usr/lib/pkgconfig
/usr/lib/pkgconfig/libgphoto2.pc
/usr/lib/pkgconfig/libgphoto2_port.pc

P.S. Никакие камеры специально не настраивал

Я Gentoo & Funtoo

Если только на уровне предположения...

Возможно когда-то давным давно (!!!), portage не маскировал значение CAMERAS подобно ALSA_PCM_PLUGINS или APACHE2_MODULES. И при установке пакета было установлено всё, что прописано в этой переменной. Но потом поведение этой USE_EXPAND было изменено, но уже собранный пакет в системе остался. Немножко вариации на тему: в результате эволюции дерева портежей (ебилда libgphoto2), раньше, если CAMERAS="", оно собиралось со всеми возможными камерами. А может оно и сейчас так -- в таком случае вы правы! :)

UPD: Нашёл - вот оно! И ещё: 01 Oct 2007

пофиксил в профилях портежей cameras.desc, которые стали поддерживаться через IUSE_CAMERAS начиная с libgphoto-2.4.0. Он же добавил туда новые описания камер 04 Aug 2008 и 29 Nov 2008. Так что многое зависит от того, насколько давно Вы обновлялись... ;-)

Раза два-три

klark73 написал(а):
Так что многое зависит от того, насколько давно Вы обновлялись... ;-)

Раза два-три в неделю. В моём предыдущем посте видна версия libgphoto2 - 2.4.3

Я Gentoo & Funtoo

Значит не в частоте, а в особенности

процесса обновления дело. Но суть вашего вопроса в точности объясняется выше приведённой ссылкой. Там, если глянуть сам патч, хорошо видно, что даже сейчас, если camers="", то оно будет ="all", что очевидно не есть гуд.

Подобным образом ведёт

klark73 написал(а):
процесса обновления дело. Но суть вашего вопроса в точности объясняется выше приведённой ссылкой. Там, если глянуть сам патч, хорошо видно, что даже сейчас, если camers="", то оно будет ="all", что очевидно не есть гуд.

Подобным образом ведёт себя и alsa-lib:

#emerge -pv alsa-lib
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild   R   ] media-libs/alsa-lib-1.0.18  USE="midi python -alisp -debug -doc" ALSA_PCM_PLUGINS="adpcm 
alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul 
mulaw multi null plug rate route share shm softvol"

Но здесь хотя бы видно, что эти плугины установились.
libgphoto2 отличает "скромность":

#emerge -pv libgphoto2 
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild   R   ] media-libs/libgphoto2-2.4.3  USE="exif hal nls -bonjour -doc" CAMERAS="-adc65 -agfa_cl20
 -aox -barbie -canon -casio_qv -clicksmart310 -digigr8 -digita -dimagev -dimera3500 -directory -enigma13 -fuji
 -gsmart300 -hp215 -iclick -jamcam -jd11 -jl2005a -kodak_dc120 -kodak_dc210 -kodak_dc240 -kodak_dc3200 
-kodak_ez200 -konica -konica_qm150 -largan -lg_gsm -mars -mustek -panasonic_coolshot -panasonic_dc1000-panasonic_dc1580 
-panasonic_l859 -pccam300 -pccam600 -polaroid_pdc320 -polaroid_pdc640 -polaroid_pdc700 -ptp2 -ricoh -ricoh_g3 
-samsung -sierra -sipix_blink -sipix_blink2 -sipix_web2 -smal -sonix -sony_dscf1 -sony_dscf55 -soundvision -spca50x 
-sq905 -stv0674 -stv0680 -sx330z -template -topfield -toshiba_pdrm11"

Я Gentoo & Funtoo

Да там в самом ебилде до

Да там в самом ебилде до тупости простой алгоритм. Если все флаги камер выключены, то libgphoto2 будет собираться с единственным флагом "all", что по сути равнозначно включению сразу всех флагов. Так что в исходном посте вы оказались абсолютно правы! Обратите внимание на начало pkg_setup() в ебилде версии 2.4.3. Примечательно что апстрим libgphoto2 не будет решать проблемы, если не было попыток решить проблему собрать сначала с поддержкой всех камер! В src_configure(): [ -z $cameras ] && cameras="all", что вообщем-то и объясняет такую "скромность" (либа будет собрана с --with-drivers=all, но это ни в коей мере не повлияет в обратную сторону на USE-флаги/CAMERAS).

Логика портежей тут

Логика портежей тут действительно не совсем понятна. Лишний повод укусить gentoo в больное место. Всё дело в постепенности и не однообразности эволюции! =))) Многое зависит от выбранного профиля и конкретных ебилдов, а также того, что прописано в /etc/make.conf. В совокупности - это понимание логики "автомата", котрый с одной стороны практичен, с другой - если его логика не очевидна, то и посыл "вы сами управляете всем и вся" не будет соблюдён. До тех пор, пока не поймёшь, как работает этот автомат.

Вот здесь как раз хороший (но не единственный) пример. Ряд USE_EXPAND-переменных в выбранном профиле изначально пуст, как в случае с CAMERAS. В случае же с APACHE2_MODULES или ALSA_PCM_PLUGINS - они изначально "набиты по максимуму". Вот отсюда и растут ноги этой "скромности"... =)))

Проблема была в отсутствии

Проблема была в отсутствии поддержки USB в ядре. Сейчас всё вклюсил и по идее с USB должно работать всё нормально. Я пересобрал libgphoto и digikam. Пересобрать gphoto2 не удалось. Ошибки. Пока решил оставить такой, какой есть.
Сейчас камера определяется, но работать с ней digikam не хочет. Автоопределение определяет камеру Canon PowerShot A570 IS (PTP mode). Но как только пытаешься сделать Импорт с камеры выдаёт ошибку, что подключиться не удалось.

bodro@bodro ~ $ dmesg | tail
usb 1-2: configuration #1 chosen from 1 choice
usb 1-2: adding 1-2:1.0 (config #1, interface 0)
usb 1-2:1.0: uevent
drivers/usb/core/inode.c: creating file '004'
usb 1-2: New USB device found, idVendor=04a9, idProduct=314c
usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-2: Product: Canon Digital Camera
usb 1-2: Manufacturer: Canon Inc.
usb 1-2: SerialNumber: 0CEB6547F8E2487CAC240A77F3C0C64F
hub 1-0:1.0: state 7 ports 2 chg 0000 evt 0004

Ну вроде бы всё есть. Так в чём причина что не работает?

Может быть в этом:

"Пересобрать gphoto2 не удалось"

в конечном итоге всё упирается в неё...

А ты можешь мне объяснить

А ты можешь мне объяснить цепочку работу этой всей системы?
Как её понимаю я:
libgphoto2 работает непосредственно с камерой. digikam занимается просто импортом из папок, редактированием и прочими вещами. Кароче, просто предоставляет удобный интерфейс. Если что-то нужно сделать с камерой, то он обращается к libgphoto2. А какое место в этой цепочке занимает gphoto2?

Ведь CAMERAS для libgphoto2.
digikam при сборке ничего не говорит об использовании флага gphoto2.
А если ставить gphoto2, то он ничего не говорит про libgphoto2.

Объясни, пожалуйста, как это работает?

Дерево зависимостей я уже описал в первом ответе...

Но вы и сами можете в этом убедиться:

equery d =media-libs/libgphoto2-2.4.1-r1
equery g --depth=1 =kde-base/kamera-3.5.9
equery g --depth=1 =media-gfx/gphoto2-2.4.3
equery g --depth=1 =kde-base/kdegraphics-3.5.9
equery g --depth=1 =media-gfx/digikam-0.9.4_rc1

Судя по документации, gphoto2 — command-line gphoto2 client.
А вот digiKam зависит от всего выше перечисленного, кроме этой консольной тулзы.
Самое лучшее объяснение - в этой самой доке, там всё ясно и подробно.
Кстати, есть даже толковый рисунок и примеры fdi для hotplug helper...

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".