Repomaster is onboard somewhat…

by on Jan.12, 2013, under Linux, Programming, Ubuntu, Ultimate Edition

I have tried to discuss the impact RepoMaster will have when put into the wild. Repomaster is a program I have been writing for over 2 years. It has not only became a reality, it is a tool that built Ultimate Edition 3.4 Lite issuesless; unreleased to the public currently. What does the tool do? Well let’s read the now behind manual 2 switches have not made to the manual yet, yes they too work. Repomaster as a service will with the –autofix option fix errors before they hit your system. I built UE 3.4 off a mini-ubuntu less then 200MB I believe. Dropped in repomaster set it as a service and moved the OS forward. I can not vouch for any error that was already there in the 200MB 😉
#!/bin/bash
# ==============================================================================
# title :repomaster
# description :Auto build, repository management script
# author :Glenn Cady # date :01/10/2013
# version :1.7.1-7
# usage :repomaster --help
# manual :man repomaster
# notes :See change-log below for further information.
# bash_version :4.2.8(1)-release
# ==============================================================================
# Change-log: 1.7.1-7: Currently unreleased / unleashed
# ==============================================================================
# REPOMASTER - Auto build, repository management script
# Script via Glenn "TheeMahn" Cady #
# This script will extract, build all debs in each sub-folder
# as well as lintian each resulting deb recording any
# error result to a separate log and move resulting deb
# to then .debs/ if no errors. Eventually will not move
# any with warnings (does so now). The script will eventually fix all errors
# without human intervention. Who makes errors? Not computers.
# The script now implements -f or fix switch still not 100% and
# why you do not have it beyond copy-write.
#
# Beyond that, if that was not enough, will publish your repository on-line.
# It will GPG key sign your debs generate you a release file and dists,
# auto assign each prospective deb accordingly via architecture,
# rsyncing it to your server of choice.
#
# The goal is 100% error / warning free debs we are at about 90% off the rip.
# Most are in permission rights. Amazing what automation in programming can do
# for you.
#
# Repomaster if ran as a service will automatically fix error(s) prior to
# entering your system. Ultimately, a bulletproof O/S. Ultimate Edition will be
# the first operating system on the planet to utilize this feature.
# I wonder why? Who is writing it? Does that mean Ubuntu is screwed
# or fall behind? No, no O/S left behind, however they will pay me.
#
# End user fret not. I will be paid, but not by you. Once you see the code
# I have written you will understand I deserve it ;) Largest script I have ever
# seen by one guy. What started as a simple script to lose a few of my jobs as
# a distrowriter, repository maintainer & programmer has became quite
# complicated.
#
# We begin - first we grab all sub-folders. If you do not wish to
# have a certain deb compiled or built please rename the folder beginning
# with a period, which makes it hidden to this script.

# Version Control
REPOVERSION="1.7.1-7"
BUILDDATE="01/10/2013"

theemahn@JackHammer:~$ repomaster –service on
RepoMaster 1.7.1-7 service function invoked.
Switches invoked: –service on
Installing RepoMaster as a service. To remove the service repomaster –service off.
theemahn@JackHammer:~$ sudo apt-get install –reinstall gedit nano
Reading package lists… Done
Building dependency tree
Reading state information… Done
Suggested packages:
spell
The following packages will be upgraded:
gedit nano
2 upgraded, 0 newly installed, 0 to remove and 17 not upgraded.
Need to get 1,021 kB of archives.
After this operation, 94.2 kB of additional disk space will be used.
Get:1 http://us.archive.ubuntu.com/ubuntu/ precise/main nano amd64 2.2.6-1 [194 kB]
Get:2 http://us.archive.ubuntu.com/ubuntu/ precise/main gedit amd64 3.4.1-0ubuntu1 [827 kB]
Fetched 1,021 kB in 1s (746 kB/s)
RepoMaster 1.7.1-7 service function invoked.
Switches invoked: –service
===============================================
Repomaster 1.7.1-7 is entering extraction mode.
===============================================
======================================================
Beginning extraction of gedit_3.4.1-0ubuntu1_amd64.deb
======================================================
to gedit_3.4.1-0ubuntu1_amd64/
Extracting Control files from gedit_3.4.1-0ubuntu1_amd64.deb
Extracting data files from gedit_3.4.1-0ubuntu1_amd64.deb
Extraction of gedit_3.4.1-0ubuntu1_amd64.deb complete.
Removing gedit_3.4.1-0ubuntu1_amd64.deb.
==============================================
Beginning extraction of nano_2.2.6-1_amd64.deb
==============================================
to nano_2.2.6-1_amd64/
Extracting Control files from nano_2.2.6-1_amd64.deb
Extracting data files from nano_2.2.6-1_amd64.deb
Extraction of nano_2.2.6-1_amd64.deb complete.
Removing nano_2.2.6-1_amd64.deb.
Extraction of 2 deb(s) complete. No errors detected in extraction.
==========================================
Repomaster 1.7.1-7 is entering build mode.
==========================================

