ALT Linux Community general discussions
 help / color / mirror / Atom feed
* [mdk-re] 2 questions about CVS
@ 2001-10-12 11:58 cornet
  2001-10-12 12:43 ` [mdk-re] " Mikhail Zabaluev
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: cornet @ 2001-10-12 11:58 UTC (permalink / raw)
  To: mandrake-russian

Привет всем!

Сорри за офтопик, но хотелось бы посоветоваться.

1.
Есть проект, разрабатываемый параллельно для Линуха и Винды.
Ресурсы, разумеется будут общими, а вот код скорее всего разным,
выдержать все исключительно в ANSI C наверняка не удастся.
Есть CVS на pserver.

Вопрос:
Какова в данном случае рекомендуемая логика построения модуля src
CVS-репозитория??

Использовать отдельные branch для Lin-src и Win-src не очень то
хочется, по тому как в этом случае все равно будет только одна
головная ветвь, а их нужно фактически две. С другой стороны,
делать два независимых модуля lin.src и win.src то же не очень,
поскольку во многом они будут повторять друг друга и только
поспособствуют неразберихе и раздвоению личности у программеров
:-)

Уверен, что я далеко не первый, кто встал перед такой проблемой,
и наверняка существуют стандартные методы решения подобных задач.
Просветите, плиз :-)

2.
Как ограничить доступ на запись в модуль CVSROOT??
CVS работает от одного системного юзера "local_user" и расположен
в его хоумнике, у каждого участника проекта свой логин на CVS.
Файл CVSROOT/passwd выглядит так:
user1:FGRTrtggDGs:local_user
user2:HGghgghfHFG:local_user
user3:fGFGsdfgSDF:local_user
...

Вот как бы сделать так, что бы только "user1" мог писать в файлы
под CVSROOT а остальные могли только читать??
Доки по CVS читаю уже давно, но до сих пор так и не врубился как
это сделать :-((

-- 
******** FIRE & STEEL ********



^ permalink raw reply	[flat|nested] 9+ messages in thread

* [mdk-re] Re: 2 questions about CVS
  2001-10-12 11:58 [mdk-re] 2 questions about CVS cornet
@ 2001-10-12 12:43 ` Mikhail Zabaluev
  2001-10-12 13:57   ` cornet
  2001-10-12 13:02 ` [mdk-re] 2 questions about CVS AT
  2001-10-12 13:56 ` Yuri Ryazantsev
  2 siblings, 1 reply; 9+ messages in thread
From: Mikhail Zabaluev @ 2001-10-12 12:43 UTC (permalink / raw)
  To: mandrake-russian

Hello cornet,

On Fri, Oct 12, 2001 at 12:00:27PM +0400, cornet wrote:
>
> Привет всем!
> 
> Сорри за офтопик, но хотелось бы посоветоваться.
> 
> 1.
> Есть проект, разрабатываемый параллельно для Линуха и Винды.
> Ресурсы, разумеется будут общими, а вот код скорее всего разным,
> выдержать все исключительно в ANSI C наверняка не удастся.
> Есть CVS на pserver.
> 
> Вопрос:
> Какова в данном случае рекомендуемая логика построения модуля src
> CVS-репозитория??
> 
> Использовать отдельные branch для Lin-src и Win-src не очень то
> хочется, по тому как в этом случае все равно будет только одна
> головная ветвь, а их нужно фактически две. С другой стороны,
> делать два независимых модуля lin.src и win.src то же не очень,
> поскольку во многом они будут повторять друг друга и только
> поспособствуют неразберихе и раздвоению личности у программеров
> :-)
> 
> Уверен, что я далеко не первый, кто встал перед такой проблемой,
> и наверняка существуют стандартные методы решения подобных задач.
> Просветите, плиз :-)

Скорее всего, проект можно разделить на модули, общие для обеих
платформ, и модули, специфичные для платформы.

> 2.
> Как ограничить доступ на запись в модуль CVSROOT??
> CVS работает от одного системного юзера "local_user" и расположен
> в его хоумнике, у каждого участника проекта свой логин на CVS.
> Файл CVSROOT/passwd выглядит так:
> user1:FGRTrtggDGs:local_user
> user2:HGghgghfHFG:local_user
> user3:fGFGsdfgSDF:local_user
> ...
> 
> Вот как бы сделать так, что бы только "user1" мог писать в файлы
> под CVSROOT а остальные могли только читать??

Выделить два системных профиля, один для user1, другой для остальных.
Дальше разграничивать доступ этих пользователей к репозитарию
средствами Unix. Вообще, организация прав доступа к древу -- больное
место CVS. Часто необходим setgid на каталоги, чтобы пользователи
могли совместно модифицировать репозитарий.

-- 
Stay tuned,
  MhZ                                     JID: mookid@jabber.org
___________
Harris's Lament:
	All the good ones are taken.



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [mdk-re] 2 questions about CVS
  2001-10-12 11:58 [mdk-re] 2 questions about CVS cornet
  2001-10-12 12:43 ` [mdk-re] " Mikhail Zabaluev
