Возможно ли для доморощенного "варить" разветвленную версию пакета?
Существует очень полезный программный пакет ( libdc1394), который я хотел бы использовать, однако необходимо внести некоторые изменения, и владельцы проекта sourceforge могут быть на каникулах летом. Если я разберусь с проектом, как мне получить домашний напиток для обслуживания моей модифицированной формулы? Я довольно новичок в программном обеспечении с открытым исходным кодом.
Также homebrew в настоящее время обслуживает бинарные бутылки существующего проекта. Для создания этих двоичных бутылок из разветвленной библиотеки способен ли homebrew создавать само здание, или мне нужно было бы скомпилировать его для создания двоичных файлов для различных систем OSX 10.X? Причина, по которой я спрашиваю, состоит в том, что./configure существующей библиотеки создает всевозможные проблемы в моей системе (но она должна работать на чьей-то системе).
Расположение погреба здесь, /usr/local/Cellar/libdc1394/2.2.2
и бинарные файлы находятся здесь: /usr/local/Cellar/libdc1394/2.2.2/lib
;
Содержание: libdc1394.22.dylib, libdc1394.dylib, libdc1394.a, pkgconfig
Расположение бутылки, которую я вылил, в кеш, содержащий двоичные файлы:
/Library/Caches/Homebrew/libdc1394-2.2.2.mavericks.bottle.tar.gz
Вот существующая формула доморощенного, сценарий ruby (/usr/local/Library/Formula/libdc1394.rb
):
require "formula"
class Libdc1394 < Formula
homepage "http://damien.douxchamps.net/ieee1394/libdc1394/"
url "https://downloads.sourceforge.net/project/libdc1394/libdc1394-2/2.2.2/libdc1394-2.2.2.tar.gz"
sha1 "13958c3cd0709565b5e4a9012dcf2a9b710264e2"
bottle do
cellar :any
sha1 "063e3babff63f462de1b7d053690ae3f0e250bcb" => :mavericks
sha1 "52d23eb6514dfc5c9aa554bade7dac92deefec70" => :mountain_lion
sha1 "9f703002e33433885f3f2cb9e4a4006585282a01" => :lion
end
depends_on "sdl"
# fix issue due to bug in OSX Firewire stack
# libdc1394 author comments here:
# http://permalink.gmane.org/gmane.comp.multimedia.libdc1394.devel/517
patch :DATA
def install
system "./configure", "--disable-dependency-tracking",
"--prefix=#{prefix}",
"--disable-examples",
"--disable-sdltest"
system "make install"
end
end
__END__
diff --git a/dc1394/macosx/capture.c b/dc1394/macosx/capture.c
index c7c71f2..8959535 100644
--- a/dc1394/macosx/capture.c
+++ b/dc1394/macosx/capture.c
@@ -150,7 +150,7 @@ callback (buffer_info * buffer, NuDCLRef dcl)
for (i = 0; i < buffer->num_dcls; i++) {
int packet_size = capture->frames[buffer->i].packet_size;
- if ((buffer->pkts[i].status & 0x1F) != 0x11) {
+ if (buffer->pkts[i].status && (buffer->pkts[i].status & 0x1F) != 0x11) {
dc1394_log_warning ("packet %d had error status %x",
i, buffer->pkts[i].status);
corrupt = 1;
1 ответ
Существует руководство по открытию запроса на объединение и его объединению, которое может вам помочь!
Патчи должны быть отправлены (но не обязательно приняты) в апстрим до того, как вы отправите запрос на удаление Homebrew. Если ваши изменения не представляют общего интереса, вам не нужно, чтобы Homebrew принял эти изменения, чтобы воспользоваться преимуществами системы сборки Homebrew; Вы можете написать или изменить свою формулу и указать Homebrew локально на файл.rb, например brew install ./my_formula.rb
, Вы также можете дать brew install
URL к файлу.rb.
Розлив производится сборщиком по просьбе сопровождающих Homebrew после того, как они приняли изменения в формулах.