Позавчера и сегодня не мог скачать видео с YouTube через yt-dlp. Блокировалось на доступе к rr1---sn-2vqgt5q-88vs.googlevideo.com. Сейчас запустил yt-dlp через Tor (через proxychains), и видео скачалось. Кто-нибудь с подобным сталкивался? Что это? Чебурнет шагает? Я с РФ.
Мотивационная часть
Надоело что GNU/Linux всё никак не становится топовой десктопной ОС. Или хотя бы одной из топовых. Да что уж там, даже 1% порог в Steam'е не преодолевает. Принципиальных ограничений для этого нет, кроме одного — бесплатность.
Надоело что никто ни за что не отвечает. Нет чёткой грани между поставщиком и клиентом. Нужно чтобы можно было просто заплатить чтобы всё работало, чтобы самому в это всё не вникать (Особенно когда ты не ITшник). Есть платные дистрибутивы с поддержкой, но то всего лишь мейнтейнеры, сами же понимаете, их влияние на исходный код и его понимание зачастую недостаточно глубокое. Наши деньги должны идти напрямую разработчикам конкретных вещей. Чтобы в случае успешного софта разработчик мог на полное рабочее время посвятить себя продукту.
Надоела неэффективность Open Source. О чём это я? О том, что если например ты разработчик софта A, хочешь задействовать сторонний функционал и имеешь два free&opensource варианта B и C для выбора. Ты же будешь оценивать их только с точки зрения функционала, и не с точки зрения трудозатрат, ведь они оба для тебя бесплатны! Это порождает неэффективные схемы... И мы видели как RedHat, проект Gnome, Mozilla или даже Debian принимали неоднозначные, с точки зрения нас пользователей, решения. Выкидывание старых привычных интерфейсов-функционалов, переход на новые необкатанные технологии. Если бы они дорожили нашими деньгами, они поостереглись такое лишний раз предпринимать.
Хочу платный Open Source. Чтобы софт был реальным товаром играющий по законам здорового капиталистического рынка. Но при этом был лишён недостатков closed-source модели.
Как я это представляю?
Мне кажется тут можно пойти по аналогии с hardware-миром. Ведь в конце 70ых начале 80ых был успешен Apple (и др.), который был олицетворением закрытой архитектуры, но потом появился открытый IBM PC, пошли штамповаться его клоны... конкуренция, удешевление и вуаля, это уже не просто абсолютный лидер рынка, а даже само слово PC стало обозначать именно эту архитектуру.
Я вижу это так: (на примере существующего софта, но легко переносится на случай разработки с нуля)
Есть открытая софтина. Мне нужно дописать к ней какой-то функционал и я это делаю. Документирую/рекламирую. Если надо — даю бесплатную демоверсию. Продаю полную (но закрытую) версию за например 0.5$. И вот ГЛАВНОЕ: обязуюсь при достижении n-ной суммы, например 50$ (т.е. при продаже ста людям), публично открыть мои изменения в исходном коде.
Потребитель может по документации, демо, опыту других потребителей (, или даже, будем честны, по пиратской копии) оценить стоят ли внесенные изменения всей суммы (50$) или же я требую себе слишком много.
Потребитель не обязан быть конечным. Потребитель может быть дистрибутивом (или вообще любым другим ПО). Дистрибутив будет тщательно выбирать детали для себя чтобы конкурировать по цене и качеству с другими такими же дистрибутивами. И мейнтейнеры дистрибутива естественно люди разбирающиеся в этих деталях. [Opensource vs closedsource] тут будут подобны [куче фирм собирающих компьютеры vs один Apple имеющий эксклюзивное право на сборку].
Также один такой платный опенсорс дистрибутив может сам «открыться» раньше чем откроются какие-либо из его деталей. Естественно дистростроители тогда выкладывают только то что сделали сами (напр. PKGBUILD'ы и другие скрипты сборки) плюс только те сторонние детали которые уже успели открыться. Остальное (пока не достигло нужной суммы покупок) остаётся закрытым.
Собираю простую программу использующую SDL2 под LSB 3.2:
ixuta[new3]$ lsbcc --lsb-verbose --lsb-modules=Multimedia --std=c99 -O counter.c entity.c game.c main.c random.c -o SD2pong `sdl2-config --cflags --static-libs` -lSDL2_image -ltiff -lz -ljpeg -lpng -lXrender -lXfixes
warning: dangerous include path /usr/include/SDL2
unrecognized gcc version: "4.6"
cc -o SD2pong -I /usr/include/SDL2 -I /usr/include/lsb3 --std=c99 -O counter.c entity.c game.c main.c random.c -D_REENTRANT -nodefaultlibs -L /usr/lib64/lsb3 -L /usr/lib/x86_64-linux-gnu -Wl,-Bstatic -lSDL2 -Wl,-Bdynamic -lpthread -lm -ldl -lasound -lm -ldl -lpthread -lX11 -lXext -Wl,-Bstatic -lXcursor -lXinerama -Wl,-Bdynamic -lXi -Wl,-Bstatic -lXrandr -lXss -lXxf86vm -Wl,-Bdynamic -lpthread -lrt -Wl,-Bstatic -lSDL2_image -ltiff -Wl,-Bdynamic -lz -ljpeg -lpng -lXrender -Wl,-Bstatic -lXfixes -Wl,-Bdynamic -lpthread -lpthread_nonshared -Wl,--dynamic-linker=/lib64/ld-lsb-x86-64.so.3 -L /usr/lib/gcc/x86_64-linux-gnu/4.6 -L/lib64 -L/usr/lib64 -Wl,--hash-style=sysv -lgcc -lm -lc -lc_nonshared -lgcc
In file included from /usr/include/lsb3/sys/types.h:4:0,
from /usr/include/SDL2/SDL_stdinc.h:34,
from /usr/include/SDL2/SDL_main.h:25,
from /usr/include/SDL2/SDL.h:67,
from counter.c:1:
/usr/include/lsb3/stddef.h:12:0: warning: "NULL" redefined [enabled by default]
/usr/include/SDL2/begin_code.h:137:0: note: this is the location of the previous definition
При проверке lsbappchk'ом оказывается что программа использует символ memcpy из GLIBC_2.14:
ixuta[new3]$ lsbappchk3 SD2pong 2>/dev/null | grep GLIBC
Symbol memcpy has version GLIBC_2.14 expecting GLIBC_2.2.5
Symbol memcpy has version GLIBC_2.14 expecting GLIBC_2.2.5
Вопрос: как узнать какая из прилинкованных библиотек использует этот символ чтобы я смог пересобрать её с нужной версией GLIBC?