Difficulty in replacing a source file

Hi,
I'm new to scripting, and am trying to replace a layer's source file while keeping all it's attributes. I wrote the following script which I thought would work, but it doesn't... I have searched all the pdf support files for an answer to this without any result... I can't find a example to do this either. When using AE, this can be done by holding ALT and dragging a file to the layer. (see below)
Replace layer sources with references to another footage item
Select one or more layers in the Timeline panel
Alt-drag (Windows) or Option-drag (Mac OS) a footage item from the Project panel onto a selected layer in the Timeline panel.
This is what I'm trying to accomplish in script. Here's what isn't working:
//app.project.item(index).layer(index) .replaceSource (newSource, fixExpressions)
var mynewSource = "c:\\AE Media\Jpg files\replacementfile.jpg"
app.project.item(1).layer(1).replaceSource (mynewSource,false)
I hope I can get help with this... thanks!

You were missing a third closing bracket on this line, but your lack of semi-colons was causing it to report the error as on the next line:
app.project.importFile(new ImportOptions(File(mynewSource)));
Also your mynewSource variable is only ever a string of the path, not the imported footage, so it won't work to replace it. Try something like:
var mynewSource = "c:\\AE Media\Jpg files\replacementfile.jpg";
var myFile = File (mynewSource);
if (myFile.exists) {
     alert("file exists!");
     var importOptions = new ImportOptions(myFile);
     //importOptions.importAs = ImportAsType.COMP; // you can do stuff like this at this point for PSDs
     var theImport = app.project.importFile(importOptions);
     app.project.item(1).layer(1).replaceSource(theImport,false);

Similar Messages

  • Replace source file in Media Encoder

    Is it not possible to replace the source file being used in Media Encoder to encode files?
    Every time I try to do this it gives me red render frames. Even if the clip is the exact same length. Sometimes ill render a master out, and then create a setup with inpoints and filenames and then relize there is an error in the master but I cannot just re-render the master with the fixes and re-use all the settings I have.
    In Sorenson Squeeze I can just reset the status of the encode and it will just use the new version of the source file with no issues at all.

    This is an unsupported workflow and as such your results may vary. It is very possible that in some cases this would work, but my recommendation would be to simply import the new master and apply the same preset that you used the first time. That being said, please feel free to submit a feature request if this feature is important to you: https://www.adobe.com/cfusion/mmform/index.cfm?name=wishform

  • Replace Unknown Source in EcmaError (JSR223) with actual file name

    Hopefully someone here knows how to do this:
    In my code, all of the scripts are contained in .js files. Whenever one of the scripts contains an error, I get this:
    javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "nonexistant" is not defined. (<Unknown source>#5) in <Unknown source> at line number 5
    What bugs me is the <Unknown Source>. Multiple files are in one ScriptContext, and it can be hard to track down an error. It also looks horrible.
    Is there a way to replace <Unknown Source> with the actual file name? None of the methods I see support passing a File object, so I'm really confused here.
    Cross posted (and unanswered) at:
    http://stackoverflow.com/questions/2885120/replace-unknown-source-in-java-rhino-jsr223-with-actual-file-name
    http://www.javaprogrammingforums.com/exceptions/4465-replace-unknown-source-ecmaerror-jsr223-actual-file-name.html
    http://groups.google.com/group/mozilla.dev.tech.js-engine.rhino
    http://mozilla-xp.com/mozilla.dev.tech.js-engine.rhino/Replace-Unknown-Source-with-Script-file-name

    You may need to set compile debug option set to true.
    I am not sure if my tip is useful for you, anyway good luck.

  • Replacing the Header in rule file without changing source file(header defi)

    hi,
    i am loading the data using header in the Source file (.xls).
    I need to load the same file but for diff header (say instead of A1 i need A2) without any changes in source file.
    can someone please provide information that how to change the header in source file without opening/changing source file.
    Thanks in advance
    Anubhav Bisht

    HI SM,
    thanks for reply.
    the Problem is that there is two members in header defined in the source file that i need to change while loading the data.
    the load rule is picking header from the Source file, so replacing in the field is not working..
    do you have any other option/Suggestion.
    Regards
    Anubhav

  • Replace sourcefile small or big change in source file if machines are already received old policy how they behaves

    we have deployed package or task sequence into static or dynamic collection with always re-run or re-occurrence re-run settings . issue is need to replace sourcefile small or big change in source file setps need to perform stop advertisement and replace
    new content update source version (update package) re-enable advertisement. now question is if machines are already received old policy how they behaves and if machines already installed package\task sequence how they behaves.

    Peter is correct, however I think the crux of the question is what will the client do when the source files are updated in relation to existing deployments. The answer is nothing. Source file changes do *not* trigger deployments to be rerun. If the deployment
    has not run yet, as Peter noted, the new files will get downloaded, however, if the deployment has already been enforced, there's nothing to be done as the point of the deployment to run the appropriate command-line. Once that's been done, a source file change
    is meaninglessness.
    Jason | http://blog.configmgrftw.com | @jasonsandys

  • FDM, How to replace the value of my source file inside BefFileImport

    Hi all,
    I want to edit some value that will need some validating inside the source file with some condition inside the source file.
    I know the easy way is to build the validation inside import script, but the import script usually will run for each row, if I put the logic inside it will make the performance slow, I assume, because every one row, it will open the file.
    So I try to do one time conversion, so I choose to put my logic inside BefFileImport VBScript, but after my script run, the value was not change, it still stick with old value.
    Need your help for this.
    the below example, I want to do
    Sub BefFileImport(strLoc, strCat, strPer, strFile)
    If InStr(strFile,"test123")>0 Then
    Location="C:\Oracle\FDMApp\SampleApp\Inbox\Batches\OpenBatch\"
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f1 = fso.OpenTextFile(Location & strFile, 1)
    Set str= CreateObject("System.Collections.ArrayList")
    Do Until f1.AtEndOfStream
      str.add f1.ReadLine
    Loop
    Set f1=Nothing
    Set f2 = fso.OpenTextFile(Location & strFile, 2)
    For Each dataLine In str
      tmp = Split(dataLine,";")
      value = valcheck(str,tmp(14),tmp(13), tmp(6), tmp(1))
      If  entityPartner = "" Then
      f2.WriteLine tmp(0) & ";" & tmp(1) & ";" & tmp(2) & ";" & tmp(3) & ";" & tmp(4) & ";" & tmp(14)
      Else
      f2.WriteLine tmp(0) & ";" & tmp(1) & ";" & tmp(2) & ";" & tmp(3) & ";" & tmp(4) & ";"& value
      End If
    Next
    Set f2=Nothing
    Set str=Nothing
    Set fso=Nothing
    End If
    End Sub
    Thanks
    Dedy

    Hi
    You can achieve this with virtual characteristics option. Code the logic in the customer exit program and it would work.
    Thanks & Regards
    8283

  • PDF outputs continually crash after editing an html source file

    I have English and multiple localized versions of a RoboHelp webhelp project. I have created several PDF outputs for the localized versions. I can generate the PDFs fine when I don't touch any of the html source files.
    However, I had to make a change to one of the html source files to remove a <dl> from the source file. After making the change to the source file in an outside text editor (Notepad ++), I went back to RoboHelp to generate the PDF, and the PDF output crashed.
    The reason I was using an outside text editor is that when I tried to edit the <dl> HTML tags in RH, its HTML editor deleted all text within the tags being edited.  There was no undo at this point.  In anotehr attempt to use the RH Design editor, RH didn’t delete the <dd> or <dt> tags when those tag styles were changed to <h4> and <p>, respectively. RH inserted the new html wrapper inside the existing ones, instead of replacing it.
    Also, during the PDF generation process, a Visual Basic error message will appear dozens of times stating that the application was interrupted.  I must press OK to continue for each error message.
    What gives with the PDF generation failing like this?

    I hate to say it but it sounds like something you are doing in the external editor is not liked by RoboHelp.
    It could just be the way that text editor codes the file. I use EditPad Pro and that has various options for text encoding. My guess is your editor is not set to what RoboHelp expects.
    Aftr that what I would do here is create a new one topic project and recreate the problem, with the minimum of text. It may help you spot the code RoboHelp does not like.
    See www.grainge.org for RoboHelp and Authoring tips
    @petergrainge

  • Find and replace with multiple files and with a watch folder

    I am trying to create a watch folder that uses red_menace script to:
    1. Have a folder that receives multiple xml files that run the script one by one.
    2. then move the files to an output folder.
    I tried modifying the set TheFIle to choose file -- the original text file to:
    with multiple selections allowed
    But that doesn't seem to work. I know i'm missing a step. Any help is much appreciated!
    Thanks!
    The way i'd like to setup things is having an input folder on the desktop (or just have the application on the desktop and I can drag the files onto it), and let it do it's thing. Once it's done have it export the xml files into an output folder.
    Here's what i got so far:
    on open
    set TheFIle to choose file -- the original text file
    set TheFolder to ("Macintosh HD:Users:user1:Desktop:out") -- the folder for the output file
    set TheName to (GetUniqueName for TheFIle from TheFolder) -- the name for the output file
    set TheText to read TheFIle -- get the text to edit
    set Originals to {"KPCALDATE", "KPCALEVENT", "KPCALDAY", "KPCALBODY", "obituaries name", "" & return & "</cstyle></pstyle>" & return & "<pstyle name=\"obituaries text\"><cstyle>", "<pstyle name=\"obituaries text\"><cstyle name=\"Graphics Bold leadin\" font=\"ADV AGBook-Medium 2\">", "<pstyle name=\"Recipe Ingredients\"><cstyle>", " .com", " .net", " .org", " .edu", "www .", "www. ", "Ho- nolulu", "<pstyle name=\"kicker 12\"><cstyle allcaps=\"1\">fashion news</cstyle><cstyle allcaps=\"1\">" & return & "</cstyle></pstyle>" & return & "", "<component name=\"Headline 1\" type=\"Headline\">" & return & "<header>" & return & "<field name=\"Component name\" type=\"string\" value=\"Headline 1\"/>" & return & "<field name=\"Component type\" type=\"popup\" value=\"Headline\"/>" & return & "</header>" & return & "<body>" & return & "<pstyle name=\"hed STANDARD 36\"><cstyle>", "<pstyle name=\"obituaries text\"><cstyle allcaps=\"1\">", "<pstyle name=\"obituaries text\"><cstyle name=\"Graphics Bold leadin\">", "<pstyle name=\"tagline\"><cstyle>-", "-", "
    Per serving:", "<pstyle name=\"Titlebar - mini, red\"><cstyle allcaps=\"1\">NATION & World </cstyle><cstyle allcaps=\"1\">Report</cstyle><cstyle allcaps=\"1\">" & return & "</cstyle></pstyle>" & return & "", "</cstyle></pstyle>"} -- the terms that can be replaced
    set Replacements to {"subhed", "subhed", "subhed", "Normal", "obituaries text", ", ", "<pstyle name=\"obituaries text\"><cstyle name=\"Graphics Bold leadin\" font=\"ADV AGBook-Medium 2\">", "<pstyle name=\"Recipe Ingredients\"><cstyle>
    ", ".com", ".net", ".org", ".edu", "www.", "www.", "Honolulu", "", "<component name=\"Headline1\" type=\"Headline\">" & return & "<header>" & return & "<field name=\"Component name\" type=\"string\" value=\"Headline1\"/>" & return & "<field name=\"Component type\" type=\"popup\" value=\"Headline\"/>" & return & "</header>" & return & "<body>" & return & "<pstyle name=\"hed STANDARD 27\"><cstyle>", "<pstyle name=\"obituaries text\"><cstyle allcaps=\"1\">", "<pstyle name=\"obituaries text\"><cstyle name=\"Graphics Bold leadin\">", "<pstyle name=\"tagline\"><cstyle>—", " —", "
    Per serving:", "","" & return & "</cstyle></pstyle>"} -- the replacement terms
    repeat with AnItem from 1 to count Originals
    set TheText to (replaceText of TheText from (item AnItem of Originals) to (item AnItem of Replacements))
    end repeat
    try -- write a new output file
    tell application "Finder" to make new file at TheFolder with properties {name:TheName}
    set OpenFile to open for access (result as alias) with write permission
    write TheText to OpenFile starting at eof
    close access OpenFile
    on error errmess
    try
    log errmess
    close access OpenFile
    end try
    end try
    end open
    to GetUniqueName for SomeFile from SomeFolder
    check if SomeFile exists in SomeFolder, creating a new unique name if needed
    parameters - SomeFile [mixed]: a source file path
    SomeFolder [mixed]: a folder to check
    returns [text]: a unique file name and extension
    set {Counter, Divider} to {"00", "_"}
    -- get the name and extension
    set {name:TheName, name extension:TheExtension} to info for file (SomeFile as text)
    if TheExtension is missing value then set TheExtension to ""
    set TheName to text 1 thru -((count TheExtension) + 2) of TheName
    set NewName to TheName & "." & TheExtension
    tell application "System Events" to tell (get name of files of folder (SomeFolder as text))
    repeat while it contains NewName
    set Counter to text 2 thru -1 of ((100 + Counter + 1) as text) -- leading zero
    set NewName to TheName & Divider & Counter & "." & TheExtension
    end repeat
    end tell
    return NewName
    end GetUniqueName
    to EditItems of SomeItems given Title:TheTitle, Prompt:ThePrompt
    displays a dialog for multiple item edit (note that a return is used between each edit item)
    for each of the items in SomeItems, a line containing it's text is placed in the edit box
    the number of items returned are padded or truncated to match the number of items in SomeItems
    parameters - SomeItems [list]: a list of text items to edit
    TheTitle [boolean/text]: use a default or the given dialog title
    ThePrompt [boolean/text]: use a default or the given prompt text
    returns [list]: a list of the edited items, or {} if error
    set {TheItems, TheInput, TheCount} to {{}, {}, (count SomeItems)}
    if TheCount is less than 1 then return {} -- error
    if ThePrompt is in {true, false} then -- "with" or "without" Prompt
    if ThePrompt then
    set ThePrompt to "Edit the following items:" & return -- default
    else
    set ThePrompt to ""
    end if
    else -- fix up the given prompt a little
    set ThePrompt to ThePrompt & return
    end if
    if TheTitle is in {true, false} then if TheTitle then -- "with" or "without" Title
    set TheTitle to "Multiple Edit Dialog" -- default
    else
    set TheTitle to ""
    end if
    set {TempTID, AppleScript's text item delimiters} to {AppleScript's text item delimiters, return}
    set {SomeItems, AppleScript's text item delimiters} to {SomeItems as text, TempTID}
    set TheInput to paragraphs of text returned of (display dialog ThePrompt with title TheTitle default answer SomeItems)
    repeat with AnItem from 1 to TheCount -- pad/truncate entered items
    try
    set the end of TheItems to (item AnItem of TheInput)
    on error
    set the end of TheItems to ""
    end try
    end repeat
    return TheItems
    end EditItems
    to replaceText of SomeText from OldItem to NewItem
    replace all occurances of OldItem with NewItem
    parameters - SomeText [text]: the text containing the item(s) to change
    OldItem [text]: the item to be replaced
    NewItem [text]: the item to replace with
    returns [text]: the text with the item(s) replaced
    set SomeText to SomeText as Unicode text -- TID's are case insensitive with Unicode text
    set {TempTID, AppleScript's text item delimiters} to {AppleScript's text item delimiters, OldItem}
    set {ItemList, AppleScript's text item delimiters} to {text items of SomeText, NewItem}
    set {SomeText, AppleScript's text item delimiters} to {ItemList as text, TempTID}
    return SomeText
    end replaceText
    Message was edited by: gamebreakers

    When you use the open or adding folder items to handlers, you need to add the parameters for the file items passed to them.
    I'll go ahead and post the applet/droplet version of my original script from the previous topic for reference:
    <pre style="
    font-family: Monaco, 'Courier New', Courier, monospace;
    font-size: 10px;
    margin: 0px;
    padding: 5px;
    border: 1px solid #000000;
    width: 720px; height: 340px;
    color: #000000;
    background-color: #FFEE80;
    overflow: auto;"
    title="this text can be pasted into the Script Editor">
    -- search and replace multiple items applet/droplet/folder action
    -- the terms to replace - edit as needed
    property EditableItems : {¬
    "one", ¬
    "two", ¬
    "three", ¬
    "four", ¬
    "five", ¬
    "six", ¬
    "seven", ¬
    "eight", ¬
    "nine", ¬
    "ten", ¬
    "eleven", ¬
    "twelve", ¬
    "thirteen", ¬
    "fourteen", ¬
    "fifteen", ¬
    "sixteen", ¬
    "seventeen", ¬
    "eighteen", ¬
    "nineteen", ¬
    "twenty"}
    -- the folder for the output file(s) - change as needed
    property TheFolder : (path to desktop)
    property LastEditItems : EditableItems
    on run
    the applet/droplet was double-clicked
    open (choose file with multiple selections allowed)
    end run
    on open TheItems
    items were dropped onto the applet/droplet
    parameters - TheItems [list]: a list of the items (aliases) dropped
    returns nothing
    repeat with AnItem in TheItems
    ReplaceMultipleItems from AnItem
    end repeat
    end open
    on adding folder items to this_folder after receiving these_items
    folder action - items were added to a folder
    parameters - this_folder [alias]: the folder added to
    these_items [list]: a list if items (aliases) added
    returns nothing
    repeat with AnItem in these_items
    ReplaceMultipleItems from AnItem
    end repeat
    end adding folder items to
    to ReplaceMultipleItems from SomeFile
    replace multiple text items in SomeFile
    parameters - SomeFile [alias]: the file to replace items in
    returns nothing
    set TheName to (GetUniqueName for SomeFile from TheFolder) -- the name for the output file
    set TheText to read SomeFile -- get the text to edit
    set Originals to (choose from list EditableItems default items LastEditItems with prompt "Select the terms to replace:" with multiple selections allowed) -- the specific terms to replace
    set LastEditItems to Originals
    set Replacements to (EditItems of Originals with Title given Prompt:"Edit the following replacement terms:") -- the replacement terms
    repeat with AnItem from 1 to count Originals
    set TheText to (ReplaceText of TheText from (item AnItem of Originals) to (item AnItem of Replacements))
    end repeat
    try -- write a new output file
    tell application "Finder" to make new file at TheFolder with properties {name:TheName}
    set OpenFile to open for access (result as alias) with write permission
    write TheText to OpenFile starting at eof
    close access OpenFile
    on error errmess
    try
    log errmess
    close access OpenFile
    end try
    end try
    end ReplaceMultipleItems
    to GetUniqueName for SomeFile from SomeFolder
    check if SomeFile exists in SomeFolder, creating a new unique name if needed
    parameters - SomeFile [mixed]: a source file path
    SomeFolder [mixed]: a folder to check
    returns [text]: a unique file name and extension
    set {Counter, Divider} to {"00", "_"}
    -- get the name and extension
    set {name:TheName, name extension:TheExtension} to info for file (SomeFile as text)
    if TheExtension is in {missing value, ""} then
    set TheExtension to ""
    else
    set TheExtension to "." & TheExtension
    end if
    set {NewName, TheExtension} to {TheName, (ChangeCase of TheExtension to "upper")}
    set TheName to text 1 thru -((count TheExtension) + 1) of TheName
    tell application "System Events" to tell (get name of files of folder (SomeFolder as text))
    repeat while it contains NewName
    set Counter to text 2 thru -1 of ((100 + Counter + 1) as text) -- leading zero
    set NewName to TheName & Divider & Counter & TheExtension
    end repeat
    end tell
    return NewName
    end GetUniqueName
    to EditItems of SomeItems given Title:TheTitle, Prompt:ThePrompt
    displays a dialog for multiple item edit (note that a return is used between each edit item)
      for each of the items in SomeItems, a line containing it's text is placed in the edit box
        the number of items returned are padded or truncated to match the number of items in SomeItems
    parameters - SomeItems [list]: a list of text items to edit
    TheTitle [boolean/text]: use a default or the given dialog title
    ThePrompt [boolean/text]: use a default or the given prompt text
    returns [list]: a list of the edited items, or {} if error
    set {TheItems, TheInput, TheCount} to {{}, {}, (count SomeItems)}
    if TheCount is less than 1 then return {} -- error
    if ThePrompt is in {true, false} then -- "with" or "without" Prompt
    if ThePrompt then
    set ThePrompt to "Edit the following items:" & return -- default
    else
    set ThePrompt to ""
    end if
    else -- fix up the given prompt a little
    set ThePrompt to ThePrompt & return
    end if
    if TheTitle is in {true, false} then if TheTitle then -- "with" or "without" Title
    set TheTitle to "Multiple Edit Dialog" -- default
    else
    set TheTitle to ""
    end if
    set {TempTID, AppleScript's text item delimiters} to {AppleScript's text item delimiters, return}
    set {SomeItems, AppleScript's text item delimiters} to {SomeItems as text, TempTID}
    set TheInput to paragraphs of text returned of (display dialog ThePrompt with title TheTitle default answer SomeItems)
    repeat with AnItem from 1 to TheCount -- pad/truncate entered items
    try
    set the end of TheItems to (item AnItem of TheInput)
    on error
    set the end of TheItems to ""
    end try
    end repeat
    return TheItems
    end EditItems
    to ReplaceText of SomeText from OldItem to NewItem
    replace all occurances of OldItem with NewItem
    parameters - SomeText [text]: the text containing the item(s) to change
    OldItem [text]: the item to be replaced
    NewItem [text]: the item to replace with
    returns [text]: the text with the item(s) replaced
    set SomeText to SomeText as text
    if SomeText contains OldItem then
    set {TempTID, AppleScript's text item delimiters} to {AppleScript's text item delimiters, OldItem}
    try
    set {ItemList, AppleScript's text item delimiters} to {text items of SomeText, NewItem}
    set {SomeText, AppleScript's text item delimiters} to {ItemList as text, TempTID}
    on error ErrorMessage number ErrorNumber -- oops
    set AppleScript's text item delimiters to TempTID
    error ErrorMessage number ErrorNumber
    end try
    end if
    return SomeText
    end ReplaceText
    to ChangeCase of SomeText to CaseType
    changes the case or capitalization of SomeText to the specified CaseType using Python
    parameters - SomeText [text]: the text to change
    CaseType [text]: the type of case desired:
    "upper" = all uppercase text
    "lower" = all lowercase text
    "title" = uppercase character at start of each word, otherwise lowercase
    "capitalize" = capitalize the first character of the text, otherwise lowercase
    returns [text]: the changed text 
    set SomeText to SomeText as text
    if CaseType is not in {"upper", "lower", "title", "capitalize"} then return SomeText
    return (do shell script "/usr/bin/python -c \"import sys; print unicode(sys.argv[1], 'utf8')." & CaseType & "().encode('utf8')\" " & quoted form of SomeText)
    end ChangeCase
    </pre>
    Edit: how does the choose from list dialog handle those big strings? I'm guessing not very well - is that why you avoided using them?
    Message was edited by: red_menace

  • Bulk create Active Directory Users and Groups in PowerShell using Excel XLSX source file instead of CSV

    Hi Scripting Guy.  I am a Server Administrator who is very familiar with Active Directory, but new to PowerShell.  Like many SysAdmins, I often need to create multiple accounts (ranging from 3-200) and add them multiple groups (ranging
    from 1 - 100).  Previously I used VBS scripts in conjunction with an Excel .XLS file (not CSV file).  Since VBS is essentially out the door and PowerShell is in - I am having to re-create everthing.
    I have written a PowerShell script that bulk creates my users and adds them to their corresponding groups - however, this can only use a CSV file (NOT an XLS file).  I understand that "CSV is much easier to use than Excel worksheets", but
    most times I have three sets of nearly identical groups (for Dev, QA and Prod).  Performing Search and Replace on the Excel template across all four Worksheets ensures the names used are consistent throughout the three environments.
    I know each Excel Worksheet can be exported as a separate CSV file and then use the PowerShell scripts as is, but since I am not the only SysAdmin who will be using these it leads to "unnecessary time lost", not to mention the reality that even
    though you clearly state "These tabs need to be exported using this naming standard" (to work with the PowerShell scripts) that is not the result.
    I've been tasked to find a way to modify my existing PowerShell/CSV scripts to work with Excel spreadsheets/workbooks instead - with no success.  I have run across many articles/forums/scirpts that let you update Excel or export AD data into an Excel
    spreadsheet (even specifying the worksheet, column and row) - but nothing for what I am trying to do.
    I can't imagine that I am the ONLY person who is in this situation/has this need.  So, I am hoping you can help.  How do I modify my existing scripts to reference "use this Excel spreadsheet, and this specific worksheet in the spreadsheet
    prior to performing the New-ADUser/Add-ADGroupMember commands".
    For reference, I am including Worksheet/Column names of my Excel Spreadsheet Template as well as the first part of my PowerShell script.  M-A-N-Y T-H-A-N-K-S in advance.
       Worksheet:  Accounts
         Columns: samAccountName, CN_DisplayName_Name, sn_LastName, givenName_FirstName, Password, Description, TargetOU
       Worksheets:  DevGroups / QAGroups / ProdGroups
         Columns:  GroupName, Members, MemberOf, Description, TargetOU
    # Load PowerShell Active Directory module
    Write-Host "Loading Active Directory PowerShell module." -foregroundcolor DarkCyan # -backgroundcolor Black
    Import-Module ActiveDirectory
    Write-Host " "
    # Set parameter for location of CSV file (so source file only needs to be listed once).
    $path = ".\CreateNewUsers-CSV.csv"
    # Import CSV file as data source for remaining script.
    $csv = Import-Csv -path $path | ForEach-Object {
    # Add '@saccounty.net' suffix to samAccountName for UserPrincipalName
    $userPrincinpal = $_."samAccountName" + "@saccounty.net"
    # Create and configure new AD User Account based on information from the CSV source file.
    Write-Host " "
    Write-Host " "
    Write-Host "Creating and configuring new user account from the CSV source file." -foregroundcolor Cyan # -backgroundcolor Black
    New-ADUser -Name $_."cn_DisplayName_Name" `
    -Path $_."TargetOU" `
    -DisplayName $_."cn_DisplayName_Name" `
    -GivenName $_."givenName_FirstName" `
    -SurName $_."sn_LastName" `
    -SamAccountName $_."samAccountName" `
    -UserPrincipalName $userPrincinpal `

    Here is the same script as a function:
    Function Get-ExcelSheet{
    Param(
    $fileName = 'C:\scripts\test.xls',
    $sheetName = 'csv2'
    $conn = New-Object System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source = $fileName;Extended Properties=Excel 8.0")
    $cmd=$conn.CreateCommand()
    $cmd.CommandText="Select * from [$sheetName$]"
    $conn.open()
    $cmd.ExecuteReader()
    It is called like this:
    Get-ExcelSheet -filename c:\temp\myfilename.xslx -sheetName mysheet
    Do NOT change anything in the function and post the exact error.  If you don't have Office installed correctly or are running 64 bits with a 32 bit session you will have to adjust your system.
    ¯\_(ツ)_/¯
    HI JRV,
    My apologies for not responding sooner - I was pulled off onto another project this week.  I have included and called your Get-ExcelSheet function as best as I could...
    # Load PowerShell Active Directory module
    Write-Host "Loading Active Directory PowerShell module." -foregroundcolor DarkCyan # -backgroundcolor Black
    Import-Module ActiveDirectory
    Write-Host " "
    # JRV This Function Loads the Excel Reader
    Function Get-ExcelSheet{
    Param(
    $fileName = 'C:\scripts\test.xls',
    $sheetName = 'csv2'
    $conn = New-Object System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source = $fileName;Extended Properties=Excel 8.0")
    $cmd=$conn.CreateCommand()
    $cmd.CommandText="Select * from [$sheetName$]"
    $conn.open()
    $cmd.ExecuteReader()
    # Set parameter for location of CSV file (so source file only needs to be listed once) as well as Worksheet Names.
    $sourceFile = ".\NewDocClass-XLS-Test.xlsx"
    # Add '@saccounty.net' suffix to samAccountName for UserPrincipalName
    $userPrincinpal = $_."samAccountName" + "@saccounty.net"
    # Combine GivenName & SurName for DisplayName
    $displayName = $_."sn_LastName" + ". " + $_."givenName_FirstName"
    # JRV Call the Get-ExcelSheet function, providing FileName and SheetName values
    # Pipe the data from source for remaining script.
    Get-ExcelSheet -filename "E:\AD_Bulk_Update\NewDocClass-XLS-Test.xlsx" -sheetName "Create DocClass Accts" | ForEach-Object {
    # Create and configure new AD User Account based on information from the CSV source file.
    Write-Host " "
    Write-Host " "
    Write-Host "Creating and configuring new user account from the CSV source file." -foregroundcolor Cyan # -backgroundcolor Black
    New-ADUser -Name ($_."sn_LastName" + ". " + $_."givenName_FirstName") `
    -SamAccountName $_."samAccountName" `
    -UserPrincipalName $userPrincinpal `
    -Path $_."TargetOU" `
    Below is the errors I get:
    Exception calling "Open" with "0" argument(s): "The 'Microsoft.Jet.OLEDB.4.0'
    provider is not registered on the local machine."
    At E:\AD_Bulk_Update\Create-BulkADUsers-XLS.ps1:39 char:6
    + $conn.open()
    + ~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : InvalidOperationException
    Exception calling "ExecuteReader" with "0" argument(s): "ExecuteReader
    requires an open and available Connection. The connection's current state is
    closed."
    At E:\AD_Bulk_Update\Create-BulkADUsers-XLS.ps1:40 char:6
    + $cmd.ExecuteReader()
    + ~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : InvalidOperationException

  • How to edit the source file of a PDF form?

    Hi,
    I used a Word doc as a base to create a PDF form and have added many fields to it using Adobe X Pro.
    Now, i have to change some of the text in the Word doc. Therefore I would like to change the Word. doc and reupload it as the source file for the form.
    How can I do this?
    thanks in advance!
    regards, Laurie

    After updating the Word file create a new PDF from it. Open the old one (with the fields) and use the Replace Pages command to replace the pages of the old file with those from the new one. This will keep the fields in tact and you'll have a version with the new pages and the old fields.

  • How to get full source file name in Exporter SDK

    Hi,
    I'm making an Exporter Plug-in using SDK 5.5.
    I want to get the path and extension of the source file (when export file) and path of the sequence (when export sequence).
    Especially the extension of the source file, which is always be replaced by the output extension.
    I can't find it in the SDK guide and sample. Sorry if I'm being a noob.
    Thank you.

    Sequences are generally made up of multiple clips edited together.  It's rare that a user would take a single clip and reexport it.  So there isn't usually a one-to-one relationship between source file and exported file.  Because of that, PPro provides the sequence name as the default file name.
    If you did need to get at the source files, you could do it only under specific circumstances - only when exporting directly from PPro, or when loading a clip directly into AME, but not when exporting a sequence from PPro through AME.  You would need to use the Video Segment Suite to parse the timeline segments, as demonstrated in the player sample code in videoSequenceParser->ParseSequence().  This is quite a complicated process and not something worth pursuing unless absolutely necessary.
    Regards,
    Zac

  • How do I save Lightroom image edits in source file?

    My experience with the trial version of lightroom is very positive in terms of the convenient and powerful capabilities for editing images and the associated metadata.  But I can't find a way to save the "develop" edits to images into the source file for the photo I am working with.  So far, I am able to save the metadata into the file but not the image editing.  From what I read, I fear this is not possible without silly round about exporting to new files then copying / moving multiple copies around, etc. Without this ability, I am pretty sure I will not purchase lightroom and will miss out on all the powerful features.  Without an OPTION that turns on the equivalent of a SAVE button, managing my photos collection would be a nightmare. 
    So my question is: How do I save the edited (i.e., developed) version of a photo back into the same file where the original photo was stored?
    Please, please spare me all the reponses telling me how stupid I am for wanting to do this and that the cognisenti and professionals would NEVER do this.    But please just tell me there is a secret place to turn on this option in lightroom.
    Thanks in advance.

    I had the same requirement to save in JPEGs files all non-metadata edits performed in Lightroom, in order to share modified pictures without duplicating files. By the way, I think it’s going to be more and more required by casual Lightroom users, as people get used to instant photo sharing in many situations where quantity matters more than quality
    Here’s a nearly automatic (at least, scalable) solution that works, although it slightly lowers the quality by re-compressing the original pictures.
    Once for all:
    Download and install the wonderful Lightroom plugin “jf Run Any Command”, provided as donationware by Jeffrey Friedl here: http://regex.info/blog/lightroom-goodies/run-any-command. This “export filter” plugin allows you to run a command of your choice with each exported file, as part of the export while it’s going on. (You may also browse Jeffrey’s blog to find many other useful and beautiful things.)
    In Lightroom, pre-define an export settings as follows:
    Export to the hard drive, to the original picture folder, without adding the exported file to the catalog
    Name the exported file “EXPORTED-{Filename}” (or anything different from the original file name)
    JPEG format, 76% quality (see An Analysis of Lightroom JPEG Export Quality Settings at http://regex.info/blog/lightroom-goodies/jpeg-quality)
    Keep all metadata
    Here’s the interesting part, the Run Any Command settings:
    Command to execute for each exported picture: copy "{FILE}" "{Path}\{LIBRARYFILENAME}" (this replaces the original file with a copy of the exported file)
    Command to execute upon export completion: del {FILES} (this deletes all exported files).
    NB: One could wonder why not directly export with the original file name and silently replace the original files (I believe Lightroom would allow this). It’s just a matter of error handling: in case the export goes wrong, no original file is changed at all.
    The easy part: each time you want to save edits:
    In Lightroom, select the pictures to save, and export them with the pre-defined settings. You're almost done. The JPEG files are ok, but inside Lightroom you see the modification effects doubled, as their specifications remain in the catalog database and they apply on modified JPEG instead of the original files.
    While the entire set of "saved" pictures is still selected, in the Develop module switch Autosync on and click Reinit to erase all modification specifications from the catalog for all pictures, then press CTRL-S to write down to disk any metadata updated by Lightroom -and accept if required to confirm that Lightroom values should replace externally set values.
    Stephane
    PS: Papa Ben, I'm curious about the decision you  finally made

  • Can not set source file for Fireworks png in Dreamweaver

    I recently purchased Adobe Design Premium CS5 to replace my CS3, but I have a big
    problem.  When I export a png in Fireworks to Dreamweaver it does not set the source
    file correctly.  It places the Fireworks object on the page, but when I select the table
    that holds the Fireworks object, the path for the source on the Properties panel is
    wrong - it says menu2.png.  The correct document relative path is dress_images/menu2/menu2.png.
    When I drag the Point to File icon over the menu2.png on the Files panel, it correctly displays
    the full path, but when I let go of it, it sets the path back to menu2.png.  I can not even type it
    in the source box and get it to stay.
    Here is the problem.  When I click on the Edit button, it says it can't find the png.  It is using
    the full path from the C: drive instead of the document relative path.  If I browse to the png file
    and open it in Dreamweaver then click the Done button, it saves the png file but does not change
    any of the content on the HTML page.
    Fireworks and Dreamweaver CS3 worked perfectly here.  Help!
    I just tried to do this on another computer.  This time when I pasted the Fireworks HTML onto the
    page in Dreamweaver it set the path correctly (it was a root relative path instead of a document
    relative path).  I tried to edit in Fireworks using the Edit button, and it opened Fireworks without
    any problem.  I made some changes then clicked the Done button.  Now the Done button is suppose
    to be like magic.  It is suppose to save the changes to the png file, make the changes on the HTML
    page in Dreamweaver, and change any of the supporting files (images) that have been edited.  It
    always worked this way in CS3, and anything less than this would be a huge step backwards.  In this
    case, it saved the changes to the png, but did not make any other changes.  The web page in
    Dreamweaver is still the same.  How do I get the Done button to work its magic using CS5.
    Another problem - when I paste the code onto the page, the page looks totally messed up.  If I save it
    and reopen it then it looks fine.  However, this never occurred with CS3.  Aren't updates to software
    suppose to be improvements?
    Thanks.
    Nathan

    Yes, the web site is correctly defined in Dreamweaver.  I teach web design for both high school and
    adult school, and I have done this procedure 100's of times with CS3.  There is something different with
    CS5.  I took your suggestion and imported the Fireworks HTML using Insert -> Image -> Fireworks HTML,
    but it still does not work.  I can edit it in Fireworks, hit the Done button, and the png file is saved but
    the HTML page remains the same.
    Also, the export does not get the path right, and it will not let me set the path right.  The only way the path
    is right is if the page that I am pasting the Fireworks HTML is in the same folder as the png.  It always
    sets the png's path as menu.png.  Therefore, if the page is in a different folder, the document relative path
    won't find it.  This was never a problem with CS3.  In fact, you could paste the code using Control-V and it
    would work 100% of the time.  That is how we always did it.  When exporting from Fireworks, I would set
    Export to "copy to clipboard" then move to Dreamweaver, click where I wanted the code pasted and do Control-V and presto it would
    always work.  You could come back a month later, select the table, click the Edit button, make changes
    in Fireworks, click the Done button and the changes would be reflected on the HTML page in Dreamweaver without
    doing anything more.  I have tried it with "copy to clipboard" and I have tried it with "export HTML file".  Neither
    works.  There is definitely something different between CS3 and CS5, and right now I am missing CS3.
    Thanks for your help.  I will keep fighting this until I get it, but any additional input would be appreciated.
    Nathan

  • [SOLVED] [makepkg] attempts to process source files multiple times

    OK, so I decided I was going to update the PKGBUILD for linux-lts-tresor to the new format with separate sources for different architectures and PGP keys, having successfully done it for the nvidia packages I maintain and I get the following issue when I run mkaurball on the linux-lts-tresor PKGBUILD:
    claire ~/Builds/linux-lts-tresor % mkaurball
    ==> Making package: linux-lts-tresor 3.14.28-1 (Fri 9 Jan 10:51:06 GMT 2015)
    ==> Retrieving sources...
    -> Found linux-3.14.tar.xz
    -> Found linux-3.14.tar.sign
    -> Found patch-3.14.28.xz
    -> Found patch-3.14.28.sign
    -> Found config
    -> Found config.x86_64
    -> Found linux-lts-tresor.preset
    -> Found linux-lts-tresor.install
    -> Found change-default-console-loglevel.patch
    -> Found 0001-Bluetooth-allocate-static-minor-for-vhci.patch
    -> Found 0002-module-allow-multiple-calls-to-MODULE_DEVICE_TABLE-p.patch
    -> Found 0003-module-remove-MODULE_GENERIC_TABLE.patch
    -> Found 0006-genksyms-fix-typeof-handling.patch
    -> Found tresor_sysfs.c
    -> Found tresor-patch-3.6.2_i686
    -> Found tresor-patch-3.6.2_i686.patch
    -> Found tresor-patch-3.6.2_i686.patch.sig
    -> Found patch-3.14.28.sign
    -> Found config
    -> Found config.x86_64
    -> Found linux-lts-tresor.preset
    -> Found linux-lts-tresor.install
    -> Found change-default-console-loglevel.patch
    -> Found 0001-Bluetooth-allocate-static-minor-for-vhci.patch
    -> Found 0002-module-allow-multiple-calls-to-MODULE_DEVICE_TABLE-p.patch
    -> Found 0003-module-remove-MODULE_GENERIC_TABLE.patch
    -> Found 0006-genksyms-fix-typeof-handling.patch
    -> Found tresor_sysfs.c
    -> Found tresor-patch-3.8.2_aesni
    -> Found tresor-patch-3.8.2_aesni.patch
    -> Found tresor-patch-3.8.2_aesni.patch.sig
    -> Found patch-3.14.28.sign
    -> Found config
    -> Found config.x86_64
    -> Found linux-lts-tresor.preset
    -> Found linux-lts-tresor.install
    -> Found change-default-console-loglevel.patch
    -> Found 0001-Bluetooth-allocate-static-minor-for-vhci.patch
    -> Found 0002-module-allow-multiple-calls-to-MODULE_DEVICE_TABLE-p.patch
    -> Found 0003-module-remove-MODULE_GENERIC_TABLE.patch
    -> Found 0006-genksyms-fix-typeof-handling.patch
    -> Found tresor_sysfs.c
    ==> Validating source files with sha256sums...
    linux-3.14.tar.xz ... Passed
    linux-3.14.tar.sign ... Skipped
    patch-3.14.28.xz ... Passed
    patch-3.14.28.sign ... Skipped
    config ... Passed
    config.x86_64 ... Passed
    linux-lts-tresor.preset ... Passed
    linux-lts-tresor.install ... Passed
    change-default-console-loglevel.patch ... Passed
    0001-Bluetooth-allocate-static-minor-for-vhci.patch ... Passed
    0002-module-allow-multiple-calls-to-MODULE_DEVICE_TABLE-p.patch ... Passed
    0003-module-remove-MODULE_GENERIC_TABLE.patch ... Passed
    0006-genksyms-fix-typeof-handling.patch ... Passed
    tresor_sysfs.c ... Passed
    ==> Validating source files with sha256sums...
    tresor-patch-3.6.2_i686 ... Passed
    tresor-patch-3.6.2_i686.patch ... Passed
    tresor-patch-3.6.2_i686.patch.sig ... Skipped
    ==> Validating source files with sha256sums...
    tresor-patch-3.8.2_aesni ... Passed
    tresor-patch-3.8.2_aesni.patch ... Passed
    tresor-patch-3.8.2_aesni.patch.sig ... Skipped
    ==> Verifying source file signatures with gpg...
    linux-3.14.tar ... Passed
    patch-3.14.28 ... Passed
    tresor-patch-3.6.2_i686.patch ... Passed
    patch-3.14.28 ... Passed
    tresor-patch-3.8.2_aesni.patch ... Passed
    patch-3.14.28 ... Passed
    ==> Entering fakeroot environment...
    ==> Creating source package...
    -> Adding PKGBUILD...
    -> Generating .SRCINFO file...
    -> Adding config...
    -> Adding config.x86_64...
    -> Adding linux-lts-tresor.preset...
    -> Adding linux-lts-tresor.install...
    -> Adding change-default-console-loglevel.patch...
    -> Adding 0001-Bluetooth-allocate-static-minor-for-vhci.patch...
    -> Adding 0002-module-allow-multiple-calls-to-MODULE_DEVICE_TABLE-p.patch...
    -> Adding 0003-module-remove-MODULE_GENERIC_TABLE.patch...
    -> Adding 0006-genksyms-fix-typeof-handling.patch...
    -> Adding tresor-patch-3.6.2_i686.patch...
    -> Adding tresor-patch-3.6.2_i686.patch.sig...
    -> Adding config...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-lts-tresor/srclinks.Qb2SC9gzL/linux-lts-tresor/config’: File exists
    -> Adding config.x86_64...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-lts-tresor/srclinks.Qb2SC9gzL/linux-lts-tresor/config.x86_64’: File exists
    -> Adding linux-lts-tresor.preset...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-lts-tresor/srclinks.Qb2SC9gzL/linux-lts-tresor/linux-lts-tresor.preset’: File exists
    -> Adding linux-lts-tresor.install...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-lts-tresor/srclinks.Qb2SC9gzL/linux-lts-tresor/linux-lts-tresor.install’: File exists
    -> Adding change-default-console-loglevel.patch...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-lts-tresor/srclinks.Qb2SC9gzL/linux-lts-tresor/change-default-console-loglevel.patch’: File exists
    -> Adding 0001-Bluetooth-allocate-static-minor-for-vhci.patch...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-lts-tresor/srclinks.Qb2SC9gzL/linux-lts-tresor/0001-Bluetooth-allocate-static-minor-for-vhci.patch’: File exists
    -> Adding 0002-module-allow-multiple-calls-to-MODULE_DEVICE_TABLE-p.patch...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-lts-tresor/srclinks.Qb2SC9gzL/linux-lts-tresor/0002-module-allow-multiple-calls-to-MODULE_DEVICE_TABLE-p.patch’: File exists
    -> Adding 0003-module-remove-MODULE_GENERIC_TABLE.patch...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-lts-tresor/srclinks.Qb2SC9gzL/linux-lts-tresor/0003-module-remove-MODULE_GENERIC_TABLE.patch’: File exists
    -> Adding 0006-genksyms-fix-typeof-handling.patch...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-lts-tresor/srclinks.Qb2SC9gzL/linux-lts-tresor/0006-genksyms-fix-typeof-handling.patch’: File exists
    -> Adding tresor-patch-3.8.2_aesni.patch...
    -> Adding tresor-patch-3.8.2_aesni.patch.sig...
    -> Adding config...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-lts-tresor/srclinks.Qb2SC9gzL/linux-lts-tresor/config’: File exists
    -> Adding config.x86_64...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-lts-tresor/srclinks.Qb2SC9gzL/linux-lts-tresor/config.x86_64’: File exists
    -> Adding linux-lts-tresor.preset...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-lts-tresor/srclinks.Qb2SC9gzL/linux-lts-tresor/linux-lts-tresor.preset’: File exists
    -> Adding linux-lts-tresor.install...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-lts-tresor/srclinks.Qb2SC9gzL/linux-lts-tresor/linux-lts-tresor.install’: File exists
    -> Adding change-default-console-loglevel.patch...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-lts-tresor/srclinks.Qb2SC9gzL/linux-lts-tresor/change-default-console-loglevel.patch’: File exists
    -> Adding 0001-Bluetooth-allocate-static-minor-for-vhci.patch...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-lts-tresor/srclinks.Qb2SC9gzL/linux-lts-tresor/0001-Bluetooth-allocate-static-minor-for-vhci.patch’: File exists
    -> Adding 0002-module-allow-multiple-calls-to-MODULE_DEVICE_TABLE-p.patch...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-lts-tresor/srclinks.Qb2SC9gzL/linux-lts-tresor/0002-module-allow-multiple-calls-to-MODULE_DEVICE_TABLE-p.patch’: File exists
    -> Adding 0003-module-remove-MODULE_GENERIC_TABLE.patch...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-lts-tresor/srclinks.Qb2SC9gzL/linux-lts-tresor/0003-module-remove-MODULE_GENERIC_TABLE.patch’: File exists
    -> Adding 0006-genksyms-fix-typeof-handling.patch...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-lts-tresor/srclinks.Qb2SC9gzL/linux-lts-tresor/0006-genksyms-fix-typeof-handling.patch’: File exists
    -> Compressing source package...
    ==> Leaving fakeroot environment.
    ==> Source package created: linux-lts-tresor (Fri 9 Jan 10:51:25 GMT 2015)
    Here is the PKGBUILD:
    # Maintainers:
    # Claire Farron <[email protected]>
    # Andes Ho <[email protected]> (Secondary Package Tester)
    # Former Maintainer(s)
    # Ido Rosen <[email protected]>
    # xerc <aur[at]xerc.de>
    # Contributor: tresor-patch-3.6.2_i686.patch and consolidation of patches
    # Seth Dickson <[email protected]>
    # Contributor(s) of the linux PKGBUILD
    # Tobias Powalowski <[email protected]>
    # Thomas Baechler <[email protected]>
    ### Do not edit below this line unless you know what you're doing
    pkgbase=linux-lts-tresor # Build stock -lts kernel with TRESOR patches
    #pkgbase=linux-custom # Build kernel with a different name
    _srcname=linux-3.14
    pkgname=linux-lts-tresor # placeholder
    pkgdesc="Linux longterm stable kernel and modules with integrated TRESOR"
    pkgver=3.14.28
    pkgrel=1
    arch=('i686' 'x86_64')
    url="http://www1.informatik.uni-erlangen.de/tresor"
    license=('GPL2')
    makedepends=('xmlto' 'docbook-xsl' 'kmod' 'inetutils' 'bc')
    options=('!strip')
    source=("https://www.kernel.org/pub/linux/kernel/v3.x/${_srcname}.tar.xz"
    "https://www.kernel.org/pub/linux/kernel/v3.x/${_srcname}.tar.sign"
    "https://www.kernel.org/pub/linux/kernel/v3.x/patch-${pkgver}.xz"
    "https://www.kernel.org/pub/linux/kernel/v3.x/patch-${pkgver}.sign"
    # the main kernel config files
    'config' 'config.x86_64'
    # standard config files for mkinitcpio ramdisk
    "${pkgbase}.preset"
    "${pkgbase}.install"
    'change-default-console-loglevel.patch'
    '0001-Bluetooth-allocate-static-minor-for-vhci.patch'
    '0002-module-allow-multiple-calls-to-MODULE_DEVICE_TABLE-p.patch'
    '0003-module-remove-MODULE_GENERIC_TABLE.patch'
    '0006-genksyms-fix-typeof-handling.patch'
    'http://www1.informatik.uni-erlangen.de/filepool/projects/tresor/tresor_sysfs.c')
    source_i686+=("http://www1.informatik.uni-erlangen.de/filepool/projects/tresor/tresor-patch-3.6.2_i686"
    'tresor-patch-3.6.2_i686.patch'
    'tresor-patch-3.6.2_i686.patch.sig')
    source_x86_64+=("http://www1.informatik.uni-erlangen.de/filepool/projects/tresor/tresor-patch-3.8.2_aesni"
    'tresor-patch-3.8.2_aesni.patch'
    'tresor-patch-3.8.2_aesni.patch.sig')
    sha256sums=('61558aa490855f42b6340d1a1596be47454909629327c49a5e4e10268065dffa'
    'SKIP'
    'e3c79a30ac959c84c329be5461da88a5c79c6463da30d376c27bb103aee79b51'
    'SKIP'
    '6291d78969d8db94525d9614fa15c6a5db97b070af50d84f68d32ecd5f40fd69'
    '145a66ef4f702ed516a57d846dd00b5acac7b5cc1eff86d1e7ee6bd5a66040b2'
    '003b45593f1b5cdb81ea2da6ab67deef04402eb15aae231921ff55f65948fbdd'
    'edb6d4ed9ca2af1ffc15ddbf195152c219e77bd12da3ea176c5c24afc0a779d4'
    'faced4eb4c47c4eb1a9ee8a5bf8a7c4b49d6b4d78efbe426e410730e6267d182'
    '6d72e14552df59e6310f16c176806c408355951724cd5b48a47bf01591b8be02'
    '52dec83a8805a8642d74d764494acda863e0aa23e3d249e80d4b457e20a3fd29'
    '65d58f63215ee3c5f9c4fc6bce36fc5311a6c7dbdbe1ad29de40647b47ff9c0d'
    'cf2e7a2d00787f754028e7459688c2755a406e632ce48b60952fa4ff7ed6f4b7'
    'd6fcbd0ea7a5a4c42d326286b60bbd5b1d476b8a6752046fa28133e05351c1fe')
    sha256sums_i686=('9a286a85c16ca5b6a02419af1aedbfe6e8b89bcabdcb32670ead3f26c09eadfd'
    '2fb8c26e237883f39de57a264873b21bcdfc5b6b0c1e7c60cec8d141e5db33ba'
    'SKIP')
    sha256sums_x86_64=('54009b369b95a77ab13f6dd7cdbe22b0785b6314cae3a6c39190b48f4c4b12ce'
    '6d0580f05db9cf47dd097326c2f3c0e493854493544d32692ab63290e12fc3e1'
    'SKIP')
    validpgpkeys=(
    'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linux Torvalds
    '647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman
    '5F885602C7FD0951F565E27949F67298E6366A92' # Claire Farron
    [[ "$CARCH" = "i686" ]] && _tresorpatch="tresor-patch-3.6.2_i686"
    [[ "$CARCH" = "x86_64" ]] && _tresorpatch="tresor-patch-3.8.2_aesni"
    _kernelname=${pkgbase#linux}
    prepare() {
    cd "${srcdir}/${_srcname}"
    # add upstream patch
    patch -p1 -i "${srcdir}/patch-${pkgver}"
    # add latest fixes from stable queue, if needed
    # http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git
    # set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param)
    # remove this when a Kconfig knob is made available by upstream
    # (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227)
    patch -p1 -i "${srcdir}/change-default-console-loglevel.patch"
    # Fix vhci warning in kmod (to restore every kernel maintainer's sanity)
    msg "Patching source to fix vhci warning in kmod"
    patch -p1 -i "${srcdir}/0001-Bluetooth-allocate-static-minor-for-vhci.patch"
    # Fix atkbd aliases
    msg "Patching source to fix atkbd aliases"
    patch -p1 -i "${srcdir}/0002-module-allow-multiple-calls-to-MODULE_DEVICE_TABLE-p.patch"
    patch -p1 -i "${srcdir}/0003-module-remove-MODULE_GENERIC_TABLE.patch"
    # Fix generation of symbol CRCs
    # http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=dc53324060f324e8af6867f57bf4891c13c6ef18
    msg "Patching source to fix generation of symbol CRCs"
    patch -p1 -i "${srcdir}/0006-genksyms-fix-typeof-handling.patch"
    # TRESOR Runs Encryption Securely Outside RAM
    # i.e. the purpose of this package :-)
    msg "Patching TRESOR for linux"
    # Initialized the patched TRESOR file with the upstream patch.
    cp "${srcdir}/${_tresorpatch}" "${_tresorpatch}.patched"
    patch --follow-symlinks "${_tresorpatch}.patched" "${srcdir}/${_tresorpatch}.patch"
    msg "Patching source with TRESOR"
    patch -p1 -i "${_tresorpatch}.patched"
    if [ "${CARCH}" = "x86_64" ]; then
    cat "${srcdir}/config.x86_64" > ./.config
    else
    cat "${srcdir}/config" > ./.config
    fi
    if [ "${_kernelname}" != "" ]; then
    sed -i "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"${_kernelname}\"|g" ./.config
    sed -i "s|CONFIG_LOCALVERSION_AUTO=.*|CONFIG_LOCALVERSION_AUTO=n|" ./.config
    fi
    # set extraversion to pkgrel
    sed -ri "s|^(EXTRAVERSION =).*|\1 -${pkgrel}|" Makefile
    # don't run depmod on 'make install'. We'll do this ourselves in packaging
    sed -i '2iexit 0' scripts/depmod.sh
    cd "${srcdir}"
    cc tresor_sysfs.c -o tresor_sysfs
    cd "${srcdir}/${_srcname}"
    # get kernel version
    make prepare
    # load configuration
    # Configure the kernel. Replace the line below with one of your choice.
    #make menuconfig # CLI menu for configuration
    #make nconfig # new CLI menu for configuration
    #make xconfig # X-based configuration
    #make oldconfig # using old config from previous kernel version
    # ... or manually edit .config
    # rewrite configuration
    #yes "" | make config >/dev/null
    make oldconfig
    # save configuration for later reuse
    # if [ "${CARCH}" = "x86_64" ]; then
    # cat .config > "${startdir}/config.x86_64.last"
    # else
    # cat .config > "${startdir}/config.last"
    # fi
    build() {
    cd "${srcdir}/${_srcname}"
    make ${MAKEFLAGS} LOCALVERSION= bzImage modules
    _package() {
    true && pkgdesc="The ${pkgbase/linux/Linux} kernel and modules - stable longtime supported with integrated TRESOR"
    depends=('coreutils' 'linux-firmware' 'kmod' 'mkinitcpio>=0.7')
    optdepends=('crda: to set the correct wireless channels of your country')
    provides=("kernel26${_kernelname}=${pkgver}")
    conflicts=("kernel26${_kernelname}")
    replaces=("kernel26${_kernelname}")
    backup=("etc/mkinitcpio.d/${pkgbase}.preset")
    install=${pkgbase}.install
    # TRESOR sysfs utility - not necessary but nice to have, in case someone
    # enables CONFIG_TRESOR_SYSFS in a fork of this PKGBUILD...
    cd "${srcdir}"
    install -D -m755 tresor_sysfs "${pkgdir}/usr/bin/tresor_sysfs"
    cd "${srcdir}/${_srcname}"
    KARCH=x86
    # get kernel version
    _kernver="$(make LOCALVERSION= kernelrelease)"
    _basekernel=${_kernver%%-*}
    _basekernel=${_basekernel%.*}
    mkdir -p "${pkgdir}"/{lib/modules,lib/firmware,boot}
    make LOCALVERSION= INSTALL_MOD_PATH="${pkgdir}" modules_install
    cp arch/$KARCH/boot/bzImage "${pkgdir}/boot/vmlinuz-${pkgbase}"
    # set correct depmod command for install
    cp -f "${startdir}/${install}" "${startdir}/${install}.pkg"
    true && install=${install}.pkg
    sed \
    -e "s/KERNEL_NAME=.*/KERNEL_NAME=${_kernelname}/" \
    -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/" \
    -i "${startdir}/${install}"
    # install mkinitcpio preset file for kernel
    install -D -m644 "${srcdir}/${pkgbase}.preset" \
    "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset"
    sed \
    -e "1s|'linux.*'|'${pkgbase}'|" \
    -e "s|ALL_kver=.*|ALL_kver=\"/boot/vmlinuz-${pkgbase}\"|" \
    -e "s|default_image=.*|default_image=\"/boot/initramfs-${pkgbase}.img\"|" \
    -e "s|fallback_image=.*|fallback_image=\"/boot/initramfs-${pkgbase}-fallback.img\"|" \
    -i "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset"
    # remove build and source links
    rm -f "${pkgdir}"/lib/modules/${_kernver}/{source,build}
    # remove the firmware
    rm -rf "${pkgdir}/lib/firmware"
    # gzip -9 all modules to save 100MB of space
    find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \;
    # make room for external modules
    ln -s "../extramodules-${_basekernel}${_kernelname:--ARCH}" \
    "${pkgdir}/lib/modules/${_kernver}/extramodules"
    # add real version for building modules and running depmod from post_install/upgrade
    mkdir -p "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--ARCH}"
    echo "${_kernver}" > \
    "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--ARCH}/version"
    # Now we call depmod...
    depmod -b "${pkgdir}" -F System.map "${_kernver}"
    # move module tree /lib -> /usr/lib
    mkdir -p "${pkgdir}/usr"
    mv "${pkgdir}/lib" "${pkgdir}/usr/"
    # add vmlinux
    install -D -m644 vmlinux "${pkgdir}/usr/lib/modules/${_kernver}/build/vmlinux"
    _package-headers() {
    true && pkgdesc="Header files and scripts for building modules for ${pkgbase/linux/Linux} kernel"
    provides=("kernel26${_kernelname}-headers=${pkgver}")
    conflicts=("kernel26${_kernelname}-headers")
    replaces=("kernel26${_kernelname}-headers")
    install -dm755 "${pkgdir}/usr/lib/modules/${_kernver}"
    cd "${srcdir}/${_srcname}"
    install -D -m644 Makefile \
    "${pkgdir}/usr/lib/modules/${_kernver}/build/Makefile"
    install -D -m644 kernel/Makefile \
    "${pkgdir}/usr/lib/modules/${_kernver}/build/kernel/Makefile"
    install -D -m644 .config \
    "${pkgdir}/usr/lib/modules/${_kernver}/build/.config"
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include"
    for i in acpi asm-generic config crypto drm generated keys linux math-emu \
    media net pcmcia scsi sound trace uapi video xen; do
    cp -a include/${i} "${pkgdir}/usr/lib/modules/${_kernver}/build/include/"
    done
    # copy arch includes for external modules
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/x86"
    cp -a arch/x86/include "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/x86/"
    # copy files necessary for later builds, like nvidia and vmware
    cp Module.symvers "${pkgdir}/usr/lib/modules/${_kernver}/build"
    cp -a scripts "${pkgdir}/usr/lib/modules/${_kernver}/build"
    # fix permissions on scripts dir
    chmod og-w -R "${pkgdir}/usr/lib/modules/${_kernver}/build/scripts"
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/.tmp_versions"
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/kernel"
    cp arch/${KARCH}/Makefile "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/"
    if [ "${CARCH}" = "i686" ]; then
    cp arch/${KARCH}/Makefile_32.cpu \
    "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/"
    fi
    cp arch/${KARCH}/kernel/asm-offsets.s \
    "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/kernel/"
    # add docbook makefile
    install -D -m644 Documentation/DocBook/Makefile \
    "${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/DocBook/Makefile"
    # add dm headers
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/md"
    cp drivers/md/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/md"
    # add inotify.h
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include/linux"
    cp include/linux/inotify.h "${pkgdir}/usr/lib/modules/${_kernver}/build/include/linux/"
    # add wireless headers
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/net/mac80211/"
    cp net/mac80211/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/net/mac80211/"
    # add dvb headers for external modules
    # in reference to:
    # http://bugs.archlinux.org/task/9912
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-core"
    cp drivers/media/dvb-core/*.h \
    "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-core/"
    # and...
    # http://bugs.archlinux.org/task/11194
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include/config/dvb/"
    cp include/config/dvb/*.h \
    "${pkgdir}/usr/lib/modules/${_kernver}/build/include/config/dvb/"
    # add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new
    # in reference to:
    # http://bugs.archlinux.org/task/13146
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
    cp drivers/media/dvb-frontends/lgdt330x.h \
    "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c/"
    cp drivers/media/i2c/msp3400-driver.h \
    "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c/"
    # add dvb headers
    # in reference to:
    # http://bugs.archlinux.org/task/20402
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/usb/dvb-usb"
    cp drivers/media/usb/dvb-usb/*.h \
    "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/usb/dvb-usb/"
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends"
    cp drivers/media/dvb-frontends/*.h \
    "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/tuners"
    cp drivers/media/tuners/*.h \
    "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/tuners/"
    # add xfs and shmem for aufs building
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/fs/xfs"
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/mm"
    cp fs/xfs/xfs_sb.h "${pkgdir}/usr/lib/modules/${_kernver}/build/fs/xfs/xfs_sb.h"
    # copy in Kconfig files
    for i in $(find . -name "Kconfig*"); do
    mkdir -p "${pkgdir}"/usr/lib/modules/${_kernver}/build/`echo ${i} | sed 's|/Kconfig.*||'`
    cp ${i} "${pkgdir}/usr/lib/modules/${_kernver}/build/${i}"
    done
    chown -R root.root "${pkgdir}/usr/lib/modules/${_kernver}/build"
    find "${pkgdir}/usr/lib/modules/${_kernver}/build" -type d -exec chmod 755 {} \;
    # strip scripts directory
    find "${pkgdir}/usr/lib/modules/${_kernver}/build/scripts" -type f -perm -u+w 2>/dev/null | while read binary ; do
    case "$(file -bi "${binary}")" in
    *application/x-sharedlib*) # Libraries (.so)
    /usr/bin/strip ${STRIP_SHARED} "${binary}";;
    *application/x-archive*) # Libraries (.a)
    /usr/bin/strip ${STRIP_STATIC} "${binary}";;
    *application/x-executable*) # Binaries
    /usr/bin/strip ${STRIP_BINARIES} "${binary}";;
    esac
    done
    # remove unneeded architectures
    rm -rf "${pkgdir}"/usr/lib/modules/${_kernver}/build/arch/{alpha,arc,arm,arm26,arm64,avr32,blackfin,c6x,cris,frv,h8300,hexagon,ia64,m32r,m68k,m68knommu,metag,mips,microblaze,mn10300,openrisc,parisc,powerpc,ppc,s390,score,sh,sh64,sparc,sparc64,tile,unicore32,um,v850,xtensa}
    _package-docs() {
    true && pkgdesc="Kernel hackers manual - HTML documentation that comes with the ${pkgbase/linux/Linux} kernel"
    provides=("kernel26${_kernelname}-docs=${pkgver}")
    conflicts=("kernel26${_kernelname}-docs")
    replaces=("kernel26${_kernelname}-docs")
    cd "${srcdir}/${_srcname}"
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build"
    cp -al Documentation "${pkgdir}/usr/lib/modules/${_kernver}/build"
    find "${pkgdir}" -type f -exec chmod 444 {} \;
    find "${pkgdir}" -type d -exec chmod 755 {} \;
    # remove a file already in linux package
    rm -f "${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/DocBook/Makefile"
    # true && is a workaround for AUR problem with split packages:
    true && pkgname=("${pkgbase}" "${pkgbase}-headers" "${pkgbase}-docs")
    for _p in ${pkgname[@]}; do
    eval "package_${_p}() {
    _package${_p#${pkgbase}}
    done
    EDIT: Here is the resulting source tarball for mkaurball.
    Last edited by clfarron4 (2015-01-12 09:37:11)

    OK, so either I'm committing a huge stupid with both TRESOR packages or there is actually a problem with makepkg. I've done similar changes with the linux-tresor PKGBUILD and it's doing the same thing.
    PKGBUILD:
    # Maintainers:
    # Claire Farron <[email protected]>
    # Andes Ho <[email protected]> (Secondary Package Tester)
    # Former Maintainer(s)
    # Ido Rosen <[email protected]>
    # xerc <aur[at]xerc.de>
    # Contributor(s) of tresor-patch-3.6.2_i686.patch and consolidation of patches
    # Seth Dickson <[email protected]>
    # Contributor(s) of the linux PKGBUILD
    # Tobias Powalowski <[email protected]>
    # Thomas Baechler <[email protected]>
    ### Do not edit below this line unless you know what you're doing
    pkgbase=linux-tresor # Build stock kernel with TRESOR patches
    #pkgbase=linux-custom # Build kernel with a different name
    _srcname=linux-3.18
    pkgver=3.18.2
    pkgrel=1
    arch=('i686' 'x86_64')
    url="http://www1.informatik.uni-erlangen.de/tresor"
    license=('GPL2')
    makedepends=('xmlto' 'docbook-xsl' 'kmod' 'inetutils' 'bc')
    options=('!strip')
    source=("https://www.kernel.org/pub/linux/kernel/v3.x/${_srcname}.tar.xz"
    "https://www.kernel.org/pub/linux/kernel/v3.x/${_srcname}.tar.sign"
    "https://www.kernel.org/pub/linux/kernel/v3.x/patch-${pkgver}.xz"
    "https://www.kernel.org/pub/linux/kernel/v3.x/patch-${pkgver}.sign"
    # the main kernel config files
    'config' 'config.x86_64'
    # standard config files for mkinitcpio ramdisk
    "${pkgbase}.preset"
    "${pkgbase}.install"
    'change-default-console-loglevel.patch'
    'http://www1.informatik.uni-erlangen.de/filepool/projects/tresor/tresor_sysfs.c')
    source_i686+=("http://www1.informatik.uni-erlangen.de/filepool/projects/tresor/tresor-patch-3.6.2_i686"
    'tresor-patch-3.6.2_i686.patch'
    'tresor-patch-3.6.2_i686.patch.sig')
    source_x86_64+=("http://www1.informatik.uni-erlangen.de/filepool/projects/tresor/tresor-patch-3.8.2_aesni"
    'tresor-patch-3.8.2_aesni.patch'
    'tresor-patch-3.8.2_aesni.patch.sig')
    sha256sums=('becc413cc9e6d7f5cc52a3ce66d65c3725bc1d1cc1001f4ce6c32b69eb188cbd'
    'SKIP'
    '927a30c152a193d22242de21b99c9765fb0086b0aa3fabd31938ffc6e1b3f37c'
    'SKIP'
    'b0f867da9c07d778014c52afe2df59b86122b0d4de2ea8003303855a0750e90d'
    'b76fa6691c4ab19d11e346112e8c021c88578950ed19468f115905e74cb0495e'
    'e17c0209dcb887173adbb4cc69fe0799b01ed9b9b7c487d1d023daa99ee073e1'
    '390c0b348c0f42ba760587e9df3098c62a3b6bd5d522eefb51c7a18f29069751'
    '1256b241cd477b265a3c2d64bdc19ffe3c9bbcee82ea3994c590c2c76e767d99'
    'd6fcbd0ea7a5a4c42d326286b60bbd5b1d476b8a6752046fa28133e05351c1fe')
    sha256sums_i686=('9a286a85c16ca5b6a02419af1aedbfe6e8b89bcabdcb32670ead3f26c09eadfd'
    '800f592847d2a20679630491b8f657cb912abc65f9f2daecf804b6dc2f3b9352'
    'SKIP')
    sha256sums_x86_64=('54009b369b95a77ab13f6dd7cdbe22b0785b6314cae3a6c39190b48f4c4b12ce'
    '9415840fe80f4e2f2b44c0762d8c650e5119fadc3cb494c4812406f6627f26c3'
    'SKIP')
    validpgpkeys=(
    'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linux Torvalds
    '647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman
    '5F885602C7FD0951F565E27949F67298E6366A92' # Claire Farron
    [[ "$CARCH" = "i686" ]] && _tresorpatch="tresor-patch-3.6.2_i686"
    [[ "$CARCH" = "x86_64" ]] && _tresorpatch="tresor-patch-3.8.2_aesni"
    _kernelname=${pkgbase#linux}
    prepare() {
    cd "${srcdir}/${_srcname}"
    # add upstream patch
    patch -p1 -i "${srcdir}/patch-${pkgver}"
    # add latest fixes from stable queue, if needed
    # http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git
    # set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param)
    # remove this when a Kconfig knob is made available by upstream
    # (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227)
    patch -p1 -i "${srcdir}/change-default-console-loglevel.patch"
    # TRESOR Runs Encryption Securely Outside RAM
    # i.e. the purpose of this package :-)
    msg "Patching TRESOR for linux"
    # Initialized the patched TRESOR file with the upstream patch.
    cp "${srcdir}/${_tresorpatch}" "${_tresorpatch}.patched"
    patch --follow-symlinks "${_tresorpatch}.patched" "${srcdir}/${_tresorpatch}.patch"
    msg "Patching source with TRESOR"
    patch -p1 -i "${_tresorpatch}.patched"
    if [ "${CARCH}" = "x86_64" ]; then
    cat "${srcdir}/config.x86_64" > ./.config
    else
    cat "${srcdir}/config" > ./.config
    fi
    if [ "${_kernelname}" != "" ]; then
    sed -i "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"${_kernelname}\"|g" ./.config
    sed -i "s|CONFIG_LOCALVERSION_AUTO=.*|CONFIG_LOCALVERSION_AUTO=n|" ./.config
    fi
    # set extraversion to pkgrel
    sed -ri "s|^(EXTRAVERSION =).*|\1 -${pkgrel}|" Makefile
    # don't run depmod on 'make install'. We'll do this ourselves in packaging
    sed -i '2iexit 0' scripts/depmod.sh
    cd "${srcdir}"
    cc tresor_sysfs.c -o tresor_sysfs
    cd "${srcdir}/${_srcname}"
    # get kernel version
    make prepare
    # load configuration
    # Configure the kernel. Replace the line below with one of your choice.
    #make menuconfig # CLI menu for configuration
    #make nconfig # new CLI menu for configuration
    #make xconfig # X-based configuration
    #make oldconfig # using old config from previous kernel version
    # ... or manually edit .config
    # rewrite configuration
    #yes "" | make config >/dev/null
    make oldconfig
    # save configuration for later reuse
    # if [ "${CARCH}" = "x86_64" ]; then
    # cat .config > "${startdir}/config.x86_64.last"
    # else
    # cat .config > "${startdir}/config.last"
    # fi
    build() {
    cd "${srcdir}/${_srcname}"
    make ${MAKEFLAGS} LOCALVERSION= bzImage modules
    _package() {
    pkgdesc="The ${pkgbase/linux/Linux} kernel and modules with integrated TRESOR"
    [ "${pkgbase}" = "linux" ] && groups=('base')
    depends=('coreutils' 'linux-firmware' 'kmod' 'mkinitcpio>=0.7')
    optdepends=('crda: to set the correct wireless channels of your country')
    provides=("kernel26${_kernelname}=${pkgver}")
    conflicts=("kernel26${_kernelname}")
    replaces=("kernel26${_kernelname}")
    backup=("etc/mkinitcpio.d/${pkgbase}.preset")
    install=${pkgbase}.install
    # TRESOR sysfs utility - not necessary but nice to have, in case someone
    # enables CONFIG_TRESOR_SYSFS in a fork of this PKGBUILD...
    cd "${srcdir}"
    install -D -m755 tresor_sysfs "${pkgdir}/usr/bin/tresor_sysfs"
    cd "${srcdir}/${_srcname}"
    KARCH=x86
    # get kernel version
    _kernver="$(make LOCALVERSION= kernelrelease)"
    _basekernel=${_kernver%%-*}
    _basekernel=${_basekernel%.*}
    mkdir -p "${pkgdir}"/{lib/modules,lib/firmware,boot}
    make LOCALVERSION= INSTALL_MOD_PATH="${pkgdir}" modules_install
    cp arch/$KARCH/boot/bzImage "${pkgdir}/boot/vmlinuz-${pkgbase}"
    # set correct depmod command for install
    cp -f "${startdir}/${install}" "${startdir}/${install}.pkg"
    true && install=${install}.pkg
    sed \
    -e "s/KERNEL_NAME=.*/KERNEL_NAME=${_kernelname}/" \
    -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/" \
    -i "${startdir}/${install}"
    # install mkinitcpio preset file for kernel
    install -D -m644 "${srcdir}/${pkgbase}.preset" \
    "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset"
    sed \
    -e "1s|'linux.*'|'${pkgbase}'|" \
    -e "s|ALL_kver=.*|ALL_kver=\"/boot/vmlinuz-${pkgbase}\"|" \
    -e "s|default_image=.*|default_image=\"/boot/initramfs-${pkgbase}.img\"|" \
    -e "s|fallback_image=.*|fallback_image=\"/boot/initramfs-${pkgbase}-fallback.img\"|" \
    -i "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset"
    # remove build and source links
    rm -f "${pkgdir}"/lib/modules/${_kernver}/{source,build}
    # remove the firmware
    rm -rf "${pkgdir}/lib/firmware"
    # gzip -9 all modules to save 100MB of space
    find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \;
    # make room for external modules
    ln -s "../extramodules-${_basekernel}${_kernelname:--ARCH}" "${pkgdir}/lib/modules/${_kernver}/extramodules"
    # add real version for building modules and running depmod from post_install/upgrade
    mkdir -p "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--ARCH}"
    echo "${_kernver}" > "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--ARCH}/version"
    # Now we call depmod...
    depmod -b "${pkgdir}" -F System.map "${_kernver}"
    # move module tree /lib -> /usr/lib
    mkdir -p "${pkgdir}/usr"
    mv "${pkgdir}/lib" "${pkgdir}/usr/"
    # add vmlinux
    install -D -m644 vmlinux "${pkgdir}/usr/lib/modules/${_kernver}/build/vmlinux"
    _package-headers() {
    pkgdesc="Header files and scripts for building modules for ${pkgbase/linux/Linux} kernel"
    provides=("kernel26${_kernelname}-headers=${pkgver}")
    conflicts=("kernel26${_kernelname}-headers")
    replaces=("kernel26${_kernelname}-headers")
    install -dm755 "${pkgdir}/usr/lib/modules/${_kernver}"
    cd "${srcdir}/${_srcname}"
    install -D -m644 Makefile \
    "${pkgdir}/usr/lib/modules/${_kernver}/build/Makefile"
    install -D -m644 kernel/Makefile \
    "${pkgdir}/usr/lib/modules/${_kernver}/build/kernel/Makefile"
    install -D -m644 .config \
    "${pkgdir}/usr/lib/modules/${_kernver}/build/.config"
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include"
    for i in acpi asm-generic config crypto drm generated keys linux math-emu \
    media net pcmcia scsi sound trace uapi video xen; do
    cp -a include/${i} "${pkgdir}/usr/lib/modules/${_kernver}/build/include/"
    done
    # copy arch includes for external modules
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/x86"
    cp -a arch/x86/include "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/x86/"
    # copy files necessary for later builds, like nvidia and vmware
    cp Module.symvers "${pkgdir}/usr/lib/modules/${_kernver}/build"
    cp -a scripts "${pkgdir}/usr/lib/modules/${_kernver}/build"
    # fix permissions on scripts dir
    chmod og-w -R "${pkgdir}/usr/lib/modules/${_kernver}/build/scripts"
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/.tmp_versions"
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/kernel"
    cp arch/${KARCH}/Makefile "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/"
    if [ "${CARCH}" = "i686" ]; then
    cp arch/${KARCH}/Makefile_32.cpu "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/"
    fi
    cp arch/${KARCH}/kernel/asm-offsets.s "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/kernel/"
    # add docbook makefile
    install -D -m644 Documentation/DocBook/Makefile \
    "${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/DocBook/Makefile"
    # add dm headers
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/md"
    cp drivers/md/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/md"
    # add inotify.h
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include/linux"
    cp include/linux/inotify.h "${pkgdir}/usr/lib/modules/${_kernver}/build/include/linux/"
    # add wireless headers
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/net/mac80211/"
    cp net/mac80211/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/net/mac80211/"
    # add dvb headers for external modules
    # in reference to:
    # http://bugs.archlinux.org/task/9912
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-core"
    cp drivers/media/dvb-core/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-core/"
    # and...
    # http://bugs.archlinux.org/task/11194
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include/config/dvb/"
    cp include/config/dvb/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/include/config/dvb/"
    # add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new
    # in reference to:
    # http://bugs.archlinux.org/task/13146
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
    cp drivers/media/dvb-frontends/lgdt330x.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c/"
    cp drivers/media/i2c/msp3400-driver.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c/"
    # add dvb headers
    # in reference to:
    # http://bugs.archlinux.org/task/20402
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/usb/dvb-usb"
    cp drivers/media/usb/dvb-usb/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/usb/dvb-usb/"
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends"
    cp drivers/media/dvb-frontends/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/tuners"
    cp drivers/media/tuners/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/tuners/"
    # add xfs and shmem for aufs building
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/fs/xfs"
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/mm"
    # removed in 3.17 series
    # cp fs/xfs/xfs_sb.h "${pkgdir}/usr/lib/modules/${_kernver}/build/fs/xfs/xfs_sb.h"
    # copy in Kconfig files
    for i in $(find . -name "Kconfig*"); do
    mkdir -p "${pkgdir}"/usr/lib/modules/${_kernver}/build/`echo ${i} | sed 's|/Kconfig.*||'`
    cp ${i} "${pkgdir}/usr/lib/modules/${_kernver}/build/${i}"
    done
    chown -R root.root "${pkgdir}/usr/lib/modules/${_kernver}/build"
    find "${pkgdir}/usr/lib/modules/${_kernver}/build" -type d -exec chmod 755 {} \;
    # strip scripts directory
    find "${pkgdir}/usr/lib/modules/${_kernver}/build/scripts" -type f -perm -u+w 2>/dev/null | while read binary ; do
    case "$(file -bi "${binary}")" in
    *application/x-sharedlib*) # Libraries (.so)
    /usr/bin/strip ${STRIP_SHARED} "${binary}";;
    *application/x-archive*) # Libraries (.a)
    /usr/bin/strip ${STRIP_STATIC} "${binary}";;
    *application/x-executable*) # Binaries
    /usr/bin/strip ${STRIP_BINARIES} "${binary}";;
    esac
    done
    # remove unneeded architectures
    rm -rf "${pkgdir}"/usr/lib/modules/${_kernver}/build/arch/{alpha,arc,arm,arm26,arm64,avr32,blackfin,c6x,cris,frv,h8300,hexagon,ia64,m32r,m68k,m68knommu,metag,mips,microblaze,mn10300,openrisc,parisc,powerpc,ppc,s390,score,sh,sh64,sparc,sparc64,tile,unicore32,um,v850,xtensa}
    _package-docs() {
    pkgdesc="Kernel hackers manual - HTML documentation that comes with the ${pkgbase/linux/Linux} kernel"
    provides=("kernel26${_kernelname}-docs=${pkgver}")
    conflicts=("kernel26${_kernelname}-docs")
    replaces=("kernel26${_kernelname}-docs")
    cd "${srcdir}/${_srcname}"
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build"
    cp -al Documentation "${pkgdir}/usr/lib/modules/${_kernver}/build"
    find "${pkgdir}" -type f -exec chmod 444 {} \;
    find "${pkgdir}" -type d -exec chmod 755 {} \;
    # remove a file already in linux package
    rm -f "${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/DocBook/Makefile"
    pkgname=("${pkgbase}" "${pkgbase}-headers" "${pkgbase}-docs")
    for _p in ${pkgname[@]}; do
    eval "package_${_p}() {
    $(declare -f "_package${_p#${pkgbase}}")
    _package${_p#${pkgbase}}
    done
    Running makepkg -S to build the source tarball:
    claire ~/Builds/linux-tresor % makepkg -S
    ==> Making package: linux-tresor 3.18.2-1 (Fri 9 Jan 17:24:58 GMT 2015)
    ==> Retrieving sources...
    -> Downloading linux-3.18.tar.xz...
    % Total % Received % Xferd Average Speed Time Time Time Current
    Dload Upload Total Spent Left Speed
    100 77.1M 100 77.1M 0 0 2852k 0 0:00:27 0:00:27 --:--:-- 5975k
    -> Downloading linux-3.18.tar.sign...
    % Total % Received % Xferd Average Speed Time Time Time Current
    Dload Upload Total Spent Left Speed
    100 473 100 473 0 0 1079 0 --:--:-- --:--:-- --:--:-- 1082
    -> Downloading patch-3.18.2.xz...
    % Total % Received % Xferd Average Speed Time Time Time Current
    Dload Upload Total Spent Left Speed
    100 40932 100 40932 0 0 48079 0 --:--:-- --:--:-- --:--:-- 48042
    -> Downloading patch-3.18.2.sign...
    % Total % Received % Xferd Average Speed Time Time Time Current
    Dload Upload Total Spent Left Speed
    100 819 100 819 0 0 1207 0 --:--:-- --:--:-- --:--:-- 1207
    -> Found config
    -> Found config.x86_64
    -> Found linux-tresor.preset
    -> Found linux-tresor.install
    -> Found change-default-console-loglevel.patch
    -> Downloading tresor_sysfs.c...
    % Total % Received % Xferd Average Speed Time Time Time Current
    Dload Upload Total Spent Left Speed
    100 2299 100 2299 0 0 28726 0 --:--:-- --:--:-- --:--:-- 29101
    -> Downloading tresor-patch-3.6.2_i686...
    % Total % Received % Xferd Average Speed Time Time Time Current
    Dload Upload Total Spent Left Speed
    100 47050 100 47050 0 0 344k 0 --:--:-- --:--:-- --:--:-- 345k
    -> Found tresor-patch-3.6.2_i686.patch
    -> Found tresor-patch-3.6.2_i686.patch.sig
    -> Found patch-3.18.2.sign
    -> Found config
    -> Found config.x86_64
    -> Found linux-tresor.preset
    -> Found linux-tresor.install
    -> Found change-default-console-loglevel.patch
    -> Found tresor_sysfs.c
    -> Downloading tresor-patch-3.8.2_aesni...
    % Total % Received % Xferd Average Speed Time Time Time Current
    Dload Upload Total Spent Left Speed
    100 47192 100 47192 0 0 350k 0 --:--:-- --:--:-- --:--:-- 351k
    -> Found tresor-patch-3.8.2_aesni.patch
    -> Found tresor-patch-3.8.2_aesni.patch.sig
    -> Found patch-3.18.2.sign
    -> Found config
    -> Found config.x86_64
    -> Found linux-tresor.preset
    -> Found linux-tresor.install
    -> Found change-default-console-loglevel.patch
    -> Found tresor_sysfs.c
    ==> Validating source files with sha256sums...
    linux-3.18.tar.xz ... Passed
    linux-3.18.tar.sign ... Skipped
    patch-3.18.2.xz ... Passed
    patch-3.18.2.sign ... Skipped
    config ... Passed
    config.x86_64 ... Passed
    linux-tresor.preset ... Passed
    linux-tresor.install ... Passed
    change-default-console-loglevel.patch ... Passed
    tresor_sysfs.c ... Passed
    ==> Validating source files with sha256sums...
    tresor-patch-3.6.2_i686 ... Passed
    tresor-patch-3.6.2_i686.patch ... Passed
    tresor-patch-3.6.2_i686.patch.sig ... Skipped
    ==> Validating source files with sha256sums...
    tresor-patch-3.8.2_aesni ... Passed
    tresor-patch-3.8.2_aesni.patch ... Passed
    tresor-patch-3.8.2_aesni.patch.sig ... Skipped
    ==> Verifying source file signatures with gpg...
    linux-3.18.tar ... Passed
    patch-3.18.2 ... Passed
    tresor-patch-3.6.2_i686.patch ... Passed
    patch-3.18.2 ... Passed
    tresor-patch-3.8.2_aesni.patch ... Passed
    patch-3.18.2 ... Passed
    ==> Entering fakeroot environment...
    ==> Creating source package...
    -> Adding PKGBUILD...
    -> Generating .SRCINFO file...
    -> Adding config...
    -> Adding config.x86_64...
    -> Adding linux-tresor.preset...
    -> Adding linux-tresor.install...
    -> Adding change-default-console-loglevel.patch...
    -> Adding tresor-patch-3.6.2_i686.patch...
    -> Adding tresor-patch-3.6.2_i686.patch.sig...
    -> Adding config...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-tresor/srclinks.W5jPjydXO/linux-tresor/config’: File exists
    -> Adding config.x86_64...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-tresor/srclinks.W5jPjydXO/linux-tresor/config.x86_64’: File exists
    -> Adding linux-tresor.preset...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-tresor/srclinks.W5jPjydXO/linux-tresor/linux-tresor.preset’: File exists
    -> Adding linux-tresor.install...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-tresor/srclinks.W5jPjydXO/linux-tresor/linux-tresor.install’: File exists
    -> Adding change-default-console-loglevel.patch...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-tresor/srclinks.W5jPjydXO/linux-tresor/change-default-console-loglevel.patch’: File exists
    -> Adding tresor-patch-3.8.2_aesni.patch...
    -> Adding tresor-patch-3.8.2_aesni.patch.sig...
    -> Adding config...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-tresor/srclinks.W5jPjydXO/linux-tresor/config’: File exists
    -> Adding config.x86_64...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-tresor/srclinks.W5jPjydXO/linux-tresor/config.x86_64’: File exists
    -> Adding linux-tresor.preset...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-tresor/srclinks.W5jPjydXO/linux-tresor/linux-tresor.preset’: File exists
    -> Adding linux-tresor.install...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-tresor/srclinks.W5jPjydXO/linux-tresor/linux-tresor.install’: File exists
    -> Adding change-default-console-loglevel.patch...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-tresor/srclinks.W5jPjydXO/linux-tresor/change-default-console-loglevel.patch’: File exists
    -> Compressing source package...
    ==> Leaving fakeroot environment.
    ==> Source package created: linux-tresor (Fri 9 Jan 17:25:50 GMT 2015)
    makepkg -S 24.38s user 1.40s system 48% cpu 53.129 total
    Here is the resulting source tarball.
    As far as I can see, they should be working PKGBUILDs too which meet the standards.
    EDIT: Here's the bug report
    Last edited by clfarron4 (2015-01-09 17:42:34)

  • *Added* code to existing source file, compiled it, and class file shrunk

    Another newbie here. Fortunately, my classpath is ok, so I'm able to compile a .java file.
    I added one line of code (System.out.println) to write the value of a variable to a log. After compiling with javac, I noticed that the resulting [new] class file was smaller than the existing class file. I looked at each of the class files with Textpad. It's gibberish, but I quickly saw that a large block of code was missing in the new class file, even though the size of the source file had been increased.
    There is a difference, however, between how the two class files were created. The existing class file was compiled (along with many others) by exporting an .EAR file from a development environment (WSAD) to the WebSphere Administrator Console. Conversely, I am now compiling the same source file with javac on my machine.
    I suspect that this is the reason why I can add code to a .java file, compile it, and have the resulting class file actually lose code. Even if I am correct, I don't know what to do about it.
    Does anyone have an idea?
    Regards,
    Daniel T.

    Thank you both for your replies. I've read many posts over the past few months, and I know how important it is to provide as much info as possible, when asking a question here. That said, I have another tasty tidbit...
    After replacing the existing (larger) class file with the new (smaller) class file, my application now produces this:
    "*Error 500: LinkageError while defining class*..." [name of class]
    *"...(Unsupported major.minor version 50.0) This is often caused by having a class defined at multiple locations within the classloader hierarchy. Other potential causes include compiling against an older or newer version of the class that has an incompatible method signature. Dumping the current context classloader hierarchy: ==> indicates defining classloader ==>[0] [email protected] Local ClassPath:"*
    ...[the entire classpath]...
    Original exception--- java.lang.UnsupportedClassVersionError:
    I'm guessing that my focus should mostly be on the 'Original exception', and maybe I need to revisit the JRE or JDK or JVM (these terms are somewhat nebulous to me, so please forgive me using them interchangeably) on my machine. For now, I'll just keep trying stuff. Thanks again for the replies!
    Regards,
    Daniel T.

Maybe you are looking for


HashFlare