Initial commit
This commit is contained in:
commit
c9d84479d2
341
COPYING
Normal file
341
COPYING
Normal file
@ -0,0 +1,341 @@
|
|||||||
|
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
Version 2, June 1991
|
||||||
|
|
||||||
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The licenses for most software are designed to take away your
|
||||||
|
freedom to share and change it. By contrast, the GNU General Public
|
||||||
|
License is intended to guarantee your freedom to share and change free
|
||||||
|
software--to make sure the software is free for all its users. This
|
||||||
|
General Public License applies to most of the Free Software
|
||||||
|
Foundation's software and to any other program whose authors commit to
|
||||||
|
using it. (Some other Free Software Foundation software is covered by
|
||||||
|
the GNU Library General Public License instead.) You can apply it to
|
||||||
|
your programs, too.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom, not
|
||||||
|
price. Our General Public Licenses are designed to make sure that you
|
||||||
|
have the freedom to distribute copies of free software (and charge for
|
||||||
|
this service if you wish), that you receive source code or can get it
|
||||||
|
if you want it, that you can change the software or use pieces of it
|
||||||
|
in new free programs; and that you know you can do these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to make restrictions that forbid
|
||||||
|
anyone to deny you these rights or to ask you to surrender the rights.
|
||||||
|
These restrictions translate to certain responsibilities for you if you
|
||||||
|
distribute copies of the software, or if you modify it.
|
||||||
|
|
||||||
|
For example, if you distribute copies of such a program, whether
|
||||||
|
gratis or for a fee, you must give the recipients all the rights that
|
||||||
|
you have. You must make sure that they, too, receive or can get the
|
||||||
|
source code. And you must show them these terms so they know their
|
||||||
|
rights.
|
||||||
|
|
||||||
|
We protect your rights with two steps: (1) copyright the software, and
|
||||||
|
(2) offer you this license which gives you legal permission to copy,
|
||||||
|
distribute and/or modify the software.
|
||||||
|
|
||||||
|
Also, for each author's protection and ours, we want to make certain
|
||||||
|
that everyone understands that there is no warranty for this free
|
||||||
|
software. If the software is modified by someone else and passed on, we
|
||||||
|
want its recipients to know that what they have is not the original, so
|
||||||
|
that any problems introduced by others will not reflect on the original
|
||||||
|
authors' reputations.
|
||||||
|
|
||||||
|
Finally, any free program is threatened constantly by software
|
||||||
|
patents. We wish to avoid the danger that redistributors of a free
|
||||||
|
program will individually obtain patent licenses, in effect making the
|
||||||
|
program proprietary. To prevent this, we have made it clear that any
|
||||||
|
patent must be licensed for everyone's free use or not licensed at all.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and
|
||||||
|
modification follow.
|
||||||
|
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
0. This License applies to any program or other work which contains
|
||||||
|
a notice placed by the copyright holder saying it may be distributed
|
||||||
|
under the terms of this General Public License. The "Program", below,
|
||||||
|
refers to any such program or work, and a "work based on the Program"
|
||||||
|
means either the Program or any derivative work under copyright law:
|
||||||
|
that is to say, a work containing the Program or a portion of it,
|
||||||
|
either verbatim or with modifications and/or translated into another
|
||||||
|
language. (Hereinafter, translation is included without limitation in
|
||||||
|
the term "modification".) Each licensee is addressed as "you".
|
||||||
|
|
||||||
|
Activities other than copying, distribution and modification are not
|
||||||
|
covered by this License; they are outside its scope. The act of
|
||||||
|
running the Program is not restricted, and the output from the Program
|
||||||
|
is covered only if its contents constitute a work based on the
|
||||||
|
Program (independent of having been made by running the Program).
|
||||||
|
Whether that is true depends on what the Program does.
|
||||||
|
|
||||||
|
1. You may copy and distribute verbatim copies of the Program's
|
||||||
|
source code as you receive it, in any medium, provided that you
|
||||||
|
conspicuously and appropriately publish on each copy an appropriate
|
||||||
|
copyright notice and disclaimer of warranty; keep intact all the
|
||||||
|
notices that refer to this License and to the absence of any warranty;
|
||||||
|
and give any other recipients of the Program a copy of this License
|
||||||
|
along with the Program.
|
||||||
|
|
||||||
|
You may charge a fee for the physical act of transferring a copy, and
|
||||||
|
you may at your option offer warranty protection in exchange for a fee.
|
||||||
|
|
||||||
|
2. You may modify your copy or copies of the Program or any portion
|
||||||
|
of it, thus forming a work based on the Program, and copy and
|
||||||
|
distribute such modifications or work under the terms of Section 1
|
||||||
|
above, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
|
a) You must cause the modified files to carry prominent notices
|
||||||
|
stating that you changed the files and the date of any change.
|
||||||
|
|
||||||
|
b) You must cause any work that you distribute or publish, that in
|
||||||
|
whole or in part contains or is derived from the Program or any
|
||||||
|
part thereof, to be licensed as a whole at no charge to all third
|
||||||
|
parties under the terms of this License.
|
||||||
|
|
||||||
|
c) If the modified program normally reads commands interactively
|
||||||
|
when run, you must cause it, when started running for such
|
||||||
|
interactive use in the most ordinary way, to print or display an
|
||||||
|
announcement including an appropriate copyright notice and a
|
||||||
|
notice that there is no warranty (or else, saying that you provide
|
||||||
|
a warranty) and that users may redistribute the program under
|
||||||
|
these conditions, and telling the user how to view a copy of this
|
||||||
|
License. (Exception: if the Program itself is interactive but
|
||||||
|
does not normally print such an announcement, your work based on
|
||||||
|
the Program is not required to print an announcement.)
|
||||||
|
|
||||||
|
These requirements apply to the modified work as a whole. If
|
||||||
|
identifiable sections of that work are not derived from the Program,
|
||||||
|
and can be reasonably considered independent and separate works in
|
||||||
|
themselves, then this License, and its terms, do not apply to those
|
||||||
|
sections when you distribute them as separate works. But when you
|
||||||
|
distribute the same sections as part of a whole which is a work based
|
||||||
|
on the Program, the distribution of the whole must be on the terms of
|
||||||
|
this License, whose permissions for other licensees extend to the
|
||||||
|
entire whole, and thus to each and every part regardless of who wrote it.
|
||||||
|
|
||||||
|
Thus, it is not the intent of this section to claim rights or contest
|
||||||
|
your rights to work written entirely by you; rather, the intent is to
|
||||||
|
exercise the right to control the distribution of derivative or
|
||||||
|
collective works based on the Program.
|
||||||
|
|
||||||
|
In addition, mere aggregation of another work not based on the Program
|
||||||
|
with the Program (or with a work based on the Program) on a volume of
|
||||||
|
a storage or distribution medium does not bring the other work under
|
||||||
|
the scope of this License.
|
||||||
|
|
||||||
|
3. You may copy and distribute the Program (or a work based on it,
|
||||||
|
under Section 2) in object code or executable form under the terms of
|
||||||
|
Sections 1 and 2 above provided that you also do one of the following:
|
||||||
|
|
||||||
|
a) Accompany it with the complete corresponding machine-readable
|
||||||
|
source code, which must be distributed under the terms of Sections
|
||||||
|
1 and 2 above on a medium customarily used for software interchange; or,
|
||||||
|
|
||||||
|
b) Accompany it with a written offer, valid for at least three
|
||||||
|
years, to give any third party, for a charge no more than your
|
||||||
|
cost of physically performing source distribution, a complete
|
||||||
|
machine-readable copy of the corresponding source code, to be
|
||||||
|
distributed under the terms of Sections 1 and 2 above on a medium
|
||||||
|
customarily used for software interchange; or,
|
||||||
|
|
||||||
|
c) Accompany it with the information you received as to the offer
|
||||||
|
to distribute corresponding source code. (This alternative is
|
||||||
|
allowed only for noncommercial distribution and only if you
|
||||||
|
received the program in object code or executable form with such
|
||||||
|
an offer, in accord with Subsection b above.)
|
||||||
|
|
||||||
|
The source code for a work means the preferred form of the work for
|
||||||
|
making modifications to it. For an executable work, complete source
|
||||||
|
code means all the source code for all modules it contains, plus any
|
||||||
|
associated interface definition files, plus the scripts used to
|
||||||
|
control compilation and installation of the executable. However, as a
|
||||||
|
special exception, the source code distributed need not include
|
||||||
|
anything that is normally distributed (in either source or binary
|
||||||
|
form) with the major components (compiler, kernel, and so on) of the
|
||||||
|
operating system on which the executable runs, unless that component
|
||||||
|
itself accompanies the executable.
|
||||||
|
|
||||||
|
If distribution of executable or object code is made by offering
|
||||||
|
access to copy from a designated place, then offering equivalent
|
||||||
|
access to copy the source code from the same place counts as
|
||||||
|
distribution of the source code, even though third parties are not
|
||||||
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
|
4. You may not copy, modify, sublicense, or distribute the Program
|
||||||
|
except as expressly provided under this License. Any attempt
|
||||||
|
otherwise to copy, modify, sublicense or distribute the Program is
|
||||||
|
void, and will automatically terminate your rights under this License.
|
||||||
|
However, parties who have received copies, or rights, from you under
|
||||||
|
this License will not have their licenses terminated so long as such
|
||||||
|
parties remain in full compliance.
|
||||||
|
|
||||||
|
5. You are not required to accept this License, since you have not
|
||||||
|
signed it. However, nothing else grants you permission to modify or
|
||||||
|
distribute the Program or its derivative works. These actions are
|
||||||
|
prohibited by law if you do not accept this License. Therefore, by
|
||||||
|
modifying or distributing the Program (or any work based on the
|
||||||
|
Program), you indicate your acceptance of this License to do so, and
|
||||||
|
all its terms and conditions for copying, distributing or modifying
|
||||||
|
the Program or works based on it.
|
||||||
|
|
||||||
|
6. Each time you redistribute the Program (or any work based on the
|
||||||
|
Program), the recipient automatically receives a license from the
|
||||||
|
original licensor to copy, distribute or modify the Program subject to
|
||||||
|
these terms and conditions. You may not impose any further
|
||||||
|
restrictions on the recipients' exercise of the rights granted herein.
|
||||||
|
You are not responsible for enforcing compliance by third parties to
|
||||||
|
this License.
|
||||||
|
|
||||||
|
7. If, as a consequence of a court judgment or allegation of patent
|
||||||
|
infringement or for any other reason (not limited to patent issues),
|
||||||
|
conditions are imposed on you (whether by court order, agreement or
|
||||||
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
|
excuse you from the conditions of this License. If you cannot
|
||||||
|
distribute so as to satisfy simultaneously your obligations under this
|
||||||
|
License and any other pertinent obligations, then as a consequence you
|
||||||
|
may not distribute the Program at all. For example, if a patent
|
||||||
|
license would not permit royalty-free redistribution of the Program by
|
||||||
|
all those who receive copies directly or indirectly through you, then
|
||||||
|
the only way you could satisfy both it and this License would be to
|
||||||
|
refrain entirely from distribution of the Program.
|
||||||
|
|
||||||
|
If any portion of this section is held invalid or unenforceable under
|
||||||
|
any particular circumstance, the balance of the section is intended to
|
||||||
|
apply and the section as a whole is intended to apply in other
|
||||||
|
circumstances.
|
||||||
|
|
||||||
|
It is not the purpose of this section to induce you to infringe any
|
||||||
|
patents or other property right claims or to contest validity of any
|
||||||
|
such claims; this section has the sole purpose of protecting the
|
||||||
|
integrity of the free software distribution system, which is
|
||||||
|
implemented by public license practices. Many people have made
|
||||||
|
generous contributions to the wide range of software distributed
|
||||||
|
through that system in reliance on consistent application of that
|
||||||
|
system; it is up to the author/donor to decide if he or she is willing
|
||||||
|
to distribute software through any other system and a licensee cannot
|
||||||
|
impose that choice.
|
||||||
|
|
||||||
|
This section is intended to make thoroughly clear what is believed to
|
||||||
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
|
8. If the distribution and/or use of the Program is restricted in
|
||||||
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
|
original copyright holder who places the Program under this License
|
||||||
|
may add an explicit geographical distribution limitation excluding
|
||||||
|
those countries, so that distribution is permitted only in or among
|
||||||
|
countries not thus excluded. In such case, this License incorporates
|
||||||
|
the limitation as if written in the body of this License.
|
||||||
|
|
||||||
|
9. The Free Software Foundation may publish revised and/or new versions
|
||||||
|
of the General Public License from time to time. Such new versions will
|
||||||
|
be similar in spirit to the present version, but may differ in detail to
|
||||||
|
address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the Program
|
||||||
|
specifies a version number of this License which applies to it and "any
|
||||||
|
later version", you have the option of following the terms and conditions
|
||||||
|
either of that version or of any later version published by the Free
|
||||||
|
Software Foundation. If the Program does not specify a version number of
|
||||||
|
this License, you may choose any version ever published by the Free Software
|
||||||
|
Foundation.
|
||||||
|
|
||||||
|
10. If you wish to incorporate parts of the Program into other free
|
||||||
|
programs whose distribution conditions are different, write to the author
|
||||||
|
to ask for permission. For software which is copyrighted by the Free
|
||||||
|
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||||
|
make exceptions for this. Our decision will be guided by the two goals
|
||||||
|
of preserving the free status of all derivatives of our free software and
|
||||||
|
of promoting the sharing and reuse of software generally.
|
||||||
|
|
||||||
|
NO WARRANTY
|
||||||
|
|
||||||
|
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||||
|
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||||
|
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||||
|
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||||
|
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||||
|
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||||
|
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||||
|
REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||||
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||||
|
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||||
|
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||||
|
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||||
|
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||||
|
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
|
If you develop a new program, and you want it to be of the greatest
|
||||||
|
possible use to the public, the best way to achieve this is to make it
|
||||||
|
free software which everyone can redistribute and change under these terms.
|
||||||
|
|
||||||
|
To do so, attach the following notices to the program. It is safest
|
||||||
|
to attach them to the start of each source file to most effectively
|
||||||
|
convey the exclusion of warranty; and each file should have at least
|
||||||
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
|
<one line to give the program's name and a brief idea of what it does.>
|
||||||
|
Copyright (C) 19yy <name of author>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
If the program is interactive, make it output a short notice like this
|
||||||
|
when it starts in an interactive mode:
|
||||||
|
|
||||||
|
Gnomovision version 69, Copyright (C) 19yy name of author
|
||||||
|
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
|
This is free software, and you are welcome to redistribute it
|
||||||
|
under certain conditions; type `show c' for details.
|
||||||
|
|
||||||
|
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||||
|
parts of the General Public License. Of course, the commands you use may
|
||||||
|
be called something other than `show w' and `show c'; they could even be
|
||||||
|
mouse-clicks or menu items--whatever suits your program.
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or your
|
||||||
|
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||||
|
necessary. Here is a sample; alter the names:
|
||||||
|
|
||||||
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||||
|
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||||
|
|
||||||
|
<signature of Ty Coon>, 1 April 1989
|
||||||
|
Ty Coon, President of Vice
|
||||||
|
|
||||||
|
This General Public License does not permit incorporating your program into
|
||||||
|
proprietary programs. If your program is a subroutine library, you may
|
||||||
|
consider it more useful to permit linking proprietary applications with the
|
||||||
|
library. If this is what you want to do, use the GNU Library General
|
||||||
|
Public License instead of this License.
|
57
ChangeLog
Normal file
57
ChangeLog
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
Changes in version 0.8 <silvan.calarco@mambasoft.it> 20100110
|
||||||
|
- openmamba-dw-checklist: integrated use of distdb configuation from autodist
|
||||||
|
- openmamba-newrelease: add platforms installdvd and bootusb, dropped livestudio
|
||||||
|
- openmamba-repository:
|
||||||
|
* added list option
|
||||||
|
* added distromatic option to populate specs repository directory
|
||||||
|
- cron.daily/20-openmamba-autobuild-makedist:
|
||||||
|
* update to new targets
|
||||||
|
* support for creation of torrent files
|
||||||
|
* parametric support for languages
|
||||||
|
- cron.daily/30-openmamba-autobuild-cleanold:
|
||||||
|
* parametric support for languages
|
||||||
|
* support for torrent files
|
||||||
|
- cron.daily/50-openmamba-fix-permissions: added
|
||||||
|
- openmamba-autobuild-autodist cron moved from daily to hourly cron
|
||||||
|
- cron.hourly/10-openmamba-sync-back
|
||||||
|
cron.hourly/30-openmamba-distromatic
|
||||||
|
cron.hourly/40-openmamba-rsync: minor fixes
|
||||||
|
- cron.weekly/20-gencontents: generate contentslist inside nonflat dir
|
||||||
|
---------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Changes in version 0.7 <silvan.calarco@mambasoft.it>
|
||||||
|
- update to current scripts release
|
||||||
|
- added script openmamba-newrelease
|
||||||
|
- frontend: added scripts 05-ntpd and 20-openmamba-developer-messages
|
||||||
|
---------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Changes in version 0.6 <silvan.calarco@mambasoft.it>
|
||||||
|
- update to current scripts release
|
||||||
|
- added script and cron for dw-checklist support
|
||||||
|
---------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Changes in version 0.5 <silvan.calarco@mambasoft.it>
|
||||||
|
- cron scripts: lots of updates
|
||||||
|
- added frontend cron scripts
|
||||||
|
---------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Changes in version 0.4 <silvan.calarco@mambasoft.it>
|
||||||
|
- openmamba-import renamed to openmamba-repository with many new features
|
||||||
|
- cron scripts: lots of updates; added rsync daily cron
|
||||||
|
---------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Changes in version 0.3 <silvan.calarco@mambasoft.it>
|
||||||
|
- openmamba-newrep: added script for new repository creation
|
||||||
|
- cron.weekly/10-openmamba-makedist: added cron script
|
||||||
|
- small fixes to cron files
|
||||||
|
---------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Changes in version 0.2 <silvan.calarco@mambasoft.it>
|
||||||
|
- openmamba-import: added support for local source repositories
|
||||||
|
- cron files: many small fixes
|
||||||
|
---------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Changes in version 0.1 <silvan.calarco@mambasoft.it>
|
||||||
|
- first packaging
|
||||||
|
---------------------------------------------------------------------------------
|
||||||
|
|
75
Makefile
Normal file
75
Makefile
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
# Makefile for openmamba-headserver-tools
|
||||||
|
# Copyright (C) 2007-2008 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||||
|
|
||||||
|
PACKAGE = openmamba-headserver-tools
|
||||||
|
|
||||||
|
DISTROID = openmamba
|
||||||
|
|
||||||
|
RPM_VENDOR = openmamba
|
||||||
|
RPM_DISTRIBUTION = openmamba
|
||||||
|
RPM_DISTROEXT = mamba
|
||||||
|
|
||||||
|
SYSCONFIGFILE = openmamba-central
|
||||||
|
|
||||||
|
include VERSION
|
||||||
|
|
||||||
|
DISTROid = $(shell echo $(DISTROID) | tr A-Z a-z)
|
||||||
|
DISTROICON = $(DISTROid)
|
||||||
|
|
||||||
|
DESTDIR =
|
||||||
|
|
||||||
|
prefix = /usr
|
||||||
|
exec_prefix = ${prefix}
|
||||||
|
sysconfdir = /etc
|
||||||
|
sbindir = ${exec_prefix}/sbin
|
||||||
|
bindir = ${exec_prefix}/bin
|
||||||
|
datadir = ${prefix}/share
|
||||||
|
initrddir = ${sysconfdir}/rc.d/init.d
|
||||||
|
mandir = ${prefix}/usr/share/man
|
||||||
|
sysconfigdir= ${sysconfdir}/sysconfig
|
||||||
|
|
||||||
|
INSTALL = /usr/bin/install
|
||||||
|
INSTALL_PROGRAM = ${INSTALL} -m 755
|
||||||
|
INSTALL_DATA = ${INSTALL} -m 644
|
||||||
|
INSTALL_DIR = ${INSTALL} -d -m 755
|
||||||
|
INSTALL_SCRIPT = ${INSTALL_PROGRAM}
|
||||||
|
|
||||||
|
distdir = $(PACKAGE)-$(VERSION)
|
||||||
|
dist_archive = $(distdir).tar.bz2
|
||||||
|
|
||||||
|
all:
|
||||||
|
|
||||||
|
install-sysconfig:
|
||||||
|
@$(INSTALL_DIR) $(DESTDIR)$(sysconfigdir) $(DESTDIR)$(sysconfdir)/{cron.hourly,cron.daily,cron.weekly,sysconfig}
|
||||||
|
$(INSTALL_PROGRAM) etc/cron.hourly/* $(DESTDIR)$(sysconfdir)/cron.hourly/
|
||||||
|
$(INSTALL_PROGRAM) etc/cron.daily/* $(DESTDIR)$(sysconfdir)/cron.daily/
|
||||||
|
$(INSTALL_PROGRAM) etc/cron.weekly/* $(DESTDIR)$(sysconfdir)/cron.weekly/
|
||||||
|
$(INSTALL_PROGRAM) etc-frontend/cron.hourly/* $(DESTDIR)$(sysconfdir)/cron.hourly/
|
||||||
|
$(INSTALL_PROGRAM) etc-frontend/cron.weekly/* $(DESTDIR)$(sysconfdir)/cron.weekly/
|
||||||
|
$(INSTALL_DATA) -m600 etc/sysconfig/* $(DESTDIR)$(sysconfdir)/sysconfig/
|
||||||
|
|
||||||
|
install-usertools: $(pck_usertools)
|
||||||
|
@$(INSTALL_DIR) $(DESTDIR)$(sbindir)
|
||||||
|
$(INSTALL_SCRIPT) bin/* $(DESTDIR)$(sbindir)
|
||||||
|
|
||||||
|
install: install-sysconfig install-usertools
|
||||||
|
|
||||||
|
dist: clean
|
||||||
|
@case `sed 15q ChangeLog` in \
|
||||||
|
*"$(VERSION)"*) : ;; \
|
||||||
|
*) \
|
||||||
|
echo "ChangeLog not updated; not releasing" 1>&2;\
|
||||||
|
exit 1;; \
|
||||||
|
esac
|
||||||
|
@rm -f $(dist_archive);\
|
||||||
|
tar cf - --exclude=$(dist_archive) -C .. $(distdir) | \
|
||||||
|
bzip2 -9 -c > $(dist_archive)
|
||||||
|
@echo "file \`$(dist_archive)' created"
|
||||||
|
|
||||||
|
dist-rpm: dist
|
||||||
|
@rpm_sourcedir=`rpm --eval=%{_sourcedir}`;\
|
||||||
|
mv -f $(dist_archive) $$rpm_sourcedir;\
|
||||||
|
echo "and saved as \`$$rpm_sourcedir/$(dist_archive)'"
|
||||||
|
|
||||||
|
clean:
|
||||||
|
@rm -f $(dist_archive)
|
216
bin/openmamba-dw-checklist
Executable file
216
bin/openmamba-dw-checklist
Executable file
@ -0,0 +1,216 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Distrowatch packages update checker
|
||||||
|
# Copyright (c) 2004-2009 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||||
|
#
|
||||||
|
|
||||||
|
. /etc/sysconfig/openmamba-central
|
||||||
|
DISTROMATIC_PREFIX=/distribution/distromatic.html?
|
||||||
|
DISTROMATIC_REPOSITORY=devel
|
||||||
|
DISTDB=/etc/autodist/distdb
|
||||||
|
DISTDBDIR=/etc/autodist/distdb.d
|
||||||
|
|
||||||
|
[ -r $DISTDB ] && {
|
||||||
|
. $DISTDB
|
||||||
|
[ -d $DISTDBDIR ] && \
|
||||||
|
for f in `ls $DISTDBDIR/*.db`; do
|
||||||
|
. $f
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
[ -r $PKGLIST_FILE ] || {
|
||||||
|
echo "Error: file $PKGLIST_FILE cannot be read; aborting." >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
[ -r $ALIASES_DB ] || {
|
||||||
|
echo "Error: file $ALIASES_DB cannot be read; aborting." >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
function usage()
|
||||||
|
{
|
||||||
|
echo "openmamba-dw-checklist [-h|-m][-r repository]"
|
||||||
|
echo
|
||||||
|
echo " -h: generate distromatic HTML output"
|
||||||
|
echo " -m: show missing packages only"
|
||||||
|
echo " -r repository: specify the repository (default: devel)"
|
||||||
|
echo " -o repository: specify the repository for output data (default: devel-autodist)"
|
||||||
|
echo
|
||||||
|
}
|
||||||
|
echo "openmamba-dw-checklist - distrowatch packages update status file creator" >&2
|
||||||
|
|
||||||
|
get_job_vector() {
|
||||||
|
local JNAME=$1
|
||||||
|
|
||||||
|
# resolve JOB_NAME from distdb
|
||||||
|
# note: if JOB_NAME contains a "-" it can't be a distdb JOB, so skip it
|
||||||
|
if [ "${JNAME/-/}" = "${JNAME}" ]; then
|
||||||
|
local jobtmpfile=`tempfile`
|
||||||
|
# hack to get an array variable named as $j assigned to the JOB array
|
||||||
|
echo "echo \${$JNAME[*]}" > $jobtmpfile
|
||||||
|
JOB=(`. $jobtmpfile`)
|
||||||
|
rm -f $jobtmpfile
|
||||||
|
else
|
||||||
|
JOB=()
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ${#JOB[*]} -eq 0 ]; then
|
||||||
|
# create a default job with given JOB_NAME
|
||||||
|
JOB=($JNAME "" "")
|
||||||
|
elif [ ${#JOB[*]} -eq 1 ]; then
|
||||||
|
# no variables defined, add an empty job
|
||||||
|
JOB=(${JOB[*]} "" "")
|
||||||
|
fi
|
||||||
|
JOB_PKGS=(${JOB[0]//,/ })
|
||||||
|
JOB_VARNAMES=(${JOB[1]//,/ })
|
||||||
|
}
|
||||||
|
|
||||||
|
function version_compare()
|
||||||
|
{
|
||||||
|
local A B
|
||||||
|
A=$1
|
||||||
|
B=$2
|
||||||
|
|
||||||
|
if [ ${A/[a-zA-Z_]*} -gt ${B/[a-zA-Z_]*} ]; then
|
||||||
|
return 1
|
||||||
|
elif [ ${A/[a-zA-Z_]*} -lt ${B/[a-zA-Z_]*} ]; then
|
||||||
|
return 2
|
||||||
|
else
|
||||||
|
if [[ "$A" > "$B" ]]; then
|
||||||
|
return 1
|
||||||
|
elif [[ "$A" < "$B" ]]; then
|
||||||
|
return 2
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function version_find_bigger()
|
||||||
|
{
|
||||||
|
local VER1 VER2 FPOS CUTVER1 CUTVER2
|
||||||
|
|
||||||
|
VER1=$1
|
||||||
|
VER2=$2
|
||||||
|
FPOS=1
|
||||||
|
while true; do
|
||||||
|
CUTVER1=`echo $VER1. | cut -d. -f $FPOS`
|
||||||
|
CUTVER2=`echo $VER2. | cut -d. -f $FPOS`
|
||||||
|
if [ "$CUTVER1" -a ! "$CUTVER2" ]; then
|
||||||
|
return 1
|
||||||
|
elif [ "$CUTVER2" -a ! "$CUTVER1" ]; then
|
||||||
|
return 2
|
||||||
|
elif [ ! "$CUTVER1" -a "$CUTVER2" ]; then
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
version_compare $CUTVER1 $CUTVER2
|
||||||
|
case $? in
|
||||||
|
1) return 1 ;;
|
||||||
|
2) return 2 ;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
FPOS=`expr $FPOS + 1`
|
||||||
|
done
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
while [ "$1" ]; do
|
||||||
|
case $1 in
|
||||||
|
-h) distromatic_html=1 ;;
|
||||||
|
-m) if [ "$distromatic_html" ]; then
|
||||||
|
echo "Error: options -h and -m cannot be used together."
|
||||||
|
usage
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
missing_only=1
|
||||||
|
fi ;;
|
||||||
|
-r) [ "$2" ] || {
|
||||||
|
echo "Error: option -r requires repository name as parameter"
|
||||||
|
usage
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
DISTROMATIC_REPOSITORY=$2
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*) echo "Error: invalid option $1."; usage; exit 1 ;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
CACHE_DIR=${local_ftp}/$DISTROMATIC_REPOSITORY/autoupdate/
|
||||||
|
PKGLIST_FILE=${local_ftp}/$DISTROMATIC_REPOSITORY/srcpkglist
|
||||||
|
BUILDLIST_FILE=$CACHE_DIR/distrowatch.in
|
||||||
|
CONFIG_DIR=$CACHE_DIR
|
||||||
|
DISTROWATCH_DB=$CACHE_DIR/distrowatch.db
|
||||||
|
ALIASES_DB=$CACHE_DIR/aliases
|
||||||
|
MANUALVER_DB=$CACHE_DIR/manualver
|
||||||
|
|
||||||
|
> $DISTROWATCH_DB
|
||||||
|
> $DISTROWATCH_DB.missing
|
||||||
|
> $BUILDLIST_FILE
|
||||||
|
|
||||||
|
lynx -width 300 -dump http://distrowatch.com/packages.php |
|
||||||
|
while read line; do
|
||||||
|
[ "`echo $line | grep "Package Version Note"`" ] && start_print=1
|
||||||
|
[ "`echo $line | grep "____________________"`" ] && unset start_print
|
||||||
|
[ "$start_print" ] && {
|
||||||
|
set -- $line
|
||||||
|
pkg="${1/\[*\]/}"
|
||||||
|
ver="${2/\[*\]/}"
|
||||||
|
alias=`grep "^$pkg " $ALIASES_DB`
|
||||||
|
echo "$pkg $ver ${alias/* /}" >> $DISTROWATCH_DB
|
||||||
|
}
|
||||||
|
done
|
||||||
|
|
||||||
|
while read pkg ver alias; do
|
||||||
|
unset pkgline
|
||||||
|
unset found_manual
|
||||||
|
unset found_alias
|
||||||
|
pkgline=`grep "^$pkg " $MANUALVER_DB` && found_manual=1
|
||||||
|
if [ ! "$found_manual" ]; then
|
||||||
|
if [ "$alias" ]; then
|
||||||
|
get_job_vector $alias
|
||||||
|
lastjob=${#JOB_PKGS[*]}
|
||||||
|
pkgline=`grep "^${JOB_PKGS[$lastjob-1]} " $PKGLIST_FILE` && found_alias=1
|
||||||
|
else
|
||||||
|
get_job_vector $pkg
|
||||||
|
lastjob=${#JOB_PKGS[*]}
|
||||||
|
pkgline=`grep "^${JOB_PKGS[$lastjob-1]} " $PKGLIST_FILE`
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ "$pkgline" ]; then
|
||||||
|
set -- $pkgline
|
||||||
|
pkgname=$1
|
||||||
|
pkgver=$2
|
||||||
|
version_find_bigger $pkgver ${ver/-/.}
|
||||||
|
vercmp=$?
|
||||||
|
[ "$found_manual" ] && pkgname=$3
|
||||||
|
if [ ! "$missing_only" ]; then
|
||||||
|
if [ "$distromatic_html" = "1" ]; then
|
||||||
|
[ "$found_alias" -o "$found_manual" ] && nameadd="$pkg" || unset nameadd
|
||||||
|
unset veradd
|
||||||
|
[ ${vercmp} = 2 ] && veradd="<font color=red>$ver</font>"
|
||||||
|
[ ${vercmp} = 1 ] && veradd="$ver"
|
||||||
|
# [ "${ver/-/}" != "$pkgver" ] && veradd="<font color=red>$ver</font>" || unset veradd
|
||||||
|
[ "$veradd" -o "$nameadd" ] && {
|
||||||
|
[ "$veradd" -a "$nameadd" ] && \
|
||||||
|
verappend="($nameadd;$veradd)" ||
|
||||||
|
verappend="(${nameadd}${veradd})"
|
||||||
|
} || unset verappend
|
||||||
|
echo "<a href=\"${DISTROMATIC_PREFIX}tag=${DISTROMATIC_REPOSITORY}&pkg=${JOB_PKGS[0]}.source\">${JOB_PKGS[0]} $pkgver</a> $verappend<br>"
|
||||||
|
[ $vercmp = 2 ] && {
|
||||||
|
if [ "$found_alias" ]; then
|
||||||
|
echo "$alias +$ver 0" >> $BUILDLIST_FILE
|
||||||
|
else
|
||||||
|
echo "$pkg +$ver 0" >> $BUILDLIST_FILE
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
else
|
||||||
|
echo "$pkg $pkgver ($ver)"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "$pkg ($ver)" >> $DISTROWATCH_DB.missing
|
||||||
|
fi
|
||||||
|
done < $DISTROWATCH_DB
|
25
bin/openmamba-newrelease
Executable file
25
bin/openmamba-newrelease
Executable file
@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
echo "openmamba media release script"
|
||||||
|
echo "Copyright (c) 2008 by Silvan Calarco <silvan.calarco@mambasoft.it>"
|
||||||
|
echo
|
||||||
|
[ "$1" ] || {
|
||||||
|
echo "Error: release not specified; aborting"
|
||||||
|
echo "Usage:"
|
||||||
|
echo "openmamba-newrelease [release]"
|
||||||
|
echo
|
||||||
|
echo "Example:"
|
||||||
|
echo "openmamba-newrelease 1.0pre5"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
sudo makedist openmamba-milestone1 PLATFORM=livecd FORCE=1 LANGUAGE=en
|
||||||
|
sudo makedist openmamba-milestone1 PLATFORM=livecd FORCE=1 LANGUAGE=it
|
||||||
|
sudo makedist openmamba-milestone1 PLATFORM=livecd SUBPLATFORM=livestudio-root FORCE=1 LANGUAGE=en
|
||||||
|
sudo makedist openmamba-milestone1 PLATFORM=livecd SUBPLATFORM=livestudio-root FORCE=1 LANGUAGE=it
|
||||||
|
sudo makedist openmamba-milestone1 PLATFORM=installdvd FORCE=1 LANGUAGE=en
|
||||||
|
sudo makedist openmamba-milestone1 PLATFORM=installdvd FORCE=1 LANGUAGE=it
|
||||||
|
sudo makedist openmamba-milestone1 PLATFORM=bootusb LANGUAGE=en
|
||||||
|
sudo makedist openmamba-milestone1 PLATFORM=bootusb LANGUAGE=it
|
||||||
|
|
||||||
|
FORCE_OVERWRITE=1 RELEASE=$1 /etc/cron.daily/20-openmamba-autobuild-makedist
|
||||||
|
exit 0
|
176
bin/openmamba-newrep
Executable file
176
bin/openmamba-newrep
Executable file
@ -0,0 +1,176 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# openmamba new repository creation script
|
||||||
|
# Copyright (c) 2007-2008 by Silvan Calarco
|
||||||
|
#
|
||||||
|
|
||||||
|
. /etc/sysconfig/openmamba-central
|
||||||
|
|
||||||
|
CONFMODE=$1
|
||||||
|
REPNAME=$2
|
||||||
|
REPDIR=$local_ftp/$REPNAME
|
||||||
|
DISTROMATICDIR=$local_ftp/distromatic/$REPNAME
|
||||||
|
WEBDAV_DIR=/var/www/davdb
|
||||||
|
|
||||||
|
[ "$CONFMODE" = "frontend" -o "$CONFMODE" = "backend" -a "$REPNAME" ] || {
|
||||||
|
echo "openmamba new repository creation tool"
|
||||||
|
echo "Copyright (c) 2007-2008 by Silvan Calarco"
|
||||||
|
echo
|
||||||
|
echo "Usage:"
|
||||||
|
echo "$0 {backend|frontend} name [-t type]"
|
||||||
|
echo
|
||||||
|
echo " backend this is the backend server"
|
||||||
|
echo " frontend this is the frontend server"
|
||||||
|
echo " name repository name (e.g. devel-silvan)"
|
||||||
|
echo " type the type of repository, default is 'people', choices are:"
|
||||||
|
echo " people group"
|
||||||
|
echo
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "openmamba new repository creation tool"
|
||||||
|
echo "Copyright (c) 2007-2008 by Silvan Calarco"
|
||||||
|
echo
|
||||||
|
|
||||||
|
if [ "$CONFMODE" = "backend" ]; then
|
||||||
|
|
||||||
|
for r in ${local_reps[*]}; do
|
||||||
|
[ "$r" = "$REPNAME" ] && REPTYPE=local
|
||||||
|
done
|
||||||
|
|
||||||
|
for r in ${remote_reps[*]}; do
|
||||||
|
[ "$r" = "$REPNAME" ] && REPTYPE=remote
|
||||||
|
done
|
||||||
|
|
||||||
|
[ "$REPTYPE" ] || {
|
||||||
|
echo "Error: please add repository to /etc/sysconfig/openmamba-central first; aborting."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[ -e $REPDIR ] && {
|
||||||
|
echo "Error: a file or directory called $REPDIR already exits; aborting."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
[ -e $DISTROMATICDIR ] && {
|
||||||
|
echo "Error: a file or directory called $DISTROMATICDIR already exits; aborting."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
mkdir -p $REPDIR/{base,SRPMS.base,home,old} || {
|
||||||
|
echo "Error: cannot create directories in $REPDIR; aborting."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
mkdir -p $REPDIR/nonflat/RPMS
|
||||||
|
ln -s ../SRPMS.base $REPDIR/nonflat/SRPMS
|
||||||
|
|
||||||
|
for a in ${archs[*]}; do
|
||||||
|
ln -s ../../RPMS.$a $REPDIR/nonflat/RPMS/$a
|
||||||
|
mkdir -p $REPDIR/RPMS.$a || {
|
||||||
|
echo "Error: cannot create directories in $REPDIR; aborting."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
done
|
||||||
|
|
||||||
|
mkdir -p $DISTROMATICDIR || {
|
||||||
|
echo "Error: cannot create directory $DISTROMATICDIR; aborting."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ "$REPTYPE" = "local" ]; then
|
||||||
|
useradd ftp$REPNAME -d $REPDIR -s /bin/true || {
|
||||||
|
echo "Error: cannot create ftp$REPNAME user; aborting."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
chown -R ftp$REPNAME.ftp $REPDIR/{SRPMS.base,RPMS.*,nonflat,old}
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat > $REPDIR/.htaccess << _EOF
|
||||||
|
AuthType Basic
|
||||||
|
AuthUserFile /var/www/davdb/$REPUSER
|
||||||
|
AuthName "Authentication required"
|
||||||
|
_EOF
|
||||||
|
|
||||||
|
echo "Repository has been created on the backend, now you need to do the following things:"
|
||||||
|
echo "+ configure distromatic for the $REPNAME repository"
|
||||||
|
echo "+ launch 'openmamba-newrep frontend' on the frontend server"
|
||||||
|
echo "+ add HTML code for the repository publication of the website"
|
||||||
|
echo
|
||||||
|
|
||||||
|
elif [ "$CONFMODE" = "frontend" ]; then
|
||||||
|
REPUSER="${REPNAME/*-/}"
|
||||||
|
TEMPLATEDIR=$local_ftp/template
|
||||||
|
|
||||||
|
[ "`getent passwd $REPUSER`" ] && {
|
||||||
|
echo "Error: user $REPUSER already exits; aborting."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
[ -e $REPDIR ] && {
|
||||||
|
echo "Error: a file or directory called $REPDIR already exits; aborting."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
useradd $REPUSER -d $REPDIR -s /bin/true || {
|
||||||
|
echo "Error: cannot create ftp$REPNAME user; aborting."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
REPUSER_PASSWD=`mkpasswd -s 0 -l 9`
|
||||||
|
echo "$REPUSER_PASSWD" | passwd $REPUSER --stdin
|
||||||
|
|
||||||
|
mkdir -p $REPDIR/{base,SRPMS.base,home,old} || {
|
||||||
|
echo "Error: cannot create directories in $REPDIR; aborting."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
cp -a $TEMPLATEDIR/home/* $REPDIR/home/
|
||||||
|
mkdir -p $REPDIR/nonflat/RPMS
|
||||||
|
ln -s ../SRPMS.base $REPDIR/nonflat/SRPMS
|
||||||
|
|
||||||
|
for a in ${archs[*]}; do
|
||||||
|
ln -s ../../RPMS.$a $REPDIR/nonflat/RPMS/$a
|
||||||
|
mkdir -p $REPDIR/RPMS.$a || {
|
||||||
|
echo "Error: cannot create directories in $REPDIR; aborting."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
done
|
||||||
|
|
||||||
|
chown -R $REPUSER.nobody $REPDIR/{SRPMS.base,RPMS.*,nonflat,old}
|
||||||
|
chmod -R 775 $REPDIR/{SRPMS.base,RPMS.*,nonflat,old}
|
||||||
|
ln -s $REPDIR/home/ /var/www/www.openmamba.org/people/$REPUSER
|
||||||
|
|
||||||
|
htpasswd -nb $REPUSER $REPUSER_PASSWD > $WEBDAV_DIR/$REPUSER
|
||||||
|
|
||||||
|
echo "Repository has been created on the frontend"
|
||||||
|
echo "* ftp address: ftpaccounts.openmamba.org"
|
||||||
|
echo "+ ftp user: $REPUSER"
|
||||||
|
echo "+ ftp password: $REPUSER_PASSWD"
|
||||||
|
echo
|
||||||
|
echo "You may configure autospec by copying the following lines at the"
|
||||||
|
echo "bottom of file .autospec in your home directory:"
|
||||||
|
echo
|
||||||
|
echo "#==================================================#"
|
||||||
|
echo "# devel-$REPUSER repository #"
|
||||||
|
echo "#==================================================#"
|
||||||
|
echo "ftp_rw_server[x]=\"ftp://ftpaccounts.openmamba.org\""
|
||||||
|
echo "ftp_rw_port[x]="
|
||||||
|
echo "ftp_rw_passive_mode[x]=on"
|
||||||
|
echo "ftp_rw_user[x]=$REPUSER"
|
||||||
|
echo "ftp_rw_passwd[x]=\"$REPUSER_PASSWD\""
|
||||||
|
echo "ftp_rw_rpms_dir[x]=\"/RPMS.@arch@\""
|
||||||
|
echo "ftp_rw_srpms_dir[x]=\"/SRPMS.base\""
|
||||||
|
echo "arch_list[x]=\"${archs[*]}\""
|
||||||
|
echo "arch_noarch_upload[x]=\"${arch_list[8]}\""
|
||||||
|
echo "ftpdir_rw_old[x]=\"\""
|
||||||
|
echo "ftpurl_ro_rpms[x]=\"ftp://ftpaccounts.openmamba.org/pub/openmamba/devel-$REPUSER/RPMS.@arch@\""
|
||||||
|
echo "ftpurl_ro_srpms[x]=\"ftp://ftpaccounts.openmamba.org/pub/openmamba/devel-$REPUSER/SRPMS.base\""
|
||||||
|
echo "#==================================================#"
|
||||||
|
echo
|
||||||
|
echo "Warning: you have to replace the occurencies of 'x' within brackets '[x]'"
|
||||||
|
echo " with the first free server number in your current autospec configuration."
|
||||||
|
echo
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
712
bin/openmamba-repository
Executable file
712
bin/openmamba-repository
Executable file
@ -0,0 +1,712 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# openmamba inter-repository import script from remote ftp to local
|
||||||
|
# Copyright (c) 2007-2009 by Silvan Calarco
|
||||||
|
#
|
||||||
|
. /etc/sysconfig/openmamba-central
|
||||||
|
|
||||||
|
me=${0##*/}
|
||||||
|
|
||||||
|
function usage() {
|
||||||
|
|
||||||
|
echo "openmamba inter-repository import script"
|
||||||
|
echo "Copyright (c) 2007-2008 by Silvan Calarco"
|
||||||
|
echo
|
||||||
|
echo "Usage:"
|
||||||
|
echo "$me list"
|
||||||
|
echo "$me archive REPOSITORY PKGS ..."
|
||||||
|
echo "$me query REPOSITORY PKGS ..."
|
||||||
|
echo "$me verify REPOSITORY [PKGS ...]"
|
||||||
|
echo "$me inspect REPOSITORY {PKGS ...} [-d REPOSITORY]"
|
||||||
|
echo "$me setwarning REPOSITORY {PKG ...} -t \"TEXT\""
|
||||||
|
echo "$me diff REPOSITORY [PKGS ...] [-d REPOSITORY]"
|
||||||
|
echo "$me import REPOSITORY [PKGS ...] [-d REPOSITORY] [-s]"
|
||||||
|
echo "$me release REPOSITORY [PKGS ...] [-d REPOSITORY] [-s]"
|
||||||
|
echo "$me distromatic REPOSITORY"
|
||||||
|
echo
|
||||||
|
echo " -d use given repository as destination (default: devel)"
|
||||||
|
echo " -s simulate operations to see if it would work"
|
||||||
|
echo " -t warning text"
|
||||||
|
}
|
||||||
|
|
||||||
|
# get_pkg_buildinfo - uses distromatic generated build file for
|
||||||
|
# getting information on the repository
|
||||||
|
#
|
||||||
|
# $1: repositoy name
|
||||||
|
# $2: pkg name
|
||||||
|
# $3: architecture
|
||||||
|
function get_pkg_buildinfo() {
|
||||||
|
|
||||||
|
local pkg i
|
||||||
|
|
||||||
|
[ $1 ] && rep=$1 || exit 1
|
||||||
|
[ $2 ] && pkg=$2
|
||||||
|
[ $3 ] && buildarch="$3" || buildarch="i586"
|
||||||
|
|
||||||
|
DISTROMATIC_BUILD_FILE=$local_distromatic/$rep/builds-$buildarch
|
||||||
|
|
||||||
|
[ -e $DISTROMATIC_BUILD_FILE ] || {
|
||||||
|
echo "Error: missing distromatic generated file $DISTROMATIC_BUILD_FILE; aborting."
|
||||||
|
exit 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_header=();
|
||||||
|
pkg_builds=();
|
||||||
|
pkg_obsoletes=();
|
||||||
|
|
||||||
|
. $DISTROMATIC_BUILD_FILE
|
||||||
|
|
||||||
|
for i in ${pkg_list[*]}; do
|
||||||
|
if [ "$i" == "${pkg_header[0]}" ]; then
|
||||||
|
pkg_name=${pkg_header[0]};
|
||||||
|
# Note: pkg_arch reported in builds file is just last arch source was
|
||||||
|
# built for, so we use repository arch instead
|
||||||
|
pkg_arch=${pkg_header[1]};
|
||||||
|
[ "$pkg_arch" = "noarch" ] || pkg_arch=$buildarch
|
||||||
|
pkg_version=${pkg_header[2]};
|
||||||
|
pkg_release=${pkg_header[3]};
|
||||||
|
pkg_group=${pkg_header[4]};
|
||||||
|
pkg_license=${pkg_header[5]};
|
||||||
|
pkg_size=${pkg_header[6]};
|
||||||
|
pkg_buildtime=${pkg_header[7]};
|
||||||
|
pkg_altrep=${pkg_header[8]};
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
unset pkg_name pkg_arch pkg_version pkg_release \
|
||||||
|
pkg_group pkg_license pkg_size pkg_buildtime pkg_altrep
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
function import_file() {
|
||||||
|
[ $1 ] || exit 1
|
||||||
|
|
||||||
|
local f import_mode
|
||||||
|
f=$1
|
||||||
|
import_mode=$2
|
||||||
|
if [ "$import_mode" = "backup" ]; then
|
||||||
|
curl_delete_add="-Q '-DELE $f'"
|
||||||
|
else
|
||||||
|
curl_delete_add=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
[ "$simulate" != "1" ] &&
|
||||||
|
if [ "$ORIG_MODE" = "remote" ]; then
|
||||||
|
if [ $ORIG_URL_LOCAL_ARCH -a ! -f $ORIG_URL_LOCAL_ARCH/$f ]; then
|
||||||
|
echo "Warning: package missing in local mirror; setting copy from remote repository."
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$DEST_MODE" = "local" ]; then
|
||||||
|
# remote -> local
|
||||||
|
if [ $ORIG_URL_LOCAL_ARCH -a -f $ORIG_URL_LOCAL_ARCH/$f ]; then
|
||||||
|
echo -n "(L) "
|
||||||
|
# if file exists in a local mirror use it by preference
|
||||||
|
cp $ORIG_URL_LOCAL_ARCH/$f $DEST_URL_ARCH/ || {
|
||||||
|
echo "Error: cannot move file $ORIG_URL_LOCAL_ARCH/$f to $DEST_URL_ARCH/$f; aborting."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
eval curl -s -u$ftpuser:$ftppass $ORIG_URL_ARCH $curl_delete_add >/dev/null && {
|
||||||
|
rm -f $ORIG_URL_LOCAL_ARCH/$f
|
||||||
|
} || {
|
||||||
|
echo "Warning: cannot delete remote file $ORIG_URL_ARCH/$f; you'll have to delete it."
|
||||||
|
echo curl -s -u$ftpuser:$ftppass $ORIG_URL_ARCH $curl_delete_add
|
||||||
|
}
|
||||||
|
else
|
||||||
|
echo -n "(R) "
|
||||||
|
curl -s -u$ftpuser:$ftppass \
|
||||||
|
--get $ORIG_URL_ARCH/$f \
|
||||||
|
-o $DEST_URL_ARCH/$f $curl_delete_add || {
|
||||||
|
echo "Error: cannot get file $ORIG_URL_ARCH/$f; aborting."
|
||||||
|
echo curl -s -u$ftpuser:$ftppass \
|
||||||
|
--get $ORIG_URL_ARCH/$f \
|
||||||
|
-o $DEST_URL_ARCH/$f $curl_delete_add
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# remote -> remote
|
||||||
|
echo "Error: remote to remote file import is not implemented yet; aborting."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [ "$DEST_MODE" = "local" ]; then
|
||||||
|
# local -> local
|
||||||
|
cp $ORIG_URL_ARCH/$f $DEST_URL_ARCH/ || {
|
||||||
|
echo "Error: cannot copy file $ORIG_URL_ARCH/$f to $DEST_URL_ARCH/$f; aborting."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
if [ "$import_mode" = "backup" ]; then
|
||||||
|
rm -f $ORIG_URL_ARCH/$f || {
|
||||||
|
echo "Error: cannot remove file $ORIG_URL_ARCH/$f; aborting."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# local -> remote
|
||||||
|
echo "Error: local to remote file import is not implemented yet; aborting."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function backup_local_file() {
|
||||||
|
[ $1 ] || return
|
||||||
|
|
||||||
|
[ -e $LOCAL_BACKUP ] || mkdir -p $LOCAL_BACKUP
|
||||||
|
movefiles=$1
|
||||||
|
|
||||||
|
#`find $DEST_URL_ARCH -maxdepth 1 -regex ".*/${pkgname}-[^-]*-[^-]*"`
|
||||||
|
for m in $movefiles; do
|
||||||
|
echo "backing up $m"
|
||||||
|
if [ "$simulate" != "1" ]; then
|
||||||
|
mv $m $LOCAL_BACKUP/ || {
|
||||||
|
echo "Error: can't move $m to $LOCAL_BACKUP; aborting."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function backup_package() {
|
||||||
|
local rep reg i
|
||||||
|
|
||||||
|
[ "$1" ] || return
|
||||||
|
[ "$2" ] && rep=$2 || rep=$destrepository
|
||||||
|
[ "$3" ] && reg=$3 || reg=$DESTREGFILE
|
||||||
|
|
||||||
|
archive_pkg=$1
|
||||||
|
|
||||||
|
get_pkg_buildinfo $rep $archive_pkg
|
||||||
|
|
||||||
|
if [ "$pkg_name" ]; then
|
||||||
|
PKG_FILENAME="$pkg_name-$pkg_version-$pkg_release.src.rpm"
|
||||||
|
|
||||||
|
[ -f $DEST_URL_LOCAL/SRPMS.base/$PKG_FILENAME ] || {
|
||||||
|
echo "Error: package $PKG_FILENAME does not exist in local repository; aborting."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
backup_local_file $DEST_URL_LOCAL/SRPMS.base/$PKG_FILENAME
|
||||||
|
if [ "$simulate" != "1" -a "$DEST_MODE" = "remote" ]; then
|
||||||
|
curl -s -u$ftpuser:$ftppass $DEST_URL/SRPMS.base/ -Q "-DELE $PKG_FILENAME" >/dev/null || {
|
||||||
|
echo "Warning: cannot delete remote file $DEST_URL/SRPMS.base/$PKG_FILENAME; you'll have to delete it."
|
||||||
|
}
|
||||||
|
fi
|
||||||
|
|
||||||
|
for i in ${pkg_builds[*]}; do
|
||||||
|
PKG_FILENAME="$i-$pkg_version-$pkg_release.$pkg_arch.rpm"
|
||||||
|
[ -f $DEST_URL_LOCAL/RPMS.i586/$PKG_FILENAME ] || {
|
||||||
|
echo "Error: package $PKG_FILENAME does not exist in local repository; aborting."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
backup_local_file $DEST_URL_LOCAL/RPMS.i586/$PKG_FILENAME
|
||||||
|
if [ "$simulate" != "1" -a "$DEST_MODE" = "remote" ]; then
|
||||||
|
curl -s -u$ftpuser:$ftppass $DEST_URL/RPMS.i586/ -Q "-DELE $PKG_FILENAME" >/dev/null || {
|
||||||
|
echo "Warning: cannot delete remote file $DEST_URL/RPMS.i586/$PKG_FILENAME; you'll have to delete it."
|
||||||
|
}
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# write register
|
||||||
|
[ "$simulate" != "1" ] && {
|
||||||
|
echo "`date +%Y%m%d%H%M` Package <a href=\"/distribution/distromatic.html?tag=$rep&pkg=$pkg_name.source\">$pkg_name</a> ($pkg_version-$pkg_release) archived" >> $reg
|
||||||
|
# | \
|
||||||
|
# tee -a $ORIGREGFILE $DESTREGFILE >/dev/null
|
||||||
|
# echo "`date +%Y%m%d%H%M` \"\" \"package $pkg_name ($pkg_version-$pkg_release) archived from $rep\"" >> $reg
|
||||||
|
}
|
||||||
|
else
|
||||||
|
echo "Warning: package $archive_pkg does not exists in $rep; skipping."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function import_package() {
|
||||||
|
[ $1 ] || exit 1
|
||||||
|
|
||||||
|
local import_pkg import_mode
|
||||||
|
|
||||||
|
import_pkg=$1
|
||||||
|
import_mode=$2
|
||||||
|
|
||||||
|
# check release in dest repository
|
||||||
|
get_pkg_buildinfo $destrepository $import_pkg
|
||||||
|
|
||||||
|
[ "$pkg_version" ] && {
|
||||||
|
destpkgname="$pkg_name"
|
||||||
|
destpkgversion="$pkg_version-$pkg_release"
|
||||||
|
destpkgarch="$pkg_arch"
|
||||||
|
} || destpkgversion="none"
|
||||||
|
|
||||||
|
get_pkg_buildinfo $origrepository $import_pkg
|
||||||
|
|
||||||
|
[ "$pkg_version" ] && {
|
||||||
|
origpkgname="$pkg_name"
|
||||||
|
origpkgversion="$pkg_version-$pkg_release"
|
||||||
|
origpkgarch="$pkg_arch"
|
||||||
|
} || origpkgversion="none"
|
||||||
|
|
||||||
|
[ $origpkgname ] || {
|
||||||
|
echo "Error: package $import_pkg does not exist; aborting."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
DEST_URL_ARCH=$DEST_URL/SRPMS.base/
|
||||||
|
ORIG_URL_ARCH=$ORIG_URL/SRPMS.base/
|
||||||
|
ORIG_URL_LOCAL_ARCH=$ORIG_URL_LOCAL/SRPMS.base/
|
||||||
|
|
||||||
|
PKG_FILENAME="$origpkgname-$origpkgversion.src.rpm"
|
||||||
|
|
||||||
|
[ "$ORIG_MODE" = "remote" ] &&
|
||||||
|
ORIG_FILELIST=`curl -s -l -u$ftpuser:$ftppass --url $ORIG_URL_ARCH/` ||
|
||||||
|
ORIG_FILELIST=`ls $ORIG_URL_ARCH`
|
||||||
|
|
||||||
|
check_existence=0;
|
||||||
|
|
||||||
|
for i in $ORIG_FILELIST; do
|
||||||
|
[ "$i" = "$PKG_FILENAME" ] && check_existence=1;
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ $check_existence = 1 ]; then
|
||||||
|
|
||||||
|
[ "$destpkgversion" = "$origpkgversion" ] && {
|
||||||
|
echo "Warning: same version of $origpkgname exists in destination"
|
||||||
|
}
|
||||||
|
|
||||||
|
echo -n "Import $PKG_FILENAME ($origpkgversion -> $destpkgversion) [y/N]?"
|
||||||
|
read ans
|
||||||
|
|
||||||
|
[ "$ans" = "y" -o "$ans" = "Y" ] && {
|
||||||
|
|
||||||
|
echo -n "Importing $PKG_FILENAME "
|
||||||
|
import_file $PKG_FILENAME $import_mode
|
||||||
|
|
||||||
|
for i in ${pkg_builds[*]}; do
|
||||||
|
PKG_FILENAME="$i-$origpkgversion.$origpkgarch.rpm"
|
||||||
|
DEST_URL_ARCH=$DEST_URL/RPMS.i586/
|
||||||
|
ORIG_URL_ARCH=$ORIG_URL/RPMS.i586/
|
||||||
|
ORIG_URL_LOCAL_ARCH=$ORIG_URL_LOCAL/RPMS.i586/
|
||||||
|
|
||||||
|
echo -n "$PKG_FILENAME "
|
||||||
|
import_file $PKG_FILENAME $import_mode
|
||||||
|
done
|
||||||
|
echo
|
||||||
|
|
||||||
|
# write register
|
||||||
|
[ "$simulate" != "1" ] && {
|
||||||
|
echo "`date +%Y%m%d%H%M` Package <a href=\"/distribution/distromatic.html?tag=$destrepository&pkg=$import_pkg\">$import_pkg</a> ($origpkgversion -> $destpkgversion) imported from $origrepository to $destrepository" | \
|
||||||
|
tee -a $ORIGREGFILE $DESTREGFILE >/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ "$import_mode" = "backup" ]; then
|
||||||
|
# backup stuff
|
||||||
|
[ "$destpkgversion" != "none" -a \
|
||||||
|
"$destpkgversion" != "$origpkgversion" ] && {
|
||||||
|
backup_package $import_pkg $destrepository $DESTREGFILE
|
||||||
|
}
|
||||||
|
# remove distromatic extra files associated with this package
|
||||||
|
[ -e $local_distromatic/$rep/warnings/$import_pkg.in ] && {
|
||||||
|
rm -f $local_distromatic/$rep/warnings/$import_pkg.in ||
|
||||||
|
echo "Warning: cannot remove file $local_distromatic/$rep/warnings/$import_pkg.in"
|
||||||
|
}
|
||||||
|
fi
|
||||||
|
|
||||||
|
#for i in ${pkg_obsoletes}; do
|
||||||
|
# PKG_FILENAME="$i-$pkg_version-$pkg_release.$namearch.rpm"
|
||||||
|
# DEST_URL_ARCH=$DEST_URL/RPMS.i586/$PKG_FILENAME
|
||||||
|
# [ -e $DEST_URL_ARCH ] && echo "Warning: obsoleted package $i exists"
|
||||||
|
# backup_package $i $destrepository $DESTREGFILE
|
||||||
|
# #echo rm $DEST_URL_ARCH
|
||||||
|
#done
|
||||||
|
|
||||||
|
} # ans = y
|
||||||
|
|
||||||
|
else # check_existence != 1
|
||||||
|
echo "Warning: $import_pkg reported by distromatic does no longer exist"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function extract_diffinfo() {
|
||||||
|
PKG=$1
|
||||||
|
REP=$2
|
||||||
|
TMP=$3
|
||||||
|
local i
|
||||||
|
|
||||||
|
get_pkg_buildinfo $REP $PKG
|
||||||
|
if [ "$pkg_name" ]; then
|
||||||
|
PKG_FILENAME="$local_ftp/$REP/SRPMS.base/$pkg_name-$pkg_version-$pkg_release.src.rpm"
|
||||||
|
[ -e "$PKG_FILENAME" ] || {
|
||||||
|
echo "Error: package $PKG_FILENAME missing in $origrepository; skipping"
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
rpm -qp $PKG_FILENAME --requires > $TMP/buildrequires
|
||||||
|
|
||||||
|
autospec -q -x $PKG_FILENAME -F \*.spec --destdir $TMP >/dev/null || {
|
||||||
|
echo "Error: could not extract specfile from $PKG_FILENAME; skipping package"
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
[ -e "$TMP_SPEC_DIR/$pkg_name.spec" ] || {
|
||||||
|
SPEC_FOUND="`ls $TMP_SPEC_DIR/*.spec`"
|
||||||
|
mv $SPEC_FOUND $TMP_SPEC_DIR/$pkg_name.spec
|
||||||
|
echo "Warning: specfile name should be $pkg_name.spec instead of ${SPEC_FOUND/*\//} in $REP repository"
|
||||||
|
}
|
||||||
|
> $TMP/requires
|
||||||
|
> $TMP/provides
|
||||||
|
for i in ${pkg_builds[*]}; do
|
||||||
|
PKG_FILENAME="$local_ftp/$REP/RPMS.i586/$i-$pkg_version-$pkg_release.$pkg_arch.rpm"
|
||||||
|
[ -e "$PKG_FILENAME" ] || {
|
||||||
|
echo "Error: package $PKG_FILENAME missing in $origrepository; skipping"
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
rpm -qp $PKG_FILENAME --requires >> $TMP/requires
|
||||||
|
rpm -qp $PKG_FILENAME --provides >> $TMP/provides
|
||||||
|
rpm -qlp $PKG_FILENAME >> $TMP/files
|
||||||
|
done
|
||||||
|
else
|
||||||
|
#echo "Warning: can't find package $PKG in $REP repository"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
[ $1 ] || { usage; exit 1; }
|
||||||
|
|
||||||
|
origrepository=
|
||||||
|
destrepository=devel
|
||||||
|
packages=
|
||||||
|
command=
|
||||||
|
simulate=0
|
||||||
|
|
||||||
|
while [ "$1" ]; do
|
||||||
|
case $1 in
|
||||||
|
-d)
|
||||||
|
destrepository=$2; shift ;;
|
||||||
|
-s)
|
||||||
|
simulate=1 ;;
|
||||||
|
-t)
|
||||||
|
shift
|
||||||
|
warningtext="$@"
|
||||||
|
break ;;
|
||||||
|
*)
|
||||||
|
if [ "$command" ]; then
|
||||||
|
case "$command" in
|
||||||
|
"import"|"release"|"query"|"verify"|"archive"|"diff"|"inspect"|"setwarning"|"distromatic")
|
||||||
|
[ "$origrepository" ] &&
|
||||||
|
packages="$packages $1" ||
|
||||||
|
origrepository=$1
|
||||||
|
;;
|
||||||
|
*) usage
|
||||||
|
echo "Error: invalid option $1; aborting."
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
else
|
||||||
|
case "$1" in
|
||||||
|
"import"|"release"|"query"|"verify"|"archive"|"list"|"diff"|"inspect"|"setwarning"|"distromatic") command=$1 ;;
|
||||||
|
*)
|
||||||
|
usage
|
||||||
|
echo "Errror: $1 is not a valid command; aborting."
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
[ "$command" = "" ] && { usage; exit 1; }
|
||||||
|
|
||||||
|
[ "$command" = "list" ] && echo "Local repositories:"
|
||||||
|
for a in ${local_reps[*]}; do
|
||||||
|
[ "$a" = "$destrepository" ] && DEST_MODE=local;
|
||||||
|
[ "$a" = "$origrepository" ] && ORIG_MODE=local;
|
||||||
|
[ "$command" = "list" ] && echo "$a"
|
||||||
|
done
|
||||||
|
[ "$do_list" ] && echo "Remote repositories:"
|
||||||
|
for a in ${remote_reps[*]}; do
|
||||||
|
[ "$a" = "$destrepository" ] && DEST_MODE=remote;
|
||||||
|
[ "$a" = "$origrepository" ] && ORIG_MODE=remote;
|
||||||
|
[ "$command" = "list" ] && echo "$a"
|
||||||
|
done
|
||||||
|
[ "$command" = "list" ] && exit 0;
|
||||||
|
|
||||||
|
[ "$origrepository" ] || { usage; exit 1; }
|
||||||
|
|
||||||
|
[ "$DEST_MODE" ] || { echo "Error: $destrepository is not a valid repository; aborting."; exit 1; }
|
||||||
|
[ "$ORIG_MODE" ] || { echo "Error: $origrepository is not a valid repository; aborting."; exit 1; }
|
||||||
|
[ "$DEST_MODE" = "remote" ] && { echo "Waring: destination is a remote repository; this is an EXPERIMENTAL feature."; }
|
||||||
|
|
||||||
|
[ "$command" = "query" ] && {
|
||||||
|
[ "$packages" ] || { usage; exit 1; }
|
||||||
|
for i in $packages; do
|
||||||
|
get_pkg_buildinfo $origrepository $i
|
||||||
|
if [ ! "$pkg_name" ]; then
|
||||||
|
echo "$i: package not found in $origrepository repository"
|
||||||
|
else
|
||||||
|
echo "Name: $pkg_name"
|
||||||
|
echo "BuildArch: $pkg_arch"
|
||||||
|
echo "Version: $pkg_version"
|
||||||
|
echo "Release: $pkg_release"
|
||||||
|
echo "Group: $pkg_group"
|
||||||
|
echo "License: $pkg_license"
|
||||||
|
echo "Size: $pkg_size"
|
||||||
|
echo "Builds: ${pkg_builds[*]}"
|
||||||
|
echo "Obsoletes: ${pkg_obsoletes[*]}"
|
||||||
|
echo
|
||||||
|
fi
|
||||||
|
|
||||||
|
done
|
||||||
|
|
||||||
|
exit 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
[ "$command" = "verify" ] && {
|
||||||
|
[ "$packages" ] || {
|
||||||
|
get_pkg_buildinfo $origrepository
|
||||||
|
packages=${pkg_list[*]}
|
||||||
|
}
|
||||||
|
for i in $packages; do
|
||||||
|
get_pkg_buildinfo $origrepository $i
|
||||||
|
if [ ! "$pkg_name" ]; then
|
||||||
|
echo "$i: package not found in $origrepository repository"
|
||||||
|
else
|
||||||
|
PKG_FILENAME="$i-$pkg_version-$pkg_release.src.rpm"
|
||||||
|
rpm2cpio $local_ftp/${origrepository}/SRPMS.base/$PKG_FILENAME &>/dev/null || {
|
||||||
|
echo "Warning: source package $PKG_FILENAME is empty or corrupted."
|
||||||
|
}
|
||||||
|
|
||||||
|
for l in ${pkg_builds[*]}; do
|
||||||
|
PKG_FILENAME="$l-$pkg_version-$pkg_release.$pkg_arch.rpm"
|
||||||
|
rpm2cpio $local_ftp${origrepository}/RPMS.i586/$PKG_FILENAME &>/dev/null || {
|
||||||
|
echo "Warning: package $PKG_FILENAME is empty or corrupted."
|
||||||
|
}
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
done
|
||||||
|
|
||||||
|
exit 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
[ "$command" = "diff" ] && {
|
||||||
|
[ "$packages" ] || {
|
||||||
|
get_pkg_buildinfo $origrepository
|
||||||
|
packages=${pkg_list[*]}
|
||||||
|
}
|
||||||
|
TMP_SPEC_DIR=`mktemp -d`
|
||||||
|
for i in $packages; do
|
||||||
|
echo
|
||||||
|
echo "*******************************************************************"
|
||||||
|
echo "$i package check:"
|
||||||
|
echo "*******************************************************************"
|
||||||
|
|
||||||
|
extract_diffinfo $i $origrepository $TMP_SPEC_DIR || continue
|
||||||
|
[ -e $TMP_SPEC_DIR/$i.spec ] || {
|
||||||
|
echo "Error: could not extract specfile for $i in $origrepository repository; skipping"
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
mv $TMP_SPEC_DIR/$i.spec $TMP_SPEC_DIR/$i.spec.origrep
|
||||||
|
mv $TMP_SPEC_DIR/files $TMP_SPEC_DIR/files.origrep
|
||||||
|
sort -u $TMP_SPEC_DIR/buildrequires > $TMP_SPEC_DIR/buildrequires.origrep
|
||||||
|
sort -u $TMP_SPEC_DIR/requires > $TMP_SPEC_DIR/requires.origrep
|
||||||
|
sort -u $TMP_SPEC_DIR/provides > $TMP_SPEC_DIR/provides.origrep
|
||||||
|
|
||||||
|
extract_diffinfo $i $destrepository $TMP_SPEC_DIR || {
|
||||||
|
echo "Looks like a new package; inspecting data:"
|
||||||
|
echo ""
|
||||||
|
echo "SPECFILE:"
|
||||||
|
echo "========="
|
||||||
|
cat $TMP_SPEC_DIR/$i.spec.origrep
|
||||||
|
echo ""
|
||||||
|
echo "REQUIRES:"
|
||||||
|
echo "========="
|
||||||
|
cat $TMP_SPEC_DIR/requires.origrep
|
||||||
|
echo ""
|
||||||
|
echo "PROVIDES:"
|
||||||
|
echo "========="
|
||||||
|
cat $TMP_SPEC_DIR/provides.origrep
|
||||||
|
echo ""
|
||||||
|
echo "FILES:"
|
||||||
|
echo "======"
|
||||||
|
cat $TMP_SPEC_DIR/files.origrep
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
[ -e $TMP_SPEC_DIR/$i.spec ] || {
|
||||||
|
echo "Error: could not extract specfile for $i in $destrepository repository; skipping"
|
||||||
|
}
|
||||||
|
mv $TMP_SPEC_DIR/$i.spec $TMP_SPEC_DIR/$i.spec.destrep
|
||||||
|
mv $TMP_SPEC_DIR/files $TMP_SPEC_DIR/files.destrep
|
||||||
|
sort -u $TMP_SPEC_DIR/buildrequires > $TMP_SPEC_DIR/buildrequires.destrep
|
||||||
|
sort -u $TMP_SPEC_DIR/requires > $TMP_SPEC_DIR/requires.destrep
|
||||||
|
sort -u $TMP_SPEC_DIR/provides > $TMP_SPEC_DIR/provides.destrep
|
||||||
|
|
||||||
|
echo "Showing differences between package version in $origrepository and $destrepository:"
|
||||||
|
echo ""
|
||||||
|
echo "SPECFILE:"
|
||||||
|
echo "========="
|
||||||
|
diff -u $TMP_SPEC_DIR/$i.spec.destrep $TMP_SPEC_DIR/$i.spec.origrep
|
||||||
|
echo ""
|
||||||
|
echo "BUILDREQUIRES:"
|
||||||
|
echo "=============="
|
||||||
|
diff -u $TMP_SPEC_DIR/buildrequires.destrep $TMP_SPEC_DIR/buildrequires.origrep
|
||||||
|
echo ""
|
||||||
|
echo "REQUIRES:"
|
||||||
|
echo "========="
|
||||||
|
diff -u $TMP_SPEC_DIR/requires.destrep $TMP_SPEC_DIR/requires.origrep
|
||||||
|
echo ""
|
||||||
|
echo "PROVIDES:"
|
||||||
|
echo "========="
|
||||||
|
diff -u $TMP_SPEC_DIR/provides.destrep $TMP_SPEC_DIR/provides.origrep
|
||||||
|
echo ""
|
||||||
|
echo "FILES:"
|
||||||
|
echo "======"
|
||||||
|
diff -u $TMP_SPEC_DIR/files.destrep $TMP_SPEC_DIR/files.origrep
|
||||||
|
echo
|
||||||
|
done
|
||||||
|
rm -rf $TMP_SPEC_DIR
|
||||||
|
exit 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
[ "$command" = "setwarning" ] && {
|
||||||
|
[ "$packages" ] || { usage; exit 1; }
|
||||||
|
TMP_SPEC_DIR=`mktemp -d`
|
||||||
|
for i in $packages; do
|
||||||
|
extract_diffinfo $i $origrepository $TMP_SPEC_DIR
|
||||||
|
[ -e $TMP_SPEC_DIR/$i.spec ] || {
|
||||||
|
echo "Error: could not extract specfile for $i in $origrepository repository; aborting."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
echo "$warningtext" > $local_ftp/distromatic/$origrepository/warnings/$i.in
|
||||||
|
done
|
||||||
|
[ "$TMP_SPEC_DIR" != "/" ] && rm -rf $TMP_SPEC_DIR
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
[ "$command" = "inspect" ] && {
|
||||||
|
[ "$packages" ] || { usage; exit 1; }
|
||||||
|
TMP_SPEC_DIR=`mktemp -d`
|
||||||
|
for i in $packages; do
|
||||||
|
extract_diffinfo $i $origrepository $TMP_SPEC_DIR
|
||||||
|
[ -e $TMP_SPEC_DIR/$i.spec ] || {
|
||||||
|
echo "Error: could not extract specfile for $i in $origrepository repository; aborting."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
echo "$i: details of package in $origrepository repository"
|
||||||
|
echo ""
|
||||||
|
echo "SPECFILE:"
|
||||||
|
echo "========="
|
||||||
|
cat $TMP_SPEC_DIR/$i.spec
|
||||||
|
echo ""
|
||||||
|
echo "REQUIRES:"
|
||||||
|
echo "========="
|
||||||
|
cat $TMP_SPEC_DIR/requires
|
||||||
|
echo ""
|
||||||
|
echo "PROVIDES:"
|
||||||
|
echo "========="
|
||||||
|
cat $TMP_SPEC_DIR/provides
|
||||||
|
done
|
||||||
|
[ "$TMP_SPEC_DIR" != "/" ] && rm -rf $TMP_SPEC_DIR
|
||||||
|
exit 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
[ "$command" = "distromatic" ] && {
|
||||||
|
SRCPKGLIST="$local_ftp/$origrepository/srcpkglist"
|
||||||
|
[ -r $SRCPKGLIST ] || {
|
||||||
|
echo "Error: srcpkglist file missing for $origrepository repository; aborting."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
[ -d $local_ftp/$origrepository/specs ] || mkdir $local_ftp/$origrepository/specs
|
||||||
|
[ -d $local_ftp/$origrepository/patches ] || mkdir $local_ftp/$origrepository/patches
|
||||||
|
|
||||||
|
while read line; do
|
||||||
|
set -- $line
|
||||||
|
[ -e $local_ftp/$origrepository/SRPMS.base/$1-$2-$6.src.rpm ] && {
|
||||||
|
[ $local_ftp/$origrepository/SRPMS.base/$1-$2-$6.src.rpm -nt \
|
||||||
|
$local_ftp/$origrepository/specs/$1.spec ] && {
|
||||||
|
# echo $local_ftp/$origrepository/SRPMS.base/$1-$2-$6.src.rpm
|
||||||
|
autospec -x $local_ftp/$origrepository/SRPMS.base/$1-$2-$6.src.rpm -F '*.spec' \
|
||||||
|
--destdir $local_ftp/$origrepository/specs/ -q >/dev/null
|
||||||
|
touch $local_ftp/$origrepository/specs/$1.spec
|
||||||
|
grep -i "^Patch[0-9]*:" $local_ftp/$origrepository/specs/$1.spec &>/dev/null && {
|
||||||
|
autospec -x $local_ftp/$origrepository/SRPMS.base/$1-$2-$6.src.rpm -F '*.patch' \
|
||||||
|
--destdir $local_ftp/$origrepository/patches/ -q >/dev/null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
done < $SRCPKGLIST
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
[ "$simulate" = "1" ] && echo "Simulation mode enabled."
|
||||||
|
#
|
||||||
|
# import and other active commands
|
||||||
|
#
|
||||||
|
DEST_URL=$local_ftp/$destrepository
|
||||||
|
DEST_URL_LOCAL=$local_ftp/$destrepository
|
||||||
|
LOCAL_BACKUP=$DEST_URL/old
|
||||||
|
|
||||||
|
# operation files are always in the local copy of the repository
|
||||||
|
ORIGREGFILE=$local_ftp/$origrepository/operations.log.html
|
||||||
|
DESTREGFILE=$local_ftp/$destrepository/operations.log.html
|
||||||
|
|
||||||
|
# ORIG_URL_LOCAL is set if a local copy of the repository exists
|
||||||
|
# and will be preferred for file transfer optimizations
|
||||||
|
if [ "$ORIG_MODE" = "remote" ]; then
|
||||||
|
ORIG_URL=$dest_ftp/pub/openmamba/$origrepository
|
||||||
|
else
|
||||||
|
ORIG_URL=$local_ftp/$origrepository
|
||||||
|
fi
|
||||||
|
ORIG_URL_LOCAL=$local_ftp/$origrepository
|
||||||
|
|
||||||
|
[ "$command" = "archive" ] && {
|
||||||
|
DEST_URL=$ORIG_URL
|
||||||
|
DEST_URL_LOCAL=$ORIG_URL_LOCAL
|
||||||
|
DEST_MODE=$ORIG_MODE
|
||||||
|
LOCAL_BACKUP=$DEST_URL_LOCAL/old/archived
|
||||||
|
|
||||||
|
[ "$packages" ] || { usage; exit 1; }
|
||||||
|
|
||||||
|
for i in $packages; do
|
||||||
|
backup_package $i $origrepository $ORIGREGFILE
|
||||||
|
done
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
[ "$command" = "import" -o "$command" = "release" ] && {
|
||||||
|
LOCAL_BACKUP=$DEST_URL/old/import-$origrepository
|
||||||
|
|
||||||
|
[ "$origrepository" = "$destrepository" ] && {
|
||||||
|
echo "Error: source and destination repository cannot be the same; aborting."; exit 1; }
|
||||||
|
|
||||||
|
if [ "$command" = "import" ]; then
|
||||||
|
echo "Importing $1: $origrepository ($ORIG_MODE) => $destrepository ($DEST_MODE)"
|
||||||
|
backup_mode=backup
|
||||||
|
else
|
||||||
|
echo "Releasing $1: $origrepository ($ORIG_MODE) => $destrepository ($DEST_MODE)"
|
||||||
|
backup_mode=release
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! "$packages" ]; then
|
||||||
|
get_pkg_buildinfo $origrepository
|
||||||
|
|
||||||
|
for i in ${pkg_list[*]}; do
|
||||||
|
import_package $i $backup_mode
|
||||||
|
done
|
||||||
|
else
|
||||||
|
for i in ${packages[*]}; do
|
||||||
|
import_package $i $backup_mode
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
usage
|
||||||
|
echo "Error: $command is not a valid command; aborting."
|
||||||
|
exit 1
|
2
etc-frontend/cron.hourly/05-ntpd
Executable file
2
etc-frontend/cron.hourly/05-ntpd
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
ntpdate -sbup8 `cat /etc/ntp/step-tickers`
|
77
etc-frontend/cron.hourly/10-openmamba-downloads
Executable file
77
etc-frontend/cron.hourly/10-openmamba-downloads
Executable file
@ -0,0 +1,77 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
. /etc/sysconfig/openmamba-central
|
||||||
|
|
||||||
|
SOURCEDIR=/var/makedist
|
||||||
|
SNAPSHOT_MEDIADIR=/var/ftp/pub/openmamba/devel/media
|
||||||
|
MILESTONE1_MEDIADIR=/var/ftp/pub/openmamba/milestone1/media
|
||||||
|
CACHEDIR=/var/cache/openmamba-downloads
|
||||||
|
DESTBASEURL=/pub/openmamba/devel/media
|
||||||
|
SNAPDATE=`date +%Y%m%d`
|
||||||
|
GREPFILE=$CACHEDIR/current.dat
|
||||||
|
|
||||||
|
|
||||||
|
# do_all_langs_downloads()
|
||||||
|
#
|
||||||
|
# Parameters;
|
||||||
|
#
|
||||||
|
# $1: target
|
||||||
|
# $2: suffix
|
||||||
|
function do_all_langs_downloads() {
|
||||||
|
local l f count count_curr
|
||||||
|
|
||||||
|
tmpfile=`mktemp`
|
||||||
|
|
||||||
|
echo "<script>" > $tmpfile
|
||||||
|
for l in it en; do
|
||||||
|
case $l in
|
||||||
|
it) plus=$5 ;;
|
||||||
|
en) plus=$6 ;;
|
||||||
|
*) plus=0 ;;
|
||||||
|
esac
|
||||||
|
count=$plus
|
||||||
|
for f in $CACHEDIR/*.dat; do
|
||||||
|
count_curr=`grep -c "GET /pub/openmamba/$4/media/.*/openmamba-$1-$l-$2-.* 200 .*+$" $f`
|
||||||
|
count=`expr $count + $count_curr`
|
||||||
|
done
|
||||||
|
echo "downloadsArray['$1-$2-$l']='$count'" >> $tmpfile
|
||||||
|
done
|
||||||
|
echo "</script>" >> $tmpfile
|
||||||
|
|
||||||
|
mv $tmpfile $3/$1/downloads.inc
|
||||||
|
chmod 644 $3/$1/downloads.inc
|
||||||
|
}
|
||||||
|
|
||||||
|
for f in /var/log/httpd/www.openmamba.org-access_log.*.gz; do
|
||||||
|
FILEDATE=`stat $f --printf=%Y`
|
||||||
|
[ -e $CACHEDIR/$FILEDATE.dat ] || {
|
||||||
|
echo "Creating new cache file from $f"
|
||||||
|
gunzip -c $f | \
|
||||||
|
grep "GET /pub/openmamba/.*/media/.*/openmamba-.* 200 .*+$" > $CACHEDIR/$FILEDATE.dat
|
||||||
|
}
|
||||||
|
done
|
||||||
|
|
||||||
|
#[ ! -e $CACHEDIR -o \
|
||||||
|
# $CACHEDIR /var/log/httpd/www.openmamba.org-access_log.1.gz
|
||||||
|
#[ -e $CACHEDIR/
|
||||||
|
# create a temp file with all successfull media downloads
|
||||||
|
grep "GET /pub/openmamba/.*/media/.*/openmamba-.* 200 .*+$" /var/log/httpd/www.openmamba.org-access_log > $GREPFILE
|
||||||
|
|
||||||
|
do_all_langs_downloads livecd milestone1 $MILESTONE1_MEDIADIR milestone1 0 0
|
||||||
|
#732 207
|
||||||
|
do_all_langs_downloads livecd snapshot $SNAPSHOT_MEDIADIR devel 0 0
|
||||||
|
# 732 207
|
||||||
|
do_all_langs_downloads livestudio milestone1 $MILESTONE1_MEDIADIR milestone1 0 0
|
||||||
|
# 97 10
|
||||||
|
do_all_langs_downloads livestudio snapshot $SNAPSHOT_MEDIADIR devel 0 0
|
||||||
|
# 69 49
|
||||||
|
do_all_langs_downloads livegames snapshot $SNAPSHOT_MEDIADIR devel 0 0
|
||||||
|
# 69 20
|
||||||
|
do_all_langs_downloads bootusb milestone1 $MILESTONE1_MEDIADIR milestone1 0 0
|
||||||
|
do_all_langs_downloads bootusb snapshot $SNAPSHOT_MEDIADIR devel 0 0
|
||||||
|
do_all_langs_downloads flash-1GB snapshot $SNAPSHOT_MEDIADIR devel 0 0
|
||||||
|
# 581 457
|
||||||
|
do_all_langs_downloads bootcd snapshot $SNAPSHOT_MEDIADIR devel 0 0
|
||||||
|
# 187 66
|
||||||
|
do_all_langs_downloads installdvd milestone1 $MILESTONE1_MEDIADIR milestone1 0 0
|
||||||
|
|
||||||
|
#rm -f $GREPFILE
|
28
etc-frontend/cron.hourly/20-openmamba-developer-messages
Executable file
28
etc-frontend/cron.hourly/20-openmamba-developer-messages
Executable file
@ -0,0 +1,28 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
. /etc/sysconfig/openmamba-central
|
||||||
|
|
||||||
|
TEMPFILE=`mktemp`
|
||||||
|
DEST_FILE=$local_ftp/devel/developers-status.inc
|
||||||
|
> $TEMPFILE
|
||||||
|
|
||||||
|
for a in ${local_reps[*]} ${remote_reps[*]}; do
|
||||||
|
[ -e $local_ftp/$a/home/developer-status.inc ] && {
|
||||||
|
DATE_UNIX=`date -r $local_ftp/$a/home/developer-status.inc +%s`
|
||||||
|
DATE_HUMAN=`date -r $local_ftp/$a/home/developer-status.inc +%c`
|
||||||
|
TEXT=`cat $local_ftp/$a/home/developer-status.inc`
|
||||||
|
[ "$TEXT" ] || continue
|
||||||
|
TEXT=`echo $TEXT|sed "s|<[^<]*>||g"`
|
||||||
|
echo -n "${DATE_UNIX} " >> $TEMPFILE
|
||||||
|
echo -n "<tr><td nowrap valign=top>${a/*-} (<a href=\"http://www.openmamba.org/distribution/distromatic.html?tag=$a\">$a</a>)</td><td width=100%>" >> $TEMPFILE
|
||||||
|
echo -n "$TEXT <font size=-2><i>($DATE_HUMAN)</i></font>" >> $TEMPFILE
|
||||||
|
echo "</td></tr>" >> $TEMPFILE
|
||||||
|
}
|
||||||
|
done
|
||||||
|
TEMPFILE2=`mktemp`
|
||||||
|
echo "<table width=850>" > $TEMPFILE2
|
||||||
|
cat $TEMPFILE | sort -nrk1 | sed "s|^[0-9]* ||" >> $TEMPFILE2
|
||||||
|
echo "</table>" >> $TEMPFILE2
|
||||||
|
mv $TEMPFILE2 $DEST_FILE
|
||||||
|
chmod 644 $DEST_FILE
|
||||||
|
rm -f $TEMPFILE
|
||||||
|
exit 0
|
23
etc-frontend/cron.weekly/10-openmamba-backup
Executable file
23
etc-frontend/cron.weekly/10-openmamba-backup
Executable file
@ -0,0 +1,23 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
SNAPDATE=`date +%Y%m%d`
|
||||||
|
TMPDIR=`mktemp -d`
|
||||||
|
MYSQL_USER=
|
||||||
|
MYSQL_PASSWORD=
|
||||||
|
echo "Creating www sites backup archives..."
|
||||||
|
tar cjf $TMPDIR/openmamba-www-backup-$SNAPDATE.tar.bz2 /var/www/www.openmamba.org/
|
||||||
|
tar cjf $TMPDIR/openmamba-wiki-backup-$SNAPDATE.tar.bz2 /var/www/wiki.openmamba.org/
|
||||||
|
tar cjf $TMPDIR/openmamba-forum-backup-$SNAPDATE.tar.bz2 /var/www/forum.openmamba.org/
|
||||||
|
tar cjf $TMPDIR/openmamba-bugs-backup-$SNAPDATE.tar.bz2 /var/www/bugs.openmamba.org/
|
||||||
|
|
||||||
|
echo "Creating openmamba database dump..."
|
||||||
|
mysqldump -u $MYSQL_USER --password="$MYSQL_PASSWORD" openmamba > $TMPDIR/openmamba-mysql.dump
|
||||||
|
|
||||||
|
echo "Creating /etc backup..."
|
||||||
|
tar cjf $TMPDIR/openmamba-etc-backup-$SNAPDATE.tar.bz2 /etc
|
||||||
|
|
||||||
|
echo "Creating final global archive..."
|
||||||
|
cd $TMPDIR
|
||||||
|
tar cjvf /root/openmamba-server-backup-$SNAPDATE.tar.bz2 * || exit 1
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
[ "$TMPDIR" ] && rm -rf $TMPDIR
|
43
etc/cron.daily/10-openmamba-mirror-daily
Executable file
43
etc/cron.daily/10-openmamba-mirror-daily
Executable file
@ -0,0 +1,43 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# openmamba daily sync script
|
||||||
|
# (c) 2006-2008 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||||
|
#
|
||||||
|
. /etc/sysconfig/openmamba-central
|
||||||
|
RSYNC_OPT="-av --no-o --delete --delete-after"
|
||||||
|
|
||||||
|
echo "Creating and syncing pkglist"
|
||||||
|
for a in ${local_reps[*]}; do
|
||||||
|
distromatic -q -t $a --genpkglist > $local_ftp/$a/pkglist
|
||||||
|
[ "$ftpsync" ] && {
|
||||||
|
curl -s -T $local_ftp/$a/pkglist -u$ftpuser:$ftppass --url $dest_ftp/pub/openmamba/$a/
|
||||||
|
}
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ "$ftpsync" ]; then
|
||||||
|
echo "Syncing openmamba devel utils dir"
|
||||||
|
ftpsync -q -p $local_ftp/devel/utils \
|
||||||
|
$dest_ftp/pub/openmamba/devel/utils ftpuser=$ftpuser ftppasswd=$ftppass
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Syncing openmamba db dir"
|
||||||
|
if [ "$ftpsync" ]; then
|
||||||
|
ftpsync -q -p $local_ftp/db \
|
||||||
|
$dest_ftp/pub/openmamba/db ftpuser=$ftpuser ftppasswd=$ftppass
|
||||||
|
else
|
||||||
|
rsync \
|
||||||
|
$RSYNC_OPT \
|
||||||
|
$local_ftp/db $dest_rsync \
|
||||||
|
--password-file=/etc/rsync.password --bwlimit=400
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Syncing openmamba lists"
|
||||||
|
if [ "$ftpsync" ]; then
|
||||||
|
ftpsync -q -p $local_ftp/lists \
|
||||||
|
$dest_ftp/pub/openmamba/lists ftpuser=$ftpuser ftppasswd=$ftppass
|
||||||
|
else
|
||||||
|
rsync \
|
||||||
|
$RSYNC_OPT \
|
||||||
|
$local_ftp/lists $dest_rsync \
|
||||||
|
--password-file=/etc/rsync.password --bwlimit=400
|
||||||
|
fi
|
265
etc/cron.daily/20-openmamba-autobuild-makedist
Executable file
265
etc/cron.daily/20-openmamba-autobuild-makedist
Executable file
@ -0,0 +1,265 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Makedist automatic build script
|
||||||
|
# Copyright (c) 2007-2009 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||||
|
#
|
||||||
|
# Usage:
|
||||||
|
#
|
||||||
|
# To overwrite already existing images
|
||||||
|
# FORCE_OVERWRITE=1 ./20-openmamba-makedist
|
||||||
|
#
|
||||||
|
# To commit a new release (relies on snapshot images):
|
||||||
|
# RELEASE=1.0pre3 ./20-openmamba-makedist
|
||||||
|
#
|
||||||
|
. /etc/sysconfig/makedist
|
||||||
|
. /usr/share/makedist/functions.inc.sh
|
||||||
|
|
||||||
|
DISTRONAME=openmamba
|
||||||
|
MAKEDIST_TARGET=openmamba
|
||||||
|
arch=i586
|
||||||
|
SOURCEDIR=/var/makedist
|
||||||
|
|
||||||
|
[ "$TODAYDATE" ] || TODAYDATE=`date +%Y%m%d`
|
||||||
|
[ "$WEEKDAY" ] || WEEKDAY=`date +%u`
|
||||||
|
|
||||||
|
# DAY: 1=monday ... 7=sunday
|
||||||
|
if [ "$RELEASE" ]; then
|
||||||
|
DISTVERSION=milestone1
|
||||||
|
DESTBASEDIR=/var/ftp/pub/openmamba/$DISTVERSION/media
|
||||||
|
ALLMEDIAS=(livecd/livecd-root livecd/livestudio-root installdvd/livecd-root bootusb)
|
||||||
|
ALLMEDIASDAY=(8 8 8 8)
|
||||||
|
# DOWNLOADSFILEPREFIX=$DESTBASEDIR/downloads
|
||||||
|
DESTLATESTFILENAME=latest-$RELEASE.inc.js
|
||||||
|
SOURCEIMGFILEPREFIX="openmamba-$DISTVERSION"
|
||||||
|
else
|
||||||
|
DISTVERSION=devel
|
||||||
|
DESTBASEDIR=/var/ftp/pub/openmamba/$DISTVERSION/media
|
||||||
|
ALLMEDIAS=(livecd/livecd-root livedvd/livedvd-root livecd/livegames-root livecd/testcd-root flash-1GB bootcd bootusb)
|
||||||
|
ALLMEDIASDAY=(5 2 6 4 7 7 5)
|
||||||
|
# DOWNLOADSFILEPREFIX=$DESTBASEDIR/downloads.inc
|
||||||
|
DESTLATESTFILENAME=latest.inc.js
|
||||||
|
SOURCEIMGFILEPREFIX="openmamba"
|
||||||
|
fi
|
||||||
|
DESTIMGFILEPREFIX="openmamba"
|
||||||
|
ALLMEDIASLAST=`expr ${#ALLMEDIAS[*]} - 1`
|
||||||
|
DESTBASEURL=/pub/openmamba/$DISTVERSION/media
|
||||||
|
|
||||||
|
# do_makedist()
|
||||||
|
#
|
||||||
|
# Parameters;
|
||||||
|
#
|
||||||
|
# $1: dist filename
|
||||||
|
# $2: dest filename
|
||||||
|
# $3: language
|
||||||
|
# $4: platform
|
||||||
|
# $5: subplatform
|
||||||
|
# $6 product_name
|
||||||
|
function do_makedist() {
|
||||||
|
local DIST_CREATED=0
|
||||||
|
SOURCEIMG=$SOURCEDIR/$1
|
||||||
|
DESTNAME=$2
|
||||||
|
DESTDIR=$DESTBASEDIR/$6/$3
|
||||||
|
DESTIMG=$DESTDIR/$DESTNAME
|
||||||
|
DESTMD5=$DESTDIR/$DESTNAME.MD5.txt
|
||||||
|
DESTTORRENT=$DESTDIR/$DESTNAME.torrent
|
||||||
|
[ "$RELEASE" ] && \
|
||||||
|
DESTLATEST=$DESTDIR/latest-is-$RELEASETAG.txt || \
|
||||||
|
DESTLATEST=$DESTDIR/latest-is-$SNAPDATE.txt
|
||||||
|
|
||||||
|
if [ ! -f $DESTIMG -o "$FORCE_OVERWRITE" = "1" ]; then
|
||||||
|
[ ! "$SIMULATE" ] && {
|
||||||
|
makedist openmamba PLATFORM=$4 SUBPLATFORM=$5 FORCE=1 LANGUAGE=$3 || {
|
||||||
|
echo "Error building openmamba $6 platform; aborting."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
DIST_CREATED=1
|
||||||
|
}
|
||||||
|
if [ "$RELEASE" ]; then
|
||||||
|
[ -e $DESTDIR ] || mkdir -p $DESTDIR
|
||||||
|
cp $SOURCEIMG $DESTIMG
|
||||||
|
cp $SOURCEDIR/.$1.inc.html $DESTDIR/buildinfo-$RELEASE.inc.html
|
||||||
|
[ "$RELEASE/pre" != "$RELEASE" ] && ln -sf buildinfo-$RELEASE.inc.html $DESTDIR/buildinfo-pre.inc.html
|
||||||
|
cd $DESTDIR
|
||||||
|
md5sum $DESTNAME > $DESTMD5
|
||||||
|
maketorrent-console --title "openmamba $RELEASE $6 $3" --tracker_name "mambaSoft BitTorrent tracker" \
|
||||||
|
http://www.mambasoft.it:8080/announce $DESTNAME --target $DESTTORRENT
|
||||||
|
rm -f $DESTDIR/latest-is-*.txt
|
||||||
|
> $DESTLATEST
|
||||||
|
else
|
||||||
|
[ -e $DESTDIR ] || mkdir -p $DESTDIR
|
||||||
|
cp $SOURCEIMG $DESTIMG
|
||||||
|
cp $SOURCEDIR/.$1.inc.html $DESTDIR/buildinfo.inc.html
|
||||||
|
cd $DESTDIR
|
||||||
|
md5sum $DESTNAME > $DESTMD5
|
||||||
|
maketorrent-console \
|
||||||
|
--comment "openmamba snapshot $SNAPDATE $6 $3 from http://www.openmamba.org" \
|
||||||
|
--tracker_name "mambaSoft BitTorrent tracker" \
|
||||||
|
--language $3 \
|
||||||
|
http://www.mambasoft.it:8080/announce \
|
||||||
|
$DESTNAME --target $DESTTORRENT
|
||||||
|
rm -f $DESTDIR/latest-is-*.txt
|
||||||
|
> $DESTLATEST
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
DESTSIZE=`du $DESTIMG -h | gawk '{ print $1 }'`
|
||||||
|
DESTMD5=`cat $DESTMD5 | gawk '{ print $1 }'`
|
||||||
|
|
||||||
|
cat > $DESTDIR/$DESTLATESTFILENAME << _EOF
|
||||||
|
nameArray['$6-$RELEASETAG-$3']='$DESTNAME';
|
||||||
|
pathArray['$6-$RELEASETAG-$3']='/download.html?file=$DESTBASEURL/$6/$3/';
|
||||||
|
sizeArray['$6-$RELEASETAG-$3']='$DESTSIZE';
|
||||||
|
md5Array['$6-$RELEASETAG-$3']='$DESTMD5';
|
||||||
|
_EOF
|
||||||
|
|
||||||
|
return $DIST_CREATED
|
||||||
|
}
|
||||||
|
|
||||||
|
# do_all_langs_makedist()
|
||||||
|
#
|
||||||
|
# Parameters;
|
||||||
|
#
|
||||||
|
# $1: dist filename
|
||||||
|
# $2: dest filename
|
||||||
|
# $3: platform
|
||||||
|
# $4: subplatform
|
||||||
|
# $5: html output language
|
||||||
|
# $6: product name
|
||||||
|
function do_makedist_and_html() {
|
||||||
|
|
||||||
|
local DIST_LINE DIST_CREATED DIST_DWD
|
||||||
|
|
||||||
|
local tempfile2=`tempfile 2>/dev/null` || tempfile=/tmp/makedist_tmpfile2
|
||||||
|
|
||||||
|
PRODNAME=$6
|
||||||
|
[ $PRODNAME ] || PRODNAME=$PLATFORM
|
||||||
|
|
||||||
|
cat > $tempfile2 << _EOF
|
||||||
|
<div class="downloadbox"><table width="760"><tr><td width=400>
|
||||||
|
<form name="$PRODNAME-form-$RELEASETAG" id="$PRODNAME-form-$RELEASETAG">
|
||||||
|
_EOF
|
||||||
|
|
||||||
|
case $5 in
|
||||||
|
it) echo -n "Lingua: " >> $tempfile2 ;;
|
||||||
|
*) echo -n "Language: " >> $tempfile2 ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
for l in $LANGS; do
|
||||||
|
[ "$l" = "$5" ] && {
|
||||||
|
checked="checked"
|
||||||
|
} || checked=""
|
||||||
|
case $l in
|
||||||
|
it) langname="italiano" ;;
|
||||||
|
es) langname="español" ;;
|
||||||
|
en) langname="english" ;;
|
||||||
|
*) langname="unknown" ;;
|
||||||
|
esac
|
||||||
|
echo "<input type=radio name=\"language\" value=\"$l\" onclick=\"javascript:selectlang('$PRODNAME-${RELEASETAG}','$l');\" $checked>$langname" >> $tempfile2
|
||||||
|
done
|
||||||
|
|
||||||
|
cat >> $tempfile2 << _EOF
|
||||||
|
<br><span name="$PRODNAME-${RELEASETAG}-spanl" id="$PRODNAME-${RELEASETAG}-spanl"></span><script>
|
||||||
|
_EOF
|
||||||
|
echo "<tr><td>" >> $tempfile.$5
|
||||||
|
#>> $tempfile.$5
|
||||||
|
|
||||||
|
unset DIST_DWD
|
||||||
|
for l in $LANGS; do
|
||||||
|
DESTNAME=$DESTIMGFILEPREFIX-$PRODNAME-$l-$2
|
||||||
|
do_makedist $SOURCEIMGFILEPREFIX-$PRODNAME-$l.$1 $DESTNAME $l $3 $4 $PRODNAME
|
||||||
|
DIST_CREATED=$?
|
||||||
|
cat $DESTBASEDIR/$PRODNAME/$l/$DESTLATESTFILENAME >> $tempfile2
|
||||||
|
DIST_DWD="$DIST_DWD <a href=\"/download.html?file=$DESTBASEURL/$PRODNAME/$l/$DESTNAME\">$l-$arch</a>"
|
||||||
|
done
|
||||||
|
DIST_LINE="<a href=\"/distribution/media/$PRODNAME.html?lang=$5\">$PRODNAME</a>"
|
||||||
|
[ $DIST_CREATED ] && DIST_LINE="<b>$DIST_LINE</b>"
|
||||||
|
echo "${DIST_LINE}</td><td>$SNAPDATE</td><td nowrap>[ ${DIST_DWD}]</td></tr>" >>$tempfile.$5
|
||||||
|
|
||||||
|
cat >> $tempfile2 << _EOF
|
||||||
|
</script></form></td><td><span name="${6}-${RELEASETAG}-spanr" id="${6}-${RELEASETAG}-spanr"></span></td></tr></table></div>
|
||||||
|
<script>javascript:selectlang('$PRODNAME-${RELEASETAG}','$5');</script>
|
||||||
|
_EOF
|
||||||
|
|
||||||
|
if [ "$RELEASE" ]; then
|
||||||
|
DESTHTML=$DESTBASEDIR/$PRODNAME/index.inc.$5.$RELEASE.html
|
||||||
|
ln -sf index.inc.$5.$RELEASE.html $DESTBASEDIR/$PRODNAME/index.inc.$5.pre.html
|
||||||
|
else
|
||||||
|
DESTHTML=$DESTBASEDIR/$PRODNAME/index.inc.$5.html
|
||||||
|
fi
|
||||||
|
mv $tempfile2 $DESTHTML
|
||||||
|
chmod +r $DESTHTML
|
||||||
|
}
|
||||||
|
|
||||||
|
LANGUAGE=_SPLIT_
|
||||||
|
|
||||||
|
tempfile=`tempfile 2>/dev/null` || tempfile=/tmp/makedist_tmpfile
|
||||||
|
|
||||||
|
for l in $LANGS; do
|
||||||
|
echo "<table>" > $tempfile.$l
|
||||||
|
done
|
||||||
|
|
||||||
|
for i in `seq 0 $ALLMEDIASLAST`; do
|
||||||
|
|
||||||
|
PLATFORM=${ALLMEDIAS[i]/\/*/}
|
||||||
|
SUBPLATFORM=${ALLMEDIAS[i]/*\//}
|
||||||
|
unset PRODUCT_NAME
|
||||||
|
unset PRODUCT_NAME_OVERRIDE
|
||||||
|
|
||||||
|
[ $SUBPLATFORM ] && . /var/makedist/targets/$MAKEDIST_TARGET/platforms/$SUBPLATFORM/settings.inc
|
||||||
|
. /var/makedist/targets/$MAKEDIST_TARGET/platforms/$PLATFORM/settings.inc
|
||||||
|
[ "$SUBPLATFORM" ] && \
|
||||||
|
media_name=`PLATFORM=$SUBPLATFORM media_name` ||
|
||||||
|
media_name=`media_name`
|
||||||
|
media_suffix=${media_name/*_SPLIT_\./}
|
||||||
|
|
||||||
|
[ $PRODUCT_NAME ] || PRODUCT_NAME=$PLATFORM
|
||||||
|
[ "$PRODUCT_NAME_OVERRIDE" ] && PRODUCT_NAME=$PRODUCT_NAME_OVERRIDE
|
||||||
|
|
||||||
|
#echo "PLATFORM=$PLATFORM SUBPLATFORM=$SUBPLATFORM MEDIA_SUFFIX=$media_suffix"
|
||||||
|
|
||||||
|
if [ "$RELEASE" ]; then
|
||||||
|
echo "Releasing $PRODUCT_NAME media (${PLATFORM}/${SUBPLATFORM})"
|
||||||
|
SIMULATE=1
|
||||||
|
elif [ "$WEEKDAY" = "${ALLMEDIASDAY[i]}" -o \
|
||||||
|
"$FORCEBUILD" = "$PRODUCT_NAME" ]; then
|
||||||
|
echo "Building $PRODUCT_NAME media"
|
||||||
|
unset SIMULATE
|
||||||
|
else
|
||||||
|
SIMULATE=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -e $DESTBASEDIR/$PRODUCT_NAME/en ]; then
|
||||||
|
unset latest
|
||||||
|
latest=`ls $DESTBASEDIR/$PRODUCT_NAME/en/latest-is-*.txt 2>/dev/null| sed "s/.*latest-is-\(.*\)\.txt/\1/"`
|
||||||
|
[ "$latest" -a "$SIMULATE" ] && SNAPDATE=$latest || SNAPDATE=$TODAYDATE
|
||||||
|
[ "$RELEASE" ] && RELEASETAG=milestone1-$RELEASE || RELEASETAG=snapshot-$SNAPDATE
|
||||||
|
|
||||||
|
for l in $LANGS; do
|
||||||
|
# build specific language version
|
||||||
|
[ "$latest" -o ! "$SIMULATE" -o "$RELEASE" ] &&
|
||||||
|
do_makedist_and_html \
|
||||||
|
$media_suffix $RELEASETAG.$media_suffix \
|
||||||
|
$PLATFORM "$SUBPLATFORM" $l $PRODUCT_NAME
|
||||||
|
done
|
||||||
|
|
||||||
|
# # build english version
|
||||||
|
# [ "$latest" -o ! "$SIMULATE" -o "$RELEASE" ] &&
|
||||||
|
# do_makedist_and_html \
|
||||||
|
# $media_suffix $RELEASETAG.$media_suffix \
|
||||||
|
# $PLATFORM "$SUBPLATFORM" en $PRODUCT_NAME
|
||||||
|
else
|
||||||
|
echo "Warning: missing directory $DESTBASEDIR/$PRODUCT_NAME/en; skipping"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
for l in $LANGS; do
|
||||||
|
echo "</table>" >> $tempfile.$l
|
||||||
|
if [ "$RELEASE" ]; then
|
||||||
|
cat $tempfile.$l > $DESTBASEDIR/downloads-$RELEASE.inc.$l
|
||||||
|
[ "${RELEASE/pre}" != "$RELEASE" ] && ln -sf downloads-$RELEASE.inc.$l $DESTBASEDIR/downloads-pre.inc.$l
|
||||||
|
else
|
||||||
|
cat $tempfile.$l > $DESTBASEDIR/downloads.inc.$l
|
||||||
|
fi
|
||||||
|
rm -f $tempfile.$l
|
||||||
|
done
|
||||||
|
|
||||||
|
exit 0
|
46
etc/cron.daily/30-openmamba-autobuild-cleanold
Executable file
46
etc/cron.daily/30-openmamba-autobuild-cleanold
Executable file
@ -0,0 +1,46 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Makedist automatic build script
|
||||||
|
# Copyright (c) 2007-2009 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||||
|
#
|
||||||
|
. /etc/sysconfig/makedist
|
||||||
|
SOURCEDIR=/var/makedist
|
||||||
|
DESTBASEDIR=/var/ftp/pub/openmamba/devel/media
|
||||||
|
DESTBASEURL=/pub/openmamba/devel/media
|
||||||
|
[ "$TODAYDATE" ] || TODAYDATE=`date +%Y%m%d`
|
||||||
|
GLOBDOWNLOADSFILE=$DESTBASEDIR/downloads.inc
|
||||||
|
ARCH=i586
|
||||||
|
|
||||||
|
tmpfile=`mktemp`
|
||||||
|
|
||||||
|
[ $tmpfile ] || {
|
||||||
|
echo "Error: cannot create temporary files; aborting."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
for l in $LANGS; do
|
||||||
|
for d in `find $DESTBASEDIR/*/$l -maxdepth 0 -type d`; do
|
||||||
|
> $tmpfile
|
||||||
|
for f in `find $d -maxdepth 1 -name \*.iso -o -name \*.cpio.gz`; do
|
||||||
|
echo `stat -c %Z $f` `basename $f` >> $tmpfile
|
||||||
|
done
|
||||||
|
|
||||||
|
filecount=0
|
||||||
|
for f in `cat $tmpfile | sort -r | awk '{ print $2 }' `; do
|
||||||
|
if [ $filecount = 0 ]; then
|
||||||
|
[ "$VERBOSE" -o "$SIMULATE" ] && echo "KEEP $f"
|
||||||
|
else
|
||||||
|
[ "$VERBOSE" -o "$SIMULATE" ] && echo "MOVE $f"
|
||||||
|
[ "$SIMULATE" ] && continue
|
||||||
|
[ -e $d/old ] || mkdir -p $d/old
|
||||||
|
mv $d/$f $d/old/
|
||||||
|
[ -e $d/$f.MD5.txt ] && mv $d/$f.MD5.txt $d/old/
|
||||||
|
[ -e $d/$f.torrent ] && mv $d/$f.torrent $d/old/
|
||||||
|
fi
|
||||||
|
filecount=`expr $filecount + 1`
|
||||||
|
done
|
||||||
|
# echo
|
||||||
|
# ls --sort=time $d/*.iso $d/*.cpio.gz
|
||||||
|
#find $DESTBASEDIR -name *.iso
|
||||||
|
done
|
||||||
|
done
|
11
etc/cron.daily/40-openmamba-dw-checklist
Executable file
11
etc/cron.daily/40-openmamba-dw-checklist
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# openmamba-dw-checklist daily cron script
|
||||||
|
# (c) 2008-2009 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||||
|
#
|
||||||
|
. /etc/sysconfig/openmamba-central
|
||||||
|
REPOSITORY=devel-kde4
|
||||||
|
openmamba-dw-checklist -h -r $REPOSITORY > $local_ftp/distromatic/$REPOSITORY/_popular.html
|
||||||
|
|
||||||
|
REPOSITORY=milestone1-1.1
|
||||||
|
openmamba-dw-checklist -h -r $REPOSITORY > $local_ftp/distromatic/$REPOSITORY/_popular.html
|
19
etc/cron.daily/50-openmamba-fix-permissions
Executable file
19
etc/cron.daily/50-openmamba-fix-permissions
Executable file
@ -0,0 +1,19 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Fixes permissions on repositories
|
||||||
|
# Copyright (c) 2009-2010 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||||
|
#
|
||||||
|
. /usr/share/makedist/functions.inc.sh
|
||||||
|
. /etc/sysconfig/openmamba-central
|
||||||
|
|
||||||
|
for rep in ${local_reps[*]}; do
|
||||||
|
getent passwd ftp$rep >/dev/null || {
|
||||||
|
echo "Warning: missing user ftp$rep for $rep repository; skipping."
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
find /var/ftp/pub/openmamba/$rep/RPMS.i586 /var/ftp/pub/openmamba/$rep/SRPMS.base \
|
||||||
|
-uid 0 -exec chown ftp$rep:users {} \;
|
||||||
|
# >/dev/null
|
||||||
|
done
|
||||||
|
|
||||||
|
exit 0
|
52
etc/cron.hourly/10-openmamba-sync-back
Executable file
52
etc/cron.hourly/10-openmamba-sync-back
Executable file
@ -0,0 +1,52 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# openmamba repository sync-back script
|
||||||
|
# (c) 2006-2008 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||||
|
#
|
||||||
|
. /etc/sysconfig/openmamba-central
|
||||||
|
|
||||||
|
[ "$dest_rsync" ] && {
|
||||||
|
RSYNC_OPT="-av --no-o --delete --delete-excluded"
|
||||||
|
|
||||||
|
[ "`pidof rsync`" ] && {
|
||||||
|
echo "Error: an rsync process is already running; exiting for safety."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
for rep in ${remote_reps[*]}; do
|
||||||
|
echo "==> Syncing back $rep remote repository"
|
||||||
|
for a in ${archs[*]}; do
|
||||||
|
rsync \
|
||||||
|
$RSYNC_OPT \
|
||||||
|
$dest_rsync/$rep/RPMS.$a $local_ftp/$rep \
|
||||||
|
--password-file=/etc/rsync.password --bwlimit=500 \
|
||||||
|
--exclude */old > /dev/null
|
||||||
|
done
|
||||||
|
rsync \
|
||||||
|
$RSYNC_OPT \
|
||||||
|
$dest_rsync/$rep/SRPMS.base $local_ftp/$rep \
|
||||||
|
--password-file=/etc/rsync.password --bwlimit=500 \
|
||||||
|
--exclude */old >/dev/null
|
||||||
|
rsync \
|
||||||
|
$RSYNC_OPT \
|
||||||
|
$dest_rsync/$rep/home $local_ftp/$rep \
|
||||||
|
--password-file=/etc/rsync.password --bwlimit=500 \
|
||||||
|
--exclude */old > /dev/null
|
||||||
|
# rsync \
|
||||||
|
# $RSYNC_OPT \
|
||||||
|
# $dest_rsync/$rep/autoupdate $local_ftp/$rep \
|
||||||
|
# --password-file=/etc/rsync.password --bwlimit=500 \
|
||||||
|
# --exclude */old > /dev/null
|
||||||
|
done
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
[ "$ftpsync" -a "$dest_ftp" ] && {
|
||||||
|
for a in ${remote_reps[*]}; do
|
||||||
|
echo "==> Syncing back remote $a repository"
|
||||||
|
ftpsync -q -g $local_ftp/$a/RPMS.i586 \
|
||||||
|
$dest_ftp/pub/openmamba/$a/RPMS.i586 ftpuser=$ftpuser ftppasswd=$ftppass
|
||||||
|
ftpsync -q -g $local_ftp/$a/SRPMS.base \
|
||||||
|
$dest_ftp/pub/openmamba/$a/SRPMS.base ftpuser=$ftpuser ftppasswd=$ftppass
|
||||||
|
done
|
||||||
|
}
|
17
etc/cron.hourly/20-openmamba-apt
Executable file
17
etc/cron.hourly/20-openmamba-apt
Executable file
@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# openmamba repository script for apt
|
||||||
|
# (c) 2006-2007 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||||
|
#
|
||||||
|
|
||||||
|
# generate apt database
|
||||||
|
. /etc/sysconfig/openmamba-central
|
||||||
|
|
||||||
|
for a in ${local_reps[*]} ${remote_reps[*]}; do
|
||||||
|
[ "`find $local_ftp/$a/SRPMS.base/ -cnewer $local_ftp/$a/base`" -o \
|
||||||
|
! -e $local_ftp/$a/base/release ] && {
|
||||||
|
echo "==> Generating APT database for $a repository"
|
||||||
|
genbasedir --flat $local_ftp/$a/ ${archs[*]} base >/dev/null
|
||||||
|
}
|
||||||
|
done
|
||||||
|
exit 0
|
74
etc/cron.hourly/30-openmamba-distromatic
Executable file
74
etc/cron.hourly/30-openmamba-distromatic
Executable file
@ -0,0 +1,74 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
. /etc/sysconfig/openmamba-central
|
||||||
|
|
||||||
|
function distromatic_genhtml()
|
||||||
|
{
|
||||||
|
REP=$1
|
||||||
|
shift
|
||||||
|
TMPDIR=/tmp/distromatic-tmp-$REP
|
||||||
|
TMPFILE=`mktemp`
|
||||||
|
LOGFILE=$local_ftp/$REP/distromatic.log
|
||||||
|
[ -e $TMPDIR ] && rm -rf $TMPDIR
|
||||||
|
mkdir -p $TMPDIR
|
||||||
|
|
||||||
|
[ ! $local_ftp/$REP/SRPMS.base -nt $local_ftp/$REP/distromatic.log 2>/dev/null -a \
|
||||||
|
! $local_ftp/$REP/RPMS.i586 -nt $local_ftp/$REP/distromatic.log 2>/dev/null -a \
|
||||||
|
! $local_distromatic/$REP/warnings -nt $local_ftp/$REP/distromatic.log 2>/dev/null -a \
|
||||||
|
-e $local_distromatic/$REP/deps-i586 -a ! "$FORCE" ] && return
|
||||||
|
|
||||||
|
echo "==> Executing distromatic on $REP repository"
|
||||||
|
(cd $local_distromatic/$REP/
|
||||||
|
|
||||||
|
# for a in *; do
|
||||||
|
# cp -a $a $TMPDIR/
|
||||||
|
# done
|
||||||
|
echo "\
|
||||||
|
# distromatic log for the $REP repository (`date`)
|
||||||
|
# ====================================================================
|
||||||
|
" > $LOGFILE
|
||||||
|
distromatic -q -t $REP --genhtml --gendatatables --gensrcpkglist 1>$local_ftp/$REP/srcpkglist 2>$TMPFILE
|
||||||
|
cat $TMPFILE | grep -v "Warning: skipping unhandled requirement" >> $LOGFILE
|
||||||
|
|
||||||
|
/usr/sbin/openmamba-repository distromatic $REP
|
||||||
|
|
||||||
|
if [ "${REP:0:6}" = "devel-" ]; then
|
||||||
|
|
||||||
|
echo "==> Checking packages integrity"
|
||||||
|
echo "\
|
||||||
|
|
||||||
|
# ============================================================================
|
||||||
|
# INTEGRITY VERIFICATION for the $REP openmamba repository (`date`)
|
||||||
|
# ============================================================================
|
||||||
|
" >> $LOGFILE
|
||||||
|
/usr/sbin/openmamba-repository verify $REP >> $LOGFILE
|
||||||
|
|
||||||
|
echo "==> Checking package contents"
|
||||||
|
echo "\
|
||||||
|
|
||||||
|
# ============================================================================
|
||||||
|
# PACKAGES CHECK for the $REP openmamba repository (`date`)
|
||||||
|
# ============================================================================
|
||||||
|
" >> $LOGFILE
|
||||||
|
/usr/sbin/openmamba-repository diff $REP >> $LOGFILE
|
||||||
|
fi
|
||||||
|
|
||||||
|
# for a in *; do#
|
||||||
|
# # set date t#o past for files which are identical
|
||||||
|
# diff $a $TMPDIR/$a &>/dev/null || touch -d "Jan 01 2007 00:00" $a
|
||||||
|
# done
|
||||||
|
)
|
||||||
|
# rm -rf $TMPDIR
|
||||||
|
}
|
||||||
|
|
||||||
|
JOB=$1
|
||||||
|
|
||||||
|
if [ "$JOB" ]; then
|
||||||
|
FORCE=1
|
||||||
|
distromatic_genhtml $JOB
|
||||||
|
else
|
||||||
|
for a in ${local_reps[*]} ${remote_reps[*]}; do
|
||||||
|
distromatic_genhtml $a
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
exit 0
|
78
etc/cron.hourly/40-openmamba-rsync
Executable file
78
etc/cron.hourly/40-openmamba-rsync
Executable file
@ -0,0 +1,78 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# openmamba rsync script
|
||||||
|
#
|
||||||
|
. /etc/sysconfig/openmamba-central
|
||||||
|
|
||||||
|
#BWLIMIT="--bwlimit=400"
|
||||||
|
TIMEOUT="--timeout=120"
|
||||||
|
[ "$1" ] && JOB=$1 || unset JOB
|
||||||
|
|
||||||
|
[ "$dest_rsync" ] || exit 0
|
||||||
|
|
||||||
|
[ "`pidof rsync`" -a ! "$FORCE" -a ! "$JOB" ] && {
|
||||||
|
echo "Error: an rsync process is already running; exiting for safety."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# use ssh method if dest_ssh is defined
|
||||||
|
[ "$dest_ssh" ] && dest_rsync=$dest_ssh
|
||||||
|
|
||||||
|
RSYNC_OPT="-av -P --no-o --delete-after \
|
||||||
|
$BWLIMIT $TIMEOUT"
|
||||||
|
|
||||||
|
[ "$PROGRESS" = "1" ] && RSYNC_OPT="$RSYNC_OPT --progress"
|
||||||
|
#echo rsync $RSYNC_OPT /var/ftp/pub/openmamba/ $RSYNC_DEST --password-file=/etc/rsync.password
|
||||||
|
|
||||||
|
if [ ! "$JOB" -o "$JOB" = "distromatic" ]; then
|
||||||
|
echo "==> Syncing distromatic directory"
|
||||||
|
eval rsync \
|
||||||
|
$RSYNC_OPT \
|
||||||
|
$local_ftp/distromatic $dest_rsync \
|
||||||
|
--exclude distromatic/devel* \
|
||||||
|
--exclude distromatic/milestone*
|
||||||
|
fi
|
||||||
|
|
||||||
|
for rep in ${local_reps[*]}; do
|
||||||
|
if [ ! "$JOB" -o "$JOB" = "$rep" ]; then
|
||||||
|
echo "==> Syncing $rep local repository"
|
||||||
|
eval rsync \
|
||||||
|
$RSYNC_OPT --exclude base --exclude media --exclude "*/developers-status.inc" \
|
||||||
|
$local_ftp/$rep $dest_rsync \
|
||||||
|
--exclude "*/old"
|
||||||
|
if [ $? -eq 0 -a -d $local_ftp/$rep/base ]; then
|
||||||
|
echo "==> Syncing apt for $rep local repository"
|
||||||
|
eval rsync \
|
||||||
|
$RSYNC_OPT $local_ftp/$rep/base $dest_rsync/$rep
|
||||||
|
echo "==> Syncing distromatic directory for $rep local repository"
|
||||||
|
eval rsync \
|
||||||
|
$RSYNC_OPT \
|
||||||
|
$local_ftp/distromatic/$rep $dest_rsync/distromatic
|
||||||
|
fi
|
||||||
|
if [ -d $local_ftp/$rep/media ]; then
|
||||||
|
echo "==> Syncing media directory for $rep local repository"
|
||||||
|
eval rsync \
|
||||||
|
$RSYNC_OPT $local_ftp/$rep/media \
|
||||||
|
--exclude "*/old" --exclude "*/downloads.inc"\
|
||||||
|
$dest_rsync/$rep
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
for rep in ${remote_reps[*]}; do
|
||||||
|
if [ ! "$JOB" -o "$JOB" = "$rep" ]; then
|
||||||
|
echo "==> Syncing $rep remote repository"
|
||||||
|
eval rsync \
|
||||||
|
$RSYNC_OPT \
|
||||||
|
$local_ftp/$rep $dest_rsync \
|
||||||
|
--exclude $rep/SRPMS.base \
|
||||||
|
--exclude "$rep/RPMS.*" \
|
||||||
|
--exclude $rep/home \
|
||||||
|
--exclude $rep/autoupdate \
|
||||||
|
--exclude $rep/old
|
||||||
|
echo "==> Syncing distromatic directory for $rep local repository"
|
||||||
|
eval rsync \
|
||||||
|
$RSYNC_OPT \
|
||||||
|
$local_ftp/distromatic/$rep $dest_rsync/distromatic
|
||||||
|
fi
|
||||||
|
done
|
62
etc/cron.hourly/50-openmamba-ftpsync
Executable file
62
etc/cron.hourly/50-openmamba-ftpsync
Executable file
@ -0,0 +1,62 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# openmamba repository mirror script
|
||||||
|
# (c) 2006-2007 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||||
|
#
|
||||||
|
. /etc/sysconfig/openmamba-central
|
||||||
|
|
||||||
|
[ "$ftpsync" ] || exit 0
|
||||||
|
[ "$dest_ftp" ] || exit 0
|
||||||
|
|
||||||
|
ftp_sync() {
|
||||||
|
err=9
|
||||||
|
start=`date +%s`
|
||||||
|
elapsed=0
|
||||||
|
while [ $err -eq 9 ] && [ $elapsed -lt 300 ]; do
|
||||||
|
ftpsync -q -p $1 $2 ftpuser=$ftpuser ftppasswd=$ftppass timeout=20
|
||||||
|
err=$?
|
||||||
|
now=`date +%s`
|
||||||
|
elapsed=`expr $now - $start`
|
||||||
|
[ $err -gt 0 ] && echo " Error: ftpsync exited with error $err"
|
||||||
|
done
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
for rep in ${remote_reps[*]}; do
|
||||||
|
echo "==> Working on $rep remote repository"
|
||||||
|
|
||||||
|
echo " Syncyng APT database"
|
||||||
|
ftp_sync $local_ftp/$rep/base/ $dest_ftp/pub/openmamba/$rep/base
|
||||||
|
|
||||||
|
echo " Syncing log files"
|
||||||
|
for a in $local_ftp/$rep/*log; do
|
||||||
|
curl -s -T $a -u$ftpuser:$ftppass --url $dest_ftp/pub/openmamba/$rep/
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
for rep in ${local_reps[*]}; do
|
||||||
|
echo "==> Working on $rep local repository"
|
||||||
|
for a in ${archs[*]}; do
|
||||||
|
err=1
|
||||||
|
start=`date +%s`
|
||||||
|
elapsed=0
|
||||||
|
echo " Syncing RPMs for arch $a"
|
||||||
|
ftp_sync $local_ftp/$rep/RPMS.$a/ $dest_ftp/pub/openmamba/$rep/RPMS.$a
|
||||||
|
done
|
||||||
|
echo " Syncing APT database"
|
||||||
|
ftp_sync $local_ftp/$rep/base/ $dest_ftp/pub/openmamba/$rep/base
|
||||||
|
|
||||||
|
echo " Syncing SRPMs repository"
|
||||||
|
ftp_sync $local_ftp/$rep/SRPMS.base/ $dest_ftp/pub/openmamba/$rep/SRPMS.base
|
||||||
|
|
||||||
|
echo " Syncing logs"
|
||||||
|
for a in $local_ftp/$rep/*log; do
|
||||||
|
curl -s -T $a -u$ftpuser:$ftppass --url $dest_ftp/pub/openmamba/$rep/
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "==> Syncing distromatic"
|
||||||
|
ftpsync -q -p $local_distromatic $dest_ftp/pub/openmamba/distromatic ftpuser=$ftpuser ftppasswd=$ftppass timeout=20
|
||||||
|
|
||||||
|
echo "==> Syncing media directory for devel repository"
|
||||||
|
ftp_sync $local_ftp/devel/media/ $dest_ftp/pub/openmamba/devel/media timeout=20
|
35
etc/cron.hourly/60-openmamba-autobuild-autodist
Executable file
35
etc/cron.hourly/60-openmamba-autobuild-autodist
Executable file
@ -0,0 +1,35 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# openmamba-dw-checklist daily cron script
|
||||||
|
# (c) 2008-2009 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||||
|
#
|
||||||
|
. /etc/sysconfig/openmamba-central
|
||||||
|
|
||||||
|
PIDFILE=/var/run/autodist/autodist.pid
|
||||||
|
HOUR=`date +%H`
|
||||||
|
|
||||||
|
function pid_check() {
|
||||||
|
|
||||||
|
[ -e $PIDFILE ] && PIDCHECK=`cat $PIDFILE`
|
||||||
|
|
||||||
|
[ "$PIDCHECK" -a -e /proc/$PIDCHECK ] && {
|
||||||
|
echo "Error: an autodist process is already running; exiting for safety."
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pid_check
|
||||||
|
REPOSITORY=devel-autodist
|
||||||
|
openmamba-dw-checklist -h -r $REPOSITORY > $local_ftp/distromatic/$REPOSITORY/_popular.html
|
||||||
|
|
||||||
|
pid_check
|
||||||
|
distromatic -q -t devel-autodist --gensrcpkglist > $local_ftp/$REPOSITORY/srcpkglist
|
||||||
|
|
||||||
|
pid_check
|
||||||
|
su -l autodist -c "autodist -a --server devel-autodist" > $local_ftp/$REPOSITORY/autodist.log
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
cp $local_ftp/$REPOSITORY/autodist.log $local_ftp/$REPOSITORY/autodist-last.log
|
||||||
|
else
|
||||||
|
cp $local_ftp/$REPOSITORY/autodist.log $local_ftp/$REPOSITORY/autodist-last-error.log
|
||||||
|
fi
|
13
etc/cron.weekly/10-openmamba-mlarchives
Executable file
13
etc/cron.weekly/10-openmamba-mlarchives
Executable file
@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# openmamba mailing list archives sync weekly cron
|
||||||
|
# Copyright (c) 2008 by Silvan Calarco
|
||||||
|
#
|
||||||
|
. /etc/sysconfig/openmamba-central
|
||||||
|
|
||||||
|
MAILING_LISTS="openmamba-devel openmamba-devel-it openmamba-notizie openmamba-news openmamba-users openmamba-users-it"
|
||||||
|
|
||||||
|
echo "Syncing mailing lists archives"
|
||||||
|
for l in $MAILING_LISTS; do
|
||||||
|
rsync -av /var/mailman/archives/private/$l $local_ftp/lists/archives/
|
||||||
|
done
|
35
etc/cron.weekly/20-gencontents
Executable file
35
etc/cron.weekly/20-gencontents
Executable file
@ -0,0 +1,35 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
. /etc/sysconfig/openmamba-central
|
||||||
|
|
||||||
|
echo "Creating contentslist file"
|
||||||
|
|
||||||
|
CONTENTSLISTFILE=$local_ftp/contentslist-i586
|
||||||
|
CONTENTS_FILELIST=""
|
||||||
|
|
||||||
|
for rep in ${local_reps[*]} ${remote_reps[*]}; do
|
||||||
|
[ -e $local_ftp/$rep/contentslist-i586 ] &&
|
||||||
|
CONTENTS_FILELIST="$CONTENTS_FILELIST \
|
||||||
|
$local_ftp/$rep/contentslist-i586"
|
||||||
|
done
|
||||||
|
|
||||||
|
[ "$CONTENTS_FILELIST" ] && {
|
||||||
|
sort $CONTENTS_FILELIST > $local_ftp/contentslist-i586
|
||||||
|
bzip2 -f $CONTENTSLISTFILE
|
||||||
|
}
|
||||||
|
|
||||||
|
for c in $CONTENTS_FILELIST; do
|
||||||
|
bzip2 -f $c
|
||||||
|
# mv $c.bz2 `dirname $c`/..
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Syncing contentslist file"
|
||||||
|
curl -T $CONTENTSLISTFILE.bz2 \
|
||||||
|
-u$ftpuser:$ftppass --url $dest_ftp/pub/openmamba/
|
||||||
|
|
||||||
|
for rep in ${local_reps[*]} ${remote_reps[*]}; do
|
||||||
|
[ -e $local_ftp/$rep/contentslist-i586.bz2 ] &&
|
||||||
|
curl -T $local_ftp/$rep/contentslist-i586.bz2 \
|
||||||
|
-u$ftpuser:$ftppass \
|
||||||
|
--url $dest_ftp/pub/openmamba/$rep/
|
||||||
|
done
|
48
etc/sysconfig/openmamba-central
Normal file
48
etc/sysconfig/openmamba-central
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
#
|
||||||
|
# openmamba ftp destination repository address and login information
|
||||||
|
# leave dest_ftp blank to disable sync
|
||||||
|
#
|
||||||
|
dest_ftp=ftp://ftpaccounts.openmamba.org
|
||||||
|
ftpuser=
|
||||||
|
ftppass=
|
||||||
|
|
||||||
|
#
|
||||||
|
# openmamba rsync destination repository addess
|
||||||
|
# leave dest_rsync blank to disable sync
|
||||||
|
#
|
||||||
|
dest_ssh_port=22
|
||||||
|
dest_ssh_key=/var/ssl/private/tao-topix2-rsync.key
|
||||||
|
dest_rsync="--password-file=/etc/rsync.password rsync://rsyncpriv@topix2.openmamba.org/openmamba-upload"
|
||||||
|
dest_ssh="-e 'ssh -o ForwardX11=no -i $dest_ssh_key -p $dest_ssh_port' root@topix2:/var/ftp/pub/openmamba"
|
||||||
|
|
||||||
|
# perform ftp sync (obsolete)
|
||||||
|
#ftpsync=1
|
||||||
|
|
||||||
|
#
|
||||||
|
# base directory for local ftp repository
|
||||||
|
#
|
||||||
|
local_ftp=/var/ftp/pub/openmamba/
|
||||||
|
|
||||||
|
#
|
||||||
|
# distromatic base HTML directory
|
||||||
|
#
|
||||||
|
local_distromatic=$local_ftp/distromatic/
|
||||||
|
|
||||||
|
#
|
||||||
|
# list of available architectures
|
||||||
|
#
|
||||||
|
archs=(i586 arm ppc x86_64)
|
||||||
|
|
||||||
|
#
|
||||||
|
# media targets for different release levels
|
||||||
|
#
|
||||||
|
stable_medias=(livecd installdvd livestudio bootusb)
|
||||||
|
prerelease_medias=(livecd installdvd livestudio bootusb)
|
||||||
|
snapshot_medias=(livecd livestudio libgames bootusb flash-1GB bootcd)
|
||||||
|
|
||||||
|
#
|
||||||
|
# list of available local and remote repositories
|
||||||
|
#
|
||||||
|
local_reps=(devel devel-silvan devel-makedist devel-embedded devel-games devel-autodist devel-future devel-kde4 devel-kernel devel-xorg milestone1 milestone1-updates milestone1-games milestone1-1.1 milestone1-makedist milestone2)
|
||||||
|
remote_reps=(devel-contrib devel-stefano devel-aleph0 devel-tiziano devel-skiver devel-fabiog devel-mambaclimb devel-gil devel-bonzo devel-distservers \
|
||||||
|
devel-the_packagizers devel-stativa devel-ercolinux devel-ciccio devel-Z10Bel devel-iw2oaz devel-zorro milestone1-java milestone1-contrib devel-java)
|
Loading…
Reference in New Issue
Block a user