From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Sun, 27 Feb 2011 20:17:27 +0300 From: Alexey Tourbin To: ALT Linux Team development discussions Message-ID: <20110227171727.GA25717@altlinux.org> References: <20110227143806.GD22224@altlinux.org> Mime-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Subject: Re: [devel] =?koi8-r?b?cGtnLWNvbmZpZyBSZXF1aXJlcy5wcml2YXRlIC0g0M/M?= =?koi8-r?b?3sndwSDTwdLBzt7JIMkg19LBx8kgzsHSz8TB?= X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Feb 2011 17:17:27 -0000 Archived-At: List-Archive: List-Post: On Sun, Feb 27, 2011 at 07:45:50PM +0300, Damir Shayhutdinov wrote: > > Новый план выхода из кризиса (реализован в 4.0.4-alt100.22): > > 1) Оставлять в зависимостях только Requires, а Requires.private убрать. > > 2) Продувать хедеры через /usr/bin/cpp и смотреть, какие ещё хедеры > > включаются, чтобы появились дополнительные зависимости на *-devel > > пакеты с хедерами.  Скрипт cpp.req был написан почти три года назад, > > но в нём не было необходимости, т.к. pkgconfig.req давал неплохой > > результат.  Никогда не знаешь, чего придётся доставать из штанин. > > Дядя Лёша, вопрос из зала - а как же быть с условными зависимостями? Учитываются только те файлы, которые реально включаются. Именно поэтому используется реальный /usr/bin/cpp. Идея реализации примерно такая: $ cpp `pkg-config --cflags xft` /usr/include/X11/Xft/Xft.h |grep ^# |head # 1 "/usr/include/X11/Xft/Xft.h" # 1 "" # 1 "" # 1 "/usr/include/X11/Xft/Xft.h" # 38 "/usr/include/X11/Xft/Xft.h" # 1 "/usr/lib64/gcc/x86_64-alt-linux/4.5.1/include/stdarg.h" 1 3 4 # 40 "/usr/lib64/gcc/x86_64-alt-linux/4.5.1/include/stdarg.h" 3 4 # 102 "/usr/lib64/gcc/x86_64-alt-linux/4.5.1/include/stdarg.h" 3 4 # 39 "/usr/include/X11/Xft/Xft.h" 2 # 1 "/usr/include/ft2build.h" 1 3 4 Здесь показан стек включаемых файлов (см. info cpp "Preprocessor Output"). Соответственно, нам надо взять взять файлы на первом фрейме стека - это и будут реально включаемые файлы. > #ifdef USE_FOO_H > > #include > > #endif