@ 2001-10-12 13:02 ` AT
  2001-10-12 13:46   ` cornet
  2001-10-12 13:56 ` Yuri Ryazantsev
  2 siblings, 1 reply; 9+ messages in thread
From: AT @ 2001-10-12 13:02 UTC (permalink / raw)
  To: mandrake-russian

> Использовать отдельные branch для Lin-src и Win-src не очень то
> хочется, по тому как в этом случае все равно будет только одна
> головная ветвь, а их нужно фактически две. С другой стороны,
> делать два независимых модуля lin.src и win.src то же не очень,
> поскольку во многом они будут повторять друг друга и только
> поспособствуют неразберихе и раздвоению личности у программеров

1) под Cigwin'ом всё собирается почти прозрачно и работает довольно
шустро. Если к программе нет специальных требований (родной графический
интерфейс и т.п.), то, наверное, это лучший вариант.

2) Если программа не слишком глубоко использует API операционной
системы, то вполне можно отделаться макросами в духе config.h:

#ifdef WIN32
#include <winsock.h>
#define strcasecmp strcmpi
...
#else
#include <sys/types.h>
#include <sys/socket.h>
#endif

Microsoft namke даже умееть собирать "стандартные" Makefile'ы
компилятором из Visual Studio.

Поройтесь в исходниках Апача, они всерьёз этим занимаются. В Apache2 --
новая portable runtime library, наверное можно её целиком прикрутить.

> user1:FGRTrtggDGs:local_user
> user2:HGghgghfHFG:local_user
> user3:fGFGsdfgSDF:local_user
> ...
> 
> Вот как бы сделать так, что бы только "user1" мог писать в файлы
> под CVSROOT а остальные могли только читать??

info cvs Repository

и прочитайте про Read-only access на pserver. Но вообще просто так доке
верить нельзя, всегда надо думать и самому проверять.

__
AT



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [mdk-re] 2 questions about CVS
  2001-10-12 13:02 ` [mdk-re] 2 questions about CVS AT
@ 2001-10-12 13:46   ` cornet
  0 siblings, 0 replies; 9+ messages in thread
From: cornet @ 2001-10-12 13:46 UTC (permalink / raw)
  To: mandrake-russian

AT wrote:
> 
> > Использовать отдельные branch для Lin-src и Win-src не очень то
> > хочется, по тому как в этом случае все равно будет только одна
skip.
Сеньк, направление примерно ясно.

> > user1:FGRTrtggDGs:local_user
> > user2:HGghgghfHFG:local_user
> > user3:fGFGsdfgSDF:local_user
> > ...
> >
> > Вот как бы сделать так, что бы только "user1" мог писать в файлы
> > под CVSROOT а остальные могли только читать??
> 
> info cvs Repository
> 
> и прочитайте про Read-only access на pserver. Но вообще просто так доке
> верить нельзя, всегда надо думать и самому проверять.

Это не совсем то :-(( уже давно прочел.
Данный механизм определяет права на чтение/запись в целом для
репозитория. А мне надо в пределах одного модуля.

-- 
******** FIRE & STEEL ********



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [mdk-re] 2 questions about CVS
  2001-10-12 11:58 [mdk-re] 2 questions about CVS cornet
  2001-10-12 12:43 ` [mdk-re] " Mikhail Zabaluev
  2001-10-12 13:02 ` [mdk-re] 2 questions about CVS AT
@ 2001-10-12 13:56 ` Yuri Ryazantsev
  2 siblings, 0 replies; 9+ messages in thread
From: Yuri Ryazantsev @ 2001-10-12 13:56 UTC (permalink / raw)
  To: mandrake-russian

On Fri, Oct 12, 2001 at 12:00:27PM +0400, cornet wrote:

> 1.
> Есть проект, разрабатываемый параллельно для Линуха и Винды.
> Ресурсы, разумеется будут общими, а вот код скорее всего разным,
> выдержать все исключительно в ANSI C наверняка не удастся.
> Есть CVS на pserver.
> 
> Вопрос:
> Какова в данном случае рекомендуемая логика построения модуля src
> CVS-репозитория??
> 
> Использовать отдельные branch для Lin-src и Win-src не очень то
> хочется, по тому как в этом случае все равно будет только одна
> головная ветвь, а их нужно фактически две. С другой стороны,
> делать два независимых модуля lin.src и win.src то же не очень,
> поскольку во многом они будут повторять друг друга и только
> поспособствуют неразберихе и раздвоению личности у программеров
> :-)
> 
> Уверен, что я далеко не первый, кто встал перед такой проблемой,
> и наверняка существуют стандартные методы решения подобных задач.

