LINUX.ORG.RU

Сообщения Andrew-R

 

Библиотека libexiv2 0.27 перешла на сборку с Cmake и слегка поменяла API

https://github.com/Exiv2/exiv2 Bump Version to 0.27.0.3

В общем обновился до последней версии exiv2 а там ... пришлось править слакбилд и пару приложений: nufraw и geeqie

кусок слакбилда:

# ./configure \
#  --prefix=/usr \
#  --libdir=/usr/lib${LIBDIRSUFFIX} \
#  --sysconfdir=/etc \
#  --localstatedir=/var \
#  --mandir=/usr/man \
#  --enable-shared=yes \
#  --enable-static=no \
#  --enable-xmp \
#  --enable-video \
#  --enable-webready \
#  --without-ssh \
#  --build=$ARCH-slackware-linux || exit 1

cmake \
  -DCMAKE_INSTALL_PREFIX=/usr \
  -DCMAKE_INSTALL_MANDIR=/usr/man \
  -DBUILD_SHARED_LIBS=ON \
  -DEXIV2_ENABLE_VIDEO=ON \
    . || exit 1

nufraw 0.42

--- nufraw_exiv2.cc.orig        2016-09-05 17:24:50.000000000 +0300
+++ nufraw_exiv2.cc     2018-12-01 06:47:43.196751993 +0300
@@ -67,7 +67,7 @@
         if (exifData.empty()) {
             std::string error(uf->filename);
             error += ": No Exif data found in the file";
-            throw Exiv2::Error(1, error);
+            throw Exiv2::Error(Exiv2::kerErrorMessage, error);
         }

         /* List of tag names taken from exiv2's printSummary() in actions.cpp */

geeqie git 969791e9521aeffd61d67b3c2d17ccbff98f00d6

diff --git a/src/exiv2.cc b/src/exiv2.cc
index b3c80657..159992ca 100644
--- a/src/exiv2.cc
+++ b/src/exiv2.cc
@@ -24,6 +24,7 @@

 #include <exiv2/image.hpp>
 #include <exiv2/exif.hpp>
+#include <exiv2/exiv2.hpp>
 #include <iostream>
 #include <string>

@@ -374,7 +375,7 @@ public:
 #endif
                        Exiv2::Image *image = imageData_->image();

-                       if (!image) throw Exiv2::Error(21);
+                       if (!image) throw Exiv2::Error(Exiv2::kerGeneralError, 21);
                        image->setExifData(exifData_);
                        image->setIptcData(iptcData_);
 #if EXIV2_TEST_VERSION(0,16,0)
@@ -449,6 +450,8 @@ extern "C" {


 void exif_init(void)
+
+#define EXV_PACKAGE "exiv2"
 {
 #ifdef EXV_ENABLE_NLS
        bind_textdomain_codeset (EXV_PACKAGE, "UTF-8");

Пачти вроде разработчикам отправил, хоть это и хаки (без проверки версии).

Andrew-R
()

Кажется, я нашёл баг в dmix.

https://bugzilla.kernel.org/show_bug.cgi?id=200013

Кто-нибудь может на чистой АЛСА попробовать одновременно xmms и mplayer запустить? У меня начиная с alsa-lib 1.1.2 видео через секунд 400-500-600 начинает тормозить (!). Пока пробую разные варианты, которые мне Такаши (разработчик) кидает.

 ,

Andrew-R
()

Если у вас плохо работает qemu 2.12 с -M q35

..то его желательно запатчить. Там были два как минимум бага - один - с подвисанием эмулируемого SATA контроллера, и второй - с новой дефолтной сетевухой.

http://lists.nongnu.org/archive/html/qemu-devel/2018-05/msg07141.html («Re: [Qemu-devel] [Qemu-block] [PATCH 2/3] ahci: fix PxCI register race»)

http://lists.nongnu.org/archive/html/qemu-devel/2018-05/msg04852.html («Re: [Qemu-devel] [PATCH] e1000e: Do not auto-clear ICR bits which aren't set in EIAC»)

Я вроде как запатчил, теперь какой-нибудь kde neon live dvd работает.

Перемещено leave из talks

Andrew-R
()

У кого-нибудь есть Blu Ray проигрыватель?

Аппаратный ....

А Линукс тут при том, что я решил посмотреть как Cinelerra-GG делает BD рендер. Делает, если немного скрипт записи поправить. Правда, у меня в качестве теста использовался ~100 Мб клип (после кодирования Cin получился m2ts с h264/ac3 внутри), на минуту всего.

Обновил udftools отсюда, https://github.com/pali/udftools и получил неправильную работу скрипта, он создал udffs с размером блока в 512 байт, а было нужно в 2048. Это исправилось ключиком, пока Синелерра кодила, я ей скрипт подправил:

 #!/bin/bash -ex
PATH=$PATH:/usr/lib/cin
mkdir -p $1/udfs
sz=`du -cb $1/bd.m2ts* | tail -1 | sed -e 's/[  ].*//'`
blks=$((sz/2048 + 4096))
rm -f $1/bd.udfs
mkudffs -b 2048 $1/bd.udfs $blks
mount -t udf -o loop $1/bd.udfs $1/udfs
bdwrite $1/udfs $1/bd.m2ts*
umount $1/udfs
echo To burn bluray, load writable media and run:
echo for WORM: growisofs -dvd-compat -Z /dev/bd=$1/bd.udfs
echo for RW:   dd if=$1/bd.udfs of=/dev/bd bs=2048000
kill $$

Да, оно прибивает себя в конце процесса.

В общем у меня два вопроса: Что будет, если такой udfs образ записать на DVD? А на BD-R? Его аппаратные плееры разной степени древности съедят?

Кто может проверить?

Andrew-R
()

CA0132 в linux (Sound Blaster Z) - 2018

почему-то не могу добавить сообщение в старую тему CA0132 в linux

Смотрел LKML, там вроде патчи под эту карту проскакивают, утверждается что _теперь_ работают все входы-выходы и эффектами можно рулить.

https://lkml.org/lkml/2018/5/8/716

From  Connor McAdams <>
  Subject  [PATCH v5 00/13] ALSA: hda/ca0132: Patch Series for Recon3Di and Sound Blaster Z Support
  Date  Tue, 8 May 2018 13:20:00 -0400
  This patchset adds support for the Sound Blaster Z and the Recon3Di.
Andrew-R
()

Slackware, ncurses6, mc

Обновил я на свою голову ncurses. Почему-то получившийся файлик /terminfo/l/linux оказался кривоват для mc (midnight commander) в не-UTF8 консоли. А вот linux-vt в качестве TERM всё обратно исправил .... целый день бился :/

 

Andrew-R
()

Adventures in open-source world

Итак, решил я поправить старый баг в kdemultimedia, который меня давно добивал:

https://bugs.kde.org/show_bug.cgi?id=162248 (complete freeze of artsd at video playback) http://bugs.pearsoncomputing.net/show_bug.cgi?id=1905

фикс был простой, но в лоб не накладывался. https://git.trinitydesktop.org/cgit/tdemultimedia/commit/xine_artsplugin/xine...

пока ковырялся с ручным наложением патча, решил пересобрать xine-lib 1.1.21 под свой ffmpeg 2.8. Ну, так оно и собралось...

Во-первых оказалось что в новых binutils (>2.26) поломали линкинг, для старых (типа моего 4.9) gcc. https://forums.gentoo.org/viewtopic-t-1062042-highlight-xinelib.html

Не проблема, берём линкер gold и .... и натыкаемся на баг в libtools: https://github.com/frida/frida/blob/master/releng/patches/libtool-fixes.patch

Пересобрав libtool идём пересобирать xine-lib:

 cat ffmpeg_2.8.patch
--- src/combined/ffmpeg/ff_audio_decoder.c.orig 2012-01-18 23:30:08.000000000 +0400
+++ src/combined/ffmpeg/ff_audio_decoder.c      2017-12-05 07:22:36.095469666 +0300
@@ -46,6 +46,7 @@
 #include "ffmpeg_compat.h"

 #define AUDIOBUFSIZE (64 * 1024)
+#define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000 // 1 second of 48khz 32bit audio

 typedef struct {
   audio_decoder_class_t   decoder_class;
--- src/combined/ffmpeg/ff_video_decoder.c.orig 2012-06-08 17:36:36.000000000 +0400
+++ src/combined/ffmpeg/ff_video_decoder.c      2017-12-05 07:18:13.939466460 +0300
@@ -1055,7 +1055,7 @@
         this->bih.biWidth  = _X_BE_16(&this->buf[12]);
         this->bih.biHeight = _X_BE_16(&this->buf[14]);

-        this->context->sub_id = _X_BE_32(&this->buf[30]);
+    /*    this->context->sub_id = _X_BE_32(&this->buf[30]); */

         this->context->slice_offset = calloc(SLICE_OFFSET_SIZE, sizeof(int));
         this->slice_offset_size = SLICE_OFFSET_SIZE;
--- src/combined/ffmpeg/ffmpeg_decoder.h.orig   2012-01-18 23:30:08.000000000 +0400
+++ src/combined/ffmpeg/ffmpeg_decoder.h        2017-12-05 07:15:36.679464537 +0300
@@ -35,7 +35,7 @@

 typedef struct ff_codec_s {
   uint32_t          type;
-  enum CodecID      id;
+  enum AVCodecID      id;
   const char       *name;
 } ff_codec_t;


cat xcb_1.12.patch
--- configure.ac.orig   2012-06-09 20:40:10.000000000 +0400
+++ configure.ac        2017-12-05 10:40:15.659614712 +0300
@@ -911,7 +911,7 @@
 AC_ARG_WITH([xcb], AS_HELP_STRING([--without-xcb], [Doesn't build XCB video out plugins]))

 if test "x$with_xcb" != "xno"; then
-  PKG_CHECK_MODULES([XCB], [xcb-shape >= 1.0], [have_xcb="yes"], [have_xcb="no"])
+  PKG_CHECK_MODULES([XCB], [xcb xcb-shape >= 1.0], [have_xcb="yes"], [have_xcb="no"])
 fi

 AC_SUBST(XCB_CFLAGS)
--- src/video_out/Makefile.am.orig      2011-12-22 03:24:04.000000000 +0400
+++ src/video_out/Makefile.am   2017-12-05 10:42:03.315616029 +0300
@@ -117,7 +117,7 @@
 xineplug_vo_out_xcbshm_la_CFLAGS = $(VISIBILITY_FLAG) $(MLIB_CFLAGS) $(XCB_CFLAGS) $(XCBSHM_CFLAGS) -fno-strict-aliasing

 xineplug_vo_out_xcbxv_la_SOURCES = deinterlace.c video_out_xcbxv.c $(XCBOSD)
-xineplug_vo_out_xcbxv_la_LIBADD = $(XINE_LIB) $(PTHREAD_LIBS) $(LTLIBINTL) $(XCBXV_LIBS) $(XCB_LIBS)
+xineplug_vo_out_xcbxv_la_LIBADD = $(XINE_LIB) $(PTHREAD_LIBS) $(LTLIBINTL) $(XCBXV_LIBS) $(XCB_LIBS) $(XCBSHM_LIBS)
 xineplug_vo_out_xcbxv_la_CFLAGS = $(VISIBILITY_FLAG) $(XCB_CFLAGS) $(XCBXV_CFLAGS) -fno-strict-aliasing

 xineplug_vo_out_xshm_la_SOURCES = video_out_xshm.c $(X11OSD)

потом соотв. накладываем патч на kdemultimedia.

cat ~/botva/src/kdemultimedia-3.5.10/new_threading_fix.patch
--- kdemultimedia-3.5.10/xine_artsplugin/xinePlayObject_impl.cpp.orig   2017-12-05 11:44:47.783662069 +0300
+++ kdemultimedia-3.5.10/xine_artsplugin/xinePlayObject_impl.cpp        2017-12-05 11:53:47.191668666 +0300
@@ -683,9 +683,15 @@
     XFlush( display );
 }

+// FIXME
+// Due to somewhat recent changes in XLib threading this had to be changed to a polling routine
+// Specifically XNextEvent acquires a global XLib lock, preventing any other XLib methods (including those used in the Xine library) from executing
+// Seems this is a known problem in other projects as well, with the only real option being a rewrite to use xcb natively (not sure if that is even possible here):
+// http://mail-archives.apache.org/mod_mbox/harmony-dev/200905.mbox/%3C200905181317.n4IDHtGQ002008@d06av03.portsmouth.uk.ibm.com%3E
+
 void xinePlayObject_impl::eventLoop()
 {
-    XEvent event;
+/*    XEvent event;

     do
     {
@@ -720,10 +726,50 @@
            }
            pthread_mutex_unlock( &mutex );
        }
-    }
-    while (event.type != ClientMessage ||
-          event.xclient.message_type != xcomAtomQuit ||
-          event.xclient.window != xcomWindow);
+    } */
+
+       XEvent event;
+       bool eventReceived = false;
+
+       do {
+               if (XPending( display )) {
+                       XNextEvent( display, &event );
+                       eventReceived = true;
+
+                       if (event.type == Expose && event.xexpose.count == 0 && event.xexpose.window == visual.d) {
+                               pthread_mutex_lock( &mutex );
+
+                               if (stream != 0) {
+                                       xine_port_send_gui_data( vo_port,
+                                                       XINE_GUI_SEND_EXPOSE_EVENT,
+                                                       &event );
+                               }
+                               else {
+                                       clearWindow();
+                               }
+                               pthread_mutex_unlock( &mutex );
+                       }
+                       else if (event.type == shmCompletionType) {
+                               pthread_mutex_lock( &mutex );
+
+                               if (stream != 0) {
+                                       xine_port_send_gui_data( vo_port,
+                                                       XINE_GUI_SEND_COMPLETION_EVENT,
+                                                       &event );
+                               }
+                               pthread_mutex_unlock( &mutex );
+                       }
+               }
+               else {
+                       usleep(50000);
+                       eventReceived = false;
+               }
+       }
+       while (!eventReceived ||
+               event.type != ClientMessage ||
+               event.xclient.message_type != xcomAtomQuit ||
+               event.xclient.window != xcomWindow);
+
 }

 void xineVideoPlayObject_impl::x11WindowId( long window )

А прикол в том, что если собрать xine-lib без поддержки xcb, то kaffeine вылетает с ошибкой инциализации видеодрайверов! В общем и kaffeine (0.8.8) я тоже пересобрал ....

Так что увы нельзя не согласиться с мнением из gcc багзиллы: такие мелкие подставочки на каждом шагу не способствуют .....

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65248

Nix 2016-06-18 18:50:55 UTC Thirded. At the very least there should be a huge note in binutils NEWS about this. A subtle, unadvertised incompatibility of a new binutils with a not-very-old GCC is the sort of horror show that gives free software a bad name. At the very least make more noise about it.

Andrew-R
()

Кто такие «хорошие люди» и как их делать

Тема периодически всплывает, и тонет в упрощении. Наверное, хорошие люди, это которые стараются не делать другим плохо, в кратко-, средне- и долгосрочной перспективе. И весь их разум направлен на такую вот цель. Соотв., в обществе подобных..существ взаимопомощь вполне работает, а не как сейчас - ты делаешь кому-то хорошо, потом ещё кому-то, потом ещё кому-то..а в ответ ..хорошо если тишина. Но как таких людей делать? В реале наверное два основных фактора играют роль - отсутствие силы воли (признать свои ошибки, указать на ошибку друга...и остаться при этом друзьями, но исправив ошибку) это раз, а два...давление среды (или внутренее) которое никакой силой воли не поправить. наверное, именно из-за второго один современный писатель рекомендовал за попытку создания такой структуры подавления - ВМГС ((анти)утопии про Меганезию). С первым фактором ещё кажется можно что-то поделать..но..это требует неожиданно неожиданного упорства на протяжении ..ну как минимум пока дети вырастут (лет 15, не меньше). Причём во многих областях жизни, а не только в 1-2-х. Ну и вообще по большей части не понятно, что такое хорошо. Ещё недавно под «хорошо» понимали нечто, что я сейчас иначе чем махровым антропоцентризмом и назвать не могу. Так что моральный (? может лучше эмпатический или как-то так) прогресс по ходу необходим, как и реальная широта (х глубина) мышления. Причем с этическим (добрым) уклоном, когда этика боолее важна, чем скорость результата. Без внутренней честности ничего не получится, а у нас похоже умеют только выдрессировывать внешние признаки. Хорошие книги-мультики-фильмы это хорошо, но если вокруг - пц, нисколько не похожий на то, как должны жить люди - все это не поможет. Не думаю, что на ЛОРе кто-то любит задумываться поглубже на такие темы - но пусть будет ..в толксах.

Вот пара ссылок, из относительно недавнего:

https://theanarchistlibrary.org/library/the-anarchist-faq-editorial-collectiv...

http://rethinking-our-reality.blogspot.ru/2014/03/mobilizing-green-imaginatio...

http://www.derrickjensen.org/endgame/

(это разные люди писали, если что). К вопросу о нужности глобальных сетей...в ру-интернете о некоторых проблемах и поговорить особо не с кем - у нас о таком и на таком уровне не думают, то времени нет, то книги на английском, то в какую-нибудь ловушку воображения всем городом попали.....

Andrew-R
()

csdr, rpitx

Наткнулся тут на эту парочку, в ходе разборок чем же таким сдвинуть обычный спектр человеческой речи «наверх» по частоте. На моей 32-bit Slackware компилится и что-то делает, но Pi нету сейчас. Тут вроде пара товарищей всяким радио- и около того любительством занимаются - не подскажите, работает эта штука на низких (30-40 килогерц) частотах? В readme одно, в help'е другое, в коде вроде спецпроверок нет...

https://github.com/simonyiszk/csdr

https://github.com/F5OEO/rpitx

«rpitx is a radio transmitter for Raspberry Pi (B, B+, PI2, PI3 and PI zero) that transmits RF directly to GPIO. It can handle frequencies from 5 KHz up to 500 MHz.»

------


~/botva/src/rpitx$ rpitx

rpitx -0.2
Usage:
rpitx [-i File Input][-m ModeInput] [-f frequency output] [-s Samplerate] [-l] [-p ppm] [-h]
-m            {IQ(FileInput is a Stereo Wav contains I on left Channel, Q on right channel)}
              {IQFLOAT(FileInput is a Raw float interlaced I,Q)}
              {RF(FileInput is a (double)Frequency,Time in nanoseconds}
              {RFA(FileInput is a (double)Frequency,(int)Time in nanoseconds,(float)Amplitude}
              {VFO (constant frequency)}
-i            path to File Input
-f float      frequency to output on GPIO_18 pin 12 in khz : (130 kHz to 750 MHz),
--------------

Andrew-R
()

На LOR включили TLS SNI?

Потому как konqueror из кде 3.5.10 отвалился, пришлось патчить:

https://git.trinitydesktop.org/cgit/tdelibs/commit/?id=45cf7d13

Из плюсов - заработали (т.е. стали видны) сайты типа https://makefx.wordpress.com/ и https://base-n.de/webm/VP9 Sample.html (видео на них тут не работает, но хоть текст виден).

Ура ЛОР! ты заставил меня снова пересобрать kdelibs :}

Andrew-R
()

Экспериментировал с virgl, запустил но с артефактами

Итак, собрался я попробовать новый qemu с virgl
много всего собрал

Ядро - 4.5.0-rc3 под x86_64 с overlayfs и squashfs
Месу - commit 0bba5ca468cdcd1f6f9bb6736c8a75e43fbe0cd5 (OpenGL version string: 3.0 Mesa 11.2.0-devel (git-0bba5ca))
libepoxy 1.3.1 из слакбилда
virglrenderer - commit 7b776ec86658d1efeff8b92956a2f4b19c54e58c
qemu - commit a5af12871fd4601c44f08d9e49131e9ca13ef102 (Configured with: './configure' '--prefix=/usr' '--disable-gtk' '--enable-virglrenderer' '--enable-sdl' '--with-sdlabi=2.0' '--audio-drv-list=alsa,oss' '--host-cc=/opt/gcc49/bin/gcc' '--enable-opengl' '--extra-cflags=-O3 -march=i686 -mtune=native -m32 -Wno-maybe-uninitialized' - а при arch i486 оно не линковалось!)

SDL2 2.0.4 - из слакбилда.

И ..всё это НЕ заработало, крашилось!

Оказалось, нужно X server новее моего 1.12.x, видимо с поддержкой GLX_ARB_create_context, GLX_ARB_create_context_profile , а иначе все крашилось при попытке qemu начать использовать видеоадаптер даже в консоли (при загрузке в госте соотв. drm драйвера). Собрал новый Х-сервер, 1.18.1 Запускаю, уже не крашится, но и внутри что-то не работает. Оказалось, для гостя нужно Х сервер с поддержкой glamor для драйвера (встроенного) modesetting, а при сборке по умолчанию этого не происходило. Добавил --enable-glamor при конфигурации X server'а , закинул получившийся сервер на liveDVD, и наконец-то!

./x86_64-softmmu/qemu-system-x86_64 -cdrom /home/admin/slaxdvd-4.5.0-x64-test.iso -m 512 -display sdl,gl=on -enable-kvm -soundhw es1370 -usb -vga virtio -usbdevice mouse -cpu host

Заработало! Мышка правда почему-то внутри гостя бесилась, пока не указал usb mouse. И ещё, если на /dev/shm юзер, от которого делали startx и запускали сессию и проги не имеет прав записи - всё, связанное с dri3 (!) будет сегфолтится. Сам Х-сервер в моём случае видимо выживал за счет suid-бита. Это всё без systemd и прочих - на сильно проапгрейженой Слаквари.

Но увы, не работает пока это на nouveau/nv50 толком. Колёсики glxgears крутятся, а вот та же seamonkey превращается в мешанину из текста и артефактов.

http://ibin.co/2XCIj5vhR9l8

при LIBGL_ALWAYS_SOFTWARE=1 перед стартом qemu - всё становится медленно-медленно, зато без артефактов.

 

Andrew-R
()

Патч для kdenetwork-3.5.10

Для начала на gcc-4.8 оно вываливалось с недостатком памяти для компилятора:

http://mail-index.netbsd.org/pkgsrc-users/2015/05/01/msg021500.html http://lists.opensuse.org/archive/opensuse-bugs/2013-10/msg00261.html

реальный параметр -fno-diagnostics-show-caret - добавил его в CXXFLAGS

Потом наткнулся на ошибку компиляции в глубине kopete: https://forums.gentoo.org/viewtopic-t-888996-start-0.html

оттуда был выдран патч, и приведён к такому виду:

diff -u a/kopete/libkopete/avdevice/videodevice.h b/kopete/libkopete/avdevice/videodevice.h
--- a/kopete/libkopete/avdevice/videodevice.h   2012-04-03 22:50:35.000000000 +0200
+++ b/kopete/libkopete/avdevice/videodevice.h   2012-04-03 22:46:25.000000000 +0200
@@ -52,7 +52,7 @@

 #include <linux/fs.h>
 #include <linux/kernel.h>
-#include <linux/videodev.h>
+#include <libv4l1-videodev.h>
 #define VIDEO_MODE_PAL_Nc  3
 #define VIDEO_MODE_PAL_M   4
 #define VIDEO_MODE_PAL_N   5
--

Это на самом деле просто заглушка, оно собирается (требуя v4l-utils), но совершенно непонятно, работает ли.

Andrew-R
()

Патч для kdeutils-3.5.10 , исправляет поддержку 7zip архивов.

Да, видать не пользовался я совсем утилитками этими - такой баг пропустил!

Bug: https://bugs.kde.org/show_bug.cgi?id=172706

Оригинальный патч от АЛЬТ'а (для kdeutils 3.5.8) не накладывается, обошёлся таким минимумом:

--- ark/sevenzip.cpp.orig       2007-01-15 14:25:37.000000000 +0300
+++ ark/sevenzip.cpp    2015-09-13 12:38:50.821528560 +0300
@@ -40,6 +40,8 @@
 #include "arkutils.h"
 #include "filelistview.h"

+#include <qtextcodec.h>
+
 SevenZipArch::SevenZipArch( ArkWidget *gui, const QString &filename )
   : Arch( gui, filename ), m_nameColumnPos( -1 )
 {
@@ -241,14 +243,17 @@
   }
 }

-bool SevenZipArch::processLine( const QCString& _line )
+bool SevenZipArch::processLine( const QCString &_line )
 {
-  QCString line( _line );
+  QString line;
   QString columns[ 11 ];
   unsigned int pos = 0;
   int strpos, len;

-  columns[ 0 ] = line.right( line.length() - m_nameColumnPos +1);
+  QTextCodec *codec = QTextCodec::codecForLocale();
+  line = codec->toUnicode( _line );
+
+  columns[ 0 ] = line.right( line.length() - m_nameColumnPos);
   line.truncate( m_nameColumnPos );

   // Go through our columns, try to pick out data, return silently on failure
@@ -275,6 +280,8 @@
     columns[ curCol->colRef ] = line.mid( strpos, len );
   }

+  // Separated directories pass
+  if(columns[4].length() && columns[4][0] == 'D') return true;

   if ( m_dateCol >= 0 )
   {

Источник дополнительного вдохновения: https://git.trinitydesktop.org/cgit/tdeutils/commit/ark/sevenzip.cpp?id=1c849...

Andrew-R
()

Параметр Init= игнорируется для рамдиска, если в корне оного есть init?

Читал про солнечно-парусный фэйл. Решил показать, что Линукс (ядро + юзерспэйс) вполне работают вообще без доступа на запись в единственную корневую ФС.

Запустил qemu-system-x86_64 -initrd /boot/initrd-319-x64.gz -kernel /boot/bzImage-3.19-x64 -m 32 -append «init=/bin/ash»

и.... оно не сработало. Т.е. сам-то рамдиск выплюнул меня в ash, но там уже всё в rw перемонтировано, и другое ненужное мне сделано.

Собственноручно созданный рамдиск нормально съел параметр, дал шелл. Полез разбираться. Кажется, что если идёт загрузка из initrd/initramfs то первым выполняется дефолтный /init, а уж затем - проверяется пользовательский вариант (и если тот не сработал - несколько запасных).

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/init/main.c

Даже не знаю, баг это или фича.

Andrew-R
()

Эмулятор NeXT Computer - уже грузит ОС до GUI

Ветка форума со скриншотом:
http://www.nextcomputers.org/forums/viewtopic.php?t=2642&start=270

код:
http://sourceforge.net/p/previous/code/HEAD/tree/

Приглашаются разработчики (там ещё в FPU баги видимо есть, нет эмуляции мыши и звукового ДМА..и много чего ещё нету. Но прогресс уже на мониторе!).

Andrew-R
()

Slackware 13.37: pkgtool and arguments

Стоит у меня Слакварь на винте, и ещё из одной я собрался liveCD делать (ибо основную сиcтему довёл до того, что она на CD не влезает, только на DVD). Решил воспользоваться документированной возможностью:

pkgtool --target_dir /mnt/hdd3/admin/cdrom_build/root

И ничего не произошло. Совсем. Полез в код, а там вроде как процессинг аргументов в if (arg) then (присваиваем значения) else основной блок кода. Т.е. без аргументов оно запускается, а с ними - только парсит, не запуская ничего?! Поправил:

--- pkgtool_orig/sbin/pkgtool   2011-03-07 18:14:54.000000000 +0000
+++ /sbin/pkgtool       2011-11-11 20:02:22.151645177 +0000
@@ -200,15 +200,16 @@
   -source_dir | --source_dir)
    SOURCE_DIR=$2 ; shift 2 ;;
   -target_dir | --target_dir)
-   TARGET_DIR=$2
-   ADM_DIR=$TARGET_DIR/var/log
+   TARGET_DIR=$2
+   ADM_DIR=$TARGET_DIR/var/log
    shift 2 ;;
   -source_device | --source_device)
    SOURCE_DEVICE=$2 ; shift 2 ;;
   esac
  done
-else  # there were no arguments, so we'll get the needed information from the
+#else  # there were no arguments, so we'll get the needed information from the
       # user and then go on.
+fi
  CMD_START="true"
  rm -f $TMP/SeT*
  while [ 0 ]; do
-------

Там только пробелы лишние, их можно игнорировать. Вроде заработало?

У кого Слакварь - проверьте пожалуйста поведение оригинального pkgtool и патченного.

Andrew-R
()

[intel-gfx] Революция в производительности?

Однако phoronix запостил совершенно на первый взгляд первоапрельскую новость, про новую супер-быструю архитектуру ускорения на intel-овском драйвере.

Заглянул в xf86-video-intel - действительно, 53 килострочек с полотенцем описания. Обещают прирост скорости во многих операциях до 2 - 4 раз, (патологический случай - до 14 раз быстрее!) хотя есть и регрессии. И даже в 3d почему-то скорость поднялась (?)

World of Padman:
gen3 (800x600): 57.5 -> 96.2
gen4 (800x600): 47.8 -> 74.6

Суть - делать больше операций через 3-D hardware, а не через старый блиттер-интерфейс, который на сандибридж стал требовать всё больших затрат на синхронизацию. Второе новшество - основная работа по рендеренгу ведётся на CPU, и только в случае когда драйвер _абсолютно_ уверен в возможности аппартной акселерации на GPU (DRI and RENDER pixmaps) указанный GEM-объект переносится в видеопамять. Ещё там есть хитрый механизм подключения на лету пользовательских страниц, vmap - но он как я понимаю только на новых сандибридж-ах и работает. а вот остальное должно работать начиная с gen2 - i830

Коммит с описанием (требует патчей на Х сервер, их я пока не выудил):
http://cgit.freedesktop.org/xorg/driver/xf86-video-intel/commit/?id=bcef98af5...

sna: Introduce a new acceleration model.

PS: This depends upon the Xorg patchset «Remove the cacheing of the last scratch PixmapRec»

Upd:
http://www.mail-archive.com/xorg-devel@lists.x.org/msg21428.html



Andrew-R
()

[ffmpeg] H264/MPEG frame-level multi-threading.

http://git.videolan.org/?p=ffmpeg.git;a=commit;h=6a9c85944427e3c4355bce67d7f6...

author   Alexander Strange
Thu, 2 Jun 2011 17:15:58

У кого cpu > 1 - проверьте, быстрее стал ?

 

Andrew-R
()

ACPI и процессорный вентилятор

Поставил вот ubuntu 10.04 на старый комп, ещё в AT-шном корпусе - cel-400Mhz/256Mb ram/10 GB hdd/TNT2 Vanta 8Mb.

Запускалось ОК.

Скомпилировал ядро 2.6.38 (с небольшой коррекцией для nouveau, на 8 мб дефолтный 1280x1024x32 фрэймбуффер съедал слишком много памяти - убавил для консоли глубину цвета до 8 бит) - пришлось добавлять параметр acpi=force в загрузчик.

Обновил libdrm/mesa/xf86-video-nouveau до версий из git (предварительно обновил X-овые пакеты до максимума, который был в https://launchpad.net/~xorg-edgers/+archive/ppa) . Обновил xserver до 1.9-branch (Сам скомпилял и забил поверх пакетного 1.8)

И вдруг понял, что у меня отвалился вентилятор на процессоре. Т.е. при старте машины он есть, а после запуска ядра - останавливается. С перегревом машины и её ребутом или подвисанием.

Ох, ши .... сказал я, полез в дебри /sys , нашёл там решение:

echo 1 > /sys/devices/LNXSYSTM\:00/subsystem/drivers/fan/PNP0C0B\:00/thermal_cooling/cur_state

Крутится теперь ....забил строчку в /etc/rc.local

Однако, Ubuntu не очень любит, когда я поверх работающих Х-ов начал новые ставить ... gdm перезапустился. Но в целом вроде работает, правда система уже слегка поломана моим checkinstall, нормальное заворачивание в deb со всеми зависимостями я пока не осилил.

Картинки оно не достойно, ибо дефолтный IceWM.

PS: а вот ещё ppa: https://launchpad.net/~lucid-bleed/+archive/ppa Всё-таки особо тяжелые пакеты лучше компилять на чём-нибуть побыстрее.

Andrew-R
()

Хостинг для старой версии Deli Linux ?

Я вот тут сижу и билдю .....

/mnt/test/deli-0.7.x-ports/ports/ap/sox/sox-12.17.9-i386-1.tgz
/mnt/test/deli-0.7.x-ports/ports/ap/rexima/rexima-1.4-i386-1.tgz
/mnt/test/deli-0.7.x-ports/ports/ap/ghostscript/ghostscript-7.07.1-i386-4.tgz
/mnt/test/deli-0.7.x-ports/ports/ap/nano/nano-2.0.6-i386-1.tgz
/mnt/test/deli-0.7.x-ports/ports/base/tcp_wrappers/tcp_wrappers-7.6-i386-7.tgz
/mnt/test/deli-0.7.x-ports/ports/devel/libtool/libtool-1.5.22-i386-1.tgz
/mnt/test/deli-0.7.x-ports/ports/net/links2/links-2.1pre28-i386-1.tgz
/mnt/test/deli-0.7.x-ports/ports/xap/dillo/dillo-i18n-0.8.6-i386-4.tgz
/mnt/test/deli-0.7.x-ports/ports/xap/dillo/dillo-i18n-0.8.6-i386-5.tgz
/mnt/test/deli-0.7.x-ports/ports/xap/xchat/xchat-1.8.11-i386-2.tgz
/mnt/test/deli-0.7.x-ports/ports/opt/unrar/unrar-4.0.3-i386-1.tgz
/mnt/test/deli-0.7.x-ports/ports/opt/eject/eject-2.1.5-i386-1.tgz
/mnt/test/deli-0.7.x-ports/ports/opt/imagemagick/imagemagick-6.6.5-10-i386-1.tgz
/mnt/test/deli-0.7.x-ports/ports/opt/python/python-2.7.1-i386-1.tgz
/mnt/test/deli-0.7.x-ports/ports/opt/texinfo/texinfo-4.13a-i386-1.tgz
/mnt/test/deli-0.7.x-ports/ports/opt/apr/apr-1.4.2-i386-2.tgz
/mnt/test/deli-0.7.x-ports/ports/opt/neon/neon-0.29.5-i386-1.tgz
/mnt/test/deli-0.7.x-ports/ports/core/libpcre/libpcre-8.11-i386-1.tgz
/mnt/test/deli-0.7.x-ports/ports/core/readline/readline-6.1.2-i386-2.tgz
/mnt/test/deli-0.7.x-ports/ports/core/libgmp/libgmp-5.0.1-i386-1.tgz
/mnt/test/deli-0.7.x-ports/ports/core/libmpfr/libmpfr-3.0.0-p8-i386-1.tgz
/mnt/test/deli-0.7.x-ports/ports/core/libmpc/libmpc-0.8.2-i386-1.tgz
/mnt/test/deli-0.7.x-ports/ports/core/make/make-3.82-i386-1.tgz
/mnt/test/deli-0.7.x-ports/ports/core/db/db-4.8.30-i386-1.tgz

И куда бы это всё залить, чтобы добро не пропадало? (всё под Deli 0.7.2)

Andrew-R
()

RSS подписка на новые темы