Version 11.85.0
* When ERIC is enabled, ClassPag allows changes to product-specific configuration databases only on the primary node for the product.
* Added interface makescratchdirs.sh script to read an 'ls -l' of the scratch directory and generate mkdir and ln commands to recreate it.
This can help recover using the all/scratch.txt file in archived work areas.
* The "Page Information" list window has a new command to copy all of the records in the product of the selected record to the current product.
This helps migrate color and double-truck pages if you change the product of a session.
* The "Page Information" list window copy command can now copy a record from another product to the current product.
* Fixed a problem where a killed segmented ad could show every segment in the outext.xml.
Version 11.86.0
* The eric cpag_interface.sh launch script now checks the mirroring status and the gate.
* cpag_interface.sh now launches ClassPag with an option to check the mirroring status.
* The ClassPag launch now checks the gate by looking for /u/gateclosed.txt (created by the mirror 'gate' command) instead of looking for /u/nolayout.txt (created by layout scripts).
* ClassPag now shows different messages if it can't open a session due to the gate or due to the mirroring status.
* Added a loadtape.sh -fastrebuild alias for -norebuild.
* The option to copy all records in the "Page Information" list window no longer shows a pop-up for each records.
Version 11.87.0
* The "Legal and Segmented Ad Specifications" page of the product configuration has a new boolean field "Auto Segment... Ads with borders" to control whether ClassPag auto segments breakable ads that have borders. It currently applies only to PDF ad images when ClassPag is configured for the "PDF BBox Pass".
The default value of "Y" auto segments all ads as before. Set the field to "N" to keep ads with borders as a single box.
* Rebuilding the class areas from the classification list now reloads the ads to make the changes take effect.
* The readcsv interface has a new -w option for ADW pub files.
* When the sort file has a line with an invalid ad type, the message now shows the ad id and the sort file line number.
Version 11.88.0
* Fixed a problem where ClassPag could dummy display ads without leaving space for column headers.
* Place only parent headers at the top of columns above display ads if the product configuration requests parent column headers in all columns, no class column headers, and no headers over display ads in other places.
Version 11.89.0
* Fixed a problem where columns almost filled with display ads could have a column header from the currently flowing line ad class instead of from the display ad's class.
* Fixed a problem where a placement attempt to place a color ad inside a hole on a page could have set the number of colors of the session to the number of colors on the page.
* Fixed an internal count tracking class headers created from banners.
Version 11.90.0
* ClassPag has a new fixuplog.sh script that rebuilds the index of the log database. The script should be run weekly as a cron job.
The script checks that it is on a primary server, that the gate is open, and that no users are running ClassPag.
It appends its output to /u/cpag/root/log/fixuplog.log and resets the file when it gets large.
The Setup -> Log Files window has a new option to view the fixup log.
* The purgelog.sh script has a new "-f day" option to set a day of the week to run fixuplog.sh after the purge. The day can be 0 to 6 (where 0 is Sunday) or the abbreviation of a day of the week like "sun". This makes it easier to schedule fixups without interfering with purges.
* ClassPag can now locate break points in comments written by SCS Composition.
The comments have the format
%%SCSBreakPos: <cumulative depth from the top in ps points> <optional H>
for example
%%SCSBreakPos: 202.000 H
The optional "H" marks segments that end with a hard break.
ClassPag converts these comments into the requests SEG1 through SEG5.
SEG1 is an initial segment. SEG2 is a middle segment. SEG3 is a final segment.
SEG4 is an initial segment ending with a hard break.
SEG5 is a middle segment ending with a hard break.
* The "Auto Segment Ads" field of the "Legal and Segmented Ad Specifications" screen of the product configuration has a new "SCS" value to search for break points in %%SCSBreakPos comments written by SCS Composition.
If "Auto Segment Ads" is set to a different value, but the EPS contains %%SCSBreakPos comments, ClassPag will automatically retry an SCS scan, so if the interface passes EPS files from several source, "Auto Segment Ads" can be set to one of the other sources.
Version 11.91.0
* Split the banner privilege into separate privileges for Template Banners (in the shared configuration database) and Session Banners (in the session directory). The Session Banners privilege defaults to the Template Banners privilege, so no changes are necessary if you want the privileges to remain the same. Setting the Template Banners privilege to View and the Session Banners privilege to All allows users to kill banners in their session without allowing them to modify template banners.
* eric update by Mike to track the node where the product was last checked out.
* eric update by Mike to improve the creation of product and block directories and to support remote git checkout of SCS/ClassPag products.
* Setup -> Version now shows the age of the ClassPag build.
* Restructured a leading calculation so it is not affected by optimization.
Version 11.92.0
* Added a new "Ads -> Unkill banners" command to restore banners killed in the session. This list has records only for banners that have been modified in the session. Do not use this for square-off banners except to restore square-off banners that you accidentally killed without disabling the square-off.
* Improved the banner privilege tests for killing banners.
* The loadfillers.sh script now creates only a single log record for each scan instead of a log record for each filler.
* eric update by Mike for loading remote products.
* Fix for fixuplog.sh to work from purgelog.sh outside /u/cpag.
Version 11.93.0
* The outext.xml handles dink ads better. The outext should have an ad record for each placement of a banner containing the dink ad or a single kill record if no banner with the dink is placed. This fixes a problem where the outext could contain extra kill records for dinks.
* The window to view image replacement lists for all products has a new hotkey to copy all of the images in the product of the selected image to the current product. This can be useful after changing the product of a session.
* readcsv has a new -o option for JH CSV files.
Version 11.93.1
* eric update by Mike to add height_unit to the XML file.
Version 11.93.2
* The check_pubfiles.sh interface script has new csv and scanroot options. If the interface files are written with the format /u/users_ftp/ftp_scs/AdWorks/PP_YYMMDD/classdisplay.csv and the corresponding sort files should be written to /u/users_ftp/ftp_scs/classpag/ad_manifests/DAY_PP/classsrt.out, use the new 'csv' option to enable searching for classdisplay.csv files and the new 'scanroot scan-directory' to specify the AdWorks directory, for example,
check_pubfiles.sh root /u/users_ftp/ftp_scs/classpag/ad_manifests csv scanroot /u/users_ftp/ftp_scs/AdWorks
and then one of the commands start, stop, restart, status, or running.
* The readcsv interface program has a new -y option to specify the rundate. The rundate should be in YYYYMMDD format and follow the -y without spaces, for example, -y20211231
* eric update by Mike to add the class_sort_key to the XML file.
Version 11.93.3
* Source code clean up with no functional changes.
Version 11.93.4
* Fixed a problem where ClassPag would sometimes not flow multi-column segmented ads if the span gap was less than the leading.
Version 11.94.0
* The "User Preferences" screen of the product configuration has a new boolean field "Keep class headers... top" to control how ClassPag treats non-required but non-conflicting manually placed class headers at the tops of columns or below ads on the top stack. The default value of "N" removes unneeded headers as before. Use "Y" to keep the headers. This can be useful if the product configuration does not require headers at the tops of columns, but you sometimes want to place column headers manually. If you place headers at the top of a column and then place an ad below the headers, if you move the ad, ClassPag will still remove the headers that were above the ad. Before setting this field, try placing the ads first and then placing headers above the ads.
The old "Keep class headers" field is now "Keep class headers... wide" and continues to work as before with multi-column headers and with headers placed over ads on the bottom stack.
* The "Fill to end" and "Class fill to end" commands now show a warning if they left any ads unplaced. You can place the ads from paste list if you want to be sure that they are not placed with other ads when you flow the ads.
Version 11.94.1
* Fixed a problem where ClassPag could leave ads unplaced on sessions with with Level Pages and a multi-column agate ad.
Version 11.95.0
* The "Find ad" list has a new "Search for unplaced ads" filter to show only unplaced ads. This makes it similar to the paste list, except that it can show unlocked agate ads and it doesn't show fillers.
* "Class fill to end" now places classes in the correct order when using back-to-front pagination.
* Fixed a problem where setting the tool bar buttons wouldn't work if a lot of buttons had non-default values.
* The eric directory has a new cleanup_products.sh script.
Argument 1 is the path to the ProductDirectory.
Argument 2 is a numeric number of days, which currently must be 90 or more.
Argument 3 is "list" (the default, to list files) or "delete" (to delete files).
Version 11.96.0
* The "Find an ad" list has a new list view "Sort by Ad Number, filter" with columns for most ad fields, including the placed page. Use this view for custom column selections and filters.
* The "User Preferences" page of the product configuration has a new "Find ad view" field to set the default view of the Find Ad list.
The current choices are 'ADNUM' (the default by ad number), 'CLASS' (by class), 'NAME' (by image name), 'SIZE' (by size), and 'CUST' (by customer), 'FILT' (by ad number with all fields for filtering).
* "Setup -> Product Config, Expert" now checks privileges in both the current product and the product that you are attempting to modify.
* Fixed a problem where horizontal pagination would sometimes fill only the first page.
Version 11.96.1
* Improved the packing with horizontal pagination.
* maketar.sh has a "-keep #" option to keep only the last # of kits.
* maketar.sh writes kits into /u/dist/cpag if that directory exists.
Version 11.97.0
* The new "User Preferences (Continued)" has settings for the "Find Ad" list.
Set "only killed ads" to Y to show only killed ads.
Set "only color ads" to Y to show only color ads.
Set "only zoned ads" to Y to show only zoned ads.
Set "only unplaced ads" to Y to show only unplaced ads to make
the "Find Ad" list work like a paste list.
Set "only running ads" to Y to show only ads active in the session, which is the default. Set it to N to show ads in inactive classes.
Set "only ads with requests" to show only ads with requests.
Set "only display ads" to Y to show only display ads, which is the default. Set it to N to show agate ads and class headers.
Set "only agate ads" to Y to show only agate ads.
These fields should be left empty to keep their default settings unless you need to set them for special products.
This version requires a spice toolkit from Jun 22, 2021, or later, to support the increased number of screens in the product configuration.
Version 11.97.1
* Reduced the minimum days in cleanup_products.sh from 90 to 30.
* The ad list in the Statistics screen under Ads -> Display Ads has a new "Remove all ads" command that removes all ad records. It can be useful before loading ads from images.
Version 11.97.2
* Added an updateconfig.sh script to simplify mass changes to product configuration fields.
Create a sandbox directory and go there.
Create a text file prodlist.txt with one product id per line.
Create a dmap file setfields.dmap.
The dmap file should have one line per field with Field := Value, for example
FindAdView := 'FILT'
Run the updateconfig.sh script.
The script produces a trans file that you can use to update the production database in /u/cpag
* Added initial support for noVNC login.
Version 11.98.0
* The field "Use Agate Cut Rules if Converted" on the screen "Agate Ad Specifications (Continued)" and the field "Use display ad cut rules if converted" on the screen "Display Ad Specifications (Continued)" now have a range of values. 'YES' and 'T' work the same as enabling them, and 'NO' and 'F' work the same as disabling them, as before. They now have a new value 'ORIG' that places cut rules according to the original type in the sort file. This can be useful when all ads are external, and ClassPag can't tell which ads were converted.
* The ad database has a new field with the original ad type.
* The title of the file browser window now sometimes starts with a short description of the type of file that ClassPag wants you to select.
Version 11.98.1
* The fields "Use Agate Cut Rules if Converted" and "Use display ad cut rules if converted" have a new value '1' that uses agate rules on 1-column display ads and display rules on multi-column agate ads.
Changes to these fields take effect immediately and do not require re-importing.
For ads with a cut rule type different than their pagination type, the "Type" line of the "Box Information" window displays the cut rule type, a slash, and then the pagination type.
Version 11.98.2
* Fixed a problem where readcsv -o for JH CSV files could give the first ad a 0 depth.
Version 11.99.0
* Improved placement of small display ads in classes with much more display ad area than line ad area.
* Fixed a problem where Level Pages could squeeze out class headers.
Version 11.99.1
* Fixed a problem in the process_files interface script where it missed files in days over 29.
Version 12.00.0
* User records have a new "CAS Login" field that will enable logins from the CAS Desktop in a later version. Use Setup -> Users -> [Edit] to set the field to "Y" to enable logins. For security, the default is "N" not to allow logins.
* Added a cpag_moai_setup.sh script. If the ClassPag environment is not in /u/cpag, copy this script to /u/cpag, uncomment the line "CPAG_FORCE_HOME=/u/cpag" and set it to the top level directory of the ClassPag environment.
/u/moai/env/cpag_moai_env is hard-coded to run /u/cpag/cpag_moai_setup.sh if it is present.
* Additional CAS Desktop setup.
Follow the steps in the current CAS_and_noVNC_Setup document.
Check that /u/moai/server/local_applications/cpag.json exists. If it is missing, copy /u/moai/server/local_applications_samples/cpag.json.sample
Check that docker is running with "systemctl status docker". Docker should be enabled and started.
If "Desktop" option doesn't show in the CAS menu, login as an administrator and check that "Settings -> Site -> Users" places the user in a Security Group like "Desktop" that has "View Desktop" enabled in the "Applications" box.
If nothing opens the first time that you click to "Restart ClassPag" on the CAS Desktop, check that your browser didn't block the desktop popup window.
Check that moai is running and the cpag service is "ONLINE and API loaded." with "/u/moai/server/moai.py status".
If the active cpag environment is not /u/cpag, copy cpag_moai_setup.sh from the active environment to /u/cpag and edit it to set CPAG_FORCE_HOME to the active cpag environment.
Check that the moai cpag service is working with
"/u/moai/bin/cpag_moai_main_test.sh GetCPagUser --CASUsername=someusername"
User someusername does not exist in any cpag product:
{"Status":false,"Message":"CAS user not found","CPagUsername":null}
User someusername exists but does not have "CAS login" enabled:
{"Status":false,"Message":"CAS user not allowed in ClassPag","CPagUsername":null}
User someusername exists and has "CAS login" enabled:
{"Status":true,"Message":"OK","CPagUsername":"someusername"}
Version 12.00.1
* Eric update for productname and changed '(local)' to '*'.
Version 12.00.2
* Added a "CAS login" column and hotkey to the User setup.
* The User setup now has a toolbar.
Version 12.00.3
* Closing a session without writing an outext now writes a normal snapshot instead of final snapshot.
* Eric product configuration now checks that you are on the node that owns the product.
* Fixed a problem where restoring a session on eric would not always pick up changes made to the session on other servers.
Version 12.00.4
* Setup -> Users has a new hotkey to allow all users to enter through the CAS Desktop. Users must also be enabled in CAS under its Settings -> Site -> Users.
* check_pubfiles.sh now leaves the two digit prefix in processed files to make them easier to identify.
Version 12.00.5
* Creating ads no longer requires entering the old ad type. This fixes a problem introduced in 11.98.0.
Version 12.00.6
* Fixed multi-site sync on secondary nodes. The product list now comes from moai instead of the local eric.
Version 12.00.7
* Added eric/push_cpag_sync.sh for setting up a QA test environment. See push_cpag_sync.md for details.
Version 12.01.0
* ClassPag now places a single wide filler in some places where it used to place a few small one-column fillers.
* Fixed a problem where ClassPag would sometimes not place wide fillers on the leftmost column of a page.
Version 12.02.0
* ClassPag and ERIC now support ads on credit hold queues.
ClassPag treats hold ads the same as killed ads.
ClassPag will not place hold ads.
ClassPag will show hold ads in the list of killed ads.
Users with privileges to unkill ads can unkill hold ads.
ClassPag tracks hold ads in the ad database with the new "HO" position request.
classsrt.out should mark hold ads with the position request "HO" and the page request "KILL".
classsrt.xml should mark hold ads with "<queue_type>Hold</queue_type>".
classsrt.xml does not need the "HO" or "KILL" requests.
Version 12.02.1
* Remove classsrt.out in more places to force processing classsrt.xml.
Version 12.02.2
* Archive classsrt.out in eric snapshots.
Version 12.02.3
* Fixed an XML import problem that could write a "HOHOHO" position request.
Version 12.03.0
* ClassPag can now stores time stamps in UTC. Time stamp fields now have an additional UTC boolean field that is "T" if the time stamp is in UTC.
The default is local time for backward compatibility.
* Session records now have a "Notes" field for logging notes about the session.
The pagination screen has a new command "F12 -> Misc -> Edit session notes" to edit the notes.
The "Outext Export (Continued)" screen of the product configuration has a new boolean field "Ask for session notes on Exit" to prompt for session notes when leaving a session. Set it to "Y" to enable prompting for session notes.
* Session records now track whether an outext was sent, the number of seconds before printing the first page, and the number of pages printed.
Version 12.03.1
* cpag_interface.sh has a new extract_session_records option to extract session records for a range of dates set by the environment variables CPAG_SESSION_REPORT_START_DATE and CPAG_SESSION_REPORT_END_DATE.
The variable CPAG_SESSION_REPORT_FILE_NAME sets the output file name.
The default start date is the current date.
The default end date is the start date.
The default file name is report.txt. For example,
CPAG_SESSION_REPORT_START_DATE=20220101 CPAG_SESSION_REPORT_END_DATE=20221231 CPAG_SESSION_REPORT_FILE_NAME=year2022.csv ./cpag_interface.sh extract_session_records
Version 12.04.0
* The "Randomize"/"Aleatorio" field of the classification database has a new value "U" to sort agate ads by depth with the largest ad first.
The value "R" still sorts agate ads by depth with the smallest ad first.
Version 12.04.1
* Fixed an issue with eric failing to launch ClassPag.
* If ERIC_STARTUP_LOG_FILE is set to a valid directory, cpag_interface writes a log in that directory with the name "Date-Product-Session.log".
Version 12.04.2
* Check that Result.product_list[].productname is initialized.
Version 12.04.3
* Session records now contain the node name to allow combining data from multiple servers.
* The session csv now has UTF-8 encoding.
Version 12.04.4
* The ClassPag pagination screen has a new command "F12 -> Ads -> Compare ads to classsrt" that compares the ad database in the session to the ads passed by the interface in classsrt.out and opens a list of ads only in the database or only in the sort file. This can be useful as a quick discrepancy check if you suspect that ads are missing.
* The check for new ads now writes a record in the log database if eric returns an error putting a new sort file in place. It still also shows a dialog with the error.
Version 12.04.5
* ClassPag now includes SQLAdBoss scripts in the session_stats directory.
Version 12.05.0
* Added a runcpag.sh straceopen option to show file opens.
* Added a compareads.sh interface script to compare the ads in the ad database with the ads in the sort file.
-p proddir = scan the given product directory, can be repeated, -p YYYYMMDD/CLASS
-y yeardir = scan all of the product directories for a given date, can be repeated, -y YYYYMMDD
no -p or -y options = scan all of the product directories for the last week
Products with discrepancies are listed in /u/updates/disc_check/compareads_3.lis
* maketrns.sh no longer checks timestamps. This fixes a problem with missing ads if an old trans file had a more recent date than the database.
Version 12.05.1
* Print a message to the log file when an import can't segment an ad because the ad number isn't unique to 10 characters.
* Show more information when the XML export can't find the ad record for an ad in the session.
* Close more databases before reloading ads.
Version 12.06.0
* If ClassPag is configured to load ads from images with "Ad Image Load Directory Expression" set to a valid directory and "Load On Import" "YES", the check for new ads scans the ad image directory. If eric is enabled, the list of new ads shows both the new ad images and the new ads in eric.
* Added options to add an increment to the initial scale of ghostview previews.
The increment adds to the "PostScript preview scale" values on the "Page Display Preferences" screen of the product configuration.
ClassPag reads the increment from the CPAG_GV_MAGSTEP_INC environment variable. menprof.sh and runcpag.sh have a new "gvmagstepinc" # option to set it.
Each step is a factor of 1.41. For example, users with a high dpi workstation can add "gvmagstepinc 2" to their cpag launch script.
* If eric is enabled and the check for new ads applies changes, ClassPag writes new trans files.
Version 12.07.0
* The "Wrap All Ads" command can now select ads with single column legs separately from ads with multi-column legs. This can be useful to convert all multi-column segmented ads into boxes.
Version 12.08.0
* The "Wrap All Ads" command now has a tool bar button that can be enabled through the product configuration or a right click on the tool bar.
* The "Wrap All Ads" command now has default values for the wrap width and the selection width that can be set through the product configuration or a right click on the "Wrap All Ads" button.
Version 12.08.1
* Updated cpag_interface to write block directories if the parent doesn't exist.
Version 12.08.2
* Expressions can now get the Product Configuration "Publication Name" in the variable I_CPagPublicationName .
Version 12.08.3
* runcpag.sh has two new launch options. batchpagrun does a batch pagination without user input. batchpagprint is does a batch pagination like batchpagrun and then prints the first page using the "AutoPag" paper and spread.
* runcpag.sh has a papername option that takes a string with the paper name to use with batch pagination. This name overrides the "AutoPag" default.
* The cpag_export formula has a new GetERICPrinterList function to return the papers, spreads, and printers as JSON.
Version 12.08.4
* Fixed a problem where the check for new ads from eric would sometimes miss kills.
Version 12.08.5
* cpag_interface has an experimental batch pagination option.
Version 12.08.6
* The cpag_interface batch pagination now prints the first page with the "AutoPag" paper and spread.
Version 12.08.7
* Pagination sessions launched by cpag_interface now update the eric product status.
Version 12.08.8
* Batch pagination from eric now updates the product status.
* The environment variables CPAG_ERIC_NODE and CPAG_ERIC_USER override the node and user for testing.
Version 12.08.9
* Pagination sessions in eric now update the status column in the product list.
* Fixed screen file warnings when opening an eric product for the first time.
Version 12.08.10
* cpag_interface pagination sessions now work better if setup.sh was sourced before running cpag_interface.sh
* The GetPrinterList API now returns the paper FinalOutput as a string instead of a boolean.
Version 12.08.11
* Importing ads no longer restores the hold flag. This fixes a problem where checking for new ads would not release held ads.
Version 12.09.0
* ClassPag now warns about hold ads when opening and closing sessions, before printing pages, and after loading new ads from eric. This helps prevent publishing without hold ads that could have been resolved. ClassPag logs some of the warnings.
* The "Default vendor to ad num" field on the "Outext Export" screen of the product configuration has new values.
BOOK, F, or empty = write the ClassPag Booking, which comes from the ad_vendor_id in the classsrt.xml.
BKAD or T = write the Booking if it is set, and otherwise write the ad number.
AD = write the ad number.
BLANK = leave the ad vendor id empty.
IMAGE = write the basename of the image file name.
Use BOOK if the front-end passes vendor ids that it needs passed back.
Use BKAD if the front-end passes vendor ids but also needs ids for other items like headers and fillers.
Use AD if the front-end doesn't pass vendor ids but the application reading the outext.xml expects an ad number.
Use BLANK if passing anything in the ad vendor id causes problems.
Use IMAGE if the application reading the outext.xml uses vendor ids to locate image files. Applications that need an image name should be updated to use file_name_ref, which has the full path, or ad_track/material_id, which has the image name without the path.
* The eric interface can now get its node name from /etc/scs-eric-hostname .
It currently first checks the CPAG_ERIC_NODE environment variable, then the /etc/scs-eric-hostname file, then uname.
Version 12.09.1
* Added eric cleanup scripts cleanup_ad_images.sh, .py, and .ini.default.
Copy cleanup_ad_images.ini.default to cleanup_ad_images.ini and edit as needed.
Set the database connection in the [main] section and the purge directories and dates in the other sections. Run cleanup_ad_images.sh, which runs cleanup_ad_images.py in a python virtual environment.
Version 12.10.0
* Session locks in the eric interface now work across nodes.
* ClassPag now rebuilds wrapped ads in more cases.
Version 12.10.1
* Hold queue ads require both the "HO" position request and the "KILL" page request. Ads with "HO" but not "KILL" now run. This fixes a problem where an ad with only a "HO" request would not run but would also not show in the warning about hold ads.
* When ClassPag restores saved position requests from the previous session after importing an updated sort file, it no longer writes old SEG# requests over the KILL request of hold ads.
* When eric is enabled, ClassPag automatically saves the ad positions and the product directory without asking. This eliminates two popups. Users can revert to an earlier snapshot if they made a change that they didn't want saved.
Version 12.11.0
* The product configuration screen "Legal and Segmented Ad Specifications (Continued)" has a new field "Between Segs and Ads" to control whether ClassPag places horizontal cut rules between middle parts of segmented ads and normal ads (anything except reservations and fillers, which have their own settings). The default value of "Y" places a rule (if the product configuration would normally place a rule below a legal ad in that location) to separate the text of the segmented ad from normal ads. If normal ads don't have boxes, the rules help to show that the normal ad isn't a continuation of the partial legal ad. The value of "N" prevents ClassPag from placing a rule.
* rcpuniq.sh now supports lftp using implicit tls with ftps.
The -tls option enables ftps.
The -cert option sets the name of a certificate.
The -cert option accepts some keywords to save typing.
"-cert lay" uses the most recent of /u/layout*/bin/lftp_file_transfer.crt
"-cert etc" uses /etc/ssl/certs/vsftpd-certs.crt
When you use a certificate, the "Common Name" built into the certificate must match the host name.
rcpuniq.sh -name REMOTE-NAME -user USER -pass PASS -lftp -tls HOST: LOCAL-NAME
rcpuniq.sh -name REMOTE-NAME -user USER -pass PASS -lftp -tls -cert lay HOST: LOCAL-NAME
See the ClassPag setup.doc file for the steps to configure vsftpd.
* runcpag.sh batchtestprint now prints the page in the openpage option if it is set. This allows regression tests to specify the specific page that shows an issue.
Version 12.11.1
* Fixed eric question "You are about to restore this product".
Version 12.11.2
* Improved back-to-front horizontal pagination to place more ads before advancing to a new page.
* Improved front-to-back horizontal pagination to use shallow holes to the right of ads of the previous class.
* rcpuniq.sh with lftp now supports a -proto option to specify the protocol.
Valid -proto options are ftp, ftps, http, https, hftp, fish, and sftp.
By default, rcpuniq.sh -lftp uses -proto ftps when -tls is specified and -ftp otherwise.
Version 12.11.3
* Back to front horizontal pagination now avoids placing fillers at the bottoms of columns or adding large amounts of vertical justification space, both of which can shift the ads in the column out of class order.
If the top row of ads isn't full, it now shifts the first ad to the leftmost column so the page doesn't start with a filler.
Version 12.11.4
* The eric product list retains its default sort if you set the dates or refresh and haven't set a sort column.
* Improved eric product locking.
Version 12.11.5
* Fixed a problem where setting banners "Rebuild in preview" to "A" to rebuild placed banners automatically would sometimes not rebuild every banner.
* When possible, the eric product lock check now gets the product id from the product table instead of calling the eric server.
Version 12.11.6
* cpag_interface.sh now sets CPAG_ERIC_ENABLED=yes if it isn't set. The cpag_interface formula now warns if eric is disabled. This fixes a problem where recent versions of cpag_interface didn't check locks.
* Updated chmod commands to use an 'a' prefix for more predictable results in environments that override umask.
* When the Unwrap All command can't unwrap ads, it now lists the ads in a dialog, and it no longer removes the wrapped ad.
Version 12.11.7
* cpag_interface now allows viewing the history of locked products.
Version 12.11.8
* The "First line in ad boxes" fields on the "Page Display Preferences" screen of the product configuration have a new "CUST" value to show the customer name first.
* ClassPag with eric now writes the realcon file only immediately before making snapshots to avoid a source of git differences.
* ClassPag with eric now makes a snapshot the first time that it enters a session to leave a better state if the session is killed.
* cpag_interface logs now use stderr instead of stdout.
Version 12.11.9
* cpag_interface now works with an eric change that returns status 'new' instead of an error for products that don't exist.
Version 12.12.0
* The "Ad Loading" screen of the product configuration has a new "Class ... Len" field to set the length of the class name field when loading outext files.
The default is "8" to read outext files written by ClassPag.
Set it to "4" to read outext files written by Layout.
* Fixed a problem loading outext files using POINTS where it divided the height by 100 instead of by 10.
Version 12.12.1
* ClassPag now checks that it still has a lock before creating eric snapshots.
* Changed git options to fix errors in multinode eric access.
Version 12.12.2
* Fixed a problem in eric setting a status if the product directory didn't exist.
* cpag_interface no longer allows you to unlock unopened products.
Version 12.12.3
* When you try to open a locked product, cpag_interface no longer offers to unlock it. You can unlock products only with the Unlock Product hotkey. This makes it harder to unlock a product by accident.
Version 12.12.4
* When ClassPag clears saved ad positions before copying an import directory, it now removes the ad database in addition to the position database. This fixes a problem where manually created ads from the previous session could appear in the new session.
* ClassPag now shows line ad conflicts in more situations.
* The GUI for loading fonts now adds an "R" suffix for fonts with "Roman" in their name.
* The command to view a font in the GUI for loading fonts now shows open and close single and double quotes in the sample text.
* The pcspool utility in composition in spice tools from May 19, 2023, and later includes open and close double quotes in the SCS Encoding. This should fix problems where open and close double quotes could show incorrectly in fonts that didn't use the PostScript Standard Encoding.
* Updated shell syntax in convprod.sh.
Version 12.12.5
* The GUI to load fonts in Composition now uses ttf2pt1 3.4.4, which is provided by AlmaLinux 8. It runs "ttf2pt1 -l adobestd -a -e fontfilename".
-l adobestd sets the PostScript Standard Encoding, which works better for SCS Composition.
-a extracts all glyphs, which gives SCS Composition access to accented and special characters not defined by the PostScript Standard Encoding.
-e writes both a pfa and an afm.
* The command to view a font in the GUI for loading fonts now shows some sample accented characters, has more leading, and adds space below the last line to avoid clipping descenders.
* The cpag_interface Unlock Product command is disabled unless you run cpag_interface.sh with the new -admin option.
Version 12.12.6
* The "Rebuild in preview" field on the "Folios and Banners" screen of the product configuration has a new option "U" (automatic rebuild of both placed and unplaced banners). The previous options work as before: "A" (automatic rebuild of placed banners), "P" (prompt to rebuild placed banners), "T" (prompt to rebuild all banners if the edition parameters have changed), and "F" (do not rebuild banners). "U" is like "A" but does extra work also rebuilding unplaced banners that aren't necessary to view pages. "U" can be useful if you want to keep previews of unplaced banners updated.
* cpag_interface now writes the product metadata in realcone.dat instead of overwriting realcon.dat. This should fix a problem in eric with queued classes where opening an existing product on the first time on the other server reloads the class sequencing table, which resets the queued classes.
Version 12.12.7
* The cpag_interface Unlock Product command now enabled. You must ensure that all cpag nodes can reach all cpag nodes (including themselves) with root ssh, and that /u/scs/remote/multi-site-sync.json exists and is configured.
* Added a cpagkill utility that kills only cpag processes. It is a short C program that does not run any other programs (it reads the proc filesystem instead of running 'ps'), so it is safe to set suid.
cpagkill [-p #] [-s #] [-k] [-v] [-h]
-p pid = the process to kill
-s sig = the signal to send from 0 to 65
-k = wait and follow up with a kill signal
-v = verbose
-h = show this syntax message
returns 0 if the process doesn't exist or was killed
Version 12.13.0
* ClassPag can now load SCS Extended Product XML files from Layout. The "Load outext" command can now load XML files. It can automatically detect whether the file is an outext or an XML.
* The "Ad Loading" screen of the product configuration has a new boolean field "Import Ads from Layout XML". The XML should be called "layout.xml". If the field is set, "Read Files" will extract the date and page count from the XML, and the first entry to "Paginate" will load the ads and placements in the XML.
* Fixed a problem where ClassPag would sometimes not place headers above ads placed at the bottom of a page.
Version 12.13.1
* When reading a layout xml, ClassPag defaults the ending page of the edition parameters to the total pages of the xml.
Version 12.14.0
* The "Paste a banner" button now has hotkeys to enable and disable banners. This provides a way to undo killing a banner.
* The "Resize filler" button can now be configured to allow resizing agate fillers in addition to display fillers. Set the new "agate fillers" field on the "Toolbar Button Preferences (Continued)" screen of the product configuration or right-click on the "Resize filler" button.
* The cpag_interface Unlock Product command now checks that you are an administrator.
* The eric directory now includes an unlock_session.sh script with the syntax
unlock_session.sh PRODUCT SESSION RUNDATE ACTION
* ClassPag now takes the node name from the contents of /etc/scs-eric-hostname when it exists. This makes ClassPag consistent with the eric product list.
ClassPag products with printers that depend on the node name might need updates.
This change does not affect the expression interpreter F$NODE function, but expressions can get the new node name with F$LOGICAL('NODE').
* The Setup -> Version command now shows the full hostname and shows the IP correctly on servers that support IPv6.
* When you add a font to composition in the directory browser, if the file isn't a font, ClassPag now shows the file type as returned by the 'file' command.
* Fixed a problem where ClassPag with eric on a remote server wouldn't let you disable banners.
Version 11.85 changes
When ERIC is enabled, ClassPag allows changes to product-specific configuration databases only on the primary node for the product. The dialog shows the primary node.
Version 12.11.0 changes
Configure whether ClassPag should place a horizontal cut rule below a partial segmented ad that wraps to the next column.The default value of "Y" places a rule to separate the text of the segmented ad from normal ads. If most display ads don't have boxes, the rules help to show that the display ad isn't a continuation of the partial legal ad. If most display ads have boxes, rules might make the legal ad appear to end in the middle, and pages might look better without rules below partial ads.
Version 12.12.0 changes
The "Class... Len" field sets the length of the class name field when loading outext files.
Outext files don't have a standard class name field.
The class name is usually starts on column 1 of card 2 and can be up to 8 characters long.
The default length is "8" to read outext files written by ClassPag.
Set the length to "4" to read outext files written by Layout.
Version 12.13.0 changes
ClassPag can now load SCS Extended Product XML files from Layout. The "Load outext" command can now load XML files. It can automatically detect whether the file is an outext or an XML.
The "Ad Loading" screen of the product configuration has a new boolean field "Import Ads from Layout XML". The XML should be called "layout.xml". If the field is set, "Read Files" will extract the date and page count from the XML, and the first entry to "Paginate" will load the ads and placements in the XML.
Version 12.14.0 changes
The "Resize filler" button can now be configured to allow resizing agate fillers in addition to display fillers. Set the new "agate fillers" field on the "Toolbar Button Preferences (Continued)" screen of the product configuration or right-click on the "Resize filler" button. Placing display fillers is better than resizing agate fillers because ClassPag can place different agate fillers each pagination pass and because the size change affects all instances of the filler. In sessions with a single page, resizing agate fillers can be convenient, and using the "Resize filler" button can safely resize the filler for the current session without affecting other sessions.
Comments
0 comments
Please sign in to leave a comment.