Вообще-то такому лучше всего учиться у GNU. Есть в любом языке
программирования условный оператор (в Си - #ifdef) для препроцессора. Если
такого нет, то есть m4. Далее весь исходный код строится из кусков ОС
зависимых и ОС независимых. Есть правда очень большие отличия - их заносить
в отдельный каталог - port. Как показала практика - системы разрабатываемые
под разные ОС - более чисто и продуманно написаны. Это общий подход. 

> 2.
> Как ограничить доступ на запись в модуль CVSROOT??
> CVS работает от одного системного юзера "local_user" и расположен
> в его хоумнике, у каждого участника проекта свой логин на CVS.
> Файл CVSROOT/passwd выглядит так:
> user1:FGRTrtggDGs:local_user
> user2:HGghgghfHFG:local_user
> user3:fGFGsdfgSDF:local_user
> ...
> 
> Вот как бы сделать так, что бы только "user1" мог писать в файлы
> под CVSROOT а остальные могли только читать??
> Доки по CVS читаю уже давно, но до сих пор так и не врубился как
> это сделать :-((

Посмотри на файлы readers и writers. Описание их есть в cvs.info

with best wishes,

Yuri.




^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [mdk-re] Re: 2 questions about CVS
  2001-10-12 12:43 ` [mdk-re] " Mikhail Zabaluev
@ 2001-10-12 13:57   ` cornet
  2001-10-12 16:02     ` Dmitry V. Levin
  2001-10-13  0:51     ` [mdk-re] [JT] модуляризация переносимых программ [Was: 2 questions about CVS] Mikhail Zabaluev
  0 siblings, 2 replies; 9+ messages in thread
From: cornet @ 2001-10-12 13:57 UTC (permalink / raw)
  To: mandrake-russian

Mikhail Zabaluev wrote:
> 
> Hello cornet,
> 
> On Fri, Oct 12, 2001 at 12:00:27PM +0400, cornet wrote:
> >
> > Привет всем!
> >
> > Сорри за офтопик, но хотелось бы посоветоваться.
> >
> > 1.
> > Есть проект, разрабатываемый параллельно для Линуха и Винды.
> > Ресурсы, разумеется будут общими, а вот код скорее всего разным,
skip.
> 
> Скорее всего, проект можно разделить на модули, общие для обеих
> платформ, и модули, специфичные для платформы.

Увы, заранее это предугадать почти невозможно. В случае неверной
оценки при первоначальном расположении потом придется переносить
ветви.... гиморно. 

> > 2.
> > Как ограничить доступ на запись в модуль CVSROOT??
skip.
> Выделить два системных профиля, один для user1, другой для остальных.
> Дальше разграничивать доступ этих пользователей к репозитарию
> средствами Unix. Вообще, организация прав доступа к древу -- больное
> место CVS. Часто необходим setgid на каталоги, чтобы пользователи
> могли совместно модифицировать репозитарий.

Не в моей власти :-(( Мне выделен только один системный юзер. А
поскольку cvs расположен в хоумнике, то наличие файлов,
принадлежащих другому юзеру (путь да же из той же группы) сильно
осложнит обслуживание всего хозяйства в целом.
Боюсь что это не слишком подходящее к данному случаю решение :-((

-- 
******** FIRE & STEEL ********



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [mdk-re] Re: 2 questions about CVS
  2001-10-12 13:57   ` cornet
@ 2001-10-12 16:02     ` Dmitry V. Levin
  2001-10-12 16:24       ` cornet
  2001-10-13  0:51     ` [mdk-re] [JT] модуляризация переносимых программ [Was: 2 questions about CVS] Mikhail Zabaluev
  1 sibling, 1 reply; 9+ messages in thread
From: Dmitry V. Levin @ 2001-10-12 16:02 UTC (permalink / raw)
  To: ALT Linux Spring mailing list

[-- Attachment #1: Type: text/plain, Size: 1470 bytes --]

On Fri, Oct 12, 2001 at 02:00:09PM +0400, cornet wrote:
> > > Как ограничить доступ на запись в модуль CVSROOT??
> skip.
> > Выделить два системных профиля, один для user1, другой для остальных.
> > Дальше разграничивать доступ этих пользователей к репозитарию
> > средствами Unix. Вообще, организация прав доступа к древу -- больное
> > место CVS. Часто необходим setgid на каталоги, чтобы пользователи
> > могли совместно модифицировать репозитарий.
> 
> Не в моей власти :-(( Мне выделен только один системный юзер. А
> поскольку cvs расположен в хоумнике, то наличие файлов,
> принадлежащих другому юзеру (путь да же из той же группы) сильно
> осложнит обслуживание всего хозяйства в целом.
> Боюсь что это не слишком подходящее к данному случаю решение :-((

Где-то в стандартной документации по CVS написано, что на него не стоит
возлагать решение задачи разделения доступа, поскольку текущий дизайн
реализации не способен решить эту задачу. Та же написано, что для этих
целей следует использовать возможности операционной системы, где работает
сервер, обслуживающий cvs repository.


Regards,
	Dmitry

+-------------------------------------------------------------------------+
Dmitry V. Levin     mailto://ldv@alt-linux.org
ALT Linux Team      http://www.altlinux.ru/
Fandra Project      http://www.fandra.org/
+-------------------------------------------------------------------------+
UNIX is user friendly. It's just very selective about who its friends are.

[-- Attachment #2: Type: application/pgp-signature, Size: 232 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [mdk-re] Re: 2 questions about CVS
  2001-10-12 16:02     ` Dmitry V. Levin
@ 2001-10-12 16:24       ` cornet
  0 siblings, 0 replies; 9+ messages in thread
From: cornet @ 2001-10-12 16:24 UTC (permalink / raw)
  To: mandrake-russian

"Dmitry V. Levin" wrote:
skip.
> Где-то в стандартной документации по CVS написано, что на него не стоит
> возлагать решение задачи разделения доступа, поскольку текущий дизайн
> реализации не способен решить эту задачу. Та же написано, что для этих
> целей следует использовать возможности операционной системы, где работает
> сервер, обслуживающий cvs repository.

Угу. Понятно :-(( Просто на этот вопрос Rider ответил RTFM, ну я
к его мнению прислушиваюсь... я уж ее читал читал... вот
дочитался до того, что решил спросить, а вдруг все таки можно.
Значит действительно нельзя. 

Ну ладно, всем спасибо за разъяснения, по крайней мере внесли
ясность.

-- 
******** FIRE & STEEL ********



^ permalink raw reply	[flat|nested] 9+ messages in thread

* [mdk-re] [JT] модуляризация переносимых программ [Was: 2 questions about CVS]
  2001-10-12 13:57   ` cornet
  2001-10-12 16:02     ` Dmitry V. Levin
@ 2001-10-13  0:51     ` Mikhail Zabaluev
  1 sibling, 0 replies; 9+ messages in thread
From: Mikhail Zabaluev @ 2001-10-13  0:51 UTC (permalink / raw)
  To: mandrake-russian

Hello cornet,

On Fri, Oct 12, 2001 at 02:00:09PM +0400, cornet wrote:
>
> > > Есть проект, разрабатываемый параллельно для Линуха и Винды.
> > > Ресурсы, разумеется будут общими, а вот код скорее всего разным,
> skip.
> > 
> > Скорее всего, проект можно разделить на модули, общие для обеих
> > платформ, и модули, специфичные для платформы.
> 
> Увы, заранее это предугадать почти невозможно. В случае неверной
> оценки при первоначальном расположении потом придется переносить
> ветви.... гиморно. 

Можно. Непосредственная работа с GUI -- стопроцентно различные
реализации. Общая логика, чистые алгоритмы, привлечение извне только
стандартных функций -- переносимо, возможно с вынесением различий в
специальные заголовочные файлы. Работа с файлами -- зависит от глубины
проникновения в детали, здесь в msvcrt.dll доступна некоторая часть
POSIX/standard C library. А вот threads, IPC -- слишком разные.

-- 
Stay tuned,
  MhZ                                     JID: mookid@jabber.org
___________
Tom's hungry, time to eat lunch.



^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2001-10-13  0:51 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-10-12 11:58 [mdk-re] 2 questions about CVS cornet
2001-10-12 12:43 ` [mdk-re] " Mikhail Zabaluev
2001-10-12 13:57   ` cornet
2001-10-12 16:02     ` Dmitry V. Levin
2001-10-12 16:24       ` cornet
2001-10-13  0:51     ` [mdk-re] [JT] модуляризация переносимых программ [Was: 2 questions about CVS] Mikhail Zabaluev
2001-10-12 13:02 ` [mdk-re] 2 questions about CVS AT
2001-10-12 13:46   ` cornet
2001-10-12 13:56 ` Yuri Ryazantsev

ALT Linux Community general discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
		mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
	public-inbox-index community

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.community


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git