===============================================
Beginning build of gedit_3.4.1-0ubuntu1_amd64/
===============================================

Relaxing permissions of gedit_3.4.1-0ubuntu1_amd64/
Cleaning up any tmp or backup files.
Setting individual file permissions to 644.
No /etc/ so need to build conffiles.
Scanning for executables in gedit_3.4.1-0ubuntu1_amd64/ Stage 1.
gedit_3.4.1-0ubuntu1_amd64/usr/share/bug/gedit/script
gedit_3.4.1-0ubuntu1_amd64/usr/share/python/runtime.d/gedit.rtupdate
gedit_3.4.1-0ubuntu1_amd64/usr/share/gedit/gedit-bugreport
Scanning for executables in gedit_3.4.1-0ubuntu1_amd64/ Stage 2.
gedit_3.4.1-0ubuntu1_amd64/usr/bin/gedit: application/x-executable; charset=binary
Calculating Installed size & inserting into control file if necessary.
gedit_3.4.1-0ubuntu1_amd64/ is 2692. Control file reporting: 2716
Size Mismatch, replacing with 2692.
Calculating MD5SUMS in gedit_3.4.1-0ubuntu1_amd64/
Setting ownership to root in gedit_3.4.1-0ubuntu1_amd64/
Setting individual folder permissions to 755.
Setting permissions rights for control etc.
Building gedit_3.4.1-0ubuntu1_amd64/
dpkg-deb: building package `gedit’ in `gedit_3.4.1-0ubuntu1_amd64.deb’.
Lintian resulting package gedit_3.4.1-0ubuntu1_amd64.deb.
warning: the authors of lintian do not recommend running it with root privileges!
Build results of gedit_3.4.1-0ubuntu1_amd64.deb
W: gedit: package-name-doesnt-match-sonames libgedit-private0
W: gedit: copyright-without-copyright-notice
W: gedit: menu-icon-missing usr/share/pixmaps/gedit-icon.xpm
N: 1 tag overridden (1 warning)
Error(s): 0 | Warning(s): 3 | Info: 1 has been recorded.
“nano gedit_3.4.1-0ubuntu1_amd64.deb.errors” for more information or
“repomaster -f gedit_3.4.1-0ubuntu1_amd64/” to autofix.
=== End Build results of gedit_3.4.1-0ubuntu1_amd64.deb ===
Processing Error logs for gedit_3.4.1-0ubuntu1_amd64.deb.errors.

=======================================
Beginning build of nano_2.2.6-1_amd64/
=======================================

Relaxing permissions of nano_2.2.6-1_amd64/
Cleaning up any tmp or backup files.
Setting individual file permissions to 644.
Scanning /etc to build conffiles.
Scanning for executables in nano_2.2.6-1_amd64/ Stage 1.
Scanning for executables in nano_2.2.6-1_amd64/ Stage 2.
nano_2.2.6-1_amd64/bin/nano: application/x-executable; charset=binary
Calculating Installed size & inserting into control file if necessary.
nano_2.2.6-1_amd64/ is 536. Control file reporting: 604
Size Mismatch, replacing with 536.
Calculating MD5SUMS in nano_2.2.6-1_amd64/
Setting ownership to root in nano_2.2.6-1_amd64/
Setting individual folder permissions to 755.
Setting permissions rights for control etc.
Building nano_2.2.6-1_amd64/
dpkg-deb: building package `nano’ in `nano_2.2.6-1_amd64.deb’.
Lintian resulting package nano_2.2.6-1_amd64.deb.
warning: the authors of lintian do not recommend running it with root privileges!
Processing Error logs for nano_2.2.6-1_amd64.deb.errors.

_________________ SESSION RESULTS ____________________
FILE ERRORS WARNINGS INFO
gedit_3.4.1-0ubuntu1_amd64.deb 0 3 1
nano_2.2.6-1_amd64.deb 0 0 0
______________________________________________________
Error(s): 0 | Warning(s): 3 | Info: 1
(Reading database … 393657 files and directories currently installed.)
Preparing to replace nano 2.2.6-1 (using …/nano_2.2.6-1_amd64.deb) …
Unpacking replacement nano …
Preparing to replace gedit 3.4.1-0ubuntu1 (using …/gedit_3.4.1-0ubuntu1_amd64.deb) …
Unpacking replacement gedit …
Processing triggers for menu …
Processing triggers for install-info …
Processing triggers for man-db …
Processing triggers for bamfdaemon …
Rebuilding /usr/share/applications/bamf.index…
Processing triggers for gnome-menus …
Processing triggers for desktop-file-utils …
Setting up nano (2.2.6-1) …
Setting up gedit (3.4.1-0ubuntu1) …
update-alternatives: using /usr/bin/gedit to provide /usr/bin/gnome-text-editor (gnome-text-editor) in auto mode.
Processing triggers for menu …
Processing triggers for libc-bin …
ldconfig deferred processing now taking place
theemahn@JackHammer:~$ theemahn@JackHammer:~$ repomaster –service on –autofix
RepoMaster 1.7.1-7 service function invoked.
Switches invoked: –service on –autofix
Installing RepoMaster as a service. To remove the service repomaster –service off.
theemahn@JackHammer:~$repomaster –help
RepoMaster 1.7.1-7, 01/10/2013

RepoMaster is a part of the tm-tools package. Many of the tools are heavy and are not
intended to be ran by the common user. The tools are geared for the admininstrator.
please see man tmtools for more info.

Usage: repomaster –<-COMMAND> [FOLDER|DEBNAME|DISTNAME|USERNAME@URL/DISTNAME|ON]

possible commands…

-v –version dump version info
-e –extract extract debian archive
-b –build builds deb(s)
-r –relax relax permissions
-c –cleanlogs removes log files
-C –cleanfolder removes folder(s)
-f –fix attempts to fix error(s)
-V –verbose reports errors verbosly and instructs how to fix.
-p –prepare prepare good .debs/ for publishing.
-P –publish publishes them to address specified.
-R –report examine reported errorlog(s).
-S –scan version scan debs.
-s –service installs or removes repomaster as a service
-h –help this help message

Usage building deb;
repomaster -b [FOLDERNAME]
Specifying no folder name will build all folders in current directory.
prompting first. All error free debs are copied to a hidden folder
called .debs/ in the current folder. The .debs/ folder will be created
for you.

Usage extraction;
repomaster -e [DEBIANFILENAME]
Specifying no deb file name will extract all debs in current directory.
prompting first.

Usage relaxsation;
repomaster -r [FOLDERNAME]
Will relax the permissions on a given folder allowing you to edit or
delete files within the folder. The proper permissions will automatically
be reset when you goto build. Not specifying a folder will reset
permissions on all sub-folders. Please be careful where you execute this
tool. It will display the folders to be effected and prompt you.

Usage clearlogs;
repomaster -c
Will erase all logs error as well clean logs.

Usage cleanfolder;
repomaster -C [FOLDER]
Will erase specified folder ignoring permissions. Specifying no folder name
will erase all sub-folders in the curent folder. It will display the folders
to be effected and prompt you. Please use with care.

Usage fix;
repomaster -f [FOLDER]
Will attempt to fix all errors in the specified folder to be lintian, debian
complient. Specifying no folder name will process all folders with a
[FOLDER].deb.errors. This will take a long time to be fully implemented.

Usage verbose;
repomaster -V [FOLDER]
Specifying no folder name will build all folders in current directory.
prompting first. Verbosly displaying how to fix errors in given deb.
All error free debs are copied to a hidden folder called .debs/ in
the current folder. The .debs/ folder will be created for you.

Usage prepare;
repomaster -p
Prepares known good .debs/ for publishing. Builds the directory structure in
a folder called . Repomaster then GPG key signs the debs as well
as the release key for distribution. This command switch also auto generates
packages.gz for repository management. Knowledge of how a repository works
is highly recommended when using this command switch.

Usage publish;
repomaster -P
Will scan good debs from .debs/ folder automatically creating structure for
repository management and rsync the files to address ie repomaster -P
USER@http://themelinux.com/themes/ themes it will prompt for the password
for your server.

Usage report;
repomaster -R [FOLDER]
Will display error and build reports for all debs in previous session, or
results from [FOLDER] deb.

Usage Service;
repomaster -S [on/off] [–autofix]
Installs or removes based on second option to set repomaster as a service.
Once set as a service repomaster will monitor any package being installed
and scan for errors and warnings optionally [–autofix] them via end users
discretion. This powerful feature will allow the end user to make the
decision if or not errors and warnings enter their system prior to the
package even being installed. Similar to what anti-virus software does.

Usage Scan;
repomaster -s
Version scans all debs to be processed. This should be the first step you
take when dealing with large amounts of debs. When processing a single deb
this switch is useless.There is no sense in building 2 seperate versions of
debs. On the large scale this is not a required , but recommended base of
first action.

Useage Help;
repomaster -h
Displays this message. For futher information please refer to the manpages.

man repomaster

Example: repomaster -b ultamatix-1.9.1_all
Will build ultamatix-1.9.1_all.deb

GNU repomaster home page: .
E-mail bug reports to: .
Be sure to include the word repomaster somewhere in the Subject: field.
theemahn@JackHammer:~$

None of the current beta testers as well I, have seen a crash or issue at all. I am sorry to inform you right before I built the 3.4 Lite ISO I purged repomaster from the system. It is not copywritten yet. Repomaster is not perfect yet!!! I cant wait until I see that day.

TheeMahn,


2 Comments for this entry

  • johntn

    “As most of you know, I am not a KDE fanboy. Ultimate Edition 3.5.1 has a ton of DE’s I ditched KDE right after I installed it and went straight into Mate 1.6, and find it pretty much flawless. It is a huge download however. As with any piece of computer hardware, your milage may vary.”

    TheeMahn,

    Is this just a matter of downlaod and install of do I need instructions?

    John

Leave a Reply

You must be logged in to post a comment.

Back to top